From 173ecc800e0ba4dc7c418e8ec108d90c462885b4 Mon Sep 17 00:00:00 2001 From: Leonid Meleshin Date: Sun, 28 Jul 2024 01:57:39 +0400 Subject: [PATCH 01/22] Remove unused entries from .editorconfig (#3811) --- .editorconfig | 3 --- 1 file changed, 3 deletions(-) diff --git a/.editorconfig b/.editorconfig index a31ef8e753a..1fdc58bc6fc 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,6 +8,3 @@ charset = utf-8 [*.{cpp,h,c,py,sh}] indent_style = space indent_size = 4 - -[{Makefile,*.mk}] -indent_size = tab From 0223c23cfbaf0f6fdc4a42d8511a5a78ec9d22f4 Mon Sep 17 00:00:00 2001 From: Jan Wiesemann Date: Sun, 28 Jul 2024 00:03:35 +0200 Subject: [PATCH 02/22] Reordered VS-Code Tasks to follow the [Release] > [Debug] schema (#3810) Co-authored-by: hedger --- .vscode/example/tasks.json | 46 +++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/.vscode/example/tasks.json b/.vscode/example/tasks.json index 1bc6d9ee75c..aab2994f771 100644 --- a/.vscode/example/tasks.json +++ b/.vscode/example/tasks.json @@ -63,12 +63,6 @@ "type": "shell", "command": "./fbt updater_all" }, - { - "label": "[Debug] Flash (USB, w/o resources)", - "group": "build", - "type": "shell", - "command": "./fbt FORCE=1 flash_usb" - }, { "label": "[Release] Flash (USB, w/o resources)", "group": "build", @@ -76,16 +70,16 @@ "command": "./fbt COMPACT=1 DEBUG=0 FORCE=1 flash_usb" }, { - "label": "[Debug:unit_tests] Flash (USB)", + "label": "[Debug] Flash (USB, w/o resources)", "group": "build", "type": "shell", - "command": "./fbt FIRMWARE_APP_SET=unit_tests FORCE=1 flash_usb_full" + "command": "./fbt FORCE=1 flash_usb" }, { - "label": "[Debug] Flash (USB, with resources)", + "label": "[Debug:unit_tests] Flash (USB)", "group": "build", "type": "shell", - "command": "./fbt FORCE=1 flash_usb_full" + "command": "./fbt FIRMWARE_APP_SET=unit_tests FORCE=1 flash_usb_full" }, { "label": "[Release] Flash (USB, with resources)", @@ -94,16 +88,16 @@ "command": "./fbt COMPACT=1 DEBUG=0 FORCE=1 flash_usb_full" }, { - "label": "[Debug] Create PVS-Studio report", + "label": "[Debug] Flash (USB, with resources)", "group": "build", "type": "shell", - "command": "./fbt firmware_pvs" + "command": "./fbt FORCE=1 flash_usb_full" }, { - "label": "[Debug] Build FAPs", + "label": "[Debug] Create PVS-Studio report", "group": "build", "type": "shell", - "command": "./fbt fap_dist" + "command": "./fbt firmware_pvs" }, { "label": "[Release] Build FAPs", @@ -112,10 +106,10 @@ "command": "./fbt COMPACT=1 DEBUG=0 fap_dist" }, { - "label": "[Debug] Build App", + "label": "[Debug] Build FAPs", "group": "build", "type": "shell", - "command": "./fbt build APPSRC=${relativeFileDirname}" + "command": "./fbt fap_dist" }, { "label": "[Release] Build App", @@ -124,10 +118,10 @@ "command": "./fbt COMPACT=1 DEBUG=0 build APPSRC=${relativeFileDirname}" }, { - "label": "[Debug] Launch App on Flipper", + "label": "[Debug] Build App", "group": "build", "type": "shell", - "command": "./fbt launch APPSRC=${relativeFileDirname}" + "command": "./fbt build APPSRC=${relativeFileDirname}" }, { "label": "[Release] Launch App on Flipper", @@ -135,6 +129,12 @@ "type": "shell", "command": "./fbt COMPACT=1 DEBUG=0 launch APPSRC=${relativeFileDirname}" }, + { + "label": "[Debug] Launch App on Flipper", + "group": "build", + "type": "shell", + "command": "./fbt launch APPSRC=${relativeFileDirname}" + }, { "label": "[Debug] Launch App on Flipper with Serial Console", "dependsOrder": "sequence", @@ -145,16 +145,16 @@ ] }, { - "label": "[Debug] Build and upload all FAPs to Flipper over USB", + "label": "[Release] Build and upload all FAPs to Flipper over USB", "group": "build", "type": "shell", - "command": "./fbt fap_deploy" + "command": "./fbt COMPACT=1 DEBUG=0 fap_deploy" }, { - "label": "[Release] Build and upload all FAPs to Flipper over USB", + "label": "[Debug] Build and upload all FAPs to Flipper over USB", "group": "build", "type": "shell", - "command": "./fbt COMPACT=1 DEBUG=0 fap_deploy" + "command": "./fbt fap_deploy" }, { // Press Ctrl+] to quit @@ -180,4 +180,4 @@ } } ] -} \ No newline at end of file +} From a403e5f543a5423e39ac1700ae4711e9e489445e Mon Sep 17 00:00:00 2001 From: Liam Hays Date: Sun, 28 Jul 2024 14:21:56 -0600 Subject: [PATCH 03/22] Fix typo in "charge me" screen. (#3812) --- applications/services/power/power_service/views/power_off.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/services/power/power_service/views/power_off.c b/applications/services/power/power_service/views/power_off.c index 4da374b31aa..dbc233dde5f 100644 --- a/applications/services/power/power_service/views/power_off.c +++ b/applications/services/power/power_service/views/power_off.c @@ -33,7 +33,7 @@ static void power_off_draw_callback(Canvas* canvas, void* _model) { elements_button_center(canvas, "OK"); elements_button_right(canvas, "Hide"); } else { - snprintf(buff, sizeof(buff), "Charge me!\nDont't forget!"); + snprintf(buff, sizeof(buff), "Charge me!\nDon't forget!"); elements_multiline_text_aligned(canvas, 70, 23, AlignLeft, AlignTop, buff); canvas_draw_str_aligned(canvas, 64, 60, AlignCenter, AlignBottom, "Hold a second..."); From 360005c1d56a223aaa81388a696f3a47e9b65d51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=82=E3=81=8F?= Date: Mon, 29 Jul 2024 22:06:08 +0900 Subject: [PATCH 04/22] Furi: update string documentation (#3803) Co-authored-by: hedger --- furi/core/string.h | 714 +++++++++++++++++++++++---------------------- 1 file changed, 371 insertions(+), 343 deletions(-) diff --git a/furi/core/string.h b/furi/core/string.h index bcdf9336c7d..2bfb60e496c 100644 --- a/furi/core/string.h +++ b/furi/core/string.h @@ -1,7 +1,10 @@ -/** +/** Furi string container + * + * And various method to manipulate strings + * * @file string.h - * Furi string primitive */ + #pragma once #include @@ -14,66 +17,72 @@ extern "C" { #endif -/** - * @brief Furi string failure constant. - */ +/** Furi string failure constant. */ #define FURI_STRING_FAILURE ((size_t) - 1) -/** - * @brief Furi string primitive. - */ +/** Furi string primitive. */ typedef struct FuriString FuriString; //--------------------------------------------------------------------------- // Constructors //--------------------------------------------------------------------------- -/** - * @brief Allocate new FuriString. - * @return FuriString* +/** Allocate new FuriString. + * + * @return pointer to the instance of FuriString */ FuriString* furi_string_alloc(void); -/** - * @brief Allocate new FuriString and set it to string. +/** Allocate new FuriString and set it to string. + * * Allocate & Set the string a to the string. - * @param source - * @return FuriString* + * + * @param source The source FuriString instance + * + * @return pointer to the new instance of FuriString */ FuriString* furi_string_alloc_set(const FuriString* source); -/** - * @brief Allocate new FuriString and set it to C string. +/** Allocate new FuriString and set it to C string. + * * Allocate & Set the string a to the C string. - * @param cstr_source - * @return FuriString* + * + * @param cstr_source The C-string instance + * + * @return pointer to the new instance of FuriString */ FuriString* furi_string_alloc_set_str(const char cstr_source[]); -/** - * @brief Allocate new FuriString and printf to it. +/** Allocate new FuriString and printf to it. + * * Initialize and set a string to the given formatted value. - * @param format - * @param ... - * @return FuriString* + * + * @param format The printf format + * @param[in] ... args to format + * + * @return pointer to the new instance of FuriString */ FuriString* furi_string_alloc_printf(const char format[], ...) _ATTRIBUTE((__format__(__printf__, 1, 2))); -/** - * @brief Allocate new FuriString and printf to it. +/** Allocate new FuriString and printf to it. + * * Initialize and set a string to the given formatted value. - * @param format - * @param args - * @return FuriString* + * + * @param format The printf format + * @param args The format arguments + * + * @return pointer to the new instance of FuriString */ FuriString* furi_string_alloc_vprintf(const char format[], va_list args); -/** - * @brief Allocate new FuriString and move source string content to it. +/** Allocate new FuriString and move source string content to it. + * * Allocate the string, set it to the other one, and destroy the other one. - * @param source - * @return FuriString* + * + * @param source The source FuriString instance + * + * @return pointer to the new instance of FuriString */ FuriString* furi_string_alloc_move(FuriString* source); @@ -81,9 +90,9 @@ FuriString* furi_string_alloc_move(FuriString* source); // Destructors //--------------------------------------------------------------------------- -/** - * @brief Free FuriString. - * @param string +/** Free FuriString. + * + * @param string The FuriString instance to free */ void furi_string_free(FuriString* string); @@ -91,55 +100,63 @@ void furi_string_free(FuriString* string); // String memory management //--------------------------------------------------------------------------- -/** - * @brief Reserve memory for string. - * Modify the string capacity to be able to handle at least 'alloc' characters (including final null char). - * @param string - * @param size +/** Reserve memory for string. + * + * Modify the string capacity to be able to handle at least 'alloc' characters + * (including final null char). + * + * @param string The FuriString instance + * @param size The size to reserve */ void furi_string_reserve(FuriString* string, size_t size); -/** - * @brief Reset string. +/** Reset string. + * * Make the string empty. - * @param string + * + * @param string The FuriString instance */ void furi_string_reset(FuriString* string); -/** - * @brief Swap two strings. +/** Swap two strings. + * * Swap the two strings string_1 and string_2. - * @param string_1 - * @param string_2 + * + * @param string_1 The FuriString instance 1 + * @param string_2 The FuriString instance 2 */ void furi_string_swap(FuriString* string_1, FuriString* string_2); -/** - * @brief Move string_2 content to string_1. +/** Move string_2 content to string_1. + * * Set the string to the other one, and destroy the other one. - * @param string_1 - * @param string_2 + * + * @param string_1 The FuriString instance 1 + * @param string_2 The FuriString instance 2 */ void furi_string_move(FuriString* string_1, FuriString* string_2); -/** - * @brief Compute a hash for the string. - * @param string - * @return size_t +/** Compute a hash for the string. + * + * @param string The FuriString instance + * + * @return hash value */ size_t furi_string_hash(const FuriString* string); -/** - * @brief Get string size (usually length, but not for UTF-8) - * @param string - * @return size_t +/** Get string size (usually length, but not for UTF-8) + * + * @param string The FuriString instance + * + * @return size of the string */ size_t furi_string_size(const FuriString* string); -/** - * @brief Check that string is empty or not - * @param string - * @return bool +/** Check that string is empty or not + * + * @param string The FuriString instance + * + * @return true if empty otherwise false */ bool furi_string_empty(const FuriString* string); @@ -147,19 +164,22 @@ bool furi_string_empty(const FuriString* string); // Getters //--------------------------------------------------------------------------- -/** - * @brief Get the character at the given index. +/** Get the character at the given index. + * * Return the selected character of the string. - * @param string - * @param index - * @return char + * + * @param string The FuriString instance + * @param index The index + * + * @return character at index */ char furi_string_get_char(const FuriString* string, size_t index); -/** - * @brief Return the string view a classic C string. - * @param string - * @return const char* +/** Return the string view a classic C string. + * + * @param string The FuriString instance + * + * @return const C-string, usable till first container change */ const char* furi_string_get_cstr(const FuriString* string); @@ -167,63 +187,67 @@ const char* furi_string_get_cstr(const FuriString* string); // Setters //--------------------------------------------------------------------------- -/** - * @brief Set the string to the other string. +/** Set the string to the other string. + * * Set the string to the source string. - * @param string - * @param source + * + * @param string The FuriString instance + * @param source The source */ void furi_string_set(FuriString* string, FuriString* source); -/** - * @brief Set the string to the other C string. +/** Set the string to the other C string. + * * Set the string to the source C string. - * @param string - * @param source + * + * @param string The FuriString instance + * @param source The source */ void furi_string_set_str(FuriString* string, const char source[]); -/** - * @brief Set the string to the n first characters of the C string. - * @param string - * @param source - * @param length +/** Set the string to the n first characters of the C string. + * + * @param string The FuriString instance + * @param source The source + * @param length The length */ void furi_string_set_strn(FuriString* string, const char source[], size_t length); -/** - * @brief Set the character at the given index. - * @param string - * @param index - * @param c +/** Set the character at the given index. + * + * @param string The FuriString instance + * @param index The index + * @param c The character */ void furi_string_set_char(FuriString* string, size_t index, const char c); -/** - * @brief Set the string to the n first characters of other one. - * @param string - * @param source - * @param offset - * @param length +/** Set the string to the n first characters of other one. + * + * @param string The FuriString instance + * @param source The source + * @param offset The offset + * @param length The length */ void furi_string_set_n(FuriString* string, const FuriString* source, size_t offset, size_t length); -/** - * @brief Format in the string the given printf format - * @param string - * @param format - * @param ... - * @return int +/** Format in the string the given printf format + * + * @param string The string + * @param format The format + * @param[in] ... The args + * + * @return number of characters printed or negative value on error */ int furi_string_printf(FuriString* string, const char format[], ...) _ATTRIBUTE((__format__(__printf__, 2, 3))); -/** - * @brief Format in the string the given printf format - * @param string - * @param format - * @param args - * @return int +/** Format in the string the given printf format + * + * @param string The FuriString instance + * @param format The format + * @param args The arguments + * + * @return number of characters printed or negative value on error */ int furi_string_vprintf(FuriString* string, const char format[], va_list args); @@ -231,45 +255,49 @@ int furi_string_vprintf(FuriString* string, const char format[], va_list args); // Appending //--------------------------------------------------------------------------- -/** - * @brief Append a character to the string. - * @param string - * @param c +/** Append a character to the string. + * + * @param string The FuriString instance + * @param c The character */ void furi_string_push_back(FuriString* string, char c); -/** - * @brief Append a string to the string. +/** Append a string to the string. + * * Concatenate the string with the other string. - * @param string_1 - * @param string_2 + * + * @param string_1 The string 1 + * @param string_2 The string 2 */ void furi_string_cat(FuriString* string_1, const FuriString* string_2); -/** - * @brief Append a C string to the string. +/** Append a C string to the string. + * * Concatenate the string with the C string. - * @param string_1 - * @param cstring_2 + * + * @param string_1 The string 1 + * @param cstring_2 The cstring 2 */ void furi_string_cat_str(FuriString* string_1, const char cstring_2[]); -/** - * @brief Append to the string the formatted string of the given printf format. - * @param string - * @param format - * @param ... - * @return int +/** Append to the string the formatted string of the given printf format. + * + * @param string The string + * @param format The format + * @param[in] ... The args + * + * @return number of characters printed or negative value on error */ int furi_string_cat_printf(FuriString* string, const char format[], ...) _ATTRIBUTE((__format__(__printf__, 2, 3))); -/** - * @brief Append to the string the formatted string of the given printf format. - * @param string - * @param format - * @param args - * @return int +/** Append to the string the formatted string of the given printf format. + * + * @param string The FuriString instance + * @param format The format + * @param args The arguments + * + * @return number of characters printed or negative value on error */ int furi_string_cat_vprintf(FuriString* string, const char format[], va_list args); @@ -277,37 +305,45 @@ int furi_string_cat_vprintf(FuriString* string, const char format[], va_list arg // Comparators //--------------------------------------------------------------------------- -/** - * @brief Compare two strings and return the sort order. - * @param string_1 - * @param string_2 - * @return int +/** Compare two strings and return the sort order. + * + * @param string_1 The string 1 + * @param string_2 The string 2 + * + * @return zero if equal */ int furi_string_cmp(const FuriString* string_1, const FuriString* string_2); -/** - * @brief Compare string with C string and return the sort order. - * @param string_1 - * @param cstring_2 - * @return int +/** Compare string with C string and return the sort order. + * + * @param string_1 The string 1 + * @param cstring_2 The cstring 2 + * + * @return zero if equal */ int furi_string_cmp_str(const FuriString* string_1, const char cstring_2[]); -/** - * @brief Compare two strings (case insensitive according to the current locale) and return the sort order. +/** Compare two strings (case insensitive according to the current locale) and + * return the sort order. + * * Note: doesn't work with UTF-8 strings. - * @param string_1 - * @param string_2 - * @return int + * + * @param string_1 The string 1 + * @param string_2 The string 2 + * + * @return zero if equal */ int furi_string_cmpi(const FuriString* string_1, const FuriString* string_2); -/** - * @brief Compare string with C string (case insensitive according to the current locale) and return the sort order. +/** Compare string with C string (case insensitive according to the current + * locale) and return the sort order. + * * Note: doesn't work with UTF-8 strings. - * @param string_1 - * @param cstring_2 - * @return int + * + * @param string_1 The string 1 + * @param cstring_2 The cstring 2 + * + * @return zero if equal */ int furi_string_cmpi_str(const FuriString* string_1, const char cstring_2[]); @@ -315,46 +351,47 @@ int furi_string_cmpi_str(const FuriString* string_1, const char cstring_2[]); // Search //--------------------------------------------------------------------------- -/** - * @brief Search the first occurrence of the needle in the string from the position start. - * Return STRING_FAILURE if not found. - * By default, start is zero. - * @param string - * @param needle - * @param start - * @return size_t +/** Search the first occurrence of the needle in the string from the position + * start. + * + * @param string The FuriString instance + * @param needle The needle + * @param start The start (By default, start is zero) + * + * @return position or FURI_STRING_FAILURE if not found */ size_t furi_string_search(const FuriString* string, const FuriString* needle, size_t start); -/** - * @brief Search the first occurrence of the needle in the string from the position start. - * Return STRING_FAILURE if not found. - * @param string - * @param needle - * @param start - * @return size_t +/** Search the first occurrence of the needle in the string from the position + * start. + * + * @param string The FuriString instance + * @param needle The needle + * @param start The start (By default, start is zero) + * + * @return position or FURI_STRING_FAILURE if not found */ size_t furi_string_search_str(const FuriString* string, const char needle[], size_t start); -/** - * @brief Search for the position of the character c from the position start (include) in the string. - * Return STRING_FAILURE if not found. - * By default, start is zero. - * @param string - * @param c - * @param start - * @return size_t +/** Search for the position of the character c from the position start (include) + * in the string. + * + * @param string The FuriString instance + * @param c The character + * @param start The start (By default, start is zero) + * + * @return position or FURI_STRING_FAILURE if not found */ size_t furi_string_search_char(const FuriString* string, char c, size_t start); -/** - * @brief Reverse search for the position of the character c from the position start (include) in the string. - * Return STRING_FAILURE if not found. - * By default, start is zero. - * @param string - * @param c - * @param start - * @return size_t +/** Reverse search for the position of the character c from the position start + * (include) in the string. + * + * @param string The FuriString instance + * @param c The character + * @param start The start (By default, start is zero) + * + * @return position or FURI_STRING_FAILURE if not found */ size_t furi_string_search_rchar(const FuriString* string, char c, size_t start); @@ -362,19 +399,21 @@ size_t furi_string_search_rchar(const FuriString* string, char c, size_t start); // Equality //--------------------------------------------------------------------------- -/** - * @brief Test if two strings are equal. - * @param string_1 - * @param string_2 - * @return bool +/** Test if two strings are equal. + * + * @param string_1 The string 1 + * @param string_2 The string 2 + * + * @return true if equal false otherwise */ bool furi_string_equal(const FuriString* string_1, const FuriString* string_2); -/** - * @brief Test if the string is equal to the C string. - * @param string_1 - * @param cstring_2 - * @return bool +/** Test if the string is equal to the C string. + * + * @param string_1 The string 1 + * @param cstring_2 The cstring 2 + * + * @return true if equal false otherwise */ bool furi_string_equal_str(const FuriString* string_1, const char cstring_2[]); @@ -382,37 +421,38 @@ bool furi_string_equal_str(const FuriString* string_1, const char cstring_2[]); // Replace //--------------------------------------------------------------------------- -/** - * @brief Replace in the string the sub-string at position 'pos' for 'len' bytes into the C string 'replace'. - * @param string - * @param pos - * @param len - * @param replace +/** Replace in the string the sub-string at position 'pos' for 'len' bytes into + * the C string 'replace'. + * + * @param string The string + * @param pos The position + * @param len The length + * @param replace The replace */ void furi_string_replace_at(FuriString* string, size_t pos, size_t len, const char replace[]); -/** - * @brief Replace a string 'needle' to string 'replace' in a string from 'start' position. - * By default, start is zero. - * Return STRING_FAILURE if 'needle' not found or replace position. - * @param string - * @param needle - * @param replace - * @param start - * @return size_t +/** Replace a string 'needle' to string 'replace' in a string from 'start' + * position. + * + * @param string The string + * @param needle The needle + * @param replace The replace + * @param start The start (By default, start is zero) + * + * @return Return FURI_STRING_FAILURE if 'needle' not found or replace position. */ size_t furi_string_replace(FuriString* string, FuriString* needle, FuriString* replace, size_t start); -/** - * @brief Replace a C string 'needle' to C string 'replace' in a string from 'start' position. - * By default, start is zero. - * Return STRING_FAILURE if 'needle' not found or replace position. - * @param string - * @param needle - * @param replace - * @param start - * @return size_t +/** Replace a C string 'needle' to C string 'replace' in a string from 'start' + * position. + * + * @param string The string + * @param needle The needle + * @param replace The replace + * @param start The start (By default, start is zero) + * + * @return Return FURI_STRING_FAILURE if 'needle' not found or replace position. */ size_t furi_string_replace_str( FuriString* string, @@ -420,22 +460,22 @@ size_t furi_string_replace_str( const char replace[], size_t start); -/** - * @brief Replace all occurrences of 'needle' string into 'replace' string. - * @param string - * @param needle - * @param replace +/** Replace all occurrences of 'needle' string into 'replace' string. + * + * @param string The string + * @param needle The needle + * @param replace The replace */ void furi_string_replace_all( FuriString* string, const FuriString* needle, const FuriString* replace); -/** - * @brief Replace all occurrences of 'needle' C string into 'replace' C string. - * @param string - * @param needle - * @param replace +/** Replace all occurrences of 'needle' C string into 'replace' C string. + * + * @param string The string + * @param needle The needle + * @param replace The replace */ void furi_string_replace_all_str(FuriString* string, const char needle[], const char replace[]); @@ -443,35 +483,39 @@ void furi_string_replace_all_str(FuriString* string, const char needle[], const // Start / End tests //--------------------------------------------------------------------------- -/** - * @brief Test if the string starts with the given string. - * @param string - * @param start - * @return bool +/** Test if the string starts with the given string. + * + * @param string The FuriString instance + * @param start The FuriString instance + * + * @return true if string starts with */ bool furi_string_start_with(const FuriString* string, const FuriString* start); -/** - * @brief Test if the string starts with the given C string. - * @param string - * @param start - * @return bool +/** Test if the string starts with the given C string. + * + * @param string The FuriString instance + * @param start The start + * + * @return true if string starts with */ bool furi_string_start_with_str(const FuriString* string, const char start[]); -/** - * @brief Test if the string ends with the given string. - * @param string - * @param end - * @return bool +/** Test if the string ends with the given string. + * + * @param string The FuriString instance + * @param end The end + * + * @return true if string ends with */ bool furi_string_end_with(const FuriString* string, const FuriString* end); -/** - * @brief Test if the string ends with the given C string. - * @param string - * @param end - * @return bool +/** Test if the string ends with the given C string. + * + * @param string The FuriString instance + * @param end The end + * + * @return true if string ends with */ bool furi_string_end_with_str(const FuriString* string, const char end[]); @@ -479,33 +523,34 @@ bool furi_string_end_with_str(const FuriString* string, const char end[]); // Trim //--------------------------------------------------------------------------- -/** - * @brief Trim the string left to the first 'index' bytes. - * @param string - * @param index +/** Trim the string left to the first 'index' bytes. + * + * @param string The FuriString instance + * @param index The index */ void furi_string_left(FuriString* string, size_t index); -/** - * @brief Trim the string right from the 'index' position to the last position. - * @param string - * @param index +/** Trim the string right from the 'index' position to the last position. + * + * @param string The FuriString instance + * @param index The index */ void furi_string_right(FuriString* string, size_t index); -/** - * @brief Trim the string from position index to size bytes. +/** Trim the string from position index to size bytes. + * * See also furi_string_set_n. - * @param string - * @param index - * @param size + * + * @param string The FuriString instance + * @param index The index + * @param size The size */ void furi_string_mid(FuriString* string, size_t index, size_t size); -/** - * @brief Trim a string from the given set of characters (default is " \n\r\t"). - * @param string - * @param chars +/** Trim a string from the given set of characters (default is " \n\r\t"). + * + * @param string The FuriString instance + * @param chars The characters */ void furi_string_trim(FuriString* string, const char chars[]); @@ -513,28 +558,25 @@ void furi_string_trim(FuriString* string, const char chars[]); // UTF8 //--------------------------------------------------------------------------- -/** - * @brief An unicode value. - */ +/** An unicode value */ typedef unsigned int FuriStringUnicodeValue; -/** - * @brief Compute the length in UTF8 characters in the string. - * @param string - * @return size_t +/** Compute the length in UTF8 characters in the string. + * + * @param string The FuriString instance + * + * @return strings size */ size_t furi_string_utf8_length(FuriString* string); -/** - * @brief Push unicode into string, encoding it in UTF8. - * @param string - * @param unicode +/** Push unicode into string, encoding it in UTF8. + * + * @param string The string + * @param unicode The unicode */ void furi_string_utf8_push(FuriString* string, FuriStringUnicodeValue unicode); -/** - * @brief State of the UTF8 decoding machine state. - */ +/** State of the UTF8 decoding machine state */ typedef enum { FuriStringUTF8StateStarting, FuriStringUTF8StateDecoding1, @@ -543,14 +585,16 @@ typedef enum { FuriStringUTF8StateError } FuriStringUTF8State; -/** - * @brief Main generic UTF8 decoder. - * It takes a character, and the previous state and the previous value of the unicode value. - * It updates the state and the decoded unicode value. - * A decoded unicode encoded value is valid only when the state is FuriStringUTF8StateStarting. - * @param c - * @param state - * @param unicode +/** Main generic UTF8 decoder + * + * It takes a character, and the previous state and the previous value of the + * unicode value. It updates the state and the decoded unicode value. A decoded + * unicode encoded value is valid only when the state is + * FuriStringUTF8StateStarting. + * + * @param c The character + * @param state The state + * @param unicode The unicode */ void furi_string_utf8_decode(char c, FuriStringUTF8State* state, FuriStringUnicodeValue* unicode); @@ -565,76 +609,68 @@ void furi_string_utf8_decode(char c, FuriStringUTF8State* state, FuriStringUnico * func1 is the string function / func2 is the str function. */ -/** - * @brief Select for 1 argument - */ +/** Select for 1 argument */ #define FURI_STRING_SELECT1(func1, func2, a) \ _Generic((a), char*: func2, const char*: func2, FuriString*: func1, const FuriString*: func1)( \ a) -/** - * @brief Select for 2 arguments - */ +/** Select for 2 arguments */ #define FURI_STRING_SELECT2(func1, func2, a, b) \ _Generic((b), char*: func2, const char*: func2, FuriString*: func1, const FuriString*: func1)( \ a, b) -/** - * @brief Select for 3 arguments - */ +/** Select for 3 arguments */ #define FURI_STRING_SELECT3(func1, func2, a, b, c) \ _Generic((b), char*: func2, const char*: func2, FuriString*: func1, const FuriString*: func1)( \ a, b, c) -/** - * @brief Select for 4 arguments - */ +/** Select for 4 arguments */ #define FURI_STRING_SELECT4(func1, func2, a, b, c, d) \ _Generic((b), char*: func2, const char*: func2, FuriString*: func1, const FuriString*: func1)( \ a, b, c, d) -/** - * @brief Allocate new FuriString and set it content to string (or C string). +/** Allocate new FuriString and set it content to string (or C string). + * * ([c]string) */ #define furi_string_alloc_set(a) \ FURI_STRING_SELECT1(furi_string_alloc_set, furi_string_alloc_set_str, a) -/** - * @brief Set the string content to string (or C string). +/** Set the string content to string (or C string). + * * (string, [c]string) */ #define furi_string_set(a, b) FURI_STRING_SELECT2(furi_string_set, furi_string_set_str, a, b) -/** - * @brief Compare string with string (or C string) and return the sort order. +/** Compare string with string (or C string) and return the sort order. + * * Note: doesn't work with UTF-8 strings. * (string, [c]string) */ #define furi_string_cmp(a, b) FURI_STRING_SELECT2(furi_string_cmp, furi_string_cmp_str, a, b) -/** - * @brief Compare string with string (or C string) (case insensitive according to the current locale) and return the sort order. +/** Compare string with string (or C string) (case insensitive according to the current locale) and return the sort order. + * * Note: doesn't work with UTF-8 strings. * (string, [c]string) */ #define furi_string_cmpi(a, b) FURI_STRING_SELECT2(furi_string_cmpi, furi_string_cmpi_str, a, b) -/** - * @brief Test if the string is equal to the string (or C string). +/** Test if the string is equal to the string (or C string). + * * (string, [c]string) */ #define furi_string_equal(a, b) FURI_STRING_SELECT2(furi_string_equal, furi_string_equal_str, a, b) -/** - * @brief Replace all occurrences of string into string (or C string to another C string) in a string. +/** Replace all occurrences of string into string (or C string to another C string) in a string. + * * (string, [c]string, [c]string) */ #define furi_string_replace_all(a, b, c) \ FURI_STRING_SELECT3(furi_string_replace_all, furi_string_replace_all_str, a, b, c) -/** - * @brief Search for a string (or C string) in a string +/** Search for a string (or C string) in a string + * * (string, [c]string[, start=0]) */ #define furi_string_search(...) \ @@ -643,52 +679,52 @@ void furi_string_utf8_decode(char c, FuriStringUTF8State* state, FuriStringUnico furi_string_search, \ furi_string_search_str, \ M_DEFAULT_ARGS(3, (0), __VA_ARGS__)) -/** - * @brief Search for a C string in a string +/** Search for a C string in a string + * * (string, cstring[, start=0]) */ #define furi_string_search_str(...) furi_string_search_str(M_DEFAULT_ARGS(3, (0), __VA_ARGS__)) -/** - * @brief Test if the string starts with the given string (or C string). +/** Test if the string starts with the given string (or C string). + * * (string, [c]string) */ #define furi_string_start_with(a, b) \ FURI_STRING_SELECT2(furi_string_start_with, furi_string_start_with_str, a, b) -/** - * @brief Test if the string ends with the given string (or C string). +/** Test if the string ends with the given string (or C string). + * * (string, [c]string) */ #define furi_string_end_with(a, b) \ FURI_STRING_SELECT2(furi_string_end_with, furi_string_end_with_str, a, b) -/** - * @brief Append a string (or C string) to the string. +/** Append a string (or C string) to the string. + * * (string, [c]string) */ #define furi_string_cat(a, b) FURI_STRING_SELECT2(furi_string_cat, furi_string_cat_str, a, b) -/** - * @brief Trim a string from the given set of characters (default is " \n\r\t"). +/** Trim a string from the given set of characters (default is " \n\r\t"). + * * (string[, set=" \n\r\t"]) */ #define furi_string_trim(...) furi_string_trim(M_DEFAULT_ARGS(2, (" \n\r\t"), __VA_ARGS__)) -/** - * @brief Search for a character in a string. +/** Search for a character in a string. + * * (string, character[, start=0]) */ #define furi_string_search_char(...) furi_string_search_char(M_DEFAULT_ARGS(3, (0), __VA_ARGS__)) -/** - * @brief Reverse Search for a character in a string. +/** Reverse Search for a character in a string. + * * (string, character[, start=0]) */ #define furi_string_search_rchar(...) furi_string_search_rchar(M_DEFAULT_ARGS(3, (0), __VA_ARGS__)) -/** - * @brief Replace a string to another string (or C string to another C string) in a string. +/** Replace a string to another string (or C string to another C string) in a string. + * * (string, [c]string, [c]string[, start=0]) */ #define furi_string_replace(...) \ @@ -698,30 +734,22 @@ void furi_string_utf8_decode(char c, FuriStringUTF8State* state, FuriStringUnico furi_string_replace_str, \ M_DEFAULT_ARGS(4, (0), __VA_ARGS__)) -/** - * @brief Replace a C string to another C string in a string. +/** Replace a C string to another C string in a string. + * * (string, cstring, cstring[, start=0]) */ #define furi_string_replace_str(...) furi_string_replace_str(M_DEFAULT_ARGS(4, (0), __VA_ARGS__)) -/** - * @brief INIT OPLIST for FuriString. - */ +/** INIT OPLIST for FuriString */ #define F_STR_INIT(a) ((a) = furi_string_alloc()) -/** - * @brief INIT SET OPLIST for FuriString. - */ +/** INIT SET OPLIST for FuriString */ #define F_STR_INIT_SET(a, b) ((a) = furi_string_alloc_set(b)) -/** - * @brief INIT MOVE OPLIST for FuriString. - */ +/** INIT MOVE OPLIST for FuriString */ #define F_STR_INIT_MOVE(a, b) ((a) = furi_string_alloc_move(b)) -/** - * @brief OPLIST for FuriString. - */ +/** OPLIST for FuriString */ #define FURI_STRING_OPLIST \ (INIT(F_STR_INIT), \ INIT_SET(F_STR_INIT_SET), \ From afc4e299a1d8e501ac456958678cf9fef0f4e6c3 Mon Sep 17 00:00:00 2001 From: hedger Date: Tue, 30 Jul 2024 05:30:25 +0300 Subject: [PATCH 05/22] toolchain: v39 (#3793) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * toolchain: v39 * vscode, sublime: re-enabled clangd binary from toolchain as language server * Sublime project: update for toolchain v39 Co-authored-by: あく --- .sublime-project | 4 +--- .vscode/example/settings.json.tmpl | 2 +- scripts/toolchain/fbtenv.cmd | 2 +- scripts/toolchain/fbtenv.sh | 2 +- scripts/ufbt/project_template/.vscode/settings.json | 2 +- 5 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.sublime-project b/.sublime-project index da2ef41a12e..0ae007b3410 100644 --- a/.sublime-project +++ b/.sublime-project @@ -10,10 +10,8 @@ "clangd": { "enabled": true, "initializationOptions": { - // Use with toolchain version 39+ // Set `"binary": "custom",` option in LSP-clangd config to use toolchain clangd - // "custom_command": ["toolchain/current/bin/clangd"], - + "custom_command": ["toolchain/current/bin/clangd"], "clangd.compile-commands-dir": "build/latest", "clangd.header-insertion": "never", "clangd.query-driver": "**/arm-none-eabi-*", diff --git a/.vscode/example/settings.json.tmpl b/.vscode/example/settings.json.tmpl index 5e0da689770..5e5b5dcf41d 100644 --- a/.vscode/example/settings.json.tmpl +++ b/.vscode/example/settings.json.tmpl @@ -12,7 +12,7 @@ "SConstruct": "python", "*.fam": "python" }, - // "clangd.path": "${workspaceFolder}/toolchain/current/bin/clangd@FBT_PLATFORM_EXECUTABLE_EXT@", + "clangd.path": "${workspaceFolder}/toolchain/current/bin/clangd@FBT_PLATFORM_EXECUTABLE_EXT@", "clangd.arguments": [ "--query-driver=**/arm-none-eabi-*", "--compile-commands-dir=${workspaceFolder}/build/latest", diff --git a/scripts/toolchain/fbtenv.cmd b/scripts/toolchain/fbtenv.cmd index c0a3cd87008..182ba9bb101 100644 --- a/scripts/toolchain/fbtenv.cmd +++ b/scripts/toolchain/fbtenv.cmd @@ -13,7 +13,7 @@ if not ["%FBT_NOENV%"] == [""] ( exit /b 0 ) -set "FLIPPER_TOOLCHAIN_VERSION=38" +set "FLIPPER_TOOLCHAIN_VERSION=39" if ["%FBT_TOOLCHAIN_PATH%"] == [""] ( set "FBT_TOOLCHAIN_PATH=%FBT_ROOT%" diff --git a/scripts/toolchain/fbtenv.sh b/scripts/toolchain/fbtenv.sh index 156fabcca80..ce92beca75a 100755 --- a/scripts/toolchain/fbtenv.sh +++ b/scripts/toolchain/fbtenv.sh @@ -4,7 +4,7 @@ # public variables DEFAULT_SCRIPT_PATH="$(pwd -P)"; -FBT_TOOLCHAIN_VERSION="${FBT_TOOLCHAIN_VERSION:-"38"}"; +FBT_TOOLCHAIN_VERSION="${FBT_TOOLCHAIN_VERSION:-"39"}"; if [ -z ${FBT_TOOLCHAIN_PATH+x} ] ; then FBT_TOOLCHAIN_PATH_WAS_SET=0; diff --git a/scripts/ufbt/project_template/.vscode/settings.json b/scripts/ufbt/project_template/.vscode/settings.json index b93ad82f1aa..d304752a929 100644 --- a/scripts/ufbt/project_template/.vscode/settings.json +++ b/scripts/ufbt/project_template/.vscode/settings.json @@ -19,7 +19,7 @@ "[python]": { "editor.defaultFormatter": "ms-python.black-formatter" }, - // "clangd.path": "@UFBT_TOOLCHAIN_CLANGD@", + "clangd.path": "@UFBT_TOOLCHAIN_CLANGD@", "clangd.arguments": [ "--query-driver=**/arm-none-eabi-*", "--compile-commands-dir=${workspaceFolder}/.vscode", From 380ec2ac46606c7fc2db796499e10f10076384f6 Mon Sep 17 00:00:00 2001 From: hedger Date: Wed, 31 Jul 2024 19:38:20 +0300 Subject: [PATCH 06/22] Added `-Wundef` to compiler options (#3815) * fbt: added -Wundef to compiler options; libs: various small fixes for missing defines; desktop: proper access to current RTOS config * apps: fixes for FURI_DEBUG handling * rpc: unified definition checks * Cleanup various defines use * Cleanup configs and move SVCall ISR priority configuration to furi_hal_interrupts Co-authored-by: Aleksandr Kutuzov --- applications/services/cli/cli_commands.c | 4 ++-- .../services/desktop/views/desktop_view_locked.c | 5 ++--- .../desktop/views/desktop_view_pin_timeout.c | 6 +----- applications/services/rpc/rpc.c | 8 ++++---- applications/settings/system/system_settings.c | 4 ++-- furi/furi.c | 7 ------- furi/furi.h | 2 +- lib/drivers/bq25896_reg.h | 4 ++-- lib/drivers/lp5562_reg.h | 4 ++-- site_scons/cc.scons | 1 + targets/f7/ble_glue/app_conf.h | 4 ++++ targets/f7/ble_glue/ble_conf.h | 12 ++++++++++++ targets/f7/furi_hal/furi_hal_interrupt.c | 1 + targets/f7/inc/FreeRTOSConfig.h | 3 ++- 14 files changed, 36 insertions(+), 29 deletions(-) diff --git a/applications/services/cli/cli_commands.c b/applications/services/cli/cli_commands.c index 5a1b11d8038..b4eeebbe638 100644 --- a/applications/services/cli/cli_commands.c +++ b/applications/services/cli/cli_commands.c @@ -260,7 +260,7 @@ void cli_command_sysctl_heap_track(Cli* cli, FuriString* args, void* context) { } else if(!furi_string_cmp(args, "main")) { furi_hal_rtc_set_heap_track_mode(FuriHalRtcHeapTrackModeMain); printf("Heap tracking enabled for application main thread"); -#if FURI_DEBUG +#ifdef FURI_DEBUG } else if(!furi_string_cmp(args, "tree")) { furi_hal_rtc_set_heap_track_mode(FuriHalRtcHeapTrackModeTree); printf("Heap tracking enabled for application main and child threads"); @@ -279,7 +279,7 @@ void cli_command_sysctl_print_usage(void) { printf("Cmd list:\r\n"); printf("\tdebug <0|1>\t - Enable or disable system debug\r\n"); -#if FURI_DEBUG +#ifdef FURI_DEBUG printf("\theap_track \t - Set heap allocation tracking mode\r\n"); #else printf("\theap_track \t - Set heap allocation tracking mode\r\n"); diff --git a/applications/services/desktop/views/desktop_view_locked.c b/applications/services/desktop/views/desktop_view_locked.c index 81d3fc65f55..f3b001e1e05 100644 --- a/applications/services/desktop/views/desktop_view_locked.c +++ b/applications/services/desktop/views/desktop_view_locked.c @@ -1,12 +1,11 @@ -#include -#include #include + #include #include #include + #include -#include #include "../desktop_i.h" #include "desktop_view_locked.h" diff --git a/applications/services/desktop/views/desktop_view_pin_timeout.c b/applications/services/desktop/views/desktop_view_pin_timeout.c index 2811ba7d25d..d7e5507a75b 100644 --- a/applications/services/desktop/views/desktop_view_pin_timeout.c +++ b/applications/services/desktop/views/desktop_view_pin_timeout.c @@ -1,9 +1,5 @@ - #include -#include -#include -#include -#include + #include #include diff --git a/applications/services/rpc/rpc.c b/applications/services/rpc/rpc.c index 6ad16fbff4a..00ec2259c75 100644 --- a/applications/services/rpc/rpc.c +++ b/applications/services/rpc/rpc.c @@ -228,7 +228,7 @@ bool rpc_pb_stream_read(pb_istream_t* istream, pb_byte_t* buf, size_t count) { } } -#if SRV_RPC_DEBUG +#ifdef SRV_RPC_DEBUG rpc_debug_print_data("INPUT", buf, bytes_received); #endif @@ -268,7 +268,7 @@ static int32_t rpc_session_worker(void* context) { bool message_decode_failed = false; if(pb_decode_ex(&istream, &PB_Main_msg, session->decoded_message, PB_DECODE_DELIMITED)) { -#if SRV_RPC_DEBUG +#ifdef SRV_RPC_DEBUG FURI_LOG_I(TAG, "INPUT:"); rpc_debug_print_message(session->decoded_message); #endif @@ -452,7 +452,7 @@ void rpc_send(RpcSession* session, PB_Main* message) { pb_ostream_t ostream = PB_OSTREAM_SIZING; -#if SRV_RPC_DEBUG +#ifdef SRV_RPC_DEBUG FURI_LOG_I(TAG, "OUTPUT:"); rpc_debug_print_message(message); #endif @@ -465,7 +465,7 @@ void rpc_send(RpcSession* session, PB_Main* message) { pb_encode_ex(&ostream, &PB_Main_msg, message, PB_ENCODE_DELIMITED); -#if SRV_RPC_DEBUG +#ifdef SRV_RPC_DEBUG rpc_debug_print_data("OUTPUT", buffer, ostream.bytes_written); #endif diff --git a/applications/settings/system/system_settings.c b/applications/settings/system/system_settings.c index 73969de31ec..636d49b42a4 100644 --- a/applications/settings/system/system_settings.c +++ b/applications/settings/system/system_settings.c @@ -92,7 +92,7 @@ static void debug_changed(VariableItem* item) { const char* const heap_trace_mode_text[] = { "None", "Main", -#if FURI_DEBUG +#ifdef FURI_DEBUG "Tree", "All", #endif @@ -101,7 +101,7 @@ const char* const heap_trace_mode_text[] = { const uint32_t heap_trace_mode_value[] = { FuriHalRtcHeapTrackModeNone, FuriHalRtcHeapTrackModeMain, -#if FURI_DEBUG +#ifdef FURI_DEBUG FuriHalRtcHeapTrackModeTree, FuriHalRtcHeapTrackModeAll, #endif diff --git a/furi/furi.c b/furi/furi.c index dca674da572..f4e64ee099b 100644 --- a/furi/furi.c +++ b/furi/furi.c @@ -15,13 +15,6 @@ void furi_run(void) { furi_check(!furi_kernel_is_irq_or_masked()); furi_check(xTaskGetSchedulerState() == taskSCHEDULER_NOT_STARTED); -#if(__ARM_ARCH_7A__ == 0U) - /* Service Call interrupt might be configured before kernel start */ - /* and when its priority is lower or equal to BASEPRI, svc instruction */ - /* causes a Hard Fault. */ - NVIC_SetPriority(SVCall_IRQn, 0U); -#endif - /* Start the kernel scheduler */ vTaskStartScheduler(); } diff --git a/furi/furi.h b/furi/furi.h index 80ee30457c6..d75debe9876 100644 --- a/furi/furi.h +++ b/furi/furi.h @@ -2,8 +2,8 @@ #include -#include "core/check.h" #include "core/common_defines.h" +#include "core/check.h" #include "core/event_loop.h" #include "core/event_loop_timer.h" #include "core/event_flag.h" diff --git a/lib/drivers/bq25896_reg.h b/lib/drivers/bq25896_reg.h index 23d094003a9..baadf6df27b 100644 --- a/lib/drivers/bq25896_reg.h +++ b/lib/drivers/bq25896_reg.h @@ -3,8 +3,8 @@ #include #include -#if BITS_BIG_ENDIAN == 1 -#error Bit structures defined in this file is not portable to BE +#if defined(BITS_BIG_ENDIAN) && BITS_BIG_ENDIAN == 1 +#error Bit structures defined in this file are not portable to BE #endif #define BQ25896_ADDRESS 0xD6 diff --git a/lib/drivers/lp5562_reg.h b/lib/drivers/lp5562_reg.h index 9103e5395f9..a901cbada31 100644 --- a/lib/drivers/lp5562_reg.h +++ b/lib/drivers/lp5562_reg.h @@ -1,7 +1,7 @@ #pragma once -#if BITS_BIG_ENDIAN == 1 -#error Bit structures defined in this file is not portable to BE +#if defined(BITS_BIG_ENDIAN) && BITS_BIG_ENDIAN == 1 +#error Bit structures defined in this file are not portable to BE #endif #define LP5562_ADDRESS 0x60 diff --git a/site_scons/cc.scons b/site_scons/cc.scons index 603ec621c63..c5d99b89656 100644 --- a/site_scons/cc.scons +++ b/site_scons/cc.scons @@ -28,6 +28,7 @@ ENV.AppendUnique( "-Wno-address-of-packed-member", "-Wredundant-decls", "-Wdouble-promotion", + "-Wundef", "-fdata-sections", "-ffunction-sections", "-fsingle-precision-constant", diff --git a/targets/f7/ble_glue/app_conf.h b/targets/f7/ble_glue/app_conf.h index 43be8129dcc..9ceb747c190 100644 --- a/targets/f7/ble_glue/app_conf.h +++ b/targets/f7/ble_glue/app_conf.h @@ -194,3 +194,7 @@ 255 /**< Set to 255 with the memory manager and the mailbox */ #define TL_BLE_EVENT_FRAME_SIZE (TL_EVT_HDR_SIZE + CFG_TLBLE_MOST_EVENT_PAYLOAD_SIZE) + +/* Various defines for compatibility with -Wundef - thanks, ST */ +#define CFG_DEBUG_TRACE_FULL 0 +#define CFG_DEBUG_TRACE_LIGHT 0 diff --git a/targets/f7/ble_glue/ble_conf.h b/targets/f7/ble_glue/ble_conf.h index 4c523a707e4..c34c54de664 100644 --- a/targets/f7/ble_glue/ble_conf.h +++ b/targets/f7/ble_glue/ble_conf.h @@ -9,3 +9,15 @@ #define BLE_CFG_SVC_MAX_NBR_CB 0 #define BLE_CFG_CLT_MAX_NBR_CB 0 + +/* Various defines for compatibility with -Wundef - thanks, ST */ +#define BLE_CFG_BLS_INTERMEDIATE_CUFF_PRESSURE 0 +#define BLE_CFG_BLS_TIME_STAMP_FLAG 0 +#define BLE_CFG_BLS_PULSE_RATE_FLAG 0 +#define BLE_CFG_BLS_USER_ID_FLAG 0 +#define BLE_CFG_BLS_MEASUREMENT_STATUS_FLAG 0 +#define BLE_CFG_HRS_ENERGY_EXPENDED_INFO_FLAG 0 +#define BLE_CFG_HRS_ENERGY_RR_INTERVAL_FLAG 0 +#define BLE_CFG_HTS_MEASUREMENT_INTERVAL 0 +#define BLE_CFG_HTS_TIME_STAMP_FLAG 0 +#define BLE_CFG_HTS_TEMPERATURE_TYPE_VALUE_STATIC 0 diff --git a/targets/f7/furi_hal/furi_hal_interrupt.c b/targets/f7/furi_hal/furi_hal_interrupt.c index 35c40c25955..cf10c8d33df 100644 --- a/targets/f7/furi_hal/furi_hal_interrupt.c +++ b/targets/f7/furi_hal/furi_hal_interrupt.c @@ -120,6 +120,7 @@ void furi_hal_interrupt_init(void) { TAMP_STAMP_LSECSS_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 0, 0)); NVIC_EnableIRQ(TAMP_STAMP_LSECSS_IRQn); + NVIC_SetPriority(SVCall_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 0, 0)); NVIC_SetPriority(PendSV_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 15, 0)); NVIC_SetPriority(FPU_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 15, 0)); diff --git a/targets/f7/inc/FreeRTOSConfig.h b/targets/f7/inc/FreeRTOSConfig.h index 62310511d2d..2948faef934 100644 --- a/targets/f7/inc/FreeRTOSConfig.h +++ b/targets/f7/inc/FreeRTOSConfig.h @@ -17,11 +17,13 @@ #define configUSE_PREEMPTION 1 #define configSUPPORT_STATIC_ALLOCATION 1 #define configSUPPORT_DYNAMIC_ALLOCATION 0 +#define configUSE_MALLOC_FAILED_HOOK 0 #define configUSE_IDLE_HOOK 0 #define configUSE_TICK_HOOK 0 #define configCPU_CLOCK_HZ (SystemCoreClock) #define configTICK_RATE_HZ_RAW 1000 #define configTICK_RATE_HZ ((TickType_t)configTICK_RATE_HZ_RAW) +#define configUSE_16_BIT_TICKS 0 #define configMAX_PRIORITIES (32) #define configMINIMAL_STACK_SIZE ((uint16_t)128) @@ -34,7 +36,6 @@ #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() #define configUSE_TRACE_FACILITY 1 -#define configUSE_16_BIT_TICKS 0 #define configUSE_MUTEXES 1 #define configQUEUE_REGISTRY_SIZE 0 #define configCHECK_FOR_STACK_OVERFLOW 0 From 01b402ba2b701b39974a0d5351653732c002d076 Mon Sep 17 00:00:00 2001 From: Astra <93453568+Astrrra@users.noreply.github.com> Date: Thu, 1 Aug 2024 01:59:41 +0900 Subject: [PATCH 07/22] [FL-3827] iButton ID writing (#3734) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Function naming corrections and enabled writing ID for all dallas blanks * Enable ID writing for ds1971 and ds1996 * Sync API Symbols Co-authored-by: あく --- applications/main/ibutton/ibutton_cli.c | 4 ++-- applications/main/ibutton/ibutton_i.h | 2 +- .../ibutton/scenes/ibutton_scene_read_key_menu.c | 10 +++++----- .../ibutton/scenes/ibutton_scene_saved_key_menu.c | 10 +++++----- .../main/ibutton/scenes/ibutton_scene_write.c | 4 ++-- lib/ibutton/ibutton_protocols.c | 4 ++-- lib/ibutton/ibutton_protocols.h | 2 +- lib/ibutton/ibutton_worker.c | 10 +++++----- lib/ibutton/ibutton_worker.h | 2 +- lib/ibutton/ibutton_worker_i.h | 2 +- lib/ibutton/ibutton_worker_modes.c | 8 ++++---- lib/ibutton/protocols/dallas/protocol_dallas_base.h | 2 +- lib/ibutton/protocols/dallas/protocol_ds1971.c | 13 +++++++++++-- lib/ibutton/protocols/dallas/protocol_ds1990.c | 8 ++++---- lib/ibutton/protocols/dallas/protocol_ds1992.c | 11 +++++------ lib/ibutton/protocols/dallas/protocol_ds1996.c | 13 +++++++++++-- lib/ibutton/protocols/dallas/protocol_ds_generic.c | 8 ++++---- .../protocols/dallas/protocol_group_dallas.c | 8 ++++---- lib/ibutton/protocols/misc/protocol_group_misc.c | 2 +- lib/ibutton/protocols/protocol_common.h | 2 +- lib/ibutton/protocols/protocol_group_base.h | 2 +- targets/f18/api_symbols.csv | 2 +- targets/f7/api_symbols.csv | 6 +++--- 23 files changed, 76 insertions(+), 59 deletions(-) diff --git a/applications/main/ibutton/ibutton_cli.c b/applications/main/ibutton/ibutton_cli.c index cf6442c0614..2338ca3c3d7 100644 --- a/applications/main/ibutton/ibutton_cli.c +++ b/applications/main/ibutton/ibutton_cli.c @@ -156,7 +156,7 @@ void ibutton_cli_write(Cli* cli, FuriString* args) { } if(!(ibutton_protocols_get_features(protocols, ibutton_key_get_protocol_id(key)) & - iButtonProtocolFeatureWriteBlank)) { + iButtonProtocolFeatureWriteId)) { ibutton_cli_print_usage(); break; } @@ -165,7 +165,7 @@ void ibutton_cli_write(Cli* cli, FuriString* args) { ibutton_cli_print_key(protocols, key); printf("Press Ctrl+C to abort\r\n"); - ibutton_worker_write_blank_start(worker, key); + ibutton_worker_write_id_start(worker, key); while(true) { uint32_t flags = furi_event_flag_wait( write_context.event, EVENT_FLAG_IBUTTON_COMPLETE, FuriFlagWaitAny, 100); diff --git a/applications/main/ibutton/ibutton_i.h b/applications/main/ibutton/ibutton_i.h index d355a4ea5f2..454837e9779 100644 --- a/applications/main/ibutton/ibutton_i.h +++ b/applications/main/ibutton/ibutton_i.h @@ -36,7 +36,7 @@ typedef enum { iButtonWriteModeInvalid, - iButtonWriteModeBlank, + iButtonWriteModeId, iButtonWriteModeCopy, } iButtonWriteMode; diff --git a/applications/main/ibutton/scenes/ibutton_scene_read_key_menu.c b/applications/main/ibutton/scenes/ibutton_scene_read_key_menu.c index 890e0a2848b..94ad4b69ee7 100644 --- a/applications/main/ibutton/scenes/ibutton_scene_read_key_menu.c +++ b/applications/main/ibutton/scenes/ibutton_scene_read_key_menu.c @@ -5,7 +5,7 @@ typedef enum { SubmenuIndexSave, SubmenuIndexEmulate, SubmenuIndexViewData, - SubmenuIndexWriteBlank, + SubmenuIndexWriteId, SubmenuIndexWriteCopy, } SubmenuIndex; @@ -30,11 +30,11 @@ void ibutton_scene_read_key_menu_on_enter(void* context) { ibutton_scene_read_key_menu_submenu_callback, ibutton); - if(features & iButtonProtocolFeatureWriteBlank) { + if(features & iButtonProtocolFeatureWriteId) { submenu_add_item( submenu, "Write ID", - SubmenuIndexWriteBlank, + SubmenuIndexWriteId, ibutton_scene_read_key_menu_submenu_callback, ibutton); } @@ -78,8 +78,8 @@ bool ibutton_scene_read_key_menu_on_event(void* context, SceneManagerEvent event dolphin_deed(DolphinDeedIbuttonEmulate); } else if(event.event == SubmenuIndexViewData) { scene_manager_next_scene(scene_manager, iButtonSceneViewData); - } else if(event.event == SubmenuIndexWriteBlank) { - ibutton->write_mode = iButtonWriteModeBlank; + } else if(event.event == SubmenuIndexWriteId) { + ibutton->write_mode = iButtonWriteModeId; scene_manager_next_scene(scene_manager, iButtonSceneWrite); } else if(event.event == SubmenuIndexWriteCopy) { ibutton->write_mode = iButtonWriteModeCopy; diff --git a/applications/main/ibutton/scenes/ibutton_scene_saved_key_menu.c b/applications/main/ibutton/scenes/ibutton_scene_saved_key_menu.c index 668b79ae3c5..6727c5458c5 100644 --- a/applications/main/ibutton/scenes/ibutton_scene_saved_key_menu.c +++ b/applications/main/ibutton/scenes/ibutton_scene_saved_key_menu.c @@ -3,7 +3,7 @@ enum SubmenuIndex { SubmenuIndexEmulate, - SubmenuIndexWriteBlank, + SubmenuIndexWriteId, SubmenuIndexWriteCopy, SubmenuIndexEdit, SubmenuIndexRename, @@ -20,9 +20,9 @@ void ibutton_scene_saved_key_menu_on_enter(void* context) { submenu_add_item(submenu, "Emulate", SubmenuIndexEmulate, ibutton_submenu_callback, ibutton); - if(features & iButtonProtocolFeatureWriteBlank) { + if(features & iButtonProtocolFeatureWriteId) { submenu_add_item( - submenu, "Write ID", SubmenuIndexWriteBlank, ibutton_submenu_callback, ibutton); + submenu, "Write ID", SubmenuIndexWriteId, ibutton_submenu_callback, ibutton); } if(features & iButtonProtocolFeatureWriteCopy) { @@ -55,8 +55,8 @@ bool ibutton_scene_saved_key_menu_on_event(void* context, SceneManagerEvent even if(event.event == SubmenuIndexEmulate) { scene_manager_next_scene(scene_manager, iButtonSceneEmulate); dolphin_deed(DolphinDeedIbuttonEmulate); - } else if(event.event == SubmenuIndexWriteBlank) { - ibutton->write_mode = iButtonWriteModeBlank; + } else if(event.event == SubmenuIndexWriteId) { + ibutton->write_mode = iButtonWriteModeId; scene_manager_next_scene(scene_manager, iButtonSceneWrite); } else if(event.event == SubmenuIndexWriteCopy) { ibutton->write_mode = iButtonWriteModeCopy; diff --git a/applications/main/ibutton/scenes/ibutton_scene_write.c b/applications/main/ibutton/scenes/ibutton_scene_write.c index 465b0630108..1f7d3cba6de 100644 --- a/applications/main/ibutton/scenes/ibutton_scene_write.c +++ b/applications/main/ibutton/scenes/ibutton_scene_write.c @@ -52,9 +52,9 @@ void ibutton_scene_write_on_enter(void* context) { ibutton_worker_write_set_callback(worker, ibutton_scene_write_callback, ibutton); - if(ibutton->write_mode == iButtonWriteModeBlank) { + if(ibutton->write_mode == iButtonWriteModeId) { furi_string_set(tmp, "Writing ID"); - ibutton_worker_write_blank_start(worker, key); + ibutton_worker_write_id_start(worker, key); } else if(ibutton->write_mode == iButtonWriteModeCopy) { furi_string_set(tmp, "Full Writing"); diff --git a/lib/ibutton/ibutton_protocols.c b/lib/ibutton/ibutton_protocols.c index ecd5f9a0dc6..7955b067375 100644 --- a/lib/ibutton/ibutton_protocols.c +++ b/lib/ibutton/ibutton_protocols.c @@ -160,7 +160,7 @@ bool ibutton_protocols_read(iButtonProtocols* protocols, iButtonKey* key) { return id != iButtonProtocolIdInvalid; } -bool ibutton_protocols_write_blank(iButtonProtocols* protocols, iButtonKey* key) { +bool ibutton_protocols_write_id(iButtonProtocols* protocols, iButtonKey* key) { furi_check(protocols); furi_check(key); @@ -168,7 +168,7 @@ bool ibutton_protocols_write_blank(iButtonProtocols* protocols, iButtonKey* key) iButtonProtocolData* data = ibutton_key_get_protocol_data(key); GET_PROTOCOL_GROUP(id); - return GROUP_BASE->write_blank(GROUP_DATA, data, PROTOCOL_ID); + return GROUP_BASE->write_id(GROUP_DATA, data, PROTOCOL_ID); } bool ibutton_protocols_write_copy(iButtonProtocols* protocols, iButtonKey* key) { diff --git a/lib/ibutton/ibutton_protocols.h b/lib/ibutton/ibutton_protocols.h index dd2afbd6ee0..b0c542352fd 100644 --- a/lib/ibutton/ibutton_protocols.h +++ b/lib/ibutton/ibutton_protocols.h @@ -88,7 +88,7 @@ bool ibutton_protocols_read(iButtonProtocols* protocols, iButtonKey* key); * @param [in] key pointer to the key to be written * @return true on success, false on failure */ -bool ibutton_protocols_write_blank(iButtonProtocols* protocols, iButtonKey* key); +bool ibutton_protocols_write_id(iButtonProtocols* protocols, iButtonKey* key); /** * Write the key to another one of the same type diff --git a/lib/ibutton/ibutton_worker.c b/lib/ibutton/ibutton_worker.c index 2874f120ff4..ea6febd125f 100644 --- a/lib/ibutton/ibutton_worker.c +++ b/lib/ibutton/ibutton_worker.c @@ -7,7 +7,7 @@ typedef enum { iButtonMessageEnd, iButtonMessageStop, iButtonMessageRead, - iButtonMessageWriteBlank, + iButtonMessageWriteId, iButtonMessageWriteCopy, iButtonMessageEmulate, iButtonMessageNotifyEmulate, @@ -78,11 +78,11 @@ void ibutton_worker_read_start(iButtonWorker* worker, iButtonKey* key) { furi_message_queue_put(worker->messages, &message, FuriWaitForever) == FuriStatusOk); } -void ibutton_worker_write_blank_start(iButtonWorker* worker, iButtonKey* key) { +void ibutton_worker_write_id_start(iButtonWorker* worker, iButtonKey* key) { furi_check(worker); furi_check(key); - iButtonMessage message = {.type = iButtonMessageWriteBlank, .data.key = key}; + iButtonMessage message = {.type = iButtonMessageWriteId, .data.key = key}; furi_check( furi_message_queue_put(worker->messages, &message, FuriWaitForever) == FuriStatusOk); @@ -185,9 +185,9 @@ static int32_t ibutton_worker_thread(void* thread_context) { ibutton_worker_set_key_p(worker, message.data.key); ibutton_worker_switch_mode(worker, iButtonWorkerModeRead); break; - case iButtonMessageWriteBlank: + case iButtonMessageWriteId: ibutton_worker_set_key_p(worker, message.data.key); - ibutton_worker_switch_mode(worker, iButtonWorkerModeWriteBlank); + ibutton_worker_switch_mode(worker, iButtonWorkerModeWriteId); break; case iButtonMessageWriteCopy: ibutton_worker_set_key_p(worker, message.data.key); diff --git a/lib/ibutton/ibutton_worker.h b/lib/ibutton/ibutton_worker.h index 2a12a3194de..6abacc3b6d5 100644 --- a/lib/ibutton/ibutton_worker.h +++ b/lib/ibutton/ibutton_worker.h @@ -84,7 +84,7 @@ void ibutton_worker_write_set_callback( * @param worker * @param key */ -void ibutton_worker_write_blank_start(iButtonWorker* worker, iButtonKey* key); +void ibutton_worker_write_id_start(iButtonWorker* worker, iButtonKey* key); /** * Start write copy mode diff --git a/lib/ibutton/ibutton_worker_i.h b/lib/ibutton/ibutton_worker_i.h index 5f259a38af3..2b910bad8e9 100644 --- a/lib/ibutton/ibutton_worker_i.h +++ b/lib/ibutton/ibutton_worker_i.h @@ -25,7 +25,7 @@ typedef struct { typedef enum { iButtonWorkerModeIdle, iButtonWorkerModeRead, - iButtonWorkerModeWriteBlank, + iButtonWorkerModeWriteId, iButtonWorkerModeWriteCopy, iButtonWorkerModeEmulate, } iButtonWorkerMode; diff --git a/lib/ibutton/ibutton_worker_modes.c b/lib/ibutton/ibutton_worker_modes.c index 83e207de931..5900b10a277 100644 --- a/lib/ibutton/ibutton_worker_modes.c +++ b/lib/ibutton/ibutton_worker_modes.c @@ -20,7 +20,7 @@ static void ibutton_worker_mode_read_tick(iButtonWorker* worker); static void ibutton_worker_mode_read_stop(iButtonWorker* worker); static void ibutton_worker_mode_write_common_start(iButtonWorker* worker); -static void ibutton_worker_mode_write_blank_tick(iButtonWorker* worker); +static void ibutton_worker_mode_write_id_tick(iButtonWorker* worker); static void ibutton_worker_mode_write_copy_tick(iButtonWorker* worker); static void ibutton_worker_mode_write_common_stop(iButtonWorker* worker); @@ -40,7 +40,7 @@ const iButtonWorkerModeType ibutton_worker_modes[] = { { .quant = 1000, .start = ibutton_worker_mode_write_common_start, - .tick = ibutton_worker_mode_write_blank_tick, + .tick = ibutton_worker_mode_write_id_tick, .stop = ibutton_worker_mode_write_common_stop, }, { @@ -123,10 +123,10 @@ void ibutton_worker_mode_write_common_start(iButtonWorker* worker) { //-V524 furi_hal_power_enable_otg(); } -void ibutton_worker_mode_write_blank_tick(iButtonWorker* worker) { +void ibutton_worker_mode_write_id_tick(iButtonWorker* worker) { furi_assert(worker->key); - const bool success = ibutton_protocols_write_blank(worker->protocols, worker->key); + const bool success = ibutton_protocols_write_id(worker->protocols, worker->key); // TODO FL-3527: pass a proper result to the callback const iButtonWorkerWriteResult result = success ? iButtonWorkerWriteOK : iButtonWorkerWriteNoDetect; diff --git a/lib/ibutton/protocols/dallas/protocol_dallas_base.h b/lib/ibutton/protocols/dallas/protocol_dallas_base.h index 05620329f89..66eb42f1557 100644 --- a/lib/ibutton/protocols/dallas/protocol_dallas_base.h +++ b/lib/ibutton/protocols/dallas/protocol_dallas_base.h @@ -25,7 +25,7 @@ typedef struct { const char* name; iButtonProtocolDallasReadWriteFunc read; - iButtonProtocolDallasReadWriteFunc write_blank; + iButtonProtocolDallasReadWriteFunc write_id; iButtonProtocolDallasReadWriteFunc write_copy; iButtonProtocolDallasEmulateFunc emulate; iButtonProtocolDallasSaveFunc save; diff --git a/lib/ibutton/protocols/dallas/protocol_ds1971.c b/lib/ibutton/protocols/dallas/protocol_ds1971.c index 64920f6acea..3a9e9864117 100644 --- a/lib/ibutton/protocols/dallas/protocol_ds1971.c +++ b/lib/ibutton/protocols/dallas/protocol_ds1971.c @@ -5,6 +5,8 @@ #include "dallas_common.h" +#include "../blanks/tm2004.h" + #define DS1971_FAMILY_CODE 0x14U #define DS1971_FAMILY_NAME "DS1971" @@ -31,6 +33,7 @@ typedef struct { } DS1971ProtocolData; static bool dallas_ds1971_read(OneWireHost*, void*); +static bool dallas_ds1971_write_id(OneWireHost*, iButtonProtocolData*); static bool dallas_ds1971_write_copy(OneWireHost*, iButtonProtocolData*); static void dallas_ds1971_emulate(OneWireSlave*, iButtonProtocolData*); static bool dallas_ds1971_load(FlipperFormat*, uint32_t, iButtonProtocolData*); @@ -48,13 +51,14 @@ static bool ds1971_emulate_read_mem(OneWireSlave* bus, const uint8_t* data, size const iButtonProtocolDallasBase ibutton_protocol_ds1971 = { .family_code = DS1971_FAMILY_CODE, - .features = iButtonProtocolFeatureExtData | iButtonProtocolFeatureWriteCopy, + .features = iButtonProtocolFeatureExtData | iButtonProtocolFeatureWriteId | + iButtonProtocolFeatureWriteCopy, .data_size = sizeof(DS1971ProtocolData), .manufacturer = DALLAS_COMMON_MANUFACTURER_NAME, .name = DS1971_FAMILY_NAME, .read = dallas_ds1971_read, - .write_blank = NULL, // TODO FL-3531: Implement writing to blank + .write_id = dallas_ds1971_write_id, .write_copy = dallas_ds1971_write_copy, .emulate = dallas_ds1971_emulate, .save = dallas_ds1971_save, @@ -74,6 +78,11 @@ bool dallas_ds1971_read(OneWireHost* host, iButtonProtocolData* protocol_data) { dallas_ds1971_read_mem(host, 0, data->eeprom_data, DS1971_EEPROM_DATA_SIZE); } +bool dallas_ds1971_write_id(OneWireHost* host, iButtonProtocolData* protocol_data) { + DS1971ProtocolData* data = protocol_data; + return tm2004_write(host, data->rom_data.bytes, sizeof(DallasCommonRomData)); +} + bool dallas_ds1971_write_copy(OneWireHost* host, iButtonProtocolData* protocol_data) { DS1971ProtocolData* data = protocol_data; diff --git a/lib/ibutton/protocols/dallas/protocol_ds1990.c b/lib/ibutton/protocols/dallas/protocol_ds1990.c index 67e7545f45d..5ed2171c636 100644 --- a/lib/ibutton/protocols/dallas/protocol_ds1990.c +++ b/lib/ibutton/protocols/dallas/protocol_ds1990.c @@ -23,7 +23,7 @@ typedef struct { } DS1990ProtocolData; static bool dallas_ds1990_read(OneWireHost*, iButtonProtocolData*); -static bool dallas_ds1990_write_blank(OneWireHost*, iButtonProtocolData*); +static bool dallas_ds1990_write_id(OneWireHost*, iButtonProtocolData*); static void dallas_ds1990_emulate(OneWireSlave*, iButtonProtocolData*); static bool dallas_ds1990_load(FlipperFormat*, uint32_t, iButtonProtocolData*); static bool dallas_ds1990_save(FlipperFormat*, const iButtonProtocolData*); @@ -36,13 +36,13 @@ static void dallas_ds1990_apply_edits(iButtonProtocolData*); const iButtonProtocolDallasBase ibutton_protocol_ds1990 = { .family_code = DS1990_FAMILY_CODE, - .features = iButtonProtocolFeatureWriteBlank, + .features = iButtonProtocolFeatureWriteId, .data_size = sizeof(DS1990ProtocolData), .manufacturer = DALLAS_COMMON_MANUFACTURER_NAME, .name = DS1990_FAMILY_NAME, .read = dallas_ds1990_read, - .write_blank = dallas_ds1990_write_blank, + .write_id = dallas_ds1990_write_id, .write_copy = NULL, /* No data to write a copy */ .emulate = dallas_ds1990_emulate, .save = dallas_ds1990_save, @@ -61,7 +61,7 @@ bool dallas_ds1990_read(OneWireHost* host, iButtonProtocolData* protocol_data) { return onewire_host_reset(host) && dallas_common_read_rom(host, &data->rom_data); } -bool dallas_ds1990_write_blank(OneWireHost* host, iButtonProtocolData* protocol_data) { +bool dallas_ds1990_write_id(OneWireHost* host, iButtonProtocolData* protocol_data) { DS1990ProtocolData* data = protocol_data; return rw1990_write_v1(host, data->rom_data.bytes, sizeof(DallasCommonRomData)) || diff --git a/lib/ibutton/protocols/dallas/protocol_ds1992.c b/lib/ibutton/protocols/dallas/protocol_ds1992.c index 0b6cd4fca2f..05ea9a15c07 100644 --- a/lib/ibutton/protocols/dallas/protocol_ds1992.c +++ b/lib/ibutton/protocols/dallas/protocol_ds1992.c @@ -31,7 +31,7 @@ typedef struct { } DS1992ProtocolData; static bool dallas_ds1992_read(OneWireHost*, void*); -static bool dallas_ds1992_write_blank(OneWireHost*, iButtonProtocolData*); +static bool dallas_ds1992_write_id(OneWireHost*, iButtonProtocolData*); static bool dallas_ds1992_write_copy(OneWireHost*, iButtonProtocolData*); static void dallas_ds1992_emulate(OneWireSlave*, iButtonProtocolData*); static bool dallas_ds1992_load(FlipperFormat*, uint32_t, iButtonProtocolData*); @@ -46,14 +46,14 @@ static void dallas_ds1992_apply_edits(iButtonProtocolData*); const iButtonProtocolDallasBase ibutton_protocol_ds1992 = { .family_code = DS1992_FAMILY_CODE, - .features = iButtonProtocolFeatureExtData | iButtonProtocolFeatureWriteBlank | + .features = iButtonProtocolFeatureExtData | iButtonProtocolFeatureWriteId | iButtonProtocolFeatureWriteCopy, .data_size = sizeof(DS1992ProtocolData), .manufacturer = DALLAS_COMMON_MANUFACTURER_NAME, .name = DS1992_FAMILY_NAME, .read = dallas_ds1992_read, - .write_blank = dallas_ds1992_write_blank, + .write_id = dallas_ds1992_write_id, .write_copy = dallas_ds1992_write_copy, .emulate = dallas_ds1992_emulate, .save = dallas_ds1992_save, @@ -73,10 +73,9 @@ bool dallas_ds1992_read(OneWireHost* host, iButtonProtocolData* protocol_data) { dallas_common_read_mem(host, 0, data->sram_data, DS1992_SRAM_DATA_SIZE); } -bool dallas_ds1992_write_blank(OneWireHost* host, iButtonProtocolData* protocol_data) { +bool dallas_ds1992_write_id(OneWireHost* host, iButtonProtocolData* protocol_data) { DS1992ProtocolData* data = protocol_data; - // TODO FL-3532: Make this work, currently broken - return tm2004_write(host, (uint8_t*)data, sizeof(DallasCommonRomData) + DS1992_SRAM_DATA_SIZE); + return tm2004_write(host, data->rom_data.bytes, sizeof(DallasCommonRomData)); } bool dallas_ds1992_write_copy(OneWireHost* host, iButtonProtocolData* protocol_data) { diff --git a/lib/ibutton/protocols/dallas/protocol_ds1996.c b/lib/ibutton/protocols/dallas/protocol_ds1996.c index d78a303f86b..12c91b001d3 100644 --- a/lib/ibutton/protocols/dallas/protocol_ds1996.c +++ b/lib/ibutton/protocols/dallas/protocol_ds1996.c @@ -5,6 +5,8 @@ #include "dallas_common.h" +#include "../blanks/tm2004.h" + #define DS1996_FAMILY_CODE 0x0CU #define DS1996_FAMILY_NAME "DS1996" @@ -29,6 +31,7 @@ typedef struct { } DS1996ProtocolData; static bool dallas_ds1996_read(OneWireHost*, void*); +static bool dallas_ds1996_write_id(OneWireHost*, iButtonProtocolData*); static bool dallas_ds1996_write_copy(OneWireHost*, iButtonProtocolData*); static void dallas_ds1996_emulate(OneWireSlave*, iButtonProtocolData*); static bool dallas_ds1996_load(FlipperFormat*, uint32_t, iButtonProtocolData*); @@ -43,13 +46,14 @@ static void dallas_ds1996_apply_edits(iButtonProtocolData*); const iButtonProtocolDallasBase ibutton_protocol_ds1996 = { .family_code = DS1996_FAMILY_CODE, - .features = iButtonProtocolFeatureExtData | iButtonProtocolFeatureWriteCopy, + .features = iButtonProtocolFeatureExtData | iButtonProtocolFeatureWriteId | + iButtonProtocolFeatureWriteCopy, .data_size = sizeof(DS1996ProtocolData), .manufacturer = DALLAS_COMMON_MANUFACTURER_NAME, .name = DS1996_FAMILY_NAME, .read = dallas_ds1996_read, - .write_blank = NULL, /* Data too big for known blanks */ + .write_id = dallas_ds1996_write_id, .write_copy = dallas_ds1996_write_copy, .emulate = dallas_ds1996_emulate, .save = dallas_ds1996_save, @@ -83,6 +87,11 @@ bool dallas_ds1996_read(OneWireHost* host, iButtonProtocolData* protocol_data) { return success; } +bool dallas_ds1996_write_id(OneWireHost* host, iButtonProtocolData* protocol_data) { + DS1996ProtocolData* data = protocol_data; + return tm2004_write(host, data->rom_data.bytes, sizeof(DallasCommonRomData)); +} + bool dallas_ds1996_write_copy(OneWireHost* host, iButtonProtocolData* protocol_data) { DS1996ProtocolData* data = protocol_data; bool success = false; diff --git a/lib/ibutton/protocols/dallas/protocol_ds_generic.c b/lib/ibutton/protocols/dallas/protocol_ds_generic.c index 101db1dbe2d..128f20970da 100644 --- a/lib/ibutton/protocols/dallas/protocol_ds_generic.c +++ b/lib/ibutton/protocols/dallas/protocol_ds_generic.c @@ -20,7 +20,7 @@ typedef struct { } DallasGenericProtocolData; static bool ds_generic_read(OneWireHost*, iButtonProtocolData*); -static bool ds_generic_write_blank(OneWireHost*, iButtonProtocolData*); +static bool ds_generic_write_id(OneWireHost*, iButtonProtocolData*); static void ds_generic_emulate(OneWireSlave*, iButtonProtocolData*); static bool ds_generic_load(FlipperFormat*, uint32_t, iButtonProtocolData*); static bool ds_generic_save(FlipperFormat*, const iButtonProtocolData*); @@ -33,13 +33,13 @@ static void ds_generic_apply_edits(iButtonProtocolData*); const iButtonProtocolDallasBase ibutton_protocol_ds_generic = { .family_code = DALLAS_GENERIC_FAMILY_CODE, - .features = iButtonProtocolFeatureWriteBlank, + .features = iButtonProtocolFeatureWriteId, .data_size = sizeof(DallasGenericProtocolData), .manufacturer = DALLAS_COMMON_MANUFACTURER_NAME, .name = DALLAS_GENERIC_FAMILY_NAME, .read = ds_generic_read, - .write_blank = ds_generic_write_blank, + .write_id = ds_generic_write_id, .write_copy = NULL, /* No data to write a copy */ .emulate = ds_generic_emulate, .save = ds_generic_save, @@ -58,7 +58,7 @@ bool ds_generic_read(OneWireHost* host, iButtonProtocolData* protocol_data) { return onewire_host_reset(host) && dallas_common_read_rom(host, &data->rom_data); } -bool ds_generic_write_blank(OneWireHost* host, iButtonProtocolData* protocol_data) { +bool ds_generic_write_id(OneWireHost* host, iButtonProtocolData* protocol_data) { DallasGenericProtocolData* data = protocol_data; return tm2004_write(host, data->rom_data.bytes, sizeof(DallasCommonRomData)); } diff --git a/lib/ibutton/protocols/dallas/protocol_group_dallas.c b/lib/ibutton/protocols/dallas/protocol_group_dallas.c index 7dad756690a..634c9ab89bd 100644 --- a/lib/ibutton/protocols/dallas/protocol_group_dallas.c +++ b/lib/ibutton/protocols/dallas/protocol_group_dallas.c @@ -133,13 +133,13 @@ static bool ibutton_protocol_group_dallas_read( return success; } -static bool ibutton_protocol_group_dallas_write_blank( +static bool ibutton_protocol_group_dallas_write_id( iButtonProtocolGroupDallas* group, iButtonProtocolData* data, iButtonProtocolLocalId id) { furi_assert(id < iButtonProtocolDSMax); const iButtonProtocolDallasBase* protocol = ibutton_protocols_dallas[id]; - furi_assert(protocol->features & iButtonProtocolFeatureWriteBlank); + furi_assert(protocol->features & iButtonProtocolFeatureWriteId); OneWireHost* host = group->host; @@ -148,7 +148,7 @@ static bool ibutton_protocol_group_dallas_write_blank( FURI_CRITICAL_ENTER(); - const bool success = protocol->write_blank(host, data); + const bool success = protocol->write_id(host, data); onewire_host_stop(host); FURI_CRITICAL_EXIT(); @@ -307,7 +307,7 @@ const iButtonProtocolGroupBase ibutton_protocol_group_dallas = { .get_name = (iButtonProtocolGroupGetStringFunc)ibutton_protocol_group_dallas_get_name, .read = (iButtonProtocolGroupReadFunc)ibutton_protocol_group_dallas_read, - .write_blank = (iButtonProtocolGroupWriteFunc)ibutton_protocol_group_dallas_write_blank, + .write_id = (iButtonProtocolGroupWriteFunc)ibutton_protocol_group_dallas_write_id, .write_copy = (iButtonProtocolGroupWriteFunc)ibutton_protocol_group_dallas_write_copy, .emulate_start = (iButtonProtocolGroupApplyFunc)ibutton_protocol_group_dallas_emulate_start, diff --git a/lib/ibutton/protocols/misc/protocol_group_misc.c b/lib/ibutton/protocols/misc/protocol_group_misc.c index ddbbf6bd804..95f34829ab2 100644 --- a/lib/ibutton/protocols/misc/protocol_group_misc.c +++ b/lib/ibutton/protocols/misc/protocol_group_misc.c @@ -284,7 +284,7 @@ const iButtonProtocolGroupBase ibutton_protocol_group_misc = { .get_name = (iButtonProtocolGroupGetStringFunc)ibutton_protocol_group_misc_get_name, .read = (iButtonProtocolGroupReadFunc)ibutton_protocol_group_misc_read, - .write_blank = NULL, + .write_id = NULL, .write_copy = NULL, .emulate_start = (iButtonProtocolGroupApplyFunc)ibutton_protocol_group_misc_emulate_start, diff --git a/lib/ibutton/protocols/protocol_common.h b/lib/ibutton/protocols/protocol_common.h index 5383158e46b..52fa1589bd2 100644 --- a/lib/ibutton/protocols/protocol_common.h +++ b/lib/ibutton/protocols/protocol_common.h @@ -11,7 +11,7 @@ enum { typedef enum { iButtonProtocolFeatureExtData = (1U << 0), - iButtonProtocolFeatureWriteBlank = (1U << 1), + iButtonProtocolFeatureWriteId = (1U << 1), iButtonProtocolFeatureWriteCopy = (1U << 2), } iButtonProtocolFeature; diff --git a/lib/ibutton/protocols/protocol_group_base.h b/lib/ibutton/protocols/protocol_group_base.h index ef57fe0bc07..bbd53e31e97 100644 --- a/lib/ibutton/protocols/protocol_group_base.h +++ b/lib/ibutton/protocols/protocol_group_base.h @@ -84,7 +84,7 @@ typedef struct { iButtonProtocolGroupGetStringFunc get_name; iButtonProtocolGroupReadFunc read; - iButtonProtocolGroupWriteFunc write_blank; + iButtonProtocolGroupWriteFunc write_id; iButtonProtocolGroupWriteFunc write_copy; iButtonProtocolGroupApplyFunc emulate_start; diff --git a/targets/f18/api_symbols.csv b/targets/f18/api_symbols.csv index 7e254ce4010..d2a145de5a4 100644 --- a/targets/f18/api_symbols.csv +++ b/targets/f18/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,69.0,, +Version,+,70.0,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,, Header,+,applications/services/cli/cli.h,, diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index cce5a320ab5..52bc07d7e66 100644 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,69.0,, +Version,+,70.0,, Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,, @@ -1950,7 +1950,7 @@ Function,+,ibutton_protocols_render_data,void,"iButtonProtocols*, const iButtonK Function,+,ibutton_protocols_render_error,void,"iButtonProtocols*, const iButtonKey*, FuriString*" Function,+,ibutton_protocols_render_uid,void,"iButtonProtocols*, const iButtonKey*, FuriString*" Function,+,ibutton_protocols_save,_Bool,"iButtonProtocols*, const iButtonKey*, const char*" -Function,+,ibutton_protocols_write_blank,_Bool,"iButtonProtocols*, iButtonKey*" +Function,+,ibutton_protocols_write_id,_Bool,"iButtonProtocols*, iButtonKey*" Function,+,ibutton_protocols_write_copy,_Bool,"iButtonProtocols*, iButtonKey*" Function,+,ibutton_worker_alloc,iButtonWorker*,iButtonProtocols* Function,+,ibutton_worker_emulate_set_callback,void,"iButtonWorker*, iButtonWorkerEmulateCallback, void*" @@ -1961,7 +1961,7 @@ Function,+,ibutton_worker_read_start,void,"iButtonWorker*, iButtonKey*" Function,+,ibutton_worker_start_thread,void,iButtonWorker* Function,+,ibutton_worker_stop,void,iButtonWorker* Function,+,ibutton_worker_stop_thread,void,iButtonWorker* -Function,+,ibutton_worker_write_blank_start,void,"iButtonWorker*, iButtonKey*" +Function,+,ibutton_worker_write_id_start,void,"iButtonWorker*, iButtonKey*" Function,+,ibutton_worker_write_copy_start,void,"iButtonWorker*, iButtonKey*" Function,+,ibutton_worker_write_set_callback,void,"iButtonWorker*, iButtonWorkerWriteCallback, void*" Function,+,icon_animation_alloc,IconAnimation*,const Icon* From 56fef61c6665a0bbc9df937afd0d0a1aaac55963 Mon Sep 17 00:00:00 2001 From: DerSkythe <31771569+derskythe@users.noreply.github.com> Date: Wed, 31 Jul 2024 21:12:26 +0400 Subject: [PATCH 08/22] fix: Ensure proper closure of variadic function in `mjs_array` (#3798) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The changes ensure that the `va_end` function is always called after `c_vsnprintf` in `mjs_array.c` Co-authored-by: あく --- lib/mjs/mjs_array.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/mjs/mjs_array.c b/lib/mjs/mjs_array.c index c74487d65a8..9230436e8b3 100644 --- a/lib/mjs/mjs_array.c +++ b/lib/mjs/mjs_array.c @@ -19,8 +19,11 @@ static int v_sprintf_s(char* buf, size_t size, const char* fmt, ...) { size_t n; va_list ap; + va_start(ap, fmt); n = c_vsnprintf(buf, size, fmt, ap); + va_end(ap); + if(n > size) { return size; } From 59eb749b2b89c7b0eaf4a3dba55c542ce7070a6e Mon Sep 17 00:00:00 2001 From: Astra <93453568+Astrrra@users.noreply.github.com> Date: Thu, 1 Aug 2024 05:57:00 +0900 Subject: [PATCH 09/22] [FL-3879] Fix plantain balance string (#3813) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix balance string * nfc app: remove ? in plantain Co-authored-by: hedger Co-authored-by: あく Co-authored-by: gornekich --- applications/main/nfc/plugins/supported_cards/plantain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/main/nfc/plugins/supported_cards/plantain.c b/applications/main/nfc/plugins/supported_cards/plantain.c index ef46efd65e9..1c3a6737f17 100644 --- a/applications/main/nfc/plugins/supported_cards/plantain.c +++ b/applications/main/nfc/plugins/supported_cards/plantain.c @@ -230,7 +230,7 @@ static bool plantain_parse(const NfcDevice* device, FuriString* parsed_data) { } furi_string_printf( - parsed_data, "\e#Plantain\nNo.: %llu?\nBalance:%lu\n", card_number, balance); + parsed_data, "\e#Plantain\nNo.: %llu\nBalance: %lu\n", card_number, balance); parsed = true; } while(false); From f73d60cba8cfaf5783f0987441ce51e735d65cd6 Mon Sep 17 00:00:00 2001 From: Astra <93453568+Astrrra@users.noreply.github.com> Date: Thu, 1 Aug 2024 06:37:37 +0900 Subject: [PATCH 10/22] [FL-3766] Refactor detected protocols list (#3809) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Refactor detected protocols list * nfc app: fix detect protocols file name * nfc app: fix function naming * nfc app: fix detected protocol menu selection Co-authored-by: hedger Co-authored-by: あく Co-authored-by: gornekich --- .../main/nfc/helpers/nfc_detected_protocols.c | 85 +++++++++++++++++++ .../main/nfc/helpers/nfc_detected_protocols.h | 29 +++++++ .../protocol_support/nfc_protocol_support.c | 7 +- applications/main/nfc/nfc_app.c | 19 +---- applications/main/nfc/nfc_app_i.h | 9 +- .../main/nfc/scenes/nfc_scene_detect.c | 7 +- .../nfc_scene_mf_ultralight_unlock_warn.c | 6 +- .../nfc/scenes/nfc_scene_select_protocol.c | 19 ++--- .../main/nfc/scenes/nfc_scene_start.c | 2 +- 9 files changed, 137 insertions(+), 46 deletions(-) create mode 100644 applications/main/nfc/helpers/nfc_detected_protocols.c create mode 100644 applications/main/nfc/helpers/nfc_detected_protocols.h diff --git a/applications/main/nfc/helpers/nfc_detected_protocols.c b/applications/main/nfc/helpers/nfc_detected_protocols.c new file mode 100644 index 00000000000..339d4ddc236 --- /dev/null +++ b/applications/main/nfc/helpers/nfc_detected_protocols.c @@ -0,0 +1,85 @@ +#include "nfc_detected_protocols.h" + +#include + +struct NfcDetectedProtocols { + uint32_t protocols_detected_num; + NfcProtocol protocols_detected[NfcProtocolNum]; + uint32_t selected_idx; +}; + +NfcDetectedProtocols* nfc_detected_protocols_alloc(void) { + NfcDetectedProtocols* instance = malloc(sizeof(NfcDetectedProtocols)); + + instance->protocols_detected_num = 0; + instance->selected_idx = 0; + + return instance; +} + +void nfc_detected_protocols_free(NfcDetectedProtocols* instance) { + furi_assert(instance); + + free(instance); +} + +void nfc_detected_protocols_reset(NfcDetectedProtocols* instance) { + furi_assert(instance); + + instance->protocols_detected_num = 0; + memset(instance->protocols_detected, 0, sizeof(instance->protocols_detected)); + instance->selected_idx = 0; +} + +void nfc_detected_protocols_select(NfcDetectedProtocols* instance, uint32_t idx) { + furi_assert(instance); + + instance->selected_idx = idx; +} + +void nfc_detected_protocols_set( + NfcDetectedProtocols* instance, + const NfcProtocol* types, + uint32_t count) { + furi_assert(instance); + furi_assert(types); + furi_assert(count < NfcProtocolNum); + + memcpy(instance->protocols_detected, types, count); + instance->protocols_detected_num = count; + instance->selected_idx = 0; +} + +uint32_t nfc_detected_protocols_get_num(NfcDetectedProtocols* instance) { + furi_assert(instance); + + return instance->protocols_detected_num; +} + +NfcProtocol nfc_detected_protocols_get_protocol(NfcDetectedProtocols* instance, uint32_t idx) { + furi_assert(instance); + furi_assert(idx < instance->protocols_detected_num); + + return instance->protocols_detected[idx]; +} + +void nfc_detected_protocols_fill_all_protocols(NfcDetectedProtocols* instance) { + furi_assert(instance); + + instance->protocols_detected_num = NfcProtocolNum; + for(uint32_t i = 0; i < NfcProtocolNum; i++) { + instance->protocols_detected[i] = i; + } +} + +NfcProtocol nfc_detected_protocols_get_selected(NfcDetectedProtocols* instance) { + furi_assert(instance); + + return instance->protocols_detected[instance->selected_idx]; +} + +uint32_t nfc_detected_protocols_get_selected_idx(NfcDetectedProtocols* instance) { + furi_assert(instance); + + return instance->selected_idx; +} diff --git a/applications/main/nfc/helpers/nfc_detected_protocols.h b/applications/main/nfc/helpers/nfc_detected_protocols.h new file mode 100644 index 00000000000..2ab46add39a --- /dev/null +++ b/applications/main/nfc/helpers/nfc_detected_protocols.h @@ -0,0 +1,29 @@ +#pragma once + +#include +#include + +typedef struct NfcDetectedProtocols NfcDetectedProtocols; + +NfcDetectedProtocols* nfc_detected_protocols_alloc(void); + +void nfc_detected_protocols_free(NfcDetectedProtocols* instance); + +void nfc_detected_protocols_reset(NfcDetectedProtocols* instance); + +void nfc_detected_protocols_select(NfcDetectedProtocols* instance, uint32_t idx); + +void nfc_detected_protocols_set( + NfcDetectedProtocols* instance, + const NfcProtocol* types, + uint32_t count); + +uint32_t nfc_detected_protocols_get_num(NfcDetectedProtocols* instance); + +NfcProtocol nfc_detected_protocols_get_protocol(NfcDetectedProtocols* instance, uint32_t idx); + +void nfc_detected_protocols_fill_all_protocols(NfcDetectedProtocols* instance); + +NfcProtocol nfc_detected_protocols_get_selected(NfcDetectedProtocols* instance); + +uint32_t nfc_detected_protocols_get_selected_idx(NfcDetectedProtocols* instance); diff --git a/applications/main/nfc/helpers/protocol_support/nfc_protocol_support.c b/applications/main/nfc/helpers/protocol_support/nfc_protocol_support.c index 2ba5c65ba14..630b3beef6f 100644 --- a/applications/main/nfc/helpers/protocol_support/nfc_protocol_support.c +++ b/applications/main/nfc/helpers/protocol_support/nfc_protocol_support.c @@ -150,8 +150,7 @@ static void nfc_protocol_support_scene_read_on_enter(NfcApp* instance) { view_dispatcher_switch_to_view(instance->view_dispatcher, NfcViewPopup); - const NfcProtocol protocol = - instance->protocols_detected[instance->protocols_detected_selected_idx]; + const NfcProtocol protocol = nfc_detected_protocols_get_selected(instance->detected_protocols); instance->poller = nfc_poller_alloc(instance->nfc, protocol); view_dispatcher_switch_to_view(instance->view_dispatcher, NfcViewPopup); @@ -186,7 +185,7 @@ static bool nfc_protocol_support_scene_read_on_event(NfcApp* instance, SceneMana consumed = true; } else { const NfcProtocol protocol = - instance->protocols_detected[instance->protocols_detected_selected_idx]; + nfc_detected_protocols_get_selected(instance->detected_protocols); consumed = nfc_protocol_support[protocol]->scene_read.on_event(instance, event); } } else if(event.event == NfcCustomEventPollerFailure) { @@ -199,7 +198,7 @@ static bool nfc_protocol_support_scene_read_on_event(NfcApp* instance, SceneMana consumed = true; } else if(event.event == NfcCustomEventCardDetected) { const NfcProtocol protocol = - instance->protocols_detected[instance->protocols_detected_selected_idx]; + nfc_detected_protocols_get_selected(instance->detected_protocols); consumed = nfc_protocol_support[protocol]->scene_read.on_event(instance, event); } } else if(event.type == SceneManagerEventTypeBack) { diff --git a/applications/main/nfc/nfc_app.c b/applications/main/nfc/nfc_app.c index 62a1206f114..f3aa5e72402 100644 --- a/applications/main/nfc/nfc_app.c +++ b/applications/main/nfc/nfc_app.c @@ -50,6 +50,7 @@ NfcApp* nfc_app_alloc(void) { instance->nfc = nfc_alloc(); + instance->detected_protocols = nfc_detected_protocols_alloc(); instance->felica_auth = felica_auth_alloc(); instance->mf_ul_auth = mf_ultralight_auth_alloc(); instance->slix_unlock = slix_unlock_alloc(); @@ -142,6 +143,7 @@ void nfc_app_free(NfcApp* instance) { nfc_free(instance->nfc); + nfc_detected_protocols_free(instance->detected_protocols); felica_auth_free(instance->felica_auth); mf_ultralight_auth_free(instance->mf_ul_auth); slix_unlock_free(instance->slix_unlock); @@ -433,23 +435,6 @@ void nfc_show_loading_popup(void* context, bool show) { } } -void nfc_app_set_detected_protocols(NfcApp* instance, const NfcProtocol* types, uint32_t count) { - furi_assert(instance); - furi_assert(types); - furi_assert(count < NfcProtocolNum); - - memcpy(instance->protocols_detected, types, count); - instance->protocols_detected_num = count; - instance->protocols_detected_selected_idx = 0; -} - -void nfc_app_reset_detected_protocols(NfcApp* instance) { - furi_assert(instance); - - instance->protocols_detected_selected_idx = 0; - instance->protocols_detected_num = 0; -} - void nfc_append_filename_string_when_present(NfcApp* instance, FuriString* string) { furi_assert(instance); furi_assert(string); diff --git a/applications/main/nfc/nfc_app_i.h b/applications/main/nfc/nfc_app_i.h index c91ef33df0f..0a09fa9245c 100644 --- a/applications/main/nfc/nfc_app_i.h +++ b/applications/main/nfc/nfc_app_i.h @@ -26,6 +26,7 @@ #include "views/dict_attack.h" #include +#include "helpers/nfc_detected_protocols.h" #include "helpers/nfc_custom_event.h" #include "helpers/mf_ultralight_auth.h" #include "helpers/mf_user_dict.h" @@ -106,9 +107,7 @@ struct NfcApp { FuriString* text_box_store; uint8_t byte_input_store[NFC_BYTE_INPUT_STORE_SIZE]; - uint32_t protocols_detected_num; - NfcProtocol protocols_detected[NfcProtocolNum]; - uint32_t protocols_detected_selected_idx; + NfcDetectedProtocols* detected_protocols; RpcAppSystem* rpc_ctx; NfcRpcState rpc_state; @@ -193,8 +192,4 @@ bool nfc_save_file(NfcApp* instance, FuriString* path); void nfc_make_app_folder(NfcApp* instance); -void nfc_app_set_detected_protocols(NfcApp* instance, const NfcProtocol* types, uint32_t count); - -void nfc_app_reset_detected_protocols(NfcApp* instance); - void nfc_append_filename_string_when_present(NfcApp* instance, FuriString* string); diff --git a/applications/main/nfc/scenes/nfc_scene_detect.c b/applications/main/nfc/scenes/nfc_scene_detect.c index 3ef153657d3..7ef3f9d870b 100644 --- a/applications/main/nfc/scenes/nfc_scene_detect.c +++ b/applications/main/nfc/scenes/nfc_scene_detect.c @@ -7,7 +7,8 @@ void nfc_scene_detect_scan_callback(NfcScannerEvent event, void* context) { NfcApp* instance = context; if(event.type == NfcScannerEventTypeDetected) { - nfc_app_set_detected_protocols(instance, event.data.protocols, event.data.protocol_num); + nfc_detected_protocols_set( + instance->detected_protocols, event.data.protocols, event.data.protocol_num); view_dispatcher_send_custom_event(instance->view_dispatcher, NfcCustomEventWorkerExit); } } @@ -23,7 +24,7 @@ void nfc_scene_detect_on_enter(void* context) { popup_set_icon(instance->popup, 0, 8, &I_NFC_manual_60x50); view_dispatcher_switch_to_view(instance->view_dispatcher, NfcViewPopup); - nfc_app_reset_detected_protocols(instance); + nfc_detected_protocols_reset(instance->detected_protocols); instance->scanner = nfc_scanner_alloc(instance->nfc); nfc_scanner_start(instance->scanner, nfc_scene_detect_scan_callback, instance); @@ -37,7 +38,7 @@ bool nfc_scene_detect_on_event(void* context, SceneManagerEvent event) { if(event.type == SceneManagerEventTypeCustom) { if(event.event == NfcCustomEventWorkerExit) { - if(instance->protocols_detected_num > 1) { + if(nfc_detected_protocols_get_num(instance->detected_protocols) > 1) { notification_message(instance->notifications, &sequence_single_vibro); scene_manager_next_scene(instance->scene_manager, NfcSceneSelectProtocol); } else { diff --git a/applications/main/nfc/scenes/nfc_scene_mf_ultralight_unlock_warn.c b/applications/main/nfc/scenes/nfc_scene_mf_ultralight_unlock_warn.c index 4df8a62899e..a0b6986d1e0 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_ultralight_unlock_warn.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_ultralight_unlock_warn.c @@ -57,7 +57,8 @@ bool nfc_scene_mf_ultralight_unlock_warn_on_event(void* context, SceneManagerEve if(event.type == SceneManagerEventTypeCustom) { if(event.event == DialogExResultRight) { const NfcProtocol mfu_protocol[] = {NfcProtocolMfUltralight}; - nfc_app_set_detected_protocols(nfc, mfu_protocol, COUNT_OF(mfu_protocol)); + nfc_detected_protocols_set( + nfc->detected_protocols, mfu_protocol, COUNT_OF(mfu_protocol)); scene_manager_next_scene(nfc->scene_manager, NfcSceneRead); dolphin_deed(DolphinDeedNfcRead); consumed = true; @@ -77,7 +78,8 @@ bool nfc_scene_mf_ultralight_unlock_warn_on_event(void* context, SceneManagerEve if(event.type == SceneManagerEventTypeCustom) { if(event.event == DialogExResultCenter) { const NfcProtocol mfu_protocol[] = {NfcProtocolMfUltralight}; - nfc_app_set_detected_protocols(nfc, mfu_protocol, COUNT_OF(mfu_protocol)); + nfc_detected_protocols_set( + nfc->detected_protocols, mfu_protocol, COUNT_OF(mfu_protocol)); scene_manager_next_scene(nfc->scene_manager, NfcSceneRead); dolphin_deed(DolphinDeedNfcRead); consumed = true; diff --git a/applications/main/nfc/scenes/nfc_scene_select_protocol.c b/applications/main/nfc/scenes/nfc_scene_select_protocol.c index af644035e80..f2c92b6313d 100644 --- a/applications/main/nfc/scenes/nfc_scene_select_protocol.c +++ b/applications/main/nfc/scenes/nfc_scene_select_protocol.c @@ -14,21 +14,19 @@ void nfc_scene_select_protocol_on_enter(void* context) { const char* prefix; if(scene_manager_has_previous_scene(instance->scene_manager, NfcSceneExtraActions)) { prefix = "Read"; - instance->protocols_detected_num = NfcProtocolNum; - for(uint32_t i = 0; i < NfcProtocolNum; i++) { - instance->protocols_detected[i] = i; - } + nfc_detected_protocols_fill_all_protocols(instance->detected_protocols); } else { prefix = "Read as"; submenu_set_header(submenu, "Multi-protocol card"); } - for(uint32_t i = 0; i < instance->protocols_detected_num; i++) { + for(uint32_t i = 0; i < nfc_detected_protocols_get_num(instance->detected_protocols); i++) { furi_string_printf( temp_str, "%s %s", prefix, - nfc_device_get_protocol_name(instance->protocols_detected[i])); + nfc_device_get_protocol_name( + nfc_detected_protocols_get_protocol(instance->detected_protocols, i))); furi_string_replace_str(temp_str, "Mifare", "MIFARE"); submenu_add_item( @@ -40,9 +38,8 @@ void nfc_scene_select_protocol_on_enter(void* context) { } furi_string_free(temp_str); - const uint32_t state = - scene_manager_get_scene_state(instance->scene_manager, NfcSceneSelectProtocol); - submenu_set_selected_item(submenu, state); + submenu_set_selected_item( + submenu, nfc_detected_protocols_get_selected_idx(instance->detected_protocols)); view_dispatcher_switch_to_view(instance->view_dispatcher, NfcViewMenu); } @@ -52,10 +49,8 @@ bool nfc_scene_select_protocol_on_event(void* context, SceneManagerEvent event) bool consumed = false; if(event.type == SceneManagerEventTypeCustom) { - instance->protocols_detected_selected_idx = event.event; + nfc_detected_protocols_select(instance->detected_protocols, event.event); scene_manager_next_scene(instance->scene_manager, NfcSceneRead); - scene_manager_set_scene_state( - instance->scene_manager, NfcSceneSelectProtocol, event.event); consumed = true; } else if(event.type == SceneManagerEventTypeBack) { if(scene_manager_has_previous_scene(instance->scene_manager, NfcSceneDetect)) { diff --git a/applications/main/nfc/scenes/nfc_scene_start.c b/applications/main/nfc/scenes/nfc_scene_start.c index e8774b4aa5a..53857b8495e 100644 --- a/applications/main/nfc/scenes/nfc_scene_start.c +++ b/applications/main/nfc/scenes/nfc_scene_start.c @@ -25,7 +25,7 @@ void nfc_scene_start_on_enter(void* context) { nfc_device_clear(nfc->nfc_device); iso14443_3a_reset(nfc->iso14443_3a_edit_data); // Reset detected protocols list - nfc_app_reset_detected_protocols(nfc); + nfc_detected_protocols_reset(nfc->detected_protocols); submenu_add_item(submenu, "Read", SubmenuIndexRead, nfc_scene_start_submenu_callback, nfc); submenu_add_item( From 53cf700521f4060069d69196aa266ef646e5b307 Mon Sep 17 00:00:00 2001 From: Filipe Paz Rodrigues Date: Wed, 31 Jul 2024 16:44:04 -0500 Subject: [PATCH 11/22] CCID App: Refactor (#3808) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Move iso7816 related code to its own folder - Refactor Iso7816Callback into Iso7816Handler - Created new file for CCID commands - Renamed variables according to standard Co-authored-by: あく --- applications/debug/ccid_test/ccid_test_app.c | 179 ++---------------- .../debug/ccid_test/ccid_test_app_commands.c | 123 ++++++++++++ .../debug/ccid_test/ccid_test_app_commands.h | 7 + .../ccid_test/{ => iso7816}/iso7816_atr.h | 0 .../debug/ccid_test/iso7816/iso7816_handler.c | 68 +++++++ .../debug/ccid_test/iso7816/iso7816_handler.h | 18 ++ .../{ => iso7816}/iso7816_response.c | 0 .../{ => iso7816}/iso7816_response.h | 0 .../ccid_test/{ => iso7816}/iso7816_t0_apdu.c | 13 +- .../ccid_test/{ => iso7816}/iso7816_t0_apdu.h | 9 +- .../debug/ccid_test/iso7816_callbacks.c | 65 ------- .../debug/ccid_test/iso7816_callbacks.h | 21 -- 12 files changed, 248 insertions(+), 255 deletions(-) create mode 100644 applications/debug/ccid_test/ccid_test_app_commands.c create mode 100644 applications/debug/ccid_test/ccid_test_app_commands.h rename applications/debug/ccid_test/{ => iso7816}/iso7816_atr.h (100%) create mode 100644 applications/debug/ccid_test/iso7816/iso7816_handler.c create mode 100644 applications/debug/ccid_test/iso7816/iso7816_handler.h rename applications/debug/ccid_test/{ => iso7816}/iso7816_response.c (100%) rename applications/debug/ccid_test/{ => iso7816}/iso7816_response.h (100%) rename applications/debug/ccid_test/{ => iso7816}/iso7816_t0_apdu.c (85%) rename applications/debug/ccid_test/{ => iso7816}/iso7816_t0_apdu.h (81%) delete mode 100644 applications/debug/ccid_test/iso7816_callbacks.c delete mode 100644 applications/debug/ccid_test/iso7816_callbacks.h diff --git a/applications/debug/ccid_test/ccid_test_app.c b/applications/debug/ccid_test/ccid_test_app.c index 46a1237f93d..abb8ad3dd30 100644 --- a/applications/debug/ccid_test/ccid_test_app.c +++ b/applications/debug/ccid_test/ccid_test_app.c @@ -6,10 +6,13 @@ #include #include #include -#include "iso7816_callbacks.h" -#include "iso7816_t0_apdu.h" -#include "iso7816_atr.h" -#include "iso7816_response.h" + +#include "iso7816/iso7816_handler.h" +#include "iso7816/iso7816_t0_apdu.h" +#include "iso7816/iso7816_atr.h" +#include "iso7816/iso7816_response.h" + +#include "ccid_test_app_commands.h" typedef enum { EventTypeInput, @@ -20,6 +23,7 @@ typedef struct { ViewPort* view_port; FuriMessageQueue* event_queue; FuriHalUsbCcidConfig ccid_cfg; + Iso7816Handler* iso7816_handler; } CcidTestApp; typedef struct { @@ -63,6 +67,15 @@ uint32_t ccid_test_exit(void* context) { CcidTestApp* ccid_test_app_alloc(void) { CcidTestApp* app = malloc(sizeof(CcidTestApp)); + //setup CCID USB + // On linux: set VID PID using: /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist + app->ccid_cfg.vid = 0x076B; + app->ccid_cfg.pid = 0x3A21; + + app->iso7816_handler = iso7816_handler_alloc(); + app->iso7816_handler->iso7816_answer_to_reset = iso7816_answer_to_reset; + app->iso7816_handler->iso7816_process_command = iso7816_process_command; + // Gui app->gui = furi_record_open(RECORD_GUI); @@ -92,174 +105,26 @@ void ccid_test_app_free(CcidTestApp* app) { furi_record_close(RECORD_GUI); app->gui = NULL; + free(app->iso7816_handler); + // Free rest free(app); } -void ccid_icc_power_on_callback(uint8_t* atrBuffer, uint32_t* atrlen, void* context) { - UNUSED(context); - - iso7816_icc_power_on_callback(atrBuffer, atrlen); -} - -void ccid_xfr_datablock_callback( - const uint8_t* pcToReaderDataBlock, - uint32_t pcToReaderDataBlockLen, - uint8_t* readerToPcDataBlock, - uint32_t* readerToPcDataBlockLen, - void* context) { - UNUSED(context); - - iso7816_xfr_datablock_callback( - pcToReaderDataBlock, pcToReaderDataBlockLen, readerToPcDataBlock, readerToPcDataBlockLen); -} - -static const CcidCallbacks ccid_cb = { - ccid_icc_power_on_callback, - ccid_xfr_datablock_callback, -}; - -//Instruction 1: returns an OK response unconditionally -//APDU example: 0x01:0x01:0x00:0x00 -//response: SW1=0x90, SW2=0x00 -void handle_instruction_01(ISO7816_Response_APDU* responseAPDU) { - responseAPDU->DataLen = 0; - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_OK); -} - -//Instruction 2: expect command with no body, replies wit with a body with two bytes -//APDU example: 0x01:0x02:0x00:0x00:0x02 -//response: 'bc' (0x62, 0x63) SW1=0x90, SW2=0x00 -void handle_instruction_02( - uint8_t p1, - uint8_t p2, - uint16_t lc, - uint16_t le, - ISO7816_Response_APDU* responseAPDU) { - if(p1 == 0 && p2 == 0 && lc == 0 && le >= 2) { - responseAPDU->Data[0] = 0x62; - responseAPDU->Data[1] = 0x63; - - responseAPDU->DataLen = 2; - - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_OK); - } else if(p1 != 0 || p2 != 0) { - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_WRONG_PARAMETERS_P1_P2); - } else { - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_WRONG_LENGTH); - } -} - -//Instruction 3: sends a command with a body with two bytes, receives a response with no bytes -//APDU example: 0x01:0x03:0x00:0x00:0x02:CA:FE -//response SW1=0x90, SW2=0x00 -void handle_instruction_03( - uint8_t p1, - uint8_t p2, - uint16_t lc, - ISO7816_Response_APDU* responseAPDU) { - if(p1 == 0 && p2 == 0 && lc == 2) { - responseAPDU->DataLen = 0; - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_OK); - } else if(p1 != 0 || p2 != 0) { - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_WRONG_PARAMETERS_P1_P2); - } else { - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_WRONG_LENGTH); - } -} - -//instruction 4: sends a command with a body with 'n' bytes, receives a response with 'n' bytes -//APDU example: 0x01:0x04:0x00:0x00:0x04:0x01:0x02:0x03:0x04:0x04 -//receives (0x01, 0x02, 0x03, 0x04) SW1=0x90, SW2=0x00 -void handle_instruction_04( - uint8_t p1, - uint8_t p2, - uint16_t lc, - uint16_t le, - const uint8_t* commandApduDataBuffer, - ISO7816_Response_APDU* responseAPDU) { - if(p1 == 0 && p2 == 0 && lc > 0 && le > 0 && le >= lc) { - for(uint16_t i = 0; i < lc; i++) { - responseAPDU->Data[i] = commandApduDataBuffer[i]; - } - - responseAPDU->DataLen = lc; - - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_OK); - } else if(p1 != 0 || p2 != 0) { - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_WRONG_PARAMETERS_P1_P2); - } else { - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_WRONG_LENGTH); - } -} - -void iso7816_answer_to_reset(Iso7816Atr* atr) { - //minimum valid ATR: https://smartcard-atr.apdu.fr/parse?ATR=3B+00 - atr->TS = 0x3B; - atr->T0 = 0x00; -} - -void iso7816_process_command( - const ISO7816_Command_APDU* commandAPDU, - ISO7816_Response_APDU* responseAPDU) { - //example 1: sends a command with no body, receives a response with no body - //sends APDU 0x01:0x01:0x00:0x00 - //receives SW1=0x90, SW2=0x00 - - if(commandAPDU->CLA == 0x01) { - switch(commandAPDU->INS) { - case 0x01: - handle_instruction_01(responseAPDU); - break; - case 0x02: - handle_instruction_02( - commandAPDU->P1, commandAPDU->P2, commandAPDU->Lc, commandAPDU->Le, responseAPDU); - break; - case 0x03: - handle_instruction_03(commandAPDU->P1, commandAPDU->P2, commandAPDU->Lc, responseAPDU); - break; - case 0x04: - handle_instruction_04( - commandAPDU->P1, - commandAPDU->P2, - commandAPDU->Lc, - commandAPDU->Le, - commandAPDU->Data, - responseAPDU); - break; - default: - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_INSTRUCTION_NOT_SUPPORTED); - } - } else { - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_CLASS_NOT_SUPPORTED); - } -} - -static const Iso7816Callbacks iso87816_cb = { - iso7816_answer_to_reset, - iso7816_process_command, -}; - int32_t ccid_test_app(void* p) { UNUSED(p); //setup view CcidTestApp* app = ccid_test_app_alloc(); - //setup CCID USB - // On linux: set VID PID using: /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist - app->ccid_cfg.vid = 0x076B; - app->ccid_cfg.pid = 0x3A21; - FuriHalUsbInterface* usb_mode_prev = furi_hal_usb_get_config(); furi_hal_usb_unlock(); furi_check(furi_hal_usb_set_config(&usb_ccid, &app->ccid_cfg) == true); - furi_hal_usb_ccid_set_callbacks((CcidCallbacks*)&ccid_cb, NULL); + furi_hal_usb_ccid_set_callbacks( + (CcidCallbacks*)&app->iso7816_handler->ccid_callbacks, app->iso7816_handler); furi_hal_usb_ccid_insert_smartcard(); - iso7816_set_callbacks((Iso7816Callbacks*)&iso87816_cb); - //handle button events CcidTestAppEvent event; while(1) { @@ -280,8 +145,6 @@ int32_t ccid_test_app(void* p) { furi_hal_usb_ccid_set_callbacks(NULL, NULL); furi_hal_usb_set_config(usb_mode_prev, NULL); - iso7816_set_callbacks(NULL); - //teardown view ccid_test_app_free(app); return 0; diff --git a/applications/debug/ccid_test/ccid_test_app_commands.c b/applications/debug/ccid_test/ccid_test_app_commands.c new file mode 100644 index 00000000000..1daaa70c39b --- /dev/null +++ b/applications/debug/ccid_test/ccid_test_app_commands.c @@ -0,0 +1,123 @@ +#include "iso7816/iso7816_t0_apdu.h" +#include "iso7816/iso7816_response.h" + +//Instruction 1: returns an OK response unconditionally +//APDU example: 0x01:0x01:0x00:0x00 +//response: SW1=0x90, SW2=0x00 +void handle_instruction_01(ISO7816_Response_APDU* response_apdu) { + response_apdu->DataLen = 0; + iso7816_set_response(response_apdu, ISO7816_RESPONSE_OK); +} + +//Instruction 2: expect command with no body, replies wit with a body with two bytes +//APDU example: 0x01:0x02:0x00:0x00:0x02 +//response: 'bc' (0x62, 0x63) SW1=0x90, SW2=0x00 +void handle_instruction_02( + uint8_t p1, + uint8_t p2, + uint16_t lc, + uint16_t le, + ISO7816_Response_APDU* response_apdu) { + if(p1 == 0 && p2 == 0 && lc == 0 && le >= 2) { + response_apdu->Data[0] = 0x62; + response_apdu->Data[1] = 0x63; + + response_apdu->DataLen = 2; + + iso7816_set_response(response_apdu, ISO7816_RESPONSE_OK); + } else if(p1 != 0 || p2 != 0) { + iso7816_set_response(response_apdu, ISO7816_RESPONSE_WRONG_PARAMETERS_P1_P2); + } else { + iso7816_set_response(response_apdu, ISO7816_RESPONSE_WRONG_LENGTH); + } +} + +//Instruction 3: sends a command with a body with two bytes, receives a response with no bytes +//APDU example: 0x01:0x03:0x00:0x00:0x02:CA:FE +//response SW1=0x90, SW2=0x00 +void handle_instruction_03( + uint8_t p1, + uint8_t p2, + uint16_t lc, + ISO7816_Response_APDU* response_apdu) { + if(p1 == 0 && p2 == 0 && lc == 2) { + response_apdu->DataLen = 0; + iso7816_set_response(response_apdu, ISO7816_RESPONSE_OK); + } else if(p1 != 0 || p2 != 0) { + iso7816_set_response(response_apdu, ISO7816_RESPONSE_WRONG_PARAMETERS_P1_P2); + } else { + iso7816_set_response(response_apdu, ISO7816_RESPONSE_WRONG_LENGTH); + } +} + +//instruction 4: sends a command with a body with 'n' bytes, receives a response with 'n' bytes +//APDU example: 0x01:0x04:0x00:0x00:0x04:0x01:0x02:0x03:0x04:0x04 +//receives (0x01, 0x02, 0x03, 0x04) SW1=0x90, SW2=0x00 +void handle_instruction_04( + uint8_t p1, + uint8_t p2, + uint16_t lc, + uint16_t le, + const uint8_t* command_apdu_data_buffer, + ISO7816_Response_APDU* response_apdu) { + if(p1 == 0 && p2 == 0 && lc > 0 && le > 0 && le >= lc) { + for(uint16_t i = 0; i < lc; i++) { + response_apdu->Data[i] = command_apdu_data_buffer[i]; + } + + response_apdu->DataLen = lc; + + iso7816_set_response(response_apdu, ISO7816_RESPONSE_OK); + } else if(p1 != 0 || p2 != 0) { + iso7816_set_response(response_apdu, ISO7816_RESPONSE_WRONG_PARAMETERS_P1_P2); + } else { + iso7816_set_response(response_apdu, ISO7816_RESPONSE_WRONG_LENGTH); + } +} + +void iso7816_answer_to_reset(Iso7816Atr* atr) { + //minimum valid ATR: https://smartcard-atr.apdu.fr/parse?ATR=3B+00 + atr->TS = 0x3B; + atr->T0 = 0x00; +} + +void iso7816_process_command( + const ISO7816_Command_APDU* command_apdu, + ISO7816_Response_APDU* response_apdu) { + //example 1: sends a command with no body, receives a response with no body + //sends APDU 0x01:0x01:0x00:0x00 + //receives SW1=0x90, SW2=0x00 + + if(command_apdu->CLA == 0x01) { + switch(command_apdu->INS) { + case 0x01: + handle_instruction_01(response_apdu); + break; + case 0x02: + handle_instruction_02( + command_apdu->P1, + command_apdu->P2, + command_apdu->Lc, + command_apdu->Le, + response_apdu); + break; + case 0x03: + handle_instruction_03( + command_apdu->P1, command_apdu->P2, command_apdu->Lc, response_apdu); + break; + case 0x04: + handle_instruction_04( + command_apdu->P1, + command_apdu->P2, + command_apdu->Lc, + command_apdu->Le, + command_apdu->Data, + response_apdu); + break; + default: + iso7816_set_response(response_apdu, ISO7816_RESPONSE_INSTRUCTION_NOT_SUPPORTED); + } + } else { + iso7816_set_response(response_apdu, ISO7816_RESPONSE_CLASS_NOT_SUPPORTED); + } +} diff --git a/applications/debug/ccid_test/ccid_test_app_commands.h b/applications/debug/ccid_test/ccid_test_app_commands.h new file mode 100644 index 00000000000..ca3275aec1e --- /dev/null +++ b/applications/debug/ccid_test/ccid_test_app_commands.h @@ -0,0 +1,7 @@ +#include "iso7816/iso7816_t0_apdu.h" + +void iso7816_answer_to_reset(Iso7816Atr* atr); + +void iso7816_process_command( + const ISO7816_Command_APDU* command_apdu, + ISO7816_Response_APDU* response_apdu); diff --git a/applications/debug/ccid_test/iso7816_atr.h b/applications/debug/ccid_test/iso7816/iso7816_atr.h similarity index 100% rename from applications/debug/ccid_test/iso7816_atr.h rename to applications/debug/ccid_test/iso7816/iso7816_atr.h diff --git a/applications/debug/ccid_test/iso7816/iso7816_handler.c b/applications/debug/ccid_test/iso7816/iso7816_handler.c new file mode 100644 index 00000000000..97214d1b226 --- /dev/null +++ b/applications/debug/ccid_test/iso7816/iso7816_handler.c @@ -0,0 +1,68 @@ +// transforms low level calls such as XFRCallback or ICC Power on to a structured one +// an application can register these calls and listen for the callbacks defined in Iso7816Callbacks + +#include +#include +#include +#include + +#include "iso7816_t0_apdu.h" +#include "iso7816_atr.h" +#include "iso7816_handler.h" +#include "iso7816_response.h" + +void iso7816_icc_power_on_callback(uint8_t* atr_data, uint32_t* atr_data_len, void* context) { + furi_check(context); + + Iso7816Handler* handler = (Iso7816Handler*)context; + + Iso7816Atr iso7816_atr; + handler->iso7816_answer_to_reset(&iso7816_atr); + + furi_assert(iso7816_atr.T0 == 0x00); + + uint8_t atr_buffer[2] = {iso7816_atr.TS, iso7816_atr.T0}; + + *atr_data_len = 2; + + memcpy(atr_data, atr_buffer, sizeof(uint8_t) * (*atr_data_len)); +} + +//dataBlock points to the buffer +//dataBlockLen tells reader how nany bytes should be read +void iso7816_xfr_datablock_callback( + const uint8_t* pc_to_reader_datablock, + uint32_t pc_to_reader_datablock_len, + uint8_t* reader_to_pc_datablock, + uint32_t* reader_to_pc_datablock_len, + void* context) { + furi_check(context); + + Iso7816Handler* handler = (Iso7816Handler*)context; + + ISO7816_Response_APDU* response_apdu = (ISO7816_Response_APDU*)&handler->response_apdu_buffer; + + ISO7816_Command_APDU* command_apdu = (ISO7816_Command_APDU*)&handler->command_apdu_buffer; + + uint8_t result = iso7816_read_command_apdu( + command_apdu, pc_to_reader_datablock, pc_to_reader_datablock_len); + + if(result == ISO7816_READ_COMMAND_APDU_OK) { + handler->iso7816_process_command(command_apdu, response_apdu); + + furi_assert(response_apdu->DataLen < CCID_SHORT_APDU_SIZE); + } else if(result == ISO7816_READ_COMMAND_APDU_ERROR_WRONG_LE) { + iso7816_set_response(response_apdu, ISO7816_RESPONSE_WRONG_LE); + } else if(result == ISO7816_READ_COMMAND_APDU_ERROR_WRONG_LENGTH) { + iso7816_set_response(response_apdu, ISO7816_RESPONSE_WRONG_LENGTH); + } + + iso7816_write_response_apdu(response_apdu, reader_to_pc_datablock, reader_to_pc_datablock_len); +} + +Iso7816Handler* iso7816_handler_alloc() { + Iso7816Handler* handler = malloc(sizeof(Iso7816Handler)); + handler->ccid_callbacks.icc_power_on_callback = iso7816_icc_power_on_callback; + handler->ccid_callbacks.xfr_datablock_callback = iso7816_xfr_datablock_callback; + return handler; +} diff --git a/applications/debug/ccid_test/iso7816/iso7816_handler.h b/applications/debug/ccid_test/iso7816/iso7816_handler.h new file mode 100644 index 00000000000..d67118ce6e7 --- /dev/null +++ b/applications/debug/ccid_test/iso7816/iso7816_handler.h @@ -0,0 +1,18 @@ +#pragma once + +#include +#include "iso7816_atr.h" +#include "iso7816_t0_apdu.h" + +typedef struct { + CcidCallbacks ccid_callbacks; + void (*iso7816_answer_to_reset)(Iso7816Atr* atr); + void (*iso7816_process_command)( + const ISO7816_Command_APDU* command, + ISO7816_Response_APDU* response); + + uint8_t command_apdu_buffer[sizeof(ISO7816_Command_APDU) + CCID_SHORT_APDU_SIZE]; + uint8_t response_apdu_buffer[sizeof(ISO7816_Response_APDU) + CCID_SHORT_APDU_SIZE]; +} Iso7816Handler; + +Iso7816Handler* iso7816_handler_alloc(); diff --git a/applications/debug/ccid_test/iso7816_response.c b/applications/debug/ccid_test/iso7816/iso7816_response.c similarity index 100% rename from applications/debug/ccid_test/iso7816_response.c rename to applications/debug/ccid_test/iso7816/iso7816_response.c diff --git a/applications/debug/ccid_test/iso7816_response.h b/applications/debug/ccid_test/iso7816/iso7816_response.h similarity index 100% rename from applications/debug/ccid_test/iso7816_response.h rename to applications/debug/ccid_test/iso7816/iso7816_response.h diff --git a/applications/debug/ccid_test/iso7816_t0_apdu.c b/applications/debug/ccid_test/iso7816/iso7816_t0_apdu.c similarity index 85% rename from applications/debug/ccid_test/iso7816_t0_apdu.c rename to applications/debug/ccid_test/iso7816/iso7816_t0_apdu.c index 3de5555f493..216f2582f1a 100644 --- a/applications/debug/ccid_test/iso7816_t0_apdu.c +++ b/applications/debug/ccid_test/iso7816/iso7816_t0_apdu.c @@ -61,24 +61,25 @@ uint8_t iso7816_read_command_apdu( //data buffer contains the whole APU response (response + trailer (SW1+SW2)) void iso7816_write_response_apdu( const ISO7816_Response_APDU* response, - uint8_t* readerToPcDataBlock, - uint32_t* readerToPcDataBlockLen) { + uint8_t* reader_to_pc_datablock, + uint32_t* reader_to_pc_datablock_len) { uint32_t responseDataBufferIndex = 0; //response body if(response->DataLen > 0) { while(responseDataBufferIndex < response->DataLen) { - readerToPcDataBlock[responseDataBufferIndex] = response->Data[responseDataBufferIndex]; + reader_to_pc_datablock[responseDataBufferIndex] = + response->Data[responseDataBufferIndex]; responseDataBufferIndex++; } } //trailer - readerToPcDataBlock[responseDataBufferIndex] = response->SW1; + reader_to_pc_datablock[responseDataBufferIndex] = response->SW1; responseDataBufferIndex++; - readerToPcDataBlock[responseDataBufferIndex] = response->SW2; + reader_to_pc_datablock[responseDataBufferIndex] = response->SW2; responseDataBufferIndex++; - *readerToPcDataBlockLen = responseDataBufferIndex; + *reader_to_pc_datablock_len = responseDataBufferIndex; } diff --git a/applications/debug/ccid_test/iso7816_t0_apdu.h b/applications/debug/ccid_test/iso7816/iso7816_t0_apdu.h similarity index 81% rename from applications/debug/ccid_test/iso7816_t0_apdu.h rename to applications/debug/ccid_test/iso7816/iso7816_t0_apdu.h index 50eb476a9cd..a21dfbafc33 100644 --- a/applications/debug/ccid_test/iso7816_t0_apdu.h +++ b/applications/debug/ccid_test/iso7816/iso7816_t0_apdu.h @@ -31,12 +31,11 @@ typedef struct { uint8_t Data[0]; } FURI_PACKED ISO7816_Response_APDU; -void iso7816_answer_to_reset(Iso7816Atr* atr); uint8_t iso7816_read_command_apdu( ISO7816_Command_APDU* command, - const uint8_t* pcToReaderDataBlock, - uint32_t pcToReaderDataBlockLen); + const uint8_t* pc_to_reader_datablock, + uint32_t pc_to_reader_datablock_len); void iso7816_write_response_apdu( const ISO7816_Response_APDU* response, - uint8_t* readerToPcDataBlock, - uint32_t* readerToPcDataBlockLen); + uint8_t* reader_to_pc_datablock, + uint32_t* reader_to_pc_datablock_len); diff --git a/applications/debug/ccid_test/iso7816_callbacks.c b/applications/debug/ccid_test/iso7816_callbacks.c deleted file mode 100644 index 6c1bb106a90..00000000000 --- a/applications/debug/ccid_test/iso7816_callbacks.c +++ /dev/null @@ -1,65 +0,0 @@ -// transforms low level calls such as XFRCallback or ICC Power on to a structured one -// an application can register these calls and listen for the callbacks defined in Iso7816Callbacks - -#include -#include -#include -#include - -#include "iso7816_t0_apdu.h" -#include "iso7816_atr.h" -#include "iso7816_callbacks.h" -#include "iso7816_response.h" - -static Iso7816Callbacks* callbacks = NULL; - -static uint8_t commandApduBuffer[sizeof(ISO7816_Command_APDU) + CCID_SHORT_APDU_SIZE]; -static uint8_t responseApduBuffer[sizeof(ISO7816_Response_APDU) + CCID_SHORT_APDU_SIZE]; - -void iso7816_set_callbacks(Iso7816Callbacks* cb) { - callbacks = cb; -} - -void iso7816_icc_power_on_callback(uint8_t* atrBuffer, uint32_t* atrlen) { - Iso7816Atr atr; - callbacks->iso7816_answer_to_reset(&atr); - - furi_assert(atr.T0 == 0x00); - - uint8_t AtrBuffer[2] = {atr.TS, atr.T0}; - - *atrlen = 2; - - memcpy(atrBuffer, AtrBuffer, sizeof(uint8_t) * (*atrlen)); -} - -//dataBlock points to the buffer -//dataBlockLen tells reader how nany bytes should be read -void iso7816_xfr_datablock_callback( - const uint8_t* pcToReaderDataBlock, - uint32_t pcToReaderDataBlockLen, - uint8_t* readerToPcDataBlock, - uint32_t* readerToPcDataBlockLen) { - ISO7816_Response_APDU* responseAPDU = (ISO7816_Response_APDU*)&responseApduBuffer; - - if(callbacks != NULL) { - ISO7816_Command_APDU* commandAPDU = (ISO7816_Command_APDU*)&commandApduBuffer; - - uint8_t result = - iso7816_read_command_apdu(commandAPDU, pcToReaderDataBlock, pcToReaderDataBlockLen); - - if(result == ISO7816_READ_COMMAND_APDU_OK) { - callbacks->iso7816_process_command(commandAPDU, responseAPDU); - - furi_assert(responseAPDU->DataLen < CCID_SHORT_APDU_SIZE); - } else if(result == ISO7816_READ_COMMAND_APDU_ERROR_WRONG_LE) { - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_WRONG_LE); - } else if(result == ISO7816_READ_COMMAND_APDU_ERROR_WRONG_LENGTH) { - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_WRONG_LENGTH); - } - } else { - iso7816_set_response(responseAPDU, ISO7816_RESPONSE_INTERNAL_EXCEPTION); - } - - iso7816_write_response_apdu(responseAPDU, readerToPcDataBlock, readerToPcDataBlockLen); -} diff --git a/applications/debug/ccid_test/iso7816_callbacks.h b/applications/debug/ccid_test/iso7816_callbacks.h deleted file mode 100644 index 6b408c7f502..00000000000 --- a/applications/debug/ccid_test/iso7816_callbacks.h +++ /dev/null @@ -1,21 +0,0 @@ -#pragma once - -#include -#include "iso7816_atr.h" -#include "iso7816_t0_apdu.h" - -typedef struct { - void (*iso7816_answer_to_reset)(Iso7816Atr* atr); - void (*iso7816_process_command)( - const ISO7816_Command_APDU* command, - ISO7816_Response_APDU* response); -} Iso7816Callbacks; - -void iso7816_set_callbacks(Iso7816Callbacks* cb); - -void iso7816_icc_power_on_callback(uint8_t* atrBuffer, uint32_t* atrlen); -void iso7816_xfr_datablock_callback( - const uint8_t* dataBlock, - uint32_t dataBlockLen, - uint8_t* responseDataBlock, - uint32_t* responseDataBlockLen); From bec6bd381f222cf14658fd862a2c7f6e620bbf00 Mon Sep 17 00:00:00 2001 From: BarTender NZ Date: Thu, 1 Aug 2024 10:21:49 +1200 Subject: [PATCH 12/22] Add lfrfid GProxII support (#3796) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add lfrfid GProxII support * Add rfid GProxII support and correct linting issues. * Add GProxII support for 26 and 36 bit cards * Add GProxII 26 and 36 bit key - fixing minor typos * Add GProxII 26 and 36 bit key - fix typo * Add GProxII 26 and 36 Bit support - Change comment to not fail lint checking on XOR Value Co-authored-by: あく --- .../file_formats/LfRfidFileFormat.md | 1 + lib/lfrfid/protocols/lfrfid_protocols.c | 2 + lib/lfrfid/protocols/lfrfid_protocols.h | 1 + lib/lfrfid/protocols/protocol_gproxii.c | 261 ++++++++++++++++++ lib/lfrfid/protocols/protocol_gproxii.h | 4 + 5 files changed, 269 insertions(+) create mode 100644 lib/lfrfid/protocols/protocol_gproxii.c create mode 100644 lib/lfrfid/protocols/protocol_gproxii.h diff --git a/documentation/file_formats/LfRfidFileFormat.md b/documentation/file_formats/LfRfidFileFormat.md index 2463195e407..6bad4a3c080 100644 --- a/documentation/file_formats/LfRfidFileFormat.md +++ b/documentation/file_formats/LfRfidFileFormat.md @@ -47,3 +47,4 @@ The file stores a single RFID key of the type defined by the `Key type` paramete | PAC/Stanley | PAC/Stanley | | Keri | Keri | | Gallagher | Gallagher | +| GProxII | Guardall GProx II | diff --git a/lib/lfrfid/protocols/lfrfid_protocols.c b/lib/lfrfid/protocols/lfrfid_protocols.c index f0c28f6753a..8ea1f2b498f 100644 --- a/lib/lfrfid/protocols/lfrfid_protocols.c +++ b/lib/lfrfid/protocols/lfrfid_protocols.c @@ -19,6 +19,7 @@ #include "protocol_gallagher.h" #include "protocol_nexwatch.h" #include "protocol_securakey.h" +#include "protocol_gproxii.h" const ProtocolBase* lfrfid_protocols[] = { [LFRFIDProtocolEM4100] = &protocol_em4100, @@ -43,4 +44,5 @@ const ProtocolBase* lfrfid_protocols[] = { [LFRFIDProtocolGallagher] = &protocol_gallagher, [LFRFIDProtocolNexwatch] = &protocol_nexwatch, [LFRFIDProtocolSecurakey] = &protocol_securakey, + [LFRFIDProtocolGProxII] = &protocol_gproxii, }; diff --git a/lib/lfrfid/protocols/lfrfid_protocols.h b/lib/lfrfid/protocols/lfrfid_protocols.h index c90e842af15..e9c61616efd 100644 --- a/lib/lfrfid/protocols/lfrfid_protocols.h +++ b/lib/lfrfid/protocols/lfrfid_protocols.h @@ -30,6 +30,7 @@ typedef enum { LFRFIDProtocolGallagher, LFRFIDProtocolNexwatch, LFRFIDProtocolSecurakey, + LFRFIDProtocolGProxII, LFRFIDProtocolMax, } LFRFIDProtocol; diff --git a/lib/lfrfid/protocols/protocol_gproxii.c b/lib/lfrfid/protocols/protocol_gproxii.c new file mode 100644 index 00000000000..73cbe8f39e0 --- /dev/null +++ b/lib/lfrfid/protocols/protocol_gproxii.c @@ -0,0 +1,261 @@ +#include +#include "toolbox/level_duration.h" +#include "protocol_gproxii.h" +#include +#include +#include "lfrfid_protocols.h" + +#define GPROXII_PREAMBLE_BIT_SIZE (6) +#define GPROXII_ENCODED_BIT_SIZE (90) +#define GPROXII_ENCODED_BYTE_FULL_SIZE \ + (((GPROXII_PREAMBLE_BIT_SIZE + GPROXII_ENCODED_BIT_SIZE) / 8)) + +#define GPROXII_DATA_SIZE (12) + +#define GPROXII_SHORT_TIME (256) +#define GPROXII_LONG_TIME (512) +#define GPROXII_JITTER_TIME (120) + +#define GPROXII_SHORT_TIME_LOW (GPROXII_SHORT_TIME - GPROXII_JITTER_TIME) +#define GPROXII_SHORT_TIME_HIGH (GPROXII_SHORT_TIME + GPROXII_JITTER_TIME) +#define GPROXII_LONG_TIME_LOW (GPROXII_LONG_TIME - GPROXII_JITTER_TIME) +#define GPROXII_LONG_TIME_HIGH (GPROXII_LONG_TIME + GPROXII_JITTER_TIME) + +typedef struct { + bool last_short; + bool last_level; + size_t encoded_index; + uint8_t decoded_data[GPROXII_ENCODED_BYTE_FULL_SIZE]; + uint8_t data[GPROXII_ENCODED_BYTE_FULL_SIZE]; +} ProtocolGProxII; + +ProtocolGProxII* protocol_gproxii_alloc(void) { + ProtocolGProxII* protocol = malloc(sizeof(ProtocolGProxII)); + return protocol; +} + +void protocol_gproxii_free(ProtocolGProxII* protocol) { + free(protocol); +} + +uint8_t* protocol_gproxii_get_data(ProtocolGProxII* proto) { + return proto->data; +} + +void protocol_gproxii_decoder_start(ProtocolGProxII* protocol) { + memset(protocol->data, 0, GPROXII_ENCODED_BYTE_FULL_SIZE); + protocol->last_short = false; +} + +static bool protocol_gproxii_can_be_decoded(ProtocolGProxII* protocol) { + // 96 bit with 5 bit zero parity + // 0 10 20 30 40 50 60 70 80 90 + // | | | | | | | | | | + // 012345 6789 0 1234 5 6789 0 1234 5 6789 0 1234 5 6789 0 1234 5 6789 0 1234 5 6789 0 1234 5 6789 0 1234 5 6789 0 1234 5 6789 0 1234 5 + // ------------------------------------------------------------------------------------------------------------------------------------ + // 111110 0000 0 1001 0 1101 0 1111 0 1000 0 1001 0 0000 0 1001 0 0000 0 1001 0 0000 0 1001 0 0000 0 1001 0 0000 0 1000 0 0000 0 1001 0 + + // Remove header and reverse bytes on the remaining 72 bits + // + // 0 10 20 30 40 50 60 70 + // | | | | | | | | + // 01234567 89012345 67890123 45678901 23456789 01234567 89012345 67890123 45678901 + // -------------------------------------------------------------------------------- + // 00001001 11011111 10001001 00001001 00001001 00001001 00001001 00001000 00001001 - Without parity + // 10010000 11111011 10010001 10010000 10010000 10010000 10010000 00010000 10010000 - Reversed + // 10010000 01101011 00000001 00000000 00000000 00000000 00000000 10000000 00000000 - XOR all bytes from 1 using byte 0 + + // 72 Bit Guardall/Verex/Chubb GProx II 26 bit key with 16 bit profile + // 0 10 20 30 40 50 60 70 + // | | | | | | | | + // 01234567 890123 45 6789012345678901 2 34567890 1234567890123456 7 89012345678901 + // -------------------------------------------------------------------------------- + // XORVALUE LLLLLL DD PPPPPPPPPPPPPPPP E FFFFFFFF CCCCCCCCCCCCCCCC O UUUUUUUUUUUUUU + // 10010000 011010 11 0000000100000000 0 00000000 0000000000000001 0 00000000000000 - Profile: 256 FC: 0 Card: 1 + + // 72 Bit Guardall/Verex/Chubb GProx II 36 bit key with 26 bit profile + // 0 10 20 30 40 50 60 70 + // | | | | | | | | + // 01234567 890123 45 67890123456789012345678901 2 34567890 1234567890123456 7 8901 + // -------------------------------------------------------------------------------- + // XORVALUE LLLLLL DD PPPPPPPPPPPPPPPPPPPPPPPPPP E FFFFFFFF CCCCCCCCCCCCCCCC O UUUU + // 10111000 100100 10 00000001000000000000000000 1 01000000 1000100010111000 1 0000 - Profile: 262144 FC: 64 Card: 35000 + + // X = XOR Key, L = Message length, D = 2 bit check digits, P = Profile, E = Wiegand leading even parity + // F = Faclity code, C = Card number, O = Wiegand trailing odd parity, U = Unused bits + + // Check 6 bits preamble 111110 + if(bit_lib_get_bits(protocol->data, 0, 6) != 0b111110) return false; + + // Check always 0 parity on every 5th bit after preamble + if(bit_lib_test_parity(protocol->data, 5, GPROXII_ENCODED_BIT_SIZE, BitLibParityAlways0, 5)) + return false; + + // Start GProx II decode + bit_lib_copy_bits(protocol->decoded_data, 0, GPROXII_ENCODED_BIT_SIZE, protocol->data, 6); + + // Remove parity + bit_lib_remove_bit_every_nth(protocol->decoded_data, 0, GPROXII_ENCODED_BIT_SIZE, 5); + + // Reverse bytes + for(int i = 0; i < 9; i++) { + protocol->decoded_data[i] = bit_lib_reverse_8_fast(protocol->decoded_data[i]); + } + + // DeXOR from byte 1 using byte 0 + for(int i = 1; i < 9; i++) { + protocol->decoded_data[i] = protocol->decoded_data[0] ^ protocol->decoded_data[i]; + } + + // Check card length is either 26 or 36 + int card_len = bit_lib_get_bits(protocol->decoded_data, 8, 6); + if(card_len == 26 || card_len == 36) { + return true; + } else { + return false; // If we don't get a 26 or 36 it's not a known card type + } +} + +bool protocol_gproxii_decoder_feed(ProtocolGProxII* protocol, bool level, uint32_t duration) { + UNUSED(level); + bool pushed = false; + + // Bi-Phase Manchester decoding inverse. Short = 1, Long = 0 + if(duration >= GPROXII_SHORT_TIME_LOW && duration <= GPROXII_SHORT_TIME_HIGH) { + if(protocol->last_short == false) { + protocol->last_short = true; + } else { + pushed = true; + bit_lib_push_bit(protocol->data, GPROXII_ENCODED_BYTE_FULL_SIZE, true); + protocol->last_short = false; + } + } else if(duration >= GPROXII_LONG_TIME_LOW && duration <= GPROXII_LONG_TIME_HIGH) { + if(protocol->last_short == false) { + pushed = true; + bit_lib_push_bit(protocol->data, GPROXII_ENCODED_BYTE_FULL_SIZE, false); + } else { + // reset + protocol->last_short = false; + } + } else { + // reset + protocol->last_short = false; + } + + if(pushed && protocol_gproxii_can_be_decoded(protocol)) { + return true; + } + + return false; +} + +bool protocol_gproxii_encoder_start(ProtocolGProxII* protocol) { + protocol->encoded_index = 0; + protocol->last_short = false; + protocol->last_level = false; + return true; +} + +LevelDuration protocol_gproxii_encoder_yield(ProtocolGProxII* protocol) { + uint32_t duration; + protocol->last_level = !protocol->last_level; + + bool bit = bit_lib_get_bit(protocol->data, protocol->encoded_index); + + // Bi-Phase Manchester encoder inverted + if(bit) { + // two short pulses for 1 + duration = GPROXII_SHORT_TIME / 8; + if(protocol->last_short) { + bit_lib_increment_index(protocol->encoded_index, 96); + protocol->last_short = false; + } else { + protocol->last_short = true; + } + } else { + // one long pulse for 0 + duration = GPROXII_LONG_TIME / 8; + bit_lib_increment_index(protocol->encoded_index, 96); + } + return level_duration_make(protocol->last_level, duration); +} + +void protocol_gproxii_render_data(ProtocolGProxII* protocol, FuriString* result) { + int xor_code = bit_lib_get_bits(protocol->decoded_data, 0, 8); + int card_len = bit_lib_get_bits(protocol->decoded_data, 8, 6); + int crc_code = bit_lib_get_bits(protocol->decoded_data, 14, 2); + + if(card_len == 26) { // 26 Bit card + // Print FC, Card and Length + furi_string_cat_printf( + result, + "FC: %hhu Card: %hu LEN: %hhu\n", + bit_lib_get_bits(protocol->decoded_data, 33, 8), + bit_lib_get_bits_16(protocol->decoded_data, 41, 16), + card_len); + // XOR Key, CRC and Profile + furi_string_cat_printf( + result, + "XOR: %hhu CRC: %hhu P: %04hX", + xor_code, + crc_code, + bit_lib_get_bits_16(protocol->decoded_data, 16, 16)); + } else if(card_len == 36) { // 36 Bit card + // Print FC, Card and Length + furi_string_cat_printf( + result, + "FC: %hhu Card: %hu LEN: %hhu\n", + bit_lib_get_bits(protocol->decoded_data, 43, 8), + bit_lib_get_bits_16(protocol->decoded_data, 51, 16), + card_len); + // XOR Key, CRC and Profile + furi_string_cat_printf( + result, + "XOR: %hhu CRC: %hhu P: %06lX", + xor_code, + crc_code, + bit_lib_get_bits_32(protocol->decoded_data, 16, 26)); + } else { + furi_string_cat_printf(result, "Read Error\n"); + } +} + +bool protocol_gproxii_write_data(ProtocolGProxII* protocol, void* data) { + LFRFIDWriteRequest* request = (LFRFIDWriteRequest*)data; + bool result = false; + + if(request->write_type == LFRFIDWriteTypeT5577) { + request->t5577.block[0] = LFRFID_T5577_MODULATION_BIPHASE | LFRFID_T5577_BITRATE_RF_64 | + (3 << LFRFID_T5577_MAXBLOCK_SHIFT); + request->t5577.block[1] = bit_lib_get_bits_32(protocol->data, 0, 32); + request->t5577.block[2] = bit_lib_get_bits_32(protocol->data, 32, 32); + request->t5577.block[3] = bit_lib_get_bits_32(protocol->data, 64, 32); + request->t5577.blocks_to_write = 4; + result = true; + } + return result; +} + +const ProtocolBase protocol_gproxii = { + .name = "GProxII", + .manufacturer = "Guardall", + .data_size = GPROXII_DATA_SIZE, + .features = LFRFIDFeatureASK, + .validate_count = 3, + .alloc = (ProtocolAlloc)protocol_gproxii_alloc, + .free = (ProtocolFree)protocol_gproxii_free, + .get_data = (ProtocolGetData)protocol_gproxii_get_data, + .decoder = + { + .start = (ProtocolDecoderStart)protocol_gproxii_decoder_start, + .feed = (ProtocolDecoderFeed)protocol_gproxii_decoder_feed, + }, + .encoder = + { + .start = (ProtocolEncoderStart)protocol_gproxii_encoder_start, + .yield = (ProtocolEncoderYield)protocol_gproxii_encoder_yield, + }, + .render_data = (ProtocolRenderData)protocol_gproxii_render_data, + .render_brief_data = (ProtocolRenderData)protocol_gproxii_render_data, + .write_data = (ProtocolWriteData)protocol_gproxii_write_data, +}; diff --git a/lib/lfrfid/protocols/protocol_gproxii.h b/lib/lfrfid/protocols/protocol_gproxii.h new file mode 100644 index 00000000000..002c3024fc0 --- /dev/null +++ b/lib/lfrfid/protocols/protocol_gproxii.h @@ -0,0 +1,4 @@ +#pragma once +#include + +extern const ProtocolBase protocol_gproxii; From 4f46032d325f921a618862514e109a98ffada317 Mon Sep 17 00:00:00 2001 From: Astra <93453568+Astrrra@users.noreply.github.com> Date: Fri, 2 Aug 2024 15:03:12 +0900 Subject: [PATCH 13/22] [NFC] Change the plantain last number display from "?" to "X" (#3819) --- applications/main/nfc/plugins/supported_cards/plantain.c | 2 +- applications/main/nfc/plugins/supported_cards/two_cities.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/applications/main/nfc/plugins/supported_cards/plantain.c b/applications/main/nfc/plugins/supported_cards/plantain.c index 1c3a6737f17..bed96455467 100644 --- a/applications/main/nfc/plugins/supported_cards/plantain.c +++ b/applications/main/nfc/plugins/supported_cards/plantain.c @@ -230,7 +230,7 @@ static bool plantain_parse(const NfcDevice* device, FuriString* parsed_data) { } furi_string_printf( - parsed_data, "\e#Plantain\nNo.: %llu\nBalance: %lu\n", card_number, balance); + parsed_data, "\e#Plantain\nNo.: %lluX\nBalance: %lu\n", card_number, balance); parsed = true; } while(false); diff --git a/applications/main/nfc/plugins/supported_cards/two_cities.c b/applications/main/nfc/plugins/supported_cards/two_cities.c index 402e9d90a22..6f348fa6159 100644 --- a/applications/main/nfc/plugins/supported_cards/two_cities.c +++ b/applications/main/nfc/plugins/supported_cards/two_cities.c @@ -158,7 +158,7 @@ static bool two_cities_parse(const NfcDevice* device, FuriString* parsed_data) { furi_string_printf( parsed_data, - "\e#Troika+Plantain\nPN: %llu?\nPB: %lu rur.\nTN: %lu\nTB: %u rur.\n", + "\e#Troika+Plantain\nPN: %lluX\nPB: %lu rur.\nTN: %lu\nTB: %u rur.\n", card_number, balance, troika_number, From 4d985ba8f843a2a67be9579dcbe39de73f975b4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=82=E3=81=8F?= Date: Sun, 4 Aug 2024 18:54:02 +0900 Subject: [PATCH 14/22] Storage: remove LFS (#3577) * Storage: drop internal storage * Storage: rollback some unnecessary changes * Storage: rollback some unnecessary changes part 2 * Storage: cleanup various defines and int handling. Ble: allow short connection interval if internal flash is not used. * Storage: do not return storage if it is not ready * Save PIN code to RTC, update settings * Simplify the code, clean up includes * Rearrange some code * apps: storage_move_to_sd: conditionally enable with --extra-define=STORAGE_INT_ON_LFS * Load Desktop settings automatically * Redirect /any to /ext * Abolish storage_move_to_sd app * Remove as many mentions of ANY_PATH as possible * Fix desktop settings wrongly not loading * Improve desktop settings handling and strings * Load BLE settings and keys automatically * Improve BLE configuration procedure * Do not load bluetooth keys twice if they were already loaded * Load dolphin state automatically * Fix merge artifact * Load notification settings automatically * Update desktop settings strings * Load expansion settings automatically * Do not use thread signals to reload desktop settings * Load region data automatically, separate to its own hook * Improve ble behaviour with no keys * Fix Dolphin state not resetting correctly * Add a status check * Make Desktop save its own settings * Check result when taking and releasing mutex * Improve default thread signal handling in FuriEventLoop * Make bt service in charge of saving settings, add settings api * Fix a deadlock due to timer thread not receiving time * Lock core2 when reinitialising bt * Update clang-format * Revert "Update clang-format" This reverts commit d61295ac063c6ec879375ceeab54d6ff2c90a9a1. * Format sources with clang-format * Revert old stack size for desktop settings * Allocate big struct dynamically * Simplify PIN comparison * Save pointer to storage in Desktop object * Fix region provisioning for hardware regions * Remove stale TODO + siimplify code * Clean up region.c * Use sizeof instead of macro define * Limit PIN length to 10 for consistency * Emit a warning upon usage of /any * Add delay after finding flipper * Remove unnecessary delay * Remove all mentions of STORAGE_INT_ON_LFS * Remove littlefs and internal storage * Remove all possible LittleFS mentions * Fix browser tab in Archive * Ble: fix connection interval explanation * Bump API Symbols * BLE: Update comments interval connection comments * Storage: clear FuriHalRtcFlagStorageFormatInternal if set --------- Co-authored-by: Georgii Surkov Co-authored-by: hedger Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com> --- .gitmodules | 3 - .pvsoptions | 2 +- .../scenes/file_browser_scene_start.c | 2 +- .../main/archive/helpers/archive_apps.c | 8 +- .../main/archive/helpers/archive_browser.c | 12 +- .../main/archive/helpers/archive_browser.h | 16 +- .../main/archive/helpers/archive_favorites.h | 4 +- applications/main/bad_usb/bad_usb_app_i.h | 2 +- applications/main/ibutton/ibutton_i.h | 2 +- applications/main/infrared/infrared_app_i.h | 2 +- applications/main/lfrfid/lfrfid_i.h | 2 +- applications/main/nfc/helpers/mf_user_dict.c | 2 +- applications/main/nfc/nfc_app_i.h | 2 +- applications/main/subghz/application.fam | 1 + applications/main/subghz/subghz_cli.c | 100 +-- applications/main/u2f/u2f.c | 7 +- applications/services/bt/bt_service/bt.c | 135 +++- applications/services/bt/bt_service/bt_api.c | 36 + applications/services/bt/bt_service/bt_i.h | 5 + .../services/bt/bt_service/bt_keys_storage.c | 105 ++- .../services/bt/bt_service/bt_keys_storage.h | 2 + .../bt/bt_service/bt_settings_api_i.h | 8 + applications/services/bt/bt_settings.c | 23 +- applications/services/bt/bt_settings.h | 7 +- .../desktop/animations/animation_manager.c | 7 +- applications/services/desktop/desktop.c | 304 ++++--- applications/services/desktop/desktop.h | 14 +- applications/services/desktop/desktop_i.h | 31 +- .../services/desktop/desktop_settings.c | 79 ++ .../services/desktop/desktop_settings.h | 49 +- applications/services/desktop/helpers/pin.c | 72 -- applications/services/desktop/helpers/pin.h | 11 - .../services/desktop/helpers/pin_code.c | 103 +++ .../services/desktop/helpers/pin_code.h | 25 + .../services/desktop/scenes/desktop_scene_i.h | 4 - .../desktop/scenes/desktop_scene_lock_menu.c | 8 +- .../desktop/scenes/desktop_scene_locked.c | 12 +- .../desktop/scenes/desktop_scene_locked.h | 6 + .../desktop/scenes/desktop_scene_main.c | 5 - .../desktop/scenes/desktop_scene_pin_input.c | 8 +- .../desktop/scenes/desktop_scene_slideshow.c | 7 +- .../services/desktop/views/desktop_events.h | 2 + .../desktop/views/desktop_view_pin_input.c | 18 +- .../desktop/views/desktop_view_pin_input.h | 7 +- applications/services/dolphin/dolphin.c | 33 +- applications/services/dolphin/dolphin_i.h | 1 + .../services/dolphin/helpers/dolphin_state.c | 26 +- .../services/dolphin/helpers/dolphin_state.h | 8 +- applications/services/expansion/expansion.c | 59 +- .../services/expansion/expansion_settings.c | 22 +- .../services/expansion/expansion_settings.h | 8 +- .../gui/modules/file_browser_worker.c | 2 +- .../services/notification/notification_app.c | 53 +- .../services/notification/notification_app.h | 1 + applications/services/region/application.fam | 10 + applications/services/region/region.c | 147 ++++ applications/services/storage/storage.c | 9 +- applications/services/storage/storage.h | 4 +- applications/services/storage/storage_cli.c | 2 +- .../services/storage/storage_internal_api.c | 2 +- .../services/storage/storage_processing.c | 47 +- .../services/storage/storages/storage_int.c | 744 ------------------ .../services/storage/storages/storage_int.h | 13 - .../bt_settings_app/bt_settings_app.c | 6 +- .../bt_settings_app/bt_settings_app.h | 9 +- .../scenes/bt_settings_scene_start.c | 3 +- .../desktop_settings/desktop_settings_app.c | 20 +- .../desktop_settings/desktop_settings_app.h | 2 +- .../scenes/desktop_settings_scene_favorite.c | 10 +- .../scenes/desktop_settings_scene_pin_auth.c | 14 +- .../desktop_settings_scene_pin_disable.c | 5 +- .../scenes/desktop_settings_scene_pin_error.c | 4 +- .../scenes/desktop_settings_scene_pin_menu.c | 2 +- .../scenes/desktop_settings_scene_pin_setup.c | 6 +- .../desktop_settings_scene_pin_setup_done.c | 8 +- .../expansion_settings_app.c | 4 +- .../storage_settings_scene_internal_info.c | 2 +- applications/system/application.fam | 1 - .../system/storage_move_to_sd/application.fam | 18 - .../scenes/storage_move_to_sd_scene.c | 30 - .../scenes/storage_move_to_sd_scene.h | 29 - .../scenes/storage_move_to_sd_scene_config.h | 2 - .../scenes/storage_move_to_sd_scene_confirm.c | 70 -- .../storage_move_to_sd_scene_progress.c | 31 - .../storage_move_to_sd/storage_move_to_sd.c | 188 ----- .../storage_move_to_sd/storage_move_to_sd.h | 48 -- .../system/updater/util/update_task.c | 1 - .../updater/util/update_task_worker_flasher.c | 1 - documentation/doxygen/Doxyfile.cfg | 1 - furi/core/event_loop.c | 14 +- furi/core/thread.c | 6 + furi/core/thread.h | 10 +- lib/ReadMe.md | 1 - lib/SConscript | 1 - lib/ble_profile/extra_profiles/hid_profile.c | 10 +- lib/lfs_config.h | 204 ----- lib/littlefs | 1 - lib/littlefs.scons | 22 - lib/subghz/devices/registry.c | 2 +- lib/toolbox/crc32_calc.c | 32 +- lib/toolbox/stream/file_stream.c | 4 +- lib/toolbox/tar/tar_archive.c | 4 +- lib/toolbox/tar/tar_archive.h | 4 +- scripts/testops.py | 2 + targets/f18/api_symbols.csv | 10 +- targets/f18/target.json | 1 - targets/f7/api_symbols.csv | 10 +- targets/f7/ble_glue/extra_beacon.c | 6 +- targets/f7/ble_glue/hw_ipcc.c | 4 +- targets/f7/ble_glue/profiles/serial_profile.c | 10 +- targets/f7/furi_hal/furi_hal_bt.c | 11 +- targets/f7/furi_hal/furi_hal_crypto.c | 58 +- targets/f7/furi_hal/furi_hal_region.c | 78 +- targets/f7/furi_hal/furi_hal_rtc.c | 8 + targets/f7/furi_hal/furi_hal_rtc.h | 22 +- targets/f7/target.json | 1 - targets/furi_hal_include/furi_hal_region.h | 1 - 117 files changed, 1385 insertions(+), 2118 deletions(-) create mode 100644 applications/services/bt/bt_service/bt_settings_api_i.h create mode 100644 applications/services/desktop/desktop_settings.c delete mode 100644 applications/services/desktop/helpers/pin.c delete mode 100644 applications/services/desktop/helpers/pin.h create mode 100644 applications/services/desktop/helpers/pin_code.c create mode 100644 applications/services/desktop/helpers/pin_code.h delete mode 100644 applications/services/desktop/scenes/desktop_scene_i.h create mode 100644 applications/services/desktop/scenes/desktop_scene_locked.h create mode 100644 applications/services/region/application.fam create mode 100644 applications/services/region/region.c delete mode 100644 applications/services/storage/storages/storage_int.c delete mode 100644 applications/services/storage/storages/storage_int.h delete mode 100644 applications/system/storage_move_to_sd/application.fam delete mode 100644 applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene.c delete mode 100644 applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene.h delete mode 100644 applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene_config.h delete mode 100644 applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene_confirm.c delete mode 100644 applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene_progress.c delete mode 100644 applications/system/storage_move_to_sd/storage_move_to_sd.c delete mode 100644 applications/system/storage_move_to_sd/storage_move_to_sd.h delete mode 100644 lib/lfs_config.h delete mode 160000 lib/littlefs delete mode 100644 lib/littlefs.scons diff --git a/.gitmodules b/.gitmodules index 038bb57e6f2..0297da14db2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,6 @@ [submodule "lib/mlib"] path = lib/mlib url = https://github.com/P-p-H-d/mlib.git -[submodule "lib/littlefs"] - path = lib/littlefs - url = https://github.com/littlefs-project/littlefs.git [submodule "lib/nanopb"] path = lib/nanopb url = https://github.com/nanopb/nanopb.git diff --git a/.pvsoptions b/.pvsoptions index 8606eef1540..4040dcb91ad 100644 --- a/.pvsoptions +++ b/.pvsoptions @@ -1 +1 @@ ---ignore-ccache -C gccarm --rules-config .pvsconfig -e lib/cmsis_core -e lib/fatfs -e lib/fnv1a-hash -e lib/FreeRTOS-Kernel -e lib/heatshrink -e lib/libusb_stm32 -e lib/littlefs -e lib/mbedtls -e lib/microtar -e lib/mlib -e lib/stm32wb_cmsis -e lib/stm32wb_copro -e lib/stm32wb_hal -e lib/u8g2 -e lib/nanopb -e lib/mjs -e */arm-none-eabi/* +--ignore-ccache -C gccarm --rules-config .pvsconfig -e lib/cmsis_core -e lib/fatfs -e lib/fnv1a-hash -e lib/FreeRTOS-Kernel -e lib/heatshrink -e lib/libusb_stm32 -e lib/mbedtls -e lib/microtar -e lib/mlib -e lib/stm32wb_cmsis -e lib/stm32wb_copro -e lib/stm32wb_hal -e lib/u8g2 -e lib/nanopb -e lib/mjs -e */arm-none-eabi/* diff --git a/applications/debug/file_browser_test/scenes/file_browser_scene_start.c b/applications/debug/file_browser_test/scenes/file_browser_scene_start.c index 9eb26944ffc..0ff6303bf5c 100644 --- a/applications/debug/file_browser_test/scenes/file_browser_scene_start.c +++ b/applications/debug/file_browser_test/scenes/file_browser_scene_start.c @@ -19,7 +19,7 @@ bool file_browser_scene_start_on_event(void* context, SceneManagerEvent event) { bool consumed = false; if(event.type == SceneManagerEventTypeCustom) { - furi_string_set(app->file_path, ANY_PATH("badusb/demo_windows.txt")); + furi_string_set(app->file_path, EXT_PATH("badusb/demo_windows.txt")); scene_manager_next_scene(app->scene_manager, FileBrowserSceneBrowser); consumed = true; } else if(event.type == SceneManagerEventTypeTick) { diff --git a/applications/main/archive/helpers/archive_apps.c b/applications/main/archive/helpers/archive_apps.c index 43befc055b8..7aca2936491 100644 --- a/applications/main/archive/helpers/archive_apps.c +++ b/applications/main/archive/helpers/archive_apps.c @@ -30,8 +30,8 @@ bool archive_app_is_available(void* context, const char* path) { bool file_exists = false; Storage* storage = furi_record_open(RECORD_STORAGE); - if(storage_file_exists(storage, ANY_PATH("u2f/key.u2f"))) { - file_exists = storage_file_exists(storage, ANY_PATH("u2f/cnt.u2f")); + if(storage_file_exists(storage, EXT_PATH("u2f/key.u2f"))) { + file_exists = storage_file_exists(storage, EXT_PATH("u2f/cnt.u2f")); } furi_record_close(RECORD_STORAGE); @@ -68,8 +68,8 @@ void archive_app_delete_file(void* context, const char* path) { if(app == ArchiveAppTypeU2f) { Storage* fs_api = furi_record_open(RECORD_STORAGE); - res = (storage_common_remove(fs_api, ANY_PATH("u2f/key.u2f")) == FSE_OK); - res |= (storage_common_remove(fs_api, ANY_PATH("u2f/cnt.u2f")) == FSE_OK); + res = (storage_common_remove(fs_api, EXT_PATH("u2f/key.u2f")) == FSE_OK); + res |= (storage_common_remove(fs_api, EXT_PATH("u2f/cnt.u2f")) == FSE_OK); furi_record_close(RECORD_STORAGE); if(archive_is_favorite("/app:u2f/U2F Token")) { diff --git a/applications/main/archive/helpers/archive_browser.c b/applications/main/archive/helpers/archive_browser.c index c34c505a23e..5f7bf8b9622 100644 --- a/applications/main/archive/helpers/archive_browser.c +++ b/applications/main/archive/helpers/archive_browser.c @@ -460,16 +460,14 @@ void archive_favorites_move_mode(ArchiveBrowserView* browser, bool active) { } static bool archive_is_dir_exists(FuriString* path) { - if(furi_string_equal(path, STORAGE_ANY_PATH_PREFIX)) { - return true; - } bool state = false; FileInfo file_info; Storage* storage = furi_record_open(RECORD_STORAGE); - if(storage_common_stat(storage, furi_string_get_cstr(path), &file_info) == FSE_OK) { - if(file_info_is_dir(&file_info)) { - state = true; - } + + if(furi_string_equal(path, STORAGE_EXT_PATH_PREFIX)) { + state = storage_sd_status(storage) == FSE_OK; + } else if(storage_common_stat(storage, furi_string_get_cstr(path), &file_info) == FSE_OK) { + state = file_info_is_dir(&file_info); } furi_record_close(RECORD_STORAGE); return state; diff --git a/applications/main/archive/helpers/archive_browser.h b/applications/main/archive/helpers/archive_browser.h index 02cf8d708c9..fea6ddf7f6b 100644 --- a/applications/main/archive/helpers/archive_browser.h +++ b/applications/main/archive/helpers/archive_browser.h @@ -9,15 +9,15 @@ static const char* tab_default_paths[] = { [ArchiveTabFavorites] = "/app:favorites", - [ArchiveTabIButton] = ANY_PATH("ibutton"), - [ArchiveTabNFC] = ANY_PATH("nfc"), - [ArchiveTabSubGhz] = ANY_PATH("subghz"), - [ArchiveTabLFRFID] = ANY_PATH("lfrfid"), - [ArchiveTabInfrared] = ANY_PATH("infrared"), - [ArchiveTabBadUsb] = ANY_PATH("badusb"), + [ArchiveTabIButton] = EXT_PATH("ibutton"), + [ArchiveTabNFC] = EXT_PATH("nfc"), + [ArchiveTabSubGhz] = EXT_PATH("subghz"), + [ArchiveTabLFRFID] = EXT_PATH("lfrfid"), + [ArchiveTabInfrared] = EXT_PATH("infrared"), + [ArchiveTabBadUsb] = EXT_PATH("badusb"), [ArchiveTabU2f] = "/app:u2f", - [ArchiveTabApplications] = ANY_PATH("apps"), - [ArchiveTabBrowser] = STORAGE_ANY_PATH_PREFIX, + [ArchiveTabApplications] = EXT_PATH("apps"), + [ArchiveTabBrowser] = STORAGE_EXT_PATH_PREFIX, }; static const char* known_ext[] = { diff --git a/applications/main/archive/helpers/archive_favorites.h b/applications/main/archive/helpers/archive_favorites.h index 64ffcdd7bd3..75070c44d55 100644 --- a/applications/main/archive/helpers/archive_favorites.h +++ b/applications/main/archive/helpers/archive_favorites.h @@ -2,8 +2,8 @@ #include -#define ARCHIVE_FAV_PATH ANY_PATH("favorites.txt") -#define ARCHIVE_FAV_TEMP_PATH ANY_PATH("favorites.tmp") +#define ARCHIVE_FAV_PATH EXT_PATH("favorites.txt") +#define ARCHIVE_FAV_TEMP_PATH EXT_PATH("favorites.tmp") uint16_t archive_favorites_count(void* context); bool archive_favorites_read(void* context); diff --git a/applications/main/bad_usb/bad_usb_app_i.h b/applications/main/bad_usb/bad_usb_app_i.h index 34b3db15cd6..a4dd57d8b95 100644 --- a/applications/main/bad_usb/bad_usb_app_i.h +++ b/applications/main/bad_usb/bad_usb_app_i.h @@ -16,7 +16,7 @@ #include "views/bad_usb_view.h" #include -#define BAD_USB_APP_BASE_FOLDER ANY_PATH("badusb") +#define BAD_USB_APP_BASE_FOLDER EXT_PATH("badusb") #define BAD_USB_APP_PATH_LAYOUT_FOLDER BAD_USB_APP_BASE_FOLDER "/assets/layouts" #define BAD_USB_APP_SCRIPT_EXTENSION ".txt" #define BAD_USB_APP_LAYOUT_EXTENSION ".kl" diff --git a/applications/main/ibutton/ibutton_i.h b/applications/main/ibutton/ibutton_i.h index 454837e9779..fc2324c6356 100644 --- a/applications/main/ibutton/ibutton_i.h +++ b/applications/main/ibutton/ibutton_i.h @@ -28,7 +28,7 @@ #include "ibutton_custom_event.h" #include "scenes/ibutton_scene.h" -#define IBUTTON_APP_FOLDER ANY_PATH("ibutton") +#define IBUTTON_APP_FOLDER EXT_PATH("ibutton") #define IBUTTON_APP_FILENAME_PREFIX "iBtn" #define IBUTTON_APP_FILENAME_EXTENSION ".ibtn" diff --git a/applications/main/infrared/infrared_app_i.h b/applications/main/infrared/infrared_app_i.h index d353b2503b1..75d4e230d25 100644 --- a/applications/main/infrared/infrared_app_i.h +++ b/applications/main/infrared/infrared_app_i.h @@ -46,7 +46,7 @@ #define INFRARED_MAX_BUTTON_NAME_LENGTH 22 #define INFRARED_MAX_REMOTE_NAME_LENGTH 22 -#define INFRARED_APP_FOLDER ANY_PATH("infrared") +#define INFRARED_APP_FOLDER EXT_PATH("infrared") #define INFRARED_APP_EXTENSION ".ir" #define INFRARED_DEFAULT_REMOTE_NAME "Remote" diff --git a/applications/main/lfrfid/lfrfid_i.h b/applications/main/lfrfid/lfrfid_i.h index b1f82d026fd..2fcedcd7fec 100644 --- a/applications/main/lfrfid/lfrfid_i.h +++ b/applications/main/lfrfid/lfrfid_i.h @@ -38,7 +38,7 @@ #define LFRFID_KEY_NAME_SIZE 22 #define LFRFID_TEXT_STORE_SIZE 40 -#define LFRFID_APP_FOLDER ANY_PATH("lfrfid") +#define LFRFID_APP_FOLDER EXT_PATH("lfrfid") #define LFRFID_SD_FOLDER EXT_PATH("lfrfid") #define LFRFID_APP_FILENAME_PREFIX "RFID" #define LFRFID_APP_FILENAME_EXTENSION ".rfid" diff --git a/applications/main/nfc/helpers/mf_user_dict.c b/applications/main/nfc/helpers/mf_user_dict.c index 70b1114722d..7f60d339e6c 100644 --- a/applications/main/nfc/helpers/mf_user_dict.c +++ b/applications/main/nfc/helpers/mf_user_dict.c @@ -4,7 +4,7 @@ #include #include -#define NFC_APP_FOLDER ANY_PATH("nfc") +#define NFC_APP_FOLDER EXT_PATH("nfc") #define NFC_APP_MF_CLASSIC_DICT_USER_PATH (NFC_APP_FOLDER "/assets/mf_classic_dict_user.nfc") struct MfUserDict { diff --git a/applications/main/nfc/nfc_app_i.h b/applications/main/nfc/nfc_app_i.h index 0a09fa9245c..295a75a4e7f 100644 --- a/applications/main/nfc/nfc_app_i.h +++ b/applications/main/nfc/nfc_app_i.h @@ -66,7 +66,7 @@ #define NFC_TEXT_STORE_SIZE 128 #define NFC_BYTE_INPUT_STORE_SIZE 10 #define NFC_LOG_SIZE_MAX (1024) -#define NFC_APP_FOLDER ANY_PATH("nfc") +#define NFC_APP_FOLDER EXT_PATH("nfc") #define NFC_APP_EXTENSION ".nfc" #define NFC_APP_SHADOW_EXTENSION ".shd" #define NFC_APP_FILENAME_PREFIX "NFC" diff --git a/applications/main/subghz/application.fam b/applications/main/subghz/application.fam index 5f9f24dcd31..1abcf7f5487 100644 --- a/applications/main/subghz/application.fam +++ b/applications/main/subghz/application.fam @@ -12,6 +12,7 @@ App( "!subghz_cli.c", "!helpers/subghz_chat.c", ], + requires=["region"], resources="resources", fap_libs=["assets", "hwdrivers"], fap_icon="icon.png", diff --git a/applications/main/subghz/subghz_cli.c b/applications/main/subghz/subghz_cli.c index b6d3bf5c4b3..4f5c4cb623b 100644 --- a/applications/main/subghz/subghz_cli.c +++ b/applications/main/subghz/subghz_cli.c @@ -20,14 +20,9 @@ #include #include -#include -#include - #define SUBGHZ_FREQUENCY_RANGE_STR \ "299999755...348000000 or 386999938...464000000 or 778999847...928000000" -#define SUBGHZ_REGION_FILENAME "/int/.region_data" - #define TAG "SubGhzCli" static void subghz_cli_radio_device_power_on(void) { @@ -480,7 +475,7 @@ void subghz_cli_command_decode_raw(Cli* cli, FuriString* args, void* context) { UNUSED(context); FuriString* file_name; file_name = furi_string_alloc(); - furi_string_set(file_name, ANY_PATH("subghz/test.sub")); + furi_string_set(file_name, EXT_PATH("subghz/test.sub")); Storage* storage = furi_record_open(RECORD_STORAGE); FlipperFormat* fff_data_file = flipper_format_file_alloc(storage); @@ -595,7 +590,7 @@ void subghz_cli_command_tx_from_file(Cli* cli, FuriString* args, void* context) UNUSED(context); FuriString* file_name; file_name = furi_string_alloc(); - furi_string_set(file_name, ANY_PATH("subghz/test.sub")); + furi_string_set(file_name, EXT_PATH("subghz/test.sub")); uint32_t repeat = 10; uint32_t device_ind = 0; // 0 - CC1101_INT, 1 - CC1101_EXT @@ -1199,47 +1194,6 @@ static void subghz_cli_command(Cli* cli, FuriString* args, void* context) { furi_string_free(cmd); } -static bool - subghz_on_system_start_istream_read(pb_istream_t* istream, pb_byte_t* buf, size_t count) { - File* file = istream->state; - size_t ret = storage_file_read(file, buf, count); - return count == ret; -} - -static bool subghz_on_system_start_istream_decode_band( - pb_istream_t* stream, - const pb_field_t* field, - void** arg) { - (void)field; - FuriHalRegion* region = *arg; - - PB_Region_Band band = {0}; - if(!pb_decode(stream, PB_Region_Band_fields, &band)) { - FURI_LOG_E("SubGhzOnStart", "PB Region band decode error: %s", PB_GET_ERROR(stream)); - return false; - } - - region->bands_count += 1; - region = realloc( //-V701 - region, - sizeof(FuriHalRegion) + sizeof(FuriHalRegionBand) * region->bands_count); - size_t pos = region->bands_count - 1; - region->bands[pos].start = band.start; - region->bands[pos].end = band.end; - region->bands[pos].power_limit = band.power_limit; - region->bands[pos].duty_cycle = band.duty_cycle; - *arg = region; - - FURI_LOG_I( - "SubGhzOnStart", - "Add allowed band: start %luHz, stop %luHz, power_limit %ddBm, duty_cycle %u%%", - band.start, - band.end, - band.power_limit, - band.duty_cycle); - return true; -} - void subghz_on_system_start(void) { #ifdef SRV_CLI Cli* cli = furi_record_open(RECORD_CLI); @@ -1250,54 +1204,4 @@ void subghz_on_system_start(void) { #else UNUSED(subghz_cli_command); #endif - -#ifdef SRV_STORAGE - Storage* storage = furi_record_open(RECORD_STORAGE); - File* file = storage_file_alloc(storage); - FileInfo fileinfo = {0}; - PB_Region pb_region = {0}; - pb_region.bands.funcs.decode = subghz_on_system_start_istream_decode_band; - - do { - if(storage_common_stat(storage, SUBGHZ_REGION_FILENAME, &fileinfo) != FSE_OK || - fileinfo.size == 0) { - FURI_LOG_W("SubGhzOnStart", "Region data is missing or empty"); - break; - } - - if(!storage_file_open(file, SUBGHZ_REGION_FILENAME, FSAM_READ, FSOM_OPEN_EXISTING)) { - FURI_LOG_E("SubGhzOnStart", "Unable to open region data"); - break; - } - - pb_istream_t istream = { - .callback = subghz_on_system_start_istream_read, - .state = file, - .errmsg = NULL, - .bytes_left = fileinfo.size, - }; - - pb_region.bands.arg = malloc(sizeof(FuriHalRegion)); - if(!pb_decode(&istream, PB_Region_fields, &pb_region)) { - FURI_LOG_E("SubGhzOnStart", "Invalid region data"); - free(pb_region.bands.arg); - break; - } - - FuriHalRegion* region = pb_region.bands.arg; - memcpy( - region->country_code, - pb_region.country_code->bytes, - pb_region.country_code->size < 4 ? pb_region.country_code->size : 3); - furi_hal_region_set(region); - } while(0); - - pb_release(PB_Region_fields, &pb_region); - storage_file_free(file); - furi_record_close(RECORD_STORAGE); -#else - UNUSED(subghz_cli_command); - UNUSED(subghz_on_system_start_istream_decode_band); - UNUSED(subghz_on_system_start_istream_read); -#endif } diff --git a/applications/main/u2f/u2f.c b/applications/main/u2f/u2f.c index 6a37769a8b7..0143eb245fb 100644 --- a/applications/main/u2f/u2f.c +++ b/applications/main/u2f/u2f.c @@ -4,7 +4,6 @@ #include #include #include -#include // for lfs_tobe32 #include #include @@ -319,6 +318,10 @@ static uint16_t u2f_register(U2fData* U2F, uint8_t* buf) { return sizeof(U2fRegisterResp) + cert_len + signature_len + 2; } +static inline uint32_t u2f_to_big_endian(uint32_t a) { + return __builtin_bswap32(a); +} + static uint16_t u2f_authenticate(U2fData* U2F, uint8_t* buf) { U2fAuthReq* req = (U2fAuthReq*)buf; U2fAuthResp* resp = (U2fAuthResp*)buf; @@ -348,7 +351,7 @@ static uint16_t u2f_authenticate(U2fData* U2F, uint8_t* buf) { U2F->user_present = false; // The 4 byte counter is represented in big endian. Increment it before use - be_u2f_counter = lfs_tobe32(U2F->counter + 1); + be_u2f_counter = u2f_to_big_endian(U2F->counter + 1); // Generate hash { diff --git a/applications/services/bt/bt_service/bt.c b/applications/services/bt/bt_service/bt.c index e3afceb70b0..d72e745ee32 100644 --- a/applications/services/bt/bt_service/bt.c +++ b/applications/services/bt/bt_service/bt.c @@ -61,6 +61,21 @@ static void bt_pin_code_view_port_input_callback(InputEvent* event, void* contex } } +static void bt_storage_callback(const void* message, void* context) { + furi_assert(context); + Bt* bt = context; + const StorageEvent* event = message; + + if(event->type == StorageEventTypeCardMount) { + const BtMessage msg = { + .type = BtMessageTypeReloadKeysSettings, + }; + + furi_check( + furi_message_queue_put(bt->message_queue, &msg, FuriWaitForever) == FuriStatusOk); + } +} + static ViewPort* bt_pin_code_view_port_alloc(Bt* bt) { ViewPort* view_port = view_port_alloc(); view_port_draw_callback_set(view_port, bt_pin_code_view_port_draw_callback, bt); @@ -138,10 +153,6 @@ Bt* bt_alloc(void) { // Init default maximum packet size bt->max_packet_size = BLE_PROFILE_SERIAL_PACKET_SIZE_MAX; bt->current_profile = NULL; - // Load settings - if(!bt_settings_load(&bt->bt_settings)) { - bt_settings_save(&bt->bt_settings); - } // Keys storage bt->keys_storage = bt_keys_storage_alloc(BT_KEYS_STORAGE_PATH); // Alloc queue @@ -384,6 +395,7 @@ static void bt_close_rpc_connection(Bt* bt) { static void bt_change_profile(Bt* bt, BtMessage* message) { if(furi_hal_bt_is_gatt_gap_supported()) { bt_settings_load(&bt->bt_settings); + bt_close_rpc_connection(bt); bt_keys_storage_load(bt->keys_storage); @@ -427,6 +439,87 @@ static void bt_close_connection(Bt* bt, BtMessage* message) { if(message->lock) api_lock_unlock(message->lock); } +static void bt_apply_settings(Bt* bt) { + if(bt->bt_settings.enabled) { + furi_hal_bt_start_advertising(); + } else { + furi_hal_bt_stop_advertising(); + } +} + +static void bt_load_keys(Bt* bt) { + if(!furi_hal_bt_is_gatt_gap_supported()) { + bt_show_warning(bt, "Unsupported radio stack"); + bt->status = BtStatusUnavailable; + return; + + } else if(bt_keys_storage_is_changed(bt->keys_storage)) { + FURI_LOG_I(TAG, "Loading new keys"); + + bt_close_rpc_connection(bt); + bt_keys_storage_load(bt->keys_storage); + + bt->current_profile = NULL; + + } else { + FURI_LOG_I(TAG, "Keys unchanged"); + } +} + +static void bt_start_application(Bt* bt) { + if(!bt->current_profile) { + bt->current_profile = + furi_hal_bt_change_app(ble_profile_serial, NULL, bt_on_gap_event_callback, bt); + + if(!bt->current_profile) { + FURI_LOG_E(TAG, "BLE App start failed"); + bt->status = BtStatusUnavailable; + } + } +} + +static void bt_load_settings(Bt* bt) { + bt_settings_load(&bt->bt_settings); + bt_apply_settings(bt); +} + +static void bt_handle_get_settings(Bt* bt, BtMessage* message) { + furi_assert(message->lock); + *message->data.settings = bt->bt_settings; + api_lock_unlock(message->lock); +} + +static void bt_handle_set_settings(Bt* bt, BtMessage* message) { + furi_assert(message->lock); + bt->bt_settings = *message->data.csettings; + + bt_apply_settings(bt); + bt_settings_save(&bt->bt_settings); + + api_lock_unlock(message->lock); +} + +static void bt_handle_reload_keys_settings(Bt* bt) { + bt_load_keys(bt); + bt_start_application(bt); + bt_load_settings(bt); +} + +static void bt_init_keys_settings(Bt* bt) { + Storage* storage = furi_record_open(RECORD_STORAGE); + furi_pubsub_subscribe(storage_get_pubsub(storage), bt_storage_callback, bt); + + if(storage_sd_status(storage) != FSE_OK) { + FURI_LOG_D(TAG, "SD Card not ready, skipping settings"); + + // Just start the BLE serial application without loading the keys or settings + bt_start_application(bt); + return; + } + + bt_handle_reload_keys_settings(bt); +} + int32_t bt_srv(void* p) { UNUSED(p); Bt* bt = bt_alloc(); @@ -440,35 +533,18 @@ int32_t bt_srv(void* p) { return 0; } - // Load keys - if(!bt_keys_storage_load(bt->keys_storage)) { - FURI_LOG_W(TAG, "Failed to load bonding keys"); - } - - // Start radio stack - if(!furi_hal_bt_start_radio_stack()) { - FURI_LOG_E(TAG, "Radio stack start failed"); - } + if(furi_hal_bt_start_radio_stack()) { + bt_init_keys_settings(bt); + furi_hal_bt_set_key_storage_change_callback(bt_on_key_storage_change_callback, bt); - if(furi_hal_bt_is_gatt_gap_supported()) { - bt->current_profile = - furi_hal_bt_start_app(ble_profile_serial, NULL, bt_on_gap_event_callback, bt); - if(!bt->current_profile) { - FURI_LOG_E(TAG, "BLE App start failed"); - } else { - if(bt->bt_settings.enabled) { - furi_hal_bt_start_advertising(); - } - furi_hal_bt_set_key_storage_change_callback(bt_on_key_storage_change_callback, bt); - } } else { - bt_show_warning(bt, "Unsupported radio stack"); - bt->status = BtStatusUnavailable; + FURI_LOG_E(TAG, "Radio stack start failed"); } furi_record_create(RECORD_BT, bt); BtMessage message; + while(1) { furi_check( furi_message_queue_get(bt->message_queue, &message, FuriWaitForever) == FuriStatusOk); @@ -498,7 +574,14 @@ int32_t bt_srv(void* p) { bt_close_connection(bt, &message); } else if(message.type == BtMessageTypeForgetBondedDevices) { bt_keys_storage_delete(bt->keys_storage); + } else if(message.type == BtMessageTypeGetSettings) { + bt_handle_get_settings(bt, &message); + } else if(message.type == BtMessageTypeSetSettings) { + bt_handle_set_settings(bt, &message); + } else if(message.type == BtMessageTypeReloadKeysSettings) { + bt_handle_reload_keys_settings(bt); } } + return 0; } diff --git a/applications/services/bt/bt_service/bt_api.c b/applications/services/bt/bt_service/bt_api.c index f0e792d42e7..39b9a099da3 100644 --- a/applications/services/bt/bt_service/bt_api.c +++ b/applications/services/bt/bt_service/bt_api.c @@ -77,3 +77,39 @@ void bt_keys_storage_set_default_path(Bt* bt) { bt_keys_storage_set_file_path(bt->keys_storage, BT_KEYS_STORAGE_PATH); } + +/* + * Private API for the Settings app + */ + +void bt_get_settings(Bt* bt, BtSettings* settings) { + furi_assert(bt); + furi_assert(settings); + + BtMessage message = { + .lock = api_lock_alloc_locked(), + .type = BtMessageTypeGetSettings, + .data.settings = settings, + }; + + furi_check( + furi_message_queue_put(bt->message_queue, &message, FuriWaitForever) == FuriStatusOk); + + api_lock_wait_unlock_and_free(message.lock); +} + +void bt_set_settings(Bt* bt, const BtSettings* settings) { + furi_assert(bt); + furi_assert(settings); + + BtMessage message = { + .lock = api_lock_alloc_locked(), + .type = BtMessageTypeSetSettings, + .data.csettings = settings, + }; + + furi_check( + furi_message_queue_put(bt->message_queue, &message, FuriWaitForever) == FuriStatusOk); + + api_lock_wait_unlock_and_free(message.lock); +} diff --git a/applications/services/bt/bt_service/bt_i.h b/applications/services/bt/bt_service/bt_i.h index 04c1734b750..192da00135e 100644 --- a/applications/services/bt/bt_service/bt_i.h +++ b/applications/services/bt/bt_service/bt_i.h @@ -32,6 +32,9 @@ typedef enum { BtMessageTypeSetProfile, BtMessageTypeDisconnect, BtMessageTypeForgetBondedDevices, + BtMessageTypeGetSettings, + BtMessageTypeSetSettings, + BtMessageTypeReloadKeysSettings, } BtMessageType; typedef struct { @@ -49,6 +52,8 @@ typedef union { } profile; FuriHalBleProfileParams profile_params; BtKeyStorageUpdateData key_storage_data; + BtSettings* settings; + const BtSettings* csettings; } BtMessageData; typedef struct { diff --git a/applications/services/bt/bt_service/bt_keys_storage.c b/applications/services/bt/bt_service/bt_keys_storage.c index 6392c2d6775..57742e8e26b 100644 --- a/applications/services/bt/bt_service/bt_keys_storage.c +++ b/applications/services/bt/bt_service/bt_keys_storage.c @@ -13,6 +13,7 @@ struct BtKeysStorage { uint8_t* nvm_sram_buff; uint16_t nvm_sram_buff_size; + uint16_t current_size; FuriString* file_path; }; @@ -66,44 +67,114 @@ void bt_keys_storage_set_ram_params(BtKeysStorage* instance, uint8_t* buff, uint instance->nvm_sram_buff_size = size; } -bool bt_keys_storage_load(BtKeysStorage* instance) { +static bool bt_keys_storage_file_exists(const char* file_path) { + Storage* storage = furi_record_open(RECORD_STORAGE); + FileInfo file_info; + const bool ret = storage_common_stat(storage, file_path, &file_info) == FSE_OK && + file_info.size != 0; + furi_record_close(RECORD_STORAGE); + return ret; +} + +static bool bt_keys_storage_validate_file(const char* file_path, size_t* payload_size) { + uint8_t magic, version; + size_t size; + + if(!saved_struct_get_metadata(file_path, &magic, &version, &size)) { + FURI_LOG_E(TAG, "Failed to get metadata"); + return false; + + } else if(magic != BT_KEYS_STORAGE_MAGIC || version != BT_KEYS_STORAGE_VERSION) { + FURI_LOG_E(TAG, "File version mismatch"); + return false; + } + + *payload_size = size; + return true; +} + +bool bt_keys_storage_is_changed(BtKeysStorage* instance) { furi_assert(instance); - bool loaded = false; + bool is_changed = false; + uint8_t* data_buffer = NULL; + do { - // Get payload size - uint8_t magic = 0, version = 0; - size_t payload_size = 0; - if(!saved_struct_get_metadata( - furi_string_get_cstr(instance->file_path), &magic, &version, &payload_size)) { - FURI_LOG_E(TAG, "Failed to read payload size"); + const char* file_path = furi_string_get_cstr(instance->file_path); + size_t payload_size; + + if(!bt_keys_storage_file_exists(file_path)) { + FURI_LOG_W(TAG, "Missing or empty file"); + break; + + } else if(!bt_keys_storage_validate_file(file_path, &payload_size)) { + FURI_LOG_E(TAG, "Invalid or corrupted file"); break; } - if(magic != BT_KEYS_STORAGE_MAGIC || version != BT_KEYS_STORAGE_VERSION) { - FURI_LOG_E(TAG, "Saved data version is mismatched"); + data_buffer = malloc(payload_size); + + const bool data_loaded = saved_struct_load( + file_path, data_buffer, payload_size, BT_KEYS_STORAGE_MAGIC, BT_KEYS_STORAGE_VERSION); + + if(!data_loaded) { + FURI_LOG_E(TAG, "Failed to load file"); break; + + } else if(payload_size == instance->current_size) { + furi_hal_bt_nvm_sram_sem_acquire(); + is_changed = memcmp(data_buffer, instance->nvm_sram_buff, payload_size); + furi_hal_bt_nvm_sram_sem_release(); + + } else { + FURI_LOG_D(TAG, "Size mismatch"); + is_changed = true; } + } while(false); - if(payload_size > instance->nvm_sram_buff_size) { - FURI_LOG_E(TAG, "Saved data doesn't fit ram buffer"); + if(data_buffer) { + free(data_buffer); + } + + return is_changed; +} + +bool bt_keys_storage_load(BtKeysStorage* instance) { + furi_assert(instance); + + bool loaded = false; + + do { + const char* file_path = furi_string_get_cstr(instance->file_path); + + // Get payload size + size_t payload_size; + if(!bt_keys_storage_validate_file(file_path, &payload_size)) { + FURI_LOG_E(TAG, "Invalid or corrupted file"); + break; + + } else if(payload_size > instance->nvm_sram_buff_size) { + FURI_LOG_E(TAG, "NVM RAM buffer overflow"); break; } // Load saved data to ram furi_hal_bt_nvm_sram_sem_acquire(); - bool data_loaded = saved_struct_load( - furi_string_get_cstr(instance->file_path), + const bool data_loaded = saved_struct_load( + file_path, instance->nvm_sram_buff, payload_size, BT_KEYS_STORAGE_MAGIC, BT_KEYS_STORAGE_VERSION); furi_hal_bt_nvm_sram_sem_release(); + if(!data_loaded) { - FURI_LOG_E(TAG, "Failed to load struct"); + FURI_LOG_E(TAG, "Failed to load file"); break; } + instance->current_size = payload_size; + loaded = true; } while(false); @@ -130,6 +201,8 @@ bool bt_keys_storage_update(BtKeysStorage* instance, uint8_t* start_addr, uint32 break; } + instance->current_size = new_size; + furi_hal_bt_nvm_sram_sem_acquire(); bool data_updated = saved_struct_save( furi_string_get_cstr(instance->file_path), @@ -138,10 +211,12 @@ bool bt_keys_storage_update(BtKeysStorage* instance, uint8_t* start_addr, uint32 BT_KEYS_STORAGE_MAGIC, BT_KEYS_STORAGE_VERSION); furi_hal_bt_nvm_sram_sem_release(); + if(!data_updated) { FURI_LOG_E(TAG, "Failed to update key storage"); break; } + updated = true; } while(false); diff --git a/applications/services/bt/bt_service/bt_keys_storage.h b/applications/services/bt/bt_service/bt_keys_storage.h index 587dd570ddb..b7a127035d9 100644 --- a/applications/services/bt/bt_service/bt_keys_storage.h +++ b/applications/services/bt/bt_service/bt_keys_storage.h @@ -17,6 +17,8 @@ void bt_keys_storage_set_file_path(BtKeysStorage* instance, const char* path); void bt_keys_storage_set_ram_params(BtKeysStorage* instance, uint8_t* buff, uint16_t size); +bool bt_keys_storage_is_changed(BtKeysStorage* instance); + bool bt_keys_storage_load(BtKeysStorage* instance); bool bt_keys_storage_update(BtKeysStorage* instance, uint8_t* start_addr, uint32_t size); diff --git a/applications/services/bt/bt_service/bt_settings_api_i.h b/applications/services/bt/bt_service/bt_settings_api_i.h new file mode 100644 index 00000000000..44129589313 --- /dev/null +++ b/applications/services/bt/bt_service/bt_settings_api_i.h @@ -0,0 +1,8 @@ +#pragma once + +#include "bt.h" +#include "../bt_settings.h" + +void bt_get_settings(Bt* bt, BtSettings* settings); + +void bt_set_settings(Bt* bt, const BtSettings* settings); diff --git a/applications/services/bt/bt_settings.c b/applications/services/bt/bt_settings.c index 3602cf49774..abdc97f7e77 100644 --- a/applications/services/bt/bt_settings.c +++ b/applications/services/bt/bt_settings.c @@ -1,23 +1,36 @@ #include "bt_settings.h" +#include "bt_settings_filename.h" #include -#include #include +#include + +#define TAG "BtSettings" #define BT_SETTINGS_PATH INT_PATH(BT_SETTINGS_FILE_NAME) #define BT_SETTINGS_VERSION (0) #define BT_SETTINGS_MAGIC (0x19) -bool bt_settings_load(BtSettings* bt_settings) { +void bt_settings_load(BtSettings* bt_settings) { furi_assert(bt_settings); - return saved_struct_load( + const bool success = saved_struct_load( BT_SETTINGS_PATH, bt_settings, sizeof(BtSettings), BT_SETTINGS_MAGIC, BT_SETTINGS_VERSION); + + if(!success) { + FURI_LOG_W(TAG, "Failed to load settings, using defaults"); + memset(bt_settings, 0, sizeof(BtSettings)); + bt_settings_save(bt_settings); + } } -bool bt_settings_save(const BtSettings* bt_settings) { +void bt_settings_save(const BtSettings* bt_settings) { furi_assert(bt_settings); - return saved_struct_save( + const bool success = saved_struct_save( BT_SETTINGS_PATH, bt_settings, sizeof(BtSettings), BT_SETTINGS_MAGIC, BT_SETTINGS_VERSION); + + if(!success) { + FURI_LOG_E(TAG, "Failed to save settings"); + } } diff --git a/applications/services/bt/bt_settings.h b/applications/services/bt/bt_settings.h index a4e76a12cc5..c63220abb24 100644 --- a/applications/services/bt/bt_settings.h +++ b/applications/services/bt/bt_settings.h @@ -1,8 +1,5 @@ #pragma once -#include "bt_settings_filename.h" - -#include #include #ifdef __cplusplus @@ -13,9 +10,9 @@ typedef struct { bool enabled; } BtSettings; -bool bt_settings_load(BtSettings* bt_settings); +void bt_settings_load(BtSettings* bt_settings); -bool bt_settings_save(const BtSettings* bt_settings); +void bt_settings_save(const BtSettings* bt_settings); #ifdef __cplusplus } diff --git a/applications/services/desktop/animations/animation_manager.c b/applications/services/desktop/animations/animation_manager.c index 8e04e7894ef..dd2ae76a1c5 100644 --- a/applications/services/desktop/animations/animation_manager.c +++ b/applications/services/desktop/animations/animation_manager.c @@ -97,8 +97,11 @@ void animation_manager_set_interact_callback( void animation_manager_set_dummy_mode_state(AnimationManager* animation_manager, bool enabled) { furi_assert(animation_manager); - animation_manager->dummy_mode = enabled; - animation_manager_start_new_idle(animation_manager); + // Prevent change of animations if mode is the same + if(animation_manager->dummy_mode != enabled) { + animation_manager->dummy_mode = enabled; + animation_manager_start_new_idle(animation_manager); + } } static void animation_manager_check_blocking_callback(const void* message, void* context) { diff --git a/applications/services/desktop/desktop.c b/applications/services/desktop/desktop.c index 8b0c6d75380..66e503e967b 100644 --- a/applications/services/desktop/desktop.c +++ b/applications/services/desktop/desktop.c @@ -1,31 +1,24 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "desktop_i.h" + #include #include + +#include + #include +#include -#include "animations/animation_manager.h" -#include "desktop/scenes/desktop_scene.h" -#include "desktop/scenes/desktop_scene_i.h" -#include "desktop/views/desktop_view_locked.h" -#include "desktop/views/desktop_view_pin_input.h" -#include "desktop/views/desktop_view_pin_timeout.h" -#include "desktop_i.h" -#include "helpers/pin.h" -#include "helpers/slideshow_filename.h" +#include + +#include "scenes/desktop_scene.h" +#include "scenes/desktop_scene_locked.h" #define TAG "Desktop" static void desktop_auto_lock_arm(Desktop*); static void desktop_auto_lock_inhibit(Desktop*); static void desktop_start_auto_lock_timer(Desktop*); +static void desktop_apply_settings(Desktop*); static void desktop_loader_callback(const void* message, void* context) { furi_assert(context); @@ -42,6 +35,16 @@ static void desktop_loader_callback(const void* message, void* context) { } } +static void desktop_storage_callback(const void* message, void* context) { + furi_assert(context); + Desktop* desktop = context; + const StorageEvent* event = message; + + if(event->type == StorageEventTypeCardMount) { + view_dispatcher_send_custom_event(desktop->view_dispatcher, DesktopGlobalReloadSettings); + } +} + static void desktop_lock_icon_draw_callback(Canvas* canvas, void* context) { UNUSED(context); furi_assert(canvas); @@ -122,30 +125,39 @@ static bool desktop_custom_event_callback(void* context, uint32_t event) { furi_assert(context); Desktop* desktop = (Desktop*)context; - switch(event) { - case DesktopGlobalBeforeAppStarted: + if(event == DesktopGlobalBeforeAppStarted) { if(animation_manager_is_animation_loaded(desktop->animation_manager)) { animation_manager_unload_and_stall_animation(desktop->animation_manager); } + desktop_auto_lock_inhibit(desktop); - furi_semaphore_release(desktop->animation_semaphore); - return true; - case DesktopGlobalAfterAppFinished: - animation_manager_load_and_continue_animation(desktop->animation_manager); - DESKTOP_SETTINGS_LOAD(&desktop->settings); + desktop->app_running = true; - desktop_clock_reconfigure(desktop); + furi_semaphore_release(desktop->animation_semaphore); + } else if(event == DesktopGlobalAfterAppFinished) { + animation_manager_load_and_continue_animation(desktop->animation_manager); desktop_auto_lock_arm(desktop); - return true; - case DesktopGlobalAutoLock: - if(!loader_is_locked(desktop->loader) && !desktop->locked) { + desktop->app_running = false; + + } else if(event == DesktopGlobalAutoLock) { + if(!desktop->app_running && !desktop->locked) { desktop_lock(desktop); } - return true; + + } else if(event == DesktopGlobalSaveSettings) { + desktop_settings_save(&desktop->settings); + desktop_apply_settings(desktop); + + } else if(event == DesktopGlobalReloadSettings) { + desktop_settings_load(&desktop->settings); + desktop_apply_settings(desktop); + + } else { + return scene_manager_handle_custom_event(desktop->scene_manager, event); } - return scene_manager_handle_custom_event(desktop->scene_manager, event); + return true; } static bool desktop_back_event_callback(void* context) { @@ -205,84 +217,45 @@ static void desktop_clock_timer_callback(void* context) { furi_assert(context); Desktop* desktop = context; - if(gui_active_view_port_count(desktop->gui, GuiLayerStatusBarLeft) < 6) { - desktop_clock_update(desktop); - - view_port_enabled_set(desktop->clock_viewport, true); - } else { - view_port_enabled_set(desktop->clock_viewport, false); - } -} - -void desktop_lock(Desktop* desktop) { - furi_assert(!desktop->locked); - - furi_hal_rtc_set_flag(FuriHalRtcFlagLock); + const bool clock_enabled = gui_active_view_port_count(desktop->gui, GuiLayerStatusBarLeft) < 6; - if(desktop->settings.pin_code.length) { - Cli* cli = furi_record_open(RECORD_CLI); - cli_session_close(cli); - furi_record_close(RECORD_CLI); + if(clock_enabled) { + desktop_clock_update(desktop); } - desktop_auto_lock_inhibit(desktop); - scene_manager_set_scene_state( - desktop->scene_manager, DesktopSceneLocked, SCENE_LOCKED_FIRST_ENTER); - scene_manager_next_scene(desktop->scene_manager, DesktopSceneLocked); - - DesktopStatus status = {.locked = true}; - furi_pubsub_publish(desktop->status_pubsub, &status); - - desktop->locked = true; + view_port_enabled_set(desktop->clock_viewport, clock_enabled); } -void desktop_unlock(Desktop* desktop) { - furi_assert(desktop->locked); - - view_port_enabled_set(desktop->lock_icon_viewport, false); - Gui* gui = furi_record_open(RECORD_GUI); - gui_set_lockdown(gui, false); - furi_record_close(RECORD_GUI); - desktop_view_locked_unlock(desktop->locked_view); - scene_manager_search_and_switch_to_previous_scene(desktop->scene_manager, DesktopSceneMain); - desktop_auto_lock_arm(desktop); - furi_hal_rtc_reset_flag(FuriHalRtcFlagLock); - furi_hal_rtc_set_pin_fails(0); +static void desktop_apply_settings(Desktop* desktop) { + desktop->in_transition = true; - if(desktop->settings.pin_code.length) { - Cli* cli = furi_record_open(RECORD_CLI); - cli_session_open(cli, &cli_vcp); - furi_record_close(RECORD_CLI); - } + desktop_clock_reconfigure(desktop); - DesktopStatus status = {.locked = false}; - furi_pubsub_publish(desktop->status_pubsub, &status); + view_port_enabled_set(desktop->dummy_mode_icon_viewport, desktop->settings.dummy_mode); + desktop_main_set_dummy_mode_state(desktop->main_view, desktop->settings.dummy_mode); + animation_manager_set_dummy_mode_state( + desktop->animation_manager, desktop->settings.dummy_mode); - desktop->locked = false; -} + if(!desktop->app_running && !desktop->locked) { + desktop_auto_lock_arm(desktop); + } -void desktop_set_dummy_mode_state(Desktop* desktop, bool enabled) { - desktop->in_transition = true; - view_port_enabled_set(desktop->dummy_mode_icon_viewport, enabled); - desktop_main_set_dummy_mode_state(desktop->main_view, enabled); - animation_manager_set_dummy_mode_state(desktop->animation_manager, enabled); - desktop->settings.dummy_mode = enabled; - DESKTOP_SETTINGS_SAVE(&desktop->settings); desktop->in_transition = false; } -void desktop_set_stealth_mode_state(Desktop* desktop, bool enabled) { - desktop->in_transition = true; - if(enabled) { - furi_hal_rtc_set_flag(FuriHalRtcFlagStealthMode); - } else { - furi_hal_rtc_reset_flag(FuriHalRtcFlagStealthMode); +static void desktop_init_settings(Desktop* desktop) { + furi_pubsub_subscribe(storage_get_pubsub(desktop->storage), desktop_storage_callback, desktop); + + if(storage_sd_status(desktop->storage) != FSE_OK) { + FURI_LOG_D(TAG, "SD Card not ready, skipping settings"); + return; } - view_port_enabled_set(desktop->stealth_mode_icon_viewport, enabled); - desktop->in_transition = false; + + desktop_settings_load(&desktop->settings); + desktop_apply_settings(desktop); } -Desktop* desktop_alloc(void) { +static Desktop* desktop_alloc(void) { Desktop* desktop = malloc(sizeof(Desktop)); desktop->animation_semaphore = furi_semaphore_alloc(1, 0); @@ -391,14 +364,13 @@ Desktop* desktop_alloc(void) { } gui_add_view_port(desktop->gui, desktop->stealth_mode_icon_viewport, GuiLayerStatusBarLeft); + // Unload animations before starting an application desktop->loader = furi_record_open(RECORD_LOADER); + furi_pubsub_subscribe(loader_get_pubsub(desktop->loader), desktop_loader_callback, desktop); + desktop->storage = furi_record_open(RECORD_STORAGE); desktop->notification = furi_record_open(RECORD_NOTIFICATION); - desktop->app_start_stop_subscription = furi_pubsub_subscribe( - loader_get_pubsub(desktop->loader), desktop_loader_callback, desktop); - desktop->input_events_pubsub = furi_record_open(RECORD_INPUT_EVENTS); - desktop->input_events_subscription = NULL; desktop->auto_lock_timer = furi_timer_alloc(desktop_auto_lock_timer_callback, FuriTimerTypeOnce, desktop); @@ -408,19 +380,95 @@ Desktop* desktop_alloc(void) { desktop->update_clock_timer = furi_timer_alloc(desktop_clock_timer_callback, FuriTimerTypePeriodic, desktop); + desktop->app_running = loader_is_locked(desktop->loader); + furi_record_create(RECORD_DESKTOP, desktop); return desktop; } -static bool desktop_check_file_flag(const char* flag_path) { - Storage* storage = furi_record_open(RECORD_STORAGE); - bool exists = storage_common_stat(storage, flag_path, NULL) == FSE_OK; - furi_record_close(RECORD_STORAGE); +/* + * Private API + */ + +void desktop_lock(Desktop* desktop) { + furi_assert(!desktop->locked); + + furi_hal_rtc_set_flag(FuriHalRtcFlagLock); + + if(desktop_pin_code_is_set()) { + Cli* cli = furi_record_open(RECORD_CLI); + cli_session_close(cli); + furi_record_close(RECORD_CLI); + } + + desktop_auto_lock_inhibit(desktop); + scene_manager_set_scene_state( + desktop->scene_manager, DesktopSceneLocked, DesktopSceneLockedStateFirstEnter); + scene_manager_next_scene(desktop->scene_manager, DesktopSceneLocked); + + DesktopStatus status = {.locked = true}; + furi_pubsub_publish(desktop->status_pubsub, &status); + + desktop->locked = true; +} + +void desktop_unlock(Desktop* desktop) { + furi_assert(desktop->locked); + + view_port_enabled_set(desktop->lock_icon_viewport, false); + Gui* gui = furi_record_open(RECORD_GUI); + gui_set_lockdown(gui, false); + furi_record_close(RECORD_GUI); + desktop_view_locked_unlock(desktop->locked_view); + scene_manager_search_and_switch_to_previous_scene(desktop->scene_manager, DesktopSceneMain); + desktop_auto_lock_arm(desktop); + furi_hal_rtc_reset_flag(FuriHalRtcFlagLock); + furi_hal_rtc_set_pin_fails(0); + + if(desktop_pin_code_is_set()) { + Cli* cli = furi_record_open(RECORD_CLI); + cli_session_open(cli, &cli_vcp); + furi_record_close(RECORD_CLI); + } + + DesktopStatus status = {.locked = false}; + furi_pubsub_publish(desktop->status_pubsub, &status); + + desktop->locked = false; +} + +void desktop_set_dummy_mode_state(Desktop* desktop, bool enabled) { + desktop->in_transition = true; + + view_port_enabled_set(desktop->dummy_mode_icon_viewport, enabled); + desktop_main_set_dummy_mode_state(desktop->main_view, enabled); + animation_manager_set_dummy_mode_state(desktop->animation_manager, enabled); + desktop->settings.dummy_mode = enabled; + + desktop->in_transition = false; + + desktop_settings_save(&desktop->settings); +} + +void desktop_set_stealth_mode_state(Desktop* desktop, bool enabled) { + desktop->in_transition = true; + + if(enabled) { + furi_hal_rtc_set_flag(FuriHalRtcFlagStealthMode); + } else { + furi_hal_rtc_reset_flag(FuriHalRtcFlagStealthMode); + } + + view_port_enabled_set(desktop->stealth_mode_icon_viewport, enabled); - return exists; + desktop->in_transition = false; } +/* + * Public API + */ + bool desktop_api_is_locked(Desktop* instance) { furi_assert(instance); return furi_hal_rtc_is_flag_set(FuriHalRtcFlagLock); @@ -436,6 +484,30 @@ FuriPubSub* desktop_api_get_status_pubsub(Desktop* instance) { return instance->status_pubsub; } +void desktop_api_reload_settings(Desktop* instance) { + furi_assert(instance); + view_dispatcher_send_custom_event(instance->view_dispatcher, DesktopGlobalReloadSettings); +} + +void desktop_api_get_settings(Desktop* instance, DesktopSettings* settings) { + furi_assert(instance); + furi_assert(settings); + + *settings = instance->settings; +} + +void desktop_api_set_settings(Desktop* instance, const DesktopSettings* settings) { + furi_assert(instance); + furi_assert(settings); + + instance->settings = *settings; + view_dispatcher_send_custom_event(instance->view_dispatcher, DesktopGlobalSaveSettings); +} + +/* + * Application thread + */ + int32_t desktop_srv(void* p) { UNUSED(p); @@ -448,31 +520,15 @@ int32_t desktop_srv(void* p) { Desktop* desktop = desktop_alloc(); - bool loaded = DESKTOP_SETTINGS_LOAD(&desktop->settings); - if(!loaded) { - memset(&desktop->settings, 0, sizeof(desktop->settings)); - DESKTOP_SETTINGS_SAVE(&desktop->settings); - } - - view_port_enabled_set(desktop->dummy_mode_icon_viewport, desktop->settings.dummy_mode); - - desktop_clock_reconfigure(desktop); - - desktop_main_set_dummy_mode_state(desktop->main_view, desktop->settings.dummy_mode); - animation_manager_set_dummy_mode_state( - desktop->animation_manager, desktop->settings.dummy_mode); + desktop_init_settings(desktop); scene_manager_next_scene(desktop->scene_manager, DesktopSceneMain); if(furi_hal_rtc_is_flag_set(FuriHalRtcFlagLock)) { desktop_lock(desktop); - } else { - if(!loader_is_locked(desktop->loader)) { - desktop_auto_lock_arm(desktop); - } } - if(desktop_check_file_flag(SLIDESHOW_FS_PATH)) { + if(storage_file_exists(desktop->storage, SLIDESHOW_FS_PATH)) { scene_manager_next_scene(desktop->scene_manager, DesktopSceneSlideshow); } @@ -496,14 +552,12 @@ int32_t desktop_srv(void* p) { } // Special case: autostart application is already running - if(loader_is_locked(desktop->loader) && - animation_manager_is_animation_loaded(desktop->animation_manager)) { + if(desktop->app_running && animation_manager_is_animation_loaded(desktop->animation_manager)) { animation_manager_unload_and_stall_animation(desktop->animation_manager); } view_dispatcher_run(desktop->view_dispatcher); - furi_crash("That was unexpected"); - + // Should never get here (a service thread will crash automatically if it returns) return 0; } diff --git a/applications/services/desktop/desktop.h b/applications/services/desktop/desktop.h index 4eab24fcc50..e83bc3ee4db 100644 --- a/applications/services/desktop/desktop.h +++ b/applications/services/desktop/desktop.h @@ -2,16 +2,22 @@ #include -typedef struct Desktop Desktop; +#include "desktop_settings.h" #define RECORD_DESKTOP "desktop" -bool desktop_api_is_locked(Desktop* instance); - -void desktop_api_unlock(Desktop* instance); +typedef struct Desktop Desktop; typedef struct { bool locked; } DesktopStatus; +bool desktop_api_is_locked(Desktop* instance); + +void desktop_api_unlock(Desktop* instance); + FuriPubSub* desktop_api_get_status_pubsub(Desktop* instance); + +void desktop_api_get_settings(Desktop* instance, DesktopSettings* settings); + +void desktop_api_set_settings(Desktop* instance, const DesktopSettings* settings); diff --git a/applications/services/desktop/desktop_i.h b/applications/services/desktop/desktop_i.h index 4bcbb6585a5..1dc7c7d219a 100644 --- a/applications/services/desktop/desktop_i.h +++ b/applications/services/desktop/desktop_i.h @@ -1,6 +1,8 @@ #pragma once #include "desktop.h" +#include "desktop_settings.h" + #include "animations/animation_manager.h" #include "views/desktop_view_pin_timeout.h" #include "views/desktop_view_pin_input.h" @@ -9,9 +11,7 @@ #include "views/desktop_view_lock_menu.h" #include "views/desktop_view_debug.h" #include "views/desktop_view_slideshow.h" -#include -#include #include #include #include @@ -42,9 +42,8 @@ typedef struct { } DesktopClock; struct Desktop { - // Scene FuriThread* scene_thread; - // GUI + Gui* gui; ViewDispatcher* view_dispatcher; SceneManager* scene_manager; @@ -56,42 +55,38 @@ struct Desktop { DesktopMainView* main_view; DesktopViewPinTimeout* pin_timeout_view; DesktopSlideshowView* slideshow_view; + DesktopViewPinInput* pin_input_view; ViewStack* main_view_stack; ViewStack* locked_view_stack; - DesktopSettings settings; - DesktopViewPinInput* pin_input_view; - ViewPort* lock_icon_viewport; ViewPort* dummy_mode_icon_viewport; ViewPort* clock_viewport; ViewPort* stealth_mode_icon_viewport; - AnimationManager* animation_manager; - Loader* loader; + Storage* storage; NotificationApp* notification; - FuriPubSubSubscription* app_start_stop_subscription; + FuriPubSub* status_pubsub; FuriPubSub* input_events_pubsub; FuriPubSubSubscription* input_events_subscription; + FuriTimer* auto_lock_timer; FuriTimer* update_clock_timer; - FuriPubSub* status_pubsub; + AnimationManager* animation_manager; + FuriSemaphore* animation_semaphore; DesktopClock clock; + DesktopSettings settings; - bool in_transition : 1; - bool locked : 1; - - FuriSemaphore* animation_semaphore; + bool in_transition; + bool app_running; + bool locked; }; -Desktop* desktop_alloc(void); - -void desktop_free(Desktop* desktop); void desktop_lock(Desktop* desktop); void desktop_unlock(Desktop* desktop); void desktop_set_dummy_mode_state(Desktop* desktop, bool enabled); diff --git a/applications/services/desktop/desktop_settings.c b/applications/services/desktop/desktop_settings.c new file mode 100644 index 00000000000..f66fdeda717 --- /dev/null +++ b/applications/services/desktop/desktop_settings.c @@ -0,0 +1,79 @@ +#include "desktop_settings.h" +#include "desktop_settings_filename.h" + +#include +#include + +#define TAG "DesktopSettings" + +#define DESKTOP_SETTINGS_VER_10 (10) +#define DESKTOP_SETTINGS_VER (11) + +#define DESKTOP_SETTINGS_PATH INT_PATH(DESKTOP_SETTINGS_FILE_NAME) +#define DESKTOP_SETTINGS_MAGIC (0x17) + +typedef struct { + uint8_t reserved[11]; + DesktopSettings settings; +} DesktopSettingsV10; + +// Actual size of DesktopSettings v10 +static_assert(sizeof(DesktopSettingsV10) == 1044); + +void desktop_settings_load(DesktopSettings* settings) { + furi_assert(settings); + + bool success = false; + + do { + uint8_t version; + if(!saved_struct_get_metadata(DESKTOP_SETTINGS_PATH, NULL, &version, NULL)) break; + + if(version == DESKTOP_SETTINGS_VER) { + success = saved_struct_load( + DESKTOP_SETTINGS_PATH, + settings, + sizeof(DesktopSettings), + DESKTOP_SETTINGS_MAGIC, + DESKTOP_SETTINGS_VER); + + } else if(version == DESKTOP_SETTINGS_VER_10) { + DesktopSettingsV10* settings_v10 = malloc(sizeof(DesktopSettingsV10)); + + success = saved_struct_load( + DESKTOP_SETTINGS_PATH, + settings_v10, + sizeof(DesktopSettingsV10), + DESKTOP_SETTINGS_MAGIC, + DESKTOP_SETTINGS_VER_10); + + if(success) { + *settings = settings_v10->settings; + } + + free(settings_v10); + } + + } while(false); + + if(!success) { + FURI_LOG_W(TAG, "Failed to load file, using defaults"); + memset(settings, 0, sizeof(DesktopSettings)); + desktop_settings_save(settings); + } +} + +void desktop_settings_save(const DesktopSettings* settings) { + furi_assert(settings); + + const bool success = saved_struct_save( + DESKTOP_SETTINGS_PATH, + settings, + sizeof(DesktopSettings), + DESKTOP_SETTINGS_MAGIC, + DESKTOP_SETTINGS_VER); + + if(!success) { + FURI_LOG_E(TAG, "Failed to save file"); + } +} diff --git a/applications/services/desktop/desktop_settings.h b/applications/services/desktop/desktop_settings.h index 54be6aaa917..c07ac314d3b 100644 --- a/applications/services/desktop/desktop_settings.h +++ b/applications/services/desktop/desktop_settings.h @@ -1,43 +1,9 @@ #pragma once -#include "desktop_settings_filename.h" - -#include #include -#include -#include -#include - -#define DESKTOP_SETTINGS_VER (10) - -#define DESKTOP_SETTINGS_PATH INT_PATH(DESKTOP_SETTINGS_FILE_NAME) -#define DESKTOP_SETTINGS_MAGIC (0x17) -#define PIN_MAX_LENGTH 12 - -#define DESKTOP_SETTINGS_RUN_PIN_SETUP_ARG "run_pin_setup" - -#define DESKTOP_SETTINGS_SAVE(x) \ - saved_struct_save( \ - DESKTOP_SETTINGS_PATH, \ - (x), \ - sizeof(DesktopSettings), \ - DESKTOP_SETTINGS_MAGIC, \ - DESKTOP_SETTINGS_VER) - -#define DESKTOP_SETTINGS_LOAD(x) \ - saved_struct_load( \ - DESKTOP_SETTINGS_PATH, \ - (x), \ - sizeof(DesktopSettings), \ - DESKTOP_SETTINGS_MAGIC, \ - DESKTOP_SETTINGS_VER) - -#define MAX_PIN_SIZE 10 -#define MIN_PIN_SIZE 4 -#define MAX_APP_LENGTH 128 typedef enum { - FavoriteAppLeftShort = 0, + FavoriteAppLeftShort, FavoriteAppLeftLong, FavoriteAppRightShort, FavoriteAppRightLong, @@ -45,7 +11,7 @@ typedef enum { } FavoriteAppShortcut; typedef enum { - DummyAppLeft = 0, + DummyAppLeft, DummyAppRight, DummyAppDown, DummyAppOk, @@ -53,19 +19,16 @@ typedef enum { } DummyAppShortcut; typedef struct { - InputKey data[MAX_PIN_SIZE]; - uint8_t length; -} PinCode; - -typedef struct { - char name_or_path[MAX_APP_LENGTH]; + char name_or_path[128]; } FavoriteApp; typedef struct { - PinCode pin_code; uint32_t auto_lock_delay_ms; uint8_t dummy_mode; uint8_t display_clock; FavoriteApp favorite_apps[FavoriteAppNumber]; FavoriteApp dummy_apps[DummyAppNumber]; } DesktopSettings; + +void desktop_settings_load(DesktopSettings* settings); +void desktop_settings_save(const DesktopSettings* settings); diff --git a/applications/services/desktop/helpers/pin.c b/applications/services/desktop/helpers/pin.c deleted file mode 100644 index 0b1149d6c22..00000000000 --- a/applications/services/desktop/helpers/pin.c +++ /dev/null @@ -1,72 +0,0 @@ -#include "pin.h" - -#include -#include -#include -#include -#include -#include - -static const NotificationSequence sequence_pin_fail = { - &message_display_backlight_on, - - &message_red_255, - &message_vibro_on, - &message_delay_100, - &message_vibro_off, - &message_red_0, - - &message_delay_250, - - &message_red_255, - &message_vibro_on, - &message_delay_100, - &message_vibro_off, - &message_red_0, - NULL, -}; - -static const uint8_t desktop_helpers_fails_timeout[] = { - 0, - 0, - 0, - 0, - 30, - 60, - 90, - 120, - 150, - 180, - /* +60 for every next fail */ -}; - -void desktop_pin_lock_error_notify(void) { - NotificationApp* notification = furi_record_open(RECORD_NOTIFICATION); - notification_message(notification, &sequence_pin_fail); - furi_record_close(RECORD_NOTIFICATION); -} - -uint32_t desktop_pin_lock_get_fail_timeout(void) { - uint32_t pin_fails = furi_hal_rtc_get_pin_fails(); - uint32_t pin_timeout = 0; - uint32_t max_index = COUNT_OF(desktop_helpers_fails_timeout) - 1; - if(pin_fails <= max_index) { - pin_timeout = desktop_helpers_fails_timeout[pin_fails]; - } else { - pin_timeout = desktop_helpers_fails_timeout[max_index] + (pin_fails - max_index) * 60; - } - - return pin_timeout; -} - -bool desktop_pin_compare(const PinCode* pin_code1, const PinCode* pin_code2) { - furi_assert(pin_code1); - furi_assert(pin_code2); - bool result = false; - - if(pin_code1->length == pin_code2->length) { - result = !memcmp(pin_code1->data, pin_code2->data, pin_code1->length); - } - - return result; -} diff --git a/applications/services/desktop/helpers/pin.h b/applications/services/desktop/helpers/pin.h deleted file mode 100644 index 23d16b0aa4d..00000000000 --- a/applications/services/desktop/helpers/pin.h +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once -#include -#include -#include "../desktop.h" -#include - -void desktop_pin_lock_error_notify(void); - -uint32_t desktop_pin_lock_get_fail_timeout(void); - -bool desktop_pin_compare(const PinCode* pin_code1, const PinCode* pin_code2); diff --git a/applications/services/desktop/helpers/pin_code.c b/applications/services/desktop/helpers/pin_code.c new file mode 100644 index 00000000000..d1a37ed24c6 --- /dev/null +++ b/applications/services/desktop/helpers/pin_code.c @@ -0,0 +1,103 @@ +#include "pin_code.h" + +#include + +#include +#include + +#define DESKTOP_PIN_CODE_DIGIT_BIT_WIDTH (2) +#define DESKTOP_PIN_CODE_LENGTH_OFFSET (28) + +static const NotificationSequence sequence_pin_fail = { + &message_display_backlight_on, + + &message_red_255, + &message_vibro_on, + &message_delay_100, + &message_vibro_off, + &message_red_0, + + &message_delay_250, + + &message_red_255, + &message_vibro_on, + &message_delay_100, + &message_vibro_off, + &message_red_0, + NULL, +}; + +static const uint8_t desktop_helpers_fails_timeout[] = { + 0, + 0, + 0, + 0, + 30, + 60, + 90, + 120, + 150, + 180, + /* +60 for every next fail */ +}; + +static uint32_t desktop_pin_code_pack(const DesktopPinCode* pin_code) { + furi_check(pin_code); + furi_check(pin_code->length <= sizeof(pin_code->data)); + + uint32_t reg_value = 0; + + for(uint8_t i = 0; i < pin_code->length; ++i) { + furi_check(pin_code->data[i] < (1 << DESKTOP_PIN_CODE_DIGIT_BIT_WIDTH)); + reg_value |= (uint32_t)pin_code->data[i] << (i * DESKTOP_PIN_CODE_DIGIT_BIT_WIDTH); + } + + reg_value |= (uint32_t)pin_code->length << DESKTOP_PIN_CODE_LENGTH_OFFSET; + + return reg_value; +} + +bool desktop_pin_code_is_set(void) { + return furi_hal_rtc_get_pin_value() >> DESKTOP_PIN_CODE_LENGTH_OFFSET; +} + +void desktop_pin_code_set(const DesktopPinCode* pin_code) { + furi_hal_rtc_set_pin_value(desktop_pin_code_pack(pin_code)); +} + +void desktop_pin_code_reset(void) { + furi_hal_rtc_set_pin_value(0); +} + +bool desktop_pin_code_check(const DesktopPinCode* pin_code) { + return furi_hal_rtc_get_pin_value() == desktop_pin_code_pack(pin_code); +} + +bool desktop_pin_code_is_equal(const DesktopPinCode* pin_code1, const DesktopPinCode* pin_code2) { + furi_check(pin_code1); + furi_check(pin_code1->length <= sizeof(pin_code1->data)); + furi_check(pin_code2); + furi_check(pin_code2->length <= sizeof(pin_code2->data)); + + return pin_code1->length == pin_code2->length && + memcmp(pin_code1->data, pin_code2->data, pin_code1->length) == 0; +} + +void desktop_pin_lock_error_notify(void) { + NotificationApp* notification = furi_record_open(RECORD_NOTIFICATION); + notification_message(notification, &sequence_pin_fail); + furi_record_close(RECORD_NOTIFICATION); +} + +uint32_t desktop_pin_lock_get_fail_timeout(void) { + uint32_t pin_fails = furi_hal_rtc_get_pin_fails(); + uint32_t pin_timeout = 0; + uint32_t max_index = COUNT_OF(desktop_helpers_fails_timeout) - 1; + if(pin_fails <= max_index) { + pin_timeout = desktop_helpers_fails_timeout[pin_fails]; + } else { + pin_timeout = desktop_helpers_fails_timeout[max_index] + (pin_fails - max_index) * 60; + } + + return pin_timeout; +} diff --git a/applications/services/desktop/helpers/pin_code.h b/applications/services/desktop/helpers/pin_code.h new file mode 100644 index 00000000000..848c915b6ca --- /dev/null +++ b/applications/services/desktop/helpers/pin_code.h @@ -0,0 +1,25 @@ +#pragma once + +#include +#include + +#define DESKTOP_PIN_CODE_MAX_LEN (10) + +typedef struct { + uint8_t data[DESKTOP_PIN_CODE_MAX_LEN]; + uint8_t length; +} DesktopPinCode; + +bool desktop_pin_code_is_set(void); + +void desktop_pin_code_set(const DesktopPinCode* pin_code); + +void desktop_pin_code_reset(void); + +bool desktop_pin_code_check(const DesktopPinCode* pin_code); + +bool desktop_pin_code_is_equal(const DesktopPinCode* pin_code1, const DesktopPinCode* pin_code2); + +void desktop_pin_lock_error_notify(void); + +uint32_t desktop_pin_lock_get_fail_timeout(void); diff --git a/applications/services/desktop/scenes/desktop_scene_i.h b/applications/services/desktop/scenes/desktop_scene_i.h deleted file mode 100644 index f481733aca8..00000000000 --- a/applications/services/desktop/scenes/desktop_scene_i.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -#define SCENE_LOCKED_FIRST_ENTER 0 -#define SCENE_LOCKED_REPEAT_ENTER 1 diff --git a/applications/services/desktop/scenes/desktop_scene_lock_menu.c b/applications/services/desktop/scenes/desktop_scene_lock_menu.c index 5951a8e4e34..5ca95c4c590 100644 --- a/applications/services/desktop/scenes/desktop_scene_lock_menu.c +++ b/applications/services/desktop/scenes/desktop_scene_lock_menu.c @@ -20,7 +20,6 @@ void desktop_scene_lock_menu_callback(DesktopEvent event, void* context) { void desktop_scene_lock_menu_on_enter(void* context) { Desktop* desktop = (Desktop*)context; - DESKTOP_SETTINGS_LOAD(&desktop->settings); scene_manager_set_scene_state(desktop->scene_manager, DesktopSceneLockMenu, 0); desktop_lock_menu_set_callback(desktop->lock_menu, desktop_scene_lock_menu_callback, desktop); desktop_lock_menu_set_dummy_mode_state(desktop->lock_menu, desktop->settings.dummy_mode); @@ -38,11 +37,8 @@ bool desktop_scene_lock_menu_on_event(void* context, SceneManagerEvent event) { if(event.type == SceneManagerEventTypeTick) { bool check_pin_changed = scene_manager_get_scene_state(desktop->scene_manager, DesktopSceneLockMenu); - if(check_pin_changed) { - DESKTOP_SETTINGS_LOAD(&desktop->settings); - if(desktop->settings.pin_code.length > 0) { - scene_manager_set_scene_state(desktop->scene_manager, DesktopSceneLockMenu, 0); - } + if(check_pin_changed && desktop_pin_code_is_set()) { + scene_manager_set_scene_state(desktop->scene_manager, DesktopSceneLockMenu, 0); } } else if(event.type == SceneManagerEventTypeCustom) { switch(event.event) { diff --git a/applications/services/desktop/scenes/desktop_scene_locked.c b/applications/services/desktop/scenes/desktop_scene_locked.c index 846b2b5412d..e7eeebca6d6 100644 --- a/applications/services/desktop/scenes/desktop_scene_locked.c +++ b/applications/services/desktop/scenes/desktop_scene_locked.c @@ -6,12 +6,12 @@ #include "../desktop.h" #include "../desktop_i.h" -#include "../helpers/pin.h" +#include "../helpers/pin_code.h" #include "../animations/animation_manager.h" #include "../views/desktop_events.h" #include "../views/desktop_view_locked.h" #include "desktop_scene.h" -#include "desktop_scene_i.h" +#include "desktop_scene_locked.h" #define WRONG_PIN_HEADER_TIMEOUT 3000 #define INPUT_PIN_VIEW_TIMEOUT 15000 @@ -42,15 +42,13 @@ void desktop_scene_locked_on_enter(void* context) { bool switch_to_timeout_scene = false; uint32_t state = scene_manager_get_scene_state(desktop->scene_manager, DesktopSceneLocked); - if(state == SCENE_LOCKED_FIRST_ENTER) { - bool pin_locked = desktop->settings.pin_code.length > 0; + if(state == DesktopSceneLockedStateFirstEnter) { view_port_enabled_set(desktop->lock_icon_viewport, true); Gui* gui = furi_record_open(RECORD_GUI); gui_set_lockdown(gui, true); furi_record_close(RECORD_GUI); - if(pin_locked) { - DESKTOP_SETTINGS_LOAD(&desktop->settings); + if(desktop_pin_code_is_set()) { desktop_view_locked_lock(desktop->locked_view, true); uint32_t pin_timeout = desktop_pin_lock_get_fail_timeout(); if(pin_timeout > 0) { @@ -65,7 +63,7 @@ void desktop_scene_locked_on_enter(void* context) { desktop_view_locked_close_doors(desktop->locked_view); } scene_manager_set_scene_state( - desktop->scene_manager, DesktopSceneLocked, SCENE_LOCKED_REPEAT_ENTER); + desktop->scene_manager, DesktopSceneLocked, DesktopSceneLockedStateRepeatEnter); } if(switch_to_timeout_scene) { diff --git a/applications/services/desktop/scenes/desktop_scene_locked.h b/applications/services/desktop/scenes/desktop_scene_locked.h new file mode 100644 index 00000000000..7d5b6b7bcdc --- /dev/null +++ b/applications/services/desktop/scenes/desktop_scene_locked.h @@ -0,0 +1,6 @@ +#pragma once + +typedef enum { + DesktopSceneLockedStateFirstEnter, + DesktopSceneLockedStateRepeatEnter, +} DesktopSceneLockedState; diff --git a/applications/services/desktop/scenes/desktop_scene_main.c b/applications/services/desktop/scenes/desktop_scene_main.c index 5f3778d1323..af01ec8c7e4 100644 --- a/applications/services/desktop/scenes/desktop_scene_main.c +++ b/applications/services/desktop/scenes/desktop_scene_main.c @@ -141,25 +141,21 @@ bool desktop_scene_main_on_event(void* context, SceneManagerEvent event) { } case DesktopMainEventOpenFavoriteLeftShort: - DESKTOP_SETTINGS_LOAD(&desktop->settings); desktop_scene_main_start_favorite( desktop, &desktop->settings.favorite_apps[FavoriteAppLeftShort]); consumed = true; break; case DesktopMainEventOpenFavoriteLeftLong: - DESKTOP_SETTINGS_LOAD(&desktop->settings); desktop_scene_main_start_favorite( desktop, &desktop->settings.favorite_apps[FavoriteAppLeftLong]); consumed = true; break; case DesktopMainEventOpenFavoriteRightShort: - DESKTOP_SETTINGS_LOAD(&desktop->settings); desktop_scene_main_start_favorite( desktop, &desktop->settings.favorite_apps[FavoriteAppRightShort]); consumed = true; break; case DesktopMainEventOpenFavoriteRightLong: - DESKTOP_SETTINGS_LOAD(&desktop->settings); desktop_scene_main_start_favorite( desktop, &desktop->settings.favorite_apps[FavoriteAppRightLong]); consumed = true; @@ -175,7 +171,6 @@ bool desktop_scene_main_on_event(void* context, SceneManagerEvent event) { break; case DesktopAnimationEventInteractAnimation: if(!animation_manager_interact_process(desktop->animation_manager)) { - DESKTOP_SETTINGS_LOAD(&desktop->settings); if(!desktop->settings.dummy_mode) { desktop_scene_main_open_app_or_profile( desktop, &desktop->settings.favorite_apps[FavoriteAppRightShort]); diff --git a/applications/services/desktop/scenes/desktop_scene_pin_input.c b/applications/services/desktop/scenes/desktop_scene_pin_input.c index 6f5bfe8cb32..449dd97f1ad 100644 --- a/applications/services/desktop/scenes/desktop_scene_pin_input.c +++ b/applications/services/desktop/scenes/desktop_scene_pin_input.c @@ -10,7 +10,7 @@ #include "../desktop_i.h" #include "../views/desktop_events.h" #include "../views/desktop_view_pin_input.h" -#include "../helpers/pin.h" +#include "../helpers/pin_code.h" #include "desktop_scene.h" #define WRONG_PIN_HEADER_TIMEOUT 3000 @@ -49,10 +49,12 @@ static void desktop_scene_pin_input_back_callback(void* context) { view_dispatcher_send_custom_event(desktop->view_dispatcher, DesktopPinInputEventBack); } -static void desktop_scene_pin_input_done_callback(const PinCode* pin_code, void* context) { +static void desktop_scene_pin_input_done_callback(const DesktopPinCode* pin_code, void* context) { Desktop* desktop = (Desktop*)context; - if(desktop_pin_compare(&desktop->settings.pin_code, pin_code)) { + + if(desktop_pin_code_check(pin_code)) { view_dispatcher_send_custom_event(desktop->view_dispatcher, DesktopPinInputEventUnlocked); + } else { uint32_t pin_fails = furi_hal_rtc_get_pin_fails(); furi_hal_rtc_set_pin_fails(pin_fails + 1); diff --git a/applications/services/desktop/scenes/desktop_scene_slideshow.c b/applications/services/desktop/scenes/desktop_scene_slideshow.c index 012aff75196..75992411640 100644 --- a/applications/services/desktop/scenes/desktop_scene_slideshow.c +++ b/applications/services/desktop/scenes/desktop_scene_slideshow.c @@ -45,9 +45,6 @@ bool desktop_scene_slideshow_on_event(void* context, SceneManagerEvent event) { } void desktop_scene_slideshow_on_exit(void* context) { - UNUSED(context); - - Storage* storage = furi_record_open(RECORD_STORAGE); - storage_common_remove(storage, SLIDESHOW_FS_PATH); - furi_record_close(RECORD_STORAGE); + Desktop* desktop = context; + storage_common_remove(desktop->storage, SLIDESHOW_FS_PATH); } diff --git a/applications/services/desktop/views/desktop_events.h b/applications/services/desktop/views/desktop_events.h index 7749a7e1539..07631dfac26 100644 --- a/applications/services/desktop/views/desktop_events.h +++ b/applications/services/desktop/views/desktop_events.h @@ -55,4 +55,6 @@ typedef enum { DesktopGlobalAfterAppFinished, DesktopGlobalAutoLock, DesktopGlobalApiUnlock, + DesktopGlobalSaveSettings, + DesktopGlobalReloadSettings, } DesktopEvent; diff --git a/applications/services/desktop/views/desktop_view_pin_input.c b/applications/services/desktop/views/desktop_view_pin_input.c index 965b5cceb7c..c89a143c876 100644 --- a/applications/services/desktop/views/desktop_view_pin_input.c +++ b/applications/services/desktop/views/desktop_view_pin_input.c @@ -6,7 +6,6 @@ #include #include "desktop_view_pin_input.h" -#include #define NO_ACTIVITY_TIMEOUT 15000 @@ -14,6 +13,9 @@ #define DEFAULT_PIN_X 64 #define DEFAULT_PIN_Y 32 +#define MIN_PIN_LENGTH 4 +#define MAX_PIN_LENGTH DESKTOP_PIN_CODE_MAX_LEN + struct DesktopViewPinInput { View* view; DesktopViewPinInputCallback back_callback; @@ -24,7 +26,7 @@ struct DesktopViewPinInput { }; typedef struct { - PinCode pin; + DesktopPinCode pin; bool pin_hidden; bool locked_input; uint8_t pin_x; @@ -50,7 +52,7 @@ static bool desktop_view_pin_input_input(InputEvent* event, void* context) { bool call_back_callback = false; bool call_done_callback = false; - PinCode pin_code = {0}; + DesktopPinCode pin_code = {0}; if(event->type == InputTypeShort) { switch(event->key) { @@ -59,13 +61,13 @@ static bool desktop_view_pin_input_input(InputEvent* event, void* context) { case InputKeyDown: case InputKeyUp: if(!model->locked_input) { - if(model->pin.length < MAX_PIN_SIZE) { + if(model->pin.length < MAX_PIN_LENGTH) { model->pin.data[model->pin.length++] = event->key; } } break; case InputKeyOk: - if(model->pin.length >= MIN_PIN_SIZE) { + if(model->pin.length >= MIN_PIN_LENGTH) { call_done_callback = true; pin_code = model->pin; } @@ -102,7 +104,7 @@ static void desktop_view_pin_input_draw_cells(Canvas* canvas, DesktopViewPinInpu furi_assert(model); uint8_t draw_pin_size = MAX(4, model->pin.length + 1); - if(model->locked_input || (model->pin.length == MAX_PIN_SIZE)) { + if(model->locked_input || (model->pin.length == MAX_PIN_LENGTH)) { draw_pin_size = model->pin.length; } @@ -155,7 +157,7 @@ static void desktop_view_pin_input_draw(Canvas* canvas, void* context) { canvas_draw_str(canvas, 16, 60, "= clear"); } - if(model->button_label && ((model->pin.length >= MIN_PIN_SIZE) || model->locked_input)) { + if(model->button_label && ((model->pin.length >= MIN_PIN_LENGTH) || model->locked_input)) { elements_button_center(canvas, model->button_label); } @@ -247,7 +249,7 @@ void desktop_view_pin_input_unlock_input(DesktopViewPinInput* pin_input) { view_commit_model(pin_input->view, true); } -void desktop_view_pin_input_set_pin(DesktopViewPinInput* pin_input, const PinCode* pin) { +void desktop_view_pin_input_set_pin(DesktopViewPinInput* pin_input, const DesktopPinCode* pin) { furi_assert(pin_input); furi_assert(pin); diff --git a/applications/services/desktop/views/desktop_view_pin_input.h b/applications/services/desktop/views/desktop_view_pin_input.h index c430aff9ffe..4605b6ff155 100644 --- a/applications/services/desktop/views/desktop_view_pin_input.h +++ b/applications/services/desktop/views/desktop_view_pin_input.h @@ -1,16 +1,17 @@ #pragma once #include -#include + +#include "../helpers/pin_code.h" typedef void (*DesktopViewPinInputCallback)(void*); -typedef void (*DesktopViewPinInputDoneCallback)(const PinCode* pin_code, void*); +typedef void (*DesktopViewPinInputDoneCallback)(const DesktopPinCode* pin_code, void*); typedef struct DesktopViewPinInput DesktopViewPinInput; DesktopViewPinInput* desktop_view_pin_input_alloc(void); void desktop_view_pin_input_free(DesktopViewPinInput*); -void desktop_view_pin_input_set_pin(DesktopViewPinInput* pin_input, const PinCode* pin); +void desktop_view_pin_input_set_pin(DesktopViewPinInput* pin_input, const DesktopPinCode* pin_code); void desktop_view_pin_input_reset_pin(DesktopViewPinInput* pin_input); void desktop_view_pin_input_hide_pin(DesktopViewPinInput* pin_input, bool pin_hidden); void desktop_view_pin_input_set_label_button(DesktopViewPinInput* pin_input, const char* label); diff --git a/applications/services/dolphin/dolphin.c b/applications/services/dolphin/dolphin.c index 95982f1af83..198c1483a3a 100644 --- a/applications/services/dolphin/dolphin.c +++ b/applications/services/dolphin/dolphin.c @@ -1,6 +1,7 @@ #include "dolphin_i.h" #include +#include #define TAG "Dolphin" @@ -223,6 +224,10 @@ static bool dolphin_process_event(FuriMessageQueue* queue, void* context) { dolphin_state_increase_level(dolphin->state); furi_event_loop_timer_start(dolphin->flush_timer, FLUSH_TIMEOUT_TICKS); + } else if(event.type == DolphinEventTypeReloadState) { + dolphin_state_load(dolphin->state); + furi_event_loop_timer_start(dolphin->butthurt_timer, BUTTHURT_INCREASE_PERIOD_TICKS); + } else { furi_crash(); } @@ -232,6 +237,32 @@ static bool dolphin_process_event(FuriMessageQueue* queue, void* context) { return true; } +static void dolphin_storage_callback(const void* message, void* context) { + furi_assert(context); + Dolphin* dolphin = context; + const StorageEvent* event = message; + + if(event->type == StorageEventTypeCardMount) { + DolphinEvent event = { + .type = DolphinEventTypeReloadState, + }; + + dolphin_event_send_async(dolphin, &event); + } +} + +static void dolphin_init_state(Dolphin* dolphin) { + Storage* storage = furi_record_open(RECORD_STORAGE); + furi_pubsub_subscribe(storage_get_pubsub(storage), dolphin_storage_callback, dolphin); + + if(storage_sd_status(storage) != FSE_OK) { + FURI_LOG_D(TAG, "SD Card not ready, skipping state"); + return; + } + + dolphin_state_load(dolphin->state); +} + // Application thread int32_t dolphin_srv(void* p) { @@ -247,7 +278,7 @@ int32_t dolphin_srv(void* p) { Dolphin* dolphin = dolphin_alloc(); furi_record_create(RECORD_DOLPHIN, dolphin); - dolphin_state_load(dolphin->state); + dolphin_init_state(dolphin); furi_event_loop_message_queue_subscribe( dolphin->event_loop, diff --git a/applications/services/dolphin/dolphin_i.h b/applications/services/dolphin/dolphin_i.h index d4add808ade..6a6b3dfd814 100644 --- a/applications/services/dolphin/dolphin_i.h +++ b/applications/services/dolphin/dolphin_i.h @@ -12,6 +12,7 @@ typedef enum { DolphinEventTypeStats, DolphinEventTypeFlush, DolphinEventTypeLevel, + DolphinEventTypeReloadState, } DolphinEventType; typedef struct { diff --git a/applications/services/dolphin/helpers/dolphin_state.c b/applications/services/dolphin/helpers/dolphin_state.c index 5216b961dcf..5cbc5114585 100644 --- a/applications/services/dolphin/helpers/dolphin_state.c +++ b/applications/services/dolphin/helpers/dolphin_state.c @@ -1,11 +1,10 @@ #include "dolphin_state.h" -#include "dolphin/helpers/dolphin_deed.h" #include "dolphin_state_filename.h" -#include -#include #include #include + +#include #include #define TAG "DolphinState" @@ -26,29 +25,28 @@ void dolphin_state_free(DolphinState* dolphin_state) { free(dolphin_state); } -bool dolphin_state_save(DolphinState* dolphin_state) { +void dolphin_state_save(DolphinState* dolphin_state) { if(!dolphin_state->dirty) { - return true; + return; } - bool result = saved_struct_save( + bool success = saved_struct_save( DOLPHIN_STATE_PATH, &dolphin_state->data, sizeof(DolphinStoreData), DOLPHIN_STATE_HEADER_MAGIC, DOLPHIN_STATE_HEADER_VERSION); - if(result) { + if(success) { FURI_LOG_I(TAG, "State saved"); dolphin_state->dirty = false; + } else { FURI_LOG_E(TAG, "Failed to save state"); } - - return result; } -bool dolphin_state_load(DolphinState* dolphin_state) { +void dolphin_state_load(DolphinState* dolphin_state) { bool success = saved_struct_load( DOLPHIN_STATE_PATH, &dolphin_state->data, @@ -64,12 +62,12 @@ bool dolphin_state_load(DolphinState* dolphin_state) { } if(!success) { - FURI_LOG_W(TAG, "Reset dolphin-state"); - memset(dolphin_state, 0, sizeof(*dolphin_state)); + FURI_LOG_W(TAG, "Reset Dolphin state"); + memset(dolphin_state, 0, sizeof(DolphinState)); + dolphin_state->dirty = true; + dolphin_state_save(dolphin_state); } - - return success; } uint64_t dolphin_state_timestamp(void) { diff --git a/applications/services/dolphin/helpers/dolphin_state.h b/applications/services/dolphin/helpers/dolphin_state.h index a8d8406bef2..bdbd98d4737 100644 --- a/applications/services/dolphin/helpers/dolphin_state.h +++ b/applications/services/dolphin/helpers/dolphin_state.h @@ -1,9 +1,9 @@ #pragma once -#include "dolphin_deed.h" #include #include -#include + +#include "dolphin_deed.h" typedef struct DolphinState DolphinState; typedef struct { @@ -25,9 +25,9 @@ DolphinState* dolphin_state_alloc(void); void dolphin_state_free(DolphinState* dolphin_state); -bool dolphin_state_save(DolphinState* dolphin_state); +void dolphin_state_save(DolphinState* dolphin_state); -bool dolphin_state_load(DolphinState* dolphin_state); +void dolphin_state_load(DolphinState* dolphin_state); void dolphin_state_clear_limits(DolphinState* dolphin_state); diff --git a/applications/services/expansion/expansion.c b/applications/services/expansion/expansion.c index 0b00753fcf8..219bf064146 100644 --- a/applications/services/expansion/expansion.c +++ b/applications/services/expansion/expansion.c @@ -3,6 +3,7 @@ #include #include +#include #include #include "expansion_worker.h" @@ -23,6 +24,7 @@ typedef enum { ExpansionMessageTypeEnable, ExpansionMessageTypeDisable, ExpansionMessageTypeSetListenSerial, + ExpansionMessageTypeReloadSettings, ExpansionMessageTypeModuleConnected, ExpansionMessageTypeModuleDisconnected, } ExpansionMessageType; @@ -86,10 +88,8 @@ static void return; } - ExpansionSettings settings = {0}; - if(!expansion_settings_load(&settings)) { - expansion_settings_save(&settings); - } + ExpansionSettings settings; + expansion_settings_load(&settings); if(settings.uart_index < FuriHalSerialIdMax) { instance->state = ExpansionStateEnabled; @@ -104,7 +104,6 @@ static void static void expansion_control_handler_disable(Expansion* instance, const ExpansionMessageData* data) { UNUSED(data); - if(instance->state == ExpansionStateDisabled) { return; } else if(instance->state == ExpansionStateRunning) { @@ -122,9 +121,10 @@ static void static void expansion_control_handler_set_listen_serial( Expansion* instance, const ExpansionMessageData* data) { - furi_check(data->serial_id < FuriHalSerialIdMax); + if(instance->state != ExpansionStateDisabled && instance->serial_id == data->serial_id) { + return; - if(instance->state == ExpansionStateRunning) { + } else if(instance->state == ExpansionStateRunning) { expansion_worker_stop(instance->worker); expansion_worker_free(instance->worker); @@ -141,6 +141,26 @@ static void expansion_control_handler_set_listen_serial( FURI_LOG_D(TAG, "Listen serial changed to %s", expansion_uart_names[instance->serial_id]); } +static void expansion_control_handler_reload_settings( + Expansion* instance, + const ExpansionMessageData* data) { + UNUSED(data); + + ExpansionSettings settings; + expansion_settings_load(&settings); + + if(settings.uart_index < FuriHalSerialIdMax) { + const ExpansionMessageData data = { + .serial_id = settings.uart_index, + }; + + expansion_control_handler_set_listen_serial(instance, &data); + + } else { + expansion_control_handler_disable(instance, NULL); + } +} + static void expansion_control_handler_module_connected( Expansion* instance, const ExpansionMessageData* data) { @@ -178,6 +198,7 @@ static const ExpansionControlHandler expansion_control_handlers[] = { [ExpansionMessageTypeEnable] = expansion_control_handler_enable, [ExpansionMessageTypeDisable] = expansion_control_handler_disable, [ExpansionMessageTypeSetListenSerial] = expansion_control_handler_set_listen_serial, + [ExpansionMessageTypeReloadSettings] = expansion_control_handler_reload_settings, [ExpansionMessageTypeModuleConnected] = expansion_control_handler_module_connected, [ExpansionMessageTypeModuleDisconnected] = expansion_control_handler_module_disconnected, }; @@ -214,6 +235,22 @@ static Expansion* expansion_alloc(void) { return instance; } +static void expansion_storage_callback(const void* message, void* context) { + furi_assert(context); + + const StorageEvent* event = message; + Expansion* instance = context; + + if(event->type == StorageEventTypeCardMount) { + ExpansionMessage em = { + .type = ExpansionMessageTypeReloadSettings, + .api_lock = NULL, + }; + + furi_check(furi_message_queue_put(instance->queue, &em, FuriWaitForever) == FuriStatusOk); + } +} + void expansion_on_system_start(void* arg) { UNUSED(arg); @@ -221,6 +258,14 @@ void expansion_on_system_start(void* arg) { furi_record_create(RECORD_EXPANSION, instance); furi_thread_start(instance->thread); + Storage* storage = furi_record_open(RECORD_STORAGE); + furi_pubsub_subscribe(storage_get_pubsub(storage), expansion_storage_callback, instance); + + if(storage_sd_status(storage) != FSE_OK) { + FURI_LOG_D(TAG, "SD Card not ready, skipping settings"); + return; + } + expansion_enable(instance); } diff --git a/applications/services/expansion/expansion_settings.c b/applications/services/expansion/expansion_settings.c index ca48a290319..274ac743044 100644 --- a/applications/services/expansion/expansion_settings.c +++ b/applications/services/expansion/expansion_settings.c @@ -5,26 +5,40 @@ #include "expansion_settings_filename.h" +#define TAG "ExpansionSettings" + #define EXPANSION_SETTINGS_PATH INT_PATH(EXPANSION_SETTINGS_FILE_NAME) #define EXPANSION_SETTINGS_VERSION (0) #define EXPANSION_SETTINGS_MAGIC (0xEA) -bool expansion_settings_load(ExpansionSettings* settings) { +void expansion_settings_load(ExpansionSettings* settings) { furi_assert(settings); - return saved_struct_load( + + const bool success = saved_struct_load( EXPANSION_SETTINGS_PATH, settings, sizeof(ExpansionSettings), EXPANSION_SETTINGS_MAGIC, EXPANSION_SETTINGS_VERSION); + + if(!success) { + FURI_LOG_W(TAG, "Failed to load file, using defaults"); + memset(settings, 0, sizeof(ExpansionSettings)); + expansion_settings_save(settings); + } } -bool expansion_settings_save(const ExpansionSettings* settings) { +void expansion_settings_save(const ExpansionSettings* settings) { furi_assert(settings); - return saved_struct_save( + + const bool success = saved_struct_save( EXPANSION_SETTINGS_PATH, settings, sizeof(ExpansionSettings), EXPANSION_SETTINGS_MAGIC, EXPANSION_SETTINGS_VERSION); + + if(!success) { + FURI_LOG_E(TAG, "Failed to save file"); + } } diff --git a/applications/services/expansion/expansion_settings.h b/applications/services/expansion/expansion_settings.h index 38e9f8d0258..4594918e338 100644 --- a/applications/services/expansion/expansion_settings.h +++ b/applications/services/expansion/expansion_settings.h @@ -25,18 +25,16 @@ typedef struct { /** * @brief Load expansion module support settings from file. * - * @param[out] settings pointer to an ExpansionSettings instance to load settings into. - * @returns true if the settings were successfully loaded, false otherwise. + * @param[in,out] settings pointer to an ExpansionSettings instance to load settings into. */ -bool expansion_settings_load(ExpansionSettings* settings); +void expansion_settings_load(ExpansionSettings* settings); /** * @brief Save expansion module support settings to file. * * @param[in] settings pointer to an ExpansionSettings instance to save settings from. - * @returns true if the settings were successfully saved, false otherwise. */ -bool expansion_settings_save(const ExpansionSettings* settings); +void expansion_settings_save(const ExpansionSettings* settings); #ifdef __cplusplus } diff --git a/applications/services/gui/modules/file_browser_worker.c b/applications/services/gui/modules/file_browser_worker.c index 15117eae2ff..a6b00537a0f 100644 --- a/applications/services/gui/modules/file_browser_worker.c +++ b/applications/services/gui/modules/file_browser_worker.c @@ -15,7 +15,7 @@ #define TAG "BrowserWorker" #define ASSETS_DIR "assets" -#define BROWSER_ROOT STORAGE_ANY_PATH_PREFIX +#define BROWSER_ROOT STORAGE_EXT_PATH_PREFIX #define FILE_NAME_LEN_MAX 256 #define LONG_LOAD_THRESHOLD 100 diff --git a/applications/services/notification/notification_app.c b/applications/services/notification/notification_app.c index d4c5b91c8c9..35d2fe675aa 100644 --- a/applications/services/notification/notification_app.c +++ b/applications/services/notification/notification_app.c @@ -438,7 +438,7 @@ static bool notification_load_settings(NotificationApp* app) { File* file = storage_file_alloc(furi_record_open(RECORD_STORAGE)); const size_t settings_size = sizeof(NotificationSettings); - FURI_LOG_I(TAG, "loading settings from \"%s\"", NOTIFICATION_SETTINGS_PATH); + FURI_LOG_I(TAG, "Loading \"%s\"", NOTIFICATION_SETTINGS_PATH); bool fs_result = storage_file_open(file, NOTIFICATION_SETTINGS_PATH, FSAM_READ, FSOM_OPEN_EXISTING); @@ -451,8 +451,6 @@ static bool notification_load_settings(NotificationApp* app) { } if(fs_result) { - FURI_LOG_I(TAG, "load success"); - if(settings.version != NOTIFICATION_SETTINGS_VERSION) { FURI_LOG_E( TAG, "version(%d != %d) mismatch", settings.version, NOTIFICATION_SETTINGS_VERSION); @@ -462,7 +460,7 @@ static bool notification_load_settings(NotificationApp* app) { furi_kernel_unlock(); } } else { - FURI_LOG_E(TAG, "load failed, %s", storage_file_get_error_desc(file)); + FURI_LOG_E(TAG, "Load failed, %s", storage_file_get_error_desc(file)); } storage_file_close(file); @@ -477,7 +475,7 @@ static bool notification_save_settings(NotificationApp* app) { File* file = storage_file_alloc(furi_record_open(RECORD_STORAGE)); const size_t settings_size = sizeof(NotificationSettings); - FURI_LOG_I(TAG, "saving settings to \"%s\"", NOTIFICATION_SETTINGS_PATH); + FURI_LOG_I(TAG, "Saving \"%s\"", NOTIFICATION_SETTINGS_PATH); furi_kernel_lock(); memcpy(&settings, &app->settings, settings_size); @@ -495,9 +493,8 @@ static bool notification_save_settings(NotificationApp* app) { } if(fs_result) { - FURI_LOG_I(TAG, "save success"); } else { - FURI_LOG_E(TAG, "save failed, %s", storage_file_get_error_desc(file)); + FURI_LOG_E(TAG, "Save failed, %s", storage_file_get_error_desc(file)); } storage_file_close(file); @@ -556,14 +553,46 @@ static NotificationApp* notification_app_alloc(void) { return app; } +static void notification_storage_callback(const void* message, void* context) { + furi_assert(context); + NotificationApp* app = context; + const StorageEvent* event = message; + + if(event->type == StorageEventTypeCardMount) { + NotificationAppMessage m = { + .type = LoadSettingsMessage, + }; + + furi_check(furi_message_queue_put(app->queue, &m, FuriWaitForever) == FuriStatusOk); + } +} + +static void notification_apply_settings(NotificationApp* app) { + if(!notification_load_settings(app)) { + notification_save_settings(app); + } + + notification_apply_lcd_contrast(app); +} + +static void notification_init_settings(NotificationApp* app) { + Storage* storage = furi_record_open(RECORD_STORAGE); + furi_pubsub_subscribe(storage_get_pubsub(storage), notification_storage_callback, app); + + if(storage_sd_status(storage) != FSE_OK) { + FURI_LOG_D(TAG, "SD Card not ready, skipping settings"); + return; + } + + notification_apply_settings(app); +} + // App int32_t notification_srv(void* p) { UNUSED(p); NotificationApp* app = notification_app_alloc(); - if(!notification_load_settings(app)) { - notification_save_settings(app); - } + notification_init_settings(app); notification_vibro_off(); notification_sound_off(); @@ -571,7 +600,6 @@ int32_t notification_srv(void* p) { notification_apply_internal_led_layer(&app->led[0], 0x00); notification_apply_internal_led_layer(&app->led[1], 0x00); notification_apply_internal_led_layer(&app->led[2], 0x00); - notification_apply_lcd_contrast(app); furi_record_create(RECORD_NOTIFICATION, app); @@ -589,6 +617,9 @@ int32_t notification_srv(void* p) { case SaveSettingsMessage: notification_save_settings(app); break; + case LoadSettingsMessage: + notification_load_settings(app); + break; } if(message.back_event != NULL) { diff --git a/applications/services/notification/notification_app.h b/applications/services/notification/notification_app.h index 434773f2e50..e1954657417 100644 --- a/applications/services/notification/notification_app.h +++ b/applications/services/notification/notification_app.h @@ -11,6 +11,7 @@ typedef enum { NotificationLayerMessage, InternalLayerMessage, SaveSettingsMessage, + LoadSettingsMessage, } NotificationAppMessageType; typedef struct { diff --git a/applications/services/region/application.fam b/applications/services/region/application.fam new file mode 100644 index 00000000000..a4cdc94ea57 --- /dev/null +++ b/applications/services/region/application.fam @@ -0,0 +1,10 @@ +App( + appid="region", + name="RegionSrv", + apptype=FlipperAppType.STARTUP, + targets=["f7"], + entry_point="region_on_system_start", + cdefines=["SRV_REGION"], + requires=["storage"], + order=170, +) diff --git a/applications/services/region/region.c b/applications/services/region/region.c new file mode 100644 index 00000000000..dffcc6b2d5e --- /dev/null +++ b/applications/services/region/region.c @@ -0,0 +1,147 @@ +#include + +#include +#include + +#include +#include + +#define TAG "RegionSrv" + +#define SUBGHZ_REGION_FILENAME INT_PATH(".region_data") + +static bool region_istream_read(pb_istream_t* istream, pb_byte_t* buf, size_t count) { + File* file = istream->state; + size_t ret = storage_file_read(file, buf, count); + return count == ret; +} + +static bool region_istream_decode_band(pb_istream_t* stream, const pb_field_t* field, void** arg) { + UNUSED(field); + + FuriHalRegion* region = *arg; + + PB_Region_Band band = {0}; + if(!pb_decode(stream, PB_Region_Band_fields, &band)) { + FURI_LOG_E(TAG, "PB Region band decode error: %s", PB_GET_ERROR(stream)); + return false; + } + + region->bands_count += 1; + region = realloc( //-V701 + region, + sizeof(FuriHalRegion) + sizeof(FuriHalRegionBand) * region->bands_count); + size_t pos = region->bands_count - 1; + region->bands[pos].start = band.start; + region->bands[pos].end = band.end; + region->bands[pos].power_limit = band.power_limit; + region->bands[pos].duty_cycle = band.duty_cycle; + *arg = region; + + FURI_LOG_I( + TAG, + "Add allowed band: start %luHz, stop %luHz, power_limit %ddBm, duty_cycle %u%%", + band.start, + band.end, + band.power_limit, + band.duty_cycle); + return true; +} + +static int32_t region_load_file(void* context) { + UNUSED(context); + + Storage* storage = furi_record_open(RECORD_STORAGE); + File* file = storage_file_alloc(storage); + + PB_Region pb_region = {0}; + pb_region.bands.funcs.decode = region_istream_decode_band; + + do { + FileInfo fileinfo = {0}; + + if(storage_common_stat(storage, SUBGHZ_REGION_FILENAME, &fileinfo) != FSE_OK || + fileinfo.size == 0) { + FURI_LOG_W(TAG, "Region file missing or empty"); + break; + + } else if(!storage_file_open(file, SUBGHZ_REGION_FILENAME, FSAM_READ, FSOM_OPEN_EXISTING)) { + FURI_LOG_E(TAG, "Failed to open region file"); + break; + } + + pb_istream_t istream = { + .callback = region_istream_read, + .state = file, + .errmsg = NULL, + .bytes_left = fileinfo.size, + }; + + pb_region.bands.arg = malloc(sizeof(FuriHalRegion)); + + if(!pb_decode(&istream, PB_Region_fields, &pb_region)) { + FURI_LOG_E(TAG, "Failed to decode region file"); + free(pb_region.bands.arg); + break; + } + + FuriHalRegion* region = pb_region.bands.arg; + + memcpy( + region->country_code, + pb_region.country_code->bytes, + MIN(pb_region.country_code->size, sizeof(region->country_code) - 1)); + + furi_hal_region_set(region); + + FURI_LOG_I(TAG, "Dynamic region set: %s", region->country_code); + } while(0); + + pb_release(PB_Region_fields, &pb_region); + storage_file_free(file); + furi_record_close(RECORD_STORAGE); + + return 0; +} + +static void region_loader_pending_callback(void* context, uint32_t arg) { + UNUSED(arg); + + FuriThread* loader = context; + furi_thread_join(loader); + furi_thread_free(loader); +} + +static void region_loader_state_callback(FuriThreadState state, void* context) { + UNUSED(context); + + if(state == FuriThreadStateStopped) { + furi_timer_pending_callback(region_loader_pending_callback, furi_thread_get_current(), 0); + } +} + +static void region_storage_callback(const void* message, void* context) { + UNUSED(context); + const StorageEvent* event = message; + + if(event->type == StorageEventTypeCardMount) { + FuriThread* loader = furi_thread_alloc_ex(NULL, 2048, region_load_file, NULL); + furi_thread_set_state_callback(loader, region_loader_state_callback); + furi_thread_start(loader); + } +} + +int32_t region_on_system_start(void* p) { + UNUSED(p); + + Storage* storage = furi_record_open(RECORD_STORAGE); + furi_pubsub_subscribe(storage_get_pubsub(storage), region_storage_callback, NULL); + + if(storage_sd_status(storage) != FSE_OK) { + FURI_LOG_D(TAG, "SD Card not ready, skipping dynamic region"); + return 0; + } + + region_load_file(NULL); + return 0; +} diff --git a/applications/services/storage/storage.c b/applications/services/storage/storage.c index 21f8789cecd..bfe2a08b210 100644 --- a/applications/services/storage/storage.c +++ b/applications/services/storage/storage.c @@ -3,7 +3,6 @@ #include "storage_message.h" #include "storage_processing.h" #include "storage/storage_glue.h" -#include "storages/storage_int.h" #include "storages/storage_ext.h" #include @@ -42,9 +41,6 @@ Storage* storage_app_alloc(void) { storage_data_timestamp(&app->storage[i]); } -#ifndef FURI_RAM_EXEC - storage_int_init(&app->storage[ST_INT]); -#endif storage_ext_init(&app->storage[ST_EXT]); // sd icon gui @@ -106,6 +102,11 @@ int32_t storage_srv(void* p) { Storage* app = storage_app_alloc(); furi_record_create(RECORD_STORAGE, app); + if(furi_hal_rtc_is_flag_set(FuriHalRtcFlagStorageFormatInternal)) { + FURI_LOG_W(TAG, "Format Internal not supported, clearing flag"); + furi_hal_rtc_reset_flag(FuriHalRtcFlagStorageFormatInternal); + } + StorageMessage message; while(1) { if(furi_message_queue_get(app->message_queue, &message, STORAGE_TICK) == FuriStatusOk) { diff --git a/applications/services/storage/storage.h b/applications/services/storage/storage.h index a4dffe63309..6dbeb0d36b6 100644 --- a/applications/services/storage/storage.h +++ b/applications/services/storage/storage.h @@ -506,7 +506,7 @@ FS_Error storage_sd_status(Storage* storage); /******************* Internal LFS Functions *******************/ -typedef void (*Storage_name_converter)(FuriString*); +typedef void (*StorageNameConverter)(FuriString*); /** * @brief Back up the internal storage contents to a *.tar archive. @@ -526,7 +526,7 @@ FS_Error storage_int_backup(Storage* storage, const char* dstname); * @return FSE_OK if the storage was successfully restored, any other error code on failure. */ FS_Error - storage_int_restore(Storage* storage, const char* dstname, Storage_name_converter converter); + storage_int_restore(Storage* storage, const char* dstname, StorageNameConverter converter); /***************** Simplified Functions ******************/ diff --git a/applications/services/storage/storage_cli.c b/applications/services/storage/storage_cli.c index 918e796ce33..17fd4eae4de 100644 --- a/applications/services/storage/storage_cli.c +++ b/applications/services/storage/storage_cli.c @@ -33,7 +33,7 @@ static void storage_cli_info(Cli* cli, FuriString* path, FuriString* args) { storage_cli_print_error(error); } else { printf( - "Label: %s\r\nType: LittleFS\r\n%luKiB total\r\n%luKiB free\r\n", + "Label: %s\r\nType: Virtual\r\n%luKiB total\r\n%luKiB free\r\n", furi_hal_version_get_name_ptr() ? furi_hal_version_get_name_ptr() : "Unknown", (uint32_t)(total_space / 1024), (uint32_t)(free_space / 1024)); diff --git a/applications/services/storage/storage_internal_api.c b/applications/services/storage/storage_internal_api.c index 4cbce7546eb..defab966ce2 100644 --- a/applications/services/storage/storage_internal_api.c +++ b/applications/services/storage/storage_internal_api.c @@ -14,7 +14,7 @@ FS_Error storage_int_backup(Storage* storage, const char* dstname) { } FS_Error - storage_int_restore(Storage* storage, const char* srcname, Storage_name_converter converter) { + storage_int_restore(Storage* storage, const char* srcname, StorageNameConverter converter) { furi_check(storage); TarArchive* archive = tar_archive_alloc(storage); diff --git a/applications/services/storage/storage_processing.c b/applications/services/storage/storage_processing.c index 9e96765b624..56458993074 100644 --- a/applications/services/storage/storage_processing.c +++ b/applications/services/storage/storage_processing.c @@ -2,6 +2,8 @@ #include #include +#define TAG "Storage" + #define STORAGE_PATH_PREFIX_LEN 4u _Static_assert( sizeof(STORAGE_ANY_PATH_PREFIX) == STORAGE_PATH_PREFIX_LEN + 1, @@ -60,36 +62,27 @@ static StorageType storage_get_type_by_path(FuriString* path) { return type; } -static void storage_path_change_to_real_storage(FuriString* path, StorageType real_storage) { - if(furi_string_search(path, STORAGE_ANY_PATH_PREFIX) == 0) { - switch(real_storage) { - case ST_EXT: - furi_string_replace_at( - path, 0, strlen(STORAGE_EXT_PATH_PREFIX), STORAGE_EXT_PATH_PREFIX); - break; - case ST_INT: - furi_string_replace_at( - path, 0, strlen(STORAGE_INT_PATH_PREFIX), STORAGE_INT_PATH_PREFIX); - break; - default: - break; - } - } -} static FS_Error storage_get_data(Storage* app, FuriString* path, StorageData** storage) { StorageType type = storage_get_type_by_path(path); if(storage_type_is_valid(type)) { + // Any storage phase-out: redirect "/any" to "/ext" if(type == ST_ANY) { - type = ST_INT; - if(storage_data_status(&app->storage[ST_EXT]) == StorageStatusOK) { - type = ST_EXT; - } - storage_path_change_to_real_storage(path, type); + FURI_LOG_W( + TAG, + STORAGE_ANY_PATH_PREFIX " is deprecated, use " STORAGE_EXT_PATH_PREFIX " instead"); + furi_string_replace_at( + path, 0, strlen(STORAGE_EXT_PATH_PREFIX), STORAGE_EXT_PATH_PREFIX); + type = ST_EXT; + } + + furi_assert(type == ST_EXT); + + if(storage_data_status(&app->storage[type]) != StorageStatusOK) { + return FSE_NOT_READY; } - furi_assert(type == ST_EXT || type == ST_INT); *storage = &app->storage[type]; return FSE_OK; @@ -559,6 +552,16 @@ void storage_process_alias( furi_string_get_cstr(apps_assets_path_with_appsid)); furi_string_free(apps_assets_path_with_appsid); + + } else if(furi_string_start_with(path, STORAGE_INT_PATH_PREFIX)) { + furi_string_replace_at( + path, 0, strlen(STORAGE_INT_PATH_PREFIX), STORAGE_EXT_PATH_PREFIX "/.int"); + + FuriString* int_on_ext_path = furi_string_alloc_set(STORAGE_EXT_PATH_PREFIX "/.int"); + if(storage_process_common_stat(app, int_on_ext_path, NULL) != FSE_OK) { + storage_process_common_mkdir(app, int_on_ext_path); + } + furi_string_free(int_on_ext_path); } } diff --git a/applications/services/storage/storages/storage_int.c b/applications/services/storage/storages/storage_int.c deleted file mode 100644 index 324ce632861..00000000000 --- a/applications/services/storage/storages/storage_int.c +++ /dev/null @@ -1,744 +0,0 @@ -#include "storage_int.h" -#include -#include -#include - -#define TAG "StorageInt" - -#define STORAGE_PATH STORAGE_INT_PATH_PREFIX -#define LFS_CLEAN_FINGERPRINT 0 - -/* When less than LFS_RESERVED_PAGES_COUNT are left free, creation & - * modification of non-dot files is restricted */ -#define LFS_RESERVED_PAGES_COUNT 3 - -typedef struct { - const size_t start_address; - const size_t start_page; - struct lfs_config config; - lfs_t lfs; -} LFSData; - -typedef struct { - void* data; - bool open; -} LFSHandle; - -static LFSHandle* lfs_handle_alloc_file(void) { - LFSHandle* handle = malloc(sizeof(LFSHandle)); - handle->data = malloc(sizeof(lfs_file_t)); - return handle; -} - -static LFSHandle* lfs_handle_alloc_dir(void) { - LFSHandle* handle = malloc(sizeof(LFSHandle)); - handle->data = malloc(sizeof(lfs_dir_t)); - return handle; -} - -/* INTERNALS */ - -static lfs_dir_t* lfs_handle_get_dir(LFSHandle* handle) { - return handle->data; -} - -static lfs_file_t* lfs_handle_get_file(LFSHandle* handle) { - return handle->data; -} - -static void lfs_handle_free(LFSHandle* handle) { - free(handle->data); - free(handle); -} - -static void lfs_handle_set_open(LFSHandle* handle) { - handle->open = true; -} - -static bool lfs_handle_is_open(LFSHandle* handle) { - return handle->open; -} - -static lfs_t* lfs_get_from_storage(StorageData* storage) { - return &((LFSData*)storage->data)->lfs; -} - -static LFSData* lfs_data_get_from_storage(StorageData* storage) { - return (LFSData*)storage->data; -} - -static int storage_int_device_read( - const struct lfs_config* c, - lfs_block_t block, - lfs_off_t off, - void* buffer, - lfs_size_t size) { - LFSData* lfs_data = c->context; - size_t address = lfs_data->start_address + block * c->block_size + off; - - FURI_LOG_T( - TAG, - "Device read: block %lu, off %lu, buffer: %p, size %lu, translated address: %p", - block, - off, - buffer, - size, - (void*)address); - - memcpy(buffer, (void*)address, size); - - return 0; -} - -static int storage_int_device_prog( - const struct lfs_config* c, - lfs_block_t block, - lfs_off_t off, - const void* buffer, - lfs_size_t size) { - LFSData* lfs_data = c->context; - size_t address = lfs_data->start_address + block * c->block_size + off; - - FURI_LOG_T( - TAG, - "Device prog: block %lu, off %lu, buffer: %p, size %lu, translated address: %p", - block, - off, - buffer, - size, - (void*)address); - - int ret = 0; - while(size > 0) { - furi_hal_flash_write_dword(address, *(uint64_t*)buffer); - address += c->prog_size; - buffer += c->prog_size; - size -= c->prog_size; - } - - return ret; -} - -static int storage_int_device_erase(const struct lfs_config* c, lfs_block_t block) { - LFSData* lfs_data = c->context; - size_t page = lfs_data->start_page + block; - - FURI_LOG_D(TAG, "Device erase: page %lu, translated page: %zx", block, page); - - furi_hal_flash_erase(page); - return 0; -} - -static int storage_int_device_sync(const struct lfs_config* c) { - UNUSED(c); - FURI_LOG_D(TAG, "Device sync: skipping"); - return 0; -} - -static LFSData* storage_int_lfs_data_alloc(void) { - LFSData* lfs_data = malloc(sizeof(LFSData)); - - // Internal storage start address - *(size_t*)(&lfs_data->start_address) = furi_hal_flash_get_free_page_start_address(); - *(size_t*)(&lfs_data->start_page) = - (lfs_data->start_address - furi_hal_flash_get_base()) / furi_hal_flash_get_page_size(); - - // LFS configuration - // Glue and context - lfs_data->config.context = lfs_data; - lfs_data->config.read = storage_int_device_read; - lfs_data->config.prog = storage_int_device_prog; - lfs_data->config.erase = storage_int_device_erase; - lfs_data->config.sync = storage_int_device_sync; - - // Block device description - lfs_data->config.read_size = furi_hal_flash_get_read_block_size(); - lfs_data->config.prog_size = furi_hal_flash_get_write_block_size(); - lfs_data->config.block_size = furi_hal_flash_get_page_size(); - lfs_data->config.block_count = furi_hal_flash_get_free_page_count(); - lfs_data->config.block_cycles = furi_hal_flash_get_cycles_count(); - lfs_data->config.cache_size = 16; - lfs_data->config.lookahead_size = 16; - - return lfs_data; -} - -// Returns true if fingerprint was invalid and LFS reformatting is needed -static bool storage_int_check_and_set_fingerprint(LFSData* lfs_data) { - bool value = false; - - uint32_t os_fingerprint = 0; - os_fingerprint |= ((lfs_data->start_page & 0xFF) << 0); - os_fingerprint |= ((lfs_data->config.block_count & 0xFF) << 8); - os_fingerprint |= ((LFS_DISK_VERSION_MAJOR & 0xFFFF) << 16); - - uint32_t rtc_fingerprint = furi_hal_rtc_get_register(FuriHalRtcRegisterLfsFingerprint); - if(rtc_fingerprint == LFS_CLEAN_FINGERPRINT) { - FURI_LOG_I(TAG, "Storing LFS fingerprint in RTC"); - furi_hal_rtc_set_register(FuriHalRtcRegisterLfsFingerprint, os_fingerprint); - } else if(rtc_fingerprint != os_fingerprint) { - FURI_LOG_E(TAG, "LFS fingerprint mismatch"); - furi_hal_rtc_set_register(FuriHalRtcRegisterLfsFingerprint, os_fingerprint); - value = true; - } - - return value; -} - -static void storage_int_lfs_mount(LFSData* lfs_data, StorageData* storage) { - int err; - lfs_t* lfs = &lfs_data->lfs; - - bool was_fingerprint_outdated = storage_int_check_and_set_fingerprint(lfs_data); - bool need_format = furi_hal_rtc_is_flag_set(FuriHalRtcFlagStorageFormatInternal) || - was_fingerprint_outdated; - - if(need_format) { - // Format storage - err = lfs_format(lfs, &lfs_data->config); - if(err == 0) { - FURI_LOG_I(TAG, "Factory reset: Format successful, trying to mount"); - furi_hal_rtc_reset_flag(FuriHalRtcFlagStorageFormatInternal); - err = lfs_mount(lfs, &lfs_data->config); - if(err == 0) { - FURI_LOG_I(TAG, "Factory reset: Mounted"); - storage->status = StorageStatusOK; - } else { - FURI_LOG_E(TAG, "Factory reset: Mount after format failed"); - storage->status = StorageStatusNotMounted; - } - } else { - FURI_LOG_E(TAG, "Factory reset: Format failed"); - storage->status = StorageStatusNoFS; - } - } else { - // Normal - err = lfs_mount(lfs, &lfs_data->config); - if(err == 0) { - FURI_LOG_I(TAG, "Mounted"); - storage->status = StorageStatusOK; - } else { - FURI_LOG_E(TAG, "Mount failed, formatting"); - err = lfs_format(lfs, &lfs_data->config); - if(err == 0) { - FURI_LOG_I(TAG, "Format successful, trying to mount"); - err = lfs_mount(lfs, &lfs_data->config); - if(err == 0) { - FURI_LOG_I(TAG, "Mounted"); - storage->status = StorageStatusOK; - } else { - FURI_LOG_E(TAG, "Mount after format failed"); - storage->status = StorageStatusNotMounted; - } - } else { - FURI_LOG_E(TAG, "Format failed"); - storage->status = StorageStatusNoFS; - } - } - } -} - -/****************** Common Functions ******************/ - -static FS_Error storage_int_parse_error(int error) { - FS_Error result; - - if(error >= LFS_ERR_OK) { - result = FSE_OK; - } else { - switch(error) { - case LFS_ERR_NOENT: - result = FSE_NOT_EXIST; - break; - case LFS_ERR_EXIST: - result = FSE_EXIST; - break; - case LFS_ERR_NOTEMPTY: - result = FSE_DENIED; - break; - case LFS_ERR_INVAL: - case LFS_ERR_NOATTR: - result = FSE_INVALID_PARAMETER; - break; - case LFS_ERR_BADF: - case LFS_ERR_ISDIR: - case LFS_ERR_NOTDIR: - case LFS_ERR_NAMETOOLONG: - result = FSE_INVALID_NAME; - break; - case LFS_ERR_IO: - case LFS_ERR_FBIG: - case LFS_ERR_NOSPC: - case LFS_ERR_NOMEM: - case LFS_ERR_CORRUPT: - default: - result = FSE_INTERNAL; - } - } - - return result; -} - -/* Returns false if less than reserved space is left free */ -static bool storage_int_check_for_free_space(StorageData* storage) { - LFSData* lfs_data = lfs_data_get_from_storage(storage); - - lfs_ssize_t result = lfs_fs_size(lfs_get_from_storage(storage)); - if(result >= 0) { - lfs_size_t free_space = - (lfs_data->config.block_count - result) * lfs_data->config.block_size; - - return free_space > LFS_RESERVED_PAGES_COUNT * furi_hal_flash_get_page_size(); - } - - return false; -} -/******************* File Functions *******************/ - -static bool storage_int_file_open( - void* ctx, - File* file, - const char* path, - FS_AccessMode access_mode, - FS_OpenMode open_mode) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - - bool enough_free_space = storage_int_check_for_free_space(storage); - - int flags = 0; - - if(access_mode & FSAM_READ) flags |= LFS_O_RDONLY; - if(access_mode & FSAM_WRITE) flags |= LFS_O_WRONLY; - - if(open_mode & FSOM_OPEN_EXISTING) flags |= 0; - if(open_mode & FSOM_OPEN_ALWAYS) flags |= LFS_O_CREAT; - if(open_mode & FSOM_OPEN_APPEND) flags |= LFS_O_CREAT | LFS_O_APPEND; - if(open_mode & FSOM_CREATE_NEW) flags |= LFS_O_CREAT | LFS_O_EXCL; - if(open_mode & FSOM_CREATE_ALWAYS) flags |= LFS_O_CREAT | LFS_O_TRUNC; - - LFSHandle* handle = lfs_handle_alloc_file(); - storage_set_storage_file_data(file, handle, storage); - - if(!enough_free_space) { - FuriString* filename; - filename = furi_string_alloc(); - path_extract_basename(path, filename); - bool is_dot_file = - (!furi_string_empty(filename) && (furi_string_get_char(filename, 0) == '.')); - furi_string_free(filename); - - /* Restrict write & creation access to all non-dot files */ - if(!is_dot_file && (flags & (LFS_O_CREAT | LFS_O_WRONLY))) { - file->internal_error_id = LFS_ERR_NOSPC; - file->error_id = FSE_DENIED; - FURI_LOG_W(TAG, "Denied access to '%s': no free space", path); - return false; - } - } - - file->internal_error_id = lfs_file_open(lfs, lfs_handle_get_file(handle), path, flags); - - if(file->internal_error_id >= LFS_ERR_OK) { - lfs_handle_set_open(handle); - } - - file->error_id = storage_int_parse_error(file->internal_error_id); - - return file->error_id == FSE_OK; -} - -static bool storage_int_file_close(void* ctx, File* file) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - LFSHandle* handle = storage_get_storage_file_data(file, storage); - - if(lfs_handle_is_open(handle)) { - file->internal_error_id = lfs_file_close(lfs, lfs_handle_get_file(handle)); - } else { - file->internal_error_id = LFS_ERR_BADF; - } - - file->error_id = storage_int_parse_error(file->internal_error_id); - lfs_handle_free(handle); - return file->error_id == FSE_OK; -} - -static uint16_t - storage_int_file_read(void* ctx, File* file, void* buff, uint16_t const bytes_to_read) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - LFSHandle* handle = storage_get_storage_file_data(file, storage); - - uint16_t bytes_read = 0; - - if(lfs_handle_is_open(handle)) { - file->internal_error_id = - lfs_file_read(lfs, lfs_handle_get_file(handle), buff, bytes_to_read); - } else { - file->internal_error_id = LFS_ERR_BADF; - } - - file->error_id = storage_int_parse_error(file->internal_error_id); - - if(file->error_id == FSE_OK) { - bytes_read = file->internal_error_id; - file->internal_error_id = 0; - } - return bytes_read; -} - -static uint16_t - storage_int_file_write(void* ctx, File* file, const void* buff, uint16_t const bytes_to_write) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - LFSHandle* handle = storage_get_storage_file_data(file, storage); - - uint16_t bytes_written = 0; - - if(lfs_handle_is_open(handle)) { - file->internal_error_id = - lfs_file_write(lfs, lfs_handle_get_file(handle), buff, bytes_to_write); - } else { - file->internal_error_id = LFS_ERR_BADF; - } - - file->error_id = storage_int_parse_error(file->internal_error_id); - - if(file->error_id == FSE_OK) { - bytes_written = file->internal_error_id; - file->internal_error_id = 0; - } - return bytes_written; -} - -static bool - storage_int_file_seek(void* ctx, File* file, const uint32_t offset, const bool from_start) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - LFSHandle* handle = storage_get_storage_file_data(file, storage); - - if(lfs_handle_is_open(handle)) { - if(from_start) { - file->internal_error_id = - lfs_file_seek(lfs, lfs_handle_get_file(handle), offset, LFS_SEEK_SET); - } else { - file->internal_error_id = - lfs_file_seek(lfs, lfs_handle_get_file(handle), offset, LFS_SEEK_CUR); - } - } else { - file->internal_error_id = LFS_ERR_BADF; - } - - file->error_id = storage_int_parse_error(file->internal_error_id); - return file->error_id == FSE_OK; -} - -static uint64_t storage_int_file_tell(void* ctx, File* file) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - LFSHandle* handle = storage_get_storage_file_data(file, storage); - - if(lfs_handle_is_open(handle)) { - file->internal_error_id = lfs_file_tell(lfs, lfs_handle_get_file(handle)); - } else { - file->internal_error_id = LFS_ERR_BADF; - } - - file->error_id = storage_int_parse_error(file->internal_error_id); - - int32_t position = 0; - if(file->error_id == FSE_OK) { - position = file->internal_error_id; - file->internal_error_id = 0; - } - - return position; -} - -static bool storage_int_file_truncate(void* ctx, File* file) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - LFSHandle* handle = storage_get_storage_file_data(file, storage); - - if(lfs_handle_is_open(handle)) { - file->internal_error_id = lfs_file_tell(lfs, lfs_handle_get_file(handle)); - file->error_id = storage_int_parse_error(file->internal_error_id); - - if(file->error_id == FSE_OK) { - uint32_t position = file->internal_error_id; - file->internal_error_id = - lfs_file_truncate(lfs, lfs_handle_get_file(handle), position); - file->error_id = storage_int_parse_error(file->internal_error_id); - } - } else { - file->internal_error_id = LFS_ERR_BADF; - file->error_id = storage_int_parse_error(file->internal_error_id); - } - - return file->error_id == FSE_OK; -} - -static bool storage_int_file_sync(void* ctx, File* file) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - LFSHandle* handle = storage_get_storage_file_data(file, storage); - - if(lfs_handle_is_open(handle)) { - file->internal_error_id = lfs_file_sync(lfs, lfs_handle_get_file(handle)); - } else { - file->internal_error_id = LFS_ERR_BADF; - } - - file->error_id = storage_int_parse_error(file->internal_error_id); - return file->error_id == FSE_OK; -} - -static uint64_t storage_int_file_size(void* ctx, File* file) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - LFSHandle* handle = storage_get_storage_file_data(file, storage); - - if(lfs_handle_is_open(handle)) { - file->internal_error_id = lfs_file_size(lfs, lfs_handle_get_file(handle)); - } else { - file->internal_error_id = LFS_ERR_BADF; - } - - file->error_id = storage_int_parse_error(file->internal_error_id); - - uint32_t size = 0; - if(file->error_id == FSE_OK) { - size = file->internal_error_id; - file->internal_error_id = 0; - } - - return size; -} - -static bool storage_int_file_eof(void* ctx, File* file) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - LFSHandle* handle = storage_get_storage_file_data(file, storage); - - bool eof = true; - - if(lfs_handle_is_open(handle)) { - int32_t position = lfs_file_tell(lfs, lfs_handle_get_file(handle)); - int32_t size = lfs_file_size(lfs, lfs_handle_get_file(handle)); - - if(position < 0) { - file->internal_error_id = position; - } else if(size < 0) { - file->internal_error_id = size; - } else { - file->internal_error_id = LFS_ERR_OK; - eof = (position >= size); - } - } else { - file->internal_error_id = LFS_ERR_BADF; - } - - file->error_id = storage_int_parse_error(file->internal_error_id); - return eof; -} - -/******************* Dir Functions *******************/ - -static bool storage_int_dir_open(void* ctx, File* file, const char* path) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - - LFSHandle* handle = lfs_handle_alloc_dir(); - storage_set_storage_file_data(file, handle, storage); - - file->internal_error_id = lfs_dir_open(lfs, lfs_handle_get_dir(handle), path); - if(file->internal_error_id >= LFS_ERR_OK) { - lfs_handle_set_open(handle); - } - - file->error_id = storage_int_parse_error(file->internal_error_id); - return file->error_id == FSE_OK; -} - -static bool storage_int_dir_close(void* ctx, File* file) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - LFSHandle* handle = storage_get_storage_file_data(file, storage); - - if(lfs_handle_is_open(handle)) { - file->internal_error_id = lfs_dir_close(lfs, lfs_handle_get_dir(handle)); - } else { - file->internal_error_id = LFS_ERR_BADF; - } - - file->error_id = storage_int_parse_error(file->internal_error_id); - lfs_handle_free(handle); - return file->error_id == FSE_OK; -} - -static bool storage_int_dir_read( - void* ctx, - File* file, - FileInfo* fileinfo, - char* name, - const uint16_t name_length) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - LFSHandle* handle = storage_get_storage_file_data(file, storage); - - if(lfs_handle_is_open(handle)) { - struct lfs_info _fileinfo; - - // LFS returns virtual directories "." and "..", so we read until we get something meaningful or an empty string - do { - file->internal_error_id = lfs_dir_read(lfs, lfs_handle_get_dir(handle), &_fileinfo); - file->error_id = storage_int_parse_error(file->internal_error_id); - } while(strcmp(_fileinfo.name, ".") == 0 || strcmp(_fileinfo.name, "..") == 0); - - if(fileinfo != NULL) { - fileinfo->size = _fileinfo.size; - fileinfo->flags = 0; - if(_fileinfo.type & LFS_TYPE_DIR) fileinfo->flags |= FSF_DIRECTORY; - } - - if(name != NULL) { - snprintf(name, name_length, "%s", _fileinfo.name); - } - - // set FSE_NOT_EXIST error on end of directory - if(file->internal_error_id == 0) { - file->error_id = FSE_NOT_EXIST; - } - } else { - file->internal_error_id = LFS_ERR_BADF; - file->error_id = storage_int_parse_error(file->internal_error_id); - } - - return file->error_id == FSE_OK; -} - -static bool storage_int_dir_rewind(void* ctx, File* file) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - LFSHandle* handle = storage_get_storage_file_data(file, storage); - - if(lfs_handle_is_open(handle)) { - file->internal_error_id = lfs_dir_rewind(lfs, lfs_handle_get_dir(handle)); - } else { - file->internal_error_id = LFS_ERR_BADF; - } - - file->error_id = storage_int_parse_error(file->internal_error_id); - return file->error_id == FSE_OK; -} - -/******************* Common FS Functions *******************/ - -static FS_Error storage_int_common_stat(void* ctx, const char* path, FileInfo* fileinfo) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - struct lfs_info _fileinfo; - int result = lfs_stat(lfs, path, &_fileinfo); - - if(fileinfo != NULL) { - fileinfo->size = _fileinfo.size; - fileinfo->flags = 0; - if(_fileinfo.type & LFS_TYPE_DIR) fileinfo->flags |= FSF_DIRECTORY; - } - - return storage_int_parse_error(result); -} - -static FS_Error storage_int_common_remove(void* ctx, const char* path) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - int result = lfs_remove(lfs, path); - return storage_int_parse_error(result); -} - -static FS_Error storage_int_common_mkdir(void* ctx, const char* path) { - StorageData* storage = ctx; - lfs_t* lfs = lfs_get_from_storage(storage); - int result = lfs_mkdir(lfs, path); - return storage_int_parse_error(result); -} - -static FS_Error storage_int_common_fs_info( - void* ctx, - const char* fs_path, - uint64_t* total_space, - uint64_t* free_space) { - UNUSED(fs_path); - StorageData* storage = ctx; - - lfs_t* lfs = lfs_get_from_storage(storage); - LFSData* lfs_data = lfs_data_get_from_storage(storage); - - if(total_space) { - *total_space = lfs_data->config.block_size * lfs_data->config.block_count; - } - - lfs_ssize_t result = lfs_fs_size(lfs); - if(free_space && (result >= 0)) { - *free_space = (lfs_data->config.block_count - result) * lfs_data->config.block_size; - } - - return storage_int_parse_error(result); -} - -static bool storage_int_common_equivalent_path(const char* path1, const char* path2) { - return strcmp(path1, path2) == 0; -} - -/******************* Init Storage *******************/ -static const FS_Api fs_api = { - .file = - { - .open = storage_int_file_open, - .close = storage_int_file_close, - .read = storage_int_file_read, - .write = storage_int_file_write, - .seek = storage_int_file_seek, - .tell = storage_int_file_tell, - .truncate = storage_int_file_truncate, - .size = storage_int_file_size, - .sync = storage_int_file_sync, - .eof = storage_int_file_eof, - }, - .dir = - { - .open = storage_int_dir_open, - .close = storage_int_dir_close, - .read = storage_int_dir_read, - .rewind = storage_int_dir_rewind, - }, - .common = - { - .stat = storage_int_common_stat, - .mkdir = storage_int_common_mkdir, - .remove = storage_int_common_remove, - .fs_info = storage_int_common_fs_info, - .equivalent_path = storage_int_common_equivalent_path, - }, -}; - -void storage_int_init(StorageData* storage) { - FURI_LOG_I(TAG, "Starting"); - LFSData* lfs_data = storage_int_lfs_data_alloc(); - FURI_LOG_I( - TAG, - "Config: start %p, read %lu, write %lu, page size: %lu, page count: %lu, cycles: %ld", - (void*)lfs_data->start_address, - lfs_data->config.read_size, - lfs_data->config.prog_size, - lfs_data->config.block_size, - lfs_data->config.block_count, - lfs_data->config.block_cycles); - - storage_int_lfs_mount(lfs_data, storage); - - storage->data = lfs_data; - storage->api.tick = NULL; - storage->fs_api = &fs_api; -} diff --git a/applications/services/storage/storages/storage_int.h b/applications/services/storage/storages/storage_int.h deleted file mode 100644 index 456d72408fb..00000000000 --- a/applications/services/storage/storages/storage_int.h +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once -#include -#include "../storage_glue.h" - -#ifdef __cplusplus -extern "C" { -#endif - -void storage_int_init(StorageData* storage); - -#ifdef __cplusplus -} -#endif diff --git a/applications/settings/bt_settings_app/bt_settings_app.c b/applications/settings/bt_settings_app/bt_settings_app.c index d86c9df6478..8972820644d 100644 --- a/applications/settings/bt_settings_app/bt_settings_app.c +++ b/applications/settings/bt_settings_app/bt_settings_app.c @@ -15,8 +15,6 @@ static bool bt_settings_back_event_callback(void* context) { BtSettingsApp* bt_settings_app_alloc(void) { BtSettingsApp* app = malloc(sizeof(BtSettingsApp)); - // Load settings - bt_settings_load(&app->settings); app->gui = furi_record_open(RECORD_GUI); app->bt = furi_record_open(RECORD_BT); @@ -48,6 +46,8 @@ BtSettingsApp* bt_settings_app_alloc(void) { view_dispatcher_add_view( app->view_dispatcher, BtSettingsAppViewPopup, popup_get_view(app->popup)); + bt_get_settings(app->bt, &app->settings); + // Set first scene scene_manager_next_scene(app->scene_manager, BtSettingsAppSceneStart); return app; @@ -55,6 +55,7 @@ BtSettingsApp* bt_settings_app_alloc(void) { void bt_settings_app_free(BtSettingsApp* app) { furi_assert(app); + bt_set_settings(app->bt, &app->settings); // Gui modules view_dispatcher_remove_view(app->view_dispatcher, BtSettingsAppViewVarItemList); variable_item_list_free(app->var_item_list); @@ -79,7 +80,6 @@ extern int32_t bt_settings_app(void* p) { UNUSED(p); BtSettingsApp* app = bt_settings_app_alloc(); view_dispatcher_run(app->view_dispatcher); - bt_settings_save(&app->settings); bt_settings_app_free(app); return 0; } diff --git a/applications/settings/bt_settings_app/bt_settings_app.h b/applications/settings/bt_settings_app/bt_settings_app.h index b79e3695115..5255945ff52 100644 --- a/applications/settings/bt_settings_app/bt_settings_app.h +++ b/applications/settings/bt_settings_app/bt_settings_app.h @@ -1,18 +1,21 @@ #pragma once #include -#include + #include #include #include #include -#include #include #include #include -#include +#include +#include + +#include + #include "scenes/bt_settings_scene.h" enum BtSettingsCustomEvent { diff --git a/applications/settings/bt_settings_app/scenes/bt_settings_scene_start.c b/applications/settings/bt_settings_app/scenes/bt_settings_scene_start.c index 1d72a9e6fa8..a76740bd1e9 100644 --- a/applications/settings/bt_settings_app/scenes/bt_settings_scene_start.c +++ b/applications/settings/bt_settings_app/scenes/bt_settings_scene_start.c @@ -70,18 +70,17 @@ bool bt_settings_scene_start_on_event(void* context, SceneManagerEvent event) { if(event.type == SceneManagerEventTypeCustom) { if(event.event == BtSettingOn) { - furi_hal_bt_start_advertising(); app->settings.enabled = true; consumed = true; } else if(event.event == BtSettingOff) { app->settings.enabled = false; - furi_hal_bt_stop_advertising(); consumed = true; } else if(event.event == BtSettingsCustomEventForgetDevices) { scene_manager_next_scene(app->scene_manager, BtSettingsAppSceneForgetDevConfirm); consumed = true; } } + return consumed; } diff --git a/applications/settings/desktop_settings/desktop_settings_app.c b/applications/settings/desktop_settings/desktop_settings_app.c index 238d866f2e9..a0ad1027738 100644 --- a/applications/settings/desktop_settings/desktop_settings_app.c +++ b/applications/settings/desktop_settings/desktop_settings_app.c @@ -2,9 +2,11 @@ #include #include +#include +#include + #include "desktop_settings_app.h" #include "scenes/desktop_settings_scene.h" -#include static bool desktop_settings_custom_event_callback(void* context, uint32_t event) { furi_assert(context); @@ -90,18 +92,20 @@ void desktop_settings_app_free(DesktopSettingsApp* app) { } extern int32_t desktop_settings_app(void* p) { + UNUSED(p); + DesktopSettingsApp* app = desktop_settings_app_alloc(); - DESKTOP_SETTINGS_LOAD(&app->settings); + Desktop* desktop = furi_record_open(RECORD_DESKTOP); + + desktop_api_get_settings(desktop, &app->settings); - if(p && (strcmp(p, DESKTOP_SETTINGS_RUN_PIN_SETUP_ARG) == 0)) { - scene_manager_next_scene(app->scene_manager, DesktopSettingsAppScenePinSetupHowto); - } else { - scene_manager_next_scene(app->scene_manager, DesktopSettingsAppSceneStart); - } + scene_manager_next_scene(app->scene_manager, DesktopSettingsAppSceneStart); view_dispatcher_run(app->view_dispatcher); - DESKTOP_SETTINGS_SAVE(&app->settings); + desktop_api_set_settings(desktop, &app->settings); + furi_record_close(RECORD_DESKTOP); + desktop_settings_app_free(app); return 0; diff --git a/applications/settings/desktop_settings/desktop_settings_app.h b/applications/settings/desktop_settings/desktop_settings_app.h index 1a2c733edaf..348180fbf2f 100644 --- a/applications/settings/desktop_settings/desktop_settings_app.h +++ b/applications/settings/desktop_settings/desktop_settings_app.h @@ -37,7 +37,7 @@ typedef struct { DesktopSettingsViewPinSetupHowto* pin_setup_howto_view; DesktopSettingsViewPinSetupHowto2* pin_setup_howto2_view; - PinCode pincode_buffer; + DesktopPinCode pincode_buffer; bool pincode_buffer_filled; uint32_t pin_menu_idx; diff --git a/applications/settings/desktop_settings/scenes/desktop_settings_scene_favorite.c b/applications/settings/desktop_settings/scenes/desktop_settings_scene_favorite.c index 384c0739c94..74d09b2ac39 100644 --- a/applications/settings/desktop_settings/scenes/desktop_settings_scene_favorite.c +++ b/applications/settings/desktop_settings/scenes/desktop_settings_scene_favorite.c @@ -212,13 +212,17 @@ bool desktop_settings_scene_favorite_on_event(void* context, SceneManagerEvent e strncpy( curr_favorite_app->name_or_path, furi_string_get_cstr(temp_path), - MAX_APP_LENGTH); + sizeof(curr_favorite_app->name_or_path)); consumed = true; } } else { size_t app_index = event.event - 2; const char* name = favorite_fap_get_app_name(app_index); - if(name) strncpy(curr_favorite_app->name_or_path, name, MAX_APP_LENGTH); + if(name) + strncpy( + curr_favorite_app->name_or_path, + name, + sizeof(curr_favorite_app->name_or_path)); consumed = true; } if(consumed) { @@ -226,7 +230,7 @@ bool desktop_settings_scene_favorite_on_event(void* context, SceneManagerEvent e }; consumed = true; - DESKTOP_SETTINGS_SAVE(&app->settings); + desktop_settings_save(&app->settings); } furi_string_free(temp_path); diff --git a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_auth.c b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_auth.c index 5af25cd614c..1e64165314c 100644 --- a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_auth.c +++ b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_auth.c @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include "../desktop_settings_app.h" #include #include @@ -12,13 +12,14 @@ #define SCENE_EVENT_PINS_EQUAL (1U) #define SCENE_EVENT_PINS_DIFFERENT (2U) -static void pin_auth_done_callback(const PinCode* pin_code, void* context) { +static void pin_auth_done_callback(const DesktopPinCode* pin_code, void* context) { furi_assert(pin_code); furi_assert(context); - DesktopSettingsApp* app = context; + DesktopSettingsApp* app = context; app->pincode_buffer = *pin_code; - if(desktop_pin_compare(&app->settings.pin_code, pin_code)) { + + if(desktop_pin_code_check(pin_code)) { view_dispatcher_send_custom_event(app->view_dispatcher, SCENE_EVENT_PINS_EQUAL); } else { view_dispatcher_send_custom_event(app->view_dispatcher, SCENE_EVENT_PINS_DIFFERENT); @@ -31,10 +32,9 @@ static void pin_auth_back_callback(void* context) { } void desktop_settings_scene_pin_auth_on_enter(void* context) { - DesktopSettingsApp* app = context; + furi_assert(desktop_pin_code_is_set()); - DESKTOP_SETTINGS_LOAD(&app->settings); - furi_assert(app->settings.pin_code.length > 0); + DesktopSettingsApp* app = context; desktop_view_pin_input_set_context(app->pin_input_view, app); desktop_view_pin_input_set_back_callback(app->pin_input_view, pin_auth_back_callback); diff --git a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_disable.c b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_disable.c index f31a9689441..abcce66da7a 100644 --- a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_disable.c +++ b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_disable.c @@ -17,9 +17,8 @@ static void pin_disable_back_callback(void* context) { void desktop_settings_scene_pin_disable_on_enter(void* context) { furi_assert(context); DesktopSettingsApp* app = context; - app->settings.pin_code.length = 0; - memset(app->settings.pin_code.data, '0', sizeof(app->settings.pin_code.data)); - DESKTOP_SETTINGS_SAVE(&app->settings); + + desktop_pin_code_reset(); popup_set_context(app->popup, app); popup_set_callback(app->popup, pin_disable_back_callback); diff --git a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_error.c b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_error.c index 1ba3c1b2daf..711683c3fea 100644 --- a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_error.c +++ b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_error.c @@ -6,7 +6,7 @@ #include #include "desktop_settings_scene.h" #include "desktop_settings_scene_i.h" -#include +#include #include "../desktop_settings_app.h" #define SCENE_EVENT_EXIT (0U) @@ -17,7 +17,7 @@ static void pin_error_back_callback(void* context) { view_dispatcher_send_custom_event(app->view_dispatcher, SCENE_EVENT_EXIT); } -static void pin_error_done_callback(const PinCode* pin_code, void* context) { +static void pin_error_done_callback(const DesktopPinCode* pin_code, void* context) { UNUSED(pin_code); furi_assert(context); DesktopSettingsApp* app = context; diff --git a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_menu.c b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_menu.c index 7375edd3f4e..e0c66cb2889 100644 --- a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_menu.c +++ b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_menu.c @@ -19,7 +19,7 @@ void desktop_settings_scene_pin_menu_on_enter(void* context) { Submenu* submenu = app->submenu; submenu_reset(submenu); - if(!app->settings.pin_code.length) { + if(!desktop_pin_code_is_set()) { submenu_add_item( submenu, "Set PIN", diff --git a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_setup.c b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_setup.c index 93012330aa8..08f5fcb3fcc 100644 --- a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_setup.c +++ b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_setup.c @@ -7,14 +7,14 @@ #include #include "desktop_settings_scene.h" #include "desktop_settings_scene_i.h" -#include +#include #define SCENE_EVENT_EXIT (0U) #define SCENE_EVENT_1ST_PIN_ENTERED (1U) #define SCENE_EVENT_PINS_EQUAL (2U) #define SCENE_EVENT_PINS_DIFFERENT (3U) -static void pin_setup_done_callback(const PinCode* pin_code, void* context) { +static void pin_setup_done_callback(const DesktopPinCode* pin_code, void* context) { furi_assert(pin_code); furi_assert(context); DesktopSettingsApp* app = context; @@ -25,7 +25,7 @@ static void pin_setup_done_callback(const PinCode* pin_code, void* context) { view_dispatcher_send_custom_event(app->view_dispatcher, SCENE_EVENT_1ST_PIN_ENTERED); } else { app->pincode_buffer_filled = false; - if(desktop_pin_compare(&app->pincode_buffer, pin_code)) { + if(desktop_pin_code_is_equal(&app->pincode_buffer, pin_code)) { view_dispatcher_send_custom_event(app->view_dispatcher, SCENE_EVENT_PINS_EQUAL); } else { view_dispatcher_send_custom_event(app->view_dispatcher, SCENE_EVENT_PINS_DIFFERENT); diff --git a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_setup_done.c b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_setup_done.c index 170e6bca565..aa3d2214e54 100644 --- a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_setup_done.c +++ b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_setup_done.c @@ -11,7 +11,7 @@ #define SCENE_EVENT_DONE (0U) -static void pin_setup_done_callback(const PinCode* pin_code, void* context) { +static void pin_setup_done_callback(const DesktopPinCode* pin_code, void* context) { furi_assert(pin_code); furi_assert(context); DesktopSettingsApp* app = context; @@ -22,8 +22,8 @@ static void pin_setup_done_callback(const PinCode* pin_code, void* context) { void desktop_settings_scene_pin_setup_done_on_enter(void* context) { DesktopSettingsApp* app = context; - app->settings.pin_code = app->pincode_buffer; - DESKTOP_SETTINGS_SAVE(&app->settings); + desktop_pin_code_set(&app->pincode_buffer); + NotificationApp* notification = furi_record_open(RECORD_NOTIFICATION); notification_message(notification, &sequence_single_vibro); notification_message(notification, &sequence_blink_green_10); @@ -32,7 +32,7 @@ void desktop_settings_scene_pin_setup_done_on_enter(void* context) { desktop_view_pin_input_set_context(app->pin_input_view, app); desktop_view_pin_input_set_back_callback(app->pin_input_view, NULL); desktop_view_pin_input_set_done_callback(app->pin_input_view, pin_setup_done_callback); - desktop_view_pin_input_set_pin(app->pin_input_view, &app->settings.pin_code); + desktop_view_pin_input_set_pin(app->pin_input_view, &app->pincode_buffer); desktop_view_pin_input_set_label_button(app->pin_input_view, "Done"); desktop_view_pin_input_set_label_primary(app->pin_input_view, 29, 8, "PIN Activated!"); desktop_view_pin_input_set_label_secondary( diff --git a/applications/settings/expansion_settings_app/expansion_settings_app.c b/applications/settings/expansion_settings_app/expansion_settings_app.c index 2b8208cabbf..7544bea3241 100644 --- a/applications/settings/expansion_settings_app/expansion_settings_app.c +++ b/applications/settings/expansion_settings_app/expansion_settings_app.c @@ -27,9 +27,7 @@ static uint32_t expansion_settings_app_exit(void* context) { static ExpansionSettingsApp* expansion_settings_app_alloc(void) { ExpansionSettingsApp* app = malloc(sizeof(ExpansionSettingsApp)); - if(!expansion_settings_load(&app->settings)) { - expansion_settings_save(&app->settings); - } + expansion_settings_load(&app->settings); app->gui = furi_record_open(RECORD_GUI); app->expansion = furi_record_open(RECORD_EXPANSION); diff --git a/applications/settings/storage_settings/scenes/storage_settings_scene_internal_info.c b/applications/settings/storage_settings/scenes/storage_settings_scene_internal_info.c index b7620b6e825..5a367afcecc 100644 --- a/applications/settings/storage_settings/scenes/storage_settings_scene_internal_info.c +++ b/applications/settings/storage_settings/scenes/storage_settings_scene_internal_info.c @@ -27,7 +27,7 @@ void storage_settings_scene_internal_info_on_enter(void* context) { } else { furi_string_printf( app->text_string, - "Name: %s\nType: LittleFS\nTotal: %lu KiB\nFree: %lu KiB", + "Name: %s\nType: Virtual\nTotal: %lu KiB\nFree: %lu KiB", furi_hal_version_get_name_ptr() ? furi_hal_version_get_name_ptr() : "Unknown", (uint32_t)(total_space / 1024), (uint32_t)(free_space / 1024)); diff --git a/applications/system/application.fam b/applications/system/application.fam index 095ca1ab2c8..c5f81defa6f 100644 --- a/applications/system/application.fam +++ b/applications/system/application.fam @@ -4,7 +4,6 @@ App( apptype=FlipperAppType.METAPACKAGE, provides=[ "updater_app", - "storage_move_to_sd", "js_app", "js_app_start", # "archive", diff --git a/applications/system/storage_move_to_sd/application.fam b/applications/system/storage_move_to_sd/application.fam deleted file mode 100644 index de47de0551f..00000000000 --- a/applications/system/storage_move_to_sd/application.fam +++ /dev/null @@ -1,18 +0,0 @@ -App( - appid="storage_move_to_sd", - name="StorageMoveToSd", - apptype=FlipperAppType.SYSTEM, - entry_point="storage_move_to_sd_app", - requires=["gui", "storage"], - provides=["storage_move_to_sd_start"], - stack_size=2 * 1024, - order=30, -) - -App( - appid="storage_move_to_sd_start", - apptype=FlipperAppType.STARTUP, - entry_point="storage_move_to_sd_start", - requires=["storage"], - order=120, -) diff --git a/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene.c b/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene.c deleted file mode 100644 index 011bf47df95..00000000000 --- a/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene.c +++ /dev/null @@ -1,30 +0,0 @@ -#include "storage_move_to_sd_scene.h" - -// Generate scene on_enter handlers array -#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_enter, -void (*const storage_move_to_sd_on_enter_handlers[])(void*) = { -#include "storage_move_to_sd_scene_config.h" -}; -#undef ADD_SCENE - -// Generate scene on_event handlers array -#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_event, -bool (*const storage_move_to_sd_on_event_handlers[])(void* context, SceneManagerEvent event) = { -#include "storage_move_to_sd_scene_config.h" -}; -#undef ADD_SCENE - -// Generate scene on_exit handlers array -#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_exit, -void (*const storage_move_to_sd_on_exit_handlers[])(void* context) = { -#include "storage_move_to_sd_scene_config.h" -}; -#undef ADD_SCENE - -// Initialize scene handlers configuration structure -const SceneManagerHandlers storage_move_to_sd_scene_handlers = { - .on_enter_handlers = storage_move_to_sd_on_enter_handlers, - .on_event_handlers = storage_move_to_sd_on_event_handlers, - .on_exit_handlers = storage_move_to_sd_on_exit_handlers, - .scene_num = StorageMoveToSdSceneNum, -}; diff --git a/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene.h b/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene.h deleted file mode 100644 index bdeb4a84337..00000000000 --- a/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene.h +++ /dev/null @@ -1,29 +0,0 @@ -#pragma once - -#include - -// Generate scene id and total number -#define ADD_SCENE(prefix, name, id) StorageMoveToSd##id, -typedef enum { -#include "storage_move_to_sd_scene_config.h" - StorageMoveToSdSceneNum, -} StorageMoveToSdScene; -#undef ADD_SCENE - -extern const SceneManagerHandlers storage_move_to_sd_scene_handlers; - -// Generate scene on_enter handlers declaration -#define ADD_SCENE(prefix, name, id) void prefix##_scene_##name##_on_enter(void*); -#include "storage_move_to_sd_scene_config.h" -#undef ADD_SCENE - -// Generate scene on_event handlers declaration -#define ADD_SCENE(prefix, name, id) \ - bool prefix##_scene_##name##_on_event(void* context, SceneManagerEvent event); -#include "storage_move_to_sd_scene_config.h" -#undef ADD_SCENE - -// Generate scene on_exit handlers declaration -#define ADD_SCENE(prefix, name, id) void prefix##_scene_##name##_on_exit(void* context); -#include "storage_move_to_sd_scene_config.h" -#undef ADD_SCENE diff --git a/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene_config.h b/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene_config.h deleted file mode 100644 index 1d7b2d25b83..00000000000 --- a/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene_config.h +++ /dev/null @@ -1,2 +0,0 @@ -ADD_SCENE(storage_move_to_sd, confirm, Confirm) -ADD_SCENE(storage_move_to_sd, progress, Progress) diff --git a/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene_confirm.c b/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene_confirm.c deleted file mode 100644 index 08c9e2d7fc2..00000000000 --- a/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene_confirm.c +++ /dev/null @@ -1,70 +0,0 @@ -#include "../storage_move_to_sd.h" -#include -#include -#include - -static void storage_move_to_sd_scene_confirm_widget_callback( - GuiButtonType result, - InputType type, - void* context) { - StorageMoveToSd* app = context; - furi_assert(app); - if(type == InputTypeShort) { - if(result == GuiButtonTypeRight) { - view_dispatcher_send_custom_event(app->view_dispatcher, MoveToSdCustomEventConfirm); - } else if(result == GuiButtonTypeLeft) { - view_dispatcher_send_custom_event(app->view_dispatcher, MoveToSdCustomEventExit); - } - } -} - -void storage_move_to_sd_scene_confirm_on_enter(void* context) { - StorageMoveToSd* app = context; - - widget_add_button_element( - app->widget, - GuiButtonTypeLeft, - "Cancel", - storage_move_to_sd_scene_confirm_widget_callback, - app); - widget_add_button_element( - app->widget, - GuiButtonTypeRight, - "Confirm", - storage_move_to_sd_scene_confirm_widget_callback, - app); - - widget_add_string_element( - app->widget, 64, 10, AlignCenter, AlignCenter, FontPrimary, "SD card inserted"); - widget_add_string_multiline_element( - app->widget, - 64, - 32, - AlignCenter, - AlignCenter, - FontSecondary, - "Move data from\ninternal storage to SD card?"); - - view_dispatcher_switch_to_view(app->view_dispatcher, StorageMoveToSdViewWidget); -} - -bool storage_move_to_sd_scene_confirm_on_event(void* context, SceneManagerEvent event) { - StorageMoveToSd* app = context; - bool consumed = false; - - if(event.type == SceneManagerEventTypeCustom) { - if(event.event == MoveToSdCustomEventConfirm) { - scene_manager_next_scene(app->scene_manager, StorageMoveToSdProgress); - consumed = true; - } else if(event.event == MoveToSdCustomEventExit) { - view_dispatcher_stop(app->view_dispatcher); - } - } - - return consumed; -} - -void storage_move_to_sd_scene_confirm_on_exit(void* context) { - StorageMoveToSd* app = context; - widget_reset(app->widget); -} diff --git a/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene_progress.c b/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene_progress.c deleted file mode 100644 index 7aa951bd832..00000000000 --- a/applications/system/storage_move_to_sd/scenes/storage_move_to_sd_scene_progress.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "../storage_move_to_sd.h" - -void storage_move_to_sd_scene_progress_on_enter(void* context) { - StorageMoveToSd* app = context; - - widget_add_string_element( - app->widget, 64, 10, AlignCenter, AlignCenter, FontPrimary, "Moving..."); - - view_dispatcher_switch_to_view(app->view_dispatcher, StorageMoveToSdViewWidget); - - storage_move_to_sd_perform(); - view_dispatcher_send_custom_event(app->view_dispatcher, MoveToSdCustomEventExit); -} - -bool storage_move_to_sd_scene_progress_on_event(void* context, SceneManagerEvent event) { - StorageMoveToSd* app = context; - bool consumed = false; - - if(event.type == SceneManagerEventTypeCustom) { - view_dispatcher_stop(app->view_dispatcher); - } else if(event.type == SceneManagerEventTypeBack) { - consumed = true; - } - - return consumed; -} - -void storage_move_to_sd_scene_progress_on_exit(void* context) { - StorageMoveToSd* app = context; - widget_reset(app->widget); -} diff --git a/applications/system/storage_move_to_sd/storage_move_to_sd.c b/applications/system/storage_move_to_sd/storage_move_to_sd.c deleted file mode 100644 index 652c34c7203..00000000000 --- a/applications/system/storage_move_to_sd/storage_move_to_sd.c +++ /dev/null @@ -1,188 +0,0 @@ -#include "storage_move_to_sd.h" - -#include -#include -#include -#include -#include - -#define TAG "MoveToSd" - -#define MOVE_SRC STORAGE_INT_PATH_PREFIX -#define MOVE_DST STORAGE_EXT_PATH_PREFIX - -static bool storage_move_to_sd_check_entry(const char* name, FileInfo* fileinfo, void* ctx) { - UNUSED(ctx); - if(file_info_is_dir(fileinfo)) { - return true; - } - - return name && (*name != '.'); -} - -bool storage_move_to_sd_perform(void) { - Storage* storage = furi_record_open(RECORD_STORAGE); - - DirWalk* dir_walk = dir_walk_alloc(storage); - dir_walk_set_recursive(dir_walk, false); - dir_walk_set_filter_cb(dir_walk, storage_move_to_sd_check_entry, NULL); - - FuriString *path_src, *path_dst; - - path_dst = furi_string_alloc(); - path_src = furi_string_alloc(); - - if(dir_walk_open(dir_walk, STORAGE_INT_PATH_PREFIX)) { - while(dir_walk_read(dir_walk, path_src, NULL) == DirWalkOK) { - furi_string_set(path_dst, path_src); - furi_string_replace_at( - path_dst, 0, strlen(STORAGE_INT_PATH_PREFIX), STORAGE_EXT_PATH_PREFIX); - - storage_common_merge( - storage, furi_string_get_cstr(path_src), furi_string_get_cstr(path_dst)); - storage_simply_remove_recursive(storage, furi_string_get_cstr(path_src)); - } - } - - dir_walk_free(dir_walk); - furi_string_free(path_dst); - furi_string_free(path_src); - - furi_record_close(RECORD_STORAGE); - - return false; -} - -static bool storage_move_to_sd_check(void) { - Storage* storage = furi_record_open(RECORD_STORAGE); - - bool should_migrate = false; - - DirWalk* dir_walk = dir_walk_alloc(storage); - dir_walk_set_recursive(dir_walk, false); - dir_walk_set_filter_cb(dir_walk, storage_move_to_sd_check_entry, NULL); - - FuriString* name; - name = furi_string_alloc(); - - if(dir_walk_open(dir_walk, STORAGE_INT_PATH_PREFIX)) { - // if at least 1 entry is present, we should migrate - should_migrate = (dir_walk_read(dir_walk, name, NULL) == DirWalkOK); - } - - dir_walk_free(dir_walk); - furi_string_free(name); - - furi_record_close(RECORD_STORAGE); - - return should_migrate; -} - -static bool storage_move_to_sd_custom_event_callback(void* context, uint32_t event) { - furi_assert(context); - StorageMoveToSd* app = context; - return scene_manager_handle_custom_event(app->scene_manager, event); -} - -static bool storage_move_to_sd_back_event_callback(void* context) { - furi_assert(context); - StorageMoveToSd* app = context; - return scene_manager_handle_back_event(app->scene_manager); -} - -static void storage_move_to_sd_unmount_callback(const void* message, void* context) { - StorageMoveToSd* app = context; - furi_assert(app); - const StorageEvent* storage_event = message; - - if((storage_event->type == StorageEventTypeCardUnmount) || - (storage_event->type == StorageEventTypeCardMountError)) { - view_dispatcher_send_custom_event(app->view_dispatcher, MoveToSdCustomEventExit); - } -} - -static StorageMoveToSd* storage_move_to_sd_alloc(void) { - StorageMoveToSd* app = malloc(sizeof(StorageMoveToSd)); - - app->gui = furi_record_open(RECORD_GUI); - app->notifications = furi_record_open(RECORD_NOTIFICATION); - - app->view_dispatcher = view_dispatcher_alloc(); - app->scene_manager = scene_manager_alloc(&storage_move_to_sd_scene_handlers, app); - - view_dispatcher_enable_queue(app->view_dispatcher); - view_dispatcher_set_event_callback_context(app->view_dispatcher, app); - - view_dispatcher_set_custom_event_callback( - app->view_dispatcher, storage_move_to_sd_custom_event_callback); - view_dispatcher_set_navigation_event_callback( - app->view_dispatcher, storage_move_to_sd_back_event_callback); - - view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); - - app->widget = widget_alloc(); - view_dispatcher_add_view( - app->view_dispatcher, StorageMoveToSdViewWidget, widget_get_view(app->widget)); - - scene_manager_next_scene(app->scene_manager, StorageMoveToSdConfirm); - - Storage* storage = furi_record_open(RECORD_STORAGE); - app->sub = furi_pubsub_subscribe( - storage_get_pubsub(storage), storage_move_to_sd_unmount_callback, app); - furi_record_close(RECORD_STORAGE); - - return app; -} - -static void storage_move_to_sd_free(StorageMoveToSd* app) { - Storage* storage = furi_record_open(RECORD_STORAGE); - furi_pubsub_unsubscribe(storage_get_pubsub(storage), app->sub); - furi_record_close(RECORD_STORAGE); - furi_record_close(RECORD_NOTIFICATION); - - view_dispatcher_remove_view(app->view_dispatcher, StorageMoveToSdViewWidget); - widget_free(app->widget); - view_dispatcher_free(app->view_dispatcher); - scene_manager_free(app->scene_manager); - - furi_record_close(RECORD_GUI); - - free(app); -} - -int32_t storage_move_to_sd_app(void* p) { - UNUSED(p); - - if(storage_move_to_sd_check()) { - StorageMoveToSd* app = storage_move_to_sd_alloc(); - notification_message(app->notifications, &sequence_display_backlight_on); - view_dispatcher_run(app->view_dispatcher); - storage_move_to_sd_free(app); - } else { - FURI_LOG_I(TAG, "Nothing to move"); - } - - return 0; -} - -static void storage_move_to_sd_mount_callback(const void* message, void* context) { - UNUSED(context); - - const StorageEvent* storage_event = message; - - if(storage_event->type == StorageEventTypeCardMount) { - Loader* loader = furi_record_open(RECORD_LOADER); - loader_start(loader, "StorageMoveToSd", NULL, NULL); - furi_record_close(RECORD_LOADER); - } -} - -int32_t storage_move_to_sd_start(void* p) { - UNUSED(p); - Storage* storage = furi_record_open(RECORD_STORAGE); - - furi_pubsub_subscribe(storage_get_pubsub(storage), storage_move_to_sd_mount_callback, NULL); - - furi_record_close(RECORD_STORAGE); - return 0; -} diff --git a/applications/system/storage_move_to_sd/storage_move_to_sd.h b/applications/system/storage_move_to_sd/storage_move_to_sd.h deleted file mode 100644 index 135f3e9b0be..00000000000 --- a/applications/system/storage_move_to_sd/storage_move_to_sd.h +++ /dev/null @@ -1,48 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "scenes/storage_move_to_sd_scene.h" - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum { - MoveToSdCustomEventExit, - MoveToSdCustomEventConfirm, -} MoveToSdCustomEvent; - -typedef struct { - // records - Gui* gui; - Widget* widget; - NotificationApp* notifications; - - // view management - SceneManager* scene_manager; - ViewDispatcher* view_dispatcher; - - FuriPubSubSubscription* sub; - -} StorageMoveToSd; - -typedef enum { - StorageMoveToSdViewWidget, -} StorageMoveToSdView; - -bool storage_move_to_sd_perform(void); - -#ifdef __cplusplus -} -#endif diff --git a/applications/system/updater/util/update_task.c b/applications/system/updater/util/update_task.c index 0eae0eaf529..8f051ff77a2 100644 --- a/applications/system/updater/util/update_task.c +++ b/applications/system/updater/util/update_task.c @@ -6,7 +6,6 @@ #include #include #include -#include #include #define TAG "UpdWorker" diff --git a/applications/system/updater/util/update_task_worker_flasher.c b/applications/system/updater/util/update_task_worker_flasher.c index 848cc549428..e7e1bbbedc6 100644 --- a/applications/system/updater/util/update_task_worker_flasher.c +++ b/applications/system/updater/util/update_task_worker_flasher.c @@ -6,7 +6,6 @@ #include #include #include -#include #include #include #include diff --git a/documentation/doxygen/Doxyfile.cfg b/documentation/doxygen/Doxyfile.cfg index 2596d161f48..a7838163b0d 100644 --- a/documentation/doxygen/Doxyfile.cfg +++ b/documentation/doxygen/Doxyfile.cfg @@ -1023,7 +1023,6 @@ RECURSIVE = YES EXCLUDE = $(DOXY_SRC_ROOT)/lib/mlib \ $(DOXY_SRC_ROOT)/lib/STM32CubeWB \ - $(DOXY_SRC_ROOT)/lib/littlefs \ $(DOXY_SRC_ROOT)/lib/nanopb \ $(DOXY_SRC_ROOT)/assets/protobuf \ $(DOXY_SRC_ROOT)/lib/libusb_stm32 \ diff --git a/furi/core/event_loop.c b/furi/core/event_loop.c index 26401c84b2c..feed8d6f44b 100644 --- a/furi/core/event_loop.c +++ b/furi/core/event_loop.c @@ -107,10 +107,13 @@ void furi_event_loop_run(FuriEventLoop* instance) { furi_check(instance); furi_check(instance->thread_id == furi_thread_get_current_id()); - furi_event_loop_init_tick(instance); + // Set the default signal callback if none was previously set + if(furi_thread_get_signal_callback(instance->thread_id) == NULL) { + furi_thread_set_signal_callback( + instance->thread_id, furi_event_loop_signal_callback, instance); + } - furi_thread_set_signal_callback( - instance->thread_id, furi_event_loop_signal_callback, instance); + furi_event_loop_init_tick(instance); while(true) { instance->state = FuriEventLoopStateIdle; @@ -177,7 +180,10 @@ void furi_event_loop_run(FuriEventLoop* instance) { } } - furi_thread_set_signal_callback(instance->thread_id, NULL, NULL); + // Disable the default signal callback + if(furi_thread_get_signal_callback(instance->thread_id) == furi_event_loop_signal_callback) { + furi_thread_set_signal_callback(instance->thread_id, NULL, NULL); + } } void furi_event_loop_stop(FuriEventLoop* instance) { diff --git a/furi/core/thread.c b/furi/core/thread.c index c47df55e49d..69c6b0f04e8 100644 --- a/furi/core/thread.c +++ b/furi/core/thread.c @@ -318,6 +318,12 @@ void furi_thread_set_signal_callback( thread->signal_context = context; } +FuriThreadSignalCallback furi_thread_get_signal_callback(const FuriThread* thread) { + furi_check(thread); + + return thread->signal_callback; +} + bool furi_thread_signal(const FuriThread* thread, uint32_t signal, void* arg) { furi_check(thread); diff --git a/furi/core/thread.h b/furi/core/thread.h index be09e040ea2..e8cdeaeafb6 100644 --- a/furi/core/thread.h +++ b/furi/core/thread.h @@ -270,7 +270,7 @@ FuriThreadState furi_thread_get_state(FuriThread* thread); /** * @brief Set a signal handler callback for a FuriThread instance. * - * The thread MUST be stopped when calling this function. + * The thread MUST be stopped when calling this function if calling it from another thread. * * @param[in,out] thread pointer to the FuriThread instance to be modified * @param[in] callback pointer to a user-specified callback function @@ -281,6 +281,14 @@ void furi_thread_set_signal_callback( FuriThreadSignalCallback callback, void* context); +/** + * @brief Get a signal callback for a FuriThread instance. + * + * @param[in] thread pointer to the FuriThread instance to be queried + * @return pointer to the callback function or NULL if none has been set + */ +FuriThreadSignalCallback furi_thread_get_signal_callback(const FuriThread* thread); + /** * @brief Send a signal to a FuriThread instance. * diff --git a/lib/ReadMe.md b/lib/ReadMe.md index 64da39e358c..4656f187b64 100644 --- a/lib/ReadMe.md +++ b/lib/ReadMe.md @@ -18,7 +18,6 @@ - `infrared` - Infrared library, used by Infrared application - `lfrfid` - LF-RFID library, used by LF RFID application - `libusb_stm32` - LibUSB for STM32 series MCU -- `littlefs` - LittleFS file system driver, used by internal storage - `mbedtls` - MbedTLS cryptography library - `microtar` - MicroTAR library - `mjs` - MJs, javascript engine library diff --git a/lib/SConscript b/lib/SConscript index f331198a426..7f13aad4455 100644 --- a/lib/SConscript +++ b/lib/SConscript @@ -27,7 +27,6 @@ libs = env.BuildModules( "one_wire", "ibutton", "infrared", - "littlefs", "subghz", "nfc", "digital_signal", diff --git a/lib/ble_profile/extra_profiles/hid_profile.c b/lib/ble_profile/extra_profiles/hid_profile.c index 85fb101b8c9..f559a741a6b 100644 --- a/lib/ble_profile/extra_profiles/hid_profile.c +++ b/lib/ble_profile/extra_profiles/hid_profile.c @@ -373,6 +373,12 @@ bool ble_profile_hid_mouse_scroll(FuriHalBleProfileBase* profile, int8_t delta) return state; } +// AN5289: 4.7, in order to use flash controller interval must be at least 25ms + advertisement, which is 30 ms +// Since we don't use flash controller anymore interval can be lowered to 7.5ms +#define CONNECTION_INTERVAL_MIN (0x0006) +// Up to 45 ms +#define CONNECTION_INTERVAL_MAX (0x24) + static GapConfig template_config = { .adv_service_uuid = HUMAN_INTERFACE_DEVICE_SERVICE_UUID, .appearance_char = GAP_APPEARANCE_KEYBOARD, @@ -380,8 +386,8 @@ static GapConfig template_config = { .pairing_method = GapPairingPinCodeVerifyYesNo, .conn_param = { - .conn_int_min = 0x18, // AN5289: 4.7, we need at least 25ms + advertisement, which is 30 ms - .conn_int_max = 0x24, // 45 ms + .conn_int_min = CONNECTION_INTERVAL_MIN, + .conn_int_max = CONNECTION_INTERVAL_MAX, .slave_latency = 0, .supervisor_timeout = 0, }, diff --git a/lib/lfs_config.h b/lib/lfs_config.h deleted file mode 100644 index ff8bc4b235f..00000000000 --- a/lib/lfs_config.h +++ /dev/null @@ -1,204 +0,0 @@ -#pragma once - -#include - -#ifdef FURI_NDEBUG -#define LFS_NO_ASSERT -#define LFS_ASSERT(x) -#else -#define LFS_ASSERT furi_assert -#endif - -#define LFS_TAG "Lfs" - -#ifdef FURI_LFS_DEBUG -#define LFS_TRACE(...) FURI_LOG_T(LFS_TAG, __VA_ARGS__); - -#define LFS_DEBUG(...) FURI_LOG_D(LFS_TAG, __VA_ARGS__); -#else -#define LFS_TRACE(...) - -#define LFS_DEBUG(...) -#endif // FURI_LFS_DEBUG - -#define LFS_WARN(...) FURI_LOG_W(LFS_TAG, __VA_ARGS__); - -#define LFS_ERROR(...) FURI_LOG_E(LFS_TAG, __VA_ARGS__); - -// Because crc -#undef LFS_CONFIG - -// System includes -#include -#include -#include -#include - -#ifndef LFS_NO_MALLOC -#include -#endif -#ifndef LFS_NO_ASSERT -#include -#endif -#if !defined(LFS_NO_DEBUG) || !defined(LFS_NO_WARN) || !defined(LFS_NO_ERROR) || \ - defined(LFS_YES_TRACE) -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -// Builtin functions, these may be replaced by more efficient -// toolchain-specific implementations. LFS_NO_INTRINSICS falls back to a more -// expensive basic C implementation for debugging purposes - -// Min/max functions for unsigned 32-bit numbers -static inline uint32_t lfs_max(uint32_t a, uint32_t b) { - return (a > b) ? a : b; -} - -static inline uint32_t lfs_min(uint32_t a, uint32_t b) { - return (a < b) ? a : b; -} - -// Align to nearest multiple of a size -static inline uint32_t lfs_aligndown(uint32_t a, uint32_t alignment) { - return a - (a % alignment); -} - -static inline uint32_t lfs_alignup(uint32_t a, uint32_t alignment) { - return lfs_aligndown(a + alignment - 1, alignment); -} - -// Find the smallest power of 2 greater than or equal to a -static inline uint32_t lfs_npw2(uint32_t a) { -#if !defined(LFS_NO_INTRINSICS) && (defined(__GNUC__) || defined(__CC_ARM)) - return 32 - __builtin_clz(a - 1); -#else - uint32_t r = 0; - uint32_t s; - a -= 1; - s = (a > 0xffff) << 4; - a >>= s; - r |= s; - s = (a > 0xff) << 3; - a >>= s; - r |= s; - s = (a > 0xf) << 2; - a >>= s; - r |= s; - s = (a > 0x3) << 1; - a >>= s; - r |= s; - return (r | (a >> 1)) + 1; -#endif -} - -// Count the number of trailing binary zeros in a -// lfs_ctz(0) may be undefined -static inline uint32_t lfs_ctz(uint32_t a) { -#if !defined(LFS_NO_INTRINSICS) && defined(__GNUC__) - return __builtin_ctz(a); -#else - return lfs_npw2((a & -a) + 1) - 1; -#endif -} - -// Count the number of binary ones in a -static inline uint32_t lfs_popc(uint32_t a) { -#if !defined(LFS_NO_INTRINSICS) && (defined(__GNUC__) || defined(__CC_ARM)) - return __builtin_popcount(a); -#else - a = a - ((a >> 1) & 0x55555555); - a = (a & 0x33333333) + ((a >> 2) & 0x33333333); - return (((a + (a >> 4)) & 0xf0f0f0f) * 0x1010101) >> 24; -#endif -} - -// Find the sequence comparison of a and b, this is the distance -// between a and b ignoring overflow -static inline int lfs_scmp(uint32_t a, uint32_t b) { - return (int)(unsigned)(a - b); -} - -// Convert between 32-bit little-endian and native order -static inline uint32_t lfs_fromle32(uint32_t a) { -#if !defined(LFS_NO_INTRINSICS) && \ - ((defined(BYTE_ORDER) && defined(ORDER_LITTLE_ENDIAN) && \ - BYTE_ORDER == ORDER_LITTLE_ENDIAN) || \ - (defined(__BYTE_ORDER) && defined(__ORDER_LITTLE_ENDIAN) && \ - __BYTE_ORDER == __ORDER_LITTLE_ENDIAN) || \ - (defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \ - __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)) - return a; -#elif !defined(LFS_NO_INTRINSICS) && \ - ((defined(BYTE_ORDER) && defined(ORDER_BIG_ENDIAN) && BYTE_ORDER == ORDER_BIG_ENDIAN) || \ - (defined(__BYTE_ORDER) && defined(__ORDER_BIG_ENDIAN) && \ - __BYTE_ORDER == __ORDER_BIG_ENDIAN) || \ - (defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && \ - __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)) - return __builtin_bswap32(a); -#else - return (((uint8_t*)&a)[0] << 0) | (((uint8_t*)&a)[1] << 8) | (((uint8_t*)&a)[2] << 16) | - (((uint8_t*)&a)[3] << 24); -#endif -} - -static inline uint32_t lfs_tole32(uint32_t a) { - return lfs_fromle32(a); -} - -// Convert between 32-bit big-endian and native order -static inline uint32_t lfs_frombe32(uint32_t a) { -#if !defined(LFS_NO_INTRINSICS) && \ - ((defined(BYTE_ORDER) && defined(ORDER_LITTLE_ENDIAN) && \ - BYTE_ORDER == ORDER_LITTLE_ENDIAN) || \ - (defined(__BYTE_ORDER) && defined(__ORDER_LITTLE_ENDIAN) && \ - __BYTE_ORDER == __ORDER_LITTLE_ENDIAN) || \ - (defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \ - __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)) - return __builtin_bswap32(a); -#elif !defined(LFS_NO_INTRINSICS) && \ - ((defined(BYTE_ORDER) && defined(ORDER_BIG_ENDIAN) && BYTE_ORDER == ORDER_BIG_ENDIAN) || \ - (defined(__BYTE_ORDER) && defined(__ORDER_BIG_ENDIAN) && \ - __BYTE_ORDER == __ORDER_BIG_ENDIAN) || \ - (defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && \ - __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)) - return a; -#else - return (((uint8_t*)&a)[0] << 24) | (((uint8_t*)&a)[1] << 16) | (((uint8_t*)&a)[2] << 8) | - (((uint8_t*)&a)[3] << 0); -#endif -} - -static inline uint32_t lfs_tobe32(uint32_t a) { - return lfs_frombe32(a); -} - -// Calculate CRC-32 with polynomial = 0x04c11db7 -uint32_t lfs_crc(uint32_t crc, const void* buffer, size_t size); - -// Allocate memory, only used if buffers are not provided to littlefs -// Note, memory must be 64-bit aligned -static inline void* lfs_malloc(size_t size) { -#ifndef LFS_NO_MALLOC - return malloc(size); -#else - (void)size; - return NULL; -#endif -} - -// Deallocate memory, only used if buffers are not provided to littlefs -static inline void lfs_free(void* p) { -#ifndef LFS_NO_MALLOC - free(p); -#else - (void)p; -#endif -} - -#ifdef __cplusplus -} /* extern "C" */ -#endif diff --git a/lib/littlefs b/lib/littlefs deleted file mode 160000 index 611c9b20db2..00000000000 --- a/lib/littlefs +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 611c9b20db2b99faee261daa7cc9bbe175d3eaca diff --git a/lib/littlefs.scons b/lib/littlefs.scons deleted file mode 100644 index 3d68e07bae8..00000000000 --- a/lib/littlefs.scons +++ /dev/null @@ -1,22 +0,0 @@ -Import("env") - -env.Append( - CPPPATH=[ - "#/lib/littlefs", - ], -) - - -libenv = env.Clone(FW_LIB_NAME="littlefs") -libenv.ApplyLibFlags() -libenv.Append( - CPPDEFINES=[ - ("LFS_CONFIG", "lfs_config.h"), - ], -) - -sources = Glob("littlefs/*.c", source=True) - -lib = libenv.StaticLibrary("${FW_LIB_NAME}", sources) -libenv.Install("${LIB_DIST_DIR}", lib) -Return("lib") diff --git a/lib/subghz/devices/registry.c b/lib/subghz/devices/registry.c index 779ba81d7a6..9722c150176 100644 --- a/lib/subghz/devices/registry.c +++ b/lib/subghz/devices/registry.c @@ -23,7 +23,7 @@ void subghz_device_registry_init(void) { firmware_api_interface); //TODO FL-3556: fix path to plugins - if(plugin_manager_load_all(subghz_device->manager, "/any/apps_data/subghz/plugins") != + if(plugin_manager_load_all(subghz_device->manager, EXT_PATH("apps_data/subghz/plugins")) != //if(plugin_manager_load_all(subghz_device->manager, APP_DATA_PATH("plugins")) != PluginManagerErrorNone) { FURI_LOG_E(TAG, "Failed to load all libs"); diff --git a/lib/toolbox/crc32_calc.c b/lib/toolbox/crc32_calc.c index 78295167f38..60d709a364f 100644 --- a/lib/toolbox/crc32_calc.c +++ b/lib/toolbox/crc32_calc.c @@ -1,11 +1,37 @@ #include "crc32_calc.h" -#include #define CRC_DATA_BUFFER_MAX_LEN 512 uint32_t crc32_calc_buffer(uint32_t crc, const void* buffer, size_t size) { - // TODO FL-3547: consider removing dependency on LFS - return ~lfs_crc(~crc, buffer, size); + crc = ~crc; + + static const uint32_t rtable[16] = { + 0x00000000, + 0x1db71064, + 0x3b6e20c8, + 0x26d930ac, + 0x76dc4190, + 0x6b6b51f4, + 0x4db26158, + 0x5005713c, + 0xedb88320, + 0xf00f9344, + 0xd6d6a3e8, + 0xcb61b38c, + 0x9b64c2b0, + 0x86d3d2d4, + 0xa00ae278, + 0xbdbdf21c, + }; + + const uint8_t* data = buffer; + + for(size_t i = 0; i < size; i++) { + crc = (crc >> 4) ^ rtable[(crc ^ (data[i] >> 0)) & 0xf]; + crc = (crc >> 4) ^ rtable[(crc ^ (data[i] >> 4)) & 0xf]; + } + + return ~crc; } uint32_t crc32_calc_file(File* file, const FileCrcProgressCb progress_cb, void* context) { diff --git a/lib/toolbox/stream/file_stream.c b/lib/toolbox/stream/file_stream.c index 80cbb7d5f77..a0dfda3ebe7 100644 --- a/lib/toolbox/stream/file_stream.c +++ b/lib/toolbox/stream/file_stream.c @@ -159,8 +159,8 @@ static bool file_stream_delete_and_insert( FuriString* tmp_name; tmp_name = furi_string_alloc(); storage_get_next_filename( - _stream->storage, STORAGE_ANY_PATH_PREFIX, ".scratch", ".pad", tmp_name, 255); - scratch_name = furi_string_alloc_printf(ANY_PATH("%s.pad"), furi_string_get_cstr(tmp_name)); + _stream->storage, STORAGE_EXT_PATH_PREFIX, ".scratch", ".pad", tmp_name, 255); + scratch_name = furi_string_alloc_printf(EXT_PATH("%s.pad"), furi_string_get_cstr(tmp_name)); furi_string_free(tmp_name); do { diff --git a/lib/toolbox/tar/tar_archive.c b/lib/toolbox/tar/tar_archive.c index 80144a0f4f5..db1d5177f34 100644 --- a/lib/toolbox/tar/tar_archive.c +++ b/lib/toolbox/tar/tar_archive.c @@ -289,7 +289,7 @@ bool tar_archive_file_finalize(TarArchive* archive) { typedef struct { TarArchive* archive; const char* work_dir; - Storage_name_converter converter; + TarArchiveNameConverter converter; } TarArchiveDirectoryOpParams; static bool archive_extract_current_file(TarArchive* archive, const char* dst_path) { @@ -386,7 +386,7 @@ static int archive_extract_foreach_cb(mtar_t* tar, const mtar_header_t* header, bool tar_archive_unpack_to( TarArchive* archive, const char* destination, - Storage_name_converter converter) { + TarArchiveNameConverter converter) { furi_check(archive); TarArchiveDirectoryOpParams param = { .archive = archive, diff --git a/lib/toolbox/tar/tar_archive.h b/lib/toolbox/tar/tar_archive.h index 3eb97391e8d..fd0b28b87f5 100644 --- a/lib/toolbox/tar/tar_archive.h +++ b/lib/toolbox/tar/tar_archive.h @@ -54,6 +54,8 @@ bool tar_archive_open(TarArchive* archive, const char* path, TarOpenMode mode); */ void tar_archive_free(TarArchive* archive); +typedef void (*TarArchiveNameConverter)(FuriString*); + /* High-level API - assumes archive is open */ /** Unpack tar archive to destination @@ -67,7 +69,7 @@ void tar_archive_free(TarArchive* archive); bool tar_archive_unpack_to( TarArchive* archive, const char* destination, - Storage_name_converter converter); + TarArchiveNameConverter converter); /** Add file to tar archive * diff --git a/scripts/testops.py b/scripts/testops.py index bf02feaad37..4ae10c7f4ae 100644 --- a/scripts/testops.py +++ b/scripts/testops.py @@ -39,7 +39,9 @@ def _get_flipper(self, retry_count: Optional[int] = 1): if port := resolve_port(self.logger, self.args.port): self.logger.info(f"Found flipper at {port}") + time.sleep(1) break + time.sleep(1) if not port: diff --git a/targets/f18/api_symbols.csv b/targets/f18/api_symbols.csv index d2a145de5a4..9e58a67464b 100644 --- a/targets/f18/api_symbols.csv +++ b/targets/f18/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,70.0,, +Version,+,71.0,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,, Header,+,applications/services/cli/cli.h,, @@ -687,6 +687,7 @@ Function,+,bt_forget_bonded_devices,void,Bt* Function,+,bt_keys_storage_alloc,BtKeysStorage*,const char* Function,+,bt_keys_storage_delete,_Bool,BtKeysStorage* Function,+,bt_keys_storage_free,void,BtKeysStorage* +Function,+,bt_keys_storage_is_changed,_Bool,BtKeysStorage* Function,+,bt_keys_storage_load,_Bool,BtKeysStorage* Function,+,bt_keys_storage_set_default_path,void,Bt* Function,+,bt_keys_storage_set_file_path,void,"BtKeysStorage*, const char*" @@ -1372,6 +1373,7 @@ Function,+,furi_hal_rtc_get_log_baud_rate,FuriHalRtcLogBaudRate, Function,+,furi_hal_rtc_get_log_device,FuriHalRtcLogDevice, Function,+,furi_hal_rtc_get_log_level,uint8_t, Function,+,furi_hal_rtc_get_pin_fails,uint32_t, +Function,-,furi_hal_rtc_get_pin_value,uint32_t, Function,+,furi_hal_rtc_get_register,uint32_t,FuriHalRtcRegister Function,+,furi_hal_rtc_get_timestamp,uint32_t, Function,-,furi_hal_rtc_init,void, @@ -1391,6 +1393,7 @@ Function,+,furi_hal_rtc_set_log_baud_rate,void,FuriHalRtcLogBaudRate Function,+,furi_hal_rtc_set_log_device,void,FuriHalRtcLogDevice Function,+,furi_hal_rtc_set_log_level,void,uint8_t Function,+,furi_hal_rtc_set_pin_fails,void,uint32_t +Function,-,furi_hal_rtc_set_pin_value,void,uint32_t Function,+,furi_hal_rtc_set_register,void,"FuriHalRtcRegister, uint32_t" Function,+,furi_hal_rtc_sync_shadow,void, Function,+,furi_hal_sd_get_card_state,FuriStatus, @@ -1626,6 +1629,7 @@ Function,+,furi_thread_get_id,FuriThreadId,FuriThread* Function,+,furi_thread_get_name,const char*,FuriThreadId Function,+,furi_thread_get_priority,FuriThreadPriority,FuriThread* Function,+,furi_thread_get_return_code,int32_t,FuriThread* +Function,+,furi_thread_get_signal_callback,FuriThreadSignalCallback,const FuriThread* Function,+,furi_thread_get_stack_space,uint32_t,FuriThreadId Function,+,furi_thread_get_state,FuriThreadState,FuriThread* Function,+,furi_thread_get_stdout_callback,FuriThreadStdoutWriteCallback, @@ -2509,7 +2513,7 @@ Function,+,storage_file_write,size_t,"File*, const void*, size_t" Function,+,storage_get_next_filename,void,"Storage*, const char*, const char*, const char*, FuriString*, uint8_t" Function,+,storage_get_pubsub,FuriPubSub*,Storage* Function,+,storage_int_backup,FS_Error,"Storage*, const char*" -Function,+,storage_int_restore,FS_Error,"Storage*, const char*, Storage_name_converter" +Function,+,storage_int_restore,FS_Error,"Storage*, const char*, StorageNameConverter" Function,+,storage_sd_format,FS_Error,Storage* Function,+,storage_sd_info,FS_Error,"Storage*, SDInfo*" Function,+,storage_sd_mount,FS_Error,Storage* @@ -2641,7 +2645,7 @@ Function,+,tar_archive_open,_Bool,"TarArchive*, const char*, TarOpenMode" Function,+,tar_archive_set_file_callback,void,"TarArchive*, tar_unpack_file_cb, void*" Function,+,tar_archive_store_data,_Bool,"TarArchive*, const char*, const uint8_t*, const int32_t" Function,+,tar_archive_unpack_file,_Bool,"TarArchive*, const char*, const char*" -Function,+,tar_archive_unpack_to,_Bool,"TarArchive*, const char*, Storage_name_converter" +Function,+,tar_archive_unpack_to,_Bool,"TarArchive*, const char*, TarArchiveNameConverter" Function,-,tempnam,char*,"const char*, const char*" Function,+,text_box_alloc,TextBox*, Function,+,text_box_free,void,TextBox* diff --git a/targets/f18/target.json b/targets/f18/target.json index 229ec0a7ada..9c450aa83e2 100644 --- a/targets/f18/target.json +++ b/targets/f18/target.json @@ -17,7 +17,6 @@ "stm32wb", "hwdrivers", "fatfs", - "littlefs", "toolbox", "digital_signal", "signal_reader", diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index 52bc07d7e66..4bfe37abb59 100644 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,70.0,, +Version,+,71.0,, Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,, @@ -764,6 +764,7 @@ Function,+,bt_forget_bonded_devices,void,Bt* Function,+,bt_keys_storage_alloc,BtKeysStorage*,const char* Function,+,bt_keys_storage_delete,_Bool,BtKeysStorage* Function,+,bt_keys_storage_free,void,BtKeysStorage* +Function,+,bt_keys_storage_is_changed,_Bool,BtKeysStorage* Function,+,bt_keys_storage_load,_Bool,BtKeysStorage* Function,+,bt_keys_storage_set_default_path,void,Bt* Function,+,bt_keys_storage_set_file_path,void,"BtKeysStorage*, const char*" @@ -1556,6 +1557,7 @@ Function,+,furi_hal_rtc_get_log_baud_rate,FuriHalRtcLogBaudRate, Function,+,furi_hal_rtc_get_log_device,FuriHalRtcLogDevice, Function,+,furi_hal_rtc_get_log_level,uint8_t, Function,+,furi_hal_rtc_get_pin_fails,uint32_t, +Function,-,furi_hal_rtc_get_pin_value,uint32_t, Function,+,furi_hal_rtc_get_register,uint32_t,FuriHalRtcRegister Function,+,furi_hal_rtc_get_timestamp,uint32_t, Function,-,furi_hal_rtc_init,void, @@ -1575,6 +1577,7 @@ Function,+,furi_hal_rtc_set_log_baud_rate,void,FuriHalRtcLogBaudRate Function,+,furi_hal_rtc_set_log_device,void,FuriHalRtcLogDevice Function,+,furi_hal_rtc_set_log_level,void,uint8_t Function,+,furi_hal_rtc_set_pin_fails,void,uint32_t +Function,-,furi_hal_rtc_set_pin_value,void,uint32_t Function,+,furi_hal_rtc_set_register,void,"FuriHalRtcRegister, uint32_t" Function,+,furi_hal_rtc_sync_shadow,void, Function,+,furi_hal_sd_get_card_state,FuriStatus, @@ -1840,6 +1843,7 @@ Function,+,furi_thread_get_id,FuriThreadId,FuriThread* Function,+,furi_thread_get_name,const char*,FuriThreadId Function,+,furi_thread_get_priority,FuriThreadPriority,FuriThread* Function,+,furi_thread_get_return_code,int32_t,FuriThread* +Function,+,furi_thread_get_signal_callback,FuriThreadSignalCallback,const FuriThread* Function,+,furi_thread_get_stack_space,uint32_t,FuriThreadId Function,+,furi_thread_get_state,FuriThreadState,FuriThread* Function,+,furi_thread_get_stdout_callback,FuriThreadStdoutWriteCallback, @@ -3186,7 +3190,7 @@ Function,+,storage_file_write,size_t,"File*, const void*, size_t" Function,+,storage_get_next_filename,void,"Storage*, const char*, const char*, const char*, FuriString*, uint8_t" Function,+,storage_get_pubsub,FuriPubSub*,Storage* Function,+,storage_int_backup,FS_Error,"Storage*, const char*" -Function,+,storage_int_restore,FS_Error,"Storage*, const char*, Storage_name_converter" +Function,+,storage_int_restore,FS_Error,"Storage*, const char*, StorageNameConverter" Function,+,storage_sd_format,FS_Error,Storage* Function,+,storage_sd_info,FS_Error,"Storage*, SDInfo*" Function,+,storage_sd_mount,FS_Error,Storage* @@ -3482,7 +3486,7 @@ Function,+,tar_archive_open,_Bool,"TarArchive*, const char*, TarOpenMode" Function,+,tar_archive_set_file_callback,void,"TarArchive*, tar_unpack_file_cb, void*" Function,+,tar_archive_store_data,_Bool,"TarArchive*, const char*, const uint8_t*, const int32_t" Function,+,tar_archive_unpack_file,_Bool,"TarArchive*, const char*, const char*" -Function,+,tar_archive_unpack_to,_Bool,"TarArchive*, const char*, Storage_name_converter" +Function,+,tar_archive_unpack_to,_Bool,"TarArchive*, const char*, TarArchiveNameConverter" Function,-,tempnam,char*,"const char*, const char*" Function,+,text_box_alloc,TextBox*, Function,+,text_box_free,void,TextBox* diff --git a/targets/f7/ble_glue/extra_beacon.c b/targets/f7/ble_glue/extra_beacon.c index 0fd452a5a6d..f9b9b13ef6d 100644 --- a/targets/f7/ble_glue/extra_beacon.c +++ b/targets/f7/ble_glue/extra_beacon.c @@ -8,9 +8,9 @@ #define GAP_MS_TO_SCAN_INTERVAL(x) ((uint16_t)((x) / 0.625)) -// Also used as an indicator of whether the beacon had ever been configured -// AN5289: 4.7, we need at least 25ms + advertisement, which is 30 ms -#define GAP_MIN_ADV_INTERVAL_MS (30u) +// AN5289: 4.7, in order to use flash controller interval must be at least 25ms + advertisement, which is 30 ms +// Since we don't use flash controller anymore interval can be lowered to 20ms +#define GAP_MIN_ADV_INTERVAL_MS (20U) typedef struct { GapExtraBeaconConfig last_config; diff --git a/targets/f7/ble_glue/hw_ipcc.c b/targets/f7/ble_glue/hw_ipcc.c index 4daaa7e49de..43785a1b4b9 100644 --- a/targets/f7/ble_glue/hw_ipcc.c +++ b/targets/f7/ble_glue/hw_ipcc.c @@ -15,6 +15,8 @@ (LL_C2_IPCC_IsActiveFlag_CHx(IPCC, channel) && \ LL_C1_IPCC_IsEnabledReceiveChannel(IPCC, channel)) +#define IPCC_SEND_CMD_TIMEOUT_US (33UL * 1000UL * 1000UL) + static void (*FreeBufCb)(void); static void HW_IPCC_BLE_EvtHandler(void); @@ -113,7 +115,7 @@ void HW_IPCC_SYS_Init(void) { void HW_IPCC_SYS_SendCmd(void) { LL_C1_IPCC_SetFlag_CHx(IPCC, HW_IPCC_SYSTEM_CMD_RSP_CHANNEL); - FuriHalCortexTimer timer = furi_hal_cortex_timer_get(33000000); + FuriHalCortexTimer timer = furi_hal_cortex_timer_get(IPCC_SEND_CMD_TIMEOUT_US); while(LL_C1_IPCC_IsActiveFlag_CHx(IPCC, HW_IPCC_SYSTEM_CMD_RSP_CHANNEL)) { furi_check(!furi_hal_cortex_timer_is_expired(timer), "HW_IPCC_SYS_SendCmd timeout"); diff --git a/targets/f7/ble_glue/profiles/serial_profile.c b/targets/f7/ble_glue/profiles/serial_profile.c index 118a76e8c3f..1d414889f82 100644 --- a/targets/f7/ble_glue/profiles/serial_profile.c +++ b/targets/f7/ble_glue/profiles/serial_profile.c @@ -40,14 +40,20 @@ static void ble_profile_serial_stop(FuriHalBleProfileBase* profile) { ble_svc_serial_stop(serial_profile->serial_svc); } +// AN5289: 4.7, in order to use flash controller interval must be at least 25ms + advertisement, which is 30 ms +// Since we don't use flash controller anymore interval can be lowered to 7.5ms +#define CONNECTION_INTERVAL_MIN (0x06) +// Up to 45 ms +#define CONNECTION_INTERVAL_MAX (0x24) + static GapConfig serial_template_config = { .adv_service_uuid = 0x3080, .appearance_char = 0x8600, .bonding_mode = true, .pairing_method = GapPairingPinCodeShow, .conn_param = { - .conn_int_min = 0x18, // AN5289: 4.7, we need at least 25ms + advertisement, which is 30 ms - .conn_int_max = 0x24, // 45 ms + .conn_int_min = CONNECTION_INTERVAL_MIN, + .conn_int_max = CONNECTION_INTERVAL_MAX, .slave_latency = 0, .supervisor_timeout = 0, }}; diff --git a/targets/f7/furi_hal/furi_hal_bt.c b/targets/f7/furi_hal/furi_hal_bt.c index 2d76188da40..2c1a9367b07 100644 --- a/targets/f7/furi_hal/furi_hal_bt.c +++ b/targets/f7/furi_hal/furi_hal_bt.c @@ -87,10 +87,9 @@ static bool furi_hal_bt_radio_stack_is_supported(const BleGlueC2Info* info) { } bool furi_hal_bt_start_radio_stack(void) { - bool res = false; - furi_check(furi_hal_bt.core2_mtx); + furi_hal_bt_lock_core2(); - furi_mutex_acquire(furi_hal_bt.core2_mtx, FuriWaitForever); + bool res = false; // Explicitly tell that we are in charge of CLK48 domain furi_check(LL_HSEM_1StepLock(HSEM, CFG_HW_CLK48_CONFIG_SEMID) == 0); @@ -123,7 +122,8 @@ bool furi_hal_bt_start_radio_stack(void) { } res = true; } while(false); - furi_mutex_release(furi_hal_bt.core2_mtx); + + furi_hal_bt_unlock_core2(); gap_extra_beacon_init(); return res; @@ -198,6 +198,8 @@ FuriHalBleProfileBase* furi_hal_bt_start_app( } void furi_hal_bt_reinit(void) { + furi_hal_bt_lock_core2(); + furi_hal_power_insomnia_enter(); FURI_LOG_I(TAG, "Disconnect and stop advertising"); furi_hal_bt_stop_advertising(); @@ -229,6 +231,7 @@ void furi_hal_bt_reinit(void) { furi_hal_bus_disable(FuriHalBusCRC); furi_hal_bt_init(); + furi_hal_bt_unlock_core2(); furi_hal_bt_start_radio_stack(); furi_hal_power_insomnia_exit(); } diff --git a/targets/f7/furi_hal/furi_hal_crypto.c b/targets/f7/furi_hal/furi_hal_crypto.c index 1879eb2caee..4deda293a24 100644 --- a/targets/f7/furi_hal/furi_hal_crypto.c +++ b/targets/f7/furi_hal/furi_hal_crypto.c @@ -262,36 +262,54 @@ bool furi_hal_crypto_enclave_load_key(uint8_t slot, const uint8_t* iv) { furi_hal_bus_enable(FuriHalBusAES1); - if(!furi_hal_bt_is_alive()) { - return false; - } + bool success = false; - furi_hal_crypto_mode_init_done = false; - crypto_key_init(NULL, (uint32_t*)iv); + furi_hal_bt_lock_core2(); - if(SHCI_C2_FUS_LoadUsrKey(slot) == SHCI_Success) { - return true; - } else { - CLEAR_BIT(AES1->CR, AES_CR_EN); - furi_check(furi_mutex_release(furi_hal_crypto_mutex) == FuriStatusOk); - return false; - } + do { + if(!furi_hal_bt_is_alive()) { + break; + } + + furi_hal_crypto_mode_init_done = false; + crypto_key_init(NULL, (uint32_t*)iv); + + if(SHCI_C2_FUS_LoadUsrKey(slot) == SHCI_Success) { + success = true; + } else { + CLEAR_BIT(AES1->CR, AES_CR_EN); + furi_check(furi_mutex_release(furi_hal_crypto_mutex) == FuriStatusOk); + } + + } while(false); + + furi_hal_bt_unlock_core2(); + return success; } bool furi_hal_crypto_enclave_unload_key(uint8_t slot) { - if(!furi_hal_bt_is_alive()) { - return false; - } + furi_hal_bt_lock_core2(); - CLEAR_BIT(AES1->CR, AES_CR_EN); + bool success = false; + + do { + if(!furi_hal_bt_is_alive()) { + break; + } - SHCI_CmdStatus_t shci_state = SHCI_C2_FUS_UnloadUsrKey(slot); + CLEAR_BIT(AES1->CR, AES_CR_EN); - furi_hal_bus_disable(FuriHalBusAES1); + SHCI_CmdStatus_t shci_state = SHCI_C2_FUS_UnloadUsrKey(slot); - furi_check(furi_mutex_release(furi_hal_crypto_mutex) == FuriStatusOk); + furi_hal_bus_disable(FuriHalBusAES1); - return shci_state == SHCI_Success; + furi_check(furi_mutex_release(furi_hal_crypto_mutex) == FuriStatusOk); + + success = (shci_state == SHCI_Success); + } while(false); + + furi_hal_bt_unlock_core2(); + return success; } bool furi_hal_crypto_load_key(const uint8_t* key, const uint8_t* iv) { diff --git a/targets/f7/furi_hal/furi_hal_region.c b/targets/f7/furi_hal/furi_hal_region.c index 26eda5b7b8a..4e5ab7fda9e 100644 --- a/targets/f7/furi_hal/furi_hal_region.c +++ b/targets/f7/furi_hal/furi_hal_region.c @@ -71,66 +71,80 @@ const FuriHalRegion furi_hal_region_jp = { .duty_cycle = 50, }}}; -static const FuriHalRegion* furi_hal_region = NULL; +static const FuriHalRegion* const furi_hal_static_regions[] = { + [FuriHalVersionRegionUnknown] = &furi_hal_region_zero, + [FuriHalVersionRegionEuRu] = &furi_hal_region_eu_ru, + [FuriHalVersionRegionUsCaAu] = &furi_hal_region_us_ca_au, + [FuriHalVersionRegionJp] = &furi_hal_region_jp, +}; + +static FuriHalRegion* furi_hal_dynamic_region; +static FuriMutex* furi_hal_dynamic_region_mutex; void furi_hal_region_init(void) { - FuriHalVersionRegion region = furi_hal_version_get_hw_region(); - - if(region == FuriHalVersionRegionUnknown) { - furi_hal_region = &furi_hal_region_zero; - } else if(region == FuriHalVersionRegionEuRu) { - furi_hal_region = &furi_hal_region_eu_ru; - } else if(region == FuriHalVersionRegionUsCaAu) { - furi_hal_region = &furi_hal_region_us_ca_au; - } else if(region == FuriHalVersionRegionJp) { - furi_hal_region = &furi_hal_region_jp; - } + furi_assert(furi_hal_dynamic_region_mutex == NULL); + furi_hal_dynamic_region_mutex = furi_mutex_alloc(FuriMutexTypeNormal); } const FuriHalRegion* furi_hal_region_get(void) { - return furi_hal_region; + const FuriHalVersionRegion region = furi_hal_version_get_hw_region(); + const FuriHalRegion* ret; + + furi_check(furi_mutex_acquire(furi_hal_dynamic_region_mutex, FuriWaitForever) == FuriStatusOk); + + if(region < FuriHalVersionRegionWorld && furi_hal_dynamic_region == NULL) { + ret = furi_hal_static_regions[region]; + } else { + ret = furi_hal_dynamic_region; + } + + furi_check(furi_mutex_release(furi_hal_dynamic_region_mutex) == FuriStatusOk); + + return ret; } void furi_hal_region_set(FuriHalRegion* region) { furi_check(region); - furi_hal_region = region; + furi_check(furi_mutex_acquire(furi_hal_dynamic_region_mutex, FuriWaitForever) == FuriStatusOk); + + if(furi_hal_dynamic_region) { + free(furi_hal_dynamic_region); + } + + furi_hal_dynamic_region = region; + + furi_check(furi_mutex_release(furi_hal_dynamic_region_mutex) == FuriStatusOk); } bool furi_hal_region_is_provisioned(void) { - return furi_hal_region != NULL; + return furi_hal_region_get() != NULL; } const char* furi_hal_region_get_name(void) { - if(furi_hal_region) { - return furi_hal_region->country_code; + const FuriHalRegion* region = furi_hal_region_get(); + + if(region) { + return region->country_code; } else { return "--"; } } bool furi_hal_region_is_frequency_allowed(uint32_t frequency) { - if(!furi_hal_region) { - return false; - } - - const FuriHalRegionBand* band = furi_hal_region_get_band(frequency); - if(!band) { - return false; - } - - return true; + return furi_hal_region_get_band(frequency) != NULL; } const FuriHalRegionBand* furi_hal_region_get_band(uint32_t frequency) { - if(!furi_hal_region) { + const FuriHalRegion* region = furi_hal_region_get(); + + if(!region) { return NULL; } - for(size_t i = 0; i < furi_hal_region->bands_count; i++) { - if(furi_hal_region->bands[i].start <= frequency && - furi_hal_region->bands[i].end >= frequency) { - return &furi_hal_region->bands[i]; + for(size_t i = 0; i < region->bands_count; i++) { + if(region->bands[i].start <= frequency && region->bands[i].end >= frequency) { + return ®ion->bands[i]; } } diff --git a/targets/f7/furi_hal/furi_hal_rtc.c b/targets/f7/furi_hal/furi_hal_rtc.c index f5f7bdf2d26..d5cda747675 100644 --- a/targets/f7/furi_hal/furi_hal_rtc.c +++ b/targets/f7/furi_hal/furi_hal_rtc.c @@ -411,6 +411,14 @@ uint32_t furi_hal_rtc_get_pin_fails(void) { return furi_hal_rtc_get_register(FuriHalRtcRegisterPinFails); } +void furi_hal_rtc_set_pin_value(uint32_t value) { + furi_hal_rtc_set_register(FuriHalRtcRegisterPinValue, value); +} + +uint32_t furi_hal_rtc_get_pin_value(void) { + return furi_hal_rtc_get_register(FuriHalRtcRegisterPinValue); +} + uint32_t furi_hal_rtc_get_timestamp(void) { DateTime datetime = {0}; furi_hal_rtc_get_datetime(&datetime); diff --git a/targets/f7/furi_hal/furi_hal_rtc.h b/targets/f7/furi_hal/furi_hal_rtc.h index 3bdbb0c7290..030b464cf7a 100644 --- a/targets/f7/furi_hal/furi_hal_rtc.h +++ b/targets/f7/furi_hal/furi_hal_rtc.h @@ -46,9 +46,10 @@ typedef enum { FuriHalRtcRegisterVersion, /**< Pointer to Version */ FuriHalRtcRegisterLfsFingerprint, /**< LFS geometry fingerprint */ FuriHalRtcRegisterFaultData, /**< Pointer to last fault message */ - FuriHalRtcRegisterPinFails, /**< Failed pins count */ + FuriHalRtcRegisterPinFails, /**< Failed PINs count */ /* Index of FS directory entry corresponding to FW update to be applied */ FuriHalRtcRegisterUpdateFolderFSIndex, + FuriHalRtcRegisterPinValue, /**< Encoded value of the currently set PIN */ FuriHalRtcRegisterMAX, /**< Service value, do not use */ } FuriHalRtcRegister; @@ -257,18 +258,29 @@ void furi_hal_rtc_set_fault_data(uint32_t value); */ uint32_t furi_hal_rtc_get_fault_data(void); -/** Set Pin Fails count +/** Set PIN Fails count * - * @param[in] value The Pin Fails count + * @param[in] value The PIN Fails count */ void furi_hal_rtc_set_pin_fails(uint32_t value); -/** Get Pin Fails count +/** Get PIN Fails count * - * @return Pin Fails Count + * @return PIN Fails Count */ uint32_t furi_hal_rtc_get_pin_fails(void); +/** Set encoded PIN value + * + * @param[in] value new PIN code value to be set + */ +void furi_hal_rtc_set_pin_value(uint32_t value); + +/** Get the current PIN encoded value + * + */ +uint32_t furi_hal_rtc_get_pin_value(void); + /** Get UNIX Timestamp * * @return Unix Timestamp in seconds from UNIX epoch start diff --git a/targets/f7/target.json b/targets/f7/target.json index 665864d7d95..35f1766c198 100644 --- a/targets/f7/target.json +++ b/targets/f7/target.json @@ -25,7 +25,6 @@ "stm32wb", "hwdrivers", "fatfs", - "littlefs", "subghz", "toolbox", "nfc", diff --git a/targets/furi_hal_include/furi_hal_region.h b/targets/furi_hal_include/furi_hal_region.h index eed5bef92c9..79a823ba456 100644 --- a/targets/furi_hal_include/furi_hal_region.h +++ b/targets/furi_hal_include/furi_hal_region.h @@ -2,7 +2,6 @@ #include #include -#include #ifdef __cplusplus extern "C" { From 41fcead7103836f42842a358a8244a2557439f15 Mon Sep 17 00:00:00 2001 From: Sean Skyhawk <166570980+skyhawkillusions@users.noreply.github.com> Date: Tue, 6 Aug 2024 22:57:32 -0400 Subject: [PATCH 15/22] Images linting: ensure that all images conform specification (#3802) * Change all icons to be white background * assets: re-processed all *.png images to 1-bit * assets: also stripped profile data from .pngs * assets: also stripped datetime from metadata (`-define png:exclude-chunks=date,time`) * scripts: added image linter and formatter; fbt: added `lint_img` && `format_img` targets; github: integrated image lint step into CI * scripts: imglint: fixed deprecation warning * images: applied `format_img` * fbt: added `lint_all` and `format_all` targets; docs: updated for new targets Co-authored-by: hedger Co-authored-by: hedger --- .../workflows/lint_and_submodule_check.yml | 16 +++ SConstruct | 40 +++++++- .../file_browser_test/icons/badusb_10px.png | Bin 576 -> 96 bytes .../images/DolphinCommon_56x48.png | Bin 1416 -> 301 bytes .../debug/subghz_test/subghz_test_10px.png | Bin 181 -> 96 bytes .../example_ble_beacon_10px.png | Bin 8727 -> 96 bytes .../images/lighthouse_35x44.png | Bin 8910 -> 258 bytes .../example_images/images/dolphin_71x25.png | Bin 1188 -> 226 bytes .../example_thermo/example_thermo_10px.png | Bin 7293 -> 91 bytes applications/main/bad_usb/icon.png | Bin 576 -> 96 bytes applications/main/gpio/icon.png | Bin 1760 -> 91 bytes applications/main/ibutton/icon.png | Bin 304 -> 96 bytes applications/main/infrared/icon.png | Bin 305 -> 96 bytes applications/main/lfrfid/icon.png | Bin 308 -> 95 bytes applications/main/nfc/icon.png | Bin 304 -> 96 bytes applications/main/subghz/icon.png | Bin 299 -> 95 bytes applications/main/u2f/icon.png | Bin 583 -> 98 bytes .../system/hid_app/assets/Alt_17x10.png | Bin 112 -> 100 bytes .../system/hid_app/assets/Alt_active_17x9.png | Bin 3614 -> 93 bytes .../system/hid_app/assets/Arr_dwn_7x9.png | Bin 3602 -> 79 bytes .../system/hid_app/assets/Arr_up_7x9.png | Bin 3605 -> 79 bytes .../hid_app/assets/Ble_connected_15x15.png | Bin 3634 -> 111 bytes .../hid_app/assets/Ble_disconnected_15x15.png | Bin 657 -> 113 bytes .../system/hid_app/assets/ButtonDown_7x4.png | Bin 102 -> 73 bytes .../system/hid_app/assets/ButtonF10_5x8.png | Bin 172 -> 81 bytes .../system/hid_app/assets/ButtonF11_5x8.png | Bin 173 -> 81 bytes .../system/hid_app/assets/ButtonF12_5x8.png | Bin 180 -> 81 bytes .../system/hid_app/assets/ButtonF1_5x8.png | Bin 177 -> 81 bytes .../system/hid_app/assets/ButtonF2_5x8.png | Bin 179 -> 81 bytes .../system/hid_app/assets/ButtonF3_5x8.png | Bin 178 -> 81 bytes .../system/hid_app/assets/ButtonF4_5x8.png | Bin 177 -> 81 bytes .../system/hid_app/assets/ButtonF5_5x8.png | Bin 178 -> 81 bytes .../system/hid_app/assets/ButtonF6_5x8.png | Bin 177 -> 81 bytes .../system/hid_app/assets/ButtonF7_5x8.png | Bin 176 -> 81 bytes .../system/hid_app/assets/ButtonF8_5x8.png | Bin 176 -> 81 bytes .../system/hid_app/assets/ButtonF9_5x8.png | Bin 179 -> 81 bytes .../system/hid_app/assets/ButtonLeft_4x7.png | Bin 1415 -> 79 bytes .../system/hid_app/assets/ButtonRight_4x7.png | Bin 1839 -> 79 bytes .../system/hid_app/assets/ButtonUp_7x4.png | Bin 102 -> 73 bytes .../system/hid_app/assets/Button_18x18.png | Bin 3609 -> 96 bytes .../system/hid_app/assets/Cmd_17x10.png | Bin 116 -> 102 bytes .../system/hid_app/assets/Cmd_active_17x9.png | Bin 3618 -> 96 bytes .../system/hid_app/assets/Ctrl_17x10.png | Bin 116 -> 102 bytes .../hid_app/assets/Ctrl_active_17x9.png | Bin 3619 -> 96 bytes .../system/hid_app/assets/Del_17x10.png | Bin 116 -> 101 bytes .../hid_app/assets/DolphinDone_80x58.png | Bin 1664 -> 448 bytes .../system/hid_app/assets/Dpad_49x46.png | Bin 1078 -> 232 bytes .../system/hid_app/assets/Enter_11x7.png | Bin 3609 -> 86 bytes .../system/hid_app/assets/Esc_17x10.png | Bin 117 -> 106 bytes .../hid_app/assets/Left_mouse_icon_9x10.png | Bin 129 -> 94 bytes .../system/hid_app/assets/Like_def_13x11.png | Bin 600 -> 91 bytes .../hid_app/assets/Like_pressed_17x16.png | Bin 189 -> 126 bytes .../system/hid_app/assets/Ok_btn_9x9.png | Bin 3605 -> 92 bytes .../hid_app/assets/Ok_btn_pressed_13x12.png | Bin 146 -> 95 bytes .../hid_app/assets/Pin_arrow_down_7x9.png | Bin 3607 -> 79 bytes .../hid_app/assets/Pin_arrow_left_9x7.png | Bin 3603 -> 86 bytes .../hid_app/assets/Pin_arrow_right_9x7.png | Bin 3602 -> 86 bytes .../hid_app/assets/Pin_arrow_up_7x9.png | Bin 3603 -> 79 bytes .../hid_app/assets/Pin_back_arrow_10x8.png | Bin 3606 -> 90 bytes .../hid_app/assets/Pressed_Button_13x13.png | Bin 3606 -> 89 bytes .../system/hid_app/assets/Return_10x7.png | Bin 6630 -> 86 bytes .../hid_app/assets/Right_mouse_icon_9x10.png | Bin 126 -> 94 bytes .../hid_app/assets/Shift_active_7x9.png | Bin 113 -> 84 bytes .../hid_app/assets/Shift_inactive_7x9.png | Bin 116 -> 83 bytes .../system/hid_app/assets/Space_60x18.png | Bin 2871 -> 116 bytes .../system/hid_app/assets/Space_65x18.png | Bin 3619 -> 112 bytes .../system/hid_app/assets/Tab_17x10.png | Bin 110 -> 101 bytes .../system/hid_app/assets/Tab_19x12.png | Bin 984 -> 109 bytes .../system/hid_app/assets/Voldwn_6x6.png | Bin 3593 -> 77 bytes .../system/hid_app/assets/Volup_8x6.png | Bin 3595 -> 77 bytes .../hid_app/assets/apostrophe_button_9x11.png | Bin 94 -> 85 bytes .../hid_app/assets/backslash_button_9x11.png | Bin 3595 -> 90 bytes .../system/hid_app/assets/backspace_19x11.png | Bin 3612 -> 105 bytes .../hid_app/assets/backspace_hovered_9x11.png | Bin 3612 -> 94 bytes .../hid_app/assets/backtick_button_9x11.png | Bin 3593 -> 84 bytes .../hid_app/assets/brace_left_button_9x11.png | Bin 3601 -> 92 bytes .../assets/brace_right_button_9x11.png | Bin 3600 -> 92 bytes .../hid_app/assets/equals_button_9x11.png | Bin 3595 -> 80 bytes .../hid_app/assets/hash_button_9x11.png | Bin 3598 -> 88 bytes .../hid_app/assets/percent_button_9x11.png | Bin 3607 -> 98 bytes .../hid_app/assets/quote_button_9x11.png | Bin 3594 -> 85 bytes .../hid_app/assets/slash_button_9x11.png | Bin 3595 -> 90 bytes .../assets/sq_bracket_left_button_9x11.png | Bin 3598 -> 89 bytes .../assets/sq_bracket_right_button_9x11.png | Bin 3598 -> 89 bytes .../hid_app/assets/underscore_button_9x11.png | Bin 3593 -> 81 bytes applications/system/hid_app/hid_ble_10px.png | Bin 151 -> 96 bytes applications/system/hid_app/hid_usb_10px.png | Bin 969 -> 96 bytes applications/system/js_app/icon.png | Bin 3635 -> 88 bytes applications/system/snake_game/snake_10px.png | Bin 158 -> 96 bytes .../blocking/L0_NewMail_128x51/frame_0.png | Bin 1389 -> 402 bytes .../blocking/L0_NewMail_128x51/frame_1.png | Bin 1404 -> 416 bytes .../blocking/L0_NewMail_128x51/frame_2.png | Bin 1434 -> 445 bytes .../blocking/L0_NewMail_128x51/frame_3.png | Bin 1438 -> 459 bytes .../blocking/L0_NoDb_128x51/frame_0.png | Bin 1424 -> 404 bytes .../blocking/L0_NoDb_128x51/frame_1.png | Bin 1425 -> 405 bytes .../blocking/L0_NoDb_128x51/frame_2.png | Bin 1423 -> 413 bytes .../blocking/L0_NoDb_128x51/frame_3.png | Bin 1420 -> 406 bytes .../blocking/L0_SdBad_128x51/frame_0.png | Bin 1370 -> 392 bytes .../blocking/L0_SdBad_128x51/frame_1.png | Bin 1387 -> 404 bytes .../blocking/L0_SdOk_128x51/frame_0.png | Bin 1387 -> 394 bytes .../blocking/L0_SdOk_128x51/frame_1.png | Bin 1395 -> 400 bytes .../blocking/L0_SdOk_128x51/frame_2.png | Bin 1413 -> 404 bytes .../blocking/L0_SdOk_128x51/frame_3.png | Bin 1403 -> 405 bytes .../blocking/L0_Url_128x51/frame_0.png | Bin 1380 -> 387 bytes .../blocking/L0_Url_128x51/frame_1.png | Bin 2046 -> 391 bytes .../blocking/L0_Url_128x51/frame_2.png | Bin 2044 -> 392 bytes .../blocking/L0_Url_128x51/frame_3.png | Bin 2045 -> 385 bytes .../external/L1_Akira_128x64/frame_0.png | Bin 1832 -> 916 bytes .../external/L1_Akira_128x64/frame_1.png | Bin 1888 -> 883 bytes .../external/L1_Akira_128x64/frame_10.png | Bin 1733 -> 914 bytes .../external/L1_Akira_128x64/frame_11.png | Bin 1601 -> 836 bytes .../external/L1_Akira_128x64/frame_12.png | Bin 1385 -> 714 bytes .../external/L1_Akira_128x64/frame_13.png | Bin 1815 -> 945 bytes .../external/L1_Akira_128x64/frame_14.png | Bin 1701 -> 902 bytes .../external/L1_Akira_128x64/frame_15.png | Bin 1409 -> 699 bytes .../external/L1_Akira_128x64/frame_16.png | Bin 1369 -> 690 bytes .../external/L1_Akira_128x64/frame_17.png | Bin 1398 -> 702 bytes .../external/L1_Akira_128x64/frame_18.png | Bin 1360 -> 689 bytes .../external/L1_Akira_128x64/frame_19.png | Bin 1330 -> 688 bytes .../external/L1_Akira_128x64/frame_2.png | Bin 1836 -> 894 bytes .../external/L1_Akira_128x64/frame_20.png | Bin 1077 -> 547 bytes .../external/L1_Akira_128x64/frame_21.png | Bin 1276 -> 749 bytes .../external/L1_Akira_128x64/frame_22.png | Bin 1688 -> 834 bytes .../external/L1_Akira_128x64/frame_23.png | Bin 1984 -> 941 bytes .../external/L1_Akira_128x64/frame_24.png | Bin 2015 -> 951 bytes .../external/L1_Akira_128x64/frame_25.png | Bin 1812 -> 874 bytes .../external/L1_Akira_128x64/frame_26.png | Bin 1395 -> 761 bytes .../external/L1_Akira_128x64/frame_27.png | Bin 1426 -> 775 bytes .../external/L1_Akira_128x64/frame_28.png | Bin 2053 -> 965 bytes .../external/L1_Akira_128x64/frame_29.png | Bin 1891 -> 925 bytes .../external/L1_Akira_128x64/frame_3.png | Bin 1908 -> 912 bytes .../external/L1_Akira_128x64/frame_30.png | Bin 1951 -> 931 bytes .../external/L1_Akira_128x64/frame_31.png | Bin 1911 -> 927 bytes .../external/L1_Akira_128x64/frame_32.png | Bin 1726 -> 875 bytes .../external/L1_Akira_128x64/frame_33.png | Bin 1923 -> 895 bytes .../external/L1_Akira_128x64/frame_34.png | Bin 1126 -> 571 bytes .../external/L1_Akira_128x64/frame_35.png | Bin 1555 -> 768 bytes .../external/L1_Akira_128x64/frame_4.png | Bin 1989 -> 948 bytes .../external/L1_Akira_128x64/frame_5.png | Bin 2000 -> 921 bytes .../external/L1_Akira_128x64/frame_6.png | Bin 1869 -> 903 bytes .../external/L1_Akira_128x64/frame_7.png | Bin 1868 -> 888 bytes .../external/L1_Akira_128x64/frame_8.png | Bin 1891 -> 918 bytes .../external/L1_Akira_128x64/frame_9.png | Bin 1817 -> 952 bytes .../external/L1_Boxing_128x64/frame_0.png | Bin 1548 -> 632 bytes .../external/L1_Boxing_128x64/frame_1.png | Bin 1550 -> 568 bytes .../external/L1_Boxing_128x64/frame_2.png | Bin 1609 -> 668 bytes .../external/L1_Boxing_128x64/frame_3.png | Bin 1518 -> 560 bytes .../external/L1_Boxing_128x64/frame_4.png | Bin 1537 -> 569 bytes .../external/L1_Boxing_128x64/frame_5.png | Bin 1555 -> 568 bytes .../external/L1_Boxing_128x64/frame_6.png | Bin 1543 -> 560 bytes .../external/L1_Cry_128x64/frame_0.png | Bin 1942 -> 897 bytes .../external/L1_Cry_128x64/frame_1.png | Bin 1952 -> 910 bytes .../external/L1_Cry_128x64/frame_2.png | Bin 1945 -> 897 bytes .../external/L1_Cry_128x64/frame_3.png | Bin 1941 -> 922 bytes .../external/L1_Cry_128x64/frame_4.png | Bin 1938 -> 897 bytes .../external/L1_Cry_128x64/frame_5.png | Bin 1928 -> 907 bytes .../external/L1_Cry_128x64/frame_6.png | Bin 1946 -> 909 bytes .../external/L1_Cry_128x64/frame_7.png | Bin 1950 -> 918 bytes .../external/L1_Furippa1_128x64/frame_0.png | Bin 1302 -> 379 bytes .../external/L1_Furippa1_128x64/frame_1.png | Bin 1333 -> 411 bytes .../external/L1_Furippa1_128x64/frame_10.png | Bin 1524 -> 546 bytes .../external/L1_Furippa1_128x64/frame_11.png | Bin 1782 -> 722 bytes .../external/L1_Furippa1_128x64/frame_12.png | Bin 1607 -> 531 bytes .../external/L1_Furippa1_128x64/frame_13.png | Bin 1679 -> 594 bytes .../external/L1_Furippa1_128x64/frame_14.png | Bin 1714 -> 652 bytes .../external/L1_Furippa1_128x64/frame_15.png | Bin 1775 -> 704 bytes .../external/L1_Furippa1_128x64/frame_16.png | Bin 1475 -> 516 bytes .../external/L1_Furippa1_128x64/frame_17.png | Bin 1428 -> 510 bytes .../external/L1_Furippa1_128x64/frame_18.png | Bin 1346 -> 458 bytes .../external/L1_Furippa1_128x64/frame_2.png | Bin 1339 -> 420 bytes .../external/L1_Furippa1_128x64/frame_3.png | Bin 1328 -> 405 bytes .../external/L1_Furippa1_128x64/frame_4.png | Bin 1383 -> 453 bytes .../external/L1_Furippa1_128x64/frame_5.png | Bin 1390 -> 461 bytes .../external/L1_Furippa1_128x64/frame_6.png | Bin 1397 -> 472 bytes .../external/L1_Furippa1_128x64/frame_7.png | Bin 1302 -> 379 bytes .../external/L1_Furippa1_128x64/frame_8.png | Bin 1291 -> 379 bytes .../external/L1_Furippa1_128x64/frame_9.png | Bin 1337 -> 417 bytes .../external/L1_Kaiju_128x64/frame_0.png | Bin 1312 -> 654 bytes .../external/L1_Kaiju_128x64/frame_1.png | Bin 1302 -> 658 bytes .../external/L1_Kaiju_128x64/frame_10.png | Bin 1332 -> 677 bytes .../external/L1_Kaiju_128x64/frame_11.png | Bin 1228 -> 624 bytes .../external/L1_Kaiju_128x64/frame_12.png | Bin 1152 -> 601 bytes .../external/L1_Kaiju_128x64/frame_13.png | Bin 1152 -> 591 bytes .../external/L1_Kaiju_128x64/frame_14.png | Bin 1162 -> 603 bytes .../external/L1_Kaiju_128x64/frame_15.png | Bin 1209 -> 619 bytes .../external/L1_Kaiju_128x64/frame_16.png | Bin 1158 -> 580 bytes .../external/L1_Kaiju_128x64/frame_17.png | Bin 1161 -> 604 bytes .../external/L1_Kaiju_128x64/frame_18.png | Bin 828 -> 453 bytes .../external/L1_Kaiju_128x64/frame_19.png | Bin 817 -> 411 bytes .../external/L1_Kaiju_128x64/frame_2.png | Bin 1288 -> 657 bytes .../external/L1_Kaiju_128x64/frame_20.png | Bin 1222 -> 624 bytes .../external/L1_Kaiju_128x64/frame_21.png | Bin 1494 -> 800 bytes .../external/L1_Kaiju_128x64/frame_22.png | Bin 1685 -> 873 bytes .../external/L1_Kaiju_128x64/frame_23.png | Bin 1680 -> 873 bytes .../external/L1_Kaiju_128x64/frame_24.png | Bin 1690 -> 876 bytes .../external/L1_Kaiju_128x64/frame_25.png | Bin 1658 -> 870 bytes .../external/L1_Kaiju_128x64/frame_26.png | Bin 1716 -> 884 bytes .../external/L1_Kaiju_128x64/frame_27.png | Bin 1741 -> 888 bytes .../external/L1_Kaiju_128x64/frame_28.png | Bin 1686 -> 865 bytes .../external/L1_Kaiju_128x64/frame_29.png | Bin 1626 -> 853 bytes .../external/L1_Kaiju_128x64/frame_3.png | Bin 1305 -> 660 bytes .../external/L1_Kaiju_128x64/frame_30.png | Bin 1677 -> 883 bytes .../external/L1_Kaiju_128x64/frame_31.png | Bin 1639 -> 854 bytes .../external/L1_Kaiju_128x64/frame_32.png | Bin 1618 -> 857 bytes .../external/L1_Kaiju_128x64/frame_33.png | Bin 1595 -> 820 bytes .../external/L1_Kaiju_128x64/frame_34.png | Bin 1591 -> 854 bytes .../external/L1_Kaiju_128x64/frame_35.png | Bin 1560 -> 841 bytes .../external/L1_Kaiju_128x64/frame_36.png | Bin 1592 -> 872 bytes .../external/L1_Kaiju_128x64/frame_37.png | Bin 1494 -> 832 bytes .../external/L1_Kaiju_128x64/frame_38.png | Bin 1489 -> 820 bytes .../external/L1_Kaiju_128x64/frame_39.png | Bin 1438 -> 798 bytes .../external/L1_Kaiju_128x64/frame_4.png | Bin 1284 -> 657 bytes .../external/L1_Kaiju_128x64/frame_40.png | Bin 1438 -> 835 bytes .../external/L1_Kaiju_128x64/frame_41.png | Bin 1412 -> 821 bytes .../external/L1_Kaiju_128x64/frame_42.png | Bin 1425 -> 839 bytes .../external/L1_Kaiju_128x64/frame_43.png | Bin 1397 -> 845 bytes .../external/L1_Kaiju_128x64/frame_44.png | Bin 1217 -> 622 bytes .../external/L1_Kaiju_128x64/frame_45.png | Bin 1177 -> 614 bytes .../external/L1_Kaiju_128x64/frame_46.png | Bin 1300 -> 655 bytes .../external/L1_Kaiju_128x64/frame_47.png | Bin 1268 -> 654 bytes .../external/L1_Kaiju_128x64/frame_5.png | Bin 1318 -> 665 bytes .../external/L1_Kaiju_128x64/frame_6.png | Bin 1312 -> 648 bytes .../external/L1_Kaiju_128x64/frame_7.png | Bin 1301 -> 660 bytes .../external/L1_Kaiju_128x64/frame_8.png | Bin 1308 -> 655 bytes .../external/L1_Kaiju_128x64/frame_9.png | Bin 1336 -> 666 bytes .../external/L1_Laptop_128x51/frame_0.png | Bin 4914 -> 565 bytes .../external/L1_Laptop_128x51/frame_1.png | Bin 4917 -> 568 bytes .../external/L1_Laptop_128x51/frame_2.png | Bin 4914 -> 569 bytes .../external/L1_Laptop_128x51/frame_3.png | Bin 4914 -> 564 bytes .../external/L1_Laptop_128x51/frame_4.png | Bin 4909 -> 566 bytes .../external/L1_Laptop_128x51/frame_5.png | Bin 4908 -> 561 bytes .../external/L1_Laptop_128x51/frame_6.png | Bin 4900 -> 563 bytes .../external/L1_Laptop_128x51/frame_7.png | Bin 4907 -> 562 bytes .../L1_Leaving_sad_128x64/frame_0.png | Bin 1575 -> 591 bytes .../L1_Leaving_sad_128x64/frame_1.png | Bin 1589 -> 600 bytes .../L1_Leaving_sad_128x64/frame_10.png | Bin 1386 -> 423 bytes .../L1_Leaving_sad_128x64/frame_11.png | Bin 1358 -> 392 bytes .../L1_Leaving_sad_128x64/frame_12.png | Bin 1365 -> 400 bytes .../L1_Leaving_sad_128x64/frame_2.png | Bin 1597 -> 619 bytes .../L1_Leaving_sad_128x64/frame_3.png | Bin 1617 -> 628 bytes .../L1_Leaving_sad_128x64/frame_4.png | Bin 1544 -> 562 bytes .../L1_Leaving_sad_128x64/frame_5.png | Bin 1523 -> 562 bytes .../L1_Leaving_sad_128x64/frame_6.png | Bin 1555 -> 571 bytes .../L1_Leaving_sad_128x64/frame_7.png | Bin 1574 -> 583 bytes .../L1_Leaving_sad_128x64/frame_8.png | Bin 1479 -> 492 bytes .../L1_Leaving_sad_128x64/frame_9.png | Bin 1382 -> 406 bytes .../external/L1_Mad_fist_128x64/frame_0.png | Bin 1556 -> 647 bytes .../external/L1_Mad_fist_128x64/frame_1.png | Bin 1580 -> 665 bytes .../external/L1_Mad_fist_128x64/frame_10.png | Bin 1606 -> 653 bytes .../external/L1_Mad_fist_128x64/frame_11.png | Bin 1556 -> 627 bytes .../external/L1_Mad_fist_128x64/frame_12.png | Bin 1541 -> 627 bytes .../external/L1_Mad_fist_128x64/frame_13.png | Bin 1545 -> 628 bytes .../external/L1_Mad_fist_128x64/frame_2.png | Bin 1558 -> 641 bytes .../external/L1_Mad_fist_128x64/frame_3.png | Bin 1583 -> 661 bytes .../external/L1_Mad_fist_128x64/frame_4.png | Bin 1560 -> 637 bytes .../external/L1_Mad_fist_128x64/frame_5.png | Bin 1557 -> 639 bytes .../external/L1_Mad_fist_128x64/frame_6.png | Bin 1581 -> 637 bytes .../external/L1_Mad_fist_128x64/frame_7.png | Bin 1575 -> 643 bytes .../external/L1_Mad_fist_128x64/frame_8.png | Bin 1581 -> 647 bytes .../external/L1_Mad_fist_128x64/frame_9.png | Bin 1584 -> 650 bytes .../external/L1_Mods_128x64/frame_0.png | Bin 4344 -> 673 bytes .../external/L1_Mods_128x64/frame_1.png | Bin 4351 -> 676 bytes .../external/L1_Mods_128x64/frame_10.png | Bin 4370 -> 685 bytes .../external/L1_Mods_128x64/frame_11.png | Bin 4342 -> 668 bytes .../external/L1_Mods_128x64/frame_12.png | Bin 4327 -> 659 bytes .../external/L1_Mods_128x64/frame_13.png | Bin 4363 -> 680 bytes .../external/L1_Mods_128x64/frame_14.png | Bin 4306 -> 656 bytes .../external/L1_Mods_128x64/frame_15.png | Bin 4325 -> 660 bytes .../external/L1_Mods_128x64/frame_16.png | Bin 4346 -> 679 bytes .../external/L1_Mods_128x64/frame_17.png | Bin 4338 -> 674 bytes .../external/L1_Mods_128x64/frame_18.png | Bin 4346 -> 674 bytes .../external/L1_Mods_128x64/frame_19.png | Bin 4339 -> 670 bytes .../external/L1_Mods_128x64/frame_2.png | Bin 4344 -> 676 bytes .../external/L1_Mods_128x64/frame_20.png | Bin 4314 -> 661 bytes .../external/L1_Mods_128x64/frame_21.png | Bin 2648 -> 694 bytes .../external/L1_Mods_128x64/frame_22.png | Bin 2733 -> 673 bytes .../external/L1_Mods_128x64/frame_23.png | Bin 3084 -> 688 bytes .../external/L1_Mods_128x64/frame_24.png | Bin 3236 -> 699 bytes .../external/L1_Mods_128x64/frame_25.png | Bin 3298 -> 700 bytes .../external/L1_Mods_128x64/frame_26.png | Bin 3363 -> 701 bytes .../external/L1_Mods_128x64/frame_27.png | Bin 3423 -> 696 bytes .../external/L1_Mods_128x64/frame_28.png | Bin 3371 -> 674 bytes .../external/L1_Mods_128x64/frame_29.png | Bin 3106 -> 685 bytes .../external/L1_Mods_128x64/frame_3.png | Bin 4341 -> 664 bytes .../external/L1_Mods_128x64/frame_30.png | Bin 3051 -> 660 bytes .../external/L1_Mods_128x64/frame_31.png | Bin 3072 -> 688 bytes .../external/L1_Mods_128x64/frame_32.png | Bin 3000 -> 631 bytes .../external/L1_Mods_128x64/frame_33.png | Bin 4149 -> 516 bytes .../external/L1_Mods_128x64/frame_34.png | Bin 4260 -> 626 bytes .../external/L1_Mods_128x64/frame_35.png | Bin 4376 -> 703 bytes .../external/L1_Mods_128x64/frame_36.png | Bin 4393 -> 697 bytes .../external/L1_Mods_128x64/frame_37.png | Bin 4380 -> 661 bytes .../external/L1_Mods_128x64/frame_38.png | Bin 4390 -> 662 bytes .../external/L1_Mods_128x64/frame_39.png | Bin 4383 -> 663 bytes .../external/L1_Mods_128x64/frame_4.png | Bin 4327 -> 666 bytes .../external/L1_Mods_128x64/frame_40.png | Bin 4402 -> 684 bytes .../external/L1_Mods_128x64/frame_41.png | Bin 4340 -> 635 bytes .../external/L1_Mods_128x64/frame_42.png | Bin 4253 -> 564 bytes .../external/L1_Mods_128x64/frame_43.png | Bin 4342 -> 635 bytes .../external/L1_Mods_128x64/frame_44.png | Bin 4315 -> 680 bytes .../external/L1_Mods_128x64/frame_45.png | Bin 4267 -> 618 bytes .../external/L1_Mods_128x64/frame_46.png | Bin 4301 -> 654 bytes .../external/L1_Mods_128x64/frame_47.png | Bin 4326 -> 669 bytes .../external/L1_Mods_128x64/frame_48.png | Bin 4313 -> 648 bytes .../external/L1_Mods_128x64/frame_5.png | Bin 4357 -> 680 bytes .../external/L1_Mods_128x64/frame_6.png | Bin 4334 -> 658 bytes .../external/L1_Mods_128x64/frame_7.png | Bin 4331 -> 655 bytes .../external/L1_Mods_128x64/frame_8.png | Bin 4352 -> 676 bytes .../external/L1_Mods_128x64/frame_9.png | Bin 4360 -> 682 bytes .../external/L1_My_dude_128x64/frame_0.png | Bin 1615 -> 811 bytes .../external/L1_My_dude_128x64/frame_1.png | Bin 1637 -> 838 bytes .../external/L1_My_dude_128x64/frame_10.png | Bin 1044 -> 631 bytes .../external/L1_My_dude_128x64/frame_11.png | Bin 990 -> 625 bytes .../external/L1_My_dude_128x64/frame_12.png | Bin 1100 -> 681 bytes .../external/L1_My_dude_128x64/frame_13.png | Bin 1494 -> 814 bytes .../external/L1_My_dude_128x64/frame_14.png | Bin 1460 -> 809 bytes .../external/L1_My_dude_128x64/frame_15.png | Bin 1440 -> 786 bytes .../external/L1_My_dude_128x64/frame_16.png | Bin 1210 -> 739 bytes .../external/L1_My_dude_128x64/frame_17.png | Bin 1399 -> 813 bytes .../external/L1_My_dude_128x64/frame_18.png | Bin 1454 -> 837 bytes .../external/L1_My_dude_128x64/frame_19.png | Bin 1648 -> 826 bytes .../external/L1_My_dude_128x64/frame_2.png | Bin 1629 -> 807 bytes .../external/L1_My_dude_128x64/frame_20.png | Bin 1433 -> 794 bytes .../external/L1_My_dude_128x64/frame_21.png | Bin 1032 -> 599 bytes .../external/L1_My_dude_128x64/frame_22.png | Bin 1054 -> 624 bytes .../external/L1_My_dude_128x64/frame_23.png | Bin 1050 -> 610 bytes .../external/L1_My_dude_128x64/frame_24.png | Bin 939 -> 574 bytes .../external/L1_My_dude_128x64/frame_25.png | Bin 1447 -> 764 bytes .../external/L1_My_dude_128x64/frame_26.png | Bin 1509 -> 798 bytes .../external/L1_My_dude_128x64/frame_27.png | Bin 1504 -> 789 bytes .../external/L1_My_dude_128x64/frame_28.png | Bin 1529 -> 789 bytes .../external/L1_My_dude_128x64/frame_29.png | Bin 1625 -> 835 bytes .../external/L1_My_dude_128x64/frame_3.png | Bin 1599 -> 802 bytes .../external/L1_My_dude_128x64/frame_30.png | Bin 1575 -> 826 bytes .../external/L1_My_dude_128x64/frame_31.png | Bin 1609 -> 824 bytes .../external/L1_My_dude_128x64/frame_32.png | Bin 1635 -> 827 bytes .../external/L1_My_dude_128x64/frame_33.png | Bin 1668 -> 842 bytes .../external/L1_My_dude_128x64/frame_34.png | Bin 1588 -> 824 bytes .../external/L1_My_dude_128x64/frame_35.png | Bin 1551 -> 811 bytes .../external/L1_My_dude_128x64/frame_36.png | Bin 1656 -> 847 bytes .../external/L1_My_dude_128x64/frame_37.png | Bin 1545 -> 818 bytes .../external/L1_My_dude_128x64/frame_38.png | Bin 1650 -> 821 bytes .../external/L1_My_dude_128x64/frame_39.png | Bin 1028 -> 560 bytes .../external/L1_My_dude_128x64/frame_4.png | Bin 1623 -> 843 bytes .../external/L1_My_dude_128x64/frame_40.png | Bin 1225 -> 673 bytes .../external/L1_My_dude_128x64/frame_41.png | Bin 1256 -> 788 bytes .../external/L1_My_dude_128x64/frame_42.png | Bin 1055 -> 701 bytes .../external/L1_My_dude_128x64/frame_43.png | Bin 831 -> 553 bytes .../external/L1_My_dude_128x64/frame_44.png | Bin 623 -> 383 bytes .../external/L1_My_dude_128x64/frame_45.png | Bin 556 -> 313 bytes .../external/L1_My_dude_128x64/frame_46.png | Bin 928 -> 545 bytes .../external/L1_My_dude_128x64/frame_47.png | Bin 1206 -> 724 bytes .../external/L1_My_dude_128x64/frame_48.png | Bin 1019 -> 625 bytes .../external/L1_My_dude_128x64/frame_5.png | Bin 1648 -> 828 bytes .../external/L1_My_dude_128x64/frame_6.png | Bin 1570 -> 780 bytes .../external/L1_My_dude_128x64/frame_7.png | Bin 1063 -> 640 bytes .../external/L1_My_dude_128x64/frame_8.png | Bin 1024 -> 636 bytes .../external/L1_My_dude_128x64/frame_9.png | Bin 1078 -> 664 bytes .../external/L1_Painting_128x64/frame_0.png | Bin 1607 -> 860 bytes .../external/L1_Painting_128x64/frame_1.png | Bin 1618 -> 848 bytes .../external/L1_Painting_128x64/frame_10.png | Bin 1606 -> 859 bytes .../external/L1_Painting_128x64/frame_11.png | Bin 1579 -> 850 bytes .../external/L1_Painting_128x64/frame_2.png | Bin 1608 -> 845 bytes .../external/L1_Painting_128x64/frame_3.png | Bin 1585 -> 851 bytes .../external/L1_Painting_128x64/frame_4.png | Bin 1600 -> 848 bytes .../external/L1_Painting_128x64/frame_5.png | Bin 1609 -> 840 bytes .../external/L1_Painting_128x64/frame_6.png | Bin 1588 -> 853 bytes .../external/L1_Painting_128x64/frame_7.png | Bin 1630 -> 858 bytes .../external/L1_Painting_128x64/frame_8.png | Bin 1623 -> 859 bytes .../external/L1_Painting_128x64/frame_9.png | Bin 1614 -> 851 bytes .../external/L1_Read_books_128x64/frame_0.png | Bin 1762 -> 762 bytes .../external/L1_Read_books_128x64/frame_1.png | Bin 1762 -> 761 bytes .../external/L1_Read_books_128x64/frame_2.png | Bin 1756 -> 763 bytes .../external/L1_Read_books_128x64/frame_3.png | Bin 1759 -> 768 bytes .../external/L1_Read_books_128x64/frame_4.png | Bin 1771 -> 772 bytes .../external/L1_Read_books_128x64/frame_5.png | Bin 1754 -> 755 bytes .../external/L1_Read_books_128x64/frame_6.png | Bin 1750 -> 755 bytes .../external/L1_Read_books_128x64/frame_7.png | Bin 1747 -> 759 bytes .../external/L1_Read_books_128x64/frame_8.png | Bin 1750 -> 763 bytes .../external/L1_Recording_128x51/frame_0.png | Bin 1752 -> 668 bytes .../external/L1_Recording_128x51/frame_1.png | Bin 1742 -> 665 bytes .../external/L1_Recording_128x51/frame_10.png | Bin 1708 -> 681 bytes .../external/L1_Recording_128x51/frame_11.png | Bin 1745 -> 664 bytes .../external/L1_Recording_128x51/frame_2.png | Bin 1688 -> 679 bytes .../external/L1_Recording_128x51/frame_3.png | Bin 1745 -> 663 bytes .../external/L1_Recording_128x51/frame_4.png | Bin 1735 -> 686 bytes .../external/L1_Recording_128x51/frame_5.png | Bin 1691 -> 665 bytes .../external/L1_Recording_128x51/frame_6.png | Bin 1752 -> 671 bytes .../external/L1_Recording_128x51/frame_7.png | Bin 1689 -> 666 bytes .../external/L1_Recording_128x51/frame_8.png | Bin 1766 -> 682 bytes .../external/L1_Recording_128x51/frame_9.png | Bin 1732 -> 668 bytes .../external/L1_Sad_song_128x64/frame_0.png | Bin 1464 -> 723 bytes .../external/L1_Sad_song_128x64/frame_1.png | Bin 1442 -> 719 bytes .../external/L1_Sad_song_128x64/frame_10.png | Bin 1044 -> 568 bytes .../external/L1_Sad_song_128x64/frame_11.png | Bin 1069 -> 578 bytes .../external/L1_Sad_song_128x64/frame_12.png | Bin 980 -> 538 bytes .../external/L1_Sad_song_128x64/frame_13.png | Bin 1150 -> 611 bytes .../external/L1_Sad_song_128x64/frame_14.png | Bin 1153 -> 603 bytes .../external/L1_Sad_song_128x64/frame_15.png | Bin 1137 -> 602 bytes .../external/L1_Sad_song_128x64/frame_16.png | Bin 979 -> 541 bytes .../external/L1_Sad_song_128x64/frame_17.png | Bin 988 -> 546 bytes .../external/L1_Sad_song_128x64/frame_18.png | Bin 1049 -> 556 bytes .../external/L1_Sad_song_128x64/frame_19.png | Bin 259 -> 75 bytes .../external/L1_Sad_song_128x64/frame_2.png | Bin 1483 -> 719 bytes .../external/L1_Sad_song_128x64/frame_20.png | Bin 922 -> 489 bytes .../external/L1_Sad_song_128x64/frame_21.png | Bin 895 -> 472 bytes .../external/L1_Sad_song_128x64/frame_22.png | Bin 831 -> 444 bytes .../external/L1_Sad_song_128x64/frame_23.png | Bin 803 -> 425 bytes .../external/L1_Sad_song_128x64/frame_24.png | Bin 859 -> 442 bytes .../external/L1_Sad_song_128x64/frame_25.png | Bin 854 -> 441 bytes .../external/L1_Sad_song_128x64/frame_26.png | Bin 821 -> 427 bytes .../external/L1_Sad_song_128x64/frame_27.png | Bin 791 -> 416 bytes .../external/L1_Sad_song_128x64/frame_28.png | Bin 871 -> 447 bytes .../external/L1_Sad_song_128x64/frame_29.png | Bin 954 -> 495 bytes .../external/L1_Sad_song_128x64/frame_3.png | Bin 1470 -> 720 bytes .../external/L1_Sad_song_128x64/frame_30.png | Bin 871 -> 451 bytes .../external/L1_Sad_song_128x64/frame_31.png | Bin 926 -> 472 bytes .../external/L1_Sad_song_128x64/frame_32.png | Bin 889 -> 453 bytes .../external/L1_Sad_song_128x64/frame_33.png | Bin 933 -> 483 bytes .../external/L1_Sad_song_128x64/frame_34.png | Bin 873 -> 444 bytes .../external/L1_Sad_song_128x64/frame_35.png | Bin 907 -> 451 bytes .../external/L1_Sad_song_128x64/frame_36.png | Bin 803 -> 392 bytes .../external/L1_Sad_song_128x64/frame_37.png | Bin 769 -> 395 bytes .../external/L1_Sad_song_128x64/frame_38.png | Bin 909 -> 449 bytes .../external/L1_Sad_song_128x64/frame_39.png | Bin 915 -> 471 bytes .../external/L1_Sad_song_128x64/frame_4.png | Bin 1442 -> 730 bytes .../external/L1_Sad_song_128x64/frame_40.png | Bin 918 -> 463 bytes .../external/L1_Sad_song_128x64/frame_41.png | Bin 883 -> 441 bytes .../external/L1_Sad_song_128x64/frame_42.png | Bin 1020 -> 523 bytes .../external/L1_Sad_song_128x64/frame_43.png | Bin 788 -> 459 bytes .../external/L1_Sad_song_128x64/frame_44.png | Bin 997 -> 598 bytes .../external/L1_Sad_song_128x64/frame_45.png | Bin 1061 -> 634 bytes .../external/L1_Sad_song_128x64/frame_46.png | Bin 949 -> 571 bytes .../external/L1_Sad_song_128x64/frame_47.png | Bin 1084 -> 651 bytes .../external/L1_Sad_song_128x64/frame_48.png | Bin 1016 -> 584 bytes .../external/L1_Sad_song_128x64/frame_49.png | Bin 1092 -> 664 bytes .../external/L1_Sad_song_128x64/frame_5.png | Bin 1453 -> 718 bytes .../external/L1_Sad_song_128x64/frame_50.png | Bin 988 -> 582 bytes .../external/L1_Sad_song_128x64/frame_51.png | Bin 1159 -> 682 bytes .../external/L1_Sad_song_128x64/frame_52.png | Bin 991 -> 586 bytes .../external/L1_Sad_song_128x64/frame_53.png | Bin 778 -> 404 bytes .../external/L1_Sad_song_128x64/frame_54.png | Bin 830 -> 429 bytes .../external/L1_Sad_song_128x64/frame_55.png | Bin 720 -> 361 bytes .../external/L1_Sad_song_128x64/frame_56.png | Bin 576 -> 275 bytes .../external/L1_Sad_song_128x64/frame_57.png | Bin 398 -> 178 bytes .../external/L1_Sad_song_128x64/frame_58.png | Bin 474 -> 208 bytes .../external/L1_Sad_song_128x64/frame_59.png | Bin 970 -> 470 bytes .../external/L1_Sad_song_128x64/frame_6.png | Bin 1487 -> 722 bytes .../external/L1_Sad_song_128x64/frame_60.png | Bin 1370 -> 683 bytes .../external/L1_Sad_song_128x64/frame_61.png | Bin 1578 -> 737 bytes .../external/L1_Sad_song_128x64/frame_62.png | Bin 1508 -> 753 bytes .../external/L1_Sad_song_128x64/frame_7.png | Bin 1480 -> 721 bytes .../external/L1_Sad_song_128x64/frame_8.png | Bin 1438 -> 730 bytes .../external/L1_Sad_song_128x64/frame_9.png | Bin 1480 -> 728 bytes .../external/L1_Senpai_128x64/frame_0.png | Bin 1756 -> 805 bytes .../external/L1_Senpai_128x64/frame_1.png | Bin 1841 -> 839 bytes .../external/L1_Senpai_128x64/frame_10.png | Bin 1846 -> 849 bytes .../external/L1_Senpai_128x64/frame_11.png | Bin 1824 -> 833 bytes .../external/L1_Senpai_128x64/frame_12.png | Bin 1826 -> 835 bytes .../external/L1_Senpai_128x64/frame_13.png | Bin 1862 -> 855 bytes .../external/L1_Senpai_128x64/frame_14.png | Bin 1815 -> 835 bytes .../external/L1_Senpai_128x64/frame_15.png | Bin 1855 -> 844 bytes .../external/L1_Senpai_128x64/frame_16.png | Bin 2009 -> 903 bytes .../external/L1_Senpai_128x64/frame_17.png | Bin 1918 -> 880 bytes .../external/L1_Senpai_128x64/frame_18.png | Bin 1686 -> 789 bytes .../external/L1_Senpai_128x64/frame_19.png | Bin 1593 -> 781 bytes .../external/L1_Senpai_128x64/frame_2.png | Bin 1879 -> 858 bytes .../external/L1_Senpai_128x64/frame_20.png | Bin 1281 -> 632 bytes .../external/L1_Senpai_128x64/frame_21.png | Bin 1318 -> 647 bytes .../external/L1_Senpai_128x64/frame_22.png | Bin 1102 -> 566 bytes .../external/L1_Senpai_128x64/frame_23.png | Bin 1537 -> 744 bytes .../external/L1_Senpai_128x64/frame_24.png | Bin 1414 -> 704 bytes .../external/L1_Senpai_128x64/frame_25.png | Bin 1486 -> 733 bytes .../external/L1_Senpai_128x64/frame_26.png | Bin 1364 -> 659 bytes .../external/L1_Senpai_128x64/frame_27.png | Bin 1325 -> 654 bytes .../external/L1_Senpai_128x64/frame_28.png | Bin 1278 -> 604 bytes .../external/L1_Senpai_128x64/frame_29.png | Bin 1179 -> 586 bytes .../external/L1_Senpai_128x64/frame_3.png | Bin 1861 -> 842 bytes .../external/L1_Senpai_128x64/frame_30.png | Bin 1198 -> 614 bytes .../external/L1_Senpai_128x64/frame_31.png | Bin 1204 -> 593 bytes .../external/L1_Senpai_128x64/frame_32.png | Bin 1248 -> 592 bytes .../external/L1_Senpai_128x64/frame_33.png | Bin 1669 -> 765 bytes .../external/L1_Senpai_128x64/frame_34.png | Bin 1767 -> 804 bytes .../external/L1_Senpai_128x64/frame_35.png | Bin 1832 -> 836 bytes .../external/L1_Senpai_128x64/frame_4.png | Bin 1769 -> 813 bytes .../external/L1_Senpai_128x64/frame_5.png | Bin 1869 -> 853 bytes .../external/L1_Senpai_128x64/frame_6.png | Bin 1893 -> 859 bytes .../external/L1_Senpai_128x64/frame_7.png | Bin 1835 -> 841 bytes .../external/L1_Senpai_128x64/frame_8.png | Bin 1772 -> 807 bytes .../external/L1_Senpai_128x64/frame_9.png | Bin 1827 -> 838 bytes .../external/L1_Sleep_128x64/frame_0.png | Bin 1542 -> 583 bytes .../external/L1_Sleep_128x64/frame_1.png | Bin 1552 -> 584 bytes .../external/L1_Sleep_128x64/frame_2.png | Bin 1552 -> 594 bytes .../external/L1_Sleep_128x64/frame_3.png | Bin 1563 -> 599 bytes .../external/L1_Waves_128x50/frame_0.png | Bin 2272 -> 552 bytes .../external/L1_Waves_128x50/frame_1.png | Bin 2282 -> 557 bytes .../external/L1_Waves_128x50/frame_2.png | Bin 1446 -> 558 bytes .../external/L1_Waves_128x50/frame_3.png | Bin 1446 -> 561 bytes .../L2_Coding_in_the_shell_128x64/frame_0.png | Bin 1074 -> 580 bytes .../L2_Coding_in_the_shell_128x64/frame_1.png | Bin 1076 -> 575 bytes .../frame_10.png | Bin 1209 -> 620 bytes .../frame_11.png | Bin 1231 -> 620 bytes .../frame_12.png | Bin 1229 -> 619 bytes .../frame_13.png | Bin 1182 -> 600 bytes .../frame_14.png | Bin 968 -> 531 bytes .../frame_15.png | Bin 971 -> 533 bytes .../frame_16.png | Bin 1160 -> 614 bytes .../frame_17.png | Bin 1082 -> 574 bytes .../frame_18.png | Bin 1068 -> 569 bytes .../frame_19.png | Bin 1123 -> 583 bytes .../L2_Coding_in_the_shell_128x64/frame_2.png | Bin 1122 -> 600 bytes .../frame_20.png | Bin 1153 -> 664 bytes .../frame_21.png | Bin 1134 -> 635 bytes .../frame_22.png | Bin 1021 -> 637 bytes .../frame_23.png | Bin 929 -> 588 bytes .../frame_24.png | Bin 856 -> 558 bytes .../frame_25.png | Bin 1499 -> 782 bytes .../frame_26.png | Bin 1408 -> 746 bytes .../frame_27.png | Bin 1367 -> 724 bytes .../frame_28.png | Bin 1882 -> 934 bytes .../frame_29.png | Bin 1757 -> 840 bytes .../L2_Coding_in_the_shell_128x64/frame_3.png | Bin 1115 -> 601 bytes .../frame_30.png | Bin 1426 -> 732 bytes .../frame_31.png | Bin 1423 -> 732 bytes .../frame_32.png | Bin 1482 -> 725 bytes .../frame_33.png | Bin 1518 -> 811 bytes .../frame_34.png | Bin 1539 -> 806 bytes .../frame_35.png | Bin 1536 -> 800 bytes .../frame_36.png | Bin 1539 -> 794 bytes .../frame_37.png | Bin 1528 -> 815 bytes .../frame_38.png | Bin 1837 -> 911 bytes .../frame_39.png | Bin 1780 -> 896 bytes .../L2_Coding_in_the_shell_128x64/frame_4.png | Bin 1144 -> 606 bytes .../frame_40.png | Bin 1778 -> 907 bytes .../frame_41.png | Bin 1770 -> 908 bytes .../frame_42.png | Bin 1741 -> 887 bytes .../frame_43.png | Bin 1004 -> 557 bytes .../frame_44.png | Bin 1025 -> 557 bytes .../frame_45.png | Bin 645 -> 378 bytes .../frame_46.png | Bin 837 -> 463 bytes .../frame_47.png | Bin 820 -> 464 bytes .../frame_48.png | Bin 925 -> 517 bytes .../frame_49.png | Bin 911 -> 510 bytes .../L2_Coding_in_the_shell_128x64/frame_5.png | Bin 1126 -> 600 bytes .../frame_50.png | Bin 880 -> 487 bytes .../frame_51.png | Bin 837 -> 466 bytes .../frame_52.png | Bin 876 -> 482 bytes .../frame_53.png | Bin 820 -> 466 bytes .../frame_54.png | Bin 913 -> 509 bytes .../frame_55.png | Bin 1080 -> 596 bytes .../frame_56.png | Bin 1026 -> 554 bytes .../frame_57.png | Bin 1132 -> 586 bytes .../frame_58.png | Bin 974 -> 513 bytes .../frame_59.png | Bin 1309 -> 688 bytes .../L2_Coding_in_the_shell_128x64/frame_6.png | Bin 1077 -> 587 bytes .../frame_60.png | Bin 1269 -> 648 bytes .../frame_61.png | Bin 1011 -> 563 bytes .../L2_Coding_in_the_shell_128x64/frame_7.png | Bin 988 -> 541 bytes .../L2_Coding_in_the_shell_128x64/frame_8.png | Bin 1201 -> 602 bytes .../L2_Coding_in_the_shell_128x64/frame_9.png | Bin 1214 -> 617 bytes .../dolphin/external/L2_Dj_128x64/frame_0.png | Bin 1640 -> 596 bytes .../dolphin/external/L2_Dj_128x64/frame_1.png | Bin 1687 -> 615 bytes .../external/L2_Dj_128x64/frame_10.png | Bin 1630 -> 609 bytes .../external/L2_Dj_128x64/frame_11.png | Bin 1660 -> 612 bytes .../external/L2_Dj_128x64/frame_12.png | Bin 1637 -> 595 bytes .../external/L2_Dj_128x64/frame_13.png | Bin 1654 -> 610 bytes .../external/L2_Dj_128x64/frame_14.png | Bin 1667 -> 622 bytes .../external/L2_Dj_128x64/frame_15.png | Bin 1344 -> 337 bytes .../external/L2_Dj_128x64/frame_16.png | Bin 1251 -> 278 bytes .../external/L2_Dj_128x64/frame_17.png | Bin 1292 -> 327 bytes .../external/L2_Dj_128x64/frame_18.png | Bin 1498 -> 516 bytes .../external/L2_Dj_128x64/frame_19.png | Bin 1530 -> 574 bytes .../dolphin/external/L2_Dj_128x64/frame_2.png | Bin 1726 -> 668 bytes .../external/L2_Dj_128x64/frame_20.png | Bin 1698 -> 684 bytes .../external/L2_Dj_128x64/frame_21.png | Bin 1665 -> 636 bytes .../external/L2_Dj_128x64/frame_22.png | Bin 1809 -> 747 bytes .../external/L2_Dj_128x64/frame_23.png | Bin 1775 -> 704 bytes .../external/L2_Dj_128x64/frame_24.png | Bin 1758 -> 739 bytes .../external/L2_Dj_128x64/frame_25.png | Bin 1725 -> 617 bytes .../external/L2_Dj_128x64/frame_26.png | Bin 1835 -> 709 bytes .../external/L2_Dj_128x64/frame_27.png | Bin 1759 -> 637 bytes .../external/L2_Dj_128x64/frame_28.png | Bin 1462 -> 458 bytes .../external/L2_Dj_128x64/frame_29.png | Bin 1407 -> 422 bytes .../dolphin/external/L2_Dj_128x64/frame_3.png | Bin 1777 -> 722 bytes .../external/L2_Dj_128x64/frame_30.png | Bin 1408 -> 404 bytes .../external/L2_Dj_128x64/frame_31.png | Bin 1404 -> 425 bytes .../external/L2_Dj_128x64/frame_32.png | Bin 1327 -> 307 bytes .../external/L2_Dj_128x64/frame_33.png | Bin 1306 -> 298 bytes .../external/L2_Dj_128x64/frame_34.png | Bin 1341 -> 453 bytes .../external/L2_Dj_128x64/frame_35.png | Bin 1255 -> 290 bytes .../external/L2_Dj_128x64/frame_36.png | Bin 1059 -> 75 bytes .../dolphin/external/L2_Dj_128x64/frame_4.png | Bin 1727 -> 705 bytes .../dolphin/external/L2_Dj_128x64/frame_5.png | Bin 1641 -> 623 bytes .../dolphin/external/L2_Dj_128x64/frame_6.png | Bin 1635 -> 613 bytes .../dolphin/external/L2_Dj_128x64/frame_7.png | Bin 1588 -> 557 bytes .../dolphin/external/L2_Dj_128x64/frame_8.png | Bin 1608 -> 582 bytes .../dolphin/external/L2_Dj_128x64/frame_9.png | Bin 1610 -> 595 bytes .../external/L2_Furippa2_128x64/frame_0.png | Bin 1389 -> 447 bytes .../external/L2_Furippa2_128x64/frame_1.png | Bin 1417 -> 466 bytes .../external/L2_Furippa2_128x64/frame_10.png | Bin 1524 -> 546 bytes .../external/L2_Furippa2_128x64/frame_11.png | Bin 1782 -> 722 bytes .../external/L2_Furippa2_128x64/frame_12.png | Bin 1607 -> 531 bytes .../external/L2_Furippa2_128x64/frame_13.png | Bin 1679 -> 594 bytes .../external/L2_Furippa2_128x64/frame_14.png | Bin 1714 -> 652 bytes .../external/L2_Furippa2_128x64/frame_15.png | Bin 1795 -> 732 bytes .../external/L2_Furippa2_128x64/frame_16.png | Bin 1549 -> 575 bytes .../external/L2_Furippa2_128x64/frame_17.png | Bin 1514 -> 568 bytes .../external/L2_Furippa2_128x64/frame_18.png | Bin 1441 -> 514 bytes .../external/L2_Furippa2_128x64/frame_2.png | Bin 1421 -> 480 bytes .../external/L2_Furippa2_128x64/frame_3.png | Bin 1411 -> 465 bytes .../external/L2_Furippa2_128x64/frame_4.png | Bin 1454 -> 506 bytes .../external/L2_Furippa2_128x64/frame_5.png | Bin 1459 -> 511 bytes .../external/L2_Furippa2_128x64/frame_6.png | Bin 1465 -> 524 bytes .../external/L2_Furippa2_128x64/frame_7.png | Bin 1389 -> 447 bytes .../external/L2_Furippa2_128x64/frame_8.png | Bin 1348 -> 408 bytes .../external/L2_Furippa2_128x64/frame_9.png | Bin 1347 -> 423 bytes .../external/L2_Hacking_pc_128x64/frame_0.png | Bin 1604 -> 571 bytes .../external/L2_Hacking_pc_128x64/frame_1.png | Bin 1601 -> 590 bytes .../external/L2_Hacking_pc_128x64/frame_2.png | Bin 1606 -> 574 bytes .../external/L2_Hacking_pc_128x64/frame_3.png | Bin 1654 -> 617 bytes .../external/L2_Hacking_pc_128x64/frame_4.png | Bin 1658 -> 616 bytes .../L2_Secret_door_128x64/frame_0.png | Bin 1648 -> 846 bytes .../L2_Secret_door_128x64/frame_1.png | Bin 1655 -> 820 bytes .../L2_Secret_door_128x64/frame_10.png | Bin 1552 -> 806 bytes .../L2_Secret_door_128x64/frame_11.png | Bin 1548 -> 773 bytes .../L2_Secret_door_128x64/frame_12.png | Bin 1577 -> 780 bytes .../L2_Secret_door_128x64/frame_13.png | Bin 1541 -> 785 bytes .../L2_Secret_door_128x64/frame_14.png | Bin 1578 -> 797 bytes .../L2_Secret_door_128x64/frame_15.png | Bin 1897 -> 965 bytes .../L2_Secret_door_128x64/frame_16.png | Bin 1918 -> 945 bytes .../L2_Secret_door_128x64/frame_17.png | Bin 1882 -> 948 bytes .../L2_Secret_door_128x64/frame_18.png | Bin 1907 -> 961 bytes .../L2_Secret_door_128x64/frame_19.png | Bin 1974 -> 960 bytes .../L2_Secret_door_128x64/frame_2.png | Bin 1636 -> 832 bytes .../L2_Secret_door_128x64/frame_20.png | Bin 1937 -> 953 bytes .../L2_Secret_door_128x64/frame_21.png | Bin 1894 -> 954 bytes .../L2_Secret_door_128x64/frame_22.png | Bin 1923 -> 946 bytes .../L2_Secret_door_128x64/frame_23.png | Bin 1966 -> 963 bytes .../L2_Secret_door_128x64/frame_24.png | Bin 1958 -> 973 bytes .../L2_Secret_door_128x64/frame_25.png | Bin 1946 -> 958 bytes .../L2_Secret_door_128x64/frame_26.png | Bin 1881 -> 942 bytes .../L2_Secret_door_128x64/frame_27.png | Bin 1902 -> 952 bytes .../L2_Secret_door_128x64/frame_28.png | Bin 1969 -> 960 bytes .../L2_Secret_door_128x64/frame_29.png | Bin 2094 -> 1023 bytes .../L2_Secret_door_128x64/frame_3.png | Bin 1599 -> 816 bytes .../L2_Secret_door_128x64/frame_30.png | Bin 2028 -> 987 bytes .../L2_Secret_door_128x64/frame_31.png | Bin 1922 -> 949 bytes .../L2_Secret_door_128x64/frame_32.png | Bin 1900 -> 933 bytes .../L2_Secret_door_128x64/frame_33.png | Bin 1938 -> 966 bytes .../L2_Secret_door_128x64/frame_34.png | Bin 1923 -> 947 bytes .../L2_Secret_door_128x64/frame_35.png | Bin 1913 -> 949 bytes .../L2_Secret_door_128x64/frame_36.png | Bin 1937 -> 955 bytes .../L2_Secret_door_128x64/frame_37.png | Bin 1944 -> 964 bytes .../L2_Secret_door_128x64/frame_38.png | Bin 1683 -> 829 bytes .../L2_Secret_door_128x64/frame_39.png | Bin 1662 -> 898 bytes .../L2_Secret_door_128x64/frame_4.png | Bin 1618 -> 815 bytes .../L2_Secret_door_128x64/frame_40.png | Bin 1725 -> 897 bytes .../L2_Secret_door_128x64/frame_41.png | Bin 1654 -> 882 bytes .../L2_Secret_door_128x64/frame_42.png | Bin 1495 -> 827 bytes .../L2_Secret_door_128x64/frame_43.png | Bin 1440 -> 816 bytes .../L2_Secret_door_128x64/frame_44.png | Bin 1445 -> 824 bytes .../L2_Secret_door_128x64/frame_45.png | Bin 1464 -> 841 bytes .../L2_Secret_door_128x64/frame_46.png | Bin 1446 -> 814 bytes .../L2_Secret_door_128x64/frame_47.png | Bin 1369 -> 773 bytes .../L2_Secret_door_128x64/frame_48.png | Bin 1529 -> 845 bytes .../L2_Secret_door_128x64/frame_49.png | Bin 1851 -> 996 bytes .../L2_Secret_door_128x64/frame_5.png | Bin 1625 -> 820 bytes .../L2_Secret_door_128x64/frame_50.png | Bin 2132 -> 1043 bytes .../L2_Secret_door_128x64/frame_51.png | Bin 2258 -> 1075 bytes .../L2_Secret_door_128x64/frame_52.png | Bin 1615 -> 809 bytes .../L2_Secret_door_128x64/frame_6.png | Bin 1591 -> 802 bytes .../L2_Secret_door_128x64/frame_7.png | Bin 1671 -> 830 bytes .../L2_Secret_door_128x64/frame_8.png | Bin 1612 -> 824 bytes .../L2_Secret_door_128x64/frame_9.png | Bin 1575 -> 818 bytes .../external/L2_Soldering_128x64/frame_0.png | Bin 1778 -> 738 bytes .../external/L2_Soldering_128x64/frame_1.png | Bin 1768 -> 738 bytes .../external/L2_Soldering_128x64/frame_10.png | Bin 1781 -> 744 bytes .../external/L2_Soldering_128x64/frame_2.png | Bin 1779 -> 738 bytes .../external/L2_Soldering_128x64/frame_3.png | Bin 1778 -> 741 bytes .../external/L2_Soldering_128x64/frame_4.png | Bin 1784 -> 738 bytes .../external/L2_Soldering_128x64/frame_5.png | Bin 1782 -> 745 bytes .../external/L2_Soldering_128x64/frame_6.png | Bin 1799 -> 748 bytes .../external/L2_Soldering_128x64/frame_7.png | Bin 1797 -> 748 bytes .../external/L2_Soldering_128x64/frame_8.png | Bin 1798 -> 747 bytes .../external/L2_Soldering_128x64/frame_9.png | Bin 1778 -> 739 bytes .../external/L2_Wake_up_128x64/frame_0.png | Bin 4779 -> 817 bytes .../external/L2_Wake_up_128x64/frame_1.png | Bin 4782 -> 825 bytes .../external/L2_Wake_up_128x64/frame_10.png | Bin 4835 -> 790 bytes .../external/L2_Wake_up_128x64/frame_11.png | Bin 4838 -> 809 bytes .../external/L2_Wake_up_128x64/frame_12.png | Bin 4775 -> 743 bytes .../external/L2_Wake_up_128x64/frame_13.png | Bin 4783 -> 719 bytes .../external/L2_Wake_up_128x64/frame_14.png | Bin 4722 -> 730 bytes .../external/L2_Wake_up_128x64/frame_15.png | Bin 4742 -> 755 bytes .../external/L2_Wake_up_128x64/frame_16.png | Bin 4639 -> 717 bytes .../external/L2_Wake_up_128x64/frame_17.png | Bin 3796 -> 204 bytes .../external/L2_Wake_up_128x64/frame_18.png | Bin 3834 -> 251 bytes .../external/L2_Wake_up_128x64/frame_19.png | Bin 4664 -> 789 bytes .../external/L2_Wake_up_128x64/frame_2.png | Bin 4785 -> 824 bytes .../external/L2_Wake_up_128x64/frame_20.png | Bin 4779 -> 838 bytes .../external/L2_Wake_up_128x64/frame_3.png | Bin 4793 -> 821 bytes .../external/L2_Wake_up_128x64/frame_4.png | Bin 4815 -> 833 bytes .../external/L2_Wake_up_128x64/frame_5.png | Bin 1743 -> 825 bytes .../external/L2_Wake_up_128x64/frame_6.png | Bin 1630 -> 775 bytes .../external/L2_Wake_up_128x64/frame_7.png | Bin 4722 -> 739 bytes .../external/L2_Wake_up_128x64/frame_8.png | Bin 4731 -> 728 bytes .../external/L2_Wake_up_128x64/frame_9.png | Bin 4656 -> 708 bytes .../L3_Freedom_2_dolphins_128x64/frame_0.png | Bin 1059 -> 593 bytes .../L3_Freedom_2_dolphins_128x64/frame_1.png | Bin 1114 -> 624 bytes .../L3_Freedom_2_dolphins_128x64/frame_10.png | Bin 1451 -> 769 bytes .../L3_Freedom_2_dolphins_128x64/frame_11.png | Bin 1300 -> 713 bytes .../L3_Freedom_2_dolphins_128x64/frame_12.png | Bin 1666 -> 857 bytes .../L3_Freedom_2_dolphins_128x64/frame_13.png | Bin 1946 -> 947 bytes .../L3_Freedom_2_dolphins_128x64/frame_14.png | Bin 1929 -> 949 bytes .../L3_Freedom_2_dolphins_128x64/frame_15.png | Bin 1929 -> 955 bytes .../L3_Freedom_2_dolphins_128x64/frame_16.png | Bin 1850 -> 938 bytes .../L3_Freedom_2_dolphins_128x64/frame_17.png | Bin 1872 -> 930 bytes .../L3_Freedom_2_dolphins_128x64/frame_18.png | Bin 1715 -> 881 bytes .../L3_Freedom_2_dolphins_128x64/frame_19.png | Bin 2446 -> 1122 bytes .../L3_Freedom_2_dolphins_128x64/frame_2.png | Bin 1592 -> 802 bytes .../L3_Freedom_2_dolphins_128x64/frame_20.png | Bin 2383 -> 1091 bytes .../L3_Freedom_2_dolphins_128x64/frame_21.png | Bin 2399 -> 1090 bytes .../L3_Freedom_2_dolphins_128x64/frame_22.png | Bin 2396 -> 1108 bytes .../L3_Freedom_2_dolphins_128x64/frame_23.png | Bin 2398 -> 1094 bytes .../L3_Freedom_2_dolphins_128x64/frame_24.png | Bin 2394 -> 1107 bytes .../L3_Freedom_2_dolphins_128x64/frame_25.png | Bin 2418 -> 1111 bytes .../L3_Freedom_2_dolphins_128x64/frame_26.png | Bin 2434 -> 1105 bytes .../L3_Freedom_2_dolphins_128x64/frame_27.png | Bin 2434 -> 1106 bytes .../L3_Freedom_2_dolphins_128x64/frame_28.png | Bin 1835 -> 967 bytes .../L3_Freedom_2_dolphins_128x64/frame_29.png | Bin 1852 -> 936 bytes .../L3_Freedom_2_dolphins_128x64/frame_3.png | Bin 1553 -> 814 bytes .../L3_Freedom_2_dolphins_128x64/frame_30.png | Bin 1829 -> 953 bytes .../L3_Freedom_2_dolphins_128x64/frame_31.png | Bin 1882 -> 961 bytes .../L3_Freedom_2_dolphins_128x64/frame_32.png | Bin 1888 -> 966 bytes .../L3_Freedom_2_dolphins_128x64/frame_33.png | Bin 1878 -> 955 bytes .../L3_Freedom_2_dolphins_128x64/frame_34.png | Bin 2056 -> 1001 bytes .../L3_Freedom_2_dolphins_128x64/frame_35.png | Bin 2048 -> 1026 bytes .../L3_Freedom_2_dolphins_128x64/frame_36.png | Bin 2042 -> 1006 bytes .../L3_Freedom_2_dolphins_128x64/frame_37.png | Bin 2062 -> 1020 bytes .../L3_Freedom_2_dolphins_128x64/frame_38.png | Bin 2073 -> 1007 bytes .../L3_Freedom_2_dolphins_128x64/frame_39.png | Bin 2000 -> 990 bytes .../L3_Freedom_2_dolphins_128x64/frame_4.png | Bin 1551 -> 805 bytes .../L3_Freedom_2_dolphins_128x64/frame_40.png | Bin 2127 -> 1028 bytes .../L3_Freedom_2_dolphins_128x64/frame_41.png | Bin 1602 -> 789 bytes .../L3_Freedom_2_dolphins_128x64/frame_42.png | Bin 1463 -> 750 bytes .../L3_Freedom_2_dolphins_128x64/frame_43.png | Bin 1556 -> 795 bytes .../L3_Freedom_2_dolphins_128x64/frame_44.png | Bin 1850 -> 931 bytes .../L3_Freedom_2_dolphins_128x64/frame_45.png | Bin 2130 -> 1052 bytes .../L3_Freedom_2_dolphins_128x64/frame_46.png | Bin 2139 -> 1061 bytes .../L3_Freedom_2_dolphins_128x64/frame_47.png | Bin 2155 -> 1058 bytes .../L3_Freedom_2_dolphins_128x64/frame_48.png | Bin 2179 -> 1063 bytes .../L3_Freedom_2_dolphins_128x64/frame_49.png | Bin 2132 -> 1063 bytes .../L3_Freedom_2_dolphins_128x64/frame_5.png | Bin 1490 -> 781 bytes .../L3_Freedom_2_dolphins_128x64/frame_50.png | Bin 2191 -> 1065 bytes .../L3_Freedom_2_dolphins_128x64/frame_51.png | Bin 2165 -> 1065 bytes .../L3_Freedom_2_dolphins_128x64/frame_52.png | Bin 2205 -> 1069 bytes .../L3_Freedom_2_dolphins_128x64/frame_53.png | Bin 2151 -> 1058 bytes .../L3_Freedom_2_dolphins_128x64/frame_54.png | Bin 2146 -> 1058 bytes .../L3_Freedom_2_dolphins_128x64/frame_55.png | Bin 1952 -> 1001 bytes .../L3_Freedom_2_dolphins_128x64/frame_56.png | Bin 1878 -> 958 bytes .../L3_Freedom_2_dolphins_128x64/frame_6.png | Bin 1592 -> 788 bytes .../L3_Freedom_2_dolphins_128x64/frame_7.png | Bin 1537 -> 792 bytes .../L3_Freedom_2_dolphins_128x64/frame_8.png | Bin 1460 -> 778 bytes .../L3_Freedom_2_dolphins_128x64/frame_9.png | Bin 1490 -> 774 bytes .../external/L3_Furippa3_128x64/frame_0.png | Bin 1442 -> 476 bytes .../external/L3_Furippa3_128x64/frame_1.png | Bin 1478 -> 504 bytes .../external/L3_Furippa3_128x64/frame_10.png | Bin 1609 -> 605 bytes .../external/L3_Furippa3_128x64/frame_11.png | Bin 1826 -> 742 bytes .../external/L3_Furippa3_128x64/frame_12.png | Bin 1607 -> 531 bytes .../external/L3_Furippa3_128x64/frame_13.png | Bin 1679 -> 594 bytes .../external/L3_Furippa3_128x64/frame_14.png | Bin 1714 -> 652 bytes .../external/L3_Furippa3_128x64/frame_15.png | Bin 1805 -> 733 bytes .../external/L3_Furippa3_128x64/frame_16.png | Bin 1575 -> 581 bytes .../external/L3_Furippa3_128x64/frame_17.png | Bin 1560 -> 596 bytes .../external/L3_Furippa3_128x64/frame_18.png | Bin 1492 -> 548 bytes .../external/L3_Furippa3_128x64/frame_2.png | Bin 1472 -> 501 bytes .../external/L3_Furippa3_128x64/frame_3.png | Bin 1466 -> 497 bytes .../external/L3_Furippa3_128x64/frame_4.png | Bin 1513 -> 526 bytes .../external/L3_Furippa3_128x64/frame_5.png | Bin 1519 -> 533 bytes .../external/L3_Furippa3_128x64/frame_6.png | Bin 1526 -> 548 bytes .../external/L3_Furippa3_128x64/frame_7.png | Bin 1442 -> 476 bytes .../external/L3_Furippa3_128x64/frame_8.png | Bin 1456 -> 470 bytes .../external/L3_Furippa3_128x64/frame_9.png | Bin 1477 -> 507 bytes .../L3_Hijack_radio_128x64/frame_0.png | Bin 1611 -> 587 bytes .../L3_Hijack_radio_128x64/frame_1.png | Bin 1619 -> 596 bytes .../L3_Hijack_radio_128x64/frame_10.png | Bin 1642 -> 612 bytes .../L3_Hijack_radio_128x64/frame_11.png | Bin 1660 -> 627 bytes .../L3_Hijack_radio_128x64/frame_12.png | Bin 1627 -> 600 bytes .../L3_Hijack_radio_128x64/frame_13.png | Bin 1674 -> 635 bytes .../L3_Hijack_radio_128x64/frame_2.png | Bin 1615 -> 594 bytes .../L3_Hijack_radio_128x64/frame_3.png | Bin 1622 -> 591 bytes .../L3_Hijack_radio_128x64/frame_4.png | Bin 1667 -> 625 bytes .../L3_Hijack_radio_128x64/frame_5.png | Bin 1672 -> 629 bytes .../L3_Hijack_radio_128x64/frame_6.png | Bin 1609 -> 589 bytes .../L3_Hijack_radio_128x64/frame_7.png | Bin 1755 -> 707 bytes .../L3_Hijack_radio_128x64/frame_8.png | Bin 1754 -> 719 bytes .../L3_Hijack_radio_128x64/frame_9.png | Bin 1706 -> 658 bytes .../L3_Intruder_alert_128x64/frame_0.png | Bin 1788 -> 873 bytes .../L3_Intruder_alert_128x64/frame_1.png | Bin 1811 -> 874 bytes .../L3_Intruder_alert_128x64/frame_10.png | Bin 1681 -> 824 bytes .../L3_Intruder_alert_128x64/frame_11.png | Bin 1621 -> 819 bytes .../L3_Intruder_alert_128x64/frame_12.png | Bin 1701 -> 831 bytes .../L3_Intruder_alert_128x64/frame_13.png | Bin 1764 -> 853 bytes .../L3_Intruder_alert_128x64/frame_14.png | Bin 1417 -> 742 bytes .../L3_Intruder_alert_128x64/frame_15.png | Bin 1392 -> 739 bytes .../L3_Intruder_alert_128x64/frame_16.png | Bin 1541 -> 780 bytes .../L3_Intruder_alert_128x64/frame_17.png | Bin 1414 -> 753 bytes .../L3_Intruder_alert_128x64/frame_18.png | Bin 1574 -> 800 bytes .../L3_Intruder_alert_128x64/frame_19.png | Bin 1315 -> 668 bytes .../L3_Intruder_alert_128x64/frame_2.png | Bin 1758 -> 878 bytes .../L3_Intruder_alert_128x64/frame_20.png | Bin 1320 -> 663 bytes .../L3_Intruder_alert_128x64/frame_21.png | Bin 1363 -> 686 bytes .../L3_Intruder_alert_128x64/frame_22.png | Bin 1318 -> 676 bytes .../L3_Intruder_alert_128x64/frame_23.png | Bin 1412 -> 683 bytes .../L3_Intruder_alert_128x64/frame_24.png | Bin 1530 -> 748 bytes .../L3_Intruder_alert_128x64/frame_25.png | Bin 1454 -> 692 bytes .../L3_Intruder_alert_128x64/frame_26.png | Bin 1477 -> 866 bytes .../L3_Intruder_alert_128x64/frame_27.png | Bin 1520 -> 872 bytes .../L3_Intruder_alert_128x64/frame_28.png | Bin 1486 -> 816 bytes .../L3_Intruder_alert_128x64/frame_29.png | Bin 1511 -> 859 bytes .../L3_Intruder_alert_128x64/frame_3.png | Bin 1707 -> 868 bytes .../L3_Intruder_alert_128x64/frame_30.png | Bin 1550 -> 764 bytes .../L3_Intruder_alert_128x64/frame_31.png | Bin 1497 -> 746 bytes .../L3_Intruder_alert_128x64/frame_32.png | Bin 1437 -> 696 bytes .../L3_Intruder_alert_128x64/frame_33.png | Bin 1316 -> 654 bytes .../L3_Intruder_alert_128x64/frame_34.png | Bin 1346 -> 669 bytes .../L3_Intruder_alert_128x64/frame_35.png | Bin 1289 -> 664 bytes .../L3_Intruder_alert_128x64/frame_36.png | Bin 1293 -> 644 bytes .../L3_Intruder_alert_128x64/frame_37.png | Bin 904 -> 443 bytes .../L3_Intruder_alert_128x64/frame_38.png | Bin 956 -> 468 bytes .../L3_Intruder_alert_128x64/frame_39.png | Bin 1251 -> 600 bytes .../L3_Intruder_alert_128x64/frame_4.png | Bin 1766 -> 872 bytes .../L3_Intruder_alert_128x64/frame_40.png | Bin 1412 -> 706 bytes .../L3_Intruder_alert_128x64/frame_41.png | Bin 1496 -> 757 bytes .../L3_Intruder_alert_128x64/frame_42.png | Bin 1866 -> 890 bytes .../L3_Intruder_alert_128x64/frame_43.png | Bin 1494 -> 745 bytes .../L3_Intruder_alert_128x64/frame_44.png | Bin 963 -> 519 bytes .../L3_Intruder_alert_128x64/frame_45.png | Bin 1397 -> 691 bytes .../L3_Intruder_alert_128x64/frame_46.png | Bin 1109 -> 589 bytes .../L3_Intruder_alert_128x64/frame_47.png | Bin 1113 -> 592 bytes .../L3_Intruder_alert_128x64/frame_48.png | Bin 1117 -> 583 bytes .../L3_Intruder_alert_128x64/frame_49.png | Bin 1267 -> 644 bytes .../L3_Intruder_alert_128x64/frame_5.png | Bin 1674 -> 812 bytes .../L3_Intruder_alert_128x64/frame_50.png | Bin 1250 -> 647 bytes .../L3_Intruder_alert_128x64/frame_51.png | Bin 1270 -> 648 bytes .../L3_Intruder_alert_128x64/frame_52.png | Bin 1566 -> 807 bytes .../L3_Intruder_alert_128x64/frame_53.png | Bin 1603 -> 801 bytes .../L3_Intruder_alert_128x64/frame_54.png | Bin 1660 -> 829 bytes .../L3_Intruder_alert_128x64/frame_55.png | Bin 1644 -> 828 bytes .../L3_Intruder_alert_128x64/frame_6.png | Bin 1683 -> 812 bytes .../L3_Intruder_alert_128x64/frame_7.png | Bin 1676 -> 799 bytes .../L3_Intruder_alert_128x64/frame_8.png | Bin 1680 -> 799 bytes .../L3_Intruder_alert_128x64/frame_9.png | Bin 1653 -> 797 bytes .../L3_Lab_research_128x54/frame_0.png | Bin 1687 -> 654 bytes .../L3_Lab_research_128x54/frame_1.png | Bin 1700 -> 660 bytes .../L3_Lab_research_128x54/frame_10.png | Bin 1640 -> 612 bytes .../L3_Lab_research_128x54/frame_11.png | Bin 1656 -> 608 bytes .../L3_Lab_research_128x54/frame_12.png | Bin 1639 -> 600 bytes .../L3_Lab_research_128x54/frame_13.png | Bin 1689 -> 646 bytes .../L3_Lab_research_128x54/frame_2.png | Bin 1707 -> 652 bytes .../L3_Lab_research_128x54/frame_3.png | Bin 1680 -> 651 bytes .../L3_Lab_research_128x54/frame_4.png | Bin 1691 -> 655 bytes .../L3_Lab_research_128x54/frame_5.png | Bin 1708 -> 655 bytes .../L3_Lab_research_128x54/frame_6.png | Bin 1689 -> 646 bytes .../L3_Lab_research_128x54/frame_7.png | Bin 1655 -> 619 bytes .../L3_Lab_research_128x54/frame_8.png | Bin 1645 -> 602 bytes .../L3_Lab_research_128x54/frame_9.png | Bin 1655 -> 607 bytes .../internal/L1_BadBattery_128x47/frame_0.png | Bin 1384 -> 405 bytes .../internal/L1_BadBattery_128x47/frame_1.png | Bin 1390 -> 407 bytes .../internal/L1_NoSd_128x49/frame_0.png | Bin 1411 -> 416 bytes .../internal/L1_NoSd_128x49/frame_1.png | Bin 1410 -> 410 bytes .../internal/L1_NoSd_128x49/frame_2.png | Bin 1416 -> 418 bytes .../internal/L1_NoSd_128x49/frame_3.png | Bin 1415 -> 420 bytes .../internal/L1_NoSd_128x49/frame_4.png | Bin 1401 -> 407 bytes .../internal/L1_NoSd_128x49/frame_5.png | Bin 1412 -> 413 bytes .../dolphin/internal/L1_Tv_128x47/frame_0.png | Bin 602 -> 510 bytes .../dolphin/internal/L1_Tv_128x47/frame_1.png | Bin 605 -> 519 bytes .../dolphin/internal/L1_Tv_128x47/frame_2.png | Bin 590 -> 509 bytes .../dolphin/internal/L1_Tv_128x47/frame_3.png | Bin 598 -> 515 bytes .../dolphin/internal/L1_Tv_128x47/frame_4.png | Bin 601 -> 511 bytes .../dolphin/internal/L1_Tv_128x47/frame_5.png | Bin 598 -> 519 bytes .../dolphin/internal/L1_Tv_128x47/frame_6.png | Bin 585 -> 502 bytes .../dolphin/internal/L1_Tv_128x47/frame_7.png | Bin 596 -> 523 bytes assets/icons/About/Certification1_103x56.png | Bin 3038 -> 488 bytes assets/icons/About/Certification2_46x33.png | Bin 229 -> 224 bytes .../About/CertificationChina0_121x41.png | Bin 5314 -> 448 bytes .../About/CertificationChina1_124x47.png | Bin 429 -> 420 bytes .../icons/About/CertificationMexico_98x41.png | Bin 5219 -> 330 bytes .../icons/About/CertificationTaiwan_33x32.png | Bin 4835 -> 205 bytes .../Animations/Levelup1_128x64/frame_00.png | Bin 1326 -> 337 bytes .../Animations/Levelup1_128x64/frame_01.png | Bin 1597 -> 576 bytes .../Animations/Levelup1_128x64/frame_02.png | Bin 1754 -> 725 bytes .../Animations/Levelup1_128x64/frame_03.png | Bin 1828 -> 870 bytes .../Animations/Levelup1_128x64/frame_04.png | Bin 1686 -> 731 bytes .../Animations/Levelup1_128x64/frame_05.png | Bin 1672 -> 722 bytes .../Animations/Levelup1_128x64/frame_06.png | Bin 1659 -> 599 bytes .../Animations/Levelup1_128x64/frame_07.png | Bin 1540 -> 522 bytes .../Animations/Levelup1_128x64/frame_08.png | Bin 1557 -> 527 bytes .../Animations/Levelup1_128x64/frame_09.png | Bin 1551 -> 528 bytes .../Animations/Levelup1_128x64/frame_10.png | Bin 1604 -> 529 bytes .../Animations/Levelup2_128x64/frame_00.png | Bin 1368 -> 362 bytes .../Animations/Levelup2_128x64/frame_01.png | Bin 1632 -> 593 bytes .../Animations/Levelup2_128x64/frame_02.png | Bin 1812 -> 752 bytes .../Animations/Levelup2_128x64/frame_03.png | Bin 1860 -> 894 bytes .../Animations/Levelup2_128x64/frame_04.png | Bin 1700 -> 737 bytes .../Animations/Levelup2_128x64/frame_05.png | Bin 1725 -> 741 bytes .../Animations/Levelup2_128x64/frame_06.png | Bin 1684 -> 613 bytes .../Animations/Levelup2_128x64/frame_07.png | Bin 1590 -> 549 bytes .../Animations/Levelup2_128x64/frame_08.png | Bin 1598 -> 547 bytes .../Animations/Levelup2_128x64/frame_09.png | Bin 1604 -> 573 bytes .../Animations/Levelup2_128x64/frame_10.png | Bin 1612 -> 576 bytes assets/icons/Archive/125_10px.png | Bin 308 -> 95 bytes assets/icons/Archive/Nfc_10px.png | Bin 304 -> 96 bytes assets/icons/Archive/back_10px.png | Bin 154 -> 96 bytes assets/icons/Archive/badusb_10px.png | Bin 576 -> 96 bytes assets/icons/Archive/dir_10px.png | Bin 311 -> 90 bytes assets/icons/Archive/ibutt_10px.png | Bin 304 -> 96 bytes assets/icons/Archive/ir_10px.png | Bin 305 -> 96 bytes assets/icons/Archive/js_script_10px.png | Bin 3635 -> 88 bytes assets/icons/Archive/keyboard_10px.png | Bin 147 -> 96 bytes assets/icons/Archive/loading_10px.png | Bin 4349 -> 95 bytes assets/icons/Archive/music_10px.png | Bin 142 -> 96 bytes assets/icons/Archive/sub1_10px.png | Bin 299 -> 95 bytes assets/icons/Archive/u2f_10px.png | Bin 583 -> 98 bytes assets/icons/Archive/unknown_10px.png | Bin 312 -> 95 bytes assets/icons/Archive/update_10px.png | Bin 156 -> 95 bytes .../icons/BLE/BLE_HID/Ble_connected_15x15.png | Bin 3634 -> 111 bytes .../BLE/BLE_HID/Ble_disconnected_15x15.png | Bin 3632 -> 113 bytes assets/icons/BLE/BLE_HID/Button_18x18.png | Bin 3609 -> 96 bytes assets/icons/BLE/BLE_HID/Circles_47x47.png | Bin 3712 -> 222 bytes .../icons/BLE/BLE_HID/Left_mouse_icon_9x9.png | Bin 3622 -> 92 bytes assets/icons/BLE/BLE_HID/Ok_btn_9x9.png | Bin 3605 -> 92 bytes .../BLE/BLE_HID/Ok_btn_pressed_13x13.png | Bin 3625 -> 95 bytes .../BLE/BLE_HID/Pressed_Button_13x13.png | Bin 3606 -> 89 bytes .../BLE/BLE_HID/Right_mouse_icon_9x9.png | Bin 3622 -> 92 bytes assets/icons/BLE/BLE_HID/Space_65x18.png | Bin 3619 -> 112 bytes assets/icons/BLE/BLE_HID/Voldwn_6x6.png | Bin 3593 -> 77 bytes assets/icons/BLE/BLE_HID/Volup_8x6.png | Bin 3595 -> 77 bytes assets/icons/BLE/BLE_Pairing_128x64.png | Bin 2307 -> 564 bytes assets/icons/BadUsb/Clock_18x18.png | Bin 1083 -> 132 bytes assets/icons/BadUsb/Error_18x18.png | Bin 1083 -> 125 bytes assets/icons/BadUsb/EviSmile1_18x21.png | Bin 3645 -> 128 bytes assets/icons/BadUsb/EviSmile2_18x21.png | Bin 3649 -> 130 bytes assets/icons/BadUsb/EviWaiting1_18x21.png | Bin 13020 -> 123 bytes assets/icons/BadUsb/EviWaiting2_18x21.png | Bin 12913 -> 120 bytes assets/icons/BadUsb/Percent_10x14.png | Bin 3624 -> 108 bytes assets/icons/BadUsb/Smile_18x18.png | Bin 1080 -> 123 bytes assets/icons/BadUsb/UsbTree_48x22.png | Bin 3653 -> 151 bytes .../icons/Common/ActiveConnection_50x64.png | Bin 3842 -> 357 bytes assets/icons/Common/ButtonCenter_7x7.png | Bin 1440 -> 79 bytes assets/icons/Common/ButtonDown_7x4.png | Bin 102 -> 73 bytes assets/icons/Common/ButtonLeftSmall_3x5.png | Bin 1741 -> 75 bytes assets/icons/Common/ButtonLeft_4x7.png | Bin 1415 -> 79 bytes assets/icons/Common/ButtonRightSmall_3x5.png | Bin 1738 -> 75 bytes assets/icons/Common/ButtonRight_4x7.png | Bin 1839 -> 79 bytes assets/icons/Common/ButtonUp_7x4.png | Bin 102 -> 73 bytes assets/icons/Common/DFU_128x50.png | Bin 3177 -> 617 bytes assets/icons/Common/Hashmark_7x7.png | Bin 957 -> 79 bytes assets/icons/Common/Loading_24/frame_01.png | Bin 3650 -> 138 bytes assets/icons/Common/Loading_24/frame_02.png | Bin 3649 -> 139 bytes assets/icons/Common/Loading_24/frame_03.png | Bin 3649 -> 137 bytes assets/icons/Common/Loading_24/frame_04.png | Bin 3645 -> 138 bytes assets/icons/Common/Loading_24/frame_05.png | Bin 3654 -> 150 bytes assets/icons/Common/Loading_24/frame_06.png | Bin 3650 -> 132 bytes assets/icons/Common/Loading_24/frame_07.png | Bin 3655 -> 143 bytes .../Common/More_data_placeholder_5x7.png | Bin 92 -> 72 bytes .../Common/Round_loader_8x8/frame_01.png | Bin 7324 -> 81 bytes .../Common/Round_loader_8x8/frame_02.png | Bin 3606 -> 81 bytes .../Common/Round_loader_8x8/frame_03.png | Bin 3603 -> 81 bytes .../Common/Round_loader_8x8/frame_04.png | Bin 3605 -> 81 bytes .../Common/Round_loader_8x8/frame_05.png | Bin 3598 -> 75 bytes assets/icons/Common/Warning_30x23.png | Bin 347 -> 127 bytes assets/icons/Common/arrow_nano_down.png | Bin 2311 -> 69 bytes assets/icons/Common/arrow_nano_up.png | Bin 949 -> 69 bytes assets/icons/Dolphin/DolphinDone_80x58.png | Bin 1664 -> 448 bytes assets/icons/Dolphin/DolphinMafia_119x62.png | Bin 1280 -> 668 bytes .../Dolphin/DolphinReadingSuccess_59x63.png | Bin 1177 -> 368 bytes assets/icons/Dolphin/DolphinSaved_92x58.png | Bin 901 -> 475 bytes assets/icons/Dolphin/DolphinSuccess_91x55.png | Bin 930 -> 515 bytes assets/icons/Dolphin/DolphinWait_59x54.png | Bin 1539 -> 385 bytes .../Dolphin/WarningDolphinFlip_45x42.png | Bin 1437 -> 262 bytes assets/icons/Dolphin/WarningDolphin_45x42.png | Bin 1139 -> 258 bytes assets/icons/ErasePin/Erase_pin_128x64.png | Bin 5220 -> 651 bytes assets/icons/GPIO/ArrowUpEmpty_14x15.png | Bin 3616 -> 101 bytes assets/icons/GPIO/ArrowUpFilled_14x15.png | Bin 3628 -> 113 bytes .../icons/Infrared/InfraredArrowDown_4x8.png | Bin 3589 -> 73 bytes assets/icons/Infrared/InfraredArrowUp_4x8.png | Bin 3592 -> 73 bytes .../Infrared/InfraredLearnShort_128x31.png | Bin 3952 -> 368 bytes assets/icons/Infrared/back_btn_10x8.png | Bin 141 -> 90 bytes assets/icons/Infrared/celsius_24x23.png | Bin 257 -> 154 bytes assets/icons/Infrared/celsius_hover_24x23.png | Bin 204 -> 137 bytes assets/icons/Infrared/ch_down_24x21.png | Bin 2931 -> 142 bytes assets/icons/Infrared/ch_down_hover_24x21.png | Bin 2903 -> 126 bytes assets/icons/Infrared/ch_text_31x34.png | Bin 2925 -> 129 bytes assets/icons/Infrared/ch_up_24x21.png | Bin 2913 -> 135 bytes assets/icons/Infrared/ch_up_hover_24x21.png | Bin 2898 -> 128 bytes assets/icons/Infrared/cool_30x51.png | Bin 3742 -> 163 bytes assets/icons/Infrared/dry_19x20.png | Bin 996 -> 122 bytes assets/icons/Infrared/dry_hover_19x20.png | Bin 978 -> 112 bytes assets/icons/Infrared/dry_text_15x5.png | Bin 968 -> 80 bytes assets/icons/Infrared/fahren_24x23.png | Bin 258 -> 151 bytes assets/icons/Infrared/fahren_hover_24x23.png | Bin 205 -> 135 bytes assets/icons/Infrared/heat_30x51.png | Bin 3747 -> 167 bytes assets/icons/Infrared/hourglass0_24x24.png | Bin 231 -> 138 bytes assets/icons/Infrared/hourglass1_24x24.png | Bin 246 -> 143 bytes assets/icons/Infrared/hourglass2_24x24.png | Bin 237 -> 137 bytes assets/icons/Infrared/hourglass3_24x24.png | Bin 223 -> 136 bytes assets/icons/Infrared/hourglass4_24x24.png | Bin 239 -> 144 bytes assets/icons/Infrared/hourglass5_24x24.png | Bin 218 -> 136 bytes assets/icons/Infrared/hourglass6_24x24.png | Bin 238 -> 145 bytes assets/icons/Infrared/max_24x23.png | Bin 224 -> 146 bytes assets/icons/Infrared/max_hover_24x23.png | Bin 208 -> 134 bytes assets/icons/Infrared/mute_19x20.png | Bin 2918 -> 126 bytes assets/icons/Infrared/mute_hover_19x20.png | Bin 2877 -> 121 bytes assets/icons/Infrared/mute_text_19x5.png | Bin 2849 -> 85 bytes assets/icons/Infrared/next_19x20.png | Bin 2894 -> 124 bytes assets/icons/Infrared/next_hover_19x20.png | Bin 2873 -> 121 bytes assets/icons/Infrared/next_text_19x6.png | Bin 2852 -> 85 bytes assets/icons/Infrared/off_19x20.png | Bin 193 -> 121 bytes assets/icons/Infrared/off_hover_19x20.png | Bin 160 -> 112 bytes assets/icons/Infrared/off_text_12x5.png | Bin 130 -> 80 bytes assets/icons/Infrared/pause_19x20.png | Bin 2861 -> 105 bytes assets/icons/Infrared/pause_hover_19x20.png | Bin 2842 -> 92 bytes assets/icons/Infrared/pause_text_23x5.png | Bin 2856 -> 85 bytes assets/icons/Infrared/play_19x20.png | Bin 2894 -> 122 bytes assets/icons/Infrared/play_hover_19x20.png | Bin 2869 -> 117 bytes assets/icons/Infrared/play_text_19x5.png | Bin 2850 -> 86 bytes assets/icons/Infrared/power_19x20.png | Bin 1006 -> 120 bytes assets/icons/Infrared/power_hover_19x20.png | Bin 996 -> 115 bytes assets/icons/Infrared/power_text_24x5.png | Bin 981 -> 85 bytes assets/icons/Infrared/prev_19x20.png | Bin 2893 -> 123 bytes assets/icons/Infrared/prev_hover_19x20.png | Bin 2877 -> 116 bytes assets/icons/Infrared/prev_text_19x5.png | Bin 2844 -> 85 bytes assets/icons/Infrared/vol_ac_text_30x30.png | Bin 2915 -> 134 bytes assets/icons/Infrared/vol_tv_text_29x34.png | Bin 2920 -> 133 bytes assets/icons/Infrared/voldown_24x21.png | Bin 2908 -> 132 bytes assets/icons/Infrared/voldown_hover_24x21.png | Bin 2884 -> 112 bytes assets/icons/Infrared/volup_24x21.png | Bin 2910 -> 131 bytes assets/icons/Infrared/volup_hover_24x21.png | Bin 2895 -> 123 bytes assets/icons/Interface/DoorLeft_70x55.png | Bin 564 -> 390 bytes assets/icons/Interface/DoorRight_70x55.png | Bin 570 -> 377 bytes assets/icons/Interface/SmallArrowDown_3x5.png | Bin 3592 -> 71 bytes assets/icons/Interface/SmallArrowDown_4x7.png | Bin 8340 -> 73 bytes assets/icons/Interface/SmallArrowUp_3x5.png | Bin 7976 -> 71 bytes assets/icons/Interface/SmallArrowUp_4x7.png | Bin 8552 -> 73 bytes .../Keyboard/KeyBackspaceSelected_16x9.png | Bin 1812 -> 90 bytes assets/icons/Keyboard/KeyBackspace_16x9.png | Bin 1829 -> 92 bytes .../icons/Keyboard/KeySaveSelected_24x11.png | Bin 1853 -> 94 bytes assets/icons/Keyboard/KeySave_24x11.png | Bin 1863 -> 110 bytes assets/icons/Loader/err_01.png | Bin 394 -> 193 bytes assets/icons/Loader/err_02.png | Bin 397 -> 193 bytes assets/icons/Loader/err_03.png | Bin 385 -> 193 bytes assets/icons/Loader/err_04.png | Bin 385 -> 193 bytes assets/icons/Loader/err_05.png | Bin 393 -> 193 bytes assets/icons/Loader/err_06.png | Bin 398 -> 193 bytes assets/icons/Loader/err_07.png | Bin 401 -> 193 bytes assets/icons/Loader/err_09.png | Bin 394 -> 193 bytes assets/icons/MainMenu/125khz_14/frame_01.png | Bin 105 -> 108 bytes assets/icons/MainMenu/125khz_14/frame_02.png | Bin 105 -> 108 bytes assets/icons/MainMenu/125khz_14/frame_03.png | Bin 97 -> 102 bytes assets/icons/MainMenu/125khz_14/frame_04.png | Bin 103 -> 108 bytes assets/icons/MainMenu/BadUsb_14/frame_01.png | Bin 992 -> 107 bytes assets/icons/MainMenu/BadUsb_14/frame_02.png | Bin 1002 -> 108 bytes assets/icons/MainMenu/BadUsb_14/frame_03.png | Bin 1004 -> 108 bytes assets/icons/MainMenu/BadUsb_14/frame_04.png | Bin 1011 -> 108 bytes assets/icons/MainMenu/BadUsb_14/frame_05.png | Bin 1004 -> 108 bytes assets/icons/MainMenu/BadUsb_14/frame_06.png | Bin 999 -> 104 bytes assets/icons/MainMenu/BadUsb_14/frame_07.png | Bin 1004 -> 108 bytes assets/icons/MainMenu/BadUsb_14/frame_08.png | Bin 1011 -> 108 bytes assets/icons/MainMenu/BadUsb_14/frame_09.png | Bin 1004 -> 108 bytes assets/icons/MainMenu/BadUsb_14/frame_10.png | Bin 1002 -> 108 bytes assets/icons/MainMenu/BadUsb_14/frame_11.png | Bin 992 -> 107 bytes assets/icons/MainMenu/Debug_14/frame_01.png | Bin 3704 -> 110 bytes assets/icons/MainMenu/Debug_14/frame_02.png | Bin 3713 -> 110 bytes assets/icons/MainMenu/Debug_14/frame_03.png | Bin 3716 -> 110 bytes assets/icons/MainMenu/Debug_14/frame_04.png | Bin 3717 -> 108 bytes .../MainMenu/FileManager_14/frame_01.png | Bin 102 -> 108 bytes .../MainMenu/FileManager_14/frame_02.png | Bin 103 -> 108 bytes .../MainMenu/FileManager_14/frame_03.png | Bin 97 -> 103 bytes .../MainMenu/FileManager_14/frame_04.png | Bin 97 -> 102 bytes .../MainMenu/FileManager_14/frame_05.png | Bin 97 -> 102 bytes .../MainMenu/FileManager_14/frame_06.png | Bin 85 -> 89 bytes .../MainMenu/FileManager_14/frame_07.png | Bin 97 -> 102 bytes .../MainMenu/FileManager_14/frame_08.png | Bin 97 -> 102 bytes .../MainMenu/FileManager_14/frame_09.png | Bin 97 -> 103 bytes .../MainMenu/FileManager_14/frame_10.png | Bin 103 -> 108 bytes assets/icons/MainMenu/GPIO_14/frame_01.png | Bin 90 -> 98 bytes assets/icons/MainMenu/GPIO_14/frame_02.png | Bin 85 -> 97 bytes assets/icons/MainMenu/GPIO_14/frame_03.png | Bin 84 -> 93 bytes assets/icons/MainMenu/GPIO_14/frame_04.png | Bin 83 -> 90 bytes assets/icons/MainMenu/GPIO_14/frame_05.png | Bin 79 -> 84 bytes assets/icons/MainMenu/GPIO_14/frame_06.png | Bin 83 -> 91 bytes assets/icons/MainMenu/GPIO_14/frame_07.png | Bin 83 -> 90 bytes assets/icons/MainMenu/GPIO_14/frame_08.png | Bin 85 -> 96 bytes .../icons/MainMenu/Infrared_14/frame_01.png | Bin 98 -> 110 bytes .../icons/MainMenu/Infrared_14/frame_02.png | Bin 95 -> 104 bytes .../icons/MainMenu/Infrared_14/frame_03.png | Bin 91 -> 98 bytes .../icons/MainMenu/Infrared_14/frame_04.png | Bin 83 -> 88 bytes .../icons/MainMenu/Infrared_14/frame_05.png | Bin 83 -> 93 bytes .../icons/MainMenu/Infrared_14/frame_06.png | Bin 91 -> 106 bytes assets/icons/MainMenu/NFC_14/frame_01.png | Bin 104 -> 108 bytes assets/icons/MainMenu/NFC_14/frame_02.png | Bin 98 -> 105 bytes assets/icons/MainMenu/NFC_14/frame_03.png | Bin 92 -> 93 bytes assets/icons/MainMenu/NFC_14/frame_04.png | Bin 95 -> 104 bytes assets/icons/MainMenu/Plugins_14/frame_01.png | Bin 106 -> 108 bytes assets/icons/MainMenu/Plugins_14/frame_02.png | Bin 106 -> 110 bytes assets/icons/MainMenu/Plugins_14/frame_03.png | Bin 104 -> 110 bytes assets/icons/MainMenu/Plugins_14/frame_04.png | Bin 110 -> 110 bytes assets/icons/MainMenu/Plugins_14/frame_05.png | Bin 105 -> 110 bytes assets/icons/MainMenu/Plugins_14/frame_06.png | Bin 107 -> 108 bytes assets/icons/MainMenu/Plugins_14/frame_07.png | Bin 105 -> 108 bytes assets/icons/MainMenu/Plugins_14/frame_08.png | Bin 105 -> 110 bytes assets/icons/MainMenu/Plugins_14/frame_09.png | Bin 104 -> 110 bytes .../icons/MainMenu/Settings_14/frame_01.png | Bin 110 -> 110 bytes .../icons/MainMenu/Settings_14/frame_02.png | Bin 110 -> 108 bytes .../icons/MainMenu/Settings_14/frame_03.png | Bin 107 -> 110 bytes .../icons/MainMenu/Settings_14/frame_04.png | Bin 110 -> 108 bytes .../icons/MainMenu/Settings_14/frame_05.png | Bin 110 -> 110 bytes .../icons/MainMenu/Settings_14/frame_06.png | Bin 110 -> 110 bytes .../icons/MainMenu/Settings_14/frame_07.png | Bin 110 -> 108 bytes .../icons/MainMenu/Settings_14/frame_08.png | Bin 108 -> 110 bytes .../icons/MainMenu/Settings_14/frame_09.png | Bin 110 -> 110 bytes .../icons/MainMenu/Settings_14/frame_10.png | Bin 110 -> 110 bytes assets/icons/MainMenu/Sub1ghz_14/frame_01.png | Bin 97 -> 103 bytes assets/icons/MainMenu/Sub1ghz_14/frame_02.png | Bin 96 -> 102 bytes assets/icons/MainMenu/Sub1ghz_14/frame_03.png | Bin 90 -> 102 bytes assets/icons/MainMenu/Sub1ghz_14/frame_04.png | Bin 76 -> 83 bytes assets/icons/MainMenu/Sub1ghz_14/frame_05.png | Bin 79 -> 88 bytes assets/icons/MainMenu/Sub1ghz_14/frame_06.png | Bin 90 -> 97 bytes assets/icons/MainMenu/U2F_14/frame_01.png | Bin 104 -> 108 bytes assets/icons/MainMenu/U2F_14/frame_02.png | Bin 103 -> 108 bytes assets/icons/MainMenu/U2F_14/frame_03.png | Bin 102 -> 108 bytes assets/icons/MainMenu/U2F_14/frame_04.png | Bin 103 -> 108 bytes assets/icons/MainMenu/iButton_14/frame_01.png | Bin 104 -> 110 bytes assets/icons/MainMenu/iButton_14/frame_02.png | Bin 108 -> 110 bytes assets/icons/MainMenu/iButton_14/frame_03.png | Bin 104 -> 110 bytes assets/icons/MainMenu/iButton_14/frame_04.png | Bin 108 -> 106 bytes assets/icons/MainMenu/iButton_14/frame_05.png | Bin 100 -> 103 bytes assets/icons/MainMenu/iButton_14/frame_06.png | Bin 103 -> 110 bytes assets/icons/MainMenu/iButton_14/frame_07.png | Bin 110 -> 110 bytes assets/icons/NFC/ArrowC_1_36x36.png | Bin 3692 -> 195 bytes assets/icons/NFC/Detailed_chip_17x13.png | Bin 981 -> 113 bytes assets/icons/NFC/Keychain_39x36.png | Bin 3775 -> 213 bytes assets/icons/NFC/MFKey_qr_25x25.png | Bin 218 -> 193 bytes assets/icons/NFC/Medium-chip-22x21.png | Bin 3740 -> 148 bytes assets/icons/NFC/Modern_reader_18x34.png | Bin 3670 -> 153 bytes assets/icons/NFC/Move_flipper_26x39.png | Bin 3698 -> 187 bytes .../icons/NFC/NFC_dolphin_emulation_51x64.png | Bin 1591 -> 389 bytes assets/icons/NFC/NFC_manual_60x50.png | Bin 3804 -> 309 bytes assets/icons/NFC/Release_arrow_18x15.png | Bin 3631 -> 126 bytes assets/icons/NFC/check_big_20x17.png | Bin 994 -> 113 bytes assets/icons/PIN/Pin_arrow_up_7x9.png | Bin 3603 -> 79 bytes assets/icons/PIN/Pin_attention_dpad_29x29.png | Bin 3688 -> 177 bytes assets/icons/PIN/Pin_back_arrow_10x8.png | Bin 3606 -> 90 bytes assets/icons/PIN/Pin_pointer_5x3.png | Bin 3592 -> 71 bytes assets/icons/PIN/Pin_star_7x7.png | Bin 3600 -> 79 bytes assets/icons/Passport/passport_bad1_46x49.png | Bin 1237 -> 263 bytes assets/icons/Passport/passport_bad2_46x49.png | Bin 1295 -> 296 bytes assets/icons/Passport/passport_bad3_46x49.png | Bin 1304 -> 307 bytes .../icons/Passport/passport_bottom_128x18.png | Bin 1149 -> 177 bytes .../icons/Passport/passport_happy1_46x49.png | Bin 1296 -> 297 bytes .../icons/Passport/passport_happy2_46x49.png | Bin 1328 -> 314 bytes .../icons/Passport/passport_happy3_46x49.png | Bin 1348 -> 330 bytes assets/icons/Passport/passport_left_6x46.png | Bin 1083 -> 115 bytes .../icons/Passport/passport_okay1_46x49.png | Bin 1244 -> 259 bytes .../icons/Passport/passport_okay2_46x49.png | Bin 1281 -> 291 bytes .../icons/Passport/passport_okay3_46x49.png | Bin 1304 -> 311 bytes assets/icons/Power/BatteryBody_52x28.png | Bin 327 -> 173 bytes assets/icons/Power/Battery_16x16.png | Bin 281 -> 103 bytes assets/icons/Power/FaceCharging_29x14.png | Bin 308 -> 121 bytes assets/icons/Power/FaceConfused_29x14.png | Bin 317 -> 132 bytes assets/icons/Power/FaceNopower_29x14.png | Bin 302 -> 117 bytes assets/icons/Power/FaceNormal_29x14.png | Bin 295 -> 115 bytes assets/icons/Power/Health_16x16.png | Bin 282 -> 102 bytes assets/icons/Power/Temperature_16x16.png | Bin 283 -> 98 bytes .../icons/Power/Unplug_bg_bottom_128x10.png | Bin 5355 -> 114 bytes assets/icons/Power/Unplug_bg_top_128x14.png | Bin 5945 -> 156 bytes assets/icons/Power/Voltage_16x16.png | Bin 294 -> 103 bytes assets/icons/RFID/RFIDBigChip_37x36.png | Bin 2372 -> 220 bytes .../icons/RFID/RFIDDolphinReceive_97x61.png | Bin 1421 -> 472 bytes assets/icons/RFID/RFIDDolphinSend_97x61.png | Bin 1418 -> 475 bytes assets/icons/SDCard/SDQuestion_35x43.png | Bin 2042 -> 179 bytes .../icons/Settings/LoadingHourglass_24x24.png | Bin 3650 -> 138 bytes assets/icons/Settings/dolph_cry_49x54.png | Bin 973 -> 283 bytes assets/icons/Settings/qr_benchmark_25x25.png | Bin 395 -> 193 bytes assets/icons/StatusBar/Alert_9x8.png | Bin 3611 -> 89 bytes assets/icons/StatusBar/Attention_5x8.png | Bin 1690 -> 81 bytes assets/icons/StatusBar/BLE_beacon_7x8.png | Bin 117 -> 81 bytes assets/icons/StatusBar/Background_128x11.png | Bin 410 -> 201 bytes assets/icons/StatusBar/Battery_26x8.png | Bin 313 -> 95 bytes .../StatusBar/Bluetooth_Connected_16x8.png | Bin 3613 -> 90 bytes assets/icons/StatusBar/Bluetooth_Idle_5x8.png | Bin 79 -> 81 bytes .../StatusBar/Charging-lightning_9x10.png | Bin 3674 -> 96 bytes .../Charging-lightning_mask_9x10.png | Bin 10182 -> 96 bytes .../StatusBar/Exp_module_connected_12x8.png | Bin 3612 -> 89 bytes assets/icons/StatusBar/GameMode_11x8.png | Bin 3610 -> 89 bytes assets/icons/StatusBar/Hidden_window_9x8.png | Bin 3604 -> 88 bytes assets/icons/StatusBar/Muted_8x8.png | Bin 3626 -> 81 bytes assets/icons/StatusBar/Rpc_active_7x8.png | Bin 3607 -> 81 bytes assets/icons/StatusBar/SDcardFail_11x8.png | Bin 81 -> 83 bytes assets/icons/StatusBar/SDcardMounted_11x8.png | Bin 74 -> 76 bytes assets/icons/SubGhz/External_ant_1_9x11.png | Bin 1092 -> 110 bytes assets/icons/SubGhz/Internal_ant_1_9x11.png | Bin 1111 -> 110 bytes assets/icons/SubGhz/Lock_7x8.png | Bin 3597 -> 81 bytes assets/icons/SubGhz/MHz_25x11.png | Bin 1660 -> 117 bytes assets/icons/SubGhz/Quest_7x8.png | Bin 3675 -> 81 bytes assets/icons/SubGhz/Scanning_short_96x52.png | Bin 1388 -> 479 bytes .../SubGhz/SubGhz_External_ant/frame_01.png | Bin 1092 -> 110 bytes .../SubGhz/SubGhz_External_ant/frame_02.png | Bin 1097 -> 106 bytes .../SubGhz/SubGhz_External_ant/frame_03.png | Bin 1079 -> 100 bytes .../SubGhz/SubGhz_External_ant/frame_04.png | Bin 1085 -> 105 bytes .../SubGhz/SubGhz_Internal_ant/frame_01.png | Bin 1111 -> 110 bytes .../SubGhz/SubGhz_Internal_ant/frame_02.png | Bin 1111 -> 110 bytes .../SubGhz/SubGhz_Internal_ant/frame_03.png | Bin 1110 -> 105 bytes .../SubGhz/SubGhz_Internal_ant/frame_04.png | Bin 1110 -> 108 bytes assets/icons/SubGhz/Unlock_7x8.png | Bin 3598 -> 81 bytes assets/icons/U2F/Auth_62x31.png | Bin 3761 -> 250 bytes assets/icons/U2F/Connect_me_62x31.png | Bin 3767 -> 239 bytes assets/icons/U2F/Connected_62x31.png | Bin 3765 -> 248 bytes assets/icons/U2F/Drive_112x35.png | Bin 3695 -> 195 bytes assets/icons/U2F/Error_62x31.png | Bin 3751 -> 248 bytes assets/icons/Update/Updating_32x40.png | Bin 3704 -> 184 bytes .../iButtonDolphinVerySuccess_92x55.png | Bin 967 -> 521 bytes assets/icons/iButton/iButtonKey_49x44.png | Bin 1970 -> 260 bytes assets/slideshow/first_start/frame_00.png | Bin 602 -> 567 bytes assets/slideshow/first_start/frame_01.png | Bin 558 -> 499 bytes assets/slideshow/first_start/frame_02.png | Bin 656 -> 530 bytes assets/slideshow/first_start/frame_03.png | Bin 595 -> 536 bytes assets/slideshow/first_start/frame_04.png | Bin 548 -> 501 bytes assets/slideshow/first_start/frame_05.png | Bin 579 -> 536 bytes assets/slideshow/update_default/frame_00.png | Bin 2211 -> 562 bytes documentation/fbt.md | 2 + scripts/imglint.py | 97 ++++++++++++++++++ 1232 files changed, 154 insertions(+), 1 deletion(-) mode change 100755 => 100644 applications/system/hid_app/assets/Alt_active_17x9.png mode change 100755 => 100644 applications/system/hid_app/assets/Cmd_active_17x9.png mode change 100755 => 100644 applications/system/hid_app/assets/Ctrl_active_17x9.png mode change 100755 => 100644 applications/system/hid_app/assets/Enter_11x7.png mode change 100755 => 100644 applications/system/hid_app/assets/Tab_19x12.png mode change 100755 => 100644 applications/system/hid_app/assets/backslash_button_9x11.png mode change 100755 => 100644 applications/system/hid_app/assets/backspace_19x11.png mode change 100755 => 100644 applications/system/hid_app/assets/backspace_hovered_9x11.png mode change 100755 => 100644 applications/system/hid_app/assets/backtick_button_9x11.png mode change 100755 => 100644 applications/system/hid_app/assets/brace_left_button_9x11.png mode change 100755 => 100644 applications/system/hid_app/assets/brace_right_button_9x11.png mode change 100755 => 100644 applications/system/hid_app/assets/equals_button_9x11.png mode change 100755 => 100644 applications/system/hid_app/assets/hash_button_9x11.png mode change 100755 => 100644 applications/system/hid_app/assets/percent_button_9x11.png mode change 100755 => 100644 applications/system/hid_app/assets/quote_button_9x11.png mode change 100755 => 100644 applications/system/hid_app/assets/slash_button_9x11.png mode change 100755 => 100644 applications/system/hid_app/assets/sq_bracket_left_button_9x11.png mode change 100755 => 100644 applications/system/hid_app/assets/sq_bracket_right_button_9x11.png mode change 100755 => 100644 applications/system/hid_app/assets/underscore_button_9x11.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_0.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_1.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_10.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_11.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_12.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_13.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_14.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_15.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_16.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_17.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_18.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_19.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_2.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_20.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_21.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_22.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_23.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_24.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_25.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_26.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_27.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_28.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_29.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_3.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_30.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_31.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_32.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_33.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_34.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_35.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_4.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_5.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_6.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_7.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_8.png mode change 100755 => 100644 assets/dolphin/external/L1_Akira_128x64/frame_9.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_0.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_1.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_10.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_11.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_12.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_13.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_14.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_15.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_16.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_17.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_18.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_19.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_2.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_20.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_21.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_22.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_23.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_24.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_25.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_26.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_27.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_28.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_29.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_3.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_30.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_31.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_32.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_33.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_34.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_35.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_36.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_37.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_38.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_39.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_4.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_40.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_41.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_42.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_43.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_44.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_45.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_46.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_47.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_48.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_49.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_5.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_50.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_51.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_52.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_53.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_54.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_55.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_56.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_6.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_7.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_8.png mode change 100755 => 100644 assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_9.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_0.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_1.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_10.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_11.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_12.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_13.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_14.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_15.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_16.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_17.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_18.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_19.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_2.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_20.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_21.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_22.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_23.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_24.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_25.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_26.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_27.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_28.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_29.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_3.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_30.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_31.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_32.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_33.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_34.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_35.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_36.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_37.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_38.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_39.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_4.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_40.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_41.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_42.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_43.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_44.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_45.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_46.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_47.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_48.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_49.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_5.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_50.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_51.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_52.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_53.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_54.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_55.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_6.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_7.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_8.png mode change 100755 => 100644 assets/dolphin/external/L3_Intruder_alert_128x64/frame_9.png create mode 100644 scripts/imglint.py diff --git a/.github/workflows/lint_and_submodule_check.yml b/.github/workflows/lint_and_submodule_check.yml index 3063d943d63..6b71253cdac 100644 --- a/.github/workflows/lint_and_submodule_check.yml +++ b/.github/workflows/lint_and_submodule_check.yml @@ -95,6 +95,22 @@ jobs: echo "C Lint: all good ✨" >> $GITHUB_STEP_SUMMARY; fi + - name: 'Check image assets' + if: always() + run: | + set +e; + ./fbt -s lint_img 2>&1 | tee lint-assets.log; + if [ "${PIPESTATUS[0]}" -ne 0 ]; then + # Save multiline output + echo "errors=1" >> $GITHUB_OUTPUT; + printf "Image Lint errors:\n\`\`\`\n" >> $GITHUB_STEP_SUMMARY; + echo "$(cat lint-assets.log)" >> $GITHUB_STEP_SUMMARY; + printf "\n\`\`\`\n" >> $GITHUB_STEP_SUMMARY; + exit 1; + else + echo "Image Lint: all good ✨" >> $GITHUB_STEP_SUMMARY; + fi + - name: Report code formatting errors if: ( steps.syntax_check_py.outputs.errors || steps.syntax_check_cpp.outputs.errors ) && github.event.pull_request run: | diff --git a/SConstruct b/SConstruct index 89a337cd508..b4c8d7b2903 100644 --- a/SConstruct +++ b/SConstruct @@ -322,7 +322,12 @@ firmware_env.Append( "SConstruct", "firmware.scons", "fbt_options.py", - ] + ], + IMG_LINT_SOURCES=[ + # Image assets + "applications", + "assets", + ], ) @@ -359,6 +364,39 @@ distenv.PhonyTarget( PY_LINT_SOURCES=firmware_env["PY_LINT_SOURCES"], ) +# Image assets linting +distenv.PhonyTarget( + "lint_img", + [ + [ + "${PYTHON3}", + "${FBT_SCRIPT_DIR}/imglint.py", + "check", + "${IMG_LINT_SOURCES}", + "${ARGS}", + ] + ], + IMG_LINT_SOURCES=firmware_env["IMG_LINT_SOURCES"], +) + +distenv.PhonyTarget( + "format_img", + [ + [ + "${PYTHON3}", + "${FBT_SCRIPT_DIR}/imglint.py", + "format", + "${IMG_LINT_SOURCES}", + "${ARGS}", + ] + ], + IMG_LINT_SOURCES=firmware_env["IMG_LINT_SOURCES"], +) + +distenv.Alias("lint_all", ["lint", "lint_py", "lint_img"]) +distenv.Alias("format_all", ["format", "format_py", "format_img"]) + + # Start Flipper CLI via PySerial's miniterm distenv.PhonyTarget( "cli", diff --git a/applications/debug/file_browser_test/icons/badusb_10px.png b/applications/debug/file_browser_test/icons/badusb_10px.png index 037474aa3bc9c2e1aca79a68483e69980432bcf5..2b5a3bf97382a13e951505546ed51b9d66da0899 100644 GIT binary patch delta 78 zcmX@Wk}yHSgOLFUmU?~?08;9nE{-7;bCUnmPk5=we3+44&5=z_k8Rm<9v>c_p7rYt eJBXd6xINKS!UMvl!qLiD#K%R*5%=r#Gtx=Y8TZE6OVIIq|qj7bJe< zy5jO1=Yqom&kURC)I4#RSS)m~(!s1~YQ$5-5mnPEU&y$ua^B*sm20eZPyWJCPG4E( zI?WLzu!to{e-NRdh7!uCB1)@HiiH&I$36VRj$a~|Laq`RITlcX2HEk0|H1EWt^DMK zn-q!zT`#u%F$x5Cfo9#dzmILZc>?&Kfh)c3uQY&}PtxmcEph}5Yy%h9ZB5w&E_Z;T zCqp)6NAlAY@_FF>jJ_!g4Bi60Yi@6?eVjf3Y3eF@e*+vG0%HZrUiWx+PiJrco@w>> z11Jx2iD%?txBvhE24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007 zbV*G`2j&6<4mK2EGyVzy002EnL_t&-(~VF;3IH$&O6mV!cBetK8hQysQ-UOgfvg0; zBe-|?EECl|C-=m;MRn8Ku~%W3;1<~@+&|jU2gXe!0|UhaI{*Lx07*qoM6N<$f*l_4 AO8@`> diff --git a/applications/debug/subghz_test/images/DolphinCommon_56x48.png b/applications/debug/subghz_test/images/DolphinCommon_56x48.png index 089aaed83507431993a76ca25d32fdd9664c1c84..9cdc2e448e9aa9219e10cc39e8e01a392dd74a69 100644 GIT binary patch delta 286 zcmV+(0pb3L3#|f>7=Hl(0001Nu7utI008t!L_t(|oITGWZWM7GNAb`9$A}dq9f4Ry z=LmZOIvfE`u;C!A;1nnbC%|GLqyk9=0!PsZW-I8V+nq0B3G#{ek|#-=N0NDW8A&cP zN0Rd_7e%((w#D%QSH%(Q7WW-eNYr-7(dh;KXS5&nWVIBjS_NizYg|x=Pr^vz*7zxJO|P-dw2IeZq?gec9-rD zoPZchQ_6}yP{Slc4I!!28K==nodOJ_nsCY-(wOq2uZbLx!rlYU{KIi)_Wj!D_j`WN z^FGgREXdEDF)ewT&1Re7Tj(uBvlG44lnH3;I%IzsO|z`*Vr!`uv?9QOwgs{#Ld+Ki zC9n_zxxBOkx@@+IwMwAaD)#3Ik`}gun2kLe))Crfb7e+#AgzHGCc+X$b>qJuIf`S7 z?8b}I{ghw#z>uiaLknQh@LJUrqHcVYS3v97F^OZN zCe|7^J|?QzUx0Zu17e(=CM1fYFpjtLk|a4~$g}e?hGH0!VoBOT&<=s(1ct%J9~?O} z$)jW_dkX9yTX~%W*i_IM%0{ z7EmP^_pKn`<5>E(SixgJU};7`)7Hidp&+DLnizsebUk}_-GfgbN^il9b`v)f+ z{o5Zry)d<7`fHQ^uw_;+x>mcPw0&8iW69x{k92O{Q}`yFdH=5d$pbf49w1&NS)G+vhr6y}5TMsofQirRDUmKilk5=(KGouJ{H9hW=$X zgi;)vI!jl!_4H3jD(?Jz=8By|i47I&tKA1y9{nfp;_|FxKBDNWp{hN9hJ1nU?z%J6 z?>UxyzWvO}Pgc~rCZ#5%Eq+_hNS~bBdiGlT&f%%e`hHjSySR2=JuK2^+%;$R3#Wz~ z=e_mfqW23bPa0fhe)HdE5+GelU&!jS3ckUZOQ)CC5?mo zo=tzG_4|RuvPUO|mhCwA>y)1c%SWC%a4?a-x|J*?ch~+n=R7o@>p6J2dE=$stKZmK z-xoTRwET2^Wu)&1U7!Ebw!!D?x`xwQX3pMnrRwCT?`4GHt4&?|cIiI{_^XYp-np>6 xE^lPSXzOYCC4X`6tl@OB1M5_S7jml-Y~(TPp{aTIejNKZ`m*!Atyxdk{0EAy49frj diff --git a/applications/debug/subghz_test/subghz_test_10px.png b/applications/debug/subghz_test/subghz_test_10px.png index 10dac0ecaac608aba6d445bc5fef45d8cc1efff4..77dc6d3829b637f19f93cc438ebad9665757a5c9 100644 GIT binary patch delta 78 zcmdnWm@q-YgOLFUmU?~?08;9nE{-7;bCQ3&Kk(&z<4bks%ff8SczJwyczhUneCj1; e+>o3xgO7os)sWpNcE5BkNUNu-pUXO@geCydZWv7f delta 164 zcmYe;$~Zxyo`a2nfuYyv{9Yi%SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@3Vz$3Dl zfr0NZ2s0kfUy%Y7^zw9Z4ABU#Js-%&Ai(2t@Y>(^F=1<5c7LrCxXjW&wYI37S@L-d zlY_$z@fnP}H!$Zo$7vk6W&X_U$?=`5o}^!KkZW|QTu}SiTEL9)>@ij0zdjB(fyOd; My85}Sb4q9e0LTS7*#H0l diff --git a/applications/examples/example_ble_beacon/example_ble_beacon_10px.png b/applications/examples/example_ble_beacon/example_ble_beacon_10px.png index 7060e893db14944726f2d5141ca6fb29f5333bc8..c6aff41893af137325017726344242b1be765e11 100644 GIT binary patch delta 78 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 s&EbDf0vXfy>QBr&AC-wAfI~0-0#{d8T literal 8910 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 LNkvXXu0mjfZ-`eu literal 1188 zcmaJ>TWAzl7@kEf7@I;~nks=zCO(*wx$f*`#%yF}XLqwDyN&A>qX;^elkAYpoN;E7 zT_ad+1+A!okV0Py4WTxu1Va$ocu7nty*w!DqxewhOYlKo`cO5bXEwXhhv>kWbN(~m z_uv2drZ1mqY}nO+VOV3fM=78^gVxT_7W6*!a_R}%LS7*wW3%^LR*YCPxa}3AQ3{SH>$uMGA5P2T2Jp{6c<6W*XAQqH#%^s2xM9KFZk*3S#GF1*!&>f^% zK@ez$qdAU52+})Y`)Y->z4mn_H8l$Gbk}rz6WVy7R@LB$pCFLS>#V-n3T8~@-t~m;fvub zaw?2&QUafr!$gg1Y?8kkH}Y;SU2Q?+5*@V5TkW&nn$=s>o55hv8Yf7xu#|2!_;DXYyRGERL7p5^$LFFB*mz<|?; Yf#Gfl&tlI~4M~tLPgg&ebxsLQ0NfTDUjP6A literal 7293 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 diff --git a/applications/main/bad_usb/icon.png b/applications/main/bad_usb/icon.png index 037474aa3bc9c2e1aca79a68483e69980432bcf5..2b5a3bf97382a13e951505546ed51b9d66da0899 100644 GIT binary patch delta 78 zcmX@Wk}yHSgOLFUmU?~?08;9nE{-7;bCUnmPk5=we3+44&5=z_k8Rm<9v>c_p7rYt eJBXd6xINKS!UMvl!qLiD#K%R*5%=r#Gtx=Y8TZE6OVIIq|qj7bJe< zy5jO1=Yqom&kURC)I4#RSS)m~(!s1~YQ$5-5mnPEU&y$ua^B*sm20eZPyWJCPG4E( zI?WLzu!to{e-NRdh7!uCB1)@HiiH&I$36VRj$a~|Laq`RITlcX2HEk0|H1EWt^DMK zn-q!zT`#u%F$x5Cfo9#dzmILZc>?&Kfh)c3uQY&}PtxmcEph}5Yy%h9ZB5w&E_Z;T zCqp)6NAlAY@_FF>jJ_!g4Bi60Yi@6?eVjf3Y3eF@e*+vG0%HZrUiWx+PiJrco@w>> z11Jx2iD%?txBvhE24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007 zbV*G`2j&6<4mK2EGyVzy002EnL_t&-(~VF;3IH$&O6mV!cBetK8hQysQ-UOgfvg0; zBe-|?EECl|C-=m;MRn8Ku~%W3;1<~@+&|jU2gXe!0|UhaI{*Lx07*qoM6N<$f*l_4 AO8@`> diff --git a/applications/main/gpio/icon.png b/applications/main/gpio/icon.png index 4a6eccf0584358bbd927564b6c3dabf9a6eb90f9..7b54bb5cb3a1382f11aecbbd9e85a6c531c148ab 100644 GIT binary patch delta 73 zcmaFB8$Ch7nUMhqmU?~?08&bxE{-7;bCUOb??}BXrpCs`kpyIRHiE#$8Pi|dF*6jo Vu?0)298L%6@^tlcS?83{1OS0w7|Z|w literal 1760 zcmah~e@qj16h8_x4iS+blQ`loCprP!yOvhcOAiFfpvFQ2ILj8sj`rL3XnR-guC!%g z6WA6}r_n_>5OriujUt-p2+p8kXl9tpG9lUcLq-^x45JRS1+%E^do6+pY)OCI_kBL^ z^L^j<-uGRTsW5+e-$PrRKtwBnona~L!R4zM%2+9EyT(WuJ-NWa6x8ydq_(isQtPy6tyorO zq|Q%50XGn7)bDn&0_mr)pe_lYB{PnpL5k?4FtgEw=5jnhH42S_z%nCI9dEUf#rij< zo#BeY9HQtUaop$gDSYV)j<@4VtyYT@DqN+KLxx-kup;f3v%*?QBBY@Qf`w;1BEzw$ zq)AtDUXj8uh@;cuB4e9XXNBqG!$jZ`f-4mS{yZJ{nMLRlGLP$o z&vS(7TiC@9&vd3g)Ss{yRIHkb)1 zFQmau+rd`A+C>M2DTx<=?TqzByCmfDN|o5gGH`3vtc!UTqp%DWuAGI+7KEf!lP1Ow zTxLDv2CM*8XQG$|%N7B1ITy#5z_tbywn?K&*97;QsRbFtjhq$2=`TQr+*}jS*%%kZ z@(r+YE4_?MlrtVIH2ddM&^j z3>C_SP=T|FKAH#Fc35Q!%eL7VSfl`IlG+zlp(+KTP|tPoIRKPf{BZbmXt;Fmp2eoa z=S8mz5}v!L&@W_z0{~7Ed}fru#mq1QESx|*95vss`9+B!VY?YvnE3@kkPZ9m_EQDD zo0G0r^jGDbj;@KRzF|7DF+QPsAT_=%=TyR5UgFYU%UaaQa>d>TXHU<*>!%xcU+9SL zXh0u@jf{;RAH&u?#ZxZsoEYwU?ZJKO{!m!Xmp9dEG2!a&suQu*%1_G^8qdYVY|g42 zJJbwr8j53&{&sgw=9Qtmz@f=YS^39WE+h`eHQAf#H=8ncp3FG2Tcy_2=e|;`v)W?T)HzCD&GN>rbh;(bdimjkF(hwtI`7 zerqbMDEpoKVP*39o$Cr>+P?TWw(k_SdfV;JtNYxS1F}cQ>eIUKom1~?75P%ENV#B?PR&Lb*-5QGoBgi((fy> zb5lo|zbC^ttl*oL9*K&DZ;zKf1!V$)EQ^!AVMt4BA~b3Z`s~uggI|53j7Es1vYx4_ z=I9e!lEzKzS2UPnkpqF_t8X7v6MqhT(E8rj<6Re5{q*aBxZXxZxlTB_{+~gr?QQAB NWXLPjcjUa=@GmQdSu_9u diff --git a/applications/main/ibutton/icon.png b/applications/main/ibutton/icon.png index 2fdaf123a657c00c9c84632ca3c151674e451ae1..f73af065f427ec8fde39168d406f997665b8a842 100644 GIT binary patch delta 66 zcmdnMlrTZXM%~lJF{ENn@{i*Oer%ulQl9zpeCD27H=p;CGtL<>&pI=m5)bWC*+s&X`qmbr;B3<$Ms~3f`-KX%+5*7 zhxan`%;z`w!#>%c-@wM^z<~n{3>VXQv+hhNs0FH5Epd$~Nl7e8wMs5Z1yT$~21bUu z2Bx}(CLxAKR>lTa#unNJ237_J>nn=CplHa=PsvQHglaGb>IpG01*)?$HiBr_e$xf$ PHwFezS3j3^P6<>&pI=m5)bWZjP>yH&963)5S4_<9hOs!iI<>&pI=m5)b(dHL6nbwD9yPZ!4!j_b)k${QZ;XFmLn zjqNsD+YPq1J8W%_*aXBie!OR3*tC!PwU_7Q9H4U564!{5l*E!$tK_0oAjM#0U}UIk zV5)0q5@Kj%Wo%$&Y@uynU}a#izM}XGiiX_$l+3hBs0L%8o)7~QD^p9LQiz6svOM}g O4Gf;HelF{r5}E+GUQp8j diff --git a/applications/main/subghz/icon.png b/applications/main/subghz/icon.png index 5a25fdf4ef1c6cf53634aa74675001a3e8c85b7b..70940ad77935c769ca4df4b73621723e6b812316 100644 GIT binary patch delta 65 zcmZ3@6hA@5TFukNF{ENn@{RWgW@w-JGO_U`H?uG^^JG2d$tM|)oll=BAu&Tjf+1%M VTbRvDTP6k|@O1TaS?83{1OP@`7iRzf literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2xkYHHq`AGmsv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpafHrx4R1i<>&pI=m5)cB{fFDGZlI8yr;B3<$MxhJ?+;A4eL&#) z0Ra}bue?07WhLz78x$BO|L3mq-MMxdP^D^#YeY#(Vo9o1a#1RfVlXl=GSoFN)ipE; zF*LF=Hn1|b&^9ozGB8+QQTzo(LvDUbW?CgwgE3G~h=Hk=Gf#{`fVe+UKu0050L&%FQu0fcEoLr_UWLm+T+Z)Rz1WdHyuk$sUpNW(xJ z#b48EMXC;V5OK&*oh%d;anvdlp+cw?T6HkF^b49aBrPtEf@{ISkHxBki?gl{u7V)= z0pjT7r060g{x2!Ci1FaKAMfrx?%n}Hqs%lb5Cb&5YNir#e=(C?6@#x35I{d-=$4sf z%t=xbp5yBtKEB>Xd6xINKS!UMvl!qLiD#K%R*5%=r#Gtx=Y8TZE6OVIIq|qj7bJe< zy5jO1=Yqom&kURC)I4#RSS)m~(!s1~YQ$5-5mnPEU&y$ua^B*sm20eZPyWJCPG4E( zI?WLzu!to{e-NRdh7!uCB1)@HiiH&I$36VRj$a~|Laq`RITlcX2HEk0|H1EWt^DMK zn-q!zT`#u%F$x5Cfo9#dzmILZc>?&Kfh)c3uQY&}PtxmcEph}5Yy%h9ZB5w&E_Z;T zCqp)6NAlAY@_FF>jJ_!g4Bi60Yi@6?eVjf3Y3eF@e*+vG0%HZrUiWx+PiJrco@w>> z11Jx2iD%?txBvhE24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007 zbV*G`2j&6<4+Si}m`RfW002ZuL_t&-(~Xe14FE6*1MP_YSH2VxC=CcVG=4FF76?hQ zJ(2+VGu_$Lww$bV?L-xwgs#TvI;F4-w$bY`0j%B=Q{0aW)?_jMUQ$)>00000NkvXX Hu0mjfRdn(| diff --git a/applications/system/hid_app/assets/Alt_17x10.png b/applications/system/hid_app/assets/Alt_17x10.png index 78529ca07d7d8b0d3767b7536a91f8f42cc67ece..54c4557bad508a8816d2a9bb78f6ecbeacbd37d8 100644 GIT binary patch delta 69 zcmXR&nV{mJ?djqeQZa}1;6lL$0|thTA9i&mFX3xVy?;uJN9FkQ%==X*FYPnom}#~A Z1M>kkwkh=`JF*ynz|+;wWt~$(69D9+91;Kk delta 81 zcmYc(n4sdrS>O>_%)r1c48n{Iv*t)JFfb^2x;Tb#%uN3Ae}Ch{;!5Vj(E@&X2^Ad4 i%^%*eu}!cMU}l(gQ{-W`r??MLHG`+CpUXO@geCyWQW+)y diff --git a/applications/system/hid_app/assets/Alt_active_17x9.png b/applications/system/hid_app/assets/Alt_active_17x9.png old mode 100755 new mode 100644 index 46a21a2e85584b6d8cbd4923cbd6787b2d5a0041..bd1adf606d0d367d35b55d5b646688187e3a493f GIT binary patch delta 75 zcmbOy6FWh|m5~7m{!IS05J;(bx;TbZ%wavKD9E6|z_9Tyx5%UmElNU@7;+NwcsH4> cms4b~v3SLtd|Ts&15iDKr>mdKI;Vst09dsbE&u=k literal 3614 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 XbPZ5WQgh&4Jpiyax5HInJR<)M%F{Bk diff --git a/applications/system/hid_app/assets/Arr_dwn_7x9.png b/applications/system/hid_app/assets/Arr_dwn_7x9.png index d4034efc432b102f6f751d001dc6891b0763c55c..dc97d3abcd48580f0869d2e3d9dd2e90574cb96e 100644 GIT binary patch delta 61 zcmbOv<3B;doRI+tt|@c#0Vy$07srr_Ims5sjxaRx@bLKZ9GAGq$RM1>%<9KyUIbF< M>FVdQ&MBb@0I_ZknE(I) literal 3602 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 JTZ;Aw|2NmVF(Lo} diff --git a/applications/system/hid_app/assets/Arr_up_7x9.png b/applications/system/hid_app/assets/Arr_up_7x9.png index 28b4236a292708b412629ffafe30f6d011491505..4e199c7d053e412139101955ad9390acdb48b85d 100644 GIT binary patch delta 61 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 literal 3634 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 F2>_C653T?J delta 83 zcmeZFn;_xG!N$PA;B-v27D(xMx;TbNgqNOj{yjUfWX-fE0bCa+Md lj7UvBS!;1QL0)Q=zORYsj~s^J?Ld7Dp00i_>zopr7yt~28Xy1w diff --git a/applications/system/hid_app/assets/ButtonF10_5x8.png b/applications/system/hid_app/assets/ButtonF10_5x8.png index d1a7a04f06dcc4b5446aad5a40a9863038bf56b5..a817cce367839a5c48844c7d51ceeb531d008aad 100644 GIT binary patch delta 63 zcmZ3(7&t+~l92%jB)d4K0VxSj7srr_Imr_eyb?Af6eR>CL>xGB;0OZ)zYXKgXM5A@ PKx#c*{an^LB{Ts5K9CdM delta 155 zcmWGs!#F{ro`Z>jfnnd|ML9rEOCt}an8@pP0cG|a4t$sEJ;mKD97&t+~l92%jB)d4K0VxSj7srr_Imr_eyb?Af6ea9BSkTzn*vZHs>cX_xJLlkk OkXlbyKbLh*2~7Y!V-vRk delta 156 zcmWGs%Q!)zo`Z>jfnnd|ML9r!MP|ku_QG`p**uBL&4qCHz2%`PaLR7-P6S}gyVX0N<-uS z|No5*3=9rM3LNOr>2#G-T diff --git a/applications/system/hid_app/assets/ButtonF12_5x8.png b/applications/system/hid_app/assets/ButtonF12_5x8.png index 50d2a7dc63b9d366ccfbacbc05e6bb0d9e335b5b..a50b16ca319d578a3059061b9ad9817585ed4c8a 100644 GIT binary patch delta 63 zcmdnO7&t+~l92%jB)d4K0VxSj7srr_Imr_eyb?Af6eR>C+&J*1`6WApa1Qg%_o1`T PfYf@r`njxgN@xNARyP#h delta 163 zcmWIC!Z<;qo`Z>jfnnd|ML9rzopr0C^!XumAu6 diff --git a/applications/system/hid_app/assets/ButtonF1_5x8.png b/applications/system/hid_app/assets/ButtonF1_5x8.png index 7394d27105fd0a27067803bfd633a26bedd0f1d5..53a30974ba8357bb83a3813d887b5cb64d16a813 100644 GIT binary patch delta 63 zcmdnU7&t+~l92%jB)d4K0VxSj7srr_Imr_eyb?Af7$qbnR2)2V;0OZ)zYF8#t2+c0 PKx#c*{an^LB{Ts5H4GCj delta 160 zcmWIC$T&fwo`Z>jfnnd|ML9rHVG`WQT2{an^L HB{Ts5ioP__ diff --git a/applications/system/hid_app/assets/ButtonF2_5x8.png b/applications/system/hid_app/assets/ButtonF2_5x8.png index 9d922a3858147116d65b6f03e2b36ea846b2f60c..df28654a5ecdbccd5abb56cd854325944b409fe5 100644 GIT binary patch delta 63 zcmdnY7&t+~l92%jB)d4K0VxSj7srr_Imr_eyb?AfJW4Q1usEP{@Cy?I{}iUpciRv3 Pfz*1s`njxgN@xNAL`xJY delta 162 zcmWIC%s4@!o`Z>jfnnd|ML9r-2*BiKe8okATbEf}$2-L~o>FVdQ I&MBb@0QaUb(f|Me diff --git a/applications/system/hid_app/assets/ButtonF3_5x8.png b/applications/system/hid_app/assets/ButtonF3_5x8.png index 95c2dd4f4198e182a1a62927c4d3627400a7b883..a36cd56b9c51b843a362b5f3e3bbdc18acfa1c4b 100644 GIT binary patch delta 63 zcmdnQ7&t+~l92%jB)d4K0VxSj7srr_Imr_eyb?AfJW4Q1usHCc@g)<3;2-8f#qOgU PL25l+{an^LB{Ts5O868& delta 161 zcmWIC#5h5so`Z>jfnnd|ML9rI OkXlbyKbLh*2~7Ysz7tCT delta 160 zcmWIC$T&fwo`Z>jfnnd|ML9rJ<4Yz6!4T%i3y%DS OAhn*ZelF{r5}E)(E)!1x delta 161 zcmWIC#5h5so`Z>jfnnd|ML9rhT|;+&tGo0?a`;9QiNSdyBeP@Y+mq2TW68xY>eCk|AkJ^JsK#dHZu6{1- HoD!M@ diff --git a/applications/system/hid_app/assets/ButtonF6_5x8.png b/applications/system/hid_app/assets/ButtonF6_5x8.png index c50748257ab8e06f90007e93b913d5be4999d096..1009799a56b9405c8aee4ae81e50b79d261b7c22 100644 GIT binary patch delta 63 zcmdnU7&t+~l92%jB)d4K0VxSj7srr_Imr_eyb?AfJW809U~xd@z!ydazB^2_%XQE0 P2C4OQ^>bP0l+XkKNoW)- delta 160 zcmWIC$T&fwo`Z>jfnnd|ML9rBz^R zz|*|qa`l*+tdQV~NOD7yoWltbYcmkHOQ`&t;uc GLK6U47Bj#A diff --git a/applications/system/hid_app/assets/ButtonF7_5x8.png b/applications/system/hid_app/assets/ButtonF7_5x8.png index 396c98f5104f94b6310593ce6c7e6ce3d2369ef3..a6c44ddd8e1325cfdbca381c9c93385f8c545f73 100644 GIT binary patch delta 63 zcmdnM7&t+~l92%jB)d4K0VxSj7srr_Imr_eyb?AfJW4Q1_;KLKfg=nI{2`2w_kH-k P6r|SE)z4*}Q$iB}Y48=` delta 159 zcmWICz&Jsoo`Z>jfnnd|ML9rhT|;+&tGo0?a`;9QiNSdyBeP@Y+mq2TW68xY>eCk|Ak<>}%W!f`#d%aM;k zfu}j)|NqZ665^}pcy-C_k}kM*?Dv!DFRpe;3UxjC%6jmv;2+EUN-m%_22WQ%mvv4F FO#o2OG-3b% diff --git a/applications/system/hid_app/assets/ButtonF8_5x8.png b/applications/system/hid_app/assets/ButtonF8_5x8.png index 6304d7fb888b2cf38c54e7124aaa604d1610629c..a789a0f364f3d6d93555673792ba616269cd0852 100644 GIT binary patch delta 63 zcmdnM7&t+~l92%jB)d4K0VxSj7srr_Imr_eyb?AfJW3EsusEP{;0q%I-x8+D&2^Dw OAhn*ZelF{r5}E)ppA!!N delta 159 zcmWICz&Jsoo`Z>jfnnd|ML9rBz^R zz|*|q|9@k-o?T~L{Fb)#ay?n&n)PJr#rUt1*Vn5vs^u*g|0;g=R|-%YgQu&X%Q~lo FCIBLYGoJte diff --git a/applications/system/hid_app/assets/ButtonF9_5x8.png b/applications/system/hid_app/assets/ButtonF9_5x8.png index 148e69580f1d71fa3d6051743329e52d50fc7b5b..222b2e151d07f1d2fb955a1bab63673c4ec41672 100644 GIT binary patch delta 63 zcmdnY7&t+~l92%jB)d4K0VxSj7srr_Imr_eyb?AfJW3EsusHCc@g)<3pbT>$LuH)~ ONUf)jfnnd|ML9rwc6x=<11Hv2m#DR)*JzX3_IIbtBG&KJI z|KHfaz~E4%z<~~(lMN>moy7nC|8L(_C&DMAtjs-!HIad#^R)QSu7#$DfI1mGUHx3v IIVCg!06al58UO$Q diff --git a/applications/system/hid_app/assets/ButtonLeft_4x7.png b/applications/system/hid_app/assets/ButtonLeft_4x7.png index 0b4655d43247083aa705620e9836ac415b42ca46..7c43f3b04d49a12cd2e9e02c259d0dabe251dff3 100644 GIT binary patch delta 61 zcmZqY_MaeO&d2}+>~a@tfs~l1i(^Q|oaBlFUm9LAFf%(dA7*T0XHcBQvUK|rFFTM* MPgg&ebxsLQ0P}VcPXGV_ literal 1415 zcmbVM+iKK67*5rq)>aU2M7$VM1Vxif;vTv~W2u`S7ED{V3s&&L*<`XiG|9wd+THd> z5CnY!sdyuJtrvQyAo>KpiLcV|{Tkc)riAbluXfwSZCApL`ztB&p zx6LGKvks4K_4~)qD&oGa-YdJlW)hAKMNJd7<=t?6c^RI1>c$ifyjaM>^|&8!ey zB4!nh9u>5uen6Ve@<H5rru6h<2Ef#GQdQ*CmZOlQi~N!?9H`Rp;C% zU}CB21#?;r`&0|6C0}b-=jODa5|nEJ#ntxQ&{~jpgtwDta4hftr~G=#p@V36e4Zjh zq%J~{y26Jjn=1Nw-l*3%QW5YFE*v4z3gt0$&(*xf2en34c?JpH8+FYldo+Alvg8af-pG4(=!fyUi-Wsg z`g#n9VUcf(DFr{poMSNzw-lz>w+HV+n1ELr&SLA#LHUb0p(xWQ(1*vJ-i+1!`swxZ Z!O7;c$;lT_->m1Ovaz)0yuI`A$q$F8u*d)a diff --git a/applications/system/hid_app/assets/ButtonRight_4x7.png b/applications/system/hid_app/assets/ButtonRight_4x7.png index 8e1c74c1c0038ea55172f19ac875003fc80c2d06..31de21c0e2d383947ec4ff7c00ba44e9a9f5a475 100644 GIT binary patch delta 61 zcmZ3_=RZNhoRI+t*yS$P0x2<17srr_ImsFc1_=TQ2|yf_P{hE%8O5mTc2;W-NTsK% KpUXO@geCyKoey6C literal 1839 zcmcIlO>f*p7#Yw)M6zw!O+@VZ{?d|D~WYi~8rHRY?X-&T}Yen`g$^+EJ;z+|RV zE@PoDvZ9%#+_}3bC_5Cj8jDGq541mi{7F+&KF}W65sr$Xn5H|YrMQ2(J7%Yc%;(zO z57ax000=TsQ+1Ke@+w#iw3au3cGGQWY740k2ijH>P(6tD)S)be>gX6Tj7`<`b>di- zgWp$8Y+?i31~CzF0&E4uRlA=C(Mp~K`{74jEchB|)4DDK!ZVhSwdFyw0YIZ1cDh0S{OvfO-U_~ zvmRF*m9sWDXNH)GOyqS1Skhxbr6}s*7t&@~kFM(NW5}qh?Lu@lJ}HE;FDiLdGO>LO z5pS*%E2grR)l^;|?O5b_?u0me&c1U}%jrk8*%=Wk%i)8yp2P|kuxmKg<=(u_`oQRI_0 zS`-DNysBx=#3&qSkgA@hJP>~D+ZM(s5jI6Owp`?yE=3e`YGUqkVOp#Cp=3wR3O4hX zX6BLsN3UBzV(vI5;|SZHgOb=HD0VFjpTyfFW}GnQuh>2*Q`k>*cAmA#iUT7EXSpo# zkPm5~#I-o^cpgfe#P$=4-Pi*SpT!-@nJgp8L347xe>5EKl`=_ZFc8XGy+_j=_R_7! z@vZZMowS1GJ?Zw)eetks%~G{BTR>T}9|jt0j3Btyb*C3-`C?fwY3EY`q*oYZ39DpM z&uJ;PCZPLs4QO1Jd_|A1PF)azZJ)RZ`^-VMWr6e#XUOA%3eLG_Ch@BDOHzMk*MF0G zCo7xMd?Mg*HMIXw%nNz?%60fZiZPlqb?GqUpXO`F&Yi!okZl(n>P@r1P2i)yk3DgRwbHeNn6e|;J^SK4TM LH~i+q&mR8;k>NTA diff --git a/applications/system/hid_app/assets/ButtonUp_7x4.png b/applications/system/hid_app/assets/ButtonUp_7x4.png index 1be79328b40a93297a5609756328406565c437c0..48d0f9f018c427711451652e88e697b4ca19a094 100644 GIT binary patch delta 54 zcmYfEoFHMy$N&UcdnGOaDFIIx$B>FS$rZ;-nlt&CnHhMwnA-OxGVcVb@pScbS?83{ F1OR#94r2fS delta 83 zcmeZFn;_xG!N$PA;B-v27D(xMx;TbNg!}e5@-Y~29D4Cz{_G8*+0QLPZ;y mCvnJ|Wh8!?z4yAUT$r!ukIjxv?|}LkJYD@<);T3KF#rG+2^$0e diff --git a/applications/system/hid_app/assets/Button_18x18.png b/applications/system/hid_app/assets/Button_18x18.png index 30a5b4fab236d8b57242559ef94fb1c5dbb5d10a..2334dd8be080864f1de5b58f086b9e6825624c9c 100644 GIT binary patch delta 78 zcmbO!lQ2QTgOLFU>b7qF1*FtHT^vIy<|J1fC}>FiU+=z*m50xVhlgiL0^863JU*R0 ed_3$Dd<+aO)$9*4kDvJo((38z=d#Wzp$P!ozZr1= literal 3609 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 diff --git a/applications/system/hid_app/assets/Cmd_17x10.png b/applications/system/hid_app/assets/Cmd_17x10.png index b29da07b7166bad378fc1742bb8c14c683adbb0f..68b3be6068f9a6ff356699f03fc94569f1ef92ed 100644 GIT binary patch delta 71 zcmXR(o1o&P>*?YcQZa}1pd&AXg20gjdBQdc-+L5TL{B&{?N3(ot(4NYFiTT>z`T5k aW+VUkGaOcPGo&ss0D-5gpUXO@geCx6cNfqA delta 85 zcmYc*nV=HDS>O>_%)r1c48n{Iv*t)JFfgcjx;Tb#%uN3Ae}Ch{Kl|C*-a70_cV|9) n&w%3|*O7E(DG7&94m=F=f<)ZQrx%6*buf6k`njxgN@xNAeBm4m diff --git a/applications/system/hid_app/assets/Cmd_active_17x9.png b/applications/system/hid_app/assets/Cmd_active_17x9.png old mode 100755 new mode 100644 index 9d31b4eb3ef642f5125c8756c0cf2cf97f622ed4..9f9cdea9962151c529de5684f3f66da99c989285 GIT binary patch delta 78 zcmZ1^lQ2QTgOLFU{!IS05J;(ex;TbZ%watkD99inzbP0l+XkK_r)9K literal 3618 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 bG(Rw&RN`=2^zdL30}yz+`njxgN@xNApc5J| delta 85 zcmYc*nV=HDS>O>_%)r1c48n{Iv*t)JFfgcjx;Tb#%uN3Ae}Ch{JNMbzavk=lZ*5Gx nAIou%?a1@TQW6fI9C#QurHf9m%zx+))WP8C>gTe~DWM4fqm>=E diff --git a/applications/system/hid_app/assets/Ctrl_active_17x9.png b/applications/system/hid_app/assets/Ctrl_active_17x9.png old mode 100755 new mode 100644 index 6fade6dd77d8bbddac2007450589286af18951fb..c16df04ee42b03abd79f45b53b536d5893f10d61 GIT binary patch delta 78 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 Z69o8o0PsY2>?1Z2ur#&9Rbt#D{tY0lGRgn| diff --git a/applications/system/hid_app/assets/Del_17x10.png b/applications/system/hid_app/assets/Del_17x10.png index 95cbf7d5bd90cf775fed9f8f780933b94c5650ec..3fd55e92f27a0d18f456f5d879b37bfab43a0c00 100644 GIT binary patch delta 70 zcmXR(ouJ~Vzmvv4FO#pW)7XttQ delta 85 zcmYc-nV=HDS>O>_%)r1c48n{Iv*t)JFfgcjx;Tb#%uN3Ae}Ch{AK%&9ZY$*6J5cc2 nN}!wBa6)~|u0}=`{v!-44~Tp+Y+NS*)WP8C>gTe~DWM4fsSzEm diff --git a/applications/system/hid_app/assets/DolphinDone_80x58.png b/applications/system/hid_app/assets/DolphinDone_80x58.png index 594d62d5294997399bc3b256fbe7685ce10b146d..881aaa8d2aa6bbe8d563d04c9a0f445cbbbe8be8 100644 GIT binary patch delta 434 zcmV;j0ZsmZ4Zs7C7=Hl(0000F1>-yb00DM=Dav;R zfV4N%e7sc)sXx_pc2Fw=j81b1#%aC+R)BGZ^ANyboj05SnF4fD_c*OpN2!+mz~Ka7 z3Km-T0Br1Ck$;>G7%hzpm;o#>(B0oZWZLtC6fbZ2bdv!0Ex!*$+{b7B$=c#IzgMj! ztOXzjdxYl~&?=}DRlS$)`c#T48)<%E%dW^9z}N*=&Mo5uxEvkQD5|fYim%L_^?(QP z+}!6EKs$FmW4A{R1HNYLZm|v<>=+L($ROj3(S94c04qnv>PsvDn?`FN3gFs6Nq^G- c+zoL32S{wWDTQ(aX#fBK07*qoM6N<$g4`LtCjbBd literal 1664 zcmbVNc~BE)6wheY2!uKFLY*phgJAoI;~(9b-S2(h_kQpF-Zi@^ zF+PgtHqDL0;qcVaN)5Xvvag&wj{R2ntG{IzUnWw^ETRmI4WkK8n4Z!RfZBv*5gG#1 zJ63#0gm5_H9b}T0(Z(&5iMAyfDpT!HDDqb46vJwW~kNcFY38LI^aOT(OO4TNw@UFO4^9 zTaz3X0@M&zDwoFDnivAcz-<2B?#QLcvXLjyBwHBFsHE^*6Jci5N(G<25$Z|3oFF79 zt{0&K1d|yAVyOrc=nxShkm0BVg>_OwC(@1Cc@tix3X)1BkVqB;1;KD+Br265;Soxe zN-Rdg!lmdKR&BO2m>DO=e3Pv2Q7rOStUQ7yFovR&D9Sk235nShLs_#a3xG(35HLFq z!%4I2WR9y!uYy(*G?_=}RWxM+M$#-N-#`HpAu80Tmd;G97`! zdI?Mr{87CA|E3RQNrA3j`A_eR9kC7R5?@aPyLmlNgqa;8nw^%VblFu7XWV|ZGAzm7 z-ns8C-3V|CWLx`RUVV5?e=~JLXGNd*gA2VSy}M^liFW=t^rC%5`mI^MKJ^z*yC+9$ zK8y8opgw0i#OZbK-@bIOr+sL3X*0ny?F_5$?^u;L5LsJ%K{s=fe|&Jv>M52PH5+{E zciwC+?Q1wXec-Dn?aE=B+ip?UBV`Bm*T(s!wWZ~plEuod;*9$(j?$d6^(EcKbW!X< z&nIP6%$5Z)#Sc{zYqC;eHfJr#r`xJt{34$f<9D)}sVN9J6SzfMQhTpr?kB2_2ge#4 zPMiznH%5_{H{8XZyCE8Z^qt3(nNamZCKd_dTt1 zybD4vFW|RcM-rOAUY>VP`H4R@hUX>mS_}#FURP5QO}9;kzD&7Mf0X!18#*Cy#s=lb zoGCF8teZgFA$ z+RoI3!Q}^!2oJhss<8vOJLqi_j*V;@D?$qOzS!qAdI~fh>f!$Rlk&;`Vf`4<% z;twaDuf~1bzjhOXb@_XjZ49oi7zcZBs XY(V!OcIS4x{t4>Hc;)f%%(edjvT}hx diff --git a/applications/system/hid_app/assets/Dpad_49x46.png b/applications/system/hid_app/assets/Dpad_49x46.png index 26e30209e73cf335721ad5de82af75e923527e14..82ef51448bf0aa755b4e838cff42692e82c75db0 100644 GIT binary patch delta 216 zcmV;}04M*p20&aD{;7v2a9d%`QFiab+} zB4HFO48lWkhh8kuZM;DUZUbU=`BDVS9>H8-$|GD6rWrYT{V(AWE2e}k%~M2*4f>e+(dVF+l3w3){Ue~JI;KrgU+93KHF93 z4_=}oDniMF*Psp^BlVDY2qNo{haiih!XzSz4nYLlH>;~1+6HFc`yTK2d%yR+H&;@< z#~Zx+y%>fyB;sNkSq8mijR$=nF7C)8(*&dau+JQXdD#Y7w`vXmJfX`ukOs0kcJ?Xg z#4t~*mg$H6Qc_S%os``ivY=ZCjbWW#1xr?j0mKJDPBX&9`ut-8*VHg^ij!!`ihv<4 zK5m1)@!pIwKCJL6(RB>(EC`4|2T;Zf`iS8Og)mX#6_D?SDFQF0z~L~lA*x?W;StjY zI8QP@g{B!ih`f#f8{+w3FxZZ>H0!760L5}X)-P~Df$6|E9|Bdh)j=UG#y0DrQh z(S~kq(HhR?RiR6x3bI8pB<;3UPL!nor|SAvwgb~(Tkk)Koy?d8s5EfQQCmU78*Fw< zSwh4HGBoXsX^xa{GBspE(-|@?oaIOcZ;@n0Gu%jP2_i{C!f>E$C?Fw*2}D9_nkx7? zk&kepV1x~IFibSs!v{JdfmoZTA`B-aGVX zRHu@eXt7vC?#adF3&`9`h~1gO>#tLZT?=@<=X#IgwziYnS#- zKB{%D))Mi%8Dj3xOkGBx>gE-;p;)HpTMSo8c+ zefBe`n$2DO@a*T>{HL8qR*m&y%g0yW)(*!mue{7(*Rsh2%KfI>%hNBORKFi-nv_;| YXR*jEHmfYXNg{DrBHAlH=*dp}0hQ-mxBvhE diff --git a/applications/system/hid_app/assets/Enter_11x7.png b/applications/system/hid_app/assets/Enter_11x7.png old mode 100755 new mode 100644 index d41b8feffbd4e7bb584ba974d5f860fddd9faca9..1b07df2cfa42cc7fa9726ead54f75f89e1118868 GIT binary patch delta 68 zcmbO!6E;D@j*$TfzKM2y08+A^E{-7;bCPT9C%$B4c4h_vAo;k`QH_<2!N!6m{X>rU PQIG~tS3j3^P6VSw+1wo}3 z5fnr~X#$FXfb^ym5gp(TMHp!}%pK=`KR)kS>zw`Wy`JZJ>t5@`ov0Z>l$#kONo#v&{>l3RO>)5c{ z)^tZHevl*PdYELQvbutRxK*q|&ajk2<9<_99=Z1HSnl}vup3ei8p78Ehxld`?#D+y zh`sh^^JDM>pMkpdPn|nY2My;+Rx&HQ`5O3zlPwSqI$^?vm?Qf?M7FiGew=|AhYKn( z0CE0Gl7j!XA{Vd`YG7~-+`#t&;0ovy;s+XRGa9rG$LxxI!K9t$3cJeHz)C!B%^xNS z7zf2;@&IEquCUBhWhWq;2XOE3^q2-tXaepkS3dOtVVN6g!CZjbZ3QW=>_h-`fE1Ex51co#LElU?K3!uCjXy_6bssQ+f0WF8vC^dj57;tY_R15&F zrU8;>%Pt0g94ix_Q|DAFt-_#2327Sc#;@te=i&l6qS|FCb4*f~_zN-J7}6A&CJPVO z7W=UB767snr8wEHYzK6SmUVUM##f1+)BN(1cNgs8F}*X}UCb~BfRC)uo*fNn<)JWr z-Z0wE{iBOK-e-lfFRowrst_}N3S`fZxU4YtYGaynvu1dBc4lVCss-aleB%j%;1oN$Gq1`R{K5&brM-4$; za@s+{FCLeEV+EcIj>Ftidv&yTmozo0vB_;XsRNXsH{=RV)GRpT$^Fe*MV!EDm|6#b z@d?^tt0}Y8r@kgukH?gZ!E9f;NTsd#1MrvIX@Fc zGsM0V`Lh~T>%s+iOxpPm5EVvZxje2B6yy12(xNsL8ZCGvt}B6F$4WYYtrK-DV2;=D zAZH8tWi;~_WXx%^=ZX6506bzVy3QPSJG{aH{a*Mfwx&Su&{ebhLhnc{SbBnVcE&sA zlSAkmx;b<2ioL}~5)83zS`D8M@*!F-XhB+=F^`XH2qbxSJO-Bt7q=cNKUuWdy&d!B zpHn__ud;)>rHQ4{oeAny>X)Sw z-w58Zx}$tYP92IbEXpgIC=zmBaqhq;6rOboDKm3MI87G{yiYE6F3LRd)k)5YQm9`L zQ$#7C$({(YSLz*;BwX<93-^?@?4vVyX;?HAj{ zbVu8oJheQ18-1I$&bOWSI|tHqGSIL=_*}+Z#$d)|wfm`nQyNtTRnN$l6*H&uTo&EKD2W0z!CoHamcF8`zIbyZ=tZ29aE?`T;Sttx~_ z@sOcZzbb29OsY=`c^>lHHkwZ)W>~aX{*-*E{}ZMp>Lh9+z3c9xQOK*+GpEQf+WGghoMzcU|$de<^DDl?iE z3Pv9->Ml|jW5({i)xM{e<%;ls*W8Z%;4s@`By{hNmd|8Ks6Ey`obq%|5$Xv|bSWJy zug+x`trM4I48IvN?@b#{8|Y2ICtT0H)oZA3ukNsKre~dtn#5jF+$HS>?e+lqVMnM)aO*KR0THc)7mqCu9;VFIXQ&Le$H2eJ{M2+*(+PnaZ3Jnhuspg|?qz1m<)# ztw!Zb7eXX7P|3zNv3AFA|I0*Ny+HcL(d7f|qw#`)P4Z0?FtkUvCw2&XTK$OKvW2>B z(5>GS>vRH@ULkTdW^1mh6yB_}5wRK1KxIj%UjotKXjDBc@>b$aKTMH=ZBiBG3+0p7 zrH&GERK?CK-|N-TBX{^-`&8a6+2^V$ScS>^j6bD1sLoeGA-j0J?2LPZOfJqk*17Pu z^3CW?y}L{Ib{8a?BtG7%%8j;m(Ud2AsxLW@tT6Bk92K0F+IKAaByWkqvujoAw0`^I z1(%ev(0b({Tc7Z=jc+0vpK|$p6>=7wjSBfXHn?!co&a^7d`kQtohfH16?d&na#SWo z>dKJnSir1Y4E@c^w6WVy3X5B6NZnq&Uh|(OG_%}9lZ#S5rHJ~9439h!nLPPqVeOmg zC^V&0b+k6J3S0BwrNOg0a{lYCPJJW%L;NcKJ6?COcl;@FaKpD}Q7*XdoA&Shqi%KU z+lH@Sj5>2U+xC0)lQ%6lE7y(6;)>=sk~e8*O6_QV3vJxJ+}nJLqE&-6@B8I@(Rjy% zfn#6IMcaOTv6H#P))dhdasKUY>y#n`7dSJ&E-<-%LHnljp_gOV7nwAA3!Aug~e%>35x8e#Tm^7@a-f^2{au5$YW63+s!)PEwzJ zTkYN2^s<`MJ~fL$^-qJn*5~E2^t#4Z>jVFg-W}-ALZZj(SAyv4uh!QlrN={=D%)Kh zwZm+c#nL+ax^t_>3ns(Z@tA%ix1F(}rLimL8`#+^J!9tUyit+eJBe!vV%U8NX$c+C zBGF&7jvFG8Q%20~`K^3xH>q1WOJ?W(PDh!HG&FRh|Lb5^Pijw2%5qB5OWNh!?Jo^q zWgm^UHnkpk@j3tjJG**vbD@zv#+F}tFezp~a~X6+b=UjP$7@dS@;8%Ylah9MxKmfQ zmUM1MaQ-W0S*8S*6Wxo&CNjx@35o7O23gXG6tW|kNDB0OO*Q}kZZ#^Nz#`b%pgid` z2yqVs37|1JYydDY3SbaDeaI}32bn_kMT3`WUxGnY5*qBHW2>YG7C}t1Q;;3r zGswpiNdg-gf(!ys903}cMFa)VF8KPR0?^>UbWt38?-&XO{RLt9puztMieP&Jgrzgd zAS48)>8Yg!1L<)rZC&_rBvMaLPXh$kf+L_>x=^@|CLDp%(L=$sL4QABjz=cR3+0G2 z``aI9hX#AISPT>t%4V}6Yy^bPq(EUvBoe9xhr;2S9E7HSpf8IUpy}(c_(K6l_V;8` z87wN@7qq8H^q^m4p~0MJ|C0ud@sF&p|KFwJ6b%|cWI$mMt-Z8<0BvpmHy+w|5w-_AIKm>9m)Rmi%d^W^Sl)ITrp5sCYi{hGx2o#g&&nX;Z0}J{k`c75L^cW z1F6~)J*mEXCu)CDY;94NzWywtuP50OhX!**AXF*|rEQ9VAJ@UcO|V)x7|hfZsbhw~ znBjB~2ooFvj@ACb#nC-4(#XE7A6(LZxrm=~_a=hI;CRN7nbb>Uk{Odu1O1gXiu&_d zw0^4hH<$GDSYSWpLOH=e_j>z(di~>wGeCRhKhw+E{4@V#U(V1oInzzkOxxt#4Bitq zcvH^0yStk^d~cj%DO%!8@Bt$p?j#b)orjB;msgyNf^g?+pJJ?uBit{90o=g8Uf?J( S#$uWS2P{qPaAg?xh<^j66EJ`P diff --git a/applications/system/hid_app/assets/Esc_17x10.png b/applications/system/hid_app/assets/Esc_17x10.png index 83a6f225fc6b715d49746579edf2e5b1f98aa193..bd7e3cb963e4c62056ac8490e44c8e0c51d89388 100644 GIT binary patch delta 75 zcmXTTnxNul=;`7ZQZXm_&-n`{t{gmYAO(oO#CJ8m{A0_e=FHBfc8rzB$9=Md#D8NG eBSQlN28Mn09G4a>J+ztu2s~Z=T-G@yGywn+=N|L` delta 86 zcmc~QouCrPS>O>_%)r1c48n{Iv*t)JFfgclx;Tb#%uN3Ae}Cgb*^ckbAMH-EwcUH~ oa7*UI{(A>5B;7o~Fo`{hVM2xQqa${W?LaLIp00i_>zopr0QSQmEC2ui diff --git a/applications/system/hid_app/assets/Left_mouse_icon_9x10.png b/applications/system/hid_app/assets/Left_mouse_icon_9x10.png index e8ff5a308c4320dbe3ae8f13445cab6dcf950a45..1058e9f9b28e4212ca5af1445b893fbadb80f4b4 100644 GIT binary patch delta 76 zcmZofB!es!M0KuXoq#WAE}4(q{#ybJ;&tQ-D4&q%l}nAbKbBYSFVdQ&MBb@0A$-3>Hq)$ delta 111 zcmV-#0FeJ)fdP;hX$S@Y003qMbiM!p07ywhK~#7FjgL_Z03ZlMH|hRYuB-$R4fiAX zrcTZ+Y>`CNLy%}Npw;@4ZSVui1r4=KqXIq#@9Bx3xtGbmnr%^jGF3*4u>dbhAQj(e RV3hy>002ovPDHLkV1k3dDUJXD diff --git a/applications/system/hid_app/assets/Like_def_13x11.png b/applications/system/hid_app/assets/Like_def_13x11.png index 38fed467b6840df38bda05963e478d6fa951ab09..99c467f0f3887b8b937f30b138f1f818c222b5a3 100644 GIT binary patch delta 72 zcmcb?5iY`*(|B^zB7!Qv7@$TN^?j7K7RG4aZO#rH98R=v~f5_%mh2Sd!2%{Hch)c}W z=R`3D&+&B+A7AfcJj?sspQB&Nn+)&?#IsB{EaDB~=}k-LyiXiqB}pMZCmuKGg2azp zmtB72Ty)saGb2VOJx?4V7K$A#cQ7j%D)AI?R8cj`_h(&JIB#)QD>c@-Cx2lmudOU| zo#rr-Si}-Ue+ZCKLm3rVh|#K%Vj@lZ2@n5};}^*#ldB9yjs;YqLUR1zfAG6ovk;$j zlR^og`^C0DMu6Zh(5&0`_pxm^Pk_KPaHX~V)dn#0NqW7lMUQ~+HgIv>*5p0lat9cE z(j`N3qySBSp#Z#}(KqFQfm@(&&F!tVkJASrLtUkAe}IESV6;ft>mKj!>Fn*_Gp+u9 z0H3{bxroFkWdHyG22e~?MF0Q*|NsA`*`M720004EOGiWihy@);00009a7bBm001mY z001mY0i`{bsQ>@~2XskIMF;2u4-F;>o7(Xj0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJLm)>m9s(8R$22Mrty2P7CCSTKC3VEFNa;qMOs XVtolOx19jO00000NkvXXu0mjf1L^Uq diff --git a/applications/system/hid_app/assets/Like_pressed_17x16.png b/applications/system/hid_app/assets/Like_pressed_17x16.png index 0fc4fcf42c457d883742285a753d4829b15d1e45..f64bab7e458d1244afb83127c86e129d6b89b545 100644 GIT binary patch delta 108 zcmdnXST{i;jgbKeZg{Qy1f*O&T^vIy=CB@A6mxJ8ak%(=rUHl5$M;TK)T9gML@qGx zSft=n&{I9zXk8rtJb5|eZMH6L0*v_^Rcfs7wB40j(wdbrr>c(UCtvU~Y4ejHgFRjS KT-G@yGywnBJiL4V|w~_1!pX#NaMO{(-884zd99g&IwE z)j}q6w}ZX`q&TAMWCB7v`i)b8vLy=&AW(Hn>0&J?1DsBFCQ${-06QnqK%fesTIk^R aSMUOB)?y-qOZtfb0000XWPQ0?-3#61iT^vIy<|NzfnEz6r+1ZHsvMrk$8yKmwP0NT>OJidQ W-_DY|k%50TNSmjtpUXO@geCy|UlbPr literal 3605 zcmaJ@c{r5q+kR|?vSeS9G2*Q(Gqz$f_GQ#q8r!JE7=ytqjlqnNNGaK}Wlbolp-q`& zs|bxHiiEP0&{#s&zVZIv-rx7f*Y_O9^W67+-RF5;*L_{ra~$^-2RmyaK{-JH0EBE1 z7AVdru>JD$aK0bym%#uaXpT2Gcd#)x2azcxAABGV0BC)Aj-lw(6)B^^6`Y8RS?}DV z%)ko(See1!Eb3M$dL6)A6csaRjExg?k&xVzi*Rm;?iNJk#f=mkVEUR~jXN3dd|Lmz z;y}sMh%ol-?E1&`>dD;6jdps6NYoxN)s%@sf4~40YY6LAOtMEbwA4g#OCpANL823^ zSH66W05Hcxr$tg98gFntAOYL}xm$C;Skv&Ym?{TVR{)d(41vWacX1`7fM!jnW(lBK z26*WB#9I(Z1Ast!xEUC@Cj`v=urcBTdP`FWq=DYTy`}s>0vC{VzHdNRvxNFy}ir1|g=xDsrFP&l1P<-Sv zXLqYVYz{b^ZIV@1Ulg->7DEgvM*Min&Y8{8QW! z$_pA434?^wCTq$4%^>Zo8&|8XwbCv;KEd;WJJ{s;T}8R8Zwi7ssk$QWQ5l5+opKfX z;8D*COFEB#4W^*FIrRU%PDSc?B(}+9ZV?N9(yH>0uSnM?xg!>+>;e z{{7tXQQ|ZFXD*7q3XD!pwnih-=66+Qlqtl9;N-D|PHoI&B5d8>^V#i{mE>V0gQgu3+(DG%B z|8W!pl$lbQERt-0eZA%NSfvE4F>VAYP`DpeoF;Zm4`)2id;6xgSysWl6K$pWANcRZ z!ETRXKIU9G=@9lEB?<{ivj7!8FE9WN;qoo2Lr0#c@DmcF=JzU<73PmM3 zbe!-gs`c26Uc(AKz7%U!a0yZ5gsprdo1i51MjJPeHtV6d@Jy=*+_3dJ^>}p#8N#kPK_4t?hltq>u=?m+t z?em(Y%u3Bp_pyV?c_w-4c}p+?Y$aHr>TuPGs@SUj;Er!b@3GVLDS@T8OTts1JFS-p zKZ=&5zp;DRor*`Gy8MTeWdpVJv2(4-*slRM@XXG+i^F&Ku>7i08vKenZHoS4s(!!h zJE}*MHu7PR_IfdNzu*P}3^87K?f&A1;>NMsgKcR6**;aB74NC7tR(NB?{dHT-9QhXa*KoG!kGU1}$l2D>ypo)fSBuG$ zkTW4?+|I1m?6ZH8tD4^fB{cUpoEoZOo%4hl!EtNtQ#?j*jJR)x-Mn0TrxrX2uT_rh ziOh=Jxsktqbd9x{^s{c5z92Pk$LGoQl53o+=7QXXCp-Z>io998w|DCCCGfr20oiRN zX|`KH$W4)wN~)J$kYB~>4EU;NcS^qH&yzeUzXokpMegg_lX$6ve^4}%bY~Sg)%uJ- zZpb$p4x^GS5d{XJP=STbfpHV`58UBH& zKFg&BgS6bV+#-|^KBGeIBee2B zrM-`uTB^_(eS+{-KK1h3l`-Yjpv8X4z*uBwQ3a~pL0Ae2xvNGyC3A|#MARToe$W~8 z+4{DsyenENye9df1M}gNUM9_Leh6G=`9exL-cdSKQ_CGyEdZ3W5uoR!Lb^D)9!bd=7h@R=M%=|JqX9XP;Z6# zFD15Bw7qTP(ZlG?o@#x@=wG;XxM(>n@4P$9WwY#lW$h=`zMi_zq30HbV-zHheqpE0 zR6kXtxdzl&Ml2D#zDIvflJkb*e zIAI?GMjp?JBK76WW`{l{pFAY|%5?nYUxRnT&y6~Kz19AD;C0(z*7?dM{%HhVtqWEc z%+M$z6u@uQu)kg_%2PO_U|n1JE0V1>iVbekOLEOG$U6X^Umc519WC)L$t%`#Di0$ zY1|5H*440_`onhmXeayq`8EIg?x2r9KWe()q}QayqCMEC?c4meb4}#i`HHPaxO&3SPtSVKj@ND?Y+-@R`CDnf-d`T>vTn8RR<=@3 zNXk=Gloyh#S@3R89WHrXBHr;f(&ZO@I_Uo7;O5Bs@ecGx@7%7{_>Q`Adg&sCeZTYp ztVy{^vAUfOpTDzF*4`h%X0odWn`#uZ4s4igIV^UrVVg?c*{>K)hHq^^RxU2CM;WN> z;oK@^sg`J}BguyvilN{DQ*V+N4rD{X_~KAFj5qyk3(gP#cvSIDXe!zk3B!^InwV{j zCXGPmumQl(m`28618`K37tR+?goD{H>cAkpHyrG$XA89@o8$cOh%gGyG0e^h8y0{y z@CF+jfedLdjsO8i#eispKw=P#1_%GG3**eU%@8o?ZwNI24*pM2Xj=!6If;S;9nsX% zz(S!=&=CVoZ;TfP>*b{m(uQhlL7=)2EnN*L6sBVU)71t2^ME<-DBeCWl!etl&NwSL z*pEsj!yu5*&``}#9ZeF&7oufgU;u$?L$tLuI0%g(I+2Q@X%K^ye=Atvg0K`knTjV7 zLEDNLFH$fS4(5dVpED51|H=}B{>c+3V-OmK4AIhrZlCEl(AM_T0=zuK- zizjYd4*pHCwT0ObgQyrH7H4At2XjO;@px~TsgAA%R9|05PuEIcOUu&SOwUTs^00xK zshI`T;)sF%Z>|Li8%)3vslU12|K;lbk-Oav1Tx371&)Fb!FgLzNCeQ|r-tGG9E;W; z_5R^{|2Y=zKXM_QU?AJI{a>~IZQ?Z0_VnM@yK~#7F#gb7Dz#s@iDcSw6?AByknyNv+ z?2i$AMFq4+@d`l9B*!9G0MB0@P)7&2GS6L8U{ulLSpiz1gLZTP@_VcNy%<9KyUIbF< M>FVdQ&MBb@0J5JBo&W#< literal 3607 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 QX&eA7&1_6djNPvM5BL~PlmGw# diff --git a/applications/system/hid_app/assets/Pin_arrow_left_9x7.png b/applications/system/hid_app/assets/Pin_arrow_left_9x7.png index fb4ded78fde8d1bf4f053ba0b353e7acf14f031a..9b6ccb51f5b8d6f0fdd285152ec1a19ded3b4958 100644 GIT binary patch delta 68 zcmbO%6E;D@j*$TfK0Sy!3#4Q{T^vIy<|NnHPkhP9?92=TK(gDOc`_3-gJm1@&6kb| PE+7q_u6{1-oD!MA79_Op65B|+~@xN?)6;Pa}jgcMqEr$3;+OeTa+c1 zH;eLKVG#k|ciJkQClEuDkVuRz5(%QwsotajA^U+M~gKPM$^_A)v~%vnZuYc|TMKC)8`l@l|Rx4Xi}{8G%(Sf}HLUsd{w z9-R*5PEW7AU#S|;9$#%`wMj;7mDWfa%l89}u+hfwZj}UkRDDx*1ivh5KoBG~#(C}| z^b!DO1X#>)#y!(jzPnU_AE0&Ws7W^r{*0=`Xt)5NBwzq6J-(SQ5eqcxI5x@vjoX2H z4iCM=fD`}-V4bo61GmM2sc*I>LO^$Ma-TfVoxh`41c>7UGIraj@tZvbJeJ(-HsH;N&1GXq1rhMou9x4_Hqk@6ND0cWRYscu7!3!q!K0D$6h z`?GaJ)5P(yk-;(V@c{0(m-*}dGgPq2uG#+es>}R>fYjkOZjbxuXqN!3f$v^Wt$*<` zpvM{T?O%4&>lMvAD)uIHIhJL(YPK`?I;PQBd575M&C}|h*Q<4hV@-bQ4N?bU!xwp{ z>%E~fz{yOrjFP&7sI`-LN^mJQew-s{0i`UBtFAXhpIM9F(>|ns|G1XyrCHp?3Jln; zf%OENWVx#;bx3;R3~W{yqBx34?=Sojeqpf3C?AAhU_t|J&Q3!m4%thhM| zkn+)ov6cWJxpq0hOp_02NiQ4*fU3{ikKam>N52vQ0L#3yd+(VGZ+Rxeu9L`qrd(Ag z&yU|^X|_eJ&REJ~(@4Y)vFqE@%oQB#;N60c?g=R7ZOt5%DtiVs6dxauK7MwRCcnvJ zd+zh?Rp&(o%^O9w;djAfwtB{QgIh)9GvWooc$EH?h(gdrjLZ@6%SL)3f3byMk{e2O zPMa=c6nEV0M`CXy2zF`pQk4xf7o}b3P-xO2Mao8NOeT_>K8=Vx zh+u=#lgbk%6Ya08G`$!pmw~^G8A6NZt6>XMqz@VpO-BW9T!UF;b0g`6iR(Lt65MOfV`%KSu4eN`I5y;s059VtgX% zTgVpi^WsqrD9_yr{t96VMcd02AQ|YJLT}SE8Xa}t!;~_7u1a2|I^p&%?mZ=&^jbO< zp6Z+$o;rTp(J9c$w3Bsvv*R5n$vY>UPv5k5dWab=7JVmor?Xhu>1px4(pGE;HUZOi z#J!-#eJ%0_LHxn_XzRT5r~*eq`74FEU2?Br#95q07u{K4Qp^9Uo#(L!%TwrJp%tZI zNEq4y8F<^9?VaSEGj_6tPvX`6ff=I@*#}#9wTicfX$xqZYTxhjEAcJ~FWKJ{+Edfx zIZdCIo1X092GMfNaCO)>?EReqy zEXaT1c5&NP_Ur14>`PP#fEp5JniC11{jZWL+GoxU-rCCXtxT%-Eoiqb_^U$W>jj@- z1E#!*H=DY{ldb=W*ynGI_awo33+oGCj@0aFN%7D0u52%R%V=(H)aqk*vzw;kjXJaa zbMZAFs(M%BqHkDbzdRVbFSa4AC+!qRD9tWyiG9`C#F^#1;QXF#+jV?WYm(gM5`a;1 z$=Z?y&*D73RgzUwADl(*ml={t*we9R!GY2Pom!m|o64NpG;OqqUsPWtFSaQ+?~qpR zI>0z^ip~gX4i2DIO%@L7zbLLRelg+VqvUfvFlXLC{^p@Xj&yo(y1WCq=u#2oS|}%V zRPk$N$D_9k1zAtC`bs{K-+gRGygYqp#ZD(nsmbjHf@}V5W(hZRvUxbCD68oCeBwCd zMDPjM6D!p_?H^`q;*Zt|0h3oI{MSOSU8uQP1MWxEsD^ii zXM_u{=B^z0!C6cAUOUK|lbby(dZ<{-p6>V=-lOLCV9`ttI0}Ixbj4G-p<*w>l3@}!^scYMk(1T*#%f}Qd*hjd)@Ng z<@Vm1n#tlLtTFOyrQ{2*mqt{V1Lu2X1ESIG1!dS$jD#E-a!ZqWZ2K{01*#f#^qpS6 z_xhJ*)yYb0VJhxD?5<$C&JKWUt)9xM#yZG{=s?}Dm0nEJOvh=CFXutp8fFNG zb(-^I_07d&qdIQfKx#(1=%*H^G;t`U-;O>Z$l_DIoVb4JoyVNd?3GV-XVciXO26N; zt{59~IqcqfYJo-W>G^c9{PpxCYO-*W!d`N%y?e0Q&%E=^`5EyNrP;VqC3o_{PmJrK zehcv}Wi78;1Pt&7)5n@0vwP>R?<-gg%{k-7ab7FAQ(p5yqo=F(V@TM%M3l1Zflu6& zsj5esOc(!ZtJ4dVj<1m)6BIp_Dr?8WKUUa;*uTt82)hv`ylBOp^kYy1`tH`&J`g2i z_r>i*!D*ve5!9Zn>CBKvw4-|^o|}(8`>X%vsjy+p=j*L6`d+m3XPhZt5Sc`=G&|t6 zL2T^;avtJ(HTU!7f*j=&$~HCSKf}4uVM0)YL4r$eUe0dB?D9xt@^Fz?QEtv*Q^dQB zKGqU?HN)TSh+DM}vMtwCp79l3?!MGC|7kqIZKjI$4ZP&pt6qMn1W}5x38$?MqV67} zP7;?m(=NuPjBj?62im!B&;0PK>kNGV{k@LcHC8qE)s#{>MdRa+3iZl`@4<`H@*!eh z(S2^A3Cz2zH9c!zgnvkWIa9WNpIAp8`0i2X(e}bsk}Dy4A$L9H=i3W|9X8E2ovPNV zaS1spDoWyt)pK60$%91?ing`A4tM^^nhd-%-oG}qa;Ocr+C8&*Ikv5~lvO-W=iVv4 z3vW8Sg{H67gQFlTAcp01((sa>Oxkc4#<(O4h+| z=;$!XG#(lNj7^y|Ji(vH0C^I9NE8H^`?MAeB6%UeE(UhGb~Gf>mxKzX6CFYiI}$?u z2}WLEQxlLe6V4+b6B&3AlN>+^gfkJ~zj@)j^@bP%2K}wV@JE3E?G(-q142^iM9_X6 zs5U`YR~NM3NQdZ!hk5FG;|W?Im@W(of%2aH+R*)Qm>wKz1o~%yc?RiT-f*m?^*`o# zI|SI5!Jxq*kdTlNoe(`8D%}SHH8L`S=)xc{m^M#CJCH?T;F;Q#K-FIimc&2;okU}h zs1(o!Bi@r5#6W;~&i*?JGVM1lCGek2@p1-X;%N}5j_yWOzZC84{=X`j{98MafhGRO z-~UM*=*XfGAy{G{HHc2&)y`XW!xRmUq!aNBD&3Jv4fvHvj4zcz4fLhbKrlTWC}_7G zoAi2(CRbVwvGxS_eFk);LHdcQdm3WZuBEzI>Tjm!y{|A^ga2r`Xl*^)>n1rxoj=~Oc4@2KIVKl@_& zN4|fsUVrojYV}7fgy#%oqqhH5>t7;X18ppSH!pAVyZwn2UeD8c&3%!xU6OY(Het|? zRzJfx?uf8Cx`a1@Y%R?lnLVB!yx|qWZ*6TTz(26XS`Dfeq+1Q}Z2|4B8a!S7T-G@yGywoyN*N#k literal 3602 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 diff --git a/applications/system/hid_app/assets/Pin_arrow_up_7x9.png b/applications/system/hid_app/assets/Pin_arrow_up_7x9.png index a91a6fd5e99a72112e28865cd8a004c7d1933fff..4e199c7d053e412139101955ad9390acdb48b85d 100644 GIT binary patch delta 61 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 TFC+3}9cE|kU{!4CefEC<&8td2 diff --git a/applications/system/hid_app/assets/Pressed_Button_13x13.png b/applications/system/hid_app/assets/Pressed_Button_13x13.png index 823926b842b8f9868fd70d6f1434dff071c04d5d..d0e2c3a3735944e80ec2300afd68f40aa5f90ce2 100644 GIT binary patch delta 71 zcmbOx6FEV`k&yuiq9)wD2&5D|T^vIy<|O|JI9TA&^zs0^8XM1r0|$>BIPgT_z=wrQ Y3=U`9wuDcQ1RO(?0Mk|NnE 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 b6{VMJBCfGK_$?xl4ASW7>gTe~DWM4fK06pk delta 107 zcma#6n;?bP0l+XkKaN;HR diff --git a/applications/system/hid_app/assets/Shift_active_7x9.png b/applications/system/hid_app/assets/Shift_active_7x9.png index 1ec9ce11e8a8c1ea00673280682e896435e155b4..1dbb762f954a2c1934ecdb640c129288d5028925 100644 GIT binary patch delta 65 zcmXR6nIK`q$N&V_l)3qUl(eUdV@SoE delta 94 zcmWG3oFEa&!N$PA@Grt_F_5zGba4!km|EKB$j4y7ap=IC|M6++Vw)D2>xOE2Mr3VL yyt&YkZJDG#N5bC9KmNDo`G)5Fd&zbC7WW=?LFwQ3MLq$|VDNPHb6Mw<&;$VY%Ob`A diff --git a/applications/system/hid_app/assets/Shift_inactive_7x9.png b/applications/system/hid_app/assets/Shift_inactive_7x9.png index 1cd97076edc7f3a82d640aaf6f17188ac42c6b1e..696e7e9eedaab871471a38dc72b337afd10cca6d 100644 GIT binary patch delta 64 zcmXR3o*-e($N&V_l)3qUl$587V@SoEzopr00oK>m;e9( delta 97 zcmWG8nII9v!N$PA@Grt_F_5zMba4!km^!u3kdMKDgX!Rp|N57gN@d+zsN?3>G({z6 zV#`_%c01`^g)&S6a;IK>D5)&$J=4A~@toXsrccuZ#gdoH%m*67;OXk;vd$@?2>@Nh BBR~KE diff --git a/applications/system/hid_app/assets/Space_60x18.png b/applications/system/hid_app/assets/Space_60x18.png index e29f50ae9220d2f9a9753850dedcc6be0a211e76..7d2116ad5276af2c272f4a44b84f9a75037c9405 100644 GIT binary patch delta 98 zcmdlkRx&{%hLHgX^c5Rs0x4@x7srr_Ims0Vz#!qkrvLWLKycWV?e~8OU=(H+xzNm5 mdW?CRiyIpVFsiY4bTBbE6!Yd6HnB_s8RzNh=d#Wzp$P!;#v*?J literal 2871 zcmV-73&`||P)004&%004{+008|`004nN004b?008NW002DY000@xb3BE2000Uv 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 VN_%sSbR7Ty002ovPDHLkV1hy!X)pi) diff --git a/applications/system/hid_app/assets/Space_65x18.png b/applications/system/hid_app/assets/Space_65x18.png index b60ae50970b8be827ae32ddbd9e1b0d28c8b3a9a..eb417f674680d75b68feda04d9429e35236bab9f 100644 GIT binary patch delta 94 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 diff --git a/applications/system/hid_app/assets/Tab_17x10.png b/applications/system/hid_app/assets/Tab_17x10.png index 4d8471483e54ac930794fea6828371cb75043d77..0be2d938c856fc1f5787d34fd1a2aa519fb57ade 100644 GIT binary patch delta 70 zcmc~xouJ~V~!pEeEC0+O^uC>BW+7sf>6cr14j-V aU|?7$$2LX2obv($5O})!xvXO>_%)r1c48n{Iv*t)JFfb^1x;Tb#%uN3Ae}Ch`pViEVs|Cbz5-Q4h g8y#yV*a$E)Y$_66eu`IV4p1$Fr>mdKI;Vst0FH|oF8}}l diff --git a/applications/system/hid_app/assets/Tab_19x12.png b/applications/system/hid_app/assets/Tab_19x12.png old mode 100755 new mode 100644 index 4dbde3babfc9f03a485f51eb8442602d46090bf8..6748d1f4978fca668023bce4b62227422582de80 GIT binary patch delta 91 zcmcb?o;yJzl#u}lR;=Ew52Q>yT^vIy<|Jn%1SI_Y|6k$qLVF&cG#(xwp1nLeJpJVc ph6V;8yusi^n^EBu=NmmeTntJpIo8gauNwt2$J5o%Wt~$(698cb9wGn$ literal 984 zcmaJ=zi-n(6t+~Ulqy9?FaXoZU5eEBY{&Uwt8PhbheoQaC=DV5LofEVu~PeteQlf$ zmG~h+1p_-1`~irKfdPTUz=l*NHby2k)^JXfv_pd>`@MU5-}m0T_xZTKd3Ry{);z~? z3$=B#!R$5mX69zt_rsNg_sra+R*P@dcFT2#FsuG{>#1B_VRUn1VLm^#Yy$^YIf8JXh!M=WWpr4czh84GeYpY--(HMb`DFTVV7sOhk^Fv;Z`DqyPV3Q=olyyW=0!39o zC08ltbBekQWKqsRF$d*bR?2B&UQ_a5^zf`;xmvYcDu|{b$yT)>NtRW%q+&@i zq(a%WDw3*ZJN zrDm3!$M)Ji2b!PmVvAUb@fUyngn3bwgS{nwb;1 VWz0QT7<_jao~v1#=DW)FFr@$h diff --git a/applications/system/hid_app/assets/Voldwn_6x6.png b/applications/system/hid_app/assets/Voldwn_6x6.png index d7a82a2df8262667a9a03419f437ff9b350e645f..d6d7e286a3bd7a5d5e11d1032bbdaf3466b01807 100644 GIT binary patch delta 59 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 literal 3595 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 OAoZTEelF{r5}E)TyBMwj delta 75 zcmWHIn;_xF!OXzGFsnUW6G*WI_=LFr|NkGz3_WzY4oC@mx;TbZ+)7F~z$o!?(+L&^ aMm7dUe+HHZQ^gyA(hQ!ielF{r5}E)oqZQZy diff --git a/applications/system/hid_app/assets/backslash_button_9x11.png b/applications/system/hid_app/assets/backslash_button_9x11.png old mode 100755 new mode 100644 index 6cac74a57a1094853e8b67a936685b77211a9b70..e579e113ec9c4d9ce1f491ad25887e337abfb198 GIT binary patch delta 72 zcmeB{iJBnc#K-^ytxB`D0VzdK7srr_Il4zS3Ni>VFl_u09C7=Y*@B5mkKeuMn3mD? Y%ib%TY1%{2ti2#jp00i_>zopr0AD5<`Tzg` literal 3595 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 osV>i_@% literal 3612 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 V0CdlhVa7%P7ACg1a*SKVzX6{fE$jdQ diff --git a/applications/system/hid_app/assets/backspace_hovered_9x11.png b/applications/system/hid_app/assets/backspace_hovered_9x11.png old mode 100755 new mode 100644 index 17cb1b7403b155769fc0f792b3cb7219fefd8cfb..a4acbf0db8542db823e6797a80b67c974c4f789d GIT binary patch delta 76 zcmbOu6E{J^jgbKewyx`*4y05)T^vIy<|HRHFdeJs;qmbSB1Rq_88056dL9Xh88Z|f a1u!u9t1xfgsp0q$q|wvW&t;ucLK6TN0u=@T literal 3612 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 OAmyH}elF{r5}E)Ar5HE> literal 3593 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 DXpAVr diff --git a/applications/system/hid_app/assets/brace_left_button_9x11.png b/applications/system/hid_app/assets/brace_left_button_9x11.png old mode 100755 new mode 100644 index a61db48f369b3a565c9e2cf025f46e30895534f0..56eb690434cfb7376542e4c25c10ade46fc1e8e9 GIT binary patch delta 74 zcmbOz6Ei`=g^>XWT9syP15(PKE{-7;bCUnuKk=o#@g+aAFf#~U=4VsmlbGGw*xAa+ XP+`n6twHliDM*{AtDnm{r-UW|L4g*N literal 3601 zcmaJ@c{r47AAUvlEm@Lu#*i&$%#5KK#xgVZEsTt`7>qG#%otN+DOs{rha`JMWnU^v z31tfrLX)=Wh3pdbJMA{OR& z2hJ+Md4>47Ip6eXXEgv2G@;^f$1QL;5Q9ngqMj!MK)_(8BZc5ND~(wjUBOz#gxj@6$HdBV-#`*r0nbWnV9g%wPwd~$Hj%-kh0ehz9#sQZ%W}_T*UpD zYi%3j!S{XoYt}w@Y(M>AFjKOeS<%H;$1j|0j<83D3KwDz@B0+d($qXY1u+T}RAK<) z{1u)G{#%M%zfHrBlZ=Wc8V+XDpwsV;g}VFs3c$% z6o<_Nj7+&gGgFlvfovYYt=+?Y5;(32xT#$E+zW(euBQca0j{?dq`0yZ0MLGN3?A^- z14_D1Tr&ZPT7aaNRTB#Ms0nCUID44`kDdW_o#H~}0KYJxWgio%2Ji#}Zmo)n0l?KX zK+<%{S^xK=W#TjHoJysY>sKkEOu}6GHU0RUogs%+J1u06O6rjIkkXAH4S{L0@Gxz$ zPs?usAUi>dlkM_WK&NO~XQxhFrRZ7BudjG_!0zso+tXde3?l#-XN7ccYd|XwhU)Q# z(zfp%S>W+LBb0q%?YdXFn9)-pdv?%ynXy|NlboAX0|V1jQy(pxu&$&w=gZrahO>3f zTj&1>(cfHK{q%A|DGYu(%#3IKQ^VU8>)bIxPlWj3r>4*f3s2%C$j1$)&O9s znqL22m7hD*J7T2BorVBK*-)uHX2rR=o$wDvSFITdc~bU)o;q#%c| z4;gAj@hgWfXUYt)BdSTFXCBptR*dFR~IK5Olxj6HKZ8E{ggvY_%g*`j>vWS+}HWsPs- zNt8=2(dp#r3e(ce(j)!VrPcZS@~dnUZHu$|DUFYQuY6Nk_)PZE^he&IvPxRzWfH|* zhVtxnS>r-tZQ|t@mw(;D@QFkZh!)GAln?QL!jwdxK#!((-dQlb{CXvM7D^#@iFbWO zOjho1S8JkXI%f2mQDi7p{t?SD*JG{1+aW0ikPNxzk=EKNOV+C2>G7bR)y#~FjE4Dw zp@$1P3)F?^;k$3O@2X|FApGAow&Fh7Pj?#%-A&T+87m2~!`X#Vp3W#jJ)jBBr5_$W z%Vig>krrhPz8Ns@P8v+=>yE-lUCzGMt$Wt`tlh4Wo^>{I40lCw$8#rWryIx*J;Fud zjtw&obKSGC9&}0JRh%Jui2SX5VBYvfc9pS|aeR1b_;h`#f_Lk0H%k@PW>Py7I;of+xxDQoW)dyVTOC3{)XQ{y&%YeooL`Qf$ea+G43Eg!rTy$9ae{#j@(mO)v|Fb;<|FQu`eEB8b9I}b zTfZgLAOn?NBXTvStFEdP-mI|}u^!1lXGy1D1kvCabS*66R>Dm`Y>|RZVkPA(<+Int z_7ZYr`Sxqy>(8Kvllb2FRNO4t>!K-GiOu^$IH~$Uov)licJ_MJ5!;4JF3vjIG5@xr zZRn=%oyEI5^AZgbwc8x|WCYlda9MYHS48?@7kGTL2HpK%M}s!ahJF#dqpj}}Xt_*yLmiwA?@gpEb=}BJ%Dfx``D55^ z=w4;;j7R6#IWhX;3vt$XkIByU8NC|4&QnXzSxe{8B>*}k{kUM3?A4O#D-`_S2)+MScKl#=+0b}4u3Yu%je z!=dJe=EE=F1R!8%R!(fp*RzM&@{9M!#O$Unfv%|Tc>nQu)$v{aMxtzD;tmgY>hk6y z@^(1qzfzWELS#A8y;y7#lMEPp(%s1*3mS<+b|8~H1O48R^#OoejY=T0h&I+}4>}D( z+QmQuXbcV;0Q3z57$grLG7IERrciw`;Kk}!U=Y<419nE*XxT7uWN)f@5R>c}WJ~Y} z^6@}`XpwrL)sN`{PI*ab_O=p1MNC*t1 zYD4m%`tF{n{YkO0L0kCxvq-)kWD7h7%n^Z5sh(&&Qs(GU+tXpIM`+KaU0R zQ@y{ro;KaMy9v}^t|y`0TI^H28W3_X)G-Sf$a7|zY$J#I}f z+1c6Qm`)A7A)H0d0&h$R7<6|t+I!=G@OceWUfz4}bF{($P#v)66d*YF6sp330Tw2< K_%f_p_`d<5jx4SK diff --git a/applications/system/hid_app/assets/brace_right_button_9x11.png b/applications/system/hid_app/assets/brace_right_button_9x11.png old mode 100755 new mode 100644 index bf6b927f192184a6bac5eb2ca1bbfd45d32bde4e..8df2c19ce88c4eeb1766e50c9d6cabf4b472dacf GIT binary patch delta 74 zcmbOr6Ei`=g^>XWT9syP15(PKE{-7;bCUnuKk=opv9r0c6G#G4YvW7)p1;kFo(+r) X3H&V6-X|;x2Wj(k^>bP0l+XkK{4E>^ literal 3600 zcmaJ@c{r4N8-7LhEm=Z3W5^aWW~?(A%gorag^`gKV~jCr%otN+DOs|`At`G_WnU_a zgtCQ_5t5y3NgaGy;v{_IoYVQfKhF2P*Y&=?=lxyxeLwf}{GRu^-nirTmLh_3f&c)B zSX*J8II95X7UJjTJTqfl)d4`zoPxm|x5i*VbOz0va-IYLfy3F(WSsN7G-`c(6>Sq6 zcGHIDB*hPMLdSZba%|dXZq6g$ksHgMm>8BI<)|rqO>mHJM)7W9 z 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 OQtIjI=d#Wzp$PzH;S{O> literal 3595 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 E0Z1+=g#Z8m diff --git a/applications/system/hid_app/assets/hash_button_9x11.png b/applications/system/hid_app/assets/hash_button_9x11.png old mode 100755 new mode 100644 index bddc7aaceaec73be99928fcbce82d9e9094c2f35..0a3974f643651a0354f89aadaa299081515944ee GIT binary patch delta 70 zcmeB^iI^baz{mgutxB`D0V#P;7srr_Imv(SpEz>h01$m?YkVoiJXx$qB(b4`nIZi# V%d}e;_j`l1c)I$ztaD0e0sxk68wUUY literal 3598 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 J3Dzy*{{Rw;E3^Or diff --git a/applications/system/hid_app/assets/percent_button_9x11.png b/applications/system/hid_app/assets/percent_button_9x11.png old mode 100755 new mode 100644 index ce12dcbf1e42d9c5bb2d2c0c8be79c495876cd92..72190605bcb196dce3d7afa61051ddc9ea88f1a2 GIT binary patch delta 80 zcmbO(lQcoXi;)2cT9syP15%ovE{-7;bCUnuKk=oZ@udv2Ff;RHIp)bc%$LpCmTl+p g;omdKI;Vst0OTAPWdHyG literal 3607 zcmaJ@XH-*Z*S!eRn@SN8Cj_Jk2?@;vLP_=2C*O= z6*P)~(gYL%0Ribs5s?Ajp$H@G4bC{<_haV0Yu)>t`>eh9+2=gxu5}ZRI#^4H?h^$7 zK*H7r>&#n4c(<4^Kku0pN6-WSQA;WYbJP}t0Wp|#AL>~$00a$iTqt;#X*tx&$P(Hv zKK!~J-C0%`#N-gTR_F!57t}2#4AkPXYjyX>ZApDaXP)2-kLIgor5v^s z4wnJULz2+<0dp(9a88Dr3y>=Sc(i(Xjsr(^01x#`pSyu@&T3{TAK-pnS(Yz11pw_K z$72CsW1ytt*kwzAs0+yW*fk=64?2LZEy2eIc=!~kZI>1+2ZY4|U8ndMO+X+N@Muv{ z2?C-s0U4_Wg30fP%A}{Xc%8~DH>p%bSVp)D>jVf92#^CB?Y8oVWDH3=NLl8P`ru3j zc!a*x$Hlh*keedQt9EfCs9mzGz1=X0D|uSy>r25cu&3wv=43}P!yEuUvBEkxwV@UJ z!i@#PX`6Qr&I$OQ63acelIT+|W&Q-nogN@8GPZkTdHZT*fB)pf#D^n|Xm`>Z!o^KW z{pni5#@Ro@Ox9PHKfV}KjewtwuohVTSpRm(K5u`=HIZn~q0hrchD)|I-!jkcbZ zL@k+dr`-Wb*sLpy@H}t=`kLmegI!zRW24$@{HCJ@z{4}9e4!~i1t-1uzuBov6Ir!m zD*&)iMX!6WAP+Y3p zt6eL&zi#JHo!GjEVKiE`u^ugr7WEF_&-BnNi9~C}wmnqR@_@cKSJJO_@{LVpNJ8pe zpGl$^Qr}6!IdvM<5h4N>Ey8<9$^-Fyo|lO#Ny74(F{{dTHUhg7RY9-gWt_lvDF!w$ z=gWAItBukEin#+3cf#sA=(oiKG+n1_N(ge8W1rO;g5EzR|lsS*gaNzzUz<1 zy`FGb9MMKwrFVDo9;kF^Jf_h|b$0>=u3mX{hwY<#_^#buR$cziD%0A9+4?s7R8n6L zc>9$LA+BqK4zw>-@keu3(S;xhzCml$@wuQwe?>( zuT_2Y+|MoNO@1BP9|IIW4+bXQGKOfULf6Q@&TOQH%_{j>ZQcmf?-m227{9XB#4yg{sIlYvIhre@Qa|@p;Je>R>I9SG| zaW9f6p7NBZugV(cQfpE#KEL?u21-aGu3xfP>9|r@;A5r?@)&X?tNrGj*~M2&Y12>& zu|vA!gWfoIPpf7lmE)4#ZB3DHA`Z|6Zdt((hb<1Lzuu(?00M$b|jkub3{DQ zIbxt?S_C;`GGO#v|G8Nc#K-Mz50OK(J!`ig0nsWm^gsJzbbWR)Zj3V~HXbUU0c|pX}CMW#C^rcR9uysy-FYbXm|%&?v&&p9 zT90G#EFrxttVS&a=NECR?oDLf6F$EgF;~&an2R$*eX}PWiBPxEC#3JO97R*vgv(_z zgYxOJmp*6=1x+f((ciqx9J>Cvu(+|(yThl;XZrJqPL8`|T2cDvbV+}S{(;95qsJc4 zE`PHegr>J?3|2*PF_m{;nmnr}=f7@mGd9ED!!O~#;|=G!hM$o7R{cBY6ho`O>HpR< z=w7|DVfy;Tpevs%uE(c`yk@&rv0_%1P&B=ownjTy>Oc#aZRYRd-w;xft9{fe>roM?=@R3FQYwEysWOpiMq2mhY2IpcJ zV=hCcCU6xykQ^wWC?I#wVu@=e)C-)GZ5wad2Pt(4#zM5>N zb~`p#-K@$gt32UXITup%B-CeRS~16{eR!!R_;WqDL?IE<;j z(cW6s&sLu+t#+(Fy<|RX(T^F9>oIfR9QrUnbm>ejJ9n{j$a+OECaPmIWjR?2vokp} zxiwZIb|&YrDFQKO#@v`*&&PClcc|saZ{FE#Et8jnhOPF@^tE?pbly&1NKbu9yO6i> zwRT3~!C+H;(}5SSgY;mhmX58>*0G1!O7nL|r5qXrb1 z#^U@y~CK<5srhAe>wlorj>`W$k2M4?+n*ad6CKXR)5pniN zFFFlE+QvYFXbc`308Gq+7$h%0G7IEMrcnJ+;Q6YTU=YKy~3zI9!K^&#{63WMlwm-Q2f!~Jh4jrKP> zkmXGNKfnJd9EcBQkfF}xK>9hR7w_Z%s+CsCxXV{WyX@3)bnI- zD<+)=`cXBK`tM#0|J}=Xu#9Me8&}GL6z%q9?E+Qv{J|l fPHq}n767Og5QqX~%r~Nc<$(cPO9yNj+9UG6>eVio diff --git a/applications/system/hid_app/assets/quote_button_9x11.png b/applications/system/hid_app/assets/quote_button_9x11.png old mode 100755 new mode 100644 index e96d29ddcdb5ecd51c261269e782f663c6f72d52..9fabcd26cd2b35239a0b68293760ff7cc48f9725 GIT binary patch delta 67 zcmeB@37sHe%g6u(txB`D0Vx?z7srr_Imv(SpEz>hz?Zhh&PEXOWI5KL$lw*uG)?Q6 QjRi=(r>mdKI;Vst02#m+$p8QV literal 3594 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 CZ7IkA diff --git a/applications/system/hid_app/assets/slash_button_9x11.png b/applications/system/hid_app/assets/slash_button_9x11.png old mode 100755 new mode 100644 index 60871320ffd6627e73f7fdb54085745154411832..b877b9106de05240d67cd575ee302c1c00fb9113 GIT binary patch delta 72 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 D%k(OT diff --git a/applications/system/hid_app/assets/sq_bracket_left_button_9x11.png b/applications/system/hid_app/assets/sq_bracket_left_button_9x11.png old mode 100755 new mode 100644 index 0983db129625c9b494df43f660b220f91635721f..ea50cd657c3fe1412460e488a686b4b1e98b4458 GIT binary patch delta 71 zcmeB^iJTze$jAT$txB`D0VxGf7srr_Imv(SpEz>hz?as>P9S3B{F|8YC@~=^fq@~& Vn|WGUUHwat9#2<4mvv4FO#qe-8b|;D literal 3598 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 XLCnn4oL2n*4btQ3>gTe~DWM4fb`BYC literal 3598 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 Hb`AYEX7(&M diff --git a/applications/system/hid_app/assets/underscore_button_9x11.png b/applications/system/hid_app/assets/underscore_button_9x11.png old mode 100755 new mode 100644 index eb000cba552b8c8d3dadec6a69d66525d04f3dfb..7ab5cdbab572473561b6ed9b2bce07b48890820c GIT binary patch delta 63 zcmeB_37jBd$;bc%txB`D0VxSj7srr_Imv(SpEz=$fmJpsVN-HKQUU{mMIh5Obptkj OkXlbyKbLh*2~7Z7IugPF literal 3593 zcmaJ@cT^MU-X0dDH<2PDZU{&d5|U6%NGM6@O&~}R3jsoi7!pD>6hVqKbwNa_f>@A_ z3K~Q}X;K9Q1f?rQL>9P95mwp_d)K|+AD?&5nR$QjJJ0j{>YOtP$LuY{gbxS<03c>% ziFe|zLfl(KkeB<+jC0ih0AVvK4tLB7hXXN~bRX(DG5`b(Wjj*{&a<+ZwXqefO?<>n z8@iK>Ajk=OH9|UBRZ~ew(mG!0?x2ig{a!OOK84oYc;3Xsh-)&ATB28kKL|`I-AjzV zAAhBN<5TE;zk!;y&z;-P-W$!7EN54A3)BgUrdlE#^&&(Iv4{44jBaUa{xk(Ki4<00 z0Fr_g-b#U6$~?e&I2wHfTqp1n;0fvz5d`Y&vg&jW#_dRa#b%u3iMY&D$4WkGBN!nK zn1m!^9|9)kJQ3OHs?In5x_sogbfo6>Nm z&UNeDpW*1uwbhR=CsZQgry?!*);~79S+UJK*nLCjvggR>B#X^Tk)2J&K5&zjXBAOX zdeTuUAQ7K=Z5f^iPQc#Kczw8c$9rO2YlGKlTn~7B)`%xGS-aqr7wZ%H;EneCYY?G{K33Iwa z0J&HyE@7CzAmdJ&zeqN01>jMeu{9R3n~~*?n0KPja8(5c2QHi66M5^+f@LPj=4QQR zK0ScBrhj+lZLzP!P?8a@MW^n|egQ<&IUPuIBlgKrEuj>zjwj#}(c%Uk%c|hou>NW56cT%3!D$LTgJfNJ?HstMB zE`YqL1v=6iGnGBnIE9!}m{MAD7tZ!H33#yXJfZH?e%4xkT5?)n! zm#|ka=>)d)F30JSV_d;L-Se5q&S+UHo4nF{xB3qF%K5HQAAMoH*gJabkbT-)*WQj< zi!W(kcvsk>VzDyOE%6j}`KX*&uXFsept9ILn6gO?LRy(O?K}qV`lRe`+=scP)oG)vKL9LcS ziv02v?pEX3ul(~D(sN#(j>xg4=Z^)~&U`-@2HhfT(Z1)eT8I+)D@0ZJhef;gqhIR< z(9w#}mf=4fai?OFb;dYk~#~e5W6M2 zKOiPK`#Ln5sM*e0eHIisN>yO=a{Scx`jvBrsvc;bN`SehQYX9O2Gj{lBN#gAoCU=GMf+SYoS zMn#ab=plm_x-X2IAwF(z`ia>@t8+F7kr2%?egAVW$2aGf<0i5vL?%P!(xI)V7{PbD z8dhTRWeXuvTBuYL+j#q-xL1rs})|au@$o&%|hkKW?lf%;22abEc!F3v;j!zYtESzt)WI1pYiz3iMR+)$Ary|yq`biK!m!DKO=pQ%~mjyNw`ubJuH_d zbLoTnNYJ!G9KHQj#>ma5g~d%(-rYXEKC_?4v~%3WQ;X6*r-}QE4GujO8$bSZe)XH# zFf^@GeYiTBgR8p#3jMr>oZr^fX=qG%Kv*GsC+IKqjy@y3U-$1>PzbI0ru%#UuzStg zmQmZwVHX}3yMCX3@`lw$#hP(hLecDc>IUspsXZ-VzJ<4!cS}H7ob$fwUB6;4hTxPm zaAeLxyye%I+u4h3Z83c@m)~wTPbf3+!BewqLgQHfmujZx3Q*RhaIi{W1-ZtJ4mf~}VcZPcOJsJ;}+Qunp&TiIdZkUvK} zhVOAgXS}+`&q~l2Ur4e(^_uNmoiVI2>^iyhoV8RwJiX8LxohSl)EU}W)>rg)N}oeZ z_3i4+vZ|AQRSO}t&q96HW)*S_x<*%Oga44-8R*YJVn%D1L+ER-*H*`6N5h$FTU{O1 zgKV{h(i(@FGb<+Zrh~ZAxPD{z?U4_QBbUzBv2&MuMl9C&W1_palUI`@aC?$6k~(6= zV&`&>8X=Jr#>}nR&3s(9ceiSe-1fcgjxsq}X!v^n-21Mc^q#wEOKB;uXczOgzShmj zKN@asXg>6^EeHWSy>fhGzMeh8R$RP4F5xhB5p+p?$M?@CtIlupH&WzNQg--w)0a0F z^=?LS|10HLW<-`V-G{{{G0A|bH{FvAvZ9eFWG6DoJ2;??j0ON+4Jv`iBHG!ayy!Ft zX%_C$dz#ytO2JEV5r(?&!k$tI_AxyG!h&{n8 z#Lo-q4K_9cp@UFd0UDV_0tL~|`3ItcFyOy*QCxfX7zzgc1!4JN!2bz~Xm<>Rqch1M zBm}1IrK1A_8E`FKefUu%(!jt#3k27JBcM9^P`I8p9D&j^K*4lDe_vp(N2a$A$_a1& zw?FO<1NLRH7$_)|&1OT`2nd}?fx?hTBvc0ug~PSE2<^aNe-{QT=yMH2$L4*`cib16d@0FR~RL1LlfAs8nwhUQhq1=}{QW6ogZ{^olBJQkgwa-rN{pu4^OKfV5O#2uhr^PlPEZvL5nvOjm|ncV3fSzsREei{77 zYzbyNJ3Cy{rJ*mJyX>>Vn-YSCJUwzz9(+8%I{`fW05Ave2e$fsG z;K4MO!iPC*9Q>V~0S#+-I~$l8*q$=T+m-E-11gs-ag8Vm&QB{TPb^AhaL6gmODsst f%q!6^$V=Bv&QD2A{^~3VQpn)x>gTe~DWM4fL5V9q diff --git a/applications/system/hid_app/hid_usb_10px.png b/applications/system/hid_app/hid_usb_10px.png index 415de7d2304fe982c025b2b9a942abbf0a2b6dd0..0e78f2b78e66510a7f4b05aa22f667c776100498 100644 GIT binary patch delta 78 zcmX@fo-jeegOLFUmU?~?08;9nE{-7;bCNgMAGq-5K+?zQFKwA8GcXG?Ghb$BQ*&fn eCd@AJhM$3`P;{_8I$1oJb(V z#>Co{9{@i91|(QuX5%*?v9pwOnxqT_55D(az0dQ0J@>lZy1%+|YXtzX+Ss!@;>_%o zt2y!i@N?&lIBxPQduOaNrjU+e?;YX%)UR2L%LyN@}>atRF6-9xXE~}dAVr@YBcOX_U zM#>gat3`~BQpG5%aP~Eh*gj89{x|#<%&i_M$ zU=f}04!x-NpTtRb98uJv2|I~hvAe-WmMSu=m=ez7E@Q{@LAHmCvt-C3h|9793l4Gp zF!O9qA&z4-!i1C1r48GZ1c~hXo`JDuS-aJ0wOrd$)taqWN;ON>tZH4WV;fs@tj*k$ zfQEdI^)9g5QfwxOAQG8v8vD3;Z_1q-{ zl$i_hipxU&G!&YTg}8q|eDGX6j4SPCw{~`RCd@~lzrPU2?S{SEO@H(cJnv<$o(G-l ph0_~rZ>7^_`EovpzT_W+OY7j;8rXcd{` VROYU>p1}7YEuOA^F6*2UngG(26<`1W literal 3635 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 diff --git a/applications/system/snake_game/snake_10px.png b/applications/system/snake_game/snake_10px.png index 52d9fa7e0e1b884774a6e58abb1965b1b1905767..3ace2de40d6d616c2464b9f898ba7bdc82c6b0f2 100644 GIT binary patch delta 78 zcmbQom@q-YgOLFUmU?~?08;9nE{-7;bCN9%9@z1OZ?Ua%ceC>32aIi#d3gRy&XACr ep(dXYkjTJL#lXI7)ok~-Ag!LRelF{r5}E+ZR~bJ5 delta 141 zcmYe8$2dWvo`aczfnnDh`+gwB7T^=&`v3obAT#vP}%WQZXkvAt51!MM;5S zlR^#$FI$2mOM@0`x8b1>WlyCWCq5a7DJwH@WiS{lZ~k%)s7toQHKHUqKdq!Zu_%?n oA*VDiu^=%suSCBfFI_h|KP5H!tFxpWP$7dSyQ`neI;Vst04~HVi~s-t diff --git a/assets/dolphin/blocking/L0_NewMail_128x51/frame_0.png b/assets/dolphin/blocking/L0_NewMail_128x51/frame_0.png index 5f7f5fa42540ffc79b300b75ada0d5b5905ac426..d948c55bdd21442dd1f0832cc11abb7f680f1c24 100644 GIT binary patch delta 387 zcmV-}0et@L3X%hm7=Hl(0001Y8$G=M00CJ^L_t(|oW0XAZWB=u#_`{qU1B$pETuz8 z_$K%Q90AFPprAo{G!%4nlpKK@;0qwRqP3w(i6fA(oZTIYtdp1;G38$~^SBV z{7-OQ`St$!`VOo=GBowRW3~Hhr0yyGhx?I$rXn*lb2w`h&+IZYHzkKsww^@j8*GDAmI1q!9ogSx=Fn$$SI_cl6Su}n zMf37;Cq`onG=~?1UZA=?w9KUPPFcjR-I2|J#hY4eHy|=#INqOrFRB6So0?EYeUY^oYu6MiMY+;Kj zQN;x;vIadFcK_!KDa1KH*7p6B`B z|M&a9-`lOhrow_v1qgx^`kOr=xMtwP=9}R=dgc}mm!}PHhp|nK7%4#qNQ1130P`zC z7YG4C?%g>FY7oS{Hx}+NIsz@cq$(C6t7Azk8bl*VOb zF1+0qpaPm3L}Sf;I@s113`>1+iIefVTC66`LjnaD0+v>K5=lPo!k2h?xX+4799vQ` z;x2sIsg6J^=2mrpIV?0GQ51zaI17*kMr0#`RE;qdLz6VT9R%&*8J4FxY~{kCL0yjU zA&+mx96Y)3s9|V4Nv2XMONzCqdKXD^97j?N$uI=eAdeWJQj_1Co*+(~Ov! zz_N^jsO~acICOS73PlS9R*4hIm0ZEBk!e9AX$wUvN;b45?W7R`|GTlKb~4MmV^C5cqzz%YFeHk4I_-taH#F<2L&$D>NS6p%3d9v2S3Smc<@ixLa$6mSw81q4E7 ztui41hm&AzlEB(T*)B44j%O`A%h_q4k7ey%uaBm^?nbWBXy3{N?-_D z&J&)Bh*qafa=;t{k+8B>$Y!$%1m}oYrHI|mIviGB>j#*h3gVxB+zE=2qm|y=J5dkN;RWSU$ZtYFfWe zESt}4A$R{H}-UrO&M)2Q?JMG z&UTeP+mFmWrr?>vv13Dc%TwF+5!0NwdamikvAb+Z{HoADWsP&K&CK zEI9kjRk3*A>32?iuDvz#^9O}TFGPonjJDBD1BdH|(ObvnpMRo4>wb<#w$`4Lj*Ja) zKMdw?h#p+n^UXNA2f0&PLZI=(?7~XP9bleLJN(7pB}*$w3spu8HX>Q^!(D4&7kwX7zYc`4H`4E zotqAo^j(`ps(;z!z+HSfu#B(>uy1Ce1=8j+bB-02sG8tf3Y=@(Cy{B|A?At16C01E&B07*qoM6N<$f?CD2tN;K2 literal 1404 zcmaJ>ZA=qq9KX`ym@A984JO&(a>N&y*L&;R-KYqCktP(e)PMt(>)lg&f%eYpK?_dk z*cXPuDY}Ja2_xB(eHnyl+y|yYT(*dQ5Hie!I59Ks!={@bh-_{NdkU2Kfq1#Q=Xw73 z|NZ{&_d!kdzUW8IQue226f6RKy4-p7f6ysZLA51JRM|0ys#UkNtz-kc-wHw#?cH%vFO@`L4&Fo z;`}bpnmKrKU|~&DID&}BJ}9?o4h%ZG8bw6$`PPY}v9(;mtPu%bAt)0`L?WrsR${g41?SY{;FZ^`m_@hs=Pw6L~#B=W!>hBq{>M5UPBsGrn7GWHw#i`DRWJD6`Ev#6L2AW2Wz= zt&@#KeJ7iCo|&8LyP0D@a;$qxo!+bqeZQ+p*N)Xc#r|L$*<7ab`g?|&hoggsPaBb5 zHhI^4u>{o~|1$GQ!?~wdm=nXo(xuGdeG3ZWxj4N4=;h@dKg^CDkB!&&AN}XUCqQ~yJ+yV^Bc(bV%FeU0Ek diff --git a/assets/dolphin/blocking/L0_NewMail_128x51/frame_2.png b/assets/dolphin/blocking/L0_NewMail_128x51/frame_2.png index 5394851f554ca56e70e8f57060e70815d4237aad..aa1061b94c8e2f93a6bd54af2ec718391606e553 100644 GIT binary patch delta 431 zcmV;g0Z{&$3%vu77=Hl(0001Y8$G=M00D$aL_t(|oSoA#PE=7C#qr<0^MGlL7&d=+kf9R{o(omO8ZBvx;Udpo%#MFzrlLOxar%G*@xXHjLgpUa06+0Y_J_29>llOTVkClE2Tg)u;@t z_HNcO>3=85+cmH`E07h~lqE=ubLmf#LmaG002ovPDHLkV1j_u)m;Dp literal 1434 zcmaJ>c}x^n7=IiAM6mX-t*y#rG(j3>=h~g!nXt&Rhmx{%vn+v{Qkml|Okro%*@0bb zih#9Bw82fTAghO&c1m_B7G7^ewQ|Ka7)^dGCGm z{eIs)J%Or?`MFQ!0s!(WHhF?*?L-folY!n%L$`3WtTerKX0;wR=v4kDT>1Eyag&EBe7voF2)#&p-CFuc7nDG3@gw)ws7IdprM3? zpvSjh4xOBMlW9f;l8ndWmN;wCjYg8@d7h*gl3@s>LB!fMQ%n$AY;B6c17otGMom@M zuq2}>>8+*{N6yYi5sCW!i^N)NAy+7CWI~LRw1pxgkz{Cd+A%W-|99iQ+Obf36p}$0 z(_0N0l_b121xD$6u%VhP*GjP7LP8sMxbU^c$_%;Vo_8@kYpBe6m$?g1w}$( ztqLJRyMthCvdG#bg_9UM#dAMA%X75P$Ch(muaBm^?sC4|!`k9DJw%L-J6ytA{jXj?OSsRMwtw<|oZP~!XR2d5tS0?YAC&d$zM`K~$7 z9^uH7mr9lXH94pH$LvF{yce#0^VgmqYOnM@oG8lKtxs=W)AskduDi``1p^p1@Wj7A zrH%bM*nJ{5FnBX(6du~*^3cc0f9{;Yl+NqR^C@FEfAn~1=EqCHtrhTk$BN9#!WJ-* z*V!JO+Lt|j@uQ;ta~CeAjimwY)4u$vC0G_{0_}f%xj!_%4odi=JTQl=fpCcHEcRA| z$z0I2vXeNVPJVT8XL)f^&9k6&X^=0w+%>&@^XX9f>X8?F`pS#lovUvYytnxlIMOUk zNW0xvnK~D9Akw?6Vb|pT<>KT^HA{Y5Ke%rg?Cm@Aa_06e?myFaWIgs-Pwiz_$?C7a zdrdj|K1iEBHIWUrzImm7Y{!yKfa(!ucAXy2(Vo7uSIQhMeCMH{9i%sWu>9(W;N5+i$hK0%Mi_76Jv>Z!u01xjtL6YiMrxFKL?@k{~Fcw$)iyn!@1+hmFV1IY_b`4SkP)XW;fBdBY zRhDwD<2WGwSYHqn5s)@ge*WIHl^kSdVH*K%ZgDV4L-!N-bXF3tCoe~W zaJV+J5K92Qfq&9JNvf+^dOAoNyVV@!h{HH<%E8QRaUO%Mq}@3|ZDkMe+03E?m3AFD zcGW29S?NAWgCuPnSYXXXkAMNtHFP-8Pk#DHj{_a~#)^-x2RsM;5}??>&x#u;bHBag zpa>z4SOy$4U&X>pOyd|pa#8`bo+Gh%Cai}nBmyl;8#YP$BaHwnlZA=qq9KXsCsUY|^ooslXana%R-uiYIDsOF}#3F-E>gE!!cTed}?yg=BS_nd6 zud+?ZGBXn5=9X;JEIPMr*@u}eXm~N>1JjsIT!?!!+d=?w!V+D&r$Ct>h?l#2p67r6 z-|zo^$EvH!vyEGf2!dpLDx5WNjl+jol?LCTZ>BN0Jf^$+daWANqr3)?5>X8R)Fbot zpa$?_^O4J-5JA#9C7)mSd-rmJDx3JEjwvRGAsRsni(+A3I1F?&0O}>hflYn=Erv>> z1FN%mNpH9egrtfV4b-+&`Gl6k0xM!gd(grd2MJ`L^Jq+NP$FE+fz9)BaGw+t7&@<_ zA9i31PWipnXql=3)Mlb^fh0-P#+rc0(*Y*P3%gO8q$z@ew+*Lk9L;bPi!NRmG^mL| zuEyzJGzU)(ETrpUjv%7Zs42>rRIQ$%Se7M7nxJVMYT%J(MdxF<64{<&aDs@SNnu@5 z6*S4n2h>L0fk9^%qL9O0?-H>RS1z>);Fr@%0M4>y!lgx+xbGzr#)Z*ZzYqYMS`pUhS9PzbZ4EUh-x&lD_Nn1fSo{- zntI zgmB6ejtmCOc8g$xIRpXR%$OmY#lqvPEoc^kRx4w(nK1&oNF=-Ffi6mkU~49~OJe~K zOM?XzI87QHo3Xg@035lM)q8!eL?QvV&s@CPh9HJh9%qR!Ha600So0#9<+?Z7{^yP^ z^r^o$xynDs>C*Q`XE%-99~_(bWbo&?qxWtYr_cV|y{c)pXxr(D_TupQ1lNDLt>;kY z^H+9%cXjsZi{onL3J;QZd}Z!PPJ8zGiNILrOTT>jQ&#-`KV1B?jM3JN{`FDngS1e7 zuHP{C=3iv%7Ia;=Fq1d@=z8Sf)*sjXdIuTPEg2_|U74(pPB*-E{oNPRL$~@beU(!j zO83PvSAKD(Hk4tG-%aGkZ{IZfD+j*ZtfysP%f$O+cYoJAXD3gbT0QO0_m5vU87@4I zN*#T#Zb5XaC$i1DBL^#xH!@ROFMagH54i=keQQQfKAYEA*CoA@_mCAIEbNkm`&MY75=_+_b+cSI(F(Ms) zSuva$yi_^#i#uByQ}B8xYX+2-|S$pgH-+^th^= J=SmNC{s%XK{D1%e diff --git a/assets/dolphin/blocking/L0_NoDb_128x51/frame_0.png b/assets/dolphin/blocking/L0_NoDb_128x51/frame_0.png index 759007623af4e16c1bbdd167750e2ee47152ff88..ee52444d899a225466c7ddd0af8ce0f313936f8f 100644 GIT binary patch delta 389 zcmV;00eb$B3zP$p7=Hl(0001Y8$G=M00CP`L_t(|oUN0wFGEojhre_BQkAGyEQo}G zokT2_{vjF$n~~jXB4M{$?1-h4L|%wRBsv&uo{dExk+_=n9mDI>zS_i@&i!(J=l<@= zxng8P`2!G<*?wR^l$A`ZXC=#5MZbx24q^y1O=G|Vz%@RruYdKU`}O08q{4e{9$YuK zE*j&3*K;E;M}Wu8Jf$@NIb1#aaXK+pTPf}Zi&7y5O4f@%z4kY7Y5u+sp;~S<1)U{8 zJF=M^Z9}-5tMD<5Uotc6oV=aaPam~COwg4SDS#6HToB7%qp}z36l}F&CDLPW%+WZN4xWuHi-fv z6bidt;CvhkTy{Zjd#a5BPbp|sW0c+kDJ@0mn=(Tl3VfyKycUxBj4=kHANWAnCy4=e jaKKEm8UQB$@IAf(*g=_|b*0Bd00000NkvXXu0mjfqkOB( literal 1424 zcmaJ>eM}o=7{B970l}#(o141x2ny=;uGcH=9dz{L3hhEWs9nmOi(K!n^epW)ch?Va zadne@WedbVbi{u!8YNp?FfO{V#0_IKx=0p3##k1`#E}rP4RLXPEaH2V;{G7JwZlb)R_1XZ8c7yR<2!{rcEJS+vfv@Tye!^?34 zC&*#Zkc}sSHUu@dWRn~p6E!3(_DBgEdh_f#6p;iQ8Z!F`U(zK;B~QO1KHu*T^8GQM z7SNWhRTa%y23UxT8i!=#y$O}c+R$ag3^?o8IEpN*XfYe=&^;nuz7E7CDqR8Hz$y9u)XPkY+`QFafr8#UGGtXjIdZ431|q z8AHZokd+?XNYgYj^Gvt6D((KbAGM)nH#z!~>!#rxacU>a_(hDB`^x z>53p4X1gMR_Hezd%%|dFLi4gV6nrrVlEAc*4r3!rx=k*YFdE%12TfVsjja|JYjwFS zW>>++npoQ5Y;3eTDHDL|SgVV&TC8r?;$%q^O%$-+gsO1~UM%>PbiaA5SDm6Hf*G7w08NJjb)sP%SGWzbwo&y8x=e9hgRDbsK z6Ef6S(S7;fb@rpp%LSXz@rW{fS>17~6JoYFskkNe8RoO-H6`W7FTX zr@x!+Tx>hAd#EyZY1f#%9RLRw&EeL#H&mW_^ zZq(1#?RwUW`{AuE3~t{%YafIc8jjo=o;-Mv!oZb8W1EH?ncmMzZ diff --git a/assets/dolphin/blocking/L0_NoDb_128x51/frame_1.png b/assets/dolphin/blocking/L0_NoDb_128x51/frame_1.png index c9810b61e34bfc61f4b62a26225afaab6a05490d..a6547589950a0ca3fd22d9ed35f0ab0eaef4a31d 100644 GIT binary patch delta 390 zcmV;10eSwB3zY+q7=Hl(0001Y8$G=M00CS{L_t(|oUN0)N&`_4hQApX-NF#WMnzCW zA3zWrLAUl5G-%-)XkjBJSSVQ9+Spsz*h)lfL@2!otG@%70OMVbC5uoYnlKa0DrFbReHa^c;3EzNh`e9 z=GlF7_og;p^}254?E>(4SfIECAm^J`9j6mxm6gJAbx{HmplIC~XxiUkwY~m0fl!U3 zat6Ma0R5JYDgd@4Jk1AQOXkBAtSgPvMU6FxGD!g+6xuC_aG-e84gjeRJx*2vB7e^B zneQXnD7{6Nw3B~dmzZkgVrejmCcfGr{z1zC2>$O|sTAHn66ZXON?z+{jcjw)W zb<@nop#oxHevm%(v@0`D5Xd_ult; z@A*BSzvuRZg4GuDIx_@87Jm&_2lgabRIUlU$ATLQzy|Ae)m6~(^XsR9klXGKxFP7o z{^hs%B|u&psttQ*XJ^5&;q;|`uq{(-p3os^MJm1EC%@aX41!FDV&NvEDNxG_O5Dne zN<^|I;wsRFpt6dD$_t&6fkdSCnCwDlK0bvaG0}xKmIR1^>XABPHGP^?-xmxEeVqa$ zq7~&9b6J7~7UGh@BZ+vItg{IhI%k*#=kzs>B6BK6rwetbJt9qk5aLlZ32|6$m_QH& z;$W;IAK`^aWHUk%qzxx%+(u&r!BPxM)5!dT0)GfnrioFuj`Pj?1Ck5vFbtK&@t&R@ zYY$~rw07LaFbqzRI7wna1JiqDgHK?xUXU>|Z-$d}L5rzIOp%eaSw5n48!i-toXI7w z1_BG#WqrP6pm=zKS8fd#!_T=;@Wm>|MAk>TZFY|IQXY=5*}NV%Lp!~8pTomBJswAi zCu?I-EaR@S+nqj|0?;(p>7kttrUDne3L0x4>Y$)eJu7iXIU+LXzfleE}QN%Uz-9GR;#8(Sm}k`hWB z5+Pt9;3!5rBnpc}qY;c3qE0?aF{H@b(0ROgNBuH{1velUH5(G^;0eaz6iJNaof77Z z(oT#o5qQi-M+t^x2!bX{Pz0YNB?uHx6X*^?Wym^r3)q?-6?|b<($d1bNirBR4NTLO zwXbgmbFTO~cev)u-w$qIGl1OV{iw9&=Be+mF4;yTcOI>XkD7~)ef@m$7e#)?e)7kB z1?o2=zs_tNUNyM|K5%AVu$}ttaR*$K2Nh4Z47{?maB%Bct%kaG!tpL-`}Ev{WAAi7 z+V|@9*7qAPuKFhj8M`)S8qW9q`B%K8GkXp{| zUH8c&pXDa|r}m9jHiUN9TfW$Ita-fahANvT*_^huh0q&z`;BBsS}}aa(jY>+@|emG z%O>I%Ti3(Jz0=ID3IBcHjI2&QR{0d9Ux6<@lq4-fmyhfyrCau&HeZ;!4EwEJrdwid k`O3n!k*R0@uHSlgdG|)TYUqQX8`6J4zcn&_(&8ndxBv4S$u~esxH?eWt?Cqnto#U2* zf-u#*U*7-C|Gk+Jqq&p^01;W91_t=1WMR80dG)iM4hbPZ1%G*?XazU`!uh|gKS%wG z?Jt+(4EJkzcszXn?R-9Sw{GNjA8?$k(0Kh@>iIsEL`GB@~YO*wW1GN{fo+Mvc-~kJd9h zc)pjlWbnoYR}MbL?3oYGPf+-A9YL{Gp@2`Lr$SL6BvJIlp+FhqS#5y_Ih!^H*hE6} tqEaBo6Q4r`@QDB{jmHUK@(ADK29PACneoGAFaQ7m00>D%PDHLkV1ft9ymtTq literal 1423 zcmaJ>eM}Q)7=J5*k;&F*qKk;TosvxOde^&y_D(AOxMCYyWVI6<+rstkN>6C-=pD8) zbWD~F9S#DE#C;^wWgpJWY50Qyf4B{&?jxI-U;ALw8G_j|)X0{7goV9rsq+uxCGWlO z^WO7&K7Y^csj1#jkiR@108rrdZ~?e?z(vi^f$#ULi&nwSpanKK!O^c)`~rpfjSjy9 zfa5*)&G5NU&a3eS-Ltc^@c7s#=XSwuq3YSH0dW6Esb$!9anC{kat_GBI=#;CV+AE@ z;zcDSnUYZzY6DPFnN)e9Nz##!)F{Vn=#9}6C?bnCw6@Go_*It_kv(m3X>(h3P-trs z7!j>pUyxssWTAzqr1MBJ+8oo^qzz3QX5l$?jiX3fMQ^g9j+95F&R>JLl(>XgOlC|V z2m-M%CXo;ELMXHrAqmoq6Etq7F@j(zhNWp_?m?kH1gVINVK%^3&H00p4UOo!%Hnt; zkuW7FlM-*l%?!if1c{R*1~o8kM@;9FSWH`$F*0X{lQbbNtGcYjkd#?Iq_pZb6o#D1 zC93-Ux2?ytxst)+;YnV_%_ahmMpFr zm!-^=wQ*N0<8YRjGZalhXbNj}(N>Gq%~_lrNijqg>y2qT9}}dkUpeJBgC*~YWnFQJ z*OhosQJS+kRoqJ=kVek^~(?z-oRYcY)GtyCm4%WBr%e= zN|-fFTQR;&;4w2DCK!?-2%0QI5j;&w7$}}1&>e)zkTrb^*_s*^{PwJ*q}%f*#o&;| z;WSOpDC2O>qh8Jt^qijBU*Go}vdFC^dVhOnuz#Qn>C*qWq@Q1Gd}*M!>-Rz8@V?7E zr*n}}@ciqqg3!z7z}c~VM~*x=^wt14JI}sx`;b@eJT|iBi?#?g(?S;*w(Y%CTL0az zzU}9JestP2w&qNMy}tPIb@tKj_ip7iEFZUR?6{h9b!>t2dhYbI7ky`qH^14{Q42N= z55D4lDlgft4}%G-58O1mCl6F{6Q1IZ)s+kW?C4%MwdD92Q!!XyB1|nbZnmGt!Cws( zKm}~>+NGBt<|jH|+wC9UX@B8?dC26_pZ0bhDr$MBXrA-aM$n$$d!sbc_qLdO?Vr!a zO5XUfoGM+rY(Mz7zhs%Z`efdfcFU4U5G*V_3cfz|?w6qbbE4-wm|gkdn~mUyTPKIS zH+C8(Mk;&@uPLPKxuT9X-rYD5&Q~yA(yP7-dY}oxDrn=)o diff --git a/assets/dolphin/blocking/L0_NoDb_128x51/frame_3.png b/assets/dolphin/blocking/L0_NoDb_128x51/frame_3.png index b48aef97839e4766b73c9630ae25c4fc2abb3d3a..c7668019d48e82f956b8f86ab75274bcad7e3395 100644 GIT binary patch delta 392 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 diff --git a/assets/dolphin/blocking/L0_SdBad_128x51/frame_1.png b/assets/dolphin/blocking/L0_SdBad_128x51/frame_1.png index 147561f0a40ab1c8ac7134844843d659783c2109..dffda30108017f87c977db565190a7b02b21c21f 100644 GIT binary patch delta 389 zcmV;00eb%H3X}to7=Hl(0001Y8$G=M00CP`L_t(|oUM~TOT$nU#m{{SZICwYBoq~k zI5|~tH($X)XEzr`aB)#cyEr&@a8>X#=pvFuT*Npk0GoSL?9)EL3i{1kc)WUFzdwsmT zMYx&u>=cxGV@Fb;yFafh8~`Z80cfApZRd5 zU&gmln4=Z_^Dxy~6};Pc@-?Uk0Ez-P9n1WBu{JGKrvE+q2t*B8WI50KRk~gm1(XyLBv4b00000NkvXXu0mjfHaf0* literal 1387 zcmaJ>eQXnD7{6m1%f6t|Y*E6R^9BSqulLzr@3OMBy>_dtbJmiT1kJ8@x9!||*WBG` zH${tMCK{B4NHeEmMA5_yvY8l32u>yr6Ny-XIAU7c+;l^ZG{2&xIS3lXqqz@ke_!25V-eFNBFGt%aRPJFTP7a)}OdBa`^ znm$-{ODqHO+OCdhU}>kxnFmHUu@dq?4jFpjb#;=~Fcix_D{^MO4{?c00pFIO$jV)%FoXd32;RDvbTK^8g{CSR#^63~DBy_MmxS9-MR6IEv&|tN{<|&3Qy(;V#6l8w$cYNK7IK z0%19aEXGAC9)A#_2#UlB1}7PeAb6VN83rjlDDa0M&4%2|M}%O(ACNp~zhxzP98aZE zjuh?CjXs>@I1VQ$oT4zGftkaaC8jaWY*+>GYcgH#lzEL5+@x5o=D^p%xjxgMEO6KRkh9Na8kh|im4A7k^!#ZdPsa?sEdNWRXzx=I{WoE8a} zTfr1J8OIo!W-yL+^NN}uMrZ7qbknUc_ zjfqZ4#7L%>;3$qD7|Mwvc%GCXP&`MVI|#K**8DACYi?BVm08J2EAyskV8{$GO<(UH z-vZ`56cW7A_H(~wtF*I7weUyH++Q=-CeCcyANi;$@ZPV1e{9#|pIjRJ`$PHYu>@pa zY}y0wORR?~y3Nc~+02~h{aeroRC*e|IQH3I78<{Q4O(|!&*^WjX6rBf{QB+7wriIm z`*rTc11;b0_+j+w+4ZfJXO8U5%uz1*5IkP;cC5bj;#0MeXUKBX_wQqfnR#h$X466n zwrz0uYKc!fAh@;>c&pS{H^?9XnyhKFR8MrpE6fEUv)xb2X}n;_SYQX1AZmC28G_uJUu4iK(h93-HIaQ#DW%@tp68wV&^{r9b_B&5^+7MO#nlJJkoE zi0706KeBH_d2D)j`K7kK^*;_)!^7q_xN(BM=Plbw7Mac-dkrSvyip2e$5@YhV)SO? vBvkn%Jb!-d@Cz60yI_9tjiq;QkJinWJ10r$+s2CRx&K=z&?%ho^*s9@I19&{ diff --git a/assets/dolphin/blocking/L0_SdOk_128x51/frame_0.png b/assets/dolphin/blocking/L0_SdOk_128x51/frame_0.png index 6ebbc111108abec43afba4189e410100d199a821..89af52e6976afb50a0b19ec58c82671f5d36d3cd 100644 GIT binary patch delta 379 zcmV->0fheR3W@`e7=Hl(0001Y8$G=M00B`+L_t(|oSl=gN&`UeM}o=7=N)FV|>MrY#1HpJTzhI^*-C{9TZmjLF?8^Y8Oz{aCg1Z1A15Q4qBKW zoeONb7_*oV7ZceZMvV%LEdC>o)v1AON|rd5#gS>Ei*d4uF2)X=e{vf;Lz4v|I zd!FC(^?UBsj!=6|<$aX^fSQ2c6NY;RE_#y%z9&QV4R9+n!tHHfYH`OeP}tP#3c3K8 zd86tdVKbD=JN87pxm*q&_n!XtCAe)(`kyiYs6CxuW!oAb&j4UKszkcXuHYVC(h^o7 zs)@2Sok&7$0GeCVNkQtDO+=J?71fFUHhT(1l&BN!v;~P^(k;go|A;O>ITDIUBmEK= zMO#~HDx1?hL`cY{fTR-xs==q7XaSgq=lnH}A_Wz*--){N9+9qK2jbRr8DXs?CJ_XI zu$(n2h=L@Fk0BI6kvPHNB!dwIPjfuOAjJoT{t%>DkH+}0$5-?RB_|p;%_NWGsZ`3E zqOF?Vi<2D3;RJtj%4* z*vQsqXUR6&=U_ z3lsgIeCg*)pkk(P*Y8!r-skVmsxN|b^WaZ+*EfteCO`7Yo7KAx^qm#%`WT=AMPm?*Hh_*EinneS7=C$_pU)(5K_^ z9gR0NaBk`2q2?>AEgAa!U6U2~>%?;X>XAn;|BCm`Mdmv1*>>$h6%E93zvU2?cKrpW zxB>Cb!}K*U02aZQO_{#xGuu~A&S$>6x7z8idf@?Q?GLk=CNg`xc8pr-9%qi78lGt) zu8tm=K9~yboSr2uUGHqE@9F=*f()Yj&mPTweigib(F#_(Zy`!%ez<2k4aR^Sd)9yRCOMt@+TWnm%#qlylr0gFmVBIuv{-!iG08=n z05BjZOZv6_mEHHt+qII4N#X+Hpx3x#v}+rQib4k{!Uh-&0T|0b2%Y-)T0Pxr7H$@+ z9<%~kG7g?W*?M$po8Z+1p#hFGjjR)qkBGsEN>4-@97#HpPXI2*;;U>A1qAC4$)S6# zTm~BFqii$`z`(PY-q)cqZA=qq9DlH&0tH>7VsMztF(a~F@2zilq10=ywQRJot^*d9tk=5(8t7fuJJtfz zRE=4-#l5T1ec3+fGK_4p4;o!I#u8cPlo)&o*@qD~rm`g@3?nf^_OzwU55!BJd!GMu z|Nrm*_WR%4&4E2-C6y%rfU*W3AB1}vF1pYF-)90<)o?4&f_q$G=<3t=pitP!`8fd2 zzF+#UPz2?*&5a??($W$GysO<(NLS-=5J(0HD(ed zH6oi*u{hKQpw5|!3u3pdBN4eXsyNWui{GP2RC1uL7C+&SyXCH^uRkHb)E@|m{oNuX zq0aiUlDZTN5n{3~AgNf7qOmClngwRzIdhGpNLEGfcA#9wBhuz?M%-#bMrY_~B7zu+Jcm#OMdE}RC(Rf^ur$M(&B*eDLVpNSmykNxAn#rF2PFsErR#AP$CJsV zDM_2uL?=!%41*ICPEi=tz_dO^7gCs_Rp&sKVR%^+6VbRHRTU%yD@4>@-GRc8bGgLg ze*X%(qAiyU77tGeahx;}cr2DlFsrTULHYk!R@K%*eQ_BN%9`4n5M`)doi~O>e6pjA zB8-M@N+Xh9`1x1weexn(`Ia~V^ZCQ6h7IZZc zQq`V36`H$LUDdkOI6~1T0;y?@Dw3MicIBG{+my?imlM%9WXYRQV@S5nY;=`4s0b|( zR=bSJb~1vQY1)i2w6z0^L}Z&_vr-~0Gw8Ct^jQ6JgoQUSmv}xT)+P{)%`QeDU->w)PyzK!O?-%V>4c9jamWfTrk9>JO&;lw$zm|{bMdt@A z4^M2}K3_0g>Qla3lQM=4`wuDPLgS7{`@kLNZ1Laq;h)ZLJN@%73#U5Uw;U_^6ZoGw zanx7-$v-=RZaZDo#C*G9%Gk?4JNiPkv1#3#f4uYH;kzgBBeOSn&%pfX`gGflkHG7N z_}widmbZ4TJAT#H!Ia_*tiHE)DMB diff --git a/assets/dolphin/blocking/L0_SdOk_128x51/frame_2.png b/assets/dolphin/blocking/L0_SdOk_128x51/frame_2.png index a3450ae05db24714b36703cbd4c507ae0cc07f66..3e7d95af367661183b12d76aede818664b124acb 100644 GIT binary patch delta 389 zcmV;00eb$03zP$p7=Hl(0001Y8$G=M00CP`L_t(|oSl=qN&`_4hQB#Euq!A=tVGcj z8_Nhjz^1hI2?PaOODkO~k$?!kfbU_E*jR{&m0Ac{3r!j^UeHy{jz!jFcNGIpcfPs( zGlvl+Yli+{OQe_rq5@8oNf|7qQ!L|)3nRZ3-Q85U2z#Ij;D4ptejKk{FE#xx*o&Xm zVf4UqyT9*5u-4&zUTN3^rsxg?_x^86`%e24Ow}?Z4wg!es%l*yw^i##1Me#FwdVmo z1ncN~Wp#4-;qYu`%EqE`fjE4wo*NpKxulDw2}8JGFen%%pheWx@jAUzt`$zlwtON> z+0mX6+tN`Q7=9SYOTWuWx5JW6*?5z0=^_%)Hkc&hSyij1t=*lx0G^38u<4o>!r9B@ z@pNK61J%86Z~HUEz>VLHk6O7Ux1t;eM}o=7{8`KL!s!R;Icq=If4ww_1@l-F8PGym)#QkBm3=L*tFmdW)hA!?S=)yLZDG7@vpnz{%iu;4?lK0;C zdGC3C&)4s{!M4_BgMNb^K@fxA#|Gg(02fuDh3`*WtE%CqQG(4bWaNj+87LHVIRj1v zIeDn$U#<|!rEM)C&+_szJT5LSE-fuB_%{9tg<{FKQ$dijvzetS-}Kl3f@t54hr((& z(8BOy!pOzMs9;PdB&dxbjZJBZ<9h@ZjS5}yq#c_b9mCLg%#Q772!Md(7P{lUep%So z-x}ikdw4pAHEl8I8`BI#NC+y2rW3tMg-P47EHDGlnQH<=vnpzj9dl+pqTxUr>K0`I zwHi%04*)=|v@ym-IX)V#M@c}M2w)~mW*h*9q8YOpU3oC*4@Dd0SSJ%?y(|8pWXHNy zRbmJtl}Z^?lu?ws2op`y1Rx2L#GwYR>`AIz8c!rW~wm*j=K-+0Dv&enZT zTgEL5oGQv8QS8lAp{-j~MWtJmP?9nNbkmM_GA5>!x_pyhn{rvRf*jv1#JsYYK(lpb z;%me~Mkx+hYyvLWOi|oSQD&T`ES-2XDp)zIh2$xL##ZcOchxUPSa<_-k@6uiRu0fs zTa3g>4no>G%{H8C;5po6?gTVR17Ic_FqFuW5(Y|S2y_>ra%9ckLbhf`g;<@HjI=s$ zLJ|&{45#V$IpR8;_I5w(4EZLe-#BpKYqa#WKMe0SpI&!nS-!CmeYmE$=E#Yw$3laZ zcYa&nv~8jKm6}6^4r|9}dUWh(B(m$5QB8fp=inQn=)$Xh%69eZk@w9{XrMIRA7Y z^vU*;s;R@+>pQXH`;Sf)UeTWa8%(1Wx&$(UoI}RT9k_1#f!kl+7?8`(cM_8?{kZ@5 zbGpdMs~Xf^uNfa2*p5q2XgiR-XFQL5SmJnbZm!}hU&#mI)NHWs=*Q0#Nx$C5ILa@S zfyu+`hicJqRpfZ>lgK~A&ugbV`?h+e&ANS~z~H;49XM98yZPEo)8x$1LHAqjx0Xxa Z@3SOK#WK1uKlD@4-3^8Fum@TIUVpaj`_a->wdHrgUh=pG z!v~h@{e35bl@9ldO2Zy7Ww$T5^M6wM=d|C!L_J56pjvTMRU7)SrP?qWc$cX!o&|Up ztfOx`%j1jpho@5$HW5uqB;ix-%y7FilXkJRU;q~k1_i?yw23-8D)2J7Jy$QCjBNTu zmQ_c4Mq(??EPpW27Z#-76r|fh$)~Kp%9nHz35X3Qjd)Vknu)c$lV`v)i3T=X(?U3X zkv<-et!JRN_vMX0LJTzhZhX`(EV&&OK-nz-x10wh>p=vhN^e!Q@#|N90HLvf+W`Y2 kQkTp%yt$zApYtf#Csi|_!n!VVC;$Ke07*qoM6N<$f($OM6951J literal 1403 zcmaJ>eM}o=7{3CdgRwdz*@Dbnj$|3r>wUJ@yU{`0Ybj<$Rw^rIGritjX$S2ccLyyb z%ub?_zchv{j?9f^F7a!~mQA8=3@|Do#zfubM%5L8o}RRytKHsF}tmQ1^l`S-6Na8hz1`|UwIsCwl@GSI8Z&Ap9bvA11h zC8TywSxHTn0|+VE5a4X8Bdv2;7m^3&z}dXU5IC=5w7U?u=@E_un_#b^$uMIhP!Y#* zm|<;_5EH~$>`|D+Ndm)ZjG$2*=O~t=X?W#9fIk?n(WE#R;{7ZBfaF3FhM{s8mdRvn z8Oo+;Z5Y9_EQXU9Nuodl)qB#0kVVsa)iTHm3@_`VmQ;xKA*OU0E(C-M+_iok)b{XcCv zuO`OqO#*FN&YG9CWVbB&H6;b->&zwB ziGz$$0`73isO%(SC{0l`%2JLv8jHz{z&J>el38TMUb?G(%Y+3tAQyEtB#seqmT^iX zN(und8K<47U>60HpyN18vN%qYb_B-qqy&LtCV}oE)G}G~w}7qYs9KbB7R)wQ1)>3YT1I_p0`2dskyjpO`q zs||YZx0yGgfuAaJFLqyk2r3^c4juL-cG(KHUcWbYY2&DKFdnbJ)iOfvK4^)AzTNiD zmu2_A5vOZEdSG(vaK=*oNn38(vbbY-#=B{@d0=V##NsbQ6W?1--AQ-sVs7@I7=LSH z`SHS^;mDK)L(JTU=vQNvTRvC&=6kHstEHzS*7;EN$;{1?Ipbj?clOk#+?j!* z>&GUheuN&OIt$_PZy0Ewu_zUdX}IfIx$Y$^^xS22fj;qf^TBSrRk(I-{`u+ca@66P S>|~!b|91_(Mt;N-edZr6sMksW diff --git a/assets/dolphin/blocking/L0_Url_128x51/frame_0.png b/assets/dolphin/blocking/L0_Url_128x51/frame_0.png index 387c85ea2e6295a42ea6e9a79fb4744cbd8a0b15..e95d7c3a4199d77273e3e40c208fa25ff4d39e34 100644 GIT binary patch delta 372 zcmV-)0gL|R3WEcX7=Hl(0001Y8$G=M00Bx#L_t(|oUM~RPQySDM&E86WTcQpqCtR& zp@9=1(GVXc)D+wRT+jy&5Rofz0vosiNRbdoaVi=L(-0Hc9t!^`>jo)ex_O%YX1|$T zC77XE0Vt)MWgtLg9@!e0M~M(r5#`ojOHDs?Gu0Jl~Ao=R;2~nnMqG$(lz~FF5pc zvQ7Z(X-EMqvb>GAL*r`K$D-Q`fu1{=?6>smJ&|+ZbVNd#`y%3th7h1vT{Uqmr{>nG zd5L1DX3nmXnQc-YsZCI7+==)sEESfZFEZ5&S?d}aN%~cZq!$qy?CTOpKVSA^Ri7p3 zYMuZ|hGzKzSsG0-<-CQ327bz1J=o@=8n@j)RvAKQfHS26VxU);3qaIAe2-s852dGY SAW-B00000ZA=?w9DmB&loet^955%jm67bNy_eFrlM21NcCgXHN++O^^zEQ$>D}e-umvNY zhJ`I|S>gxA7b6?l7ZZtQCJKa%m<^3nL)?ssgM`E>12R#E3!0hwTuadpxJ#aUp8s>d z-~au8XIp*8N{aUu0{}{z8W}&_Rk+Lr`SAUL@7Zd&>16*g3QT;nZv_ekJua^cfR8Th zeiSN%a#3q@z@1K~;qlaGw+7+%q}bRg15kQRTRMAT+W`Rbhqyq8(&23;BSOLyiV9)Y zluC#Y4M1IeN(@Eftb&Bu9*%b!)~Bx-5H9L8v|GHGSESh(*Ek@tZ3DhQWFQ`KL=E-N zmlW5fNT?yfDj_75=;dWHa3D2H4H09Bu-Q~fk!m8p|H@WI1SL}Y%mGY z>)qDQ%Ud~v*+Wwy5yedynn-97X3( z3J5}Pt`}Nkf+EN5R@aB!Ayj#%JGw>L4aK;!54M|Sf=n4U4)Mkmv3{JH)0)@j}0Q?IPK zV{d--_Kz*d-!EDJm|GjrgT=z91{VqrT(0_|a((U&=)PapkoWSHX)y1ZyLacrsP6l3 zH!Fg^7xm4H;a`oXH%{m}mNxU|?TcmZ@7@^()ni>#$FG#X1`yIlJ6* zIDYTy(kF3!1+K0goiY{`s+-1D)$)5AMXFuk{h7jj6KzwIN6PnCfjym{J~3N07M~fv z-WeD3)rqpx_<4)*5vjv6IAf6e*nF5%~}8e diff --git a/assets/dolphin/blocking/L0_Url_128x51/frame_1.png b/assets/dolphin/blocking/L0_Url_128x51/frame_1.png index 9975ca3f042623b1cefdd5eb913a804dd185d734..d614498e6a77ea2cf2566278441567ebf0180bde 100644 GIT binary patch delta 376 zcmV-;0f+wn4~GMg7=Hl(0001Y8$G=M00B-(L_t(|oUM~TN&`U@hrfAQF-0_jjfj|4 z0(t_$CRwcPJb+C+fhSN0v{w%x8^RpG7~}s23Pf(nTE{Kfdt995;bwo^H~k$@RTVO)~_ZvxVJ} z?eADgB#3}bfwY*CUyp^#g$2Reh=E4%IoztrizTXVSL>>wPI{`^Q-KhmQEqCITH-B6 z&g$NbmL#suh;jSL$HrJOS?rgfry5AA9G0L9zD#v+<@886J1CR%G(zBETmo(9W=FOp zS%Ls@P=X{wfaJTQCkVN{#Rv}pv@9`$s%uo`cI6K%LkJykVoaYHXcTXw4{HA5dwc;8 Wv5rT5xx$wK0000Zx1+ literal 2046 zcma)7eQeZZ81FF{>;n-<1QBA>NgRP*KdyJZ)}7n!dSjE_7~_zkaqwRIc58Om9&NX~ zO(Z80GffznD1R7|LBweI67k~?F|f$|AW{4ZxP*v`@CP7b2u4Vh`S!jxlA&DEYu~58 z-}C)EeW|r&`ONYKablB%BDdXv=Pc0hBFq zrKzF*0ddKYdmNQbQh-2j+=`}%4Q!C{No?2?l4ynrhk^p<5BnPUkmL`AcyFknV=}In zk$geK;ykE99Iija`FVd>;_D^WBhUqIlWy5Smtn!KhU~I5PqQq;k}9q8BnJT`1t7?z zFD9ryKg;r*;?MHMkO_fpm{G%s7y7lekOiFexM{q4t)?qR%33mk03~3<0O7PQ$uOvI zql{lu3qk z38|#sN#MoGh#@0xn8>i>U7_<)@8?P-K~w96N`q-6@NDyn+GNS|$X*`OGKsRRk{k~` zWK30KB#>1x0EWo(l?g@9tpOxK1sHdT2eiQZ6_#XyACi8R^OL|U1CrrXT3`j5 z=2$O*Q`t#(#y;d2~zmiofo)89g$n>9^RFxvR} z)tzO7C-BPfE&h+=WAMsi&|SSFx3P_y$PdS^*3TMU@vEHC+vMG67MHGHvUh#?F!t!$Oy$0F-|T<# z0#{e@#diI(Hy&Jy)!}=V4V<}uU1VDi^Te#yeI;8v_H^7n?>QXX@PTV&)O90x`t&sK z;VJL0y1f3Ew+(FLm1hS2EYF0n>DY&v=!>P;W6iT3zPxPI9(+DsxuJK#k8@rq$;>}= zrOv!?bZZprz>aL1y6fqAgRY^A^vK-do(Fuc_LAtq)XtliKITU%GyCSA?HJg#()CsM z$%h8?=HE~G@S&=2lU5x!qknkzYeHS(Aah>1hJ877t_<6A^S&LYPR<@a_Rgyn*gV&X zMXlexH-E?1M-G=(U-xAG>KHBA9qF(A^j7WZi*Me3dGC!W*PmiMO=tJFJD=R9aEo-P Ie#4f30c52?h zkmw0aY+y?}51<8}z!RvOXs;f?ge!OgKD>b@B*wy}va#4oHn_WE0W7>NiPOz5|M`6L zjN+QG1Te45Zj z)O3KV>Qd8AYzROw2Vd7MLZBWQ@GjbAjo+LRK4H9UP<14Lc3ons|GsisA@+A8$>{L)~Sh0v0V+F z)@^>4C=ZI6GjcS>7ZXPr>8N^=EXdnXlW|JT$q_3jGbgzW5wv$V1KNzRa5dMbF#`Qz z2I3R}LVpIVAVB10B`gBO*`&Q9!sGw|C_GjWK(i2XPZ>bqfD2=~L_l?V8(mQI58vYt X$n1{CLoMdF00000NkvXXu0mjfrj@8R literal 2044 zcma)7ZEVzJ9PbT=lWk#wi9}wkU5pUv_2sU+w(i)D>y0hhjkz6RxTrkWKE12EYfIbP zZU{I~B7_g%Ok@EPQ3DzcuS#N6P%waBB=aqZX5d@Q6cP9!9}L-idT$%aP%hU#eV+b) z|M&mD+uGZfSI>NKCWc|vEzME~S_jbOn?4QQ54J6+MT^JoSiTH9bbkKtXfr(#iiR-k z=#I);pd9UIw7140Kn2qkb9tm$6-R#gT%FuJ|S>T2@=G!FsU`KvtZ}CwwS!GM-~*K zVQKZu`mBf~q@e@wY&xaeVm3(R1dHg|J*Ege2XT6WM99^McSYOruwg+w;AKderfEDN zc;mFn$Du$k!C9JRD2AmNj$|2;1c+IyJA7y$T&d)*_?MKZAPOd z>AGEr8Hyg21t!IKX)2v|JP(O2U7Wi+U8fgflZ%Di2b@Z> zoR3o(Re&-Z$nnLn1%YE&F~dj|>$SZY1)TMHX?)QtO;?OQd+{U!lz;<+gj>2K!=Sp2 zF}%puiGKbu+9%R^+r+4$Xlj26%96C7WZ4)~C;DjgzYU5yM*$A_U$7#Js$r!8Djh8i z5|A?W1c8?_BZiHXVIjq?b;Zg@wVzLw1TC!>DovJ=#&g9hYEuM{^~qcS(lUvnjDi<{ zD0r$GCxNW;K=lc%0vMveS0*JrKL*eVO2C9c0YD1@USUZV@Q~zHKTiTq1|;KGX@M1J z+Rt(XPUSk?ZTo_$&6_^Za`Eo! zBhT+kLL?HU`cC=F!)!x!`hW#P3Dg5qmJ*9EiUL{F-4;W|l&8r_peG=jx~K^!f`A;O z-0?Ko-FhmY#M>j2$4we*`H`7pqnU|zh*uoh?yfZUp^mg#XsGYuPt~K(O=pV~iZ!3R z`f88$8D90`@j%ze__3F3R?L~*`u$k)-5c4|>5UaZ^ViF#-w#~6AY-G82d-bK!KD*U z;^e#?o~o;lVxFh=zl9B}2QHrL{-Ery{Ws(RL1XC5_EWp=|B5PKv*{OaW9PSnk%9Z# zpIL=9dP3bbZ`Nd<9Hl*fzTJX7`_6D|thM%feE5>*%k}d|=a%i!yXj32?7Mui;Y`y= zs``f;A8+Y8>~YE)XUj82D|YtI!~C0#pLdrx$URjDb*$gY>ZD<2pNV%F0)v9S#+&tnH48V}DJtbBYR!7TFb zRbT(m?7HWLIhQMkp8IJbCVzf7{Lk2Hf86YN{*1H`E@6D{VaHhagWD2mlMXFgv-w~1 C;FU-K diff --git a/assets/dolphin/blocking/L0_Url_128x51/frame_3.png b/assets/dolphin/blocking/L0_Url_128x51/frame_3.png index c44b171bfaae20b74657855c263a48cb0ca3ae85..928c1a78d31a768410cf00b2f1f85e98eab7d311 100644 GIT binary patch delta 370 zcmV-&0ge9s4}k-a7=Hl(0001Y8$G=M00BrzL_t(|oUM~RPQySDM&C{x6eLJ2r9l+L z(7*|hXozpX6+%tH4ZsC`-~dRuLQW6^HvlOTqKH$`P`H7Z$o5d=$6l8aUpG%Pv-6E+ zjbcmK02pJuGEgA4OZIwp$?3~(ung2s?4~-XzOw)2+u*T1uz!IMlX*g5^+?m=8nWvcLATr$&~Ac5_Fd%XDFThVV(c6N zp4Y$;gw@6Y#6c*Xn0aa-l+4r~Tm<;7m@5=PWPwX#LK2{}+*Sx`{^5K40X%nPUyrpdsjGRs2E(wr)<`Ih?gQv@O`D4TKWKZR0o@#Cd`UBQ_`=+)=rAo6j0Q36 z$o3ikfC_Z3j4e-u$HvCcL><-m6Bc@&{=C9%d@6J5@WTGk09 zEeV~utd7ta*0?yQ1F;iYcoL=*H9*`vF+$*q6d+c6qI6UjU|Nav8?e2!ZG z&Lk~!N$97a!C9JRD2AmN56Ln->){y>Ui=ZrAdWX0lFY|LEk%Rq6d=-;rSlZk+uQ5x zbvZR7MKONApQ2fcWl4k}%|6uvIZ`zn3QCG<7(IB6=IwIj@`qQiLeczZ1F1$ z1@#Zegfy|+R@oW~5a^9lQY5~G4Km&k8+HjHnqk61(C_BL-WHz_;sn9x5lT8H<9bepB)3pnd?()fbaiYjTn=E4aC7y=dy5O(X541@YM z!Eik5~qZ!Ds?Omz!QSTQ@6@rG+1Em&2%i{Uw<&{a2$GSw152BQzEX$yHAzHw}?WROgo{e@UIw4+ZW!tCn+J`E#YM`Y)|Il<6eQpx1pa%X8{3Z!J|#Z;Po9o)B0(=ONMdIq(r?#TI#2iHAxa(Ksvh1krws~uNX zE}J)HaA5r&2j-~RB@8wXzjIEn`2GDZ?6XDRoO|zX<*M4RD`LZKn;k2vEBZm-?04`M~}_rPW`m` zBHtn3weVT>M}+;tpY2Ttux**PU!MN-1oqe7s^b^@OZP0P?%MnASKZ0$Tc;0P?)(lr zT6r70y1Qc8K)SvbyLqO6tY+x>&cU6d)vu|y>sMh_x8}vR!$&$sK0H06=~vMrH&uZO z{jJRnTYhdoTkpNzF?i)=$M-MfDo^dab!$=IofX}ezI}1+zV%o#&bYWtIA(uwTf=Rk J!_6I={sms0m|6e; diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_0.png b/assets/dolphin/external/L1_Akira_128x64/frame_0.png old mode 100755 new mode 100644 index 36c1bbd4994c02762f5b17ea12993524b0f782ee..bef9d522da9114d81321fa3fdf2835134218f891 GIT binary patch delta 906 zcmV;519kkU4wMIw7=Hl(0002`twPcO00Ub|L_t(|oK=!vNS$>U$3MT{`zKUaZ5gHgsMS5Vtf{4*Y40Jp1HaBcU^J2vyNw*B0EZRUKVy$<> zQG^gfkS^BFYiFd%@W12OIp=-4(82b-dU*KoeV&UC-~;gcSbtB6hzJ-LKowqGN^UMT z30*jHT^=UP=`-6!L_|9|4+jePt{h-_lTgG?XBtFA&?@ICgbtbWfjnBwiABH((*Sot zmL_aad(S-hLYWR!@#3Xe6v%@n_x^2B1zha{)&PvFov1xFBO>B~8oTc_eRSc%dc|%> zHf#XX`L`1r9)BsB5-S~o9vetFL3nvv&3ryT9D>5UQ*|_U-2B6TeXSR5%-DUW$-4Ez zlau;NS1PmBVRU;sE9w4*0JI)RIP6rzipaUrfVd7145rr3hUYA|fQ6Lj8Mn)+)Z5;0 z7+R^WX*`HNeBjf7OA9Wx4GqNM^0aO*YZ1xLomWRk2Y*ebsPWD-P6X7(d0oK_4EeO( ztP%;^dT0N&2g#UyzwyO>ksCipR#!#`wLQ@Ndb_khr?Nv^5-c_Et5$EtCA`sL1>M9= z6o2l$yhFBW&z-?*Ln%FHPJU3NYjxf1W_6!lq0wI~`(anmthd5`NbqLv37>J61mu&d*vjjX&XLT>W^d zml{Q`f5uYfu71$-_mb%=s=n_JyV5#U4VnoL2v~U&d;?0B7adr3Ufi?0C0TELtx6M0 zDSs!^VY#WW*PqekJOJrU4L`Lhw{ZcRdao+Dop5;G&REo+c~Bs|9&Y&<7rWRU>MhtiM%Cd~0d|YIr!B gsLP{?K1%!#BldMq!?ggg00000NkvXXt^-0~f-f7b&j0`b delta 1829 zcmV+=2io|Q2dEB^7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000KsNklLp5y?^uhv;x3x@|`!Aq3irl zas0$r=Ow$bJC^>cd`Cd*ACJe6GdPap7S12TQ~)I-c2s~f<+!7V)t5OwlKt-Rc0bXB z3_CbL$N6f|bb{>e<-Xc)$^p=Ut*QWLvz~p|GJPfU@0|7Q*`xuGjWSgQKnG)GURm;4 zuq5vt9p5?6r+>N;PkNB^nc&$CPxctSRo1_or7>$xl`7!uAWBH` zh1q-irfrNIAGpk(y6sZMm6vNz@6_t+7<~?)RD=#X<9{8S^~^Vb6q~9^gOR@?P?lDJ zD`tAX9@&V1zI&M+cogK-1sGF-ro2w;Sw;e{r~o@kTIWhvb$*uZSvBa~J1CW9<$1nM z1@K@mW0XwuGT5xIY|MfS=~i{wwJY%!9KfUVjT)xcu5^B+qe_gcuD%t(G4RzDK(z_2 zkL+SHTYn{cj80^8^z2Mqscf@=0kFFQWLXyJQhGir$!D^fdDlCzOKj(Vvo=&okUf7^ zi*{82MyHjj%FgUmz_Na;&+m=NekAWWj&MInMkUYV8wrdSDit6yrZS*{w=b&#k=>CU z9k6X-g)WO~ADzUo_(1}rm%IazQPEn~FyvSiXn&Qg$iB1a+yQj6-@l9WsN=9l`0e0s z1*m#F%1{)9YERwi{LC(kmCny}b(|em%`x(S7f?l*n(e9%)XyWS-b28jBg>;xn^hc^nz8k9hEB7 zHrUFcme-7lSNrg&vMY0bW^-76h3rM|XMeni(X*`rRL-tsqN>3-UvWrOZKC}|x{xgN zJcDvR)q7}95z2djN-0wTG6zQMS!BJj3W978Y~~|7yiFCl&W~hdQ$}dt*vtXEfs8!V z`?Jjx`tAJywQkM@QbmT_+C~pEQLFz^#zA(S8$cRkNoG_x# z?A}@D+plc-XR8SU@)6p%J>LkIae%9#IMc3U7<9Cj34n?WXJD%kdIu)OA%VhCgIv6IBt0JfC%PWiO*Is|2k8=uQE< zft=T=0B98T>nD^-5xuW~bw1Ss1`z<6gEKaY4$`i#4qG`WnO(zTu2qA3 z+Th<~0?DprY*TIWpHV+4)Eo0^r&~J|=XCpNCckQd_VXPiF>>q-KGY)Yx~)Gen90Vo z$QriN`IXLyuS6w!KJVJVk~eDu z(midPf4UPvY4f=G6cEkp%-ZO4mOW=<7LuX7lL6gPAXLw(7EqP9SF!&c`k4Ufl;%n& zE2na(ilsj(^p%0I0#U1oU<1KAFRCPG9EPfgA~WI>7E6Cp=qo3JF@Lzx3Eg4X_p>Sx z>0>fjX)*p;wXO;XwB|UDfA2Sjct^08FKCRK>n&+RRp6Bgf&%cPerFJq4Rf6b+5;=^ z3<0$=(7Tb{YI}*+{&N*zqPj#no2_WXRPD2}5c_8XKeB@w1Mdd*Fe>M(8CGR^1*JWm ztpa|)OPd6&D4 zi4}p!wC0Z_fe2YpzKi2`0TSM^C;;9qgMPt5`qi=3Ma3`fhaT4N4)*xX`upNPv2(ek T+}wxz00000NkvXXu0mjfGxvqB diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_1.png b/assets/dolphin/external/L1_Akira_128x64/frame_1.png old mode 100755 new mode 100644 index 1950347a638a2b3b69ede1d93b6bc301bc0a82ec..4d476beed414bbb4dec01c48fcf99d236ce64485 GIT binary patch delta 872 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 delta 1729 zcmV;y20r3?XKG(427!i|H|2q$(65n{E12E-I1!S2^eD^4knwrImWm~0M~VmIj4C&0dvkD z-y?pbEAQXo53(!A<6~KEwLV%Ls133)he3eTlg%L$KSn+IGJjdz-imKek^tGhu4}wB zr~milqj{onvXFM=c$)fHKF&Eqgyro_1^AZaYYFK{zNZM;SZFGM{FU}2N>Cv#Q~=H3 z>B*0*mTJ;bV6$o<_hEitTh-OMMKS06Nr2OnPS946{NA|@bdW&$%>r;~tBCMwgb^U08mo>k|>zgy#2HHg;- zk#zp;_xqCHIreWR!4CyE6%qO8&v%aR`O!%LG)@Nzcz^pJHNc6;$ono5qj7c=glMcC zH39eeb-Mf$BJ#g`d_uHZ&)U9=1pN9sIr)5o-9cZ0my8ZIy^91dWaLDglKfr%Xhonk zUIz(|Rscd|(syHrBALgvz-mUeyuPnflaD0zWCbAq2vvewg>5wXnZB>5S5gGmb$vdk zDgb>t?SB)Z1*jL3uTlVsIp@&|&`C(I9_S>&@d|({?9&uL-s`|!B={Ny;CPw@a{O-j zulP|V!SM>f!2^B5djR_L&T+=jRe+wYkl-s7fWVW`y${QAc(Hd!@(HUX@bEsNpwbWx zw#NFEc_BLy+jnhGR&A6yExk`oein!*D@m~I+xn_@pi8Z)|O-?AI;@`%9}M0 z6{4O#rwStVfJXuz%dhy`z$|{_oH)?jqDMm+o5vNvlXa_rIWfs75nh`rWZp7I!_TYW zCx2e6l7z{MR!*Yg(-UMymALdp&TsX_mG-tTs|2_Hn?UUtV@cFE$$6$C=g+G|(BhII z!EFj4U)!Q!psNP-{Djp{u;zv4zY_mQ-$xYyC7-@~c)CW3BI73_!x(EPohk{oD}a`K zuTR#mC*EhEF}dFnpLUSIvLQ+E)+DI|*?;8o_8jO8Tk+Kj%!)1KpG=BnU-rL4kw0Vo z9lxIhUUiDvW?pP?yOI7;AG~&`Z6tPCA0mEu{XJaQHQv;5=U!{s&Wx!kfd*|gYPPA3 zmMoN@?7r{CVfAR3>Ay_@v=xHdMQZ}G#rs*SR&GD2jo03Sws%M86D7fJ6?n;kJAVtp zO7bhgr+)k++eMC*(FKq#Xtn+;cD1pxegFA|kWLb4wla?LzM8TiTh(A%{WOwjK1Rlg z-uF;da99JZvXEdEZdvD1U@UpB&c*6y$$Vs0OPkuMA$!_c$=h2qvRVtELan-=Spm@s zywy5JBb?@A^%#fz&#ExWTeLs?oqxcNZGZ>C+Jj{~uMK^dpfS2nF_vAVcAAYyn@BqZ zl(#4e)n5u-CBd$(B+{>o1l1D(`LQx)rbb%Hm#Y9BMTv#z%94TUI;m8FP8w0A^6ak2 zKeA=vpC60vB0*IFBFWcC(7F1h56DL?PAf_fjT@>xw8doEg8yGYM?sh+4u9=i1TE?O zIrY=*aXT5Gqjt3`B0<)Nh;nu)wfY}MRE^7tdwo%GqNLlY1m4Pz^p)*ABA|F78?tRA z#+uJ60kVT|cqE`epowP3LnK(O6Hua~$)~oKf}#0Gl27+4dC^E<5}>mnq^njK$zWwx zab@rG>{SXl*&l5WmMVCwn18Mvr!+!Z0Xhan0m*J1noYD)Beo=AEPEb2|Fya%Vs9l6 zXi=C1s19yD%T~7;be{mKc6odv#T-%w-nVlR%DB1&;GHxlvbBMAWZ~^9=ujx`&#EtE z2R%bIfaOOv-VuZdAf2d?p>iDSoTz25wPs z6>-rcW0e#u^XN{r1@bdR0P4sML<$}rlxSe({+ESE0{ZMqekI}EO5|bAnJ0iWV38o2 z{HTItVUfTpyt-C?)E89jb@&v)5&_2W&#u{(FOP$(;49vOr3hK@v7&SKNU#gb1Q;VG zx6uk0J-5b)`p0cqV>(n2k^bmbskPfhinrgS2FYp**4e*nMR-TD4p_<4#+H6qB-nvJ X_(GFPPY$UZ00000NkvXXu0mjf-B(HP diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_11.png b/assets/dolphin/external/L1_Akira_128x64/frame_11.png old mode 100755 new mode 100644 index f7c08643141d78db15528da272d35364a932fc29..f767fe332b3c2e1f3e2814ff3e95723f4f30d1fb GIT binary patch delta 825 zcmV-91IGNp48#VI7=Hl(0002`twPcO00Rq2L_t(|oGsElY+Gd%#_|9A`gQ8sief4| z4g`XMfyxb#g({*@Un(InWT?Q2%7ht^f*Pp{2$m@C0s}CR0X2M7@kCwQfI)mnEWL^Z zbb<_NR4GF&B8AfHD2DngwyzJv&2*$kzh^i{2el$1B6daO@qaJ3$Y`+uzQp0m_X~Ig zVo&}RS-YM@qeVpIs`RpQ>(vhn>bO!PRN&!-b5((xA~HCX;oq{K`>Tjit^)!j7~NjE zParzGBFl1=Ocyb@4m1EE^iI2irV2y=4d>jgwB{~QtAS(nwS2vyX#$&oa@C*J=7c5+ zqya2)X;9a+fPVr&fyK&TT+_Eu18|tx#?$x?;sDIh^+;-lYv8z$u8~e!Ps0}CvXJLA zanDU^xQ96X`8hVZ+j2Yu2Pk)EhacW!v+uS5^?L8oOsTXUlbkMu4anT^_bX*OcjW1> zt3E)ox0)%HR?qksC@KZ$pT9kTgVj_@auoweVRFN=0M%fKr-9K21^{DI2uTe*u@69J&k~5K*et;Ks4KPwaC1-vxGn{p zumY%z&>!*%o9i|1m*LfUx{=8aJ=MS!ognh)Fh~vTNb7_14GK@_+3M75~i*a1FG}eczUk5(j0O1_R;w z_IICr9DYOQ*`{WoUoNv;9*H+DXQycZr%I5@T!ZKhh->J41tVvELBD$gxe`aLj#1W^u2Y|9Y8e1{aMtrv#4pY!TO;B{^v`OI~Ig3 zQ!-D@I@FI3l#aRTnHMfDauzqJBC00000NkvXXu0mjf Db<2F1 delta 1596 zcmV-C2E+Np2Eh!F7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000H^Nkl;{eJ6tp7r~QO+JC= zdDQ2VjGYY`t>xy^6 zF4_vTRUK7=j3S5%u$@+9W)ghW?|WTjmG{^UX=vWa}GBFxRaAWlXL?td5-q)Bmwe; zY=j8VaRQaaZOPx5jH^Nd%hpC(0Zx(N?XAZ`H9k!RxPSc!36LLTBSZixplRInCc@D% z2h)|lW+O}h$=C#L-TOJJwE)Ew38eFa6ai?UoCMuu@KoW`1UV6d)xUb`*Qx*>ackq0 z2;(7Ab~~Vb#}r^glV&SGYJ-vneLj_Zy5jj~9=A0wom)p*3D&RzNYDaDEBmjY8F@}B z0P=}qLy5>Nf@lpARf2H^kdO&jV)>iN=L&$vnSULxcSUEDzt)QcSS$b5aGC@Zk%^XU zMH1vic1w9}3y^^JT&?J%_ceQ&WOF;)m#1*^#O6h&xbxy#0$8~U0 z>NnDUU&ntIKplQ@MO&zhY0pVT?ZRjOOn(7J2~Zu})Uj$8v}5b6of9}x17ru)A&XKx zmd`3UStDbwkiGO)um);?)Q=^N^Ze`td4FPPwLyKP!ivYAmFOr^#v4IwX-2$PZbhR+1FH0-w_3{l7vZ=jNTVP7IJ>%QOW+eUzw4Vf0R?{!~9Ic*x z^{iUHWkidr=<1?Av_4WX=@~zttL&=h@mO=yP5`aALn|+n6y6q*iTjUkH#}*PZADWW zsYcNJS760ErT|jXvwJ`HQB6jbbkP{S{xwoeU_=2jgO3(F+E$W{2ldtbMSo(d!0p@H=YS1aJ2u6 z7!L{d^9i6;9Fbc(`5kc}GVbf?Q#VFWwQ43Hwr%<&#QkP z-n}iL)#Ftp-j3R<#KTF@S%2Jhpp^iT1Wpz{+RC=%zgv20JJKrOU-Y>&hBb~VzETTJ6Xuu# uSW+0B950#B>Zhw7sX)|+)lakcHvR`OA}#W-ti$q_7b*S+xmbafJ~(R}hO_ zLZak!^>+7J%$~$4hW9>x^WMBaU{5%T(&huT%pW9YXnHj&+JA!GBq8E=*vJ$v6!Ge% zmdZc?`*7z9^~_g*!kyG}8PEX6si{e8+B=9k(#Sv_AdI_a-kSZ>3)YNP6alu<#P0+a zH~^8zV%OI@pU712x$b`yVlfLzvu+rIgz!oQhZLXSp!~ zL|w0wDfDuJqJLQMO47A=UeBaD)% z9W5+EEDIJy|GL@$;O-(oDMoWi1G&5lFf?m~Re&Mt0DpV&6%_!7DnJznQ_^H}v$2Do z23*Df#)u)&fJeaDh?ta6>=0^fjjA~m4jL33$bEh{@C-58GBNz%%Zb@K5RnI+@+*40 zcIyZPai*9#&1h8iEc?yuD(dccy5Go;x^2Wey{PX?&@bW=lE*#So$vqsncjNHt%vQjN zXsR*sJG1g5eFH&B;94|XJ(~8GWUlI;O^qgG*f-r)&1ELyHWK9VqLKC!&YdRO^=(so k8js`WTR7_^=eD8!7hW>&`<{SCp8x;=07*qoM6N<$f`dOshyVZp delta 1378 zcmV-o1)ciJ1?dWq7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000FWNkl1+ma+J2((V@|NnBGCwEyEFhR7TCnF}hr%Dth<)Sms7~>sZjQ9OBz2|w-+M;7? z{mge(8>$m+yOKf1o1f44LIPwMGK&luB#_#skzjlg0qAb2(tj_q!*7y+_w_Xd*jbFz z@W_+3i{SPU7gemTtU#*0^Z9C<$5+fJ2+;&9d>-coa8C z(2@XS$Rs$Kx%0lOolr(e(3SvW{2Lm^IQ!SZJPh5yZke}|{gt8QNmvt^Mwp)x33fb! z)Q|VjC4U1M2R@o?c>-vVCd7%LwL_8BPX>06d^Op&1h8_B!>1ad^ zs2A{%pmh>h5vT7Dc1uGp-;My^w4+Z0Awh`{Q1R9+6IKNiK~`1pzVGJgoYeun4p?vfp3$a~f;5_+!W0GV#z zbHTyoC@dLoW=@m06FEvWzI$+t04Em$S!~VlmM5@o6}7%4Jw8Q($hajAf>6u}u6CSc ze1D|W;yZeEz0Ak|bfOyy1>=AR$X*C-k&&b;vM7;$PZHr|C@6myfEq!Xa5N@ca@+$& z^sa;!A%HG4Uwq5G@9e}?c(G#sr%P22@zV*Aod6-w61=Q(EZS$*T5Oeh3z@PWz)IS* z$(=~RR()EbVkVN6Pe9A%05toypt)I8K7T`}=vl-qAfc!f0V3{}%AC4YL(UK^xrl5Q zRwO790we_yBl3Fv2E3<*)BrcGeZ5HY01+c-#`7jSQCSam#*r$Co20e8Knek*gA;3l zmf<4?jL7g^d3ro)ZgU+p9Wsfcksurbw96Tq`FhK^9U$XbI-_M%Mrk>9;ks$<`G3aB z^m3u2U}@pR&W+^hWE@;w5_ye(x|Fllhu=?l2`i07WkMkUF+Ok4f2cy5q9{;zj(7lc ztV~$zgXr!Zi^_xuuoFMg{yhe<7KVPJ?w`u==blABaUP+~DLR&$09kR}+W9LFAuWK^ zRx++d4oyaSj(8h%z827R^yXZ%t$&LES+NjVTDg8}msq zr3c~>AOf5;zSf35+bMhKn5WuvIb?1(NI><{unYki?tf)`Eo1h^G;4gVzNVOMcHFU* kG;)3Tb6$pKU==R^2b7lxiTL9%M*si-07*qoM6N<$f|X~41^@s6 diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_13.png b/assets/dolphin/external/L1_Akira_128x64/frame_13.png old mode 100755 new mode 100644 index 0094ab5ae47a907a77762c47340710643c8078c3..01d8b8c9a5d306c22cc73b981b6de3866a8ac47e GIT binary patch delta 935 zcmV;Y16cf*4zUN27=Hl(0002`twPcO00VeQL_t(|oF$K2XdGn#M$iAxOtbDLWK?#I zp_;W`Xtxy;YH8G_JBo!+6gFvQjj`Yw`XGo_1O+iRlX@ZcsVItX>06fFNLLA!dLfgb zranlLVnVQDHc)Hqre-5a822*25A%9B-+>PRIMk*_g<rm_I?yhjDa20bLLXL*9?F*d5h|W*Gp>R zL;!ZJr%~fxWq9w|pz+Xq6R5tEqH5m^jE3<6{LiVM9p4GSBhThhFVASx>#YH}XM6yE zLe(=j&IOI%=6@zo>Ga6eH%Xfil(m;`nA?dGfXrR*y{K|M2{Swvm4KH2eWgHRuGCp|w{T;C$bx=suzhsvf?yC1zRCOH6`=Zmz7 zT8E=YEu83cuP`70Dt+rriO1q zCmb4)F(`W3D|hyEn_0^wE)M`3%jJD(H~vhVU4N!r23GdguH{#)uS~R%-VS5CQwNi4 zKacLwuQ$O(rC#zZD{5P&Sv%|x$pZY58(eF$iyyZhEQlE~Ws#;l_awEgc}r$3>B6FY zZ08qyq3caMMJ6!ZjUH-~mMOFIx@)m`X7SZfym`KLEY|*~aVjYQ6W5 zPd$c(wjuwY`DBgN{$)1V@r;c(W#xwGy?>EE;1S1uN-%-f{(tD_`ZKeGj&JQ-?4FHB z3qX_V2|+%a{jA1L5sc?n479CRduR!W(xR0jSID1DyLxSQAI$hn6kaKMWCn;fZv~=? zd~MVEw}p(DicFA+$16pT%K#ZUUN)%yl(t#lnSIT~LHehmZT^@H(Aqco`dM`ukZZ5@ z3Dub(ik*D_D1QO`Yg~XPPtVy^2AF2CveApi%VsYt36BwgmD9cgg^08Ibd$cPk=@Y|8hy7l2pCW}CE~8Q@MLuz$wr{-w1C2%t6lYu-Ed08I17 z?AsE7bs*%t%+`2zYXPvepUDzc86ffpK{j?)1W_!djoS%8H&aaQXVZVQ-l;M$_O)9C zo{d`wzzce7T*yz=}Yx<@tA+0A@~FYxcc+$EjrOc*6C@$o=bmMPNjL z&b{Q9L4Px~Hrt>Th*k0>(0(KHG0PUKb}YZ6xyLd9bK()QtP`Z)SCOCDL(@I7-<3>Y z2`9>+$9e#kbcB3)Vg{nRykj5Mx)G79qL-)=!FB;uk*@6xc!A4;GJ}k)%s2E9pkgQy zLEF#+R4QFMjI8PTQ3bRI$jSmE1`jiF*7nLXz<&<%wS5aw*S$LfSmbB^B0Ul74=S1u z8?7({>>|B2{MW3q23vlutnU%+ophuzjMnk&Xw1ZY*enykPV!shf6u-`Lbi59j8$vd zwKEZ9B9{%a)hx?(mISbybcxw??%fhtAa=YUul7FP%_8b~qKqZ+i}om4YzO%RNGg=$ zkbeMFt-Wiml?inJAlHd*0Tw?~0=R;Fxo!lV@~Scb;#>5tN(9;M!yD(VPnUqJ$e%g= ztG3WN(ai)Iha$>m(W$roJwROpJ<@lRFV~N71^LK2Rq^S)e+ixO$C?WZ;Pi>NfNc6S z`RLWI64siT@7}Ef62R$3Pya|iqIoN*B!53j{n7qdWFfJ&C>?R+n+1_~MOBg-R!YT4+_K1$pzJJjEe0(-X04K<2 zZC*trGOwan(Ds=A0=X58agtZF2e>2o(l_~8jV!aEr!A9`Ro1p9uvS@A(joL&%rUR)nxi1RuW(xXYJ4)@k;xf8H|--j^ZX*fGW<&$I8X zDeXx6RdJT31{PNPn*nx`&vdj5`F|2wy|iq2cVlZz2E;cnwkz?m#*8(+cM@;J!4vQT zBi}{7Mek4hK-$WDvi75GT_J+k zpJ#i&=8aOH=~R-IC8FonT6!K*22h)sKat3^%`7Gv&{FW~z4x6NAZohM?tdDs?-`hr zkM;mGP*Z>I}3x zz9Iui9`yXzR`%86yU0hgm_=shvo$ZXzjJ>pbXhjuyVJj1Fx%Yf35nKb$k*?6Iq=5M z`YHFni+nj>#^HS+0enD{?U6n{S8HTd4XsS$k(iM9RAAUW`bVM=0)JK-Bvb@QO4nm6 z$!A4bc}TUbBLYC{bXFc_gIbvZ5PxU(5rOG*(ESX%xA;4Ot>s_-w1$gd*t6!%z?#pN zDP$j4VEZkA3BC@7H-`yc)c9p31GQt#&Gs$#I2)f;+%^NW7B@e$Cr8_iPG>YP0z$sD zd1VIZ{YHN()~m4|n18+kS$q5-<0Bw`Rre?>*eU=t7<%*QiJR%7y-t4oSZi2zqO}20dB!1Uh;S^;uzXTY2q-DEPgx*FEi61_!K;WtcV@On`b)eTGl00001BCpg4TcAh7=Hl(0002`twPcO00T`)L_t(|oGp`GXj^p{hoArdoU}3R)>KT_ zjY^}U)b7LDDV0^(DN~BNX$on(ieN97EkypmMZvIt;@&MGt9zduE#@Ksb!p3QZkPC$BW4tUx3-{$BgK=iK19X! zx>k`u>)G~Pzv)5foft7@D}y!lU@}}0)K{u3`hm2=KwFOewwHPNs(Zh@JP8qz+@aO$$7H>0qnBI2%zs0!`I(+PSC86{hkDR;Hag|sUXMEX zn`$`$p((lOyS@L(6}LCDl(cm@iGiCapm>z}l%u@_o+?fP-Y4Pp7+R7TDk(FSy7d5LSJ}d%9o5By^sJ6NNOX>O0i4~{s$F&e_fI3 Rh4ugd002ovPDHLkV1jZ+x>NuF delta 1697 zcmV;S244Aw2c->=7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000J8NklPj$FB3e~iH-A-W?~**0Jd9>yknPPez#&IaH-&(?c)ue+l6 z?%to78`-9H;x_sE$#J~4Rv&F#-bS<0n?ry%2AiNQP(@p>|9_n%&}^UQ*$&I;HwM4= z{(ZHkFSd52cHdpYY-AzVPp+#)HZK;IKXNQNcT)l07JO@QqLk)cHG7B;TK@_q@M2_< zRaF4X;QzrNTVy^awd4K0T`l|a{uy$5Yx6^Zw*>=#HF$;Dl_dBfz|Jzy zffPR#S8mT6Uw`@`W&TbQs0y$%to$n9SEhj(5=a}>B#7eqCBW{5UTfC|zlsD%K&}2> zAG${IJmkW>1zwP<(||Qz##hA0(LSC}hcvJ&yq#`+zCr=C&ox-}fM#nY3HrZ#dn-Uy z@ICt@N?_$~&37x`Bfe((ND}=h!0yQGP<}s}yKI*s*?$aHDFJW)Qv>V>KCw)Wo()cx zWFx7-vpGY8AHUA?Ja<+AM1J}GmE%W#L}`Y%(E?nV4(NKkHTZH)tLCVUlPw4lyVXiS z*JEe-Cm`~_dVE5*z?3#DztJKT^=Eqp;FBI*^c9E#B6vQojwNyF>Ar2=S@`eX$l{|Hf_qI#f`1g}s4dOcME=#{}$ zB-l~`Bzo_UR)AH6tRTVG3ZPZkPg4N-Sq6~`$gxI9@CpUsxSIrW{1N%*m?c4ktrdWS zFZ2_h1JKVa$Ke1uW78YGbGsdw}BGKuADuRNjrC*G@{QU5)fXY03$nW=lK%6RKV|h z*MGyx4R6KnWG7fh!>kfKS^*+i_lWz%`Dnq3+C=ueV;~=A8wH>Ohm(?Dd9^!Y`)XoH zKV`Mv+TZzQA6y}AEfO40Q2;IIQ33M=zfok)>->HcT=Xd+wUOgJ;(rEdPst*GWFHRe zN!*>gAAL-09ofQ1y3Tq?mq~3@z9j1E-INW!CWRh(wI_f`O3{#AlPK3`{GxW56q53_i5lPv z5+FHSwzb+sBtZJ3K1A)bw#d4U1U9mT;zOOTCIP`4FXM+s0&g+oqNDO^1xpK1Hh=F& z>ktKZB#oO2u!;oM4$<17H38Y;{k&bPRm`I&4h>fBM(2Z)08NJ;{(M8oRSGZ?{E@|{ ze*7idMRTP#$hu?;TC0D??o8aiUlMioX}}sMGYQ_;QWnkD=wf;OERtA0BI9H~M-`3Z zdkV0ORVsm3Ao0&-AIq2MB;n=jk$?H2zF2)`=BL?`bJxa-NcZ7yuBrvJLM=OnHc9EL zRp8CeM_X7gW%0Gl7Pj1uv?bqeYGPWvWrK8?;))Kt4Tl$ zAty@Lj1L+KX6pnk&}i_ft$(Lr+Wf16uM)4d_|L{6`7G-Q3NPNKj_xv5EvG1mK7Y zMh+SLOhwN7XA${BuT{ZE1HL*9w6=f%9G?86!H*Vv1qrOeYbN-kzEspc9+ncogSI1( rh2s5Z!FRj|PZ2VZV;Uj$R+HdACUF5(X_P&+00000NkvXXu0mjfQXn72 diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_15.png b/assets/dolphin/external/L1_Akira_128x64/frame_15.png old mode 100755 new mode 100644 index 33607328a0f29b835feab64cb0b46b83318d3766..529ae406e4baba3abcb66bacb7c1ef174dd241fe GIT binary patch delta 687 zcmV;g0#N;d3%do77=Hl(0002`twPcO00M$ZL_t(|oRyJFY)oMs#ed(u-{>W@S9G+f z%q8)NM4}Q}A!gKTB_T15SEMVpEJQ8DkO+x{+E^gLN~4KL#4Ay5VnXd|g#?*;RHcu( zG-}$Jxqpj!-LZ3)C*L{ef6fR0Kmo+7i97#3`VS~cfDs@bQw(wF>1(A3Ni;i3ag-`1;eynL9y zC)Ds`s<}Vlp;KY8s!SW#NIja$Lfh7{^oj=B!!ZEXwu$P|0K+{1p$kK_>EIlxx4wTU z*mj`b=f18CWPcjn?fzIWcFT=y#tcff-^^uZREUi6KK65!Sw2kF-X1;Ncdx6`2qb%Kejl(U2j+U_I=K*%NAIMDxjuYEk5>zlwFdT zH)A^@i*YTW37|!B+FP|jvL%lOPDO2ZGfJ!7Rt7lyK!0^cVv(T+Jw5)b7SvNyF76|B zzEi=%R!~>xO-#k#e4OKz=JRSK7dhqCiBULw!m^M)x@?LmXLGh}NJh^%rQeqs`0tEt zx%&|&qm$`@a~%;e08~Vl07I=YCUqQZ{GrF|Zgcs|)wj}hKoiq5YSQ&h%Y3H_lG;Am z>TK%WpMSSEq6uxv%-`*%1%V5Y7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000FuNklu&2X2zI8u|110aI74ELtHE*F@=2AKHpZ^GeUNR}7-Npc$Kvbs2F4g;&e`M1 zG4q=LrS$ls<25=3d^8@B0vhM=eR>0*j5&S5_qwiaduRhV0Dn-tSFzFiBlrU0J?dLPKDFoKQ%o1rP+ zO9Js6Dl=;YY#I23d|5eGVP*X)<%2v<>6!EC2=D{yRh1*gs`4qMXb>IS05*X$07?1S zqa(&qkp`LsZhwH}{TPzcqY)x&1YdXqJ?`TipdhXX0PjVWN!MHA0CUc{EBC$fn1LjV zdb(%61+GMlpgF(>V8wftj_0iy0JpXW{WNd`u<~elmy}vj8AJ>Ru-yPo=i}2n0O$HK z^eB)?LBH}kG6HLSR0=qq_jimKl47xOtcHJ@Y9yI|#((i319%s#7y$MD6#_^l>@q3oXb8uW4WlWQ48H0MW&C6!+q0X*Jx3Q@0zIV;T-x+aF_cLF@JR;vS; z3-dlA0!Vee*GR2H7W3;u+K`YXq;xLGQ#*mt?pb#Jj*%l`WB7aKxRa;7a92)~$#w7| zhJUE75tTIt69MpnMMh~utMV#Fya&23&*4PEEZ5%6<`7vUYMobiTbATt&%GZo9?4?Cym6bi;zyemh zqN4jI<$X&ISBhE&Q|LrqSS5VY z9LpFb(x;I@N@_K%M1e;~0I8gcfSc<*&`MZdZE=>$O#P=7TwQ*_B9Wc}{nB`&RbO87 zT)MVb7KT-QNasUkXmcY`z*8zd?pc5*EN5A#So_ez`${PqF#<^jhesJewts&2 z?hVWI?m0>{xw%%i&{|iEqRUOIv0wn%6p-!QWy3VRC*p0Z5rNLl7<4Hg7!RldBm<)N zNS|qPz49!>@bZLR#Bx`=<`In`&tX@k07;P^Bf#@5BdDt3cdO^P0a(hf_9(5ws4{{G zxA5$BCypAx-O9(1s*PPnfagg2(SPRd!VwN&<^0{s=ho2_U{xlb3L}C$4d4;~CCsb* z>O;}k{z}7&lb_ks9k{&}tkwEfXKY7Q;0PPOwiKe(<#)E4J>d3p{8@n3Bj=P~RTW5k zS@FI|3-~U0&*xSH&<={b7f{8jC1_C~qdbtY(+IL>@dyq;af%VcdMoQ%EpysP^U8BC z7*-T>{{AzyqbWcO{{X9$ij-QBeN`GAjs$R>LF7AHl#YKfCU<#X5n03pLft@VT)VE_OC07*qo IM6N<$g6DIW%K!iX diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_16.png b/assets/dolphin/external/L1_Akira_128x64/frame_16.png old mode 100755 new mode 100644 index e115834eff3b0d2b3240dbf798a3152ba8995eef..d7c0152123c8a76278e892cbc2bbe1cf7a6b797a GIT binary patch delta 678 zcmV;X0$Kgp3bF-|7=Hl(0002`twPcO00MbQL_t(|oRyMGNK{c6$A9PEt5f-yDKn$g znb}mh$q+*5G2^1WgaZ*#vuRTh7Dc&nF7^=Gn9CNCwJ4AttH9_n7c??ZTp0z?jH6)- z$?=sF-Fv?l^SZO_tj_m4-}nFi-#Ld^5C6H;XnF6Rg3*dov40w4-dLx-vb4FE#Khr{M?#zXAR`r` z&##fg$eWjE!2B3XUK`4nk-HToWN7e)n(wx>V0iB2yg_(cm2X77w%5%uW7aH@$qixF ztI@jOb#+K1`+lgS{!smTEwNZE)_)B{dSpI8VqA)oG$Zy?zw0Xk ztydSn2C`^MDWztl zAqwlwAshhoh^&2dYkm!W@#*==Z0vMG-BL^B+t#EB_6F03%&WmXXu2uBcZ1n_bP?5N zf^lhK&VQ+D+(Iy&cX1}p?&UrQ5|Vd1W>S6qtz#hta2eE*@BP`90&p|HgVb?xL_||c z85!UuanmI~i*7(5lkNgo(Eui)Ge^Jz31~ny@M6Ux4g-1T_aL!DHfJ1{YJi#$HzLEb zIq%r?0W^gk-D&m9-)z6FFB$+^IF1Xo!x;B9fFG)Hryn$ZJ!}vC16Ly$@bY)i8~^|S M07*qoM6N<$f-7o8w*UYD delta 1362 zcmV-Y1+DtB1=$La7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000FGNklH6s;EZ#}S@7&QN5EpB4uRxcO}Sh-4u7x&KRXairla#we5GnT zaKVX;Mu2QbI61(?v4-9neku9&y7rOeGweD?z$DOfmjaChQUs_vdvF|J0xa^QRRMK` z3@11_z+hyOU-eb_44g*LKxC88b!X^$8wc1SiE9}-G{R`Yhl1)kNniq+8Y#+HicB`Y zPuG^_c(9T~Xn!on0fs;d|9p3A_q3x!Lr*ezlE4YDcDi=G)d{#>4==j-)5aY@n>e(Q z!>`l%J!?gi!gB-+gcg>q1d+=kWNLDVGrdg}@N`HdMnNMW>O98*1|dSCHZQvSThQ$Q ztIzpeM-9mRp54#&@H~T$-AQ0p-Tbr>MbGZ{=F+5-^M6&pe^n!Pcxg`?J))$(KxFr~ z%&j)m@23hF1c^+`0qA^m_j}RCa*$s~z(GDZIXjV0@1IWK1ZV{Fa6F5Ay6#K5amK$R z{~+^!&RLR;({3G4&=7E0`lvWe>`$?6s0DaIM#~yGUR=DSK z+C6O@Z+;{qpz@L~I3M_)y9db`WOI1rqv5!ve3P!VJYP%n2{}O6qBns>K1xJun3awY z$$yzL+QS?n9p#}8fWB}`z88@SAcJ^o4GoWJ1X*1>J}>hHYS7ki&D=*h?qeE3(Iici z>mi1o`_aY?;xHo|_Yn~Qec=+>J&EU^wrXH^d*x+>_#V7v1jwkDrH)<8IgB1XT#no3 zm7r*^AWG-gNbkx(w0kE(l5K6i^uXKI+JAFJno&_(wygqM>Tm?s≧Px+pBNv~wTH zLt3MN+vg}7I)GNfQS@fTkrFWy(j_^G;FhE{;slxwj_n-4+d;j$C7o!W0ByrsvR=2) zTi5ECwnWLT96%$#=V1|9ZA~OWL)Oz|dmK9LNGu!vGU&%RCo@J6(dRh^nkS4(EPqE7 zY+FPCkNm8R-K!`NC!q446J*u!BP;bS`T!pJ**nUrFtVH=l3O6Qj>2*Wm`y%~R&9)O z0xF}~W66%d(pK=rDY9GcGd4&IN6dN({ljy ze9c^sj@q#!m2DZew&V#>^f=fS5nv>&=8t!#M@jQqw2|f&GFRKxi2iER@;?a42>)KG zWf7^Zo4sRcB&gqe5P4TtayqpNusVL$?$NqxUa#Kk;aj`42S~+$tQpng=}VNHZ+QgJ zz)LfUOfTu;b3BKb0WJTKY-+8Rkcjy6bJ;Kgcn^RkXIbI41?UlikZ3)JC+|7^KaBb{ U*K^>(3IG5A07*qoM6N<$f}h}#1^@s6 diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_17.png b/assets/dolphin/external/L1_Akira_128x64/frame_17.png old mode 100755 new mode 100644 index 8e5fa20d8d9290e70540c179fdc8f96d97588e30..95068c50f0a3e5d016a7ee2213482fedd1d4e4aa GIT binary patch delta 690 zcmV;j0!{t)3cdx97=Hl(0002`twPcO00MMwTNxEpnjbSZ>RvEOZ6sH1>qMB9P{%nF=Xb@o%_(})`Q5OY5mV*!_ zhK?D|sN*{=M#nepI=g!~_xFAGJ6!mu6hJt;@$%oH|0rDm&41I#RSp;)WNzcBY=I`m zvKjB>WEMk>@EDY@8GwFD>Ytf^E~Tvl9E<1;*2XI@!Z#P#%3|cKPfG-2_oX=l(I4T@ znTFe%_w^I^`@PPcMc48|4Hn%B3^EC6;h#n4ZW};LNeDp4aK+0o^%tp4-SARO#klwA zZ(2{)cmi@ent!#_tXDSIPQ?8lhN=uDSBiI!adS+jL**G`#=(KhlOyfHT@B-SpV(h^ z^QbVYS|y~ECfgM)?TT)q@6Aj&K{vDzi9Kg~z@=v?ks~9HrqWe_I3d-}ToXql*a@cO-LEgNes zhwDI;pAJjbt({$){wYbGmRLZxjjaZrNMcg3cN&PDx{~OM^hjD(#3VIntYyN8sd&%o z+-QMgrzdoKs}Y#K8exTSxUG4Q$W$O%H5_O!D+J0YitDSlQaP4?P)}bei*DVs@7#E^ z5$pndZGYhlg{dQJ0jG{a5deld^}d^rV$dU^iHN+lwq_ezi%}6kMBI5e@NG4LE+QHr z^RT$D*Kn=@hJyTVaPRuCYe|38e4iCl)n_+*;}!x?TJFHGbjz}cqXBYs24dL2dPoEI z8#6G97D3GP_Wco9qTDezIHUn?{Ys1!G?P>l8Y^(Z`d&v8tJ^2p%kMx{gIRd- YFSTU~ldvI{e*gdg07*qoM6N<$f>cUI82|tP delta 1391 zcmV-#1(5o_1@;P%7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000FjNkllt^B zBUk;Qa>f@OuW~}bN8=VD;9wuVb_?*Ss1$;xz-X+b?lL=pRAFw6j{-|%IC1cLUcR^Fagr( z*OV`vXared;D026$Xl`An`_VJ`GF;uLRmP8xg~ym~H^OMG-yjQ|6%QHxPDc$1%7)DN$=H8{bD9|v$d2=~5oE+d6=!T)n zrwa2b*_2nk)z} zWbQ~GLE=g2nVrCB7j1O?j4=}HwM5RlXjjgoFLenc@@YJxv>N_-0J;g0Q4^|{Ue<_i zMt^S-M(0ZF>7GUrsDZ=`s-A zaE?)%|JO_j7!j{DG}^t1V-&Z~0j$I+vVYd1(G!RH8qXNDq|ZtQDa~14;IE z>azf(4j;{mk(%72;mKjS_h^5j(TRF4*qF;r48S`Xo^IPfUft9AghL7p_;7*;3+@*L|GL^mJvj93q;o0*k%B$l~18n8?%gn zuF>SN*3QK89KehDvz0ILu@r#x>VKtYy-Hkd0Nejd7^?jA?AOTlBel9Vx5tQ=pZ;s{ z4@0b4-|LLc@Cs7GM(;g^SatczRx<)ko~@q+P&bMwKdUOxWa&A5krwbOMD}Ny0azO) z&27lasx??%U_^P1#!Mr~*o*Bs0LRvh7GrJq)gaUdPSksKjI>6Y5P@m=*+t<-preM%g*ZFbN>H7|2f=CoB3?e*gAfv zg?Fd^=Z0;Yh{c;eZE!dR;o!BtsRsGrk5ny!yKg7$pH z3WW@88vT_{X@8KTo*kR}Z5yp(&+QMTRLk`~(bBf<*UE_*<$E~ur`Z(|-I3bMD|;`v z)~jycSY?HFWHEB;_AlAJv*aQQ8p%Q^-{>Nedf|(e+R7@z31vkD?)4Q=!(bVag#j^r3oRWhyXj29Qy!ZOvv0fS+#ZIr+Q5T5GfJcct0}ts-|E&>r11*(9_L{qq@|(Ob`q5 zdgoLBx_==Y08K%ztPkfwmyXl55WB9vv`xa&ak^H=)@+9v#lU&VpN&M}eErOJ&;&&Y zp-h?Zgs3k~@q1)|MKhEr4uY}_{-&Yz>4KD51z;Ik^Y|^muK+4=CL1LLGw#EkjU}{Z zfuU*uNsd|J!}%H{Jpi@i1Fv7T00000 LNkvXXu0mjfT*yx} delta 1353 zcmV-P1-AOJ1<(qR7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000F7NklXU0RDfWX%MxIF-%wbtM`4v3D0_s0PM?e0Sq z?!)Wu0~GGXtF`|DpvG&*t6-g@Qow_ds^y>z;C6VU!ivKCYk#`Lf*WTTb}BYH--D_F zZW#M@9LE`oJr|un<2;oDE=E^m{~5#bY#ITutSl-8TnJozVMqo+LFdgNH3qK{j1++{e2AxwJE4;}06ZB)6_}~+DM{p7 z1C;`nK_Y!3)UP)RP?=uid7Cca9YJ$F=jkgDF`P1hix3UX*}QJGpA^FeaCe^HdF0x` zC^F$+lS9YhB5-!!{G>6eB&@6%#zGB{JLjt(?(T>6#D8%V5gF3lejdsdoKXp?3s{DX zC*w7d@UP9~I)wgt5kVUvs(ido0%w4~q5)I{SPE|x$SB`RHDMlLMI~G#{P`K9wV!T5 zn@2IK{BvKZ2;c(uusshM&%wD@``&^^6MG^Ko>K;3fGUlCCp~Pg8=zjERlc^yG7c)E z3_t-Fnt!>9TKdfLcr4cgZ#Q2&)SUe4y$98aq z9w&#U09^D%`}_<$h|kCwYrPC2pi1H};=NuaYV4i0PU|@O*kx7<_=Z z=ozB>ML_TGql-XquE+Deqz;zlZ6T#~nc~kvmw)-O5r9_s(VkwK1E9BibS?&M@gg}t zT3B}Z9~S|lUfpCL&Uz;C^2;TLaELYb6ACLk@l^=Sb3iprC5=C@x z_kS9AxB-kPeC@lq7p)cl1^@ zK(r;3)@m{`d6nj$1+-dcTLbX);iFZtrzf{$Sm)5fd!`#1Wiu(ZGyuzkMrCs{ zz4b-3(B#%yY@xNUMw^FIBYYdc-TXf{{yONu&3e{KdwL2q&wkR{5rdw>Rlr6OfPYiI zRT+EbdgWP$;jI%^zSNqDt%xAc!=9A_Bt?3R0I#=Q@Bk8usHHjU@sjZbF4jP zMu8c?%I+7&EiZ#K?_aea9;J}awQV!b+GVV~=d6Kk69HC2BY&*-1W~0~6m5jO^33JD z+AF`cw#Vz>8R6e*wKPRa`_A@Q90~gGBZxdJ>G@pV25POJ<~(UDbp&t=$yz)omG(P5AICaZpjl70Ra91M5#JcP;94700000 LNkvXXu0mjf*f4`y diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_19.png b/assets/dolphin/external/L1_Akira_128x64/frame_19.png old mode 100755 new mode 100644 index cba72f16f7b1c8fe5276187a8ac66bef4aa913d9..48e60709654fff77269bfa26894651cdf54b6523 GIT binary patch delta 676 zcmV;V0$csE3a|x`7=Hl(0002`twPcO00MVOL_t(|oRyPJNK|nY#ee@dZ=6xbX0Xhm zUOFLB8JOTgkaC_yiwH{SgNUe+mbJ)D6fK&*Xd(2mXwfPO`oI=R1Qn4zBg#dTo1m!l z4G6Xn=UJdm&Ai*<%`|U<7Tw*w|8veg_rM?iyA;6Q%E8dT;eXLQX#T&U(r1FrjLkQc*Wb8B>@00Bl_EuzY|)bnz&5Mi6r}Ek&pKfGu+`zJ6Cy6qQ^rSu6GtJnQ3^L5cm|uKXG_aiOIFP$(xneBgi_y zCiE!Z^Nu3wy_Orm>9~7K+k=siMCZi@*dBn(Lcr;`zkjj?;Pd&Jv0s{lo9{{k_{-oF z=~X^{uffwdIl#pjQ9hNyfit))1Z{$)RQfHde6Q=L$Ug`Y%;$K#~$7PL&klR=~b1VEKWzj+Ee4R36`Q~BB$%Qyhi0Nl`Avvi8_JL|-Aay59v zgp`K1@qbAI4R~{SuktxA5K%myH#&}6<9AfZ(;(H=F*u^f$)PeZ>5Jz1y%$#017saQ z0ag-zhcR+`y-F;lyp8i3jMT5a&k(@CbL#1L2~=S;<>UH{%ojneHA!HD6sIj_ACZfH zV^}3&uN*4VV=(CffM@ucay`no6v*|(un4Ax(0}C-O!NSrlM|7(+da{G?pM+_cX#lGs<@Mf*UWB#xtgUB!4@bDx1FVFk#MuV!5D~ zz^L*gZdR-PTp)B&Jf;+ERmCjkziR&8y1v)Nn;fD3Q48of6*H=DQrwRgZafAv za`GGgBnk9xI0lZ@BlB{%NZ9ztX%j|4lt5(dQVnQ9Oek7MclZxX++LbaN@>s z_&5(BrBe}bV|$A)Bd|`j#aX6s6ZnuqP=8Mz?tyl4>D*pf7*_Vdoor7U*Xsq|!W4Xf z0eIZMwfL0^tLVv`ptUy{zkK!UF;9cPM=ePlA8^!f)n8m6kaA{j) ztrD7yl|~TRiz`Ba2Rj(Cgtnp4d94y{qxiDiuk!BI}xIbl4NL z-y?|p8($6+983eX)K5ysC_ELy5somW+^QH)dMKiF zYoWB2Xd(e~5jUdNLro_pwVTb%z8-ehtIzS_dEe*#RMZfg41exQ0ott*CZ(qUbX{Tb za{|DuD>^HO4FF|%V0oC+8?8?OXbkuwXI3m_Wt zwFzuK=ZT1TXcbDr@k+v&2be>HUS`a&{VMb3lY|bgeKLMa~ zD^_&ho>zj@dVeKV#LNaumP9^#a&P7REnhlCK<6$I-QR!whNlr1vV*QtD}#M)zZBIa z0rO+N_nPDPciBZf+Ag3~=3a|vccWv?7FsG8K%3_ep5892GiL`%#7(=~YgU!rJ7`R- zTnMqC>aB+Iumc(Be0nG) z@^)m?YvzE?&*#I#Fye>wp$ zte@K^8_|RDvA;5LeHh()jQhsA!rNXSEvZ|e&su7DBDdHPfDS40dTRQ?g~?mpqgQZ^ z{gvwCPk%rDPjPHqVLUH-7|L$2D_jh2HXye(=qW2cEF;g#u?T7god>fAUYgms9ii!@ zQ#%*Kz3i=alXQJVL`3}2o2FDo`YX|b#%X`I zf8ZnaNwyrrd%)32^=D-)GwVLHXj)>Yi{JpN_kZPlceVTQL=Y zp7%ET?pge>(04%N04x+Y+?YLHB4*N%8Tf7s1w$Ww*iyeAH5(gdQZIH5&Bj!C?hs2- zb!phso{~pbZ|u;jTBvq*jkJ9o$d6iS5fKSouI)y!sM+GEtBH2XmZufVEmyyI2lQtSz@3`7flYL@6Kcb6abK=l{)DI4|%kA|e$c##QX(V+E(9 z+CJtZCrKFBv13)j)iIl}-%FzY*UBvb5yD1o>LLzMV%_I|@h>WcPek_!@QnZf002ov JPDHLkV1kcprCVNo&+h6vNC;C?Qgwg${ zIDX>CzInHyuhMVz*fU&#b-bN(9LJOM{g^A_pCjPiY|znPrS9nvU+h)qTYOU1ds~0V zxChQ&$g2FR1MT=~<|DfQl&nX#jv*9*E3Cja!aL!Ws4|9Hsv&-=nJ6?gVAGbUQ$g;&Q58m5LFI_)WWDkMP^437L8~=ZXYaN$z<;Xqx;;G#P&J^~1EFZct@G^s zD3Gk&X_uW7*?E@p$9N$FoIztKKviAQ_>A(=eO0$_L(gPY1#JdE8@SuamCx0y_mRWY ztnccMtBz-QFhHaL z1xR$wzK<9{VHuWT%3{xSKEkfLB`XFq=22}N!!dwjP*qWv0Z`Vf%)*X~GqKb8eq44O zRQB5M!_U0vzq$(0LcGj~aiRrgmAIAvD(5qn%bc(5%e?RR#xsO}t>9-0_Fvu*uOL%y zjeoW>nR6m}YCUmA=12SDoq)2}+Q9-hTVFJn*=z&MAGP)i)&Ojwo#G3fRVb?2tJR;` zveWr2V574cjc3;)y-0p%&zOA{kO7!s=slxue}-34VSwG4Z!?HF6X|68m)V8(POTHr zYXwgX(8+dYB+7Q=DD=L=Huk-RS{$*gXMcJ!HbVNLnK=bu>1Y4JqK7ZP;nX?&uoiy`Zf5%jIl%J{LB^~gsSsb zf`sjv8mLPQ&_QRhQ4twsCChkJP}+MHn^DlH*_X*y=1x6T$6JIy5V9K?opBBVKw`+ajd9ZrTs{cvObSFr~S*JS4Y$u zqH&6YI%DVfF0)0pGg(UTKh`k5h<^dtGXa$W{KlzAW5y!YT1c&HDzyidHNGSO(3z|h ziYPOq_HJI!x|mfbXZ9-kq%LO&0iagzi1t_?Z;fIUS*iMw^EwO==|=i1OcB|yKy`kl z9sK8qLKS69ai@|-dcEuw=U45p^L&=ivEJd8Grj8kst=HkEEu*iz&pTbJAbMLlpbAW zEeoX$>poYAP)QJY@BZO!fOk%|A?i`4&?>uzY6NAQ)tZ5^ZHL7_wg^O-x$1l*J3HgE zz_7M4WUXAJTVbT=UixR^GGnfQozAyoE3|F(R@y!^wi+y%O|y1EHH;JhNNDtm#?J5k zm%Ywpp?PPWsa|JvKay>)pMOy#qM)))W@F~Ksp}~KB4=8mr~}9r8c`kVt+P$Z#(OGM z9IHAa3wWDx%o*qi@s3nbVVybte!oBea%kpE)!EFj%qTymdOprMs6fizcM-7>YZ?9Z zDaXrF6QK*~uY_H#1&sQ96hw?J*-^sQ%QC)_eW)ePYM%$Df6);3EAM0q_To)(?dI;d}5O Xxe7uE<4sky00000NkvXXu0mjfM8um( diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_20.png b/assets/dolphin/external/L1_Akira_128x64/frame_20.png old mode 100755 new mode 100644 index 457fa7a00ed33b014eaee9ed47df12af9526ccc8..4b4c5b14c6f5dfea9ee86c54e2480ade0e9e2b08 GIT binary patch delta 534 zcmV+x0_pv=2%`j$7=Hl(0002`twPcO00HVrL_t(|oTZaJXcSQtg}*m5x<78Rt0+WR z-2p)`jj<5Y%?82BLIh*GT3E+U(qy%Xg-Ci~+16lVFYE*hvC&jkVrC(@Vv$TV!P#Zj zV=?o-k6`qYOYr2f~vU zBWwUX{ScBK1mFWm`*J|vn@|ID3rZlxZ-Ek!ky^4K&VK+AkOd#4_EW$CJV~-3D1fsj zshW&XW)6yqmr2!OHE_kU&2k8W~^MFf;aBi~HNc4KTJ$jx*U0AvWZ<#qQ31osjOusNXs zo3o4pbH)Jq&nI9d2%b-* zftz!w1Rh{3aJ+Co+_qk|^P-)jO_{OvM;vf;seR@shmY7|F5Z$(Ek%%=dk_KUTvTHK zN=PZCi))Zjx_^WSF#B)6pLHJMLv;bUGkF^F{2Ci0s&nw5Uw1E#_K_J^%v44_d<*&gTK%UcUg&M1Oei8t1 z`$6wzLe5HW^a^Ed25LtwywJ>3kY@9)$ z1&>Idsy=EhfTn`E3SJ8S>e<{m`b#s2R*P#4_!$Dtbx>nSzklYIy5A9e{eOVbk$Y=T z8uuIh{eNXOa@Dq+m!bCsaQ$7tXj;3B9)j0g!zy^WfHMp568_O*zf8TCj8lUf;|ap| z;FJNN2SP@{Z3IbIeNSN8x`v%8=X{6@Xa$neK+`LuSQ+V@NUR`*sSwnYIn>I=n*NgO zT3Ps(`{1_nS>*sG3$Q){MqLDT-l*}PLT^A!Wq($!vDkkTH$o6KZT4^rUXk*z@SN`& zu2}%4CLFCx;8?jDIC}o2*g#kb8Ej(1N-aX9=H{Fm#?0sCg4?Wx8Py{q-ou+g)zfZN;3%`z*q;UQH$&;LEp6! z?|&){dnsP;xWg1c^U#L(dkxev{M|jP zkW-i^t^9*i0i+u=qaGTO(kdKb^Db2a+*ca3JyG}ogaxqp@!m8`a(?Z2ZSu7O;ey1c znSBfy1XAw-{s(&HYjh-C9+xVIN11tL;YuK50PRBs)Wo-3h9x)~iPY*mT>-xST_rsJ mY)z3g=UK9fUoqSDc<>KzII-b?C_wB00000w-3kcGIKLbaPNvT&0?MRB9}Z)jZ%73?4s zl!zH?22Eq>WID0$&CI*U#hYpG^4#-%_xsK{7fI4xg&iq79e==hbTZr&SOuW>4--Ho z&;efp4>kd40w76uK2g|_IHqRF*!KW}X^&fYV90=^1h#w=$bgs#(DK_yfgVu90Jll6 ze3b|TbdCYgWJm=h6^rMc-VszKZ$Po=HQgsQU~~~Y0PE!(hjWwbVoVYNcNTy}AY9-L z18#i?P4H9{$A1y98J87xSj!DKm%ufk*}#Z^PgCkY9L*djsR}7HbX7Xgb&aI=k&35v zRSNZHeI#WD#T68q+r{3F*YQ02qU`@W$;4V;8m6=WG43Bk7EE)A)iu;%#X_uvD69eF+?~NlLP|OKNcu6@I4yjonE^!3 zC0OQjPk#o$UJtMX?)w_94e%6Tx9Lt7`}1E=6mf%i03EoN1J>daaWOLwW%{k5lgv}2 z2kRAp`gntnI{Z2-9Vq}yi_cw~`lW388+^XxI^FceZ=hC++)b-1+qz!7K7M=%&giB` z=Ku50yR$t2Gk)@qwfiY<>#d1%AM@n4ZNRgO3|b*FJ;U9!+kjU-%YmAOmpSIQ--Ra* zz8e7KOT2oxwJ%9o496{B;x+z$&jT}UNbLTG`4;qBgjb$MBmdJz5xYad&p T@o-{u00000NkvXXu0mjf2|ift delta 1268 zcmVSy(;8-2KtdSy}+lDSr>jR3yBJz4c2u0l*y( z$;Ue+W4D~5vYn*_up|A6h_L-83X~DRANe^bA%Gk5D>}LNeq`5;=ue|Sx&S1(UNT1& zWZH5ff>Z%m7J3y#P{9VR2vP-LUFByIP=WjjjR?v`fY$Dgc&GXI2A1nt6~AK)kr2`Z zpdtSxw@DmmA%D6`JDw?c_bjAV*sTFyNwcs?TRVhCfN7Km`M14->@aTmZhzuxF6{sA`BJDA`P7?1UU^-b zPgmo#W2w2Uo{gFd+UgboDun$L;CxE`U4kmlx?9&p08b?!14f(Gu9OHxlb0ipqvisL zCZ9?V*5J~PmQ?MS2$$wsKS6decr1X-oe$UXBL5RG#yAr| zHu>H=|C68=KsNbs?5B}+3#w&(6aliy_dqp4MSuB3bqe4bEE(jVkoCk1DJyUnR$>8U zk-s|uXx6=*!vmBLJddDwPEiWL{dR6L={#0pUt2WdG1HC;Lh!`O@5haxEb=j#lDg=gt2)P^n}GaSc#~e9hVw;aTBpo_lTxQUKZ2{>?34W%4IZ zcB&VC3Ba0s>%#BJ$2ICWP4y-s@k0O=$hUswYT8vL|6_1h-%BD!2dX!MtatvLTe_RMG~ngYz5#Q_U9T@ z+m;gqHP%}Mlx@`aTRS4cKlJNT09NGBxwxudvh(qdU!@Xjz_hW82)i`H6{J!4RqG7K zQcLpjJaCO&@da(6=JMl109Bj#UJR5W~sb_}MuTMUvmz z;(dTh8lguW~pS1=_ z47!sNQ7_Vim5S7i^`Ho93P!y}@L)ki4<5ur_LCm$MeE696X`)ol}7w~5HqcT76h{g zBiIIaR-!@FWY*Ypnw_1;!w}!&1Ml?dPRX z8KYt|8_{*Yl!|fF_Afu#-$*e`V27{009(pncy+`0R@JJJMgVAFe5-{6bFf#Q^6kBr zI8VU~eSpfyZI-xl0C*fAO#6;o*XUedg3=_J_{b)if@v@oGB{pk)cgJWKPAmUFm-C| zEr!hHndc;Z3x7e~KV z`nN8vb|J{R&ht^W=3vqQH#>~kX!o0bpx;3LPadtZJu_bl~{LphIx`GAAuK;=w-aCkebyx!SI2cX#U@?r1r?si(s zY;fNCtoOMHNQYa#KltpEcPG<{0SZV1j?9_utbeX<#!yER_6hs&$v+(C?S#AmDT#OW zLLliY1*@M)vf)F;C!;ys8h`LwpQBAsTur8KNY`hcQN5;=H;Zdd+fuf8uF!XCv6ioU zYD%KkRjQW#sqp)WfaPSDfymg8y9@UzbWmkI_O4(q92;5t(8JLlcyuAWm4~!NK#Xq$_JQZ)Sk;FX;V9r_aF8Jj-smavPJ*^002ovPDHLkV1g6a BmgoQg delta 1684 zcmV;F25b4k2ABW2p5CoO}|Ch-_f(o&7bPva}j=Rbg9UKEa%*EQtrIeCVN;&6*qLlJ!|F8QO za?YR6wbv(u*$W2V+Pyus#*Oe-N=dKCVtZ15F^=dyM#-;u*MG^`fg*isKUC2F5!$*V zdyS0osxK;`=*HJ}GX#^6bN>9G?XCAe5$N7mUZu9L_D$VzPYGBb^^3olxkn87(m|@9 zzokx=d6&pvWd&M!H1w88d;gQbl5c%3DnLrI5?GrV+3*?UXr}*3#IKMUAwMNU0jgjO zv3=VeDWEoHU4P_HvjWKJm)b~KTPej>fZBoGK&{VCGTM3A6Smr=Md8V%rRJ6;{|W*% zuz4mb;I2(>qu>*XO$k#@q!`o_Es@{0d!eTS-8{=}^e1t*LRjh0>0m2?J<;0QUu^!* z7KpAi`>&MS2r6LWC2%`zozqUSO3r>uD(Q%{{awei~R&%TEcdWc`RG<-S&=PHtKYEHK znXK>wC%52ci=0%$^dWLuM-NPm6{#2T!q;IT3=K(dIO^LG%4m=UX8 z-&QLEodh(!McOj(g5?M_E1-R!l92^?%7A>&241TXsTJ&u0iw|M7b*rJX`r`plK-+& zz}=XsfUB&)Y@l+QkAzi->4QSLHdZYH?ZT=$L*$g*0W^(O9}3k5vXsF({WIYCxVGIc zWq(^;HXZ?@1Q!>8MEmXcT0d({7M_oLLaZTSmzPp&ASFqWqXrvTZ% zyOjVc1hE<|RRH^OP+z)Av33HrqIbw~i2=|8LIkZ~dE(r(S(6G}+m5sWi z&jwr+fFa*ff?k-uZImGP(!}d?3i0RxvF;Y6wRi_b{2M_i`TYdmtzASzqkl?cm16J4 z%=o~&Z1TAHJQeJbFM)9Z?bsex`aDFI5rskA-p&BgTT4zU6{Mc;!P?BILap8;HeO)& zL0YS&6pSoUTr5P({>aTzyD-FcSaa@9pCs9tzCBoi`}wtYD{%S65DkdnS_~kOKSKNp z6Dk#*&^r$#Fh=@I@_2n&^nbFMY2XN?V9_fMAz0-J_O2?2ZlUyeM`k^GKj9^}YPR zfvnGK2V7GG|L4S<0jGCM%C`fQuArU)|)JmqYC6B;jFbC#YIYJl)o{lk(bcP~YzyHZ(r??(ZKMlhTBnbhR{9ZOfRCbAtx4j(dyO9=ow}`39}sQshzDaJv|K26~gHC2fD{8vzdVkv6JUdsocx1jaF}SPhXg8{Q zbEtkkUr|**ppbfYE;~{`M~lJT6v?pQEuW53|b-y%}CMk@^#HF$RmOU%3es!jE7FrT9=81up^_A`(JD7!W z5!LT^ZGRkSK7Yos*OpQ|5{)k0>@Vz|51*Ov%$Q0F3zcH4L;d3~XtDt&G&*}i&K;eK zYc8vftNcmquayj;=niO3WC3QcFkUW_DS}l(JLh-1x#2I`5TjGkkoEe})YXx@AAb-pTH{8Bc7Q;b_E>Y#z6CjeNg>}_ zUDoAw6uCPMuK)D;^r@>q5Btm6WRdfn?5VKJM%!yyr?ZOd&S?AdgOd0qnwKSt`OZ$MTR)v$AXCQ>UN z{y%7(L@{OwSgHc`SY3PKZ1MoS2Ld&4>>OZqL0qhR;9r52larkgyJ-Lb002ovPDHLk FV1gv7#rOaK delta 1982 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 diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_25.png b/assets/dolphin/external/L1_Akira_128x64/frame_25.png old mode 100755 new mode 100644 index 26c944d16e6917c7e73b40e072cb8f87a5ca8afc..9da0a4cc6addadf436d7b057df3443b207f88350 GIT binary patch delta 863 zcmV-l1EBnr4(bMw7=Hl(0002`twPcO00S{eL_t(|oIQ|TY!p=(hM#k0ySvbzUDjPo zOzjTbAoZpdF~$~mHbkRDjWJe5gEne{QH&a+FJJ9Av45B29X2ld!Usm}`^vtfRG!GIz={^ygK!`mOx zy{;_eZ)5B$c378=>nF}b^Jn&9MfT~ak=^P6{8Cy(eizJ8yz>qpt+~C%Wp^BZ_ggddz<}!NWhp%KX+(v)1yIGliHgcS7_^)X}hq`-qwDH#P1$J z0@!u%rrg`BS2saQbWchoYryl{Dnl|`(yZIPMt(Z~-G8so&WkFho0;e`>100a-uP)v z;jBMJw-S*nJ!iIdj*E!vBB4n)%P+}}R$0O+i0;vtHF}%1?rN!n8;T`ux>&qe`?%%x zsi8Uds%fTMiP;cN^rmK|R`56-OVkuk;pbk=po#_WiY{pw!0UYtV773*PC|^N>N=Z@ zhz647<$vju4zq2*EP!f{pM1z#HaLI=SgMTlwf;LCP(Q^q8~*Ey55yaZi8NWZ&e;{* zC{eblRfaxooC1&5MPs*nf=9-1MrkRBwluHA+2dqt(2gSJtY*I5{ zTrL~k0B5kjnQDW(>Y(#Jl#W|7ZgByD zWLN`qg9Cl_5Aq>+FQ`UW^~5=1K#fT>-~op3%V5$VA}-{Atfs^uel%i1k^rM3i|t~3 pm+J389HbftYdBT4Jk+r4{~vITOV6e=O>+PM002ovPDHLkV1fjcr=I`- delta 1809 zcmV+s2k!Xl29yqv7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000KYNkl-zRte}9+8A^)zBT{$MR$Wva` zHKQBS6aD^{yV|;TVSVuE4oBCB+zd1s^S7$2)Rkdc?U}6K-Vvp&31cSHvd&H_)vzm1 z>mS)n+A~{5Z0Tw-faWUJc4Z6@p~!51tv$1QrtEG5+uiBfX6x4bwL?oQ?)!$Hd0&eM zvWWUmOXk|wqJK+tpVcXHUFXW%e4gG`pELu=Xw#cuIfh63n)0Vzgau9i3g4fZD`X@T zbC1n5aJ>hG1pMGCXBTW5RfVXJ--#JC-;UNq_F4PFG?1m%RfzVH@D^W=i++o`fD?#D z^DF}}a?xBPe7OK?P)#}1E~>D#V47uTcC0m#a%XD&ynknw@Z2ZbiQZ0^GOTBd&e3~S zhJ->=3jiF%Kp3zx@wJ4s<=%QvJb$UtqvnZW~ zW*8BA*ZQCdLaqVn;!&{27}hgbi!XIS&nw$`8_pZs!hPTVX<$Z>76)Xa>h+$s(9&R; zn8ey`atv*ASkJ)5DH5oil!xY3_K|v_>vdh@x_=W}yn~kJxXACX-_b&QwCOGWimaTB z9+ikL=X;&pG2%PC0$wa}0>}^|&$_l{SPik;4iEz(ePAI-!pa8NMal$TD=asJ{HMG> zzsq|X8)(d9>5F8u&xKIQ6!KZ#*}*H7Vht*~Q>+Dv#2uD9u*P75%IbxUjD20#zr&!2 z3x8OJoP?DkY5JpGE@3UMXGD>>q7&Yxff-092wa6$xB#t9cDH+em}MAdLU&VScJA1D z%ODj5Mi4cSNFRm;JXuyCrs;v&N1rk4c4uG7I9UduV*o^T9^_78ES23|8s#!RSL&l> zAzpqhe~SjP%=lJ+D_x@0FMp#LGhPOgUF5`jvNc1==!pVLZ>)}*!5AP7 zj9T+9ssg7-;l)ZT-WvUFsRGY5Kb-rY~#tx=JF@769`H}n^)Qe zR3c(zD3WL8$nRd!#~c6j28keJAao_L3T$v^wO?u2E7Dj2V)a61vX7Hc1KBb7w||1G zfvQ(bEIu7G*s9Y#90>xgMQ5UM6eoDQ z68UOvTut9>q#ubVES!i79+d@XKn$`Iq(xFZ`MW0{)g+!2`LFnB9blqrf;6@mgEIs+ z8(@O6CgwH-@6pvtlG4@}Sh?HTc93~j-On+O^IF(gK z4@Vim@~yH>XI;I*M^|J5sDEXa;o&F)MDtpYZg(ngNKSOpGySTvgbIWWAWD^N|IAp{ z_*&$i$@#N#tu{!uZ2LF{*gfn(Cw9?sJZQcijm@Nd)v`5t))<{=F@SFZ1igAS_W5^2 zCoT2UWV8L&zEuklVIS>Y7k^SQKy{5e>w~R4-iz`*qwApHZsyBiD+sJGgx!Z_O36qj zo8$jxL)bbEJY}gBnSj^c^4A@V$3Q#jtj6|n@Qx8ga(#9p)=AU)oH$}-u#+}c;v=Qt z$iqj1F|DA4WLrnXR{ttI#SlaPA3!3K(ye`>IPGe#>*v3M`Q(93r+-{C2>g`q+kqGP zN5|<73Qrs?nd1+|0J`Yu^bV>jxjxAVs>{e!P0Kz z{ZvND;MceSEqBl234ig!d>*!~_MO2o1NhXg={T^G1tR(Bl&xXbEK)_b`;fVxDgrU` zciu|Mz7vr}cct~QE}$zt-5s;)^pQbE*Jz)T(?E}YPECS!)LRJ@xy!#l>Gs%pOJ@Pr zBxGN#^u}Ldy$uu@rwW~iMa)aB8nktgWBdVN8OYy+^XKXS015yANkvXXu0mjfc2s_v diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_26.png b/assets/dolphin/external/L1_Akira_128x64/frame_26.png old mode 100755 new mode 100644 index 2972318cda5c23c60ad9a4618daa45b292c90c09..e7838e39f389a62bfa15f2f93d72e736d2841ca4 GIT binary patch delta 749 zcmVyHL20KfTcU?&W+3sP{5rVBMA#e7X;fTbYawxn7)dMe-hIn z!ICJ6FE(fui36dbbl$s%#k|+xx4Y*%=ljn2t{IzR^S{X8-+uytNf?&Yly?+$MAEDj ztpT%=ewSJR1ZyzsCv(8W5mez>R{#JN=uYKSD@k2xsrLfQ<7Hh>Vqw!{?xZ3~nRLI9 z7ytuL7C`xbGm5pwISOO_d9UF$LfUe+06PuXg_ED;o=@4Uq00XQS&^0BXGrbUxpS`DY#rCIMKy2rPUJa4;H> zbfzY0v`-ce9R>I}1kAm=7Ahg29Wm&NwpyqrfPWGEfq#Hio1Y?m0j9KqEW|PJa2kI; zE;kYj?FhL08d(ahoxo)`Al+){ntby=1>pLDTagy_D5?PV6E`58QdZOIk*)%~8`=f| zcS67e>!;ja$>_S24QB%0;Vb!)|5VC`Q(1Pu0TAdSfOVD|gAP2|%K*fdp}(1d%C9qE z-X*mBc7M)5TD=|tC7Qh(rKxspWyX`t~7Umi~nY_2Yz1-bzfkxp36E!A2h zP3iWxHXFtJqgrC$d<@fK!U#7ThmA!yD}O8wyk>>?#!%82=z!|jtC=JG0@|fo%yJU) zO6h_PpMb6EH1)F*4wwE~_YClqB<)qgF4H{~)Ka!IB|opW1)J*H$#}UA-Em+S$Ky?u fJ7%n@Kc&_q!ktVMaqYSX00000NkvXXu0mjfBt=@V delta 1388 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 delta 2051 zcmV+e2>kcO2Za!j7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000NKNkly@6ov3uyR-6Z6{TqUYQ9+DSy>jGUr$!1C6m`(LAW_ zF5~Zz_s#@G5y1EB8ms~og}jbq^rKQ$mpic|(u59>MF8Kg8UdmOMMkcmBg2mCZ2Fxk z;VOO{K*^P>BY>KpqZE|!gs80w)zNntf0t9e$G}7e<-#liOn7n?^;M9OP}aYKhyy4x z|5d!k_*^JD$$xXv=Xrj7Ms3zuHZo)p!q01A_3Iem4nBb7FhZFfsBGSqIL6;HaJ5jD zKdV)MQqn2qs*gx4YN0Yv3H?l7q<4m>OkIVKGB8u5vXH8mdl~-J&o;HjN4iw>@%@#& zZw*wrTgk91?HtGPCk4!KZGU`66!IhZ{&q|j=GnU|Cx6L)MmqU481WdUwY{3cJ*~1U z7S7g+h^&H0e`IWARFweFJ}aX@$N?g6MV`qN?A8%tD71f=I1N; z6#>*qvwuzUWXO;4{rvZpUhd^Z9H2XAMDWmeWu4w0XdRX?S9JfGa}W-|aEhFJ%9IYUD-bz06n_|E>c2azUmz6c$7Ok zvK8Z_y{hDC6fM>HGd_WSqaoNCq{vFvPI zhkxiPMrZm}B5VikdjP9kWXOoAqD9zz=6^g?Bd|?Wpg1j)i}H8Zc|G%2iDw2F0d|Fd zmY>;)MB}US(C5l&?wtI}iI3zmUHoVCJ)3*>4Xc1FU^(5tXPcEpfJ*tLjEkI3HGcQR zv-z0*{`PRW>siN+rmt*f^!+%hnW;;Vx9J;7>lf-`}P)n_M@ zd2D4ro!qF>ij0q<`rN0NZ9qbiG8HFbbFtHD7nP+YKMwH?t9!&f{J1Bad^`U%7)m!$ zWJT-!aI!(Jg0t|6-m|b1DO3s7S-!TiqZGnU4AP5Xm*J;=Oit#Q*}CkU9~=NpWQC&d zEH8P5kx??1pXrpni=s<3$G44d^?w*c-xoD<`9tu_0Z<-^LJJzt+OBS#8kVoj|1IPD z)2gIg|DNg3s-p8e$2%i;YKe0tgsWJw`AX%mQ$ErM&CT|`Q#~;p$1&c!!FASG<X| zZ-TmcOrC<(dsQL5SrmI@1b>K5r$Q_x4p7OzS8_Eo7Glp=joTfMO4BP27TpCr!U3ua z+<9m4jr)i$x;ol1uYaK5Ex1AoeW_#HpMnnYWjB~R@Q4V&7&7V;ja3c5`qD|2`6S1j zc*H$`?ZeRd1r4hE6}i5C&kU#bVY+v)>H_Mv6o4))<^s?iwa4reh5aZMSXoFn&pTn)dn*UZImq>%f_Q5vt>?Jbyptb`t0p-yP4s&$eun z&<&t>&Rsxp=DH@X*FS;1Y^vsCjH&5}Z zwDnURj2j)GdR3dviTY=E3{@vU@)UFkYnINCe(Y(-hrDP!ECO^GaJ6=iPWF}4-evDq hM`h`&Dr1Z>{sWQ7djtP_PBQ=i002ovPDHLkV1nOX@;(3n diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_29.png b/assets/dolphin/external/L1_Akira_128x64/frame_29.png old mode 100755 new mode 100644 index 8bcc83a1db2c9656942f74f1f632247e78502c92..b4a35158e37b076d861f8cc395b30cb1a12878fb GIT binary patch delta 915 zcmV;E18n@`4xI;(7=Hl(0002`twPcO00U%6L_t(|oHdb8OdNF-$3OF%S$0{lyRD^A zY~3M7;~x$+_JG+020Ylth!{a@H0>Ir#u#G{Dw>+^)Y_moVxs9m(~0eYVr#Jx+oTX^ zp|uASHZ%k^H4LmNC`PvY=}vcd=6P6n$IpB3`||xh`cIv*#M|X6{JRHR(mDe3?670R?2NqrOrc?tDTEf&KciLH|IrWMC3dS z{;WE;++1A;lX!&OkooxEOClp8k})Dq%Is*{{BM0(qu%fy3XL^Q?yiW&%S1(vCiiyk zf2kiB1)?f9e1EL=%t~gUKXu498eXvhW&yPzZ@gWtU&Tf25eq|Y|GwxmmAMUDoKMKs-aRA3LsmW|=ks#sb#aDd}Yfz`92wcYo2%R!_zLN=O1HD92eC0vp z_0ddWyI%V1Q9wnCr9TsAobb_rhQ|Q4z~Ii=v{iEOD}TGnId*NWoi?H;1G?6d;?qaR zW`6km9s^A;ToNDXYW((Wyj@`+N%7T3ZTMLY`z;JJZG(pP+%E^Gu6}Q1;_;E8@xbU< z4n0r^+AiNam`je@pa!nng>B0H)OdEG9HJ45)F0V*Ew*Rs88eX-UzLu1@!;XmHMV}$ z+d&hkZGTgne$-!u(xREeARwJ17F?=}S?MD8cS})eac&!)=K)}Yvco45CEb)15ad9m zzrNG_894?}wicnFP*L?sg()}foVCNYLr8+%8XC zw6&L4JSJLX$pFwV_s|~IvEBoOjDL|U13}JZs(%_@?-Du)E%UQ4tcW-p zE4o!(IkZ}ht=7SP_FX;KhnO4S04tXCa;0oCl+uba(&ME|E#m-9p;Se;q<_;SD+OT3 zcqkRS5Xg-DlMr9Q(;q^-4&vN$L7_c42Bs+>7XXEp)oiR>KqP-0Q0TTc>XHLiQUFwm z?0>anB45luFCxAIco!$)&B=>EfL<%2Ywz7S@!wiZM3$9y90|Iw*SMAbF7E6*r@{k3 z_*B@A1lHox=H{5 delta 1888 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 diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_30.png b/assets/dolphin/external/L1_Akira_128x64/frame_30.png old mode 100755 new mode 100644 index 9f477f8d7fb77c88420b25c3b6102a36faba6d0f..8702554973587e44555e57bba992c5448c9cd8ca GIT binary patch delta 921 zcmV;K17`f652FW=7=Hl(0002`twPcO00U}CL_t(|oHdYtNSt*X$6wF)p7YKh^qeeR zNa(Q|h*~=%w&51{ShK~TIH)@-&|NF2)`*J2n2md+LACv{L9v9%a(@(du}Wfr;kt)h zAT;n=2}0OC%fdNf_c+fyJ@5JShxYHA*X#AioA~4Cfu9orZ-1Z2ns_e(sjEQ}`}IDN zd66*wPW0f;qZ7rvNKWJvRm!9?3t_E))CC7j20GD$w5|AZA}NuZDxcYAYh4FdbO*6O zM|A+{Rll=eB!4d=>w0eL{Da-ozwyu}Au4>ao65upGvETc$})ESp0*e#tW88kI*vE~ z%`kR&OL3`)rMpeddjbbg5Q~{w4;n?uI8pIbEXyr43l4^sqGtiBX3UN&RARV>%!{X7 zsGTfhRNOJ#r4RtI>POz@ts$CR`o$wlOPBu@mi7VueShMq2+TDHJGFijK0g8~hPOWZ z?xXqdZTw%^0HmMm_%$%Ga6c_S%!-G5vgPTj8-{j0?vKZN!~@m5tL~>pUt&l4N0}9m z;gjii>b}^kWuNJmr+UQGlXoX1+*njrL!8}Xpo0H4TyrKPaC$8KUJ}si4y9IRY^^yx zKd=2E9)E4$Och%PZEc{u5#_v;Nfik!j#_GB(KW0+QpN^a+tHfJw$JX9GWe#>EWQYH z^8SF6m$J(IQo7d^jOQ6YTOR{Y*;4<0)C3)MPCq zl8;JZllU+o8#$5Ql&tCiZNVU_hEnfi6xCLS<$qJGUxB0!fE(gMmwoFv65Av!#8u}m z6j&YDQbHwbZu;4qtc3q>+$M6)iE-528uTK1^h9{=5(+@5OyZ|tpDx)7d=~g@D#9O6 zkNX_Zu9*ok(wDOvFN$Op{+E+zVIZ1&9Z+l=ilE?t!{Qr&&RvlO^bo+SUjvH0)OZv* z0Drpy6iG0HHDG&#fKLH|?0Q8K){?*i?J031_1-QoGa@2#pLXanH})Lcs81$ukCV_Q zxh&#rFK3)|`U5XL0=(%3ob6u5!*8sZq+I1L-vRiGQs_H7Y8i?@{T2}2pm)%)ffu6k vZM!$_`s{T?M0Bxf%Qw|OSss1Z0Qe6N=n|P}$iP&300000NkvXXu0mjfaofLH delta 1949 zcmV;O2V(f62cHj+7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000M3Nkl8M9qWtM<3zMEOKy|s26$I*K4&3g_U$I)7A zA7dG4dg#4|-rwWb;t$bBKxZD~Q5rKC`>yVx>B!&5=iXXdK7UDsQKUddD{EL01JFEr z26%_^s}#>@qBFnIA}<2yd9#rq1IYv8ix~ln29}WTQvMFwQb$N`&;ZWxpq^}AHUe0O zwL*Os+Cb1=%y9IYe^L1Zmi+p09ETT9*nSw+N;fTP)n6 ze3a(;p}1HT4B8|^*DCPXT=~1+Gh0Vo;r(}czT7+12Cf!i5mAw3njxP0#n9%==fBZ=F{g|ucy=ei z1kMh(s(gzUGBVAVhbr&XGThlkxc2}RU~M5%x^+;i%V6_8T9$Y1D!dSnUfb*4tIXns zn184MW6%ou^0O8GB{D|g?ZE_I?HHD_BL#3JUai?*$$E%*pF9W>_L$?fK~@pz@x+QN zYc6a3W)u=pI(xqp?oFUKmNgnH0(d=gWUnY)J!aJ{Oc|c>XFXl>v7_qOIBS5Ypd^zP ztZ-`yE>a}Qxq8gwUC)g~5Kl>RO~k|XJbyiop1bh!HewOLE09pgWCfrHlrF6Oyl5i# zXDI-s8g`C|vJo^L6qPQC0An)*uRY7;DJ!f+Dt5+KWSs4nneXLnNjD08Hl&ZOZ6IQZ z!4d%S2)RzqjTC9@o#p*IyoD9BR-vZTs^!UE+TD4!)_?(6!j1@ljp@(w>2&~lO@D=e ztQv*Q_0B#Ntqbe%lMU%Cs#HdV^D0;$2zjlwu~!qIxe}2Au+jh`Ya`LndLN36>Rp z89q>?WQB2*uNAm|70iJ05*nB9*nj)zUaNEvUrdQnW6M zZb7fh)DDcN3@pQ)5q5-s7G*snn29hENd3TnAR-EOXs;(`9fCDi3nnWNj~7ip>KKun zj^u%yVa#Fs?nnh^7jQScZe!K}W((ZviaW}Wb@sB>PwWBzD0Jp|6?Q6L(tnrz{OTE_ zYp+!P8G+hA5CO8@UsWJVTDuHA67?$g)%*N)6L<%r5#=i7BRaZ>U4hR3cPYQMhZw+< zFv35(CqUy_`m7_8bH;wF@Qik;3%DA)yx%I)SUa1kgV21&Z?*Eh{T^=sJ8vjwg^fHo z@|5!{`O!3(u_0ML-T_F7ixOF$7>`lqxAsK_5W%X)BLmYHN$43- z{0v``{*3Zl`!WNtyse^*v*^!WIL)lrYnkyyXg=BiX7WF}+Lhz0kkMd| zo?R=wwPz`Q@N)ULfqy!h=+6;Y6}NXYw;QPUzFYCS#*ud!=O2Vv?OP@DQN^)2lAr7~ zYxXQUe@Ev%DbKUZpuyKmzVxc$DrUTQ!%DU1pj_%14C{m0I(>)F)}eWtx2n!z=7~OQ znfBg)|JN`isA}ttT$E&r#Aqb2_SZ_DeQKH!RPDEd{=+Z-`+qy{00?Ydr2!0jE59sy6$cjrHiD$ikQ#F9rOomi-nrKS_U2+Al`7j$=5zym9uVgb?h zl%Aor6RrWQC{gEVE7YMhv?2^fBdXZwI#2oDo_9ydj~aj#NhKSpJdMI<#yhl-t*Ema j`ZG0>m(%Z7xE97AVJ9)t9e90%00000NkvXXu0mjf-lw|+ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_31.png b/assets/dolphin/external/L1_Akira_128x64/frame_31.png old mode 100755 new mode 100644 index 4f2deb5c58b47c14558a5183d1a7e9b90b16d71c..68249a4d5275447b2d2fbf35cae1a56f9a07f7c9 GIT binary patch delta 917 zcmV;G18V&D4xa~*7=Hl(0002`twPcO00U-8L_t(|oHdePXq9ywho9f?yz{)-{+y|E z;>~%LYEv)TaL|Zg?^aPq2m{e}Gk3r)g8r?G*sx}=b+Iv|b`ceU`OZeJ18PF$lJdMO z&_x#;P299GUk&uM96Q$Z{Cm&)?PBY5`M~G7dPp6^tQktxr++0B2|E&i493{`=6g~W zk;gFB_bJod^ZHyCfY;6gGH`3?$Acmz5&1oVejhW&?uAvb2tEyi8-}KS63L0kVnXRF zy7{@%Km1JIgxo%3!K&~5xaWa_ya}8~JE)H5@4q9mEF#5(UKsc^e({Cx0@kMVCu0>= z*LHkq;#&|#n187M)>T*CoX8CkDJOJW?HAO}x&Q?m&@R_Uo6p&K@Rx^CPr$Q{&cj_S zi=^W@34hf-6(jq)A`TRM1JKr=rS4M~uwbgtf$G(6hAXV26UH+>JOp)(&fyi67e}ZT zNoXIo53k68lEQiiazNwex2JVn#M{4DB!SDOp*mMZMSpZ^tVa??5-!=>)Cfm6&df~L zcCbTNwP&MUEvmx@oTS&-7?cC?l>Cjug8E=8u}p%*XuYY9`w>I~Wxda#hc>FzCI{mm!c@=~( zzd=$LBdk;!YnSOr%BLw$ z0DqL{01V}zun@SO1ZvPCOT!KKOS%59MI_AXUtp%GMeZ8*=RkOZT_VoGs$#qxd?e-l znLcJkobCrDksw}7xuCNJ3k)Ez{y1<*eC83MZORoJhf rY)SoF4WI?}%@2neTx!Ym0Q?8c_L^7ggAUAZ00000NkvXXu0mjf@b$x- delta 1908 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 QP5=M^07*qoM6N<$g7a!?>Hq)$ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_33.png b/assets/dolphin/external/L1_Akira_128x64/frame_33.png old mode 100755 new mode 100644 index 1adf3d3512df3861d0611f9e7cffab7d5e6a632d..795b88fb40d4ce37cb009e37bb813f29e02a0ad6 GIT binary patch delta 884 zcmV-)1B?8F5B~;`7=Hl(0002`twPcO00TxzL_t(|oIR0UXdGo2g`e-;Z<5K_bT`FF zP-!N1tH~0Zy;7;#Ox5^vWdhl~u!vZwc%w$FZKVMxklIM`=R&-&s7p#fCV^BWBL2{| z(o!tgHISHSYgSrmrJ+t^NhX`kd|qtnxjY;==iv}!ad%`s8GrlXBcyasLmCpX>v3lR zt1n-=w*|>qg325$VkRf3Tu2j!RSyGLc8svca8 zM%Hpexqb-%Cx746{4`QPBh$fv(iJoR@jGBmm5NPqUTu}?R40!q8oB|ptq23dp?4iDM2duH7=6(s>?FxrwWt^id3`%J({|3Ikt(VU$ z1+1n!N+cf@zqk9#nI9V=*|q2d)g|%aaOcCLA9a>QxR3_TCkU~a@PIm^s&X`^{eO1h*^iVi!gfZzwARiXbc#0`Lg!D zy4IO}X@C2i!T?bLd%WlPi^|u=7-LNLI(v3L>7B$&7z1Gb(WBAhp-|qeF!9+bHp%N^ zz96cZUo(c_>l1gS&}Iift1&w7RsnovfHDZ%o_{haVy3A{NX)nZZ!0xaGrFGjaVdiG zlm`MW&<-HQT7p8^^~_2{>;s7Uo^~Ln&OivFe)3$ZT<{xi)~Mvg%1*7sZUyR%5wrKt z2-xV~+7bV{7YO}Upb7%GU=snvAP6sm&4G9Wm=pr)eF)X?`Ax~N{t`m5wudX5vm06* zgl(8dY(0_|szq@H4RLD4|L_{jQ-fQe9k3NkPy~S_MY|0XYVbi5-UtUuq>K%CAVd$i zb^)aJ0fITK(yj-(#-ds6jyI;oh15+0r2Ne#k6W~$?jEj@0{joSi#`MzOtL2c0000< KMNUMnLSTYTUad3$ delta 1920 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 delta 1117 zcmV-j1fu)91m*~k7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000CSNklyoQ52!PS?{a@MhqeqJr!X+2u$~UvquGN?V0g_-B0ND3^hhuR4ghdD z=7F}yeNLhG=lX}+mHM2NSpdK-DT{D91xjs24J+EW{ndi|AoY)) zlgjtA0enX*eWhS`tAX1%+_iR|6oNET@o_F8KvO`}UH1$Dsr))t{EyWG9B?kU#uZB; z$Qq&&KNkbQ0_KEH-yh!McyGx8N=n2AXi;(+LOr2b00tYvrD3C6w@m3u*Cus{9>5A7 zwGj`%je2TO>3{nB(ZmD%H0m75T$|cDLK;IGR1cudy`_;at;}id0sMxKmJ3D6l@0&n znS+;NKNr`vS9~o!p7bNU6s+wTSQQyb{_wq8W1WHg6;}O}GT4-~5=<84%X0D!C8)P!hF27j?}^;FCoM?I!#4q*Mp4OE`Ost-e7KUrW*_g^3YD>Y;o~|7Y}Q z<|NP(GwGUQeR5 zUx44wFd9ZPgAuG+%%Te}t+I2jjS&KwLFhBFmVZV(&G4hEZ_@dtaMMdkI3&#wdhRyJ z4X@OB>-l=oD;!A1J5y3N8g>>yN4iww=Mh+GnRo=2``u{>cg;>Vfbv5c$LE{^z05ws zX73*WFZY^$Z`$e{eg8zB(0?hvDy^Gv=Xk&883HU*K76xiLTLFyt$Bh00PvwUDqrh$ z7k>{x;gnxH_2X6xlPfiH_8QQ#|35>!X>A5wx_;EA%4)qRtwWI;pasF1Y)d-$$Fv*om5|~Et zK31wouMwmnJR7kr{7G>&^ME+wG%!c@I|#1>L=B{eVP#Gdr)U7Jg_^EXm{}TvjUhi06;Xs#gJ7*qs8%hm zd<)gT5rol7nz?h>P6-d9Sg%j)G&KMV(c;mh55o=MU}S}GB6FJoaHR6bGfhQMD*qm) jFo0D4eN15h$$k6-SI}1*>7K&^00000NkvXXu0mjfXHOGD diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_35.png b/assets/dolphin/external/L1_Akira_128x64/frame_35.png old mode 100755 new mode 100644 index 9a101f0aa36d323084e06e505fff0b14cfccf8e7..7a2154c4b9e3e6cddf192e0cd50e608e8f445860 GIT binary patch delta 756 zcmVWTI#$t!-asuJ5==q&GYN-TCw6E&a-8YCOwsb5*!ucs@J*PkU9=2U3~05jVNdVhW) zcSgeV7R+>eZhvp$*Efy-#_I=`P+(>!>DxVQt<-WYG}EWhsm9=&9Vy0P9Rq|7W2VmE zm$EI^@X(c#Hrv1MUX{f}O7sBXjrhB-!lc*{ffFVguMg-gpGPXv2;LojpsQh~-xK*I z5sUXRe1A?ChCULxFGZ`XCrs?67k2II1-%L$iS{a;V1Fd~5>kiY-nbTmr6sd(8My9cxDrh49$rle$Uzpl^_U(f&@=!r-FKvr`SjFMg(f4K9ed*M#=Va0CsFuI$c$+9Kt3Wrx)JPPy5a)q4qGp|1`}tao(++F7I8rmUx;G&`zogv{@GAE-XOK1 mqh`Q8GOZrB0qCytKlCpwAS=?+us4PP0000vQiN zex++rjPEpgPr`Ax0(XHLF^b^?(sfDBlkt@fkTw4QWcY!vbAJGyz7a>z()}kJzO`Td zUk)&n5-V_pe5r<8_}>gK>3vvVUWttSh|^>o?9mze1(~m^{Cr5o` zPfZ7yF^;x5bj_<$J_?lNJ<;&ly*x5E;|a4i{wl7KA$wlbKh5y7`*@ybJ1T1Ls*RBh zhsuhi{7*~wReu5W)&*qYMLQRmVd03Z$QZi*Cq?~=%(?U&KvP(9f{M}*U4t6;sfJ%& zE|1LlcQwXlXWF`qo;>oAa<+mHSIf!Z#R1S)4aiMKGC~B|_707Di`MjM(`GF+M+Hh(-ex`t6=tbvPdR}S#w|_2RWd>N0){xDl@}tJLqCJ`o zs1tbOJX9LL_nylD(uP(W899(aYCT;GO|wXZN3(%ddOUrsc^SOfvK9RxBzglghegsM zkL0LPqBq7xJAf=VK=hHu&w%f(+6JN=08MWdh@9(Z>izgWYEUjKQWows{&}AFWdLiA zlqsZ5_J1Nj8fBUunT$|%j!=0vBJJhD2WbmbX8^PWNW8;am(HWtqR6oRF|Wc2GRC*| zRSJ|Js_ghDDPb+j6`=36bt5-KZw$#A6~^Z}M4f!*T%)yhofFRnKh(g|O;Q8!ewbh5 z&P3Nl>NUdr(Hqp(%YxohR-Z~pwusJcO?ezFMSl}|jegd$39{Z$6d`87qQKF26=GhD}mmh!D~%;!ta=>8zYia0HD5rbOmAlXJ5cXi}b+~Ig!wpT*A)AZi| zW`6*VO!}9IiR6J&tH)(NCGs<^Znb>rb-dR&m$fhF3H~HZB6ylI{Cb8vM0(jVeiiOC zI)xU^{Jk`X&!=M#9+4GfPfF#Q;jGWr+VnF8s=MVhPigfKnVNiV1I@OnqhO?FXN>Eu zjTql69b=p}U(&}~0~uG<1t3vB#-aD(c7FjGNTkDJ^Acx3WKd}GthqEhWsQFo`Qwqy z_2BxTHce%K45I1X%LEi!l%bhG)5V+PIX0pLqL)RWrEwB8r%`_pQjMy1PszXd!+*xFeKdyVa{|TP9fCC_$09_M_ve(Tx8!(g7k?a+fi|CQt*F5$wt!tLgb`b~I(1E0PIxf6}1+IE0jAk}1q=t}k9;tb=u)peCPfYt?QeLYvqno|X7!=eNj zIe?MYlWMP~OC$qWdnf56>2hcTxqo2mT85cQYppUql{141_OBT~vTuC9c$AN^+~CVH zz=jVkZD-p`G|N(X15{o=cN=gStP+?3lKLelcypMxGr)3q{D+P~*OJ!uc#Y%)Ke=1l z$UwLiC2iZW8 z3%?rCQls$$En8^oYFUMk-w%T>!s_y7aS2Oy>Mwo6^Xl*JroPT9J?JR*`)4Gq=_OpOn;6*e_?6j@{kvl%`3~)1e%GQ9g z|ETQk05`xo8MM;9bm$goF~v5r?GkVsw7Tq#rPs399N;0C`8_}db_uu{(WiK=6(1_K zodF&J^l6|sCW`F<4}9aC^s^=plbNB0YFu>p+dOMWzt_;4=o|6556dgh(wwh6KRP3>Wvm) z0Vz)_z}YgCSvx`ZDqav(m~0V|2u0MlpK0eXlX>7CphJ#oIt%k6A_i3$F=Q#EhrGN5-=22ih;4#?#=D51>AJ{Nu389hnP2}^6@)6EmFkqN3ICV}T$2B_^xC$GmM zpqdvB_p|wj<#%x%BebgDn!a?iSE+qCahwnZ9s0R`r+@SD-8b8gUU zN=?P8Rdp;3e7v+!+ysjYuo>`+dXInntE~Uj^{IHmI_+~iR)1>j*mO*M+r5B!ZU9cWDK#xXCwkrVK4XJf2h?+Nj1qWT9At zoXpS&Sh$dh+8TJsC_wJ@iZl%UK9}e1LK(b29~&7X}otIf`e1*Nn7@*P*{i}KdV zyPk@c%v?-EdKu&9%H^_R##Gx&dH31RI>lWDEqCvv-rKtTuYT+tNb)}DaDz(O>f)Vv z*ng|-1hDn0F7@c*qIjM=3+PZO_vK6X7cURH8)i{N21%*+qte;_X#MP3f83Z&^(T#+ z_+=P{w^zuyt2&$ZtDOcV!@tJ7X}M6^-bC3$L5L|0$3^vDNCps-5ZfF&&ipmyw1;R1 zoJ}WYtljanNY1xF8(tp-^P|`VfVY=)4I@Cvwk80tjYMUw>0}B12eLDPGW>Yp9smFU M07*qoM6N<$g5O`!Q~&?~ delta 1987 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 delta 1998 zcmV;<2Qm1W2hb0Y7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000MqNkl$)!bRmzY+zL)n|HdwMMcp+uK_=AprP_Qg{);g(sGJo(JuTg3LLsWy`4ZO8} zI{0g?^>tm>@977K=-UEXZ~6JY?@+G%{6w6-JcU1jr}Q(9&rq%mybf9=@LDcoa|PcL z;HTN3qCe}Hy&m0Hp?xc;S-MAZJ$YSxOMu9T6X?p%Iz~2C+K$S}pQ3xu)-7WiR1?_A zJY=+#`4g;T1%D`G2ixRzgLYyHkT$+L0wafcPW_ukPu=V>c13hQby}ww0PX43J>91% z%F>h3#U|-g;4`){=rTaGr?KY%(P`I4Wt`rj>nRpOwO-4cM)iQP`+DR-5HiL}g6YzL z5-qF8>&8zu$r%Qy`0bT_rhT$@%keCG!ZUVe_M)B6oPWs4rrFas5r>z|uFNX}a~d*? zFpW&vshoP|3m{LY){7V*Bj4NamwqV1zDAqyeyYZL>zPE&%=psL`V>aNm+LBJ293yC zZ#VdB{rg>jTsXl1=;s93M6I0s%&A9-we@C7n$(>wKiaMctscN~)--)H4_g>m)Vg0~ zfUMw0jel1Z3@NkAJ}l_zX00`PG_#p``eBh*$E`J%eF$toE!nJ}(3CVa4ZI>Jv)y%; z>N?O(7GkOmw(qcSZ&^{LCh^YqKZ1(v|D`yn9YR z2lyxfo!Plc*QZK=XXjeJvpNlHwJb2bj+Zo5KYzWy4weD7x^|WUw6Xj5?ljP=}QWzbA4c7OO9O;kuqu?mOy0%*N*881-$1<7*Gn=-O6UnhY>y(8|Nr+DN ziKKleKtw@Sf_T^Ddv8;byloq5)Q}C{Jq*}B#RHQ>kzJV{0Nv;5q{qN&6P5vUGSTlA zGk@u|86C*J4R)l|YrUp1nqCmIFg+Pc#ufua@J6zT=8-LIX79C=i0GK{O=VihFhKTz zzMH_^xX2$ZSQ~CNU=q@BDHF}xo;*~~qs>mAe$>dKQs+$~4A>sP(yg0cZP#^Om;q2N zuQGr|+4{tzSE(PtvhPIj5p`=@rob`)(|?ainH%4x01pvmd!JW&2iD=5DNr&ny@l4H z9nSU|Q^+tt#m^tl0VKUm)KBZ=SVnqIme{m~=uZEx_rnI?vjN@9IK4VaY*Z4=iswhE zU*r^kgv)?3^jaw++h`ON%MK03F7F$aeHzL&pX`@~h_)%O-0bVlspl1605;0CVc4EQX1s+zl%UvQ+LRbVYua z0lem#!8-w1Cr-fAWw8VkOo?b>Kr*}V62nUr&n{F#E2Y$IcGtlkfawX4ytjeQ$wx9g zoJwk`+e_vQJO;3Ivxy;Xp`Qd!!+*={NIz3^J-TOX%id$@uQY335;4r?$(3^6Hm!$y z01dCR_pV3CoSw{@2yFkt$f@ihi`E~9P5?DZ*%{mFC9Ka+I5ulHJ1%NDdZL=ZqYRK8 zX)^P(x6W%SJI$`AhuNP-W;&X}BYzu+9FM?E0iCsaeWj!JK8vOnh8d=N0Dpv02Cy2t zwes_@RY$G&^13I3yYUlJ4$b#cCd&X3eam|yCv<}x*_+kJ zfElgj_40$DX`tX$7{D5>ymFFZ3hVw1P6pqS>FKQCx(|&3DEQf0>m`AuN9$*FWWdhy zQzxH!Ueduh19&IDGY?NEL4VefmBdBwt2n^`)PECK!9?)&{n^G&e=c9y;LF+GlDmK8 zwajFKY_;A`mz1><34jcfuU4RPQ3>0>B;8+k9--l-+w4h zY&JUCmR`@{QIcfWTly_IQkLhB(`DsD?>dwKYw^yo?z7gh&VPxL59vlpW645ICeob^ zYGy?3;IRbI@0ks*l{@|3x^AuZg6i!vYdf>ndS+6^(H_7v&U<2JJ=MxM5Cw250GYmH zdTg8S1CBDl26OVQwcfR?Ui7&{)PZMugC}cwYr0tvB*0qdg2>#z7XJ@9By`edZF#z( ztKhK&SS#<4Nk<1Vrz9HPstIh#?qE{pqY1DUXZ#7Lbuf{LO!v+t+<$5c@Zg=uza{Xe gz%<6}cNbm!1EdFKIO`b{H2?qr07*qoM6N<$f>W6B%m4rY diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_6.png b/assets/dolphin/external/L1_Akira_128x64/frame_6.png old mode 100755 new mode 100644 index 07a7c70c02c9159e7fd85538962a093e12204a45..f16295ffdb39620bb2722dc6d5cddb8771716509 GIT binary patch delta 892 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 Eg2WAsy#N3J diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_7.png b/assets/dolphin/external/L1_Akira_128x64/frame_7.png old mode 100755 new mode 100644 index 275f2a35770c4d3b88e915969cd713f16e6eb690..e28db783284966104cf946b0f3d0233b1011cd25 GIT binary patch delta 877 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 a9{&Io>v?2)L>U(V0000j=i$Gg+5#p(eV+ zaKxJ>y%`Wmpb&%DZZbB;`seh#Uew!9p67YSxLm zF+$-}K@D(d{!7O<-PK3oMi4-!)u?zAqyzQiK@IrQjSZ;jfc;vTXN;hgShjHeSeXbsoK|c^o zc(f+m&Xclc#atjPo>hl(%2K}ZVh^ap;_-)g6h%G=wrkWdShti`8umU7fO%9rHSYBI zmPKxzZ`7D^u#!#>E3mP<6@nt3N>HrJiIlE2Yg%9=fhzhRj9|34Xm(L8XA_#hY{` zQ=1mfdU3hQbelq&m#eyhSa&M4|5M>!XVsz0O8+W} zRmW%n`S{JV%~zD~*nJ4;T_C0Cy@kW|)e9CI0)NJBs-?onmi32!^`~Cn?(^$T)Yc{M z!Pq;2Naq27DJfNhO})W>v#CE3@jg{Yla&l-PW#DSJV!7ZQ8Ur<5pmV;-Ph?Q??eqJ zs$w3e$Jlde!3q*LqKLiNykd*HGh^qSPQ!`%Vz)ac_r2AY-rcc45fN|DjG66EdSlT+ zk$=Ap%VIJd+r3Toc6h_EQ3-NxfyI~3wD!rBDl3RoNu@76{&zGTRtYH?fJ&KL=g)k- zrvUg6DU;b*T)!JhZDB@S4XDf_BX{Xo1+)g#=T8mgM6=s1PzIEJIago*x$auYxfewP z8#en@_8&rhaX`bG20Y4JRa-i7ywoH34?0ebN3lX$ Qg8%>k07*qoM6N<$f-f`5(*OVf delta 1814 zcmV+x2kH2@2bm6#7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000KdNkl`NK4{)C6I*vnpmiT-BJOR%0FMTgy9Z5jfES=IBl$R$by5E(t9)FwwS*LX*0ixgAGnE88 zLD%vx#>-^?#o)JbKa5J^=pOmvCbDw==0!TMN`n@{|tY;RkNCISb zkz_rt1$e>N_D#(KkzwqLcEJ6@!DT+O0<5)u1%ImiBeM7Nsy&^RKm%_HkE#ItR#??w z>J!lsu|Zp}R(}G%N5Z3801|v{?TR)qnFOeBqU~UkI2@Nz>-PVzdiw|L6zHi zMFof^!(c2`Cm*uTjl0cL36$zl-zzzOvayUcfNL;P9L_af# zCIQ!_*>u|%LD9iWld;yP1FFHNK<5pQBWhno-d>Yzu+H960kXlD1~E@=H&4E1@!K5H znFQfnsef?N*~=0jGH6LgX_;>IjK)dy|xfd1|*3iewDb5Q~;#h(|xEs4y`X=Q30gjdwi>H zP?A@z1nm`|yUd|F`TmYdAURXgg*->~NHc*2D}VUb#d-g}8WW%+=oHagTnU1w+X{$u zv$DE7lK^S2Z3)mF{7o`b&UxR>0+FNj+KT;N5_lDlRsgFSlv}_=&^bYb1Kn%&=1Kk9 zxvDRC5?D#;%>ojapDeNI;B!3|c$Rln0EC;h)}dRf1bmp>@CHCBKB>2WtAf9l9Y93i zd4J0PF+$r%f4uz?-o3Rk@htyJ^9S+@xDif(D}%rFS@0%ax+kI|6Tr^W&p~gtH{@D_ zDqjmFfEM(r;IEbM!|3@;@X=ShZqUjUm9GtyZ~{!;_~ST!{ZPHuxe7XiZ{14Ez6_97 zz&UAe70_G2MDV>Jd#^awSxE*58pzBUWPkduwhOKGNq*!1{%9x5Nr3L)BRyN&k9-Nk z&q=r{_!%1`@RC6KPJn-!Enp(}=u|G9mH451D`z5{GIF+0Dqnbc&$Yo_O@OK3XD~f% zddY>(3RRxj?+&yx{5f0!z9IN~Sc*C&di$*}O|&xzhb<#>t0QN$w*srueZ+UM8GqpJ z;7g9z1{>u4m!9+Xc=9bh*5H>(rVhVpTq$312)rZsTHv+G-%Au^zsAAZhXkKKt0Y3z ze-`IA$2C|1(DTwhsb6V4_kIcJzP*?3i6)n%)3VJ&R~4XZzn(9W08a@%=c_@Ip}h`C zdpscAz9k7Xp6?;ByZ0l|97ESEE`QcqCit`hc=ktvPwhg^Pe8NhMag_a@ad}*@)of7 zcvS=mK9U4fmd8o5hs)|t0;|=DtzrFZ0iD73N}oi=E6dyv#6YAsBeRAj)8k_$8JFq# zBm#6E_~Ar5fjCqm=G}a4JsJe$)4QP&o>t3{)~~3@H_FeOaWp?= zfh56kp6A&ee0rlR<(HC0W&-V;whz_Y#iQbfY<#@)?+Vb3so+aoksH}j0V2UiDnW!# zB@UZ|gqLPe71^MpH%HS)&wpikNawj+3WR5cPZd@Y9DmpQD?qdjNTfTQBUJ{Evvkgr zKWSe_d^8`tCW23uL~cAiTPcs)jrDAm%C>c`!V{?o2xk=L3@{BIY%S>fv)Us&dT7@T zmS&5Le>xzwg0Tv~m3n)+2PM9alyttgGx*V@oQ})3YwRzCpnVz{z<)AM?W_O@-;5m= zI)^~cpW@a(6Nd~;+45R-pmaXkrVu;s0Br@wIlv;~eC`bGOvHKC;ODgrRE~7kvzywO z^-mYZTL1zy_DX77$+DGfD@} zbKs9eq0ZpOqc<)yMSp9P{Qi-2NOCM)5&ryKN783;c?GbHmWDZP52|Zp-*yXpPga+< zrrCUFC1_0mWC)V>M6x@26VTo+%?c4@Z9rz5$tsZk6ERUB@9hypZVewYBfYvC(yJx< z7BPXg3gD5qz9gyYLO<8~3^4ya8~m&d`x6QNRC4?Qei|EXfe%dp6aWAK07*qoM6N<$ Eg3Wzzt^fc4 diff --git a/assets/dolphin/external/L1_Boxing_128x64/frame_0.png b/assets/dolphin/external/L1_Boxing_128x64/frame_0.png index b6b2c75b8fbe7ac7ad06e4c1f3df878dabc56887..59d3ef3fab147eca080ac6f191292724929aaab6 100644 GIT binary patch delta 619 zcmV-x0+juX4EO|)7=Hl(0002`twPcO00KWrL_t(|oQ0FIYg17a#(($qh87!Wii1*w zbW$OU*ulZUw^RoybZDH5)b~ok(tkkm`fsEiGAX1WNI;~iHj}tqtw^C*qI5|R^d@4p z(Y%-A@X|JkLeKc)obTT696lw4nx1kPC})uUuS1>LaW;@a@PA_v><4{Bxa2+58j#}LMpwuN2t4gVHr8Mf%bGV4A#3QPl zaMdP(O7V1FW50w<5Or%;V?)HmL{9JS!W9@+zZmOy+YGH7oDJOIZ-N+#CGvjnM5S@Gm-}7BBFchvZCXJ`oCaP6uF-3Cd zjvNGB@x90xwfVR()(kZ?!yTDfL9g8{qyR|SytJpFF@H~5+9D#qVvPs$Km}-t??uLF zA0PxqLQhHt?m@b9Ehi%F?3`09Vj+F-c37kxS(~U<^&&Lwli#2_zC;GSP^6W-eLmGh zc~UaybqGHeM(@*66S;Qmg=Je2kxthODBrJu1a&Vm##sPrUI406^Ag7Bbs!JGWUSEu zWgCdda%B9E?oI*fxzoF3fZ>{VdY4QPQ0wjkl(m&yuZGlv(KOU!FJ2~~=KXvJmt83t zAb@~mPQ*RV3&2rtfB+)*1PG850d92zdvMcq98bGZ%5HTV$lG%va1(_z&$dZyq1)O)Wu3iJV94;ACh1zYCMC_bZpT4+ zIOTERsVB!!K@m<-xgiP+1S&&BZYOXE@;DtnP~@c?r}8@IuiJ|J!I4Yy`~AN8e!kz& z_myS7swt+tQF#yqnLJZnez2y%<22@g_XXo>FIYxu?rLqi64sh{Rf0-IB_zR~7+)*- zC0=Zv_qAk)pq$odpjxZ;R&s(8GxHf8b21hOXb7@TPR4nmPSW6zR2!8Y$RB(5BXCr7 zAhRr9+#4^KBGIWWsx-Z&Dj>Af39N`ro&?*I954`*G#*aI>g5ENbRfNUIk3-&F$C^a z(dryXAE|1u4=z_!3AULDRKRf@wy|bOhXdgwKajk`g4I3K1m1lSn^ayf1xy zoeCr%jChs}$FN}r7kCE6d5}@YLQ80fqHL(m77Ec;!9ws9i(r5vmg$`PIw>mx?U~u$ z8x3%{H(ZhoCQ1dPQ@r!tYhdgQzRG|btUWzFo6fBN9)k3F9#?4~dG^X|&)`lt|Fxc; z-y2It585G)AH%+0r5+}Sl^t%(yJ4t5n|@kX>H2dfbffUD?(?DPPUK*d-FSZVV>g)8 zkOdvfYoYV=+a7^VHk+Z-+oAZrilSigKRVcWq*4;IC0gS%DuZ|n+SAD&7m*9(x>-)<||lH5^TLRT<5$y;k#S& zHy*6Mn9F<{XCsCJmN_xE^<&@LYp!zG4$JKkr+*#rPSIQMr7h4_-8hR=cXz|0>LneH zIDGMxbC*79kdLP$Qi?K*(WY_ zGRHbnL)xX!xXkZmTO+}Z>9vzx-9MzENbSh3_4T>= zC!y=~mVJ#TvF<=_YTcd1_SCuC`dI7x%_GhXe>v7}*uNbsgbuxs{y?rIkIgEe=NA{| z)2DKN8r$ZcTh`_5Zr^MM{ukl~Vpu1_rp&2`eK6m29 RlWQ~oXOFwewY4m`_&*QaAY=dl diff --git a/assets/dolphin/external/L1_Boxing_128x64/frame_1.png b/assets/dolphin/external/L1_Boxing_128x64/frame_1.png index 347d71cc2087a490525faca17adf953c89a888a6..ecbd2741906135e1d5b2b0759213f59e7defcfc0 100644 GIT binary patch delta 555 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 literal 1609 zcmaJ>Yfuwc6uuz}_yA+Al{!+_6_r*uyPI8-%}Rtoh@wOgQyL$2*z9f~jmd`1QbMd2 zs^g!_370I~jX+}Yi8@7eR6 z^PO|g*>weTXC@3CI}`wrkUPs#2xS#~GUL_oeJg&04T?9F9EUPraw!#@ECRD2IYlJb z%aw?QA}3Uqoe|RkP_K5|9g4%2$MTX_%SCLoL9ZX80Z7jX`Z?YsDu`1oar;c@-Gj|2 z;ucKkducYp=Fb*O-LpcnI6pMk&WAj_Q9v_hAn8FCI`E1LhXlP#eE~LTLi_x(a2-+O zDAH%5cuZ(NDTl29$(CdhF=$DQCkO&D7`39n>70~{V09Er8j*nu zg#l&3#THtu1L5G#gqA9bpT+TtiVAH7rIq9ooHQDZIHALJIt*H1fl8mk1uV$_30 z4Dhnsuec>267k46rEOlpbH~2GK&@ca@F3^MNiBhUy^+-VtOH7+_&<%8 zS_kZvei1Je15&xn!y|D`jDlhLUL7c62-&dtvKyWYx6~r>UTc$y&eIu{l7^D;a`W)nFE9m$Y6G)d-UXE7GqoJAR^ zEGEZnA;>5;*B4MYA1_8@yJ74BEb&S#n=Ol+BFT11S{iMHf>KG50;Q54(NS6gNwsmj z+ZWNi9XX}`q%ETC{!kRGvgAej%FMc7LV?gzj7ukon2``@jHbvmm_FyibQCXgl#|qv zoDLnp3on$fzf++Grs0pWVHu-~A$X3#2o6@1Nux!~Nl^yOU~oEVJ)cH$lo7=tMLg0u zFLY8=1=};Sd_Ed*^L)5OADk!|j?SZ#A5Vv47h8~L&w(-=4)5xyyAD9i%v_7v9_;Mh zdcAQaGJI9@q41o#)>2Q^Q&8A@qMpYuC!T9e+4lOr*hcTYZ9tFy`!0B*d8&qD#QKfD z1T{xI^24$!@>$uI5>T+h8<+Xu@ECA^8aTU*jG1x61JFUC&P5ucXUguXuBKb_cCEc> z4?nqbV{=-~F;BDO**nX$x28^6z5Ve)&DxB;3qubaN->Kcvb7ve1noOlhK?_)j=ys1 z%=o`&-VHp?69Vmy=jS9_a2^_+KqdrxwWG4{77vl~V>rkER4&V-A5RN?c# zw^i+JabcWtpk7rGmltczKl)?rHPcT!e-0%$h9gT}`zQbC?1Vw?q&hWy{SmEE`HfBW z)z;gaMz*w>HxElWQ_R+#0^<_zFV>8@*V;NXVP0xdt-3p<*VYF9^cD@S9Jdzi$afTVp0jH=p054s!W?OQ zvSmS1TvJch;|Zt1`Qxf(BR;LMEF9&$eWI4pOv*ksB3l!8)j@oxGMt)9d;yBwM;;xp zjs1^@s6 diff --git a/assets/dolphin/external/L1_Boxing_128x64/frame_3.png b/assets/dolphin/external/L1_Boxing_128x64/frame_3.png index 7004e10c30dad43342b1818440c9917f5b2eefbb..aee654cc8fc9f9ee4585211b4a806ffa9ca68c7a 100644 GIT binary patch delta 547 zcmV+;0^I%X3$O%`7=Hl(0002`twPcO00H+&L_t(|oUPM8XcJ)=$MNrbTwz_bkIc*GhJMayGw3$biKKtAe2JK3O(%7C02BiG@)5)3xPL@B(c4_ z+~aUIxdc=Y-|@$DpZ9s6_g*DLCaGmGv;I>s{A1xpRSNm z-}>{m!W__>8wW8au=jnY^=`%mEHKnUCs4}p)n%pBS*4&r&czV<1mr<&?3dWUSfY;1*VIF@D-27>>RU`FvnB;Q0>eSpYl%^> z8~2GlBwPaRLw`jNM23lBmfLVpj&8V_r^u*=>11pQ_FxC5jIaY!Mz<(|*80lWmEi;_uL0cl zl0NpKB0Z7L>MsL0;D1TDgwmgFURY1gTU~*RUop#V z_+~Y>N|t^$nMZzeyF~0v=5d&_=^EZ-9?_miCq2{0ufQ6XCPvY25g93C7l`AOq0dM) z7^d&#NZhE}O5Mx#FiYB~UpjrnowU&w2|lKc>wUJpmUU~l7FlRv+1hMcHM`!uUC*t(a(AQM z039D07-DG52r~jA0R&CuV=5>LH9{gEl5PJ06J&~n2umF55KLsg-B#oe!sYJX_kG^y z_dLJn>+RZQFBRmK<{=1DP_x8U2iH#cISe`Qf5WiF3zrhj-Kf>eAuY};0C9?P5TG>? zz8Ta3UTj}+29zU6PM73s)Ed1Wn;=Jwd`8EZh{PZoLCPx=FRgK_-NBO`3u{`;MiB9M+!$w!veHaYR;!gDX@aJ4sDZ2PQH@XFQFUI{f(xjE zBE>XGj-nZhd{A!F>=-0F5k(~C^*%HlRVQ-=vqmKN7(p3HA`;1jHmM#*kJVOv z?J+>q0ab2O1Xz;Lyet@|@5zobija+Mxgx>3@U1RcXp4ZTR^zf`@Wv=gqRmQDRz76r za0_b=;jD=Z;=I`maF*pl0!xx+I>cn{JPz-)a&)!X;^rtfOHuCXD$d0^s~8JY#krj> zlFDLhqN>J61(5YELEn>D*Aua}Y6b9`toUTPHQNZaVOf*aupC2a#z>+sczHpJW+d}7 zRhkIe1r%u|5Em+U?`I@|Uk(xc5V#;#4ZW zBT_V4Qh)TmzSZF16CD?)<=i+v4w)E46bd{7o_K~#a|8H{BZ7; z?!8xvb|kn}*Bd@r|E&JOO~1#vsBHJv`KGj|;JmnNpz~a3uYQkV=YV6U&UkSBnbPFS zQGaQzp=xh2m-KoVckXw|?u*iyVp_=?6=lR*Ba^SjJ zI?~;g`gh}{;{3t2bC>U0n~xlxNta&wHoU0s{TwWi+??y7`c9=A{K-B9%e#B!ny&M+ z<>&8DNv+*DpWKw^SupJQGH-ebR=3rE$1(cmx>vss?xjg7a`N>(>)`Fy3~W$0vti?FB}T|ytmz{)9rbt zvFGWcwpoSA)P-rk4Ev^@WYq7DRW#jJs|%W*vkd$D7dFgW>c7=>HX$3(fuZ!OtGlJ` n8&=#P(yLSVrVW)Ll~eMOtxd&vvW3|NI{>M1FLQlb)wJ$Ed`=v~ diff --git a/assets/dolphin/external/L1_Boxing_128x64/frame_4.png b/assets/dolphin/external/L1_Boxing_128x64/frame_4.png index 556cb8948d15edd4308f66442fd5fc8a4a74f038..eef11402bf4677befc20b6dde9880638f33d56c4 100644 GIT binary patch delta 556 zcmV+{0@MA047mi57=Hl(0002`twPcO00IC>L_t(|oUM~TXcJK!$3O45v?Y|gSfN`4q`P;2HT>63&ql4 z{(T*K$z1~K;v2vBeV_Zi@Ao|;+BT78F|_`ZaQaWjuVLZX9e>{9MFk^X+0LNDOAI>H zIhp+XZ^an!$mt7RY>)~)i(1DmsiU8gbWXC&OucE$1aV`GnKH&=DlzRcjtS;9n+GX2 zX)o$E=)n?pu?9tE7EKZKWdZ!{B#k}>j4G>FIR7v>iwDcyRmtzq;ktAuVKf!YF@7E7 zrouTc0JQ{Iy*Umb=O^px_834l?pEhbCSWw5G5ejRDt|r334Bg$C7@aApJjQXnwR#& zJPx0axw!XoVIGXa{75>?^jiVuPm5uumG{zCgmF~xKFGUP3K>^j#M>xit8kK>b|byi zwObzO#acUl@*~oV)5g1PN4vFdxx0^}-8Q;I-C9o>=+eNYr-7~k_$K)k#hLpdvU)+r_3+pqiBT{*df1;IRI&a*Hp+1uOWR@mEfZ-Iks z2B|SW8a2u$45OM%YO=u^wGT%R3{XeW1{(-7DX}JV{HRD9O?nSF^AE?J-F@Hp+2{8> zzvpW=6c;TtOfpS^AjnWyz68Bc-vSTrnsW)T-jr+9Iz|TP`quBzpmz6=i_|S=4wqDp!OeY}A2_*k!>!F2)de zL`5riAfu#8+{JLNqKdHHOrQde_UJ; z)gNFzT>h9laB?6)O$)OaR$X0fuBOb2T80q}!(cdxkt7N<&`3>4MwoF-mgAv~Xh$@U_&<$%YDc^^ zVG;9)5v5WUKuH3#5@3+N`#Xv&0ygXtRRVS4D>y}{l*N!%$T<-3#q5{-EQ1paAF$D= z-C_%%7Ax&Td7Di{EfzW;Sa94%2B?Icd*NLSP3GEYk|y#j1d*4ULvt2a4rQlu=sXvP z6A5f#D5CKpK}`6TfbTIZabGN(tBSm)s9r^>NHjumP|=h~Pzl2%Wyaw-ZeEZ=aY<&p zN~1w@qAFF1{(M!D;gK}6(mg2PHi{0Aei3DGzXi2WgcXF(2T+m{M4s{yB*Bx&7~X$Z z`bIkyNI)3j1RIuS0yHl0G>Y>eqqNl`qCSeUqjtN`XR!%Zf~Ob+0~E1%=iJpv2@z<| z`1a0dfWw{P5<_63R4_Wti+lUP*i9^6?9Bt~@bK`?@0-s;kZ!n;b9tlvml`*0ZpSBc zUBkmYb9Dw=_-dA_lc2$2vck4+AI%lZs+A{^}5-6xj7uzu( zGB$^joI|%ns1*D8?XI^{plioMCx7f7H>W4(e6Pv)#_oa6pP)^AM)TITzaJ=i#rmvq z?K_uSF5GsH|8RkM^RJh#To{CgDzEKtp1W*Et6I<=U7x%?<6>9VY5wuqyL(w<_(9iS zA01EWY&@|te^tq@3CEgFPhHdfoPN+0n`bz_&v^>k>)f04?%^X_CvHb$^4bp5`tCpb z`gh+f_3As;HTSw(ov%+^qt(N7Pu);?Y`G~tMjGlCo?MlZ)>%JehtUL`|X@( z`l)?W8=8VXxnySn@z{Z#w()WrFBP?16e>P8Ffqr!y5v;tdQ$gS!8faq8fUV4VKTHY zHI~$N@aD14mXtmJ$)Pi6h|A+zp6Pi1#oFnyQ`z(P>u;stP_}N``D-&9Z1JCRVO|mU IX-;YVe~?!xZ~y=R diff --git a/assets/dolphin/external/L1_Boxing_128x64/frame_5.png b/assets/dolphin/external/L1_Boxing_128x64/frame_5.png index fd6170340449e3dcfef8acf374f27e539a1ccd24..cf2299b28403dd22e6b5a1a48d4b134cd6f84bc8 100644 GIT binary patch delta 555 zcmV+`0@VGJ47dc47=Hl(0002`twPcO00I9=L_t(|oUN0wYZGx4$3K@`Y==lADCtz9 zV23P*&VbCdiG8 z==LtyETU|Xtr_rN&%Z4-m!#wSzMrbs^wygt%z*E}O@9^M4kN}ce9JVvhnKBB!yx-92)wW6fU%$6S)ICT4H#ED9#g*W`zL#h z0zkt;>OBTzI9@T4_dNz`ygb&nd%ZZY(Grm-kq*n^;~BV6?CD6)Ldnssa$m<$sLm-t zw|hFa;ps%EBnkm=S?SB^Rz~dFp+EFjpo03%WeBj6T z36?SL6eB-QsAO3Rhs?;24=M@X%Yh%Iwun+OPaD}=mO4K<@N~MejJC2Do6D6v^1_QT znoAOXi8IVR9KIG~7@Lrc&81e$qtcycLyREaOT%15F;%7$!7_r8~?D`e*hrDMT(Z-b2R_}002ovPDHLkV1j*c4P5{L literal 1555 zcmaJ=du&rx7(b&M9b@Z;F38xFOE;znxA)QaO$&Y8P8!xyMxz7KaC;wHH`;r-y=7%e zHa0{Fm?1{N#0UoD6@rUo5YxqNfB}r4L9+31aTtLGMi!DGi;DAfTaiD|`#R@*_xpX{ z?|W?x_+QD(nVkaw$n!3ttKixUUq`kIes5;C`QTEdc&e2ZqM$S|G7p@b7~&CcgsI`H zc!t}s?mTY;K(!?ttX8Uhl@u#RbWBP|mxxFZ4S;QNLSoo@UO_^9O*m@T4kx>`NSL#0 zUo-k}pXBCi!%G@venq1{$TrrqR!+Nk5n@YF&_IM&7$gx{8;wy3yLQ|z1@|d2rbWh8 zlzO{%f>gCHfVf4ON6b0`WpNxw%vK%GF=R+DFziBv#7P1p;A2J!Geznt!ir2@TIf*b z1geUzm~;nEc5SVqNEC)OG&JZM^g2is2+ik|@+bV;iChlR%@f(zFGdkFj!C zQo>>sNm*n2E+9IzoV2QWJ4{J!>}&QT3Te|5k9JTX}cEw(Q#ppvf_l55lj}; zY%mF^!DtDgjLF2K27^Ul4LEKh1%2Ai)9`MW)9Jy@CJW&)5`@R?vd{*nOK;Y@EFLF~ z6KSkB8dI1k%cp&Zp>H=ylTN3_1F?qx#8PgVXB1HmisIUIBLr$iMU2&o5<=>AIP#K@ zVZ+gsWPYkj6G79w9A3|J6|xvX#?wrNpF#mQ=`8}u@u(H&45&d*7-9H~fRcKaXY?V0 zBp6aViRYe3-$bWE2@FF@v!N_j!Gg1l1;rVdQH#;QqanTCjGE1%kioYOJ!DJ_ESnc6-c4S0AwTznKxlnh5F4{cZl$8Kt%GU$Qp*x1+?SNHS-FlC09b_NsI zhE~3Ru?5fV{AO%v(^hiu#ND>mQ@aKO2G?LmGTxWNsO0P2`S9+_1Ov&8fw)Z#?mfVP zEeqUvlnF)-Ue8!VH5GyOw&INLQSNYE@jUSR?Nj6rUCAxE?SXysy8Dm!VL$CYn0I*Y z*5XFTuu^z+S!u!D+xGi(--XPqxerH%Zw=fzJ7 zM}Il+@s^68XBCKNu5`UxDvb)2&ipH@FU(a-S!xX!-JZ2l^J8}N%{z;b`_wt9`}KoV z%l2nyOux7e40inb_t8?~^Bt=G&Q`=;v}uQGcW*N3uhg8It)7}QlST$W26Ft7^!(A` zEPHds*;@}k`1(doYh06C*u2m3+fEx&4(JCv&$gDSXPw?#QnqS_^^G0pRmCqXJzL9y zU7OeEk|hQB%inb;dql2dxj(NuPAXmc(dT4dcT6bN0pJa zA602~kKqgNZaTEBeEEl!!MEmI{j6Ud=`3mPWmlbSnh83?%Dqbm=6@>Sx<`A4)dTB5 a)0A8QsKTKW#`a^dO@P0MS z2nOjvg`O&vEaVG#&|Ae^+=ybli6S=dl=>O=q8ATE5wXXL*@%jlfFNj14MwE|Qo2z{ zwI-V#57}flIVgy8oHy_H{_~$Vn&25kLT4=gQ{u;8D}Ie9zJIInD^4__2~Q1kw8BY_ zR!Fa%`17;Ep3#Jl0X=O@`cE+d5&#G5+i*hO03<QIUg#|?Eo8|aA7LH?N#8|XLy<#_|;+kuV^ zxI5{2;tv==8U0pK%LRa}OGUhMFJ!a|(vwIp4QmF7^pY|SdipC%Rw{rACMD_4_t$2))v|PY?DO9o loH$UBPaM*de*D8`{{{$ZK`E{x_W%F@002ovPDHLkV1o41{+$2- literal 1543 zcmaJ>YfKbZ6uv-K6f0_KXthYjfmThKo!35QH*95>!9wFI#YOR1W@qoR1MJQ?JIJoK zc13EXsjcyc+FBwFnrc!XjgQu7WHmm}w5F}C0eloBv`Q^nEm}=ONv`J|IfHB2Id?}hEXylJfLGRv?pE}VrQ7bIh=E`2JPEaARdt^7n ziv2<*EQNw6yzDH@10ZFs?AHr%9ev2JAT$7ZGeU|WRznSQ!%8V&!*3mF z#WBfa!{-~Flv62yKB;Jh3g@nv?Gjg1ixv+);|(k?WJL!2P!q6_za|j0hHUttT`OA0 z#Uzdms%X_Ve27%Jvji)URfw7OG$B$Hg_$jS=n)t<>lMUYjG-8sq|sw0XtR}Jt+WLj zzHsDF^?0qN{LEo@XlKKHnxh>dlQDxq@`YIs?!^}~Qx%-eAEMemV3RtrU2 z1h0uB%m$N}Fc>*EA(%{%Fc>(mXrL$)<7E?eo`o-9c*bt$92{L}py|Q_2ge)i4%W;% zxI#Nm(FtsEAgBoe5hi>~$oDYT{#>lJK!t)Pt1eltNfbhfPuAq1PgXF7)l=9sryxp! zxMX_#l!k)lp(-tho|&rb#|G1Em7YO?GO?VO@j${tc?^VsrHv?j!Amf#2nE(nGqk|q z!+6hA=^Lt4Btc;)2{u;F;^in&;0Q`U8Rd)yNVr+nOqk7Xx4|SDX@RxiB%(;hE9a?7 zN{CQ-#+Of818tr(7Yv||Qc>$1BM%%$Z8xH1ma7oWu~=+J$F?f~BL9YEQWTjp=kMZY7D-gxkbf~V&G(*9ysc}LGy_;sK_D(W7a z@gqAK-rYQY-Ti^0ypCIe`uYvA_WQ@815?|$#SIU;z|U)b`@X*Ohwax7KCtg?Vy7>N z^)IZNG|HbpFZ=xCfnB<#)xpITNk>K*dcpaw=xDI%&*_=X8PT`??RYhu>Egzn+I6UT z=c$|FDdKTD9n5>Zbkje}x_Xm+LA}A>12%=m_MGgEynA|eWBr(nA}$~7++Fs5Rp;p3 zi0{69Ey^e5T>CwgHSQ%4J&9MDrl}FS=H55I3Kw(E+=;F|bAk3ARLTaD(rYTVlq}+R zbgw!)!f1=S?O{0nbiOeoEi)1V4av&6aO-gVh!D*ZA0x( zIn^5*t8TS)?qAumetrtYOzBUKw5{(xdO-T9dE&=&x7~dNE~j_Ri6ns=yC>Y4RJStz P%Lm1Uv-v%aiu(Tm75_Op diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_0.png b/assets/dolphin/external/L1_Cry_128x64/frame_0.png index b2636f005f042f1e3f163c5b349d026338f06f6b..58ceddd8fd8c37b45fd424029ce861a8bdbc0af8 100644 GIT binary patch delta 886 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 Y0`{AMfs!t%$@iz!Wf-*0>4jDQ1IiTYMgRZ+ diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_1.png b/assets/dolphin/external/L1_Cry_128x64/frame_1.png index e73499e9455bf597f1821f3eb835c0fe7745ab19..df0abf137fe426cb4fc5911a8fbf9a6391ffc094 100644 GIT binary patch delta 899 zcmV-}1AP3T4~_?r7=Hl(0002`twPcO00UJ?L_t(|oF&oEPaJg^fbnNuzG-I(!azv0 zieb9t;I9J*jXy9jl5MQF_NJ$DGA2zb#iS5Kc3e$L6A!i*k8tRfR8wP#CG3#230{=M z*tA(GlZLb$y1N5Xc45CWuLu5vC!dGO&;QX>ZxdB$=mmR1 z)}pb|i`Qd`vvWVV^Z;*#(UfBR{NY;gZmuWmd*&C~9E`-7{r8o`6La=$oVt|+DftdF z4U9(_pNm>q)PLRQnr-UM%8Fi)?(BvaS4+vVkD8OsP{J^#)4H9f!zP{$OR~i5Lt!eg zwYfLC7wnq2;ss>iP2&`|xxO}Mn9TK%eI&+pKGxC)qtZtL6dXROzQ>pRN~=*X?x&ii zE8D7e=yzI;=dDcjuv-2~Rr_0LYqGBAb-JccRdv21>wjCWx7`1rn2Wyv1~aOa{Zub+ zR`*-|s`{iVf?2Y;anHdA9HeV^wcP|a6L$ij!xP6Zq>!-O6#(o=!($ZdbZN*kl6lRKyHUB*`e4bCNXy zz?U3Ldw!5{G65hq&SU#W_0w>N6j&eZVqYtFHg5fv-H(g<*Kr*YM=|*`IM#z-EQ#D5 zCkudA!|9Nhf%0ssi_v@8bV@Fk0=Vdl>J+$YpD@W~;H<9C9WhmN%HAsX2?S=BlHaY>YSh-!) zthRADuLruR_rznMiIWopH9$o3gex}8TChY+2m9654nvPOn0gGzyL_^m9BgrL@EXGJ%886|c0HuXCQ=ryC z}f@A%2N}pWp~&lTr*r`0;v@xrKlAakR%2Z76A@RSq)(;PNF!4V-hPW zfcPv$exPptQAaadY;gvrj~jzsJZ>$@$@Y_*ZJeqvNSYJgNsj9h?wuabTQa9A3Rlj#{Ly;U`RPps-Q;#h=XOC_1I^%C6yd%ff z%!#o?M4csyM_w(w7FYFAehpu*xEL{>xMma5u(Yko_noI@drjM>b3K6?IqJC$sgDnnuOIa~o4jBd}iot&=Irn=2;m;m$86^@eb5Hn97w&^p4~ z$?Yrd{kdPYy;Huc=@?It3HU|2p4g)?>I*HOec&HBSTMVGjv;+CD7oP|V`We5y6!R0 zsoNov1dS41wmzc$W=LsC>Gk?ywQ*v9T_PPcj~KosNG*!^DdW)H((W};i)Lp;L`}}S zmjNuTE`TwIVM4s$k4>z$h%R@jk1Le-kyUELEnA=%&Xg7n|D5R%av1J z?}Pt_D7r2chde*Bza!$BqZ$HtUN|sxs1XeL-}Ch(l0W+`jWvHZ|qLKy6ul2QJ{BM&s_7~oU|P72py)c@%BCSb^R4)q5b%tSwJ`6*q%RJzEP6> zI&YTIVb~g(Q&zD2e*3KECDf(Jl)I_1Q9B*O|swPC_qN zUmtKhW$Ev@>WjatOX2_tU6=g}9J`TJj{T&U`%2rNM>3%F8^=WoYk2Q?1zoYD^6*XI ztB=pwJ_){*XI2{ z^ub>hY&p8;m((Rc-KKfVbXr6+*)nwc-O%9|x)n7v19fm;e9( diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_2.png b/assets/dolphin/external/L1_Cry_128x64/frame_2.png index 16005a990f1003ea79408df53bddb8fc1a4f48f3..17b991809aed12baf577468e1a3442860d76186a 100644 GIT binary patch delta 886 zcmV-+1Bv{Z4}k}e7=Hl(0002`twPcO00T%#L_t(|oGsGNYaDeLfbr-1=9^>+A)QLW z9>R8A(wpe^q=&^$Lxmna6mk%1(2JKgp_dI}va?ZXFPb1;Jf)}JG}MDB#Adfpq@G&! zQ0;b|Aq0|QcRMu6&hE~S*F$~&gbxqB%{&M;+DSLAK5TEKTYqAlbS?D+lRGz2DN=1D z-PT^-s%g?~-^v5IKGm$3R-+q&OkUZ$00EHhdg!sihqyWPuT~`o}FgpA078hxPAsW zr4s5(MvwJtwtf=;DLi!#J)F^R8UPbUBBBEG70V_?KGFmjL$qKJKcrvq z0b^wdCw7|1bpS@*le*BSe^?>|U{2_NK<->F3;@8Fk=OfmnQ}v01dzI%H;!GkW#Rt> zzv7vx;eY9H7~+E~-hz+&@o~62hXu&=!>u@rhwTGZReei#n#>S|qs1lwDsX=X-+~8# zLp%NN_I4Zpa##(C5*+Agi`qa-i~C5pKh-m?_ba$pz&z9|y#hane&m z&L8xAZ-SaMeUqNFTnce1Ut*Na&f`EoTFP3V)PGcCT_x`9sRqeWD^%4ZT^GK!M3Xqh z-vL7|c$V?kY_t0cK*Rx`h#7kb4@P()A(L-5C%aYIN3V_17s4SJz$N)L#FNOwJ+mmz zK6C*i<)~sqRxqVMnHK3LBlG^1~(i*6$Y9J-*c*W^xI()Ume@e);O)nd%ZvX%Q M07*qoM6N<$f^XZY{r~^~ literal 1945 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 diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_4.png b/assets/dolphin/external/L1_Cry_128x64/frame_4.png index 3f7dff4db63ab16d65b5524967813afd7320d7c8..4e2e8024029048c3902237c818be210d1334b9f3 100644 GIT binary patch delta 886 zcmV-+1Bv{S4}k}e7=Hl(0002`twPcO00T%#L_t(|oGp$|XdHDIK;L}%VK)+zNdy(F zWts-;L3HiGdI)AxQpho$Ja~v8NI}dR719QiOoQN_biH{?dhw!YdoiIKv(p|V2eAQL z(wc5&8X^k1*-2P3W9HB2p?&AasH##9r)bw_nh&P(#wWo~TX`JFgDT!> z1NYxp=J`k+(tnv$E2_nIJ%}rLTo}ULT?LHWF<-R@D#BU8PMF3JMo+KV!U$NGe9xhg z4=k9-{E_1(>K>8sH{V?BXDj_Rk2PIsEi9eT#ia(#bgJ2?1o4N(!x4=pV`=Z=FzoqX zSeZ{x;ZteqzuR?9b^mu&eX%Y&$bfM-Q98h)D|W^-#(%-@uL5Nx`P}!Q5n9Ov@N6if zp_@1f9miV+bWq%-;y0=+X8`m@vN5-NVaj{0*XeQrM6$By&nk!F0z9Q`f2V1oLEKtZ zRZZR(GZA97vjzZ|euJ@T-01l%u>hzV@L#s7okrOKK#hYM2QH@10LYw>ShdW%U<)jmVPtVfB{ zQjC=zT36xV%#r8XydxdN8OH9eVN-sWZUM)@fqx4geICZZ3pkl3Of0WnLO%w?x(036^~@&eFCph-7`wZ+ z_r1EX4;X<1muw&cRtf155^H?=aL|W5#08Ow8eC`e)5E{!JSd4%%Gkj1i+p&`i$EkX z;cqzMD>53M!KO1P99_Aknra}^HC%&d|CziA9gt1ic{CMbh5$17A48A47cXe$jsO4v M07*qoM6N<$f@fQ-CIA2c literal 1938 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 Po`0iKks_~3She~8EY<;+ diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_6.png b/assets/dolphin/external/L1_Cry_128x64/frame_6.png index 7871674dbb919e67eee73a6335c249c2860c00c5..4bc351b8d54416955e31e94297f4140581276d1d 100644 GIT binary patch delta 898 zcmV-|1AY9O4~++q7=Hl(0002`twPcO00UG>L_t(|oF&h}ZxmG=!13?<_0bMk%d+u6 z43wb~?ZL#}?4g#?EP{y#!_}A);}r@QN(|Y3-I!PsV^=PkXksP)0VGD3P{K|Vh>&Q+ zlT8-dq18Yv-5r;0ceXq8o`-&K-{Xf`JzJc%z3H0E7M~QW4S)40dxe|7p6zRjZ*NxL zi?s~5h9JMwOu?&cX+id{dD$8Gv9y+K&B1E3nEm8Fs;)Tep7%;sS;!&phvmXoVeFoU zkuS|gH--hhe|+gYh1F3(6)GtviU&Mk_Mxas(6qxGQU;T^W13EJqnSN&u5+&Hrd@MW zLWVqct~c&gqJJC3mAEXP`UG?E14+7n2OLO@Bom-=j!455_>#JNRI6?jZM`@3{q4qI z9b9dy{!6oYvA$SLnC{hd$^vz-?NQM8_=b}b2Rz(cf|&TEy9|$6x0}1>l929R8f_Yv1oi0|B7sh1pLFtgO!YmjL>W z_?#x0%_Uk4fFe6y?e!X)rKwxaIhU5$T>Lrfo!jiWu5-?%PSBGr$YVkP5&>^0T$&*c z0K|y$*ME6u4r141r3Ygen=*>>xQ8*uhR@m5wZ`KL~NjEYFW7mnsU+rER!;4vzc z?s>Xu5FTQP0wO6GJd=_eEyJ^jV-lGBgaH%9Kn%ixnczahf1Wj5tu)msS?3l8OUnc9TTPHgn178e|F!2lZi8&51=bUFu(J$De2}Y} zSUK&f1>iR{w%2L)ww;?f?woUOUM{rfa?#!G(6O6%)-*@_^6Ptde@6nb_gk(WwA+5{l^(7w|7tAxH@fq4zKLChMSniD7D%$1YKY$^AoUT3nE(4HjetBX}+1L%lPk=rt!@ptTosQrbfHZXBYHC!}eW~jK zB6(XtYaj1LZwx@l-Lk`Xj09H*0Hr%Q%KgKOJ}gZFh+^a(dQXpda+hzEq-#+?_+Z!n YKc@tvTZHPGs{jB107*qoM6N<$f*zi{$p8QV literal 1946 zcmaJ?dsGv577hg?P_QCrsii`vgG#kdl9>s4L4c4UC2D940db4k$vjBJWMVRyfUSU4 zE4EN-QK6m!TD97Oio0rCJcxQwi}ek4?ZV266|&0XETE#S>_ox#4^QXJ%=JDbZ+;*JEp;*8~Wm{}Yu)pC1 z2v|rZxHv{9(%IFN*^-j)pwjYFjYNJ9At%9vcp%QL;2c;f76;tcl{TlstpuO?Rd93f zwh#oKny@)a@ENI0ogPp#4hoP8V2BWjM1WK-phz4sp)^j+0}v4c3t{e-La>E4hwfK_)3f+a;=n&)nZDJ`ywDM zq=J^wBC$y(flvgMK_XO)Kr(`$AQ5gt5Q3nklvpz1=S6r_BTZH%qnH$vz%ZPwR*4a{ zOopOzBq=5dM${8ntpVr1ihJI8K;@C0|+N5 z@YZ6BjbvQTIo>mRmNG^;EUPI}<6x}7Q;`*x7Z8xpcnmEvp^!)-h9NO2p&%0~l|fQD zMVKhD2$xA=a2!wmLA+;m%I$DT*eAFs#Bv%Ygfdh6y7bu_WX6{mOlyfL`N^VXtlTt7Lu#(87+)(c$I@%0Oh$zx+<+%)~vwY6M_ zeyPP&M)$9~D<>ar7X_(D`U*UMhvxBSjon)~E!%qVt!cbZz)jabo_@WR>H6@i6PH{> z<5+ip|8M;TDc8GR8CkY;|8eX|(dg^Hmi@Q$pS&lpWh}=&fP>Ai7_5t`%x~AMtz8v+87)tMo8XWPkpaS4Vx`9B;tTI!CM1eR=^m1&C_4zGt7VhsoVtLN?NXZ9V{ zzoa#1X=dm(fx44dA9U?*864fVVq5oMXu7<(G^hGnMB6?fh0KGdH%D3%+iwpw`duOP ziESDElH0AB?$X&ksWGidv#W;4D%IwWM_V+ZfqBe%XsqMm)Fno0UF{buJr93q|D`~+ z@sM0elq$cGrZw`hdtt4PsXJHux#qOBHBEjwtHYD_pQ>wvkGqElqqZM;%q!ALxATv0 zRqtHU+LtryjB(wLVP{a;h+j0n&JkMPhycpm=E2%y$~_=^r`RX>{^qQ+<(qr*E{1i6 z%PQ+1>~842*D~qYk=SoH?lTPi%v+u{x2_k^Gs|Arn+wt!c1$mmUx+>Y37s)@YGXZp ze$%=5JJs-4{@-7HKP;|$3iP=2#=n%C5??wwbYy>r`iQ5Os`I@XaL%WsZ;Sfa-k{(s zeW`!(@Yl)a7KI0k57)$`R^BOZYU`^F^^M4+=CrUK2}5gme}V`Ea)0Y;C~<7 z;wh}}%8qQxaIe`Be`Z(p&5tIh-~B`mcfJi3d60+?qddA#SSFBzwZAq^8$we diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_7.png b/assets/dolphin/external/L1_Cry_128x64/frame_7.png index 5865e91e114fe28637c1a8d7e105328f358606cf..f1f78883f53077116fff20eecb270fd3dd445f2b 100644 GIT binary patch delta 908 zcmV;719SYI50(dz7=Hl(0002`twPcO00Uh~L_t(|oGsAbYgTm}!14F_>`R@6t+UvL zg0i!xL0$-L5g}&nC<_dt^d`J&{sYY^!NldBvn-qtwYms{U>02jL0g0^*w}fz${=bW zs4?d`>Y#<&^PG*xo%48pe7dmP*X4_`>O*a0qpHKIWtfHHC4c1OtS#1@lv5Z-jP=y2 z!*qqs$(j!VK~@j-;e4ob?`lJnA1Q+R&AFS|?IO|aN~0Q31SiLWmF%sRU^GnLD?^FO z{RX|~y6H=P?K2AsovS9}E4scsuZh+}k*NG&b+dvPZ^YRI^fRJUySVyxmX@voO>8lR7a!PnI;swnJ@Xi|Yd#2anLL zhgya@v%Hw9=0ll88z06CE^2x*Xp180$nB2T{S+sEAAdL@BAoH^`egs7?i%odBb4XQ zVpZ9aC14lEDG!OUEu7c|a0CV|-e@oiz>d3;IC!O6UthI6fF7}hJhrCd0RW!x(IGus z*W|%mQ&qJ!W)`|{Rm>2>2 zIF-F;YK4QhM9YT*EEZW(=sBI~)_(%k-}thToz|=fSGsjtRj-RjbTMV(8KH;(xKZB- zG=JOHu=9Sds(*`hkymQX-($`lTm_IW2nJAg9EzR;+NA4()th5Y($z8mg4HfYcl%Qt zwhf3Z=6;#2xjuX81EA34&PI}rCM~L}8j@tylg0Lf`75ofs;VKH1!a*`gXAk!RSl)q i%wxS)VtbE2{sS!U-Fz@5CCUH*002ovP6b4+LSTYx<;AT4 literal 1950 zcmaJ?dsGv57M`y7z?CAt8^H|&CD<~VM+TCN2@(lN4um4a!b(*plNk~qnUD-kcqkFs zQc5dIwF*md+lpA$-J+Flt?Pm`vf_~nh3!F*;?`PGURJDow#Z>83U2@Kbk5BD9&^8Y zzx(~}JyV{PxY=j1U@-syKAJdnGC#WbCu-3={(WmvrIsIF;9}Ca6qex}q>Tnt23AiC zHD)rCPNqpier^Y?0DyU=CS4krrcEFy)+{DHHe#pQ%A)~5vC(NIscf1P>gi0AMF~!v zYXOBOgAz;)*CJYLG;K7+71-#Mf5g+g&>GfDi_lR64OfhY<|MFo?H+?D-asbV3$; z(3}S~ZKrG|D`#RYLXSsM&*pJTkSF^j3$s$D-(#+rqXMJ7zoAP~Wj;S8deKu83RLbxGAemDU+h$EZ*=7@t)Kvzr!bCo#R5_at5X3CgE@9G`GbUr)T=KG5E#P)}k$ZKiT-kS-h~Pk#D*MNeQ}`nVA`Wy0xum zH{YRk8nsI2?60lfb9w+-BB_s3wu_NOq3NDUoE?5p1OY) zeoeWvaaG^%;?uN1>%;#Pi6To~Rn7OAuLEex%l{T(V=1|y0bMcpTG7!WFuQ5j_zqlj z=^O9DkRYabg&bSAHtGDKFhAA5o2;o-sikTAhp$ak1^l6G3)~KDprM1Gn{L zddB*w6O6+5_?rBEFIHc+2VZ}+!)yEHs+%EQ$7_Rpt@ENf3v1pftoz%?3L=7){nrgF zQIyph`y$)+ir>GQ5LA|V^SzAeis!Cz_1^>f{O-Td_;`W2r74)q3qK#yzqYQp2u=q= zZcX}wS)+Bg<2#Gt8@c^{r-F+AY1b~P!AFO4w;sE5xTuQlTr=!! zs6Q|jb$>;LyIr?nL*smQCEyPr@6D@mxmQL5_a60pxuaR`4ZQthrJYj0Ia(Ukm6hK0`I@7zB#UCGb;Elz-jv*_y5s&1 zkNdDd7$W#0!F3fmv3K+5Bjtv^uUxv9hYGr8r<^R3OcYcHW!Mduiwtc3$c)jUUmUuhZ zw>q~o(^Vh;NBTTzq%QciW~IA-Qy%D-+}4^mywWuuaHM^6-K)Lbqux=w2mAJor;Lxq zYBnA@yyV2XsG-%p2d=%0S;j_AR{yZ|_`yK)(Hs7c8fw06{E2A|AkGZk{c-;f(4ygV h_q(CBz$3p5;5*&?>Ck?~QqLb#6O*X^>!ys7{{eU+08an_ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_0.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_0.png index 396ec251af3b8daf90ef7cd0a210deb6661e4d79..120855f61b750f24895b007975e5b61e7863b56b 100644 GIT binary patch delta 364 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 X>db2`AP$2n00000NkvXXu0mjfe=7J2 literal 1524 zcmaJ=eQXnD7=On$w((&`FquG{mz%%{yWUr??VYPz*LJKzaf}YC5$N^qy{)Y6mFtal zpfaZjD7aySNC1@(1r-JoU?2;O4Hpp;CuDpRnFs_m105~|f%$e@kv|BRyL;dFd7t0& z{GP8>r8B3E9x;9d0ARGM#8HOUI`kE$C!_z>^aeLt#_3M4K3i4v8c~D5CaZpkxk6$E zEQ6w4yXZK~2OzmV;PL8S_Y6T&Lk2OfV~B+!2n|4fK`bIlRZz$Lup$t);x`W+!LfjB z#piNv${n%8%0S5y4bEON(<3dZl6V;}coEBw3CKVQ>LL~k1;bGxX2l2W3TPh}lQ=e@ zqE}h*K~i3KDP~tSh?xyEAyE{CnRx@0MaIu6qLha*6ho6Vdd&oF78q8bd2HyxkwZ;Z zgfd6*kUMm;;+47{5lFJ8rp8di8dR-Q z0X2-pEsB1%TDRhe>|hk3h}-?pa5y@YE0i@dCPqlwK#`$PJhTDrs9pyDr}0?rsHZjp z$ubyKt2GIgM9E2jQTm?jD6WXu2rp{^R2MPmP^Ib+4C^k36-PG)IUoz>Vmn>LQbyLq z*=X8nx3LzJ!^U$(oZV=5noS8CkHZ=rMjLBmO=hQ!jbkk)j&j;KB<3u3Gsh&bu5eTr z!xBvR4IsZmSni2f!LC73S2d5S1`|zCTB+)4v{H>=3~QjUT(>9%!g0xzc!dT7c0et# z7|O+(8o~xrECe1yfi^0X%s_=;jFgEGMI%Mu*Sh!rF=-vatf1x@=bt!odK%M2v=5tQqh?d)7Y>%E?81H>^U2cQX55;N_hg=3 zy))Z)X=2mZ;Hn2ng>SF8x7^oh-#58rO!rj&_}GqHdtQR2=g$N|SMPxfrF&s-P5!bU zuan0|&Dy(sbwL-5jr(@ZXV3e*;Cx5p{vB7&_1rP1tlhe=;LiJbZM*z^YXF!!G9$a^ zXYlu)>|wx9Yf0cp;XUkfXO{Tt7H8Yd6?~ph)|{R8F4(B0um8SnZ;I=Jn)Z7two0hG ztz=neEnc{+;FYT4*5tcg;F4GVXBt@Fk}PWr-|bB@PWX67 zL6XlaUT+L?AEw;;^Iv-M=(^p{t=`mkpwqv2(bmsXaeGVdi4#{Il-G5h+kXG4*NUAz zZJ+J|ncGi|5~_1s=S>;^QR?)T`8RP_%k<47K)uzUQP)1V@CL};i1)0?{O)AA+3}6e zWo|BMZitzF>h|vYpyQb@f#vqfywu=(v5Tp#!ng$$S(oS7#sIowL58mczxege-keC+ z#LNj>DzmQs@Yh*zY+Hs&O^^+2c2o77rv9b|kPNmRPM&mm;TI=SBLJ6krlYCISN|U&Y$b63 diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_11.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_11.png index e5ee82f701219ba4b592bc559354572cb96198ee..2d98d57ab2f86cfb5a51804196a2bd979708d35e 100644 GIT binary patch delta 710 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 DYC4#k diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_12.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_12.png index f3059dde7389447105b97d75b62613662d28d24c..95d09d14beb7dc18d38f07ef3930e19d25c04f9c 100644 GIT binary patch delta 517 zcmV+g0{Z>O43h+q7=Hl(0002`twPcO00G)bL_t(|oZXVKZWBQehQHan3l^M|Lqy;r zLYIyLkP!_{xN`$7B}x_EAPWj1)UQ55=wR zxTa&e`SzcGW=8}6RpjYETcpx&EEAI~fnB1(((?+$U>D#Fn12E3gAsd9-vC1Z^w%r! z7>u}bO%kt&!BFZT_qjfR5Ht~fEV@Vz>XR%0o|57%0=Ma{Y^8~_*A}P~6X1ZmTI4_- z?uVKJU7hA22+c@)5M-+F;U4h$rS>3H)gFdbr7FAz)G=&`o6k*5*y%Rz+`dIz6$6rK zr+G<-&{owkMt>YPOCX}~hTkXRIMt*A324o2>(=iQa|6_UV0SNv%YKO^v;fnvb*0?k@Yxu%2IUSD zex+bW)nMb4K8+6ao)0k>VF+M8!9ZRRMleVovHvB4KO_ZvnWhv#loR5B?!-v}80)v$ z2#|vPn)sb^JOU&*^=D*iC*i6VGT~e#R!lid3?$d*R|otBwQr<1VQj@ZRicMKFt;H1H4;fM7!(IdF~_?kQi`G^giIon;ZOq)l=%cYg!=+1Q41yzV0e#T z@NhmfVv#Q5N(CJT$qq!}_1kPu4Eq9uxq?}fglNA+DkdaeZzQyS?SPO2{-^Ow?Lc0c zA4qaQfGg!0SQ2MS6b#e%d`A&Q$VT%z?}2rpOH3S7>IFW*YSLlwM$CFxjmlz_W{`xO zR4NQoso7{C)k>3rQe-HMa-&(LjM{h>R-uB)QW%sfvw@6YDYZpumK%%&AI(?8j{#A?9_V)vt9UL}W8?uXaC{!el|-As;pPM`;O6|Oj1&{-G#kx$d=bg?NQDLh zHUZwV1h5vK^P>GJ)_9&lK`M6=tPD7DnVeAKG%Y7^N=Z>T>68Ptf>t>R8iqfBXP-*l zK$k)Z48tE~qhSJ#%eVg@ zZi}!Xer0NU8PZ3KX2cVVj(U?0-`^V^O59qQ z5I(1HXsp9>$Xh%g8PV8Y8fI2+=su^vd3EPM%_C~ZZfko;Yma^U z;yBSY^_gLZZ@Ns{n`aE)PLXs>nire>Zu@cBgwzWc@w&^Zs?hk`X+H1DtsA>yS`V-N z@~s7{CMOq+d_Pfde0zZl(Qoe5>H`l;*B!OvsZ-9lW#4q=Hm#rZSM8NYEkwO2Np+!mOhesFk^YkdEguw=?igCaPV8-b zd`%W6m#x}-y%DQ68+P{~=!~CIg`Yj;iM7 zwS~p*KTJn{sj(%Eo|Qf7`*HfDxNC)Vi8VVKr%hS%TSA4YnN!7VJW+djnmb-UPy1us z$nAS}H?&Pma41r!cf|Ko!`35vW({xHeulkTS$z3X*}>0F7`C=gS)O@db@HOD=>^-i z+*x5QSh!sM>zGrg_9ZH>*t3L#X}a0^q_kr_2XoU;Hm1#RmNZYsPGjL0)Nk~hoQnvS eWwS-)LtaLjgqP~?eC^_4Zy{E*-Bh1ZSn(fjV@>`5 diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_13.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_13.png index 5d1ff45be8dd5e6679795bd041798bedec2d9f5f..c385a5ec45529fe854405d541ced0c0f0359e2b2 100644 GIT binary patch delta 581 zcmV-L0=oT=4blXV7=Hl(0002`twPcO00J3FL_t(|oXwKIYZGA@$3OR8OezL?ijWTd z2@ZDA3>`YO<@di-274Vq&rra)NHY6`?9wSSVeu^^iQ1piFYb46)I z^Pe8ADPBk^fbMiI=!0<}ZxvGt?hbxW0qf&XzHi!4tOxaON@0BLB#5HqYt>LgkFQ5b zMU87vPJGViR1IhD5I6$1A}AiV#2(r0u770uI+D8CfnGI?ArpeVzl8^o1zo)_MN9+3 zWG6A~4S?0Yh=1kfR(8N>wgu#=Fns)0-u4a7GO+7gi=O?gJzgfFAjOeYaVhLXRflZ~ zQXJ3g1qJO_9+@Au2Us;U+M?slnA;f_;4DmZ_!fW`*QKzH-k0prDQy^BfJU25CO|!$`Gf)&EBi}+62M#QU|}-7%g^Y`)R9M3nmwlNehU!6iJtFYY+L$6 Tg<&HF00000NkvXXu0mjf<7yFX literal 1679 zcmaJ>Yfuwc6y78lsR+g=0#eub7(kNUWbkr4ByL<0F_k8Dk z=iGDlNSc0q;GEDo5CjFLY#`FX>;dmOe;)V_`M;+FQwW=EWHT6=%_p4{lw@YIC^*GN z?xNBu(p-?+M#Vu8uf%FFvPNC1%EZ{jq*q7mwmASAg5nb04$_oEv2Yf(%W97oj(vAo z2wTnZ!fkRLs&i;4i*-YxlgcR68%%{cCfqDcOn~FuDqz4yu_Wxa?Y6sA?s(ypT@_e+ z#fT7|QekuAh0~;rx-?kBI4M{umWWI!io!}< zPW?~gmD(;tfrCQQDHoIHG=VFjSNgypeXn=qRRnBQo19i~FXV25G3D7PJDWnp3&Dxl zY&ENtT8%`Fp)yP%Pm)NIHAz^Ef=I&UYPm+HNmeR+HeQ95Yj6TnYoyBLBy0++#?*v_ zkZB|erBtKU`miZ>7faerl+Ujf_?^K@UW-*}oD|72P6Na2_7y>zg<%<&g>k@AOpL-2 zI?`mddnJ+H8=4N7pq$n{lv(R!Z17ZyRn}KfkjQA%ETw3XRE8=8hxB|yT7%ih> zUu(Dh z0a*gB6c=B<%OBq{=eeund8XPE>%Z!^O@e_D@2Fi=GH;3B#ue^mEjhQf&0W`M=)slp za_LUKyT6F>SJIZn14We&M#okdc@LIX{iqN`a|-#ZpfLaYkg%#Lyyc(a?t4vv@MuTP zf&EbMlgtQW;r2S-x_jsJoZ5)89fvpr`(d7kEz-2~M2LA8JFi21HDSl<&sw8}_x9F5@R~`tJ1bkI(nK9rES8XSPz3-z*L~ zg7PoR8}w1J>$-xU!rW(%DtcyFx)qPxFWss#z7=$iBOoiIiC;#pI|XJejRR+=SGM(z z^=!SJ-$h^lm=1(gu2b7ft32b1rm~veiYU)s!)o>FhHJg8@LdG@;bGaVsG+Rv8|$G2 zE#=u)XTvk^cE@#$w}wEKKj#(&v>9tBx{ssF-dNhYdCdgF>HMmuF>+(YqPpG+4z$(J zeCmA}Q$6zT{4?mW?Ac#uHTqfJ4ACt(K;(uR#%y&bk3|<27JYvB+cljN0o}1D(yeYEz5V?}R_h@5Q~kRSZ{Bb98z8ie#vb+2&9t6e0lT{rZc8+jF*TMf_S;Z*SByecoW+LBd^$iq_wXusXl6N3_M z6B#H1<=9qaY;7izdjD3+fOnftDC0YSDh7OCD@vnb{jHlDJGo7;CkOW}1KNk7L#$x{ zO9NH`Hhe;Wb`97*_Gy=ElW919_%1<8BOTq)s{!$_34d6x069b?kkwGC^3zVkG$Il> zi;--|>Nq%PKuu+p2Uu?QF^EW5t;+KSDbAtDXaL)0bQ!RodXbJV79Qb;luK0&ptKv_ zoAef-7}tmn7T2yT`RJi^tQZ}*Iy8r$MSMggl-_Vpz7FPHI2X_IN=;!s0jM_@GME5Z zw}D6p40zJ{`iJt(N`1L$vpdpN#BAXeX?VrykOcgW=H1!Lp9}~%(}8lWdQ&l9A@bTh z18O)I_uim<14{6=F9#zAEaCU$?i}`~fdZWHQ|80xCCEoomxjm^fX-6!gl6a)JR`tL Zz&~1h3VB{;Br5;_002ovPDHLkV1j$>BmV#Z literal 1714 zcmaJ?c~BE)6#pV1hXPe76{xz6g4U8`lg+^f!j*6-Pz<3`>no(LBQ=H2H~k;p8*baWb>LTP9-W*|VMn#v-ecpa8aC<#nm zn16u?1;C+Lt4gEO5)-62rQ>3D9j-;EXV3tIhFkO)o=ebB7LlzbW$gZ@W;Uc%%h=0A ziEyG`PUL9giVQ?bQIZNT%EeJNJ3I^uwMZEQI)cU^i!P5eN-Z+>m|ZEew~KjfXiSC9 zm9fW3r6ndqa>_tJ5-y*E!!QgB9=v&Xc?O!J068jpP2ZpjZ?XxJb10fJ=1_V_fN)`GVIqcW zNxS4-dxgdWRuBel0iljDP&#NV#Zv7nDDZ_ESS=tl9DxuPb1+N@b5JpgauAJ>2o_-y z4U942kK@%ZrEa`S83_}Hev*w87irL79Kkt=8qsiYjZniugE0{&SdE|dNX;Q4%T!?`7+ z-TF`!TkZ8n>hO^N9$rP-@vKd^8^5xR!YxmnDy$=&PQQHH zX#|}szk7NaYf=DnUyJT!>m^gq2SZ+?L z-^xAf_P0Q1E7oSMIIt;1_drN&@ z`IhVec%h5-$a2R+1Ii6GZ|$8Cal)_i#GJN~^AXcFZdTQ?d|9cBpAEmQgjj8T&cNt= zNy<7bUo;!JCt*R3r9JXy->Qp@f`T0-j0*+0U1w+2xYL6r6##w7x z8yz>tzfrfNs8%;T%er&h-3C{qtN+Yia{ZQ!idvThuxRjMPn)zs6Y)48Jj`5@A2K6T z5fStFdi|-tBig#kyFDF$cXpfF487;y*1iVuwxxtefC#P*_OWiO!}dFwVP)Y z3oZqKp+|I}&#!|ChgIF>9S$A!`RV%lYj-Xza`zo2yPWh7&LFWZao&*~0S!K6ZmAzA zI{CfNR;}zTuH-rVu%UW2=jwF7lxH5+&`;0;Z_ULkwUWN!N}a0JbQ2LK9drlvjnm7H zn!|$5m8`gZf7KP&m1XL(GHuoE=FLqT>6*U8Q!l!12d7Mwc%Alf@-DflQ{_6_5 p*P7!{4){{XOEewP3M diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_15.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_15.png index ec11dbd035180df5121aac86b2cb9e92506014c0..d9ef6edbbeced46b0c820736009f1aa8f1e1a3a9 100644 GIT binary patch delta 692 zcmV;l0!#hx4ZsDE7=Hl(0002`twPcO00M_eL_t(|oL!Q^YZPY~#((q9ke!rB#v&LC zVLvbSP!Hl&nhZU8(?bv5vj0F~@lv5+#vas*;D3-Ddl3rFp@)_XRA^2n2T`mg8A6*Z z7PGUZ)!E&dd3u-~)V{ax$NRny-}^jx(sNa+nU(RsG9aS-5P!hnJs>FAq~>;u)^|rG z$~sB_2%u1aN0+$Wkpj@ewctJ|2bS9%8~LJyRJ9#FE;VyK0JN%;Rq05o@&;_{g``5N zMhRdzo&a+II6ykfH8jzK!{JHVj;j) zDEf{C0;mDDV1GbnfF{1A>Y&o62|1wgTS?RXviyZG2g7mz@7vDu>W|IELZF25-#eQT z7-Rs>3$%XeAs9qJkr8_7jd#vP#7i9(05m<2c7_M?{?hdLUUT*O>ptm&i>)t?qcqR4 z9!7~#z)yhd#xSWc0_cGwchLR5XA}scthG7-+8{M*3VYhtg0Ris^&&n_e$U2l};4U5 z1m1wpcm{q>;5*<}0w8H^Lv>fGh-QKL;*i4(2rcp%sHWZ(!27Bl*;oFVq9!c-KM zsn01YUXv*@byMF2_co@^dCqH_icB4w2YBLzEERG4!)IQS-|zR$_w)UJzSm2kbhtWZf%l^6qGUl8YzAt;s2 zV0!J2JEk-l zY$JVi4&&fTLdCX&x%9o;QBaX%qe^C6TwU;N1MSFhlOEP=P($1o5#b_K3X@)}LlG$| zmubafqh5C934z}P9mnSG060A^L zzy^|WO(O{tL%YFODOS1OLP0F05JEyyLWvZS3vpbE2r)T^2~kQ)DrLBWLU1npHazja z)U|afC*i{IwzE+=WE7@!pbjBQpp?)-Nhu+w#AQMyfnqp`N=Xt^LNG@W4tCA|x~N^m zwPtYpW-PeFo53PI+%z%V*c1&s^@JO_PS(+OV{2nsLUzpPhMVpI(Kfxov>uh;|08~4HYjS;NV>u zkU6h%B>cdCpfjNqoZpod1(va=uK+c-KQ69d_-TSfOEZv`F(moYq6JO!B9-#`n3CJA zf->gC`8m~wY)b3BGzvI$2;v<$v2=Uf=8-G%c`JHN{A;WydABTYrS{XIQG2^QOAu^s zx!i&swgA4OD_7P>q#Z4cpTTRIaHlc(a-Zllu>9(r9?hCvrubjFBwpp!EidiLyW3;v zGEv_4kg6veTVvuY+jKRDpl@r2}W$TJCvXZfDShRmNDV_bWA z)3+1@TZ`!E3!RbC=cK*P3(J2lC3Nz0aS?(B0F9 z8K1Acbh&g(%mw4qolDC%t=yMT`RosTc_i@nwmj>mA2u8-NczIn0rYh8Uq3WR+Ns38 zrm#N=oIulsv%;Nsw5Pw+nPLhx&GwYRtD5KY%Ss1tD~awcuUQw_4_Nrg%j&LXUEQPp zJi)pn!^5UNVCPH;a{_(WhvWV#+vb&;@jzYffQ=7VM(plCYR|EQlaD=q5oq`*bJ5~{ zjp->v6UvvxWZyLHFxbYX;iYcvYOreP!XE!H*syDf_i3^7$8~4IDbb?$EH4)U1q$$$31WB06k#c+re0!C#QsIL5G3mzMu8i=&kV diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_16.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_16.png index 720e95f9e0b3efdd30bd0d9bada7ec76ab34518e..d6824382688060103df0428c9e02b89a98097560 100644 GIT binary patch delta 502 zcmVWj2*z)ID@d4#?KZ^43^g$=1}AV8`IL^GhqQjzQ`_Wc-c+$P;Qi>*)RT>tk! zzk}>nZ(*?mWWC(9Xf@Rvn`R>& z&d=Z{?cEtxuYaJX9(NP~_Vwwoh$Bsrba@CcZ(#zApe_LCz!=1)yjFWxrl-1&up9#k z;5W2*{i7+hQBzmC9P-gpK`eMZfSRH;ybpDRXW7FAaN@5BFK&T3vlgz|kHFUg=P*gM z1YDI8E+D^TC12E?Ysk#@D3WNsj4o! zUdS7OYP?y)ad`3tYWUs`duafeJ<29;>Rk8U=Dp-9;H2K}SeZQ9?wAar8$cRfhLKdR sz1$uNyZHbPb7CpI|ITWAB>xNW4*+w3T!$+ZvH$=807*qoM6N<$f=A8nH2?qr literal 1475 zcmaJ>eNYr-7+(+&`3f?quyk7($icnc+r5w7jRTJRh*ORjq$H<;W%s>fNAC98Tet&* z$qN}jDogud%9zQ(97AW68q;VXo5;-6D4l_^24>WP7|hHh9i{hxGyibh+1>YjpM8GM z^LxH_b9vd5$qAVW2!bR#N~{%deHlJQ@eAPlLi{!-Tpm_!RqATlr3QEfAZAgn1*pTr zyFmru#ikd(1NjKDAS6{*sa4KWPLMqsKCGh&dVCO#Ao+zsA1|x}Dq0KNlGlV?`l260 zCDDYf(K|_}&jRYCl4b?0ZZ4}7n%4=eh!qx~`9TgE@Bo!ZgPwY?p9`9>S-TwEhs6Yj z&Z?;EOxPT$DrY%rkrjX%HCkLCNfI@(8X)piE$!lk6(~hgT0#qNBd#@a6wPT_bpFDi zLq&9P6;}JaJ9si-b*k#)2qF*&XaclGR@{V^Wm$rx2#Ug?2JUb2s(cXl`m-VytiUfQ zl24UnFB-PU*UAm534>(kqVV{f&fA8){`p+NtPw%pM`$%9;qin+o7MKK72tmwch&Y+ zHu(Ti0sL}5o+;1`W3iJZ}H(H7IB zjyCAcTCL4urWu3P%<7Bv7M;arG(>FN4QsG4c6+hjZnT-{FqWZMi;(?@@5MUbd(99DB>aAdM$RrD)plC|kt zzxv=v#)h`+xO2yj?*;blr3Kx6e>{Kbcy)dmaz6Ll5r16#?@O4SF?FNPkKY=PO+SXn z%VRSGkA(J#r&9-(5QlDd+s_(`29};nyuYIbIUC=Y`Retfr8S|kUFE|_Z!727Uq85!knoY z*&I9Vem(D0+C%X@9al5bYNp@sS=Ufjwk(_VmVi&h4ok^#+cm@{^bRQV&-1OnkH$FY| zWsI*Yw7;&nBqt^Mo!sXN14DoPn8U5?dBJ{UQN}W|i|Lj2Z{PIQ*72SPP8?kO@1DWS zE7FG-hs-(YXLe CnGm!9 diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_17.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_17.png index 7debe764fd0a0229d825208e2b4437ebc0661934..1a94e80b6199539af683f85c3d3e3ecf338518c6 100644 GIT binary patch delta 496 zcmV)27qVY-n~L#Gd_WK67TD`F`H- z-E&$(+NF*F%-H}jVOD_{N1I@{0ZihlSE}Z!+Q?v|h3ZuO6o&6%XAHm}fYAF0t!DsS04E_&fakzC zTDelaDF^3(wkpDS?7Q=NKKjwPi7AJ~TLJ`l)vr(|{_nH9l0-Zb-A@)uwWXhpC_=u9{)x9-!L5RzeN5D57%v_(_(3*57M(L#3Ui|L+FtLtYr{>C_LyflU~o)C6D{pqX}D`|Z5aoP zgqh8VGwL*h%{bj;Gde%OkT8uH7d0fB&1{b$84f@B7k^A&Jyh0n4K8+`wou{{Wv7fgS(S*gipqo4!CCuy|+ z4Mc?XpaKX|(;F8+A%fU8Dxqq#I#|MrTEs3`I`&v33egBsxHJ|O#Cl+&wP3xXda;31 zXE0Qeyx2-tkPJpSP^TCZmW%gTZmbsxg);m^C6MLn`S~BARs4 z1uh>&`8gl$Dd2sKtH{MUIlsFgWn)4t#keSsk9Yfhw1s6T563$x3g*!5b}-HqHlP}& zpo$>nSF!vivD{O!ET;p()bx<1g;PyXUZ}IS05a}yk_EURI7yr-U>Ka1oxtM~+%hS^@RNAyiPR;#6iQ$i z(G(k2bjgfIq(z*TXc-q}r;IZm!G(Jynh^l)1c32i1f)na~V$a(PL}KQb}`w^e7av>-@Ydw}GC7CoU-(zN59!OOYhqB*{Le>@^CzN^XvsL7YYq))4rYm zPWINsu7kDu;yk73z?RaS-KYBD#sErFFJvy5|heSzIO$ z8$|1V*FvPb*fsL1Y&-80{RJL~)S zJ)yVESCrd%dkccDeR1~m8wVy$`D&oF>b3Y}HO#i2mJXU-gdTgZo$flEptjr)k&D z&z>>&!HkRPxO4dLPG2}{0Ia-wGxzb=mlHcXe@tvIy|(j^dVI>>KOe5nuIm*lows@- z*r$0NApO{-54cuiQ@|J;>M5R;cKG?UIV~;ebCEkklk((8pTw>IWWZm_A1hk7@jtSo B|H}XX diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_18.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_18.png index d3674a02b4d464401e7ef842b8abb289dca43740..54615c61380acfb0fd53e4fbd7ebae5fa5b50963 100644 GIT binary patch delta 444 zcmV;t0Ym=63d#eJ7=Hl(0002`twPcO00EInL_t(|oRyQkj?+LCMvo^376~DGilnF6 zjxs4Jc?8~qa>J8A#WqM#ZUu&haw#I9Kq7)-7YPwd2^)uveJJdV9Sek*#+sx1^WD#L z6WKq3zk~BWIEf&y!KfEu)_irLYNe`eMDmZePh#NzDE$+7(|-fL1Qf=#CO2webL71y z;({soRdd@Dcm_8oKm`cF7m(a<`X#_t^{kUp0^Ep=3BLfYwjP8Pz@QUxzBfQZxCOwp z9WH}tA3zuZkhP>9>{Y8{0>Hd$&?8{d0ovTEMoQ^tJ&iT+^7TR&*)W1N5B10JZ3GwG z)w#>)SV0QUTph(lg5F+AKq3iV+!v8IB1muP_6*V7OYc%!HB>Ya^O?VkHM#d zr8=&QF2xT+b?c^XQUzuYfc36ef-}|Aj`a5cIjgAS4q(>o0^qm$={&a7rPhv}={VL1 z9B{(USWq{`k;Tr_6u5G|;PP5$+N6M4=SKnXkxmV@+BG$?S&wqiOZiC;Y$Iq=ssNa< mzaGhS+uN5(+66_u?7soELPCG#`A2mC0000eN5bB7%zed1U52dZjP8*Mgq8Ad)K?`wQ_^I>)klR0lA%kI+MM$Z=u4qwb$(q z#AVr%B`#B!F&xA{mi1*-d4A7VUvFyIS5)vs0fu2k!8##~)}!dD&C5pb-}2rHp=GD(Z#DO8vKa>k#5|JL z2Jv7Nw8Jn2Quiy@VKs(jA5$W&W^1UP7qzGbq;xEasE*JWR$Y_Of!GO6ybZQ1s++hy zHcsG*+aCWO>~&1&Qnx89=F69i)OS_R*vH++D6%IB+?*b-Kq%^q#7&BSP)=L zG!)%bG!;)-1Z~8_4_=G%PDv`hu7h=`~0jkV`EdS6X|+cj`e$(HLTa+5WGUbBXBO3^LaDapc*rQ zD#DCkCFM7bbv+Qv`wR$7&4_4PSEdP?Iy6&@b!a+nV=OdY5dxy3rX-cA3Z(-UprIUw zQozun_*#m2WfKZkyG%dliU ze*bvx8q;^ZICtnhd48et=loKb3#)3bF6}z*K8>Bd*}Ur~qV52@JYD*NwAlRVAEndZ zU*1tE-&yvYeQe-w{mF@zhfA)MWtWe-H|;qTR2$tl;hb?R&L}R zU-DPHz3tX(MW^m%-CCTQdS-IC>Y>P`5zDmvPs!CQ(aF)pBaeLk;g-NTEmk<(eB!eg zPu<&h(l@`9%vsj#S&i&VKb%`(?+%P#=wJEwyYZR$w%MG5y{4Y*8Jzg`{bczB*7tJO UX!F$J?Ww<7(BB|@;5~TkKMW<;eEt%=_p4?-{W; z0sjmb(_H{bU;F+Oy-Jbh6L10Ro+i*Gm;+B@CF#wRqyTH4WPb{<>Va>7iU%f3euE|e zgHf{tA%NlVt^{oWu6vuMW>1oIrCI4Ccm3m^e*#RXJ0NwTlg`gi^`xvH)ruWxHu_Mi zal?UMj`gLm6`Qj>AQ55-+iq!0l}iTQT3jrB?`%mKQc_3&$PC22!q^R91Ne-+B;qOz zKRpoDNlu43cz+>+aT7XqfGUrb350EGVe#!lOA>uK>*xL4h68t!tntde2ds>7x9kAP z*p(Ns0o-o82=l~higw*n>CHCuoOvJ_H*Cumzz7sjv031H!AKT6FDjquGAP@3N3@*v zeA3?1i)VR0B&lq&lq5$iN=7aZBY<=zDYfKzf6rMt9kOY31M#WeerZtwp?7Vh%b|x%z*%{iUEL~wuH!&*1%pDkE9?T47 zAqs?~#+n)vwOVPbRuio;QsbjFm5S2Zh9Ey|Q)Aj-o5sd8twF^`YQXg_%VK|!-ptIs z_uTWH^PO|gnLY8Qt;IzT79j{y9Ni{1!+8k4TMF~x_gdl0F*ucaQqpU&G_O~701{TM zHh@MAxg9hES?%kd1l0(VKddK`UNY7wD3;-qGdjMMVM8>6RM)0#S?L5G+6LNnGlb24 zHIAXW8p3w6F*0UHK!?7q-vKTCO$nvHQ{h#twg#$l=D%zLXsrP@jjr+bQ`0|N)<|zG(}MG;c$u*XhxuTba`OV zp`&U-vsl0E4(>u&hv(S>LG43f=8Vc4Z-uiN2of6^fLiA zOi@xK%mf2sm}l$Qh(986ft-!iur$<{sJc2%3NuUC2wxvzxu7IPL^dFCIc(H)J=s)1 z&aV#rE@Q)Y#R?Gz$e!gSEUPP51n~~bv)m5LMrp=JqMKu~qMI2>MdpUG0gJ%VcLBBD zu?%!6#e%*H1wnwr5a$fxx7{RanY#>h059^p@aRNB2^?Xj!- zCeHr;O#6@D$H&=&wg zYu@@U0FN_h0IEW<4?vU2SkNuuJKMmEDZ93)TA#jm%cA|RhA}Kxs%*eak18g`;mhWn- z&(kZ>6Hj%VdejVfLk?DL!=d3S(>`$HX5ex+--Rl`q&O4+pDB8%>#Iksx{n-tTbAE! kfmH$<%evlDU2GIp6rPHfrdmX zENF*G2$b&E&qF_kt?1WMX*(_L5M?9l0*;QWm^Bd^!~9!{CXhR!jb~uHrU!_*iPHqG zDFLF@Bhiu>h8C1K9U zTQa&5wXO_C>ASxpM-j0RcUl^{7tj?k0N!Cq!NdVk5DR>2eu4{0EJ(|EBBDVzWx=Y~-55fq|GIaPB{6_rJ(G@a#ATcFKSV?iBtlZD!5 z=4!)s)N+-H9jWO2{5)E|c=l2+hE=ffNHA6W>E_V2N6+C^`-HjqnThn(^pg*N_-Rw+ zdHwSKKkl?dqcf$^`~CEl*YX$k`nwx`2z8%pIpu%m%x}YuZMIZLH$4Bi@8@LI%gyze zd-uVnn-aF+A${P=$9?~-+4|$)k<=yVg6h`p)d#xi1DrKfu+e-&wov!0h_l&kc#kzwTP; z8~x>2<72xjYBO(}e}41%s-u&&o2K7f-*BwWPmUcOy!~Zla(v^ieAh`{X#KY4SM9qK vhc?&m+&_Qh`ui6LCdLjv(YAVOTVDnC-l2+_XWdPwoPSt6+8h}Rwe|l8@=ndx diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_4.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_4.png index ecda8127499047c22c2dc2216fa68a4be335c8b7..909c6106c7bbe37c1f7a871ef014c09f774c92f8 100644 GIT binary patch delta 439 zcmV;o0Z9Jm3dIAE7=Hl(0002`twPcO00E3iL_t(|oaK?RPTNovhQE7bNRUv?z|g75 z&XOl+Gj`++$lisG(P85ix^-ZKfj$6|d4sBoC_^PosY*61S`{0v{dcf^bHgk2jGxYb z&VSBt#A;doGhobQ1(b>2hb_95axKep3aLiWt+o36dVQ)TYB_jaNr?0yq?<7f|_1yVrT>lNvKLi#GJdh?Zu9oLl zx>lX!{dNX=zPMMVES4nQ3O#b5-%5vt`KVtXWDzNjwDD75DTp{@Ht83TeaBLdGp1q& zu%RewcGU)o>3`|Z3=3ZXXW^k>>(I5y6%iai?9TEo%6ve1bnHeGEI-I0+k)}n3W&Js zEg&7yPay^LZ77LE{+5$Os?ie6B{>s>eF-=j;~%sGl$j6DvJHHF<6qc(tgrm7A1d9s zST}V5$}Dz6*8(GurRQqvbHPXsw+yPOrYfKzf6kfnmXnD1!QT(C9&=`o!&g{&-X37?pou#a0fo!+9wGq5KbC(@qXO`K4 zT@YJrv9(3(BZf9MO&Y7gANHZv7F!dfm{e>uY4MSe+E&|QqE+z)vDKZpFq&8HS{Fd0`uaTl=Wdty0<3W27mUPWn1HbGrb(UeF~31c*)r?4V75F|OFDNdZwe8N0b zrFJM*s!9l(D={Z6LBU`QP$CTj1Z||u1OP^gU{O8<6EH%n30MLYK$wb%O)kR4aYR!bWI2LHL zI9O0d)1;!Yxin+>2#s8NUA5O4kH?X?`P}F>oi0Uk@pf-)?3S-LXBf-)dp6#`zvP$n zzNR&2;p@gNVe44let(k#=VM(9C32e~|LlXz#YE1LMm-ytDV=e0k&b)7bD@ z=hXODKb^7tT)BMcKqL3~)^+P{FYCJ88~<)%V9o5+i>;4MdsA~$(sh4HX)90WK7T#& O>vK74_+u4M@Awb%llwP`AAr(TRg8~i^$=m>;RYHM;2`FrpSP&&P{Ps}T{_W)onR4`I z-n@B6EW`4j5yniGh&wMU(fSHocalGK#}rwMPtK*qN`+D#-|duhVx;jx9;jsh*qYRqDUp^Y?%S z15Zd37#HpNg|1abX}|VB&u70?CE)EIn5?-v^B3aP6ZiJUG23=6-FBp^sjnn7*30Q74Ba pg<6*6A6b^1`96#QiZ^95@B;2xT06h~73lx~002ovPDHLkV1m^n(U$-K literal 1390 zcmaJ=eM}o=7{7^gh#Bid!d!^C9fY~C>s@>Ox*G*bua%k=SShp77Vc2S4H6K807y2r*v(W!)_N#uhJgj*_TD>f3aiBuXCCW_@ z_eDT63_u`uwtorBFf40VI2h7G{;ixKM~on?W7H!GLStB2g{}ah6>4}BYz{}A#Es-I zfrmvW@r2b+`xQ5A30EgnSf8i~3W-*M6^V*+yiDhife6$9u1DIUF-~_9^L9D3Pm3u6 zpI6aZox}pEkiQOh%PPd}MiVK}G>zL?BNTzTiIIS?88_2r6JxSU ztY~35il;4tCb>g%5{T?V6cNSmUosqxE#?YkjnaWanT#|QiKIiD*N$lc_&<$hwPV3f z1yTVRlRH!al|(AafKmGH?kKH@*l@LK7}W)|@v_hnflzl&JQU9p^7g+P_6vH1HGGn zBhJ>JiGEP*@7w-qp5Z{?l|oj%^2KXK!zJUQedyPx9{J?$Z@v2GKWZ~Oa*m(5<*J|U zKe!)^J#?8l)?NKsZIj_b;XdeH*LWaOP-^nx_s#LPL|NAw`lSh9@G#uI3Gjc+>c=W`7oPHkKJ_oc$( z-L3bE8+VW8-6KuL^XSRispRatdUtQvzGq&LA6WV3#F`daS~>FX!J98#yIj&$HCtQQ z7jG^;&*^j0AK>uxxh>44Ck19_`?ZSq_x^OMH?c1CUY4FLxc>XebGgq>L(=^88@FZG z%a6aFShfEv`1}rrw%kn33>KumnHtQWn;0L=-?6E?7t6wid$RHmzg0AV PN`U!1HT?0a#$Epb%nSD7 diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_6.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_6.png index 29cadd14eb86d70e7731057ce93d2ead1de6f545..d1e4f0af4918ad9bb105ece349490e00c10ecbce 100644 GIT binary patch delta 458 zcmV;*0X6>h3fKdX7=Hl(0002`twPcO00Ey#L_t(|oaK?RZqrZ{hQE8`HmQVgh7L?k zc9uK=czwZW~EF`H(v-sDoADRIeUd(q|A7cPMPM>tgJeMSW z(7jsg-rvpo`G>%gK>$($lRC7h)u0W>+T_#hqY~u zf^}c@^g+jk)_h1(tW8PvicQH`$ioPr-fFsrf93;C0NL!3UH||907*qoM6N<$g2|EE Apa1{> literal 1397 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 KMNUMnLSTY<#inQg literal 1291 zcmaJ>U1%It6rOF`CZ>sKmBb2?VImr9X6JW*X2_;ab~a{dHeI$`8mQRZow<_?*_|0@ zCfVJ9ajnI+R&32fEr|LQ3AAWM>4OqAM#Me@T7xfEXpxA8hS~%yVuu#J+C4s~{o+Ip_kskjom5Scni6yCPb9 zVv4{kD(+~6sFE5?B=M+eLp8Yz zkV9M5#FX5-;STL0#E9!!B1Pr%d4HbsoAxlp2!cS-EXA@U(jc9p;erBbIPEnHGISJM zw_M#caL*#hm}72)KxC^?Zd{HK=)|w;su=2xGCds4bHRYb zFtMn_g@dvr1bPBdJ{k)JYc{sR@*GQtB_S4yNt}lb2l<#R^$1L`mzH>esbS-W;{rp0 zHNQIYyMdJ-h!vwY1g>ePO*307g5-$ln$C!6;VkE;@s0#gbiU>Vx_I8=LW zGly4FEb3cOV0evIS*VdLPX|c=c$yS~fdP1Vi)&9G?e@(reh|NTd!haAxc2DZYj(pO7e4aq z?JF4m8!Ki$^{uqrTGuXMt4)Q|XBs|hnc0;*T`%uyTGugy0-lB$sd>aq0HPL zH>vICe9s==pKU7cCF{Q4CeOCs*>kmR9%9-0v$4`js-=|OUTVYMK3jV1_3j1i`RO70 zp|?&wUjIGw#XV*zJXG#nncDmCwi}0!zx(r3|15vBWBsq4M{ZmSYUE4LNS7xMV0~Xs zw$7_3CXckPUhX8u$ELLDH;>N0_Tj&6Pu#Ui-_EYRht*;9tgqBD7n|~aPx07*{7KKy GvHt*X#JFMr diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_9.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_9.png index d192f2e344e7c9416b8b6c07fd5e249c99248ab9..77d0198d0b61b6d6089e9e37ed97fc9ade9a18b9 100644 GIT binary patch delta 403 zcmV;E0c`%c3ZVm#7=Hl(0002`twPcO00C%8L_t(|oYj&sPQySDMW2nM1PO@<8VV#R zC@3lE%uzT75=DFixB*w7q>DQ`L`i4UQ6S==NO2U$pJI2`ac;miyL#F`^XKnIqQ7GP z57=byeXw_RxeX$*7$rT?nKsIiE%d2Lo$9ay?PU5Y%>zJBZGS4YlK>8vD@mGq5HnAH z0M0w77cT(g4$Mm6cVsq(`jn*d-fCQP1W@HB$!U6H$M6i0l$*>z3DEHB8>^8deVnE< zZ_GVz66aRK)jW=@XkEKQWnke>gUS^rK5+XG10%C2e`qz6r1fl7xVGX8AW7c5q~!#F z{W~vRh6iw|Mt@67Mv*sWN%{X7n?u@=hhL2cr2((Csl#-Zhm8U|HWb-~&7POc`!YfKzf6rKf&1cT*=LZG%x2Q^}y_r7Lih25Q{tg;lBHN`|DcW3Uv2=j1uRu&p< z)3ouCV$)WljZvd9tu~EK>`Ht@NNLhotTm>sKOixsO^r1gYLx`VcD)NM_6O-?X70Ub z&UemtUh`^4`{s)B+HwrTDx$4Y9IZRh(_B`J-dD=@#?VsZM7o?#Q*{P_4Y8nNCLtcx zK@W^WpbS2L8a85B@lGw#<#ff`MA_6Skk_Fyx`ogf*4UJ>fZPWiJPCU=BS6f4HBR7~ z5+JsEVob~m!(Od*$cCLm?Fo6PPZkuS=~28fBO(JjbO4^w`;C;C2@s2RMYPY0X#!tV zary$p5~;3O2Oc(Ui2Ep(lo^J>eF6m)z$JMV$PeQj!?84rZXe0|M2;6(0bjldZ`qejXBh71dS zHRN|08@w%64BHSmrkya&{z4OU^qP*D>NPE#<0%GzFa~7J$V(dX6sRHCA@M=>Xy0`Nl+M8fsH78 zRKYLvGRZ5vO3JERB?Uk5kbZ?10OZ{e3Vwn{6zP1|+|oq_5o*o+c4aKkVP&wOfu_ku zV{>fHkt7}`#LFUqT<+Yr`;Dm!wYxWY z4>ryPuUNtCp{zbVs!zWQoB#Owm5uwF-n?4b+B|yX-V6KAM8DUbq23ri!Jnren)&g- zt{I|X&-}Ie^VcW8xnAZPtK1{KTy=4iH2(QVu3ysItIia6PlKoE`xcCB_H@am*PCaV z;gX-<`RahP}+0jX|?1gn_jzR>#4VglXT@s?u*Z|H#YxMUDTg@O_LU$ zUB7)kHhLL!2j}Pb59=mhyysZaUv)=&e?7boo4a%OTI`96aIUy=>RRCb@#kibbN^mC z+^=6=`15Sth-<^fB9?HU4Nn-IRYfD^zrXk8p=$c%<2zi~hJ&vCo!L2<|CvQ2?b0Wq H?w$VuqvX<8 diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_0.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_0.png index 8b8dc80bce09adfd26988d9021687d77b536961a..ed6f4a71f529bb5376546faa292e965a98103f33 100644 GIT binary patch delta 641 zcmV-{0)G9V3XTPk7=Hl(0002`twPcO00LD>L_t(|oQ0G>XcJK!$3ORS>Q$>buwVzJ zZxIVF9Saq5qDb8`2s+so9CUN6Am(U=Iyfkf4pl+uAkx7>2YZ*Qt2h=S%?VbDw8^!E zCT%Y7=WuBZvEXldeE9O-_xJB1rXby+uspg$f$jxvFK~K+-G2+{1?s;FD?KH>3iVgv z10CT(ceJA|JV@bq0G~TRHUPK>tw$+{0r=#5QUeqwO0}BAO7AdG)R3os(g#HnLioeS zL9Tg#)Sm_dIca1|jk1V>VHgU_lhp+d=Rv^=awcfzYxZ~R1}KOj;~IyEy~&RCyY+_+ z{eE)*6u$w;zJGF(aK{G4$K|4in(NjV%RVTkyxg+Kj^&)^P3rV=cv`$c=gLxf+5;Pg zN5w>Bo<0B7&LwT7eRl3axDPCZ)?;bKr034&V-U5Zd z9>7oP#6Akk=j)eol+3)z`wE+cLSkLP<5gQ;r1@zbSh56TMF3~w)pfTb_sdf1P zAgf1AC4FUgOOk@rXsEG**g)kdfJ$cX?4;I5(~>biv!+q78^!6+UD~+%1jSaCMFf;8 zT^||8rg|SD5)ZtompTEFtckPLKujX b{&(>QyJ8ilcY#he00000NkvXXu0mjf(U>ZP delta 1305 zcmV+!1?KvW1)vI$7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000EiNkl! z9vlzwsRa1aLAChG-i`h5a7r0cT|980rK&1 zwUXT*8Mph`eZ4FU5kOPybzQGec!l*&!|Zn*r2HqzmnMLv{I|h6?0VfJbH>BT@zy!6 zB0(w#_=@roRDT7t_J=5!J!cQYIe-N=i;=^aWi_Zb@X+30|CW2JpR?xl5GKGA){n}! z#<32Nnb1l(QrT_pF*}K-zYxL(gIr94O7|=k=DBPy?pN6s8D<$7Ed;cToq-;~yg7TG z3$?Od#lUpgJrb~uj79)0o-t%r^ums`oSuyKTC23)0e_=P*5qUfq7i{j0%{VtvJz+y zSi7zvsyq}-#b|keyw1e5DqtnhgV!umljV7W$QmNnZ+WJ64kp<`Ng$f=>^j*s;BHHBNA zp&c8UCx3e%3)fAW%}T^Zk}6H!j4|zajo4c5peZiW+s}FkCa8S?ZK2tPdnIN28S9Yb zyq3~sGf0lJO3o4G&jz&$nBBHqgsB1A)pbsbgy z%ULXj1E8YXa=p zY-;=SnaZN)1+x8uEa>k9GO(lKOBr8RHU!Kp5r+uC%=$IgCa?8cwb6XQgSIausnhOn z|84K_);+tDcr*k=mF8u`J0w*edhs9iFig)oOaR3CGA&-DsWMaHy{?`d(`$ff*00I2 zuz#Xbpm+c;OCH&T){D1#=d*k1mc{l$q2{VbyjYJ^8PJ{uFu{uF3^_fQ-J(YTMEOz% zQXw$Nuw5C*ssOU_)siLMy#|I=BFgW1nhdrg0BR*su&R_E2`mMn*6-y*^>ZnYLAq_e z9lT3x)Pj6A;ML?>cMny5&&^x&jbIB8uz$PqE0A2kt9UF$T7S2e@68j%7JUG#irA49 zo(Dk2MLK}(|0B;O5IjPF+2z^_Wb1e|$LW=}%p71T0luL43h(giUM&*HaaNze>U+qs zqa>J~1lGh!F8IyJR4H};+I8(bv^lH}WOhvzQ#?R6ji0(HW0@!Yx9U81g%q$=^zSSF$`?kUa zI!87fq(cDW);u80w&u;qV*;_vXo%2&?kO7%D362dLQ(Xp0gu5MYi5*7Ps&H<$dG{g zn?VQ=m!Cbzrz(sUZ6}w_ z!jpTNF*m&mU|AX4`VVx_e>rre@}rpD6nZ1hFNgj(w)*AJsP!NBKaPJIRT8Lu=szce P00000NkvXXu0mjfpPO-3 diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_1.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_1.png index 956de6170702e0c83ae51952e3083152f555c3e2..f2dba5e872aef3e103459098666b5ef1327b137d 100644 GIT binary patch delta 645 zcmV;00($+H3X%no7=Hl(0002`twPcO00LP_L_t(|oQ0IZOH@%5#((enMklG}VFZ$C zPY5xRh&Hv5oWg}m|9}wNxoei~-m}`Zap@{&UywnRL^)3*C&gP%-PZ;d&x3Tk5PCYLQqMx=on&AzI0^9f z{*7b|Z0NltfM0!=w*s(hRti2oNpEKA-df=DHQT`0Mt(0WQ@hWT3op+`&L4oJL^f+oCNn z6f=axS$-fj@?!|YVdObwfGc>{= delta 1295 zcmV+q1@QWk1(phs7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000EYNklH{hiny+;0j4>40RJH- zx$nDO*M*qsU@;&BXzh^Tt$-1rwL^k80!o0^4hh}{H~|jcg?}joI9}jAI3D2Rm_~r( z1>S)_PYduSP(oK5U&y&iav(Z^<^n(3C9Ldgr!zS@z#v9L+)m1G?GT`ZED3f~ertyS zWkgA^qw-q=B!SZA=|=kj?YQ}aq6g@Tr9b`pm*9DUoef~v14x_tn&M}opCu<3nn*(g zctZJ+`74LR=YP+JE^U0)`l;fj`}y}(Olt%o-CmSj+Bi!N?LfQyE8TZwEsYqXNE2YS z^&{rCWR4to^suE|AgUzG(j{3@AHx}BLUh6$hf!Yd^L;ww9Qh)ia9RdtNBY{SQ9WB3O>lZ_I$|pE9 z5=7yZi*y}p4sVQy5&>qhR;Pp5(1+8tK<@80z}-eb|BgKrditR z=6{I>P6DfrkHmlJb2LOm0r3D{&l;f+UP_@lj?uNFeS6IV(0;&Z?l1%J5P(nw;y_j; zh1{k0wJfC~5=VZm;sv(r1MFJ*NoAh|YYg`Sk-ch)rAn`Ok*)dwvs~f~Qh6lM6qnhb zme_fgpV{v=1enlPuPS_Z8Ib>scBhKlF0dIgzwvxn*b zMU1()aEK@ZtWE+wR9!WnBhxar@JI-Fx?V@ZO49geD=+Y%RUDD|Ei5I#FDag4w3OrF zM1$4n+M*F;A>)d7Ede7K^#qzSrFid!fDtlGA;3tFzmG*VfhrG3qKLG9`FJYRh<_#X zv#suL==E?985W|;Kh4eV6n4CdCsN;|O2IS%ke1~Mn|-dZo1#0c=K~#*a-$E?DkK;V z0h*A}g}tX`)_qw#=>?);!iw+G7;Bvj%8j7Tx(qx)M-{bN!H9=368f2Pi_Wx=qhq0e zGspvf92%LAAI5}&(*5W#kpw3!2&HP)JgVkN<6tPOuX9C5%i z8%ZZ$_!mp7fP?+8)$8HMn%Cp}<D%PDHLk FV1hL+T($rJ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_10.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_10.png index 93fdaa076741a409d4afa32fcb97e52783210847..bd6291f994b32a665a60df60dbe13c29efb940ec 100644 GIT binary patch delta 665 zcmV;K0%rZR3Z(^*7=Hl(0002`twPcO00L}DL_t(|oOP2;YZFlvhM&2eHq#&&3qsJ^ zrXZpqC~n+{8KnzxA^in4?pz4%QV{7Vf(sWdxN#%)2MBJ&4-hk`pn_ukq7_>@#iAl= zQne;EnR#8@X`3LP)#2fs_nvd#dmWJ&TEc*1vqj2bseh@TlC)ml5j4{ld`tZ5 zDrgG>6l_|E{#%i=X)gSyBA#dg4{?IpBDkyI%;DU`R2B>@ct9Nb^Hbjjz<>glJpC$w zb_E!Spt{n#jVPGi?PDN>h~=e;(&(M8Lb^+)TEjy@=O_l9g(rI+abRG$>O`QVzF*@X z9_#tXM)BHX8GrZ#^uj>4S)AI7fy7SMeRTRv$!po=+0~KcBpC4QzQ6MamqTz#1_J(PVGSV8ttySA0&vj~*b~b)z1pV1Ka-3WHkQ}=#?c5%b0UlbH$6Rx>3X+N{s$U5Q+0rj0 zDJcqQ_Km#@t=WlBf28wE=bq&4DNQ?j{oCdo>%f`psV=AQW5%x6IqV&=6{jpXbjjV0 z0pjZ@1b>G1<*ml2I?ACEnIVG#4n!AHJL$$CCwdTjUaA`)1&PSi6ptO(bX+!YqQN~N zi6dN`l0Eqbqp%JF*3 z>W5lu!J|po4(jb1u_}pLH5{t#8jc@n9sC8kUJ^H5W22Fe00000NkvXXu0mjf(}+EK delta 1325 zcmV+|1=9MZ1+)r~7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000E$NkluIu{u@9c9`%1W)H%LDwI;AJG3m#A9?J;uRWGo!^^b9?fNcTG#m=6=A;AB@)*ESL zQC=Y1C%|i{?jwAj0NjSojkl0MvQUrpTIP!MA0(6#fQo@|kvp}At(K&%8U7AGKV`iZ zIe2~4TC4W5jDG;!VyYExNhC9t#*ug>aq(PpeoTalb(Iic)#g~M2yPs;VN%TYwt2bh z9zt^C;qT#?ED6$O;BLy-WKbIke;}~?jd%x5u@>cX@~Cxs(Vhf$xKBxzwh@^uy82n7 zvM>oUiD8NWmRMS`S)MH065AuCofH~0@1U)llId9+tbbU%Xz>7WA>G|SE}mC=9L?IW zGN>_dotza@kj7v+ULuvZf}echfs5r;vhimwfrJ@52Bjd$Yr#B4GN$Nrx19yNvF}f{ zWwEkhb`F8P!@S0M2&njZ&ALVpKHmwn0*5uMXsUCl#IU(I0V3?Lu#fxrL<~Loj57hOLDCJ0FF$R2IlqvT3N%nMry2tU5LZQ zZD{dYBS@=Gyv?9WxCs#Lcv)mX?3zSEg<}#}?!kCc`C~Lx0dO;{SuZE2s-&wX6He~5 zQf*h|kI_^GaEy;WU}fB^+GLIdR&dIf@+nG&Hh)IL`D$1KR0(K-r2N$tL+eYSUG3N% zFe?Bm5u~h`3X72tKvf9dW)Z|`1Sz0A85iC(Prx;kIPzExD3eS49090Stn_&$ETtjk zEjSCNK3hYC6+iRE5RYQ3ss|`fvTBKh@cJB2MIed?MMzF5QxhRV0r1 zT7QN-TM_^#SX{it?N-HcWP*gqkYJk}!0O_0tGTMzV1cFSV}(cg zToOu=!2A47(@9wUIH_=*O{lz*pf zW;ZM+gmc`4Rq@P8@wb)m4V#hjTPGBqOw;g*y@%m!bGIpwB}PKA%IJ?wB|@A zo;_J9Sd@u-`IX&FPtQPGL(6{{A%7`2vKgKSj)ol1S|C=2la9GtzZe1$ZS-_x*jab{ z6guYK{y6xc7b*cFO$m5!XOdVs*H@tuAd|?gQoa{oCv diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_11.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_11.png index a4e194825e119a0b5b363a40ac793e3aa39aa511..e4a6d1639dcac25a86ff537e56dd863c50d89d94 100644 GIT binary patch delta 611 zcmV-p0-XKK3Gf7v7=Hl(0002`twPcO00K8jL_t(|oQ0D=Xj4%X#(%l*)dt$=LlDwI z^1u!q3hmYol|=l9Q#*-ccR_ShQ1b?ND}t+~I4B5K5TqjJp$ogOV8?*KGS`G{((eVPS9@OW+V9x|N9<{I@nh`KG?k~Aq00x}vPJe)&;*Ikp1|B{vCI{!gP3?bWEA&4t*ER!ONPvgKcH?pL?*0f}`orON zGXP0a&1SS*T|Lp3VnrFBl@}YMdvBQmTFXZ-1i3h+S+ZF@|GYZ!x)`Sv0a6!_Oe#%6 zpi^hxZinB~zqZ!=VFSDiy)@A0e7#x50Jm8Rz*{&x2Y<1t{c;Xchqi*TOEHLK^V)K5 zaAhN|5@DeaacwYetO;Oly=Q0FF6E zZ32*8ZyfV6z!U(9`5$V8xX5TTo?4>WN@7R^)MIdZY~T?{72Q)SFPnL`=KPd_G-aY3 z%ri8a!d!r>ycgGTg1*22O8)kJ6fQDiat0Uc;(=|KaW#vgcGcE1CDkQWB&3rit3s*c x)K{`?6>9&0fz*GyZD0V~vF`?wM6h==e*p?oOB;acD?I=J002ovPDHLkV1kpi4_W{K delta 1220 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 JPDHLkV1iH=4g~-J diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_13.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_13.png index a745cdb03f1a04bc1638c7f76415ea14c0e5d35c..ef2875aefc3e8e6290f9203a93faf8c16d853055 100644 GIT binary patch delta 578 zcmV-I0=@l!3C{$O7=Hl(0002`twPcO00I_CL_t(|oQ2anZxcZjhT(T78*Btb3lbs? z@=8#o3!(`HU?Xu!gX9`S2ptuqr1SI?`~>_DFcMM_6kedAK~5s1AaSu>B}5pTn_^q* z`6zZx98-A8XU?3NIdcZ-u|@~d);{n=>@zY97{%Dn>n?h+(3a`9?XyiQtE*IiJQlk_MjNe225H7(TF(p?yR=>xny5xKj7 z)NiY*oL)9d-+y)`15*JZu<<=?`=d|!wNd=U5CUM@W}ojXp|RDKJrH#`{{2$5Z? zmckT@0P~wG?o0x`2)HP1u$@3HP5Y!9;RAYb9{Q&- zc$Q8A#j~>k2JTQnpk*>egMnEZ#A#a{#DK3-&>iNr22l1#7^0}coGBQ5oKFC5(7@L+ ziU(V+lRK-cBdIANU8p-%>my(NV}77&dk6-O>~&!Bwuf*dU1=ao4FCSjUtG^K^IPN9 Qx&QzG07*qoM6N<$f=Sf^r~m)} delta 1143 zcmV--1c>|31b_*U7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000CsNklpsEKOU3AFd^LTDDyF&;vc_G`x3b&y;vV2KlUAe;cB=C2e!cU|Ve zk5&-Q4=rRxcaRnXtQLOu7~hH%7mx)`dn6%eY9BXu^;jsJ09mGA@~u)ZnuW2t$yGu< z1k5DSGy(deu*Hpsk(CBQ-->;HIB5Ftft8$C<}l6~Z3WU|0Ic(8S^Nt2Yhm37bbs1CV<}~}b^Am- z9gGef%+%TOBH{z8k;7>!cE3a#t(Hfg?R_*%KtF8w;OqEW5{UHBtk-RLkp5^`wk9&zqR|7uqjxh`-+<1aa1MHicE{)wMdlkE#1V3K=Bv?c!e3QU7XP1b=dXN zYiu5A{+T_NC%_3+J}TX#(npCD9H?(5!5V}XB?&;KT{|#a&#HA6Q6Gh5#pM zdL%UdU;2Il^_c}*37{1^)_8*VW)jF+(bIzKB7d&JG6Ha|QZ1yzT4gyR2w@dIr~RI_ zq!YlKs*Ib28(rxtq=U8!LMwb~ym2lM3DOA=p(W#3T>7J_$44Q{ExJ3Xag$tiWn?N8@|=np>AfNL--^n`63L`V`B# zEPtg??KoLm#MX+rCC-#vz};Im2-IS>!?qikP%x{&nQ3c735#{g27wYH8XCL76>wk; zV+3?36u2Pw*g}v-@F$UCHrS(tiTQiU1(fdvX#DbN=HF6`iO^)O0y=|bg`n2X(&$V` zjUP>ZAC(Ha9}kysh0Z@W&|&F-VnO6A34dG!kQQpiN#Ee4>7pj}LK z3dprsBN5Sz!QgHBSguX^pFtLkrYize|KJUEAh9ft8heHWtF&Ju1XvA>TAP&w(i)~MfN)gF z!zQ$reYr6(%vu}^qM9&O=AO<1xT+S0C;?Cfl2wA(8DnJ3?G6IR;zI}YKQjW#NUh$I z4OkFX3WmPv8@haNKxi)jrXaJhX#Y+9dJvDZsI~s1V6e_vR15d=c?_pyUgB&Kf(S2tsqp~WYmT3(iWkDA4x%MErdjEaaw2Y z>tZG}jTF!7@Nmw1KJK|lk2PpW>-&HsVwV9kU>E|Oay1ksRarFT%3wL*fZVFtp3X33_OjTh79Ju0RYX`MvFbq7OV^q*i^gZ-pj! zJG%!2PM~E48EE69V5(8~Gf)LMyE<#nrC=unE=wzHq@bC}K8-?LKy%k#gOB`fTIEgX zje|i!w*r#Ny7{H7PG^(Pt3s0O`|EJDv+2BC0!fNx>wo$^z2Pj*$OVXV7R+R9o^Rm- zM0sH3?w#b>=@fh@0W7Z^yFHp}Tu@w>4f5Q$Cj%s}04UQr;bDOF2*8;?-rG()y_l_N zWa{T6208r`y7JIHgTV>trJ#C#+{3_q77(aLzG^TqPMbJ8t3w!YRrjL4ZeRcve)v8L z7nm>=gGY;X@xUf+T-8vVtlM6(rJkfU3F%VHs?i$w>L1IA8r?oHa3o~F42)q1?%hCv c7z%yx7tdHhg0WVg8~^|S07*qoM6N<$f}wpB^Z)<= delta 1153 zcmV-{1b+M51d0ie7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000C$NklJTLyc{VyfP^~=?5+=tkt}LU=2#IdA;7m_bX0`Uoi@X=BjDR|0k1usoDXnvfDo)C z=;nNYLx3=}BN6`KyD{XH@YhPj!7;jgmn!6 z00ji73jI=YB_*RfqcWj(6X0GHwYZT4Rc&CLTv4B|0)MyrBhJI$t%xFK0?Z7;pL2`O z&geUY*4x>*D#&pB_*pj01eh6QFw0#&md`jM~}MHCfJ|CAQi3;=CFrU~~qT+;Sq+NFHtu{PPNw zzZ#Y~R(}UVQ6$hD37V+!gjR4K33I?&-f>amX`yHh!KrQGv`~{$r*{_HUx+| zGkbS&PQ%wx*GoTB^GNf1Y-~?}r&T@;W>wFue3VGRVOCvfauEtG2|zjhsRYogXGqs* zjsUGQBe_Hy0_?EUGod;Er3XxApIPuI0klr18h=mtyOjj;NV*zuZRAy0MgXo?u7z~7 zRz;2sLRg*8?f%GG$_WrHRYoJRp(~FH=|)=}p>_Ujym77w36?w-?giy=uKeN1mK|oR zjs-ji0AEc+ZEceTV$1{){5Sr03YkvQ?mUSgUP8|1_Y$(D6r8bJs}d{R+~FETvvp~l z#D57znVrbgw}UfakwUfORGCPvl{%KVP;LSD-L^@f7M5Mq36xW)sKAA3OG63IGk(@G z36zl0(0Cf0fP*!R5%@TnflG3?6@oO5--#67WN+q7>b#eZfcCur&AGf=__v5L89SL% zKs{I{1Oe=|qbngbel+!cRw)>MJzTtkAWaI!XVW)y`QCukUH~pZys+&4Q~Je_t^-7!QR&cg4E&E@R?mE) TTIo+I00000NkvXXu0mjf=DZHX diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_15.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_15.png index 2f50fb8c94926ecfcae5a58014f61be647119b4f..1bb46d54a1b9454e1f6e5bf9ae91acc2b967cd7e 100644 GIT binary patch delta 606 zcmV-k0-^o63F`!q7=Hl(0002`twPcO00J^eL_t(|oNbdmYZOrwhM&1R$!=6|2?#+X zJEDb^Q5zd^SFo^>{DQc4DFjp6$X>EX_Ur3rWaJ^=OP=ZPu<;LVT6yEw_Z8*gN$a>GU3ap2lx|11VbU!V|} zzBJ)-d`nOjH7QRU3~(iSl%JC^4DzCdw35H65sPFqQQlM9x}~+WZQyo~_du3L_-Z0` z_tfs}DOZ-XDH-tB3Gq1&OuCKDQ8bnM%Cyl_ZicRh3NOh}YA`I(XZ6%h2apF07*qoM6N<$f`jQD0{{R3 delta 1201 zcmV;i1Wx&DY>d5ICPmJ*1bdkZZka>ZHcm_ z^+bRw0>SGu`+%Q~Aa95TfSVCr{liiA=z0davT;`6p?G-B8}0;vi_b3oW(9eizwab~ z-!1DJrH*h;Zz~WM1H7s3Z_VdD-V}=T`w*uWpv358kALp*Qa%;Wcw1I?0z@))NAwPr zfrC0ttb^SGHwXTlfoTGCfkwjN^6#54B7w#wXspJL6xAF9P`(LY=Y)ECITr?Z8k3Cg z9qrAo`h=MP9u+T*pw)xORbR{z0nfvYA>AXvJqv&=U+IQ<=D-nT;*>U;TXXU$YbiC^ zR)`Ri1%FWa?<`ZZ%E&8Ya>^T-fB5(KGlx-zpdliKurzQ-At(YPIW)?W?%}L}lr>Oe z&Fpz-9l-nKzJX938vm~$-fHl83PB1)kq^d7yU6{xcLH%uUiuz^nHoO^RKDeYYK+;n zJjMc86w9@RXCW!eY9+MyQ*uD1uUM$^1i&@;et!)|!P!NWoiT~kdT=O702m36lsl@! zbKkST^$I$yR-!+H3GY=oEE5B0O*}3&d(|2=z#G4!2#+eF$6B^pfYC{ps$Mg5ba;?M z3OxIql$l;#gO~5`NV5Q=g;s9(aF9-)l-g+&$CZjb>jB{eSZ!ETE&fm^AN~oiOK}Va zj(=(TGn)A)M7T(H_AQP9S;qTPFGu_cqUtvbRGC?3lL_x>ff|~b^j96VNK2n#Y1v z0&tPNx9^XvpW`{a$EEg0JCEhwv_ep8y4I#NhBTIDytiV;6)gYraLuBmF-G@TDrH(k zoYrcvl3*zfq?$KcNQ;{tJ43-*v+Us}X3|YGzoL%W!)iz^j3CkPFur zLOe)tPJb>+{YuzTWXP^9vzInR^ia3n7} P00000NkvXXu0mjft|Kj* diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_16.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_16.png index fc7b76696c1140ed9f17af4fcccc840e8a07b32b..76ebd1f395f76afb16239f9ec4fa1f830bad86a8 100644 GIT binary patch delta 567 zcmV-70?7S_3B&}D7=Hl(0002`twPcO00Ik1L_t(|oQ0FWYg17a$3O4p6`!_+Cn(fG z^2QE=Zg#LX;Ez>DHyz#V=wu$^AE3CnHG`vIH!TRc>Y##{R*Do9@`6JeL=&}=G<~^W zhnL1@I^>KWKKGo%x#u9QC?818|9~e_pIjI)i~;Weh{piq27jfAMl{g~CmIt$BNzjU z$3Qav#2!dm0$>m|0FXr0Z5>z$P?O6_j7F3CV2Y$FEG4s$q&v4piS8g*K< z33RrHMu1LMb7kGdm_i72hB>+q*L;?NGYeF}Ff)IsKh(7jNd2~|D(X#hWw$07D1=17 z&P>JK%zx#_?|;c3yAML3)m?A<`4LXV!IytC6_}EJK3a~12=9@WN5)k^@%0T#_yD^W zp!n(D`}>(u12``&YYrdK?Mtr!*kA_(ytd&SM1fY*1Owb*Ee3-Z0Z5YDybQCg7FVui zAeAfYM{Ao8-(&z%90Z3`@90ccwg)hE_lW5aJKX~CUVkuHT*z`PC@srv-YUPV$p;26 z0eE6J-Uh1%X!ZbD+Ug#UFu*wgyvi|kEj}{(l}*X(?FAUTm`(;RoSuFRQbP~4SC%V2 z{aR?rz#Iu_2`Zd8HH!gXEE-*=njx~|q*YXPQ;#r%md z(j8wycpg8I#_s!W_kI5rLUBH!0_c>}6$Q?w zBEZL4B7lkl=TZ^i<17&Y&@as@DH$zr+-TfPaW`M)M#i&ze<0$7kdZX*mE^ z6I&htp0^t*ljml?bp~U{XN|!X@z=qq;b67ShR@dgA=DydY}Q(?ja>`ciyYVb(=a7t zl1V)q?0{N3qOhFopEGluvj45xAyXq8t}FcI^qg zS^!x~kbhMK-0vReM=r0AX$8+daP+K#PVl_ZWz>XdFL@eXCRRCJ2k72YQ zi><#JTPLDjPAoRGW3WsB+$M<@Df`XbdDQN4XnzNvS`M`5N#AKn7r<vDO;9Zio3t+ZN*ag?o8wH|G93{po2pco6=(Y(!3OJ#AT@QUF~h1P&)6+%1hw{@8Lb7@{@TRO685R@MqArD zfwOh&SK-!iZQb8LV|JHq2F-3@K%N@@C4aE+Ol9&NtW(H!Jp1uh5rn=JNjpm7Z6YzWovrlJc)Xb#|s2+EUw^=bYy}T%BB@cx2m2!9yPp!na65P;8gBLGQt zNm5t8CCLB*03OL;4KL~p6)m>^)ny~+j$tE(*6`?y=`n~?csy7{x>t3(YRe6#`SjCV zxZidu1nMg(_z-XGcanWn6%?c!)9x9ps>;WC=}EnJTXekU(&xcoi;xL`6J@Oc`msD? z3d&1gw6`o74u4K$e*wH1i|lH>*|%5WaC6&xu>z8m$bVM!^TC!^ot6)fWGtA;#5~`@ z2k2yhk=wVr&rUjccMf26?a0khSL3{rifokS+8r67y97Xi=CJ?+Y<2*=`J?S!H|d3R zMI%$+Co#xtq;UD6e+q*a(RNTeJ04)*E(-`$CR;KX7^gu}bV&y=;HwgJdUYcMDEBQ4 zQM|x}DM%W8tWN;8+rU>DCEZQi&ezqJv>_o~tXtLUeZTtqLRYm`4-6cN=?ep6SmJ)j dkwC5oe*k)PH_BvgkLCaX002ovPDHLkV1k@N799Wp delta 1152 zcmV-`1b_S71c?cd7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000C#NklV=(?^yA{^8QlmIsl3HCt>0f-I>c0n2eh<^?Vc0eit4(cPF0LKc{ z#<2h|2c!-#!fge1uMf1AEV>uuSP?8Cz_*|kRD{r#lwp|*__kPJc0ZMbPjq5{5WFO) zCVZkpfH15is3?4*Lx9)ggJ=i;4c5^FK73V8h(g;}-Vr4IuDTYW(6a*7_Z=d@z1g>GyjIq&Qu39sO)1zyvL_C> zwQhWk-11elgee3-Z_;XEr0c33dL@K|Kz_JS2|s&`**U7a$Mhf&32mOyL1&rYHptZq zVHM3kQSlhS6I^LkxZRQYyu~yDcm}YV-BR7*2`$sKKYwyQ{IeNW#7zLLN z_U;35tJo^nn)+xMDn+btJ6TV&d)J_ZF9o*fvpA224bTdM2X&S%D0d6m9Q^ePq(2&l z9IFDMdVeIaxCD#Uc%oKtZV8)!H@(xW#?ytO(uJTXGA%~bB1yvcw388m;x+_`3Nxce zAqkCN*Smi7x;M{g{+T_NC&1HHJ`1F*M@k<@q|hK`SC&|$hmr*73H_-6aJHT?y2j!H ztip`M5@iUmgQg>4@&BV6Or-Zbc$5HEq4ye3{C~5V1ez)7TA;O&S78|ev|hOtqr+Nd zIS_>K3SZOy$Xe0~5KUFuP4bPdbQPn6_6ou(d}+LPt_TUz34qX&b}TLZ(a452vsrF| z&q1VT6Vbhv2?9B!f(ZZ4f8PUANLI}o5oDH-()_c8ELjRhXlqtr#hW`?gGgGJMMzqq z2!Gj$ggzaNfTt8{9Vcsxy|wn-l4i<1&^}u>2(-eZMU~JKO3x~2X4=zG;`6lcl?(z$ zKr}R-hE~AgHH;SAok-Av+-(a%7QydCirHXK5@yfek6b|cUVz0f?`Hlz#TbMpYZcHL zEGq;N?WNI~7&U$@`8_HXgghRu;Rs!SaDU{6rvusxB4&UhHK4t+2WYOL{np zmmZ4&BqCTBgH8dp7Aq2nW=s#!rjO^^l>ZszL2J4YkopI2fVV11l=xtX1tXT;Idc0I z8Sf2nm!`8y!4~0Wq=MR*8BHPUKBMz{$I(jAErv0`OhDpUoHX_f307&pMF_kah!~JlcO!zZl?kfT%Ds1$x}T|M&%}e{-0N S10<6G0000|e06G89%+B(#{UiQ#wf53Ee=+(b$2#7c<8qf;WugK8Jv?i`BQeQ#$>j8kpC zoOABkox3LDyx1dGKGG=E_E5Y)hE2yTFtwAj)R zT&7J+AWJR%g9&7ScZtGO%oN@Ml8Y7i)N(Wjeo$jzsZ;Qm;${w-NFu3{Bs~e=bZ*&9 zGxC2-2@Oh4V#SWm`YDqz<*tgSy!NBs5;`td=e=btN#0*17JHTU*olF4QI6TgeQ)zF z^phmXPY%aX=znxSJBvd7kNRr_&bNVZ>17Tu+1t2?6uaek6oJOxtOL%>0%+epe_>`$ z>VA-0|DoGt8Gt{2wsxJ*R}0Ga+d-)AB}vU`^)jk%R$UcgY!|w^9|zo7`h hJ&2BjrUtMgfCt85*oVV{@{Rxi002ovPDHLkV1l;D%_{%^ delta 817 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 etD^G3ckve)%{@wWD3>h&0000HX1Cz(J9^jXw zlmOQYjA7-TT@P>=R##Ln0S>~Ba{48}A=q`7@^@B%6tCz)dLD2uiq6Co0VKt~@0+f0 zBq{nb!FC$RFab2>X9Ja~wL6^{yS?L34se?Ct7S+s`&ZQ%t1z7dXvk)^CCgJl)?E5H zR92TgGRAJ}e}A3<0_?DUYrNK)x`|oyk`&KTmF!lBwp0(Ws`AGzQ2KoaJjL_1W|P2@ zg^&_K8Ugx5R+oRPT&TAB65*;&J)XzOKpFvPEc`mWFvp)!%SXHbmBp34Ixk2K0Y6ds z*&&9?=RZfspnXO|LfI)G3oETb@?z-th!@b5Py3@DAb*QUAp-Do@6IDkg=O~d)$6i6 zB^pAs=h09C5kOP8dJ2&Ci}thRXdz1TDBfHk0w8P~l|k_n za)^!$C8GT__m7Yus%PWGc!f54Bd*+1?578RT))0WkZeC-^sx?$1T8NSq z7doQVl>FUyAjSzFhfe?jSw4+NO8_$DFx5QS0wh0D*7ZKN`Ih5 zo8G6twz7JOM5A*U4gnewtjSoLa6q+SQlusqs#S8|CSdn-^ecFF$<+#Q!Iv2$$|V;}Lskt?kKLdN#b4ZOwlje{&8UTf(jIRz#xQF zZ=hE?h=06_c@&7%AkjDib`KQ^b!1{60tvwAf&xjPKzqpBB95aSF*{DMtOMK*08Fgv zO2?sqr|1_Q$EJvurJswvuMO9qcY%&DH5G`prP(twZalucH5qf1~*j}cYSgUS|h|KC@wwW*p0qo=1?Xq=%Q}idAz_%YnfD$#Dt(%dt6=2BkYpp>l z=2f8L`z@ezUjsnokEIo`M<6^A0Vv@q;5Rx~o&?z9Kz{+>s3*&3BS40d3CYUM;H@z? z2Xco^1-SzHvYU&8yl377Yk@$X%nazqa#vCR9LM{Zy$^ULSybq21%mO~0&ws}KQS@v zI-c{Y9~elFRutyF5PhFc?vbPx?b}c^MiTg$Ur`F2Nc$<|$HlCyz0E&sh-|+r&nZsq z+K6q31zZ9zWk$g|=(rtffDvuP6lEfK`P+j&kglgFw3mHJ#JNzMHBUZNrxn2`z<9p0#99povGk1P67p~L|`!C)2C#7V>0jU50002ovPDHLkV1k~uA=dx^ delta 1214 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 delta 1681 zcmV;C25$N329*tv7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000I@Nkl}~)=lMN-&Y4*T!%hAc zZ|NCY)*X9)!6^M;oKXHQ{5OCmzO(Yj7~{2sjgB1I_1*DPcz=5`%{hBdz_`9^fWlPbTZuX`k-CDV;gzpAY?A^Z?wNwUIK6%twzBe+?+U zoZkA`17Dk&>&ZjULXuOXDW22wJWu6NBq7k_7h!`+unZ%5$oxPlUF{sab(TC5{fzNj za#;M|*&9gV9e-X`>6P0<=V@ysw`tvYjeZ1{AzORU!hyzLQ#_?-;azdVoPotCt8`0w z{2Aq`9f0<`bjWm0L~)i;M3qnB?NQ=wJ&*8*c>pRD7qFuA=;1{@i6mdU z2{^{rdVjs+wkejf>1WQbm4&qaQxt6>;*Gi<>xJ+D>(J@pOE-UwC=Vb(y5;mcDhD?f zG!XQyuq!39S!}HWq)l`@KxU&}%$MZb)JjY#G_RTk!~;m1ph8l?PAFfJ$2uG> ze00$@sLcB689{OY%9zjPLLqYiG!QOTqZvVWpMTdpfR^E}XOaoHuC-8vSV?|y_AHYhsxHs^Gr*63G0d5%17`>!SN=PI7ubxx; z&jfntB#<{f0F_}k_&&3H_Cl_O_ab1y6NECA=2i~!w(`4(%3i&>sPlPegtVS%nSWJ4 zzJIxs@mP{$2eh+^o*CkDyfSVk3ThCD_>EKmy4JU#?HwsYm)2_$vBoiaO^vDt;4&a_ z+6bhI2Z<`(_ipB$Y`E**q!?N8NZl}?RYg{ltRi2j45R{9Gk-5Xs5WtS;dWAq@B&tY zZ5cykpAZk=A$#EHPTGx1LTij^$#UoROMl-*&+tzf*y+GY%xEI033EazpH@!Zs%A7m zJb)DfI?p|1%cYY>pz%YO%N$uckQ_h~BC?*hkF}Pvl}kiug^E-m^Nk4(E)<9`uZ zFY!m^63{9ja~NajhNFc8F9e`!^$4gTMZ8a^t%gYiguYSc!O; z-FZmFLv5`BD6|@welOj8K40SPxo<9qmuy9iiSzdMN1yFde)jT0a)4df6#^<{X~Y1n zWHG`&18={n5P(Fb1Vr-ftVbDprGKKZ=0|fSz9zz}odaZ&pllAXqYBXYAU$0sBz3{} z&-dba^7g+Js+CoiuLzMyy?mnEREwZPJN)MXP*_UcQU08SX84w&?lyvo zmxTOV!Sq%m6+!7C+oY15XahoAqU_qrS-j}Ns@tNsn!5Q8xTipd04itoR)0pS5^4N2 zv^{{N@Q#bGCUuA#jG%G5v8A1#_IHdxNs6-c zc2xmrAmoV{zK1A(NDeT@--+N_dr~QgoTEYqY493$dboF|Y2meKBTb&$ji6oSS=AFD zmCeJr6xQEe1ymEZY;NIY-GBUds|?fLAJBw0TUBs=UBg7>HeN1gz6Bu*Mm1zbK@4qz$%MiO@mh!rLHvLnn@R bc>Mw~?X|K diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_23.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_23.png index 9d368900c94f1a6dd069d22c2a5f79cc5ce0d497..55d2e56952010bdee33d18994b7554ed3a3722d7 100644 GIT binary patch delta 862 zcmV-k1EKto4e17u7=Hl(0002`twPcO00S^dL_t(|oK=)fXdHDI#()2JCdpcs>>fO9 zlay?OEvN{I9|t8L1J?9nP$(k`QU??Sr56v1rY8R+h>I769z2M4P!F)cTfO{uV;o9dKkXW$Nn47pLG zdz;3$&oTGlwcFP}zu@{(SnU|et)G4Jaed(B1K>{tziK}2f3ZHQE4@vndTQyl^r6f- z^ZSS{Uu~*H;eY;1C*l_thZ!YtEUxbi1>XHf>R(L4FCMs2W2oo1=X3YejvpuV!1bLY ze;y7d&YlMKXkq-u&@+|Ii-(Vu`Z{!JU(QsWE4@W${QUSzpK$HdiW@b~JzQ=)J(!2> zj_ISgzB9D&tYa1jz~#ae5{21h6mq~qDim>j=cS{*gMXGG*QN;m#M>utPi)UG*Ed)1 ze6p$H2d({21#mAU4N@cu@0>glnpkj)cpJFYn}7eX6@UR&N$!&wyWnZ879`%tVnn^n zngEQYd_^r{lO9iZm=WS3QTZEBEa0J*1c6zb0btI%97KGkyj|isqz?gtEiibznZqIx z@67^JWq;V-?Z;%>Dzz`kvRifw@oCN+3%%qq%i59$0-rI+<+Lj{-HDfj>Z!MMCI5k= z^(@w_iz?7q>j*>R&9e_St@y-kNSv7&dwn;>yZL@#|9bWN@&@cdBEW=U*LUX7W#-;R zV8elg#5}PAqn`K-7p4PC%qt-bBak>I452;y5r3p*iJ*JOQb8F+pn?XrX-yUah|e21 zVd$o8+YGlTa1fUSOeMw&5>c}nSRkWi1%Z+^VMvL0AO`Wd1SH0ivkgo|L`T~iSc;4S zcw~9g-1-{M)NA@juYN3M-L_zCwUaV{CqfMqT%-&vW)$7FSuWjJZ@bjtMp^?Kqs0lYZFIRQz%Wh#K_)$JHKUI3Ti=6ZT;MwS8Y*H%_yL{{$ZnERW)TyHFcq$ oItf5QYmyZNUcdVe#@Z(L4|w8cZb4~~aR2}S07*qoM6N<$f+#DQxBvhE delta 1676 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 delta 1686 zcmV;H25I^12AU0!7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000I|Nkl3?)(i|Ci@HROq;_ZIIp-0A?@=zo#HuIu_SZW((1{Lc|E zyyqsNPmS#QX&7mo`I0pCD}pso($wQ!ojbaBo*DkpOX4*S_5j*I-dIFG;*ZepWCN@J zIGJ4#p57kF3@Yaw$pBWwdt>ui;ja~z(8_o9?$X<_?|P5r{>t~?^!Qr)|Ago%86xu| zZ$$p2JrPmE%0%lPU<$g5E>;g< zWfMytITjhao3c;A3qHLs6R z=>a^iTQzUivupfnEoSxuQ;tdZ$!KQ)1hP+v=E%8!N(MljYKP;YpxpyRV>;3!8nd7H z?Z&UjY|YO&hTLn^sXkFU)=y8NYzaV=xWfrLWx!gC(9yc-hB;a%=U3(atQcvbDyT*S zyMHb}4UulB-rZi~gD_gnK}$de+W4pgb)Dw7I$b#fpo^HN0F+^Sg4DH5KDWPWOanaupbeA@#WIn=(4S;h6y@Q~jD_RhmqkO6kan$&)23 zqcwjz!sNBWM-uX$6+xx|)e_J#nAbp_c7Fn^qhA@PlEytpfE{2rDn~&k-#Z#Qt+SP~ znOUxV42&*;5auh~VT9<6eG2Hg{w`;wWB}wCSy{J2_6WPv5v-JNMZI3LQx3$bC_O+V zOhm`K{?&>^y#!*^sQy|;VLHeYP8|^_8Nl0M^e7{*e_1l1b52CzN*=uil?%x-D}PXW zfK}>4)?2AsZ&0+h3QJZm6J=4o0JG%Ul}RY~01Q~on#>AF8QCSvYV$pZneuxtj}9Xf zqViLEfG2!$v*Y4O8YD|Ub26&z8*8tRoC2y~lmIK0qVuy(jn;l|O$MH9S^ktBfCbGn zdkR3KG<$4Cu6C^+X2pN!{-UMv=zre{)Eo1(<5sk3mQzGWR)kkqe=kU_3owsgy9e;P zRpflV+JqCQ08|!ajdgnQz;gcR{saN_+rX&9ML*NyCr$y~I&Ae7)rPtPBnZ4Y@b3e7 zU>sc-IDO;hZD=KHGUdtAe#||91sPdU3Fy+T8U!g{nPBRoQV!p9Vf0)bH=(2x2i~8)?@?kfg~(lnG8nza>w^yWImkAwnbme>*Hkl8TKDA1~7=CnCZ>IEm$!8@8lRv_9g{l+mavbv>04)I#QBBt^cK!ET|@PAJ}_bt2e`30X+?Z!CN zsF;@MhVOkoQ(hRIeAO0B@V!}l(x0y9o~w;NX*y zNOI5I7{6{>GBk);2rfKQO-{U*+Boxbvhjt0Zk6_@O&dyS8yN$jzT>cQw*POknHM3g zW0sa}C{I6}h<}H>3Dx@nHqK6+tY?qE{9rdW^uGJ-nj8X>0KmrC^dQbwF9Bq`jepLB za;WftoFC_HoP9Nnw^uI$3|$=?dhW!d-ZP+%a=VF*v(?|p<^kBF$FZSzaI)&{B70Is z;)rMCsN~=tP{xMdD>p-r1aeY9;%M>6v1kO$2dD!H8-Gk6X-EP-NswXVZ1wg>?j;Y< zQ(HUO*4l^D{e}sy5)AH*b@xis5on^HK>dC}1JPjFnFdFJuOUTTx)^A}I)%9dRV1zx zh@(I%)|V#`Sat;f-FGo#NXTL!U>sL$jU5DN^a1!HN6%to?~FGG{Xh@eKLLSvhLKXL zx6kKj-+xKSp!r%9P`cW)P#|!TI@h{;lS=-_{3sIBV65RNB|W>HfIzlB5=B5Izra=? zA;}O@pl7=U2n1{IH{4%kDtTZ=kr*&hRO$u&5y#L8YkpY?79(`!(%PnfZhNkS zr=4$Z38bEhB25a3pk9?2#vxTq*+LCkD<$3Z&wmZHQ!Z&|>t6|Z122klIDHmuS>OPc zG=rm65pfZR|j~i+GVz;xft0u<=TB?spxT>pql?SXshN_R0}GoZk*4iR8_mosdg=Nx?T!U l(JN9^1YZCDUCa$l`9J3qb3S_$O;i8?002ovPDHLkV1hJfm;nF) delta 1653 zcmV-*28#LS2Ko$;7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000IoNklz}(XAUPSbv1U{d?!>{YgO#3od zn;%`bOW&gF@wA?C+Wc9SpDa3ixA2CowTKYt!iavz={JsIN$pjqu* z!qSw@4Z-78<8yfw%NU+$2-3)3>x<~!T2Q-7L1-tXLq9W@UzR|YGOe-J{^effe!Z)@ z_so9f^Tp$JU3Ae<4xlMNG7m*xj<@Dm>uKR>=gs8!4qx6JZ@d?7r7nnw-s?g1t`U^u zBm**e>f9srcYl0vSVD@zN(gt}W0!kaJW5`p`?Yv_|7PWTir3c2z~U*oR>qTRw6ySP z?bqX}YH?c=Id+$#^)Ar!fy8893zuBAeFM>7t_i2s}@* z^KcQKUKu4=1U$EkQhtX1gd!%<$vwJzeW6YuXG&vq+J6I7kQKVO&S|4td$;xw=Q)myc@S7?E?m;bR33p}x z?YDuP0gFlL&ZdmuCqq+SR^}BM9jO9Ncz{Jm<{KxC<}^JGSr5?80f@wJn6PU-lMJGA zfGAEYB}?zl&;{`TD;bm5dZrnHb?)!e#ph(~#}kZhx5K>vgJ?JLCcJ0A2`)KJWAjvaqu99iJL) zD+ce-^#B&XTH@~U1jzw3CL;4?lSX#NjA1>so2-|iqoa)3;=V8!_^o}hf98Xpxopky~%1#oD}m)~nAUyj#kdqUS- zX*Iq^P{{$Rm5kR1IGO`YVJZY zMG!dz)|eO3*Mv;FBe4XI7RaeK@`5GMQ+*SQpX}Og4?sj;PBqeK_QF}a3dsRDQKZY8t^%US90ZG>Q>WkJ$3i;? z;Fiu$>_ny?;lp}%XGil+NF$IxzcYPwiCv2}k|j?zf)Glt#$SZ%M}-fs@^Sw#B%*+7 z!WK0y{@HsMAb-B|eTH`GvVS<0JGk!xq8V+5*%O&K3e)lTB&@^G3IRm^FGqHiE!W%$ z6HOnXyvdTb0*#+=2=Eq_i)-J>@foHw-!I%<{$aXpe`z>xT}b2N6$)1JM_@_Vgy9F|2D2mn8PXsrEX4fF<(7=Hl(0002`twPcO00TQoL_t(|oHde7Xk1kohM)7@V>?NvGviMn zwbhyUlael^sVk8-w?(m1ifzLMK}rWiT!<*T5UM68!J-Rkwl0bpK|yk@ih?MLxmAR2 z0#z5b%wPu_D23SGq-k>|bLW08g75ByXZ5@<6e;Z~)=Dx241a+D{a;hPJ?#L%0xvZ9 zUWsfP9lU)*1}<<^iBu!^VCh!tXTz_K82R zQ82c%5&-JxmjX8SV^2DNaMK?JY!pniqF}S$bYNpYIe&ck`DcN&LI@Jo8GgEs1JB=h zh>mb_@kn={Hs92^`LD`+V>0a2C4nN1UW!aRLQQ%A`XO~h!x?AlCWNpHZH%5-86LUt z>e6t_77Et~?~%AhD2_wqe1j|@FynGqMa)vl01`173S=a+w#^0t)H?t!eFrTdF{fvM zz9~Im6MsP9?OsF4bH2);<0PUxeWDTaQ#iH-$r1RN8W+=oD|g=w`;nMB19i7CnylFM z1O)u*U5$o0voPCjaVM0BqzCQ3zL}Lmnu9=ip8=4U` zb7J+|bwx~0YFwb5eHFa270s_{mq1lh_6%tzMz&YoLdRIjdK4$9X1{kAR5Qw|Ib~FD z&HAdUYRb53YN441ZGf_#m%J?S3jb%kXA1uTpA~VXn2)jp00000NkvXXu0mjfA)=sm delta 1712 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 diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_28.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_28.png index 54a889d8151209f012e5b42e1da564793606c3a7..02b31050b11c23dfaf93475ee86c66b80e7d7c7b 100644 GIT binary patch delta 854 zcmV-c1F8I$4dDim7=Hl(0002`twPcO00SsVL_t(|oHdh8XdGo6#((dB-h7x&clRQ$ zZ7^dI56wa9NvxV7iil}zK&B{daSz_S6fYu$^i9MMa%qo^LOVqZvSZA_iw8ARk5VCe zu_i^QSZGD4Q(KyMcW3ACA^IF2cs}6afsjWC;rdn%Z4lrX(0@Mh?APodq$0$&er-UT zrs;}~^n=g$pZ#HC@~Exfg)m47DaNk)z_lB%*sjQAS9C4n^!?F2Q=>NXt*3H7aVr)- zviN%AoJ~YeJCXTCbJFPSd(LKl_jKl4^X^&^vHmGGk;X|UO#otbNOtkN>Fi=&Lk?yE zo5+zemt6)Rs()f^=3knN{QejJ>y1qUe`!MkP`5*5e)Ux5_ZS9AKiCmKL_kpa5vuj7JR8QwhAmKV@?)%GEc;faQT`gqR=-n+G+cDGI(3M@-MGFM*6pX5y&y8@1t z`@^-gE4%l|e&zGY-}g0|asVxUGEPMFbY)z#CUDFFc4IsFT8-D%m9jtL0gzFRf$ZHw zU*p3%mAFn6R(~kjoq8>7tj2rxjr*O?WUJ^ms1FRG+?{a)+4&cEZg7zY_mr4ax>H|oi zo0rUJNq-u{1I+a@c(T_(Id-Dd37pJg#*bj-0GcuE{f#= zBz{XyfQF#Kn{(|zsRCxEkJo%BH^R&TehaMq?PM;0&U%A#72v@s4=`zA&T%5?>!RZ| z{H%^B9$;=BulY`6^t1;!mHAh*cnuLFh=Sq)B7Y%3GOFDf9!RT5*w8}TPei#2@L)ATJ*U>6q7e?k7mhn9~fzwPuPXcE#mDw~)`G~GHz2PxJf2CB7X2uBKk{RnR8P6c= z0gwjM6lW?S*__orDD3}>)|_`PSmo{l7CA^PE|ov*575|stL4%)xg-r@w;3+D$ZNN z;WKT2cNlNQlTkdtF3x%0S9%3e$T>SBuw1HT+zby;QE0T+LCFC$COq@C28~<;-&-fK z!t0!C)$5r~W`&O^EN^`@2Z*{<1gqmW*V>J-c+kc~ld7x-KpNQ+TpnHz&y*a1-G5Tm z`Vgx;qN7oiMYid+qP=PZSNWw@0nvnN*X4?afG1QB5f2avmEOHY4>2VNh*S$!oUh^u z${!=fM>XUzWY<~+NLWdVe6F2*9Iw&##CEw(r?F&Y(Lvw4J|zd}LRSdLX4|XZz3;O0 zqwwnP-9gx+2rT;;blI4D*)_T%e1EX^yfXMmTezG9c-x>>t?Dh?PE`StmZz@Xbvw1O zEM#PgD0={{iDO|hJTFi7yE8^cBM8^acqg1wZKg%&RzkJ=?*Uktf?^AX!7C%@S(Ua? zULrKJ`)~PsfR56xI|MKjUaOhaiL57h&&jL1hq$~Lr51V$W(dIKuA|z~!hb;&Q5jl? zVRcB#Ie@0{ii^*l=%~w-#@eZ%(`9s2ev}*lPd;8*;3>6eSJppuIbVDdzz4gyIJrCzTRCDR*}{PXK!~nv6b?K00F8qV+U+p4bTT zz{__OY{T4zgXI@PJPODrY=2(kl0UCL3&7v4+#!?rWemLfd4osx3@rNq-VH_=>~g(# zxbv>^k*)C6nxzmh#`=#YD+0nbcS7;fXPo{Hbmt_pN|SWlAz-zzBw#(m@e#%&&nH&p zBeQtlmzJD21MYb7IK{ml- zw86b#7{P0d*nb;WffkRg=a^)6ewwD?i9HM%X0+!Sn(lueAWHz5#?K78a5@B3=w|bx zXv<#C{Z0xmvKF*c9aVZq-~SX&8cqhtA1w!1DgKTm?k=4CaET$;vH|QAe@C14C!*Rp c%+mS?=i_@% diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_29.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_29.png index ba79b3b88ffe58a083b74dd13bfa3133aa7c23b3..c00255748bb8e9c5d6970f62341eb1c4d6061b9b 100644 GIT binary patch delta 842 zcmV-Q1GW6x4AlmZ7=Hl(0002`twPcO00SIJL_t(|oHdhAXdGo6hM(^@pH13~*}Z6^ zDQ44FQ44KzE7o>Lp;FMGpaX><%pv#(5ei-uA^B3QEh0t`K|#!10+LBV=uspSPX$Z= z97>BD=qyx9DJF}yW|GW)KMxz<>pMmHBHjfI12Uv03^4R#xtcfKHDH9zPq) zKxa2RtX~G3m19S<_1|v++P)7q4z8bgEXY3o3c~Qf9c)%!yh%9@`ToPwbByh&2Y{RW zEMnW?$~ORBz=4f}H&@~Shf|9O;_<1uhvS=TzU906y?=HkP8dCr7zb)u0-Kc=+uykH z2z=EBWFei3HWC`f-Lq?e%s3*=N#U1D9f(F}oJqJub9oXR;)n9t4&n+Q2HVe)MP1vmReylnKKJBK8x#8*v zATe7rZ-1wed6$MaJ;#qUxYqdrFb*UmVIXlFCW2-If%5N1(iGGw5lBqlg`&5kfIzf* zE^+rvbGyp`lcs%|Q@I}WAbpF delta 1621 zcmV-b2CDhh2HFge7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000IINkloOp*f5@$hr}T^8GEc;TSav48&Od47!hKVxJASfZ;7 z*x68*C93h9Hvw;65B5EMwh-%;GeWykQAceEkA9EsT-0CJ^~Dq%D^R+nm)E}Ny>I(H zFKGX@8fyT``PR7=`tclTo|KCA2J+M>78|*s(rlDcs0DC-I|E?nTjzB!5UvR*JMrfn zxX7oXj2jQ_qJQR5Y=rf1Xc5oZe(y!GTq!}^c(|z8P^-R-er$(Cqm`g^O3WcK&;Fjf ze>g|F7cL0bTI9e-i|lgnCb&;;0RxfW(PR7ViR;1fE}=`?U#qqI#I#^o)j?60NDl1Z2nH> zs@mWsHGn4t!12_z!ufb^1aN*O140|$fYDQcWq%V@>OYwZs-j<#Q*m#jrvS;=Edxee zcJoy*K?Ih2<{UbWTcTrptvCf}z_eS*K+$>D%>y^FS09{9ecpxJqU1y&RTaHed0f-6 z*7rJTHd}0&V6NMuL>uEd1z3TdpK%_=DqcG{xqFOcW5qpi$ZnF`OK%h^QvjZ;>5j3(GCEU}1tq^5*pUKG z9pADxz>Q&@n=Mi!*mLjwM!H&rQ8?MbljK&^J<`0bCt_DdcLbxq9c;yE+Q$xvG@v4g zo_aDH##{qv2H@9P-*m{0nTEznl=Ho(hJOq^j9JnNOwIlSt=nb!KGQ3RfIDV#@2xT` zFxkB9Juj8+7~8`IL!$;ho@Ee-7qkbkWK zyj5#Q2ki9GaT-;dqV*I2!JVxsDx=!0QVQ@qr>HuDzM)fDfxnM~;o{@#DR@r-os`GY71k%1Hp9;9o49eFsvbK|hV+Ociw6d>u(>d@|C`auvx zx(3KR_3}1~s#1UjUDVvgRMGn{>3;)wAhARSZ*@Mk;VFha!2-|o)YJf74|z_cfR4zw zGF?=5h6P)G9-yK*Lp>L$N&#F^SM7X_S*0Ve2bsBP27pB%{4CQ}jj)Jk4opL^DOKTo z>BOJ~R)*4#)&Ou3saF(JDZp|X$;k9>&det8qO=b{MSeC7y!lxG2TbkobANd4U;-%L zf^;7M-V}`3j!NHRM`WHB{hntcTo8EIBDx8@tn=Y$+akbHoJn&%W2#d?XXlWEh0*Z% z?oA;6VhHY8Yh$diL>11V){SPVW1zf_^S*{Rr7N)$C>a`UVsv%btm(?5+dICixz)*5 zw;`Z-rDTOW>l%x~V*cAAaA} zPv}561+3-UAQ5D{V;N}lE8Y8>m|!j0p0Ph1nL(x!j>201U_|qF_Q4P*Q%g_RTE0IU zmo?~1Inxlq#zrD4yNGY>Vc_GPr%%I;H~;?tUSK1s$mm?;suVDxH%?j?d2OTu>3WL2 zKweA-I&}s5n%huY5>XcCyKaJnCwhetZT`Sgkiz(vlA`X{~{vJtYDj8+p?dV TshD+x00000NkvXXu0mjfyQmk< diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_3.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_3.png index bedf366c6ccf988ca20807c9062e7e7f7b70d9b9..9cac278976e0f8c7dae970495ff5113a484f4645 100644 GIT binary patch delta 648 zcmV;30(bqH3X}zq7=Hl(0002`twPcO00LV{L_t(|oQ0H6NEC4t$3OF&)m4fef?&zi z*@!TTkS+@S*$t#T?yXCx$BugpI?RyAE*`zP#|}XTQ3mObN{23?{gu!h!9$6*qhzi* zJFmm6vTj80^yBk;zxR8;?|biuMvm5-VC1Mb0lN`cjUd?w%zs8eBar`k81ZV2stXv3 z#w3!^ta-Qq7=%Y-7;dE@XfF8IEy-NGwEY<9#^G*t6a)8SZ8VgwO+T)%j_U+j`!uDdzI3gO&NEi#Y_kq09TYH42l>HUf)iN2!IR@3@Hq zCIrxAgPX3Vv`gm} zuI=`!3iNxY0e*E}-|@hN?mh*0|2$bv)t7QTmtLv~gn>e$n4heZ&_?dA6ppH1)CG0p z(kpOMfiovl8NMb?)9guXLX1XbPJ($LY!O>t{T1^5v^H(S{}X(2#g?fEBy9T3>_td%uS!`N3?sl70Tq=Y_f8vQs0;XVED)XBPReiX#sDdJNwAyp zTe}2E!%Bi3mEYPWz|Z5!90#}7NcLlqyRyF$(j0f5e<};0CiXnf))PJj@VgcxQ^qg> zIOU%TJa%s#gMVx9-3<6kHu(PPFX4m;@FnGQ3)<&6)0$cO;)oH&utHGv!dVEG*=dqY z>s+Xez&a*rr&D9CBBz@GD|WwCKG)7;mbswTdXKa=Q8M)YF%c?AP-+22RQ@XD!A0VB zT8FpXi)C}4N%Exe;c?+0J4=Ex0^k9SfHX<1Pb#?5WPifN9Tg8)luwPRiUef@fI(BG z%nr@8TFrANik23doA-$N07v48ywXbG%uJvw9qtH=6_Cin^+TC<{5dDn>Utu|tH=mG zaUAT))uZw&c3TG(H(1=878^vy<+1>sqCe>W3=` zN%uuj5(8ih;LWAE`*s1P6s}k!`Dsobbv=`ED&@EKLthE2CMHD!jtD#M z{Ekl)f>wYdffZW12>X#_Xl*oXO@Q6w2`UA&KvMqfj3MO$Mk(loN+S;Jv|UVtw!h?qVOR2=~qUvR(D`zla#vdO$RG7=f}Dp*SQ#tHT zI7n&k@PJq))x(AlhFK*vjZYN7;AQ229Kvd}~OMjv> zp&k5K^82b(F!Xr12JcSyR>v&zEET(1kj@7>DCJtuP%8T%*v{|?@NFi$P!acI}7Lq4}YtYV3Z60c7fF_SGWlrM_AkA|0$?0z#5QfsY{je zxIR|+eyxqCy%ioZS;i1P48n?~I>=1ibFXJXvWloWgxRI<@+<&e+sR~CVdb1g^j)3> zRPD0r-G4!&{Fg&#D&LE$O5>Ms9}oX=Z1u~b-raxAe;)q;>SwfYfJwge01E&B07*qo IM6N<$g6ch5dH?_b diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_30.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_30.png index 0731760dffbaa07d4e1f50c1fd65bd0eb1f6ef19..8d9176c4c2d078d41432a756bddce4f700f11c2f 100644 GIT binary patch delta 872 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 diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_32.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_32.png index 39f5db8a0131b28046b4450ce84eda9d9f519ba9..c97abe79bd113dd2f53ed6e26b0afa01822a08dc 100644 GIT binary patch delta 846 zcmV-U1F`(l4A};d7=Hl(0002`twPcO00SUNL_t(|oK2ElXdGo2g`e-6ugS8;WMWuI zmA2E1NL9!WwxXb9HewY-6za5I*%btTZ}d*B$utJqE30>6auHAnWGq-B8WG)zD2ReK zXhjoACm366j5}*gGjV6;^> zZlGnDS)CtBvD-gQPJl^)4yv_{+F1Sw&|AdJ>KrJb$}>kX`fn2?g{R|AV8m>{8`~I9 z=gqWir{{3Wm8l7m_M1k2=`)^nq-^t1 z<mZ0)*Wk8_znjI=w{&0CzFf!GHAVLqxd)5p}TED?zrn3RhEdta)iSRxYcmKq}I zVn?GYlF%iR(~ijInPi`cNX)QEVqiJ8B7iPg(0RLtXZTmcnJQ?q+5Zfb)HU1l{7>!w Y0AjRM>)yyKxBvhE07*qoM6N<$f`IjvYybcN delta 1613 zcmV-T2D16t2GR_W7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000IANkl{J<5M|MV+}*|tM~rxqHQ%gJMSy_ z_qI3(&}N~8Sv&e(o7u=S6x0bg?-M}yQ&|x?mq&n|@I(QWo<&oOB=j2XD((`0s~tl3 zO}%AymjsygLw}K(sjDH4A4xQ|yGQ2{-47si-x)#Bem@bjttOIauFyT_HKSV|0r-1V znJXP-1^pSlnPYgJK%$RKv>Dx(#|x#we9BC}WjiP36_vV|oMuY|7|f|4qs=L3VexG#^?7fIRO8hL52>}cZU;0fsOd<6Y3!LjGBrA^iCcShGJ8eP_Hlk0lY{6cFP}Nt5Ob{9RNI z6q0<1?ll>-?-Jcq1kjj95pgJw@n^g#jT@3!kM2E70j2xO8h)#_<4aLYyYqg%C+h&G!HqOzr325%pK-zd46NQGYoBxhETN%MB9897S z*}YhI{<*cbXBU8mTr|-`dCoHF)3`ydk_a%2$FK2j2Ab?hbh9&fWfD~d%@I7ZbDbkL zc+bKH59J==x$(4wqh8dj2yEXhUAqvfTBn47u$?(%?XtHoeogo_mRydER z4u3H4Mg&3j+h|`+(OJVI(aGZBHOOeYBMPicV&ACnvt5AJM-qNKllJ@GqRp&k;HfF_ zTEVAbAnZc9JDRRjmC^D<*#VRYDi9y zk)vYvRz`sv9j3LS2;ez%;b#RWff~4?>bC>OasW>;2`%zuGIo!`XHHNxYpZjLDt~%Q zcL5ZVG5H{>l~hGbJ5xYqs3@i(I93OU*3m0zW^hA&Ac9EclD{jd1WIB3v@*T3ZG{tP z^j12XRK~ZE&H-pahZcFXc9O8#AQ0TRu1erKs$8BtNjOJ32k`9ssk2ng0mlWzHO!|Zm1T7R?T}|D zZpa6s&Xz@#PC5sW4DLM(km#Y1q7U+Hg)H8_G#5JM1f_oupfUf1P-ww(D$3V>bfm#RqNn&fPY)?$|itX zTXg-a!c9t*bm>`6tD*pc7ti2%HP3R0s1cEwfY8+nKo+9Kp-6jrN0YtC1k_|eXqa^X zYv5A-AHk>Wk3HbVwW6sfG2Ef6w`Dwpx#ro~tTwX`m+qCaY0&6#S)`qU)W1rHR)6!C zL7pT~8i?i?9#~~m3zqCin14m(jIQteoB-()!ORK5OF(Pue-M(H0omD&uGRdr*Ks^& z1}m`bzlLS7YyXb+k4DW*ZjgaVyEWfGjmir0jk)6a70FPA(ssgIbD`foJa`}Y*TG&$ zYaPAQcPo&govBe|5;kw!%ohCX`%`QM$veG9|Ku};-HsChm9Z=butp4jB8fYNsN6gA z9NI7K05ij{%3gmOBF3zUHem;-2=%|np(5J29RLaSzq9^sP}}_hgJq1qXadwI00000 LNkvXXu0mjfZYu;b diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_33.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_33.png index bee4cff087224cb68fe8a894ab1b4a017d1f97ce..20299c04dd5c338cca155b6035bda75eb703d8e5 100644 GIT binary patch delta 809 zcmV+^1J?Yz473K27=Hl(0002`twPcO00R3-L_t(|oJEpBXdGn}$A8~9pLMM^yA@Zr zD9yBDFGa|ql8VxNZ9o(crj+ki+U-RTiijv^1KlsO+JXlU;<05#gp#2Usd$r2yy?l{ zr4S`kYe-AWL{`f`<7}s(fkgSK z#~Fp04~Q+S{r<^$kI8{O(vfSDcW!(Dt=*XUKs*ran|{w>^gkxbP6F`Sbn8jd2F3-V z5O{2B_hDZtW&rO&HC=jOU|awYL$UYu#H_SUl+DC8PRN6e>(8Yx{bXE#kJVMcJlr$i zUQ{kyII%eR^nby((u2SKoF4hrxBz5zvi){^a5FMnZyKZQ%f3;UXP$oL>oZ^7j?)IlY1Jvt-TDzwkvSQdXn5*{XV)LSb0fbbqLh(XW!Cz6CFmp!y;S}peTHY}@@5&-R! z{c+6MX%9gEx{gAzNYVqCfVzQ?k}v<_(dx3z3GKLGf!fZoHE=U_>BIIT5HsPI+@fwxNDF@;)h^*0L>++aM+XJe#Xm+g*7 z-m3QpD;K3I5Qs?1l{82I n>LRkF%esa)cV2_3Le>5SL8?&^t=|4=00000NkvXXu0mjf3rvjt delta 1590 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 FV1grd*;fDn diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_36.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_36.png index 9a13e7c67db281d96949e0be75aa7ee4197dfa96..627a02ef2e0a58d2cdcd61a0ca7a2cf89b8e45dc 100644 GIT binary patch delta 861 zcmV-j1ET!64Cn@s7=Hl(0002`twPcO00S>cL_t(|oIR9XXdHDE#ee_*{A0Hzbf%3< z(^8s^kUj{;w1iTzX+}Yj7W@bdf(6Nw3PmlVz9ia7QOujsBGmfOya}$=hZd^Xx)VV} z@vA8z*s)|{1Cb`XJJSz#lbxOG!)Cp3Uk>MV` z>M8kczyNeDo_=f2q+n8z@`7Y#IoQ(Jf`J&|lSz|;(d!24z{J~L>_F^b;POF4-hc1< zc$?7#<$tesO+nmSHE_r+K|!vMg9%3s(dU!mf2>d*#83WWknytzTpXkb=Hds2#lgcb z9f66nQxFf%8GnLzpWlCkoXqSR#oT>ai%-WHfM%cPJ$}2-G@?`Uw_XF+y7mh9EnQQ! z1JCX5tBlls-tBaK89V6tfJglTfVHVu!ZOG2zwoyUs*q;M#cF=QT)DJw$E^Y+M}OQg zV)i!m{4`Gh^aRy)&t18q%cG1D0qiryfYf|ef3r7=_J7yGuAHyt`?YuOon8qbM`Gq& zP+s>7XSR=Tk8?|dm79-zWSK91?{{N}yGhK`!Bxz}Lj!IESgu`}CEu?lP!15OATd5* zPF9tF0sy-*%gP1)H9Q3bkQg6qlfhE=R?yg$S@Hwa%5vk6awg3X^~_(Ts)lG=eHy?{ zeO3bf4S$>-i!$0zVdPH)FQx&)+iP?lDxInxU_S0{hrtMfq!tvchuCz2yc*y$G_^kVzCA6CC3eS ziF=-R%0=Tp=7UWCzzH@Fjewl5OQZbYY8L*fl5j>e90j6H%I|n_4?~XD3x}JCzZtjd z+Zgo^S*L2Otzr!yt1U|?86p$4wbh>LuVLeygd$oqgA{JEjEVrrShm+C#R^3v6wxXp zR#v_xYeTJTk!)ESSRxWL9Et$!87rk&A`E n1YpaI&TI|G|NjibO_lo(^r?z82OB7G&Ru?XAvNIVH8-ze&SvXC4Jp678T5l_Hh_+chMYk&WeU_~z`ls_^*)2%` z?%=8CoQ|DFhIo5vIO7` zbf;G&f`!o}p?;mt0Hfz644|zPuFN~Mgpl5i?9SRwvbIlRfDXRs5WA^U01tlOS0$(D zyX(5dK}pEa^b9*4s~KR_fB(6UlgA*<09q#UX9!F5c7NPy-hSnl5lM^_8DKQNum(Un z(cVi8A(c{M&A@2Sw4eonm#Z~^=9}iHivecrzoWseT=iLK39*s^5WhI9LJS}UWRzvr zJ88w85_}Jp@^&0l2dzkg-lygd;@^h|q?P*5)&x=E!9@sn9uYWi2OZa_tO&leNVSr; z`^Es;s(-Ht5FG?MIIaB~VC~J-8X)4|mj)QoJsK#_7H}HLMxRBrLM6IAbqlC;fUovhgUY~S0n1k}n|YJKV^b?7 zUvJtFG2{h$3P9|f2xP@u?N>4Yw|8e97zrNf-G69bLYDD0Hgo)umh2FL=@035fqGNLO-OM)GN z&VP)7+CcmAVAq^aR|I=ULY>Y49A*D3+!_cf3bki%!RZ=+L)8G4 z;KHNBN&-Gfo0K_D2l@4#|aED@`1lIKMbmZ6j1bTpjs)<9J5ygRDZ*J zq)#!x%#TaGKnJ|?&ZDZmC#k$+D*rQa6?@yv;BdB?0c$VzmNW6E>XL+>*NQoYJY!5sA!O#(z{Rh2Wb{4a%$Sc29;!Gp`MlaWNL zVgi1-^M);8%4Y#pmrBt@h}^Pyg?}NxX`|2Hgc1gztD4e$6j4P_0};JL@U+pA=0|M- zQovD7pxKLnQ@`e$*0$nwFk=fCX&32xFG~MLkT!9<)G^-{BtNp(#=LHJ)uM?gZM%`A zDE$v3q)C_=e9!)?1wkO4!ga~W zPSw02wxxQvwQ5GjM#2fX7P7FKZ<r>_Um6iz6U`a`ELf|Dl&x3CP8b%r*8*DGTaC-CJ zCr}$1zxjNe7I=#E79bs4Mt?^cbTX^}BCDO2{JB=Y3MU7hBD@8(=1Y(WGAxn}0CIUW zquSN0dpnU6!@hmi4S%UP#Zmi1JQQ)s5ULc-XX3R1P&j2AZng zc?R}i^-A`%%UnBuEVidO3Q~4@gZ}3I_4F-(`&atg!L7-G-y!05AuQ_mDxLFj73{Xa lU)C+CF%f$LD={kMEa_UZ58k?6y4_@qb9!)|Kib138%+$U_f%*4h_D9&L-TL{c@yF+#90KK!rH{MCyL9LjtGkGH-Gh;;aP}B z>(T+%uKZ(l`4ULQ7X`{*+K0(QeC~JK44^u4rig}NSpN8oiJ#tD9j$$OZhCkY;ulxs zcmVL`x4JUyBY!&=Wp9;Rqm22aW3x2=9+SgzXb-Y*K6B0Mi)L?U7HT|j(rYo+?YS)2C}pa>0F@_&H*c{kO~^tx8uv^q3blDXPv zNe|?pA#X*uk@*FZ9vCuDy0tqDoVA5j?=G0{G-^ly$QRGdEc^z5Tf4*h&-MjgJ#@Dr z0k~EehpLIdO#%iyYaZC#)vzXbJfR9*Vm-2WnXiB$;~f%Jj-^4wYZ@JDkTWyhLmEP^ z!^r=4M1K}yvR?NW0DG0pmgWH5w#R^Hfkrn_4T07v3p75j(lVZ#K&m#Q^b+A})R0Ed zM1uSdCIC1#4PY;rm)wFPknJWJd`C=Rp&f>RY(alhJzzHvU<1AclQTyva;p9b30X5$ zX@|TA7RKoz!(_CtyMQePQ-P@p9#5Dz0D-|E@qcfTOBVZo8TdE`6T3IbfYVHrN zZ>Qqi1;}Dehu8#;wkEPb1`EK9;M`v`9)cJ+{Xu!cIEkzCFW&>z1uy!*2G$FZ7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000GuNklD2tTLaAH!!)kZ^CJRS6`~@=5KKh`?GJq5Z=Qh}@-6z2HGmgT z0Z0P4uN{L7S7;2#^z1FA=c)27_6a2bR&Xc*_a#W}Cq8C1CLGI@D>stQBHwDCGy*^+ zpu*bgF(_hqoPW=aWyOgRz@sNi0IkC!F`NCAAy$mKs@rK1V0PRc0jfwKrHK`WuQ+{% zlOh1L6W&VWeslp8(=suXnK_6v0wj*dh!J{MZD;baEwDY8Yk({gSZ1b_0)BE0Ai-P% z;6byazzRGhh^PVJIGS9WRReIkae7W803H+@Zl;7}ynn1*+?t*Qk>ChX838nU!F@`< z3tq@MpEDpAmS+lNlYx^HEpL{Wt4J_pa{6fWd%+X%cdY`r;OM=-{b-eo0+d-nHckgB zJ>YGG^Qqc~+v59r@9m{^z7%q}^HqkY45l$+mM*P*P6jwBtPucXh172~fY$jl17d?i zBkaVk2!AkSx5lT$hzNioMIGweYbdp%2o|u*`PkXqOv;P~vmy*0^VA9%dS1H}r~nrM zJOq`V-x~R>B(RJrr4gv>Rb7czlBuE))XaG4{>ll6#|w!7xQ^I~SsJL4uYt7|u*ja( z09e0}2w+8J6sRr)y%C@_+xG}j2#Elv)dx`TCx1i$e9Q}LE7@B6-v+L*&{|zr6XppK zK&qqCB7h_yI{fVFDk5i^R?Z9=>m`r^eKb`(*5l0Gb*A`lNU8HjrB=kU$k&)R;d7r$>N~Hjul>@*q_29Su+3&S+sZ zGJiEVrUsY|_RXO>3#Uf_jOjOl77}RtPR|4H>Kr^cy#~M#KMM7bfKrUw-iols|;Mdducwlc4ra8ZR7DVE)5kP{L1fB=t(##WbKE~J809FOO z;1rGMMoxYgup9qA2^-s0BWag}rEBrJ!hcf?Yl#5S&y-dJL;*X$`ZaBZyc39Od39e# z0IHX#RuH-OlEy67DE&@ehB??r1>p5o@56C-jPTuXRj zdnn~%>oyY?7PPYRH@k-#my@HFAK7w7;7P^mKu8UsHKvv@*6~gvL2L5A(X(zd@qhLg zLSO-wCH%fW|AK`Vr@bV?1?&@2z$?lT@TUqZ>jW9Zd1Aft(FMTYEwuo|>N00lSjWqy zQFu}cSgrx6-aTU3wmP?4RxqV&R-T_)$Iry{Uk7UqI?i*-dL05~TVBUnNDx^Na*@z- zZ)N^(EqEo6a#ln%z`twnt02M5>3^2-xCNkWBD}2wQ0&th2R}gM>K!${q)T?I2W3Hc z<#FpFv+Ln`s&3Gvq)QT_0X2qXe2sF{djpLwxI3^cYH0}+0yI3~ErF8)3 zWDm3v#X9?`alIsv^7-zTFDk-`Uj=K30S|d8er!59Yx$Oc=fKT qbMQUO1dtqmYX5v1JkE@WHh%z=|DZIrvz^`m00008zB+ zB-LhfNEC|&(QC{Up^8$ChXp+db0}00J$P=}i3jy&u01&wM9jFTNT~@a;W**1`np}ct zx??h6{pvqj?py-XaEt&oI~_xnAv*W7?z#|8o%Rsl_iOK-R?%Zy&FS{#a|@G85IwtQ zhFyS{Kb5sf2Y<73(d;$(b($H6bY_Y8uNl)iTbO-~ocChx_FD}7dD}F+Z>~Ylf$WPf zqrwe+&GB3)dXO9TYvfoxe_~f!|6Z5I=HBv^T1T%s7l5%V%HA3C15)F6p9JLMS8JX9 zYG>nyE<2t9<-ya&4@ivPeH}0kSnX=3ct)2U4B$a*R)1}veBMf>m0p*Im4*|`RkPfF zKN*4&#O9UYCZ@hZG6WOqq}9Gf@ru3|SnXSEe5;?~`Gf1m z#sy0oW+7AoScyx~)(Sp2LZFpI zam!&&xd0C>0O$*f<02Ri(rEYyqg)Mr-v`VV?}6CBZW%zk%wkkY9gdK-!b-o@5&L8T z-l&R(aW`Xx`QV=H0=nw{f(i{bkEoXb)H{nw|9`1envGcMzgLAUull`}eQ7o<$tJ02 zwe2S2r0&>UgsKTzQ-@~W9{mwepi}kPxZdua%?E(8(JCWSZccia3xJ0PV9}8KdtKQS zFbYn+S({V2#FF}RcR?h%*{_KtSRxq~BHJH#r$j^|=0zd{jVL#`t<-g9X?XkpH=j>c nK_Zhb-+z21>zaGtaYWXCvQSi2gJNgz00000NkvXXu0mjfb!K_7w6-JPYkCHr+*K}Tbv88fl(yuDCxT5 z_(b{rP0S8!0q#6Sh!qjxTLZ}QVH&sS`4IuU3Q>__2&N)}^#yMgWdi9ag^HljB`=k;8D>#&ZpEYRhCqCyjCY;NaD>stQBj0PEG6Fy) zpu*Pi7!)xg&VT3T^5Vn@5Ydw*fYo7{kXAosh#8~K>ULTLkj{rAz$y}GX<~-qGftOq zQUri@!bff1k1l{>S|x@ul7l!SK;lG7VJ@TAyqk`kKns(*5EYjzT3f+NJr2w>3*ex~%h z;6Tp#oB_G8EGbY;22M`4JSi`)BEgW!>0{CF1;2prtqS0Rqxb&fWmPTG|QW{t#-vVzf;E^rW z09e122;jxaD6qN^j7EUge9t3fAteHwRv$pU?|%>h@VO|wtz>KMe;YW%LT`1wnlN{W z09qYY76CK?+2LnbSCP5Wta2n&?3Z}<0R}D$^SBl6$*&bZSOS&4EC%6F72S3h&KKoe zYgMl~pPJJ$@13zT0$6GQ=#$>T-9T=mKm%29QFHzloE`x_+CXlQ=Z8?ecQztNKuEQ_6#@t>LoPLBW>;xmCB5=eUoT8&^SAa`^Q5u9EFV5kp;Mo0ja(Z*ZH z&SF&?c-sh&sfc$TiDa{SQFB+efsd&H@Wd7a%&e@{TeelWZ3NI@C4qHA$UF8fcw7yT z3G94polubms&F^b{(B^B9IK2(Rr1!{e}9(_pfz6v$o@@bH9#h2ww7n*u80CB5Y=<* zKAiv=xeYridmrGWyMfv8+@Nbs_&b4KVdHuZ)ZEs)h?(tabiP&3I#Abp{o%nYL*a2F zNW*ZzcyZUjad&JBwOs5yR^l}TMGCHnf9#i4N8O(I+i-693d3ZWcstqG+0tYf{`MC5qpyc<5c z0QlZ>7qB(?!P06(Dtx?MnuR;1fReuy>e=t-5a|GB+PsW{Gjk7QReBTub+E^vSkbK1 zqD2?&y6o}VToB$miaJ)~lETl-u78$xy=U_Xzt^ym1d`J|^KlzM)kL@~PT~w74NsmO zKyL(q*Y4Q+pDBK|x$$`TJ>@IQB2%9Uw0swFj&&@QXU)U7JMipMS_zkt?=3oEdGK>2 zHDg>F%PayY=VY%yF3m_fdG)~ck0fh%%a>(eQwq=&feLZw@OaC-+Wi6v)PIVx0?R#R zqX~nuxfkIS(3+1R5mdHy8muWGTdo%{WkqB!e;_1+=zjkUto08@G+Jc0%~tf*+A_*= zd6hbkL$LdYO@{5&E7=oGrLga{omd0R04qtgDXS{z2v)CT?-q7z_V!$|Ir-nl&46O3 z*XgI^*9dl{04uP5X*Gc4_(UB=+%C-A`&c0hUo%Yr&GDzUP^Tf{%nZ_m36K%$znDV? lY1{;`g!=EQKNpxZe*j}#c2|z%Eg}E_002ovPDHLkV1l{wyyyS` diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_39.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_39.png index 7510931b44bb100b314d9bc617843bd51a2cf164..a2946bff32cb54497bdb072a5b5ff1311114c76f 100644 GIT binary patch delta 787 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 M07*qoM6N<$f`|5%@c;k- delta 1390 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 XzXre(1B*(M00000NkvXXu0mjf9Wft& diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_45.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_45.png index 2a3ea8e23af713aa1210d6e19693e576aea86d6e..232a5c63a1ac6d18249400415fc2dcce397ce53d 100644 GIT binary patch delta 601 zcmV-f0;c_$3FZWl7=Hl(0002`twPcO00J#ZL_t(|oQ0FUYZGx8$3OSWwLKBx6ofd) zT~Wl%;*!ZGf`Te$)OOQOJ#lbw&_6)1e?hGv)Gg;At%LMs>7X?iDz*wGsal%o z<-QJg(KJ$grXL@k*YETEke;dEkhTv2OT;#PX2382tbaf-0DlE6|z((qpOAeH2XGdV3-D=tKaQHl~xY6f6UbOY7`l0Nu;dK5vH@U@Lr6 z1|RuZm2uoW7!)*1AhoyJ?>-i_yZe>R4H;;jaYpXEwtq&!+U!_J4>YZ0RtJ+i*5Z^5 z%s6EdFy+|1Y+*xg&k-y-o;?uj}{Q9%1Fgvph`rXoz*c6N&+0vAomV3XLmkaQz#RZ-mCPFh}FElCXt=}J9Ot={+5-xs^8HG9Co niI6@saGa#?-VHd!;Pk+6_P{=KF98(V00000NkvXXu0mjf%1IiC delta 1169 zcmV;C1aAB01epnt7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000C_NklY8+afiU4ICAiwbA~6$Pr>9U_31__S940U#jBx>Y1!4k;0!HyWk>S;l$d0r#6= zT;sSwDn>#$0s5W4()rSL)gF2!qzOT*ou56%>>SnmA6s<;rJbxj=&bPDC%KXkRx$jy zmOy~4(61#|S~9vbG85`)0^EzD7T1%2A_O9#8|9@!M+dz@PawJ%y#uHKVyb?A6Z+Rz0ji-g8ZIr;-SFp1XJ(4)*d)mo}M6o;p zP$Ca{cS%kgucNNlzNhBV=AW^#BmtgQ_PpS#91b^@(IMTgi0!ICeM3%56wUJjLod8J3 zXb)>uzJMTv*ZI=!kE|vAoj_#U7S&srf%c%ij<7o4(pZa-07?L@9EqOuqoGu%jGG@F zW>@q(xWrD|`5s##1h6D4BP8Rb>&LI--=%vIuR9qdI}XylrIJ7mR>f-vP)-?% zphXDp^PqB_5=r2^-Q;YyH_+^vKlFLvky+?Y-FIA>D1f_4PVkfG%J06T?$ zkD${Z12dJ=eO;vcH=RYM-4`5Zmcs3#R>VrJM%Rq$VJ-h#uelfti jfl+5op~d diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_46.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_46.png index f4b263b199c8402088ad99c4dc27ab3c38f0bf2e..3d2b6a87b660ce03e9d14190189b37ac0aa783e1 100644 GIT binary patch delta 642 zcmV-|0)73I3XcVl7=Hl(0002`twPcO00LG?L_t(|oQ0E5NK{c6#eeTQ>STX>1c78S z&j=BUl3LipnhB)bl(UW~+qp_NQD8A|-^QgoZPBVA7g5$`p12Akt%QQC89^{YnWq(w z_TD=!-dN*AbXJ!ihx2{+TrSeMs)e+?16U$RP$dI~8eshe+4S+?kGsAMrHK7^*UsD#7@zE((fPSwYj)H+A05jO$#u6Ct02py0X!>)P z(92lvY6=Xx3!v}LxTB*k1_GC9CupNEw{R?jfi3VBZ?28PRD%PG{BFT1-MVz66!j}^ zJaxaHp6=tmU4O(t61C-R4x)jHF$__!OPvkv?N`!sU7&BX!zQhiHacE!&Ps+oosC-n zuO1FXgMhSEQeG)NFO95hNC~L3ae#MElcnbBr~H~}SzsI3K>b8^YDa};urT}w2&@Uc zkxRUK@q~kwjq)!$Dvm4=K589~x?-^D0qL>QTfW3#7Jq=IhR00n>%|;MQlKcO4eO5eY)A$mAOe%aJn>_P zuOO$0vm8ptt$*kS2oC2iH^h$93UZ3vW-eTl0m5kj(&g0yHU?NO16ULL{U7nBJ(Y^; zuderDkb70EfOGc}M=)3}ehjiFTWkzmXA*%1Xv`W6v`{3-#HL*sNGNBQw{u+sD7of1 z$eX0oWDE(S1U5urk%R_N5H3f4svuv|qJ(s&5Gh}%`syFkq4K3|U|_FDl??1A!m9>J c0!VIyUjjZtsx*X=T>t<807*qoM6N<$f(bz%D*ylh delta 1293 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 VzJ;;}%Ypy^002ovPDHLkV1k?xbOQhY diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_6.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_6.png index 3f84ad47e3ded623ecc0323b5d64af350fd1e61a..54ad31fb49a56882929e0483276e3cc1de96284b 100644 GIT binary patch delta 635 zcmV->0)+jb3Wx=e7=Hl(0002`twPcO00K`*L_t(|oQ0GLAj=!9kN3t*akfrDC37B}kh* zB{WI%@{Yr6o0w8O9&aJBr<%w)d|>)&W@Vf)Iea(0Kr8;s8o6?~Et)Bu5PXcY{l$08QkB!6!>&$n111 z;|JKtRSz_bAg79;vegqVXjp-iBe~il16j}z0=L`Qy7g5(=~|C%0=8Vx`~sjc+jL)T z90$#tx24k_>3?T-iz;nQYkx_wRd;I$O=>V+c zDn+FpKmDoL21>iiIy-lC*4y!+d^!)MZQP!os=$0{YI0Yb>jVkPUYiD-Z?0E2b+(!2o?iSJ01mu4y?NEB@Y zAm0wg)g);ZfKEnPw-W24A%KqNZl3ed&0H?=(T{ z)oT|gKy)PCX_78Wr%*QKRYBxqJ0eq-xHu`38=}Eo*CBul&LK3=B)tFx;2kg;i=2Ri zh{4vLrnTWGPo|LLjN}j*lD6b)5{gJt+-oARNdpb;jt5BMDJQUE;}>`FSPg?pkz0BK{d z>w4veb0WWO{#m36pl$x!(C4hJWfl>r{3pqmBES=y?~$KToHnMvKJsRn5J#`qbh(NI zkqHZ)p63c?4v0aj#iT$XYAp=Mf$gRS% zw2>S-&VK@bzmmmkbCF!ICu~ISlO2Zw^s8a?k-wgmhlJHH=S{_SaF^sTqd2N?$s^ImjFhxVbMS8d6PWVVuobeRo+dIcE%}o+-kQhmo8Q{R z)4&y&r8wTz)Jidr4C{68=Fjx3uO`53NSkfNWPgn`9XnZm$JPXRstK-6lr-Z&Z(u{}whG@d{5F(Vz!t|ZC?@VMXT0SX->b>g(n*%O_#D6IJJ^)Sm1 zgMUUCB}s_M@=hbF<7nMai_!EN?K;i+B{>>aR0{AAfX)XHGEhp?EY`|}Bv)O@V=Pi- zu-ykjb}9W@^M5?s6XHCZ&t+N_0_u!lt3E(fNfEi#@zmW*Kv<=xJhVJb2HOx|X1qg% zC5r^w2Ju`VGe^ntt^6Z`EkZz~EP4uE*?*pzywbnW%FoD2V+33D0e0GG3tIU`G0F!< zT~7X7i}|Q9`3M2tw(%4r58$~j(gEcEN6sZYSW195Z#+k~j`t?HR&xuP1577CB&P3F z0*)|JeqW150(za+C(t^d^x7&3rVt?0kYTC*b#x#vn?<>rQH>($1tZqCIkNz3h3t0#8fU@`M^0v=Y+0 z?yz^t5`f;EqO$p#%m_v`Itm`8dpE{oOtVN(ZUlAr6TxVL*^OFRU3l`9NXD=Id5u9z z9zB46F~q{ClP1aI3fU2;WcvXy#VD>piM1C|e91>vE+VqY`hlwcA z)qqFVQ)`HjU`T*b;-V!UU+VgCcoRVSSkXha-1D@ip;Z8nK^2*ZYNB$jC4*um!6k28 zUQd+({{?|8KGS7;vhnnGEUf|#_QO`c9D1yIJ!F%rf`$MRJK P00000NkvXXu0mjf4*zXh diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_7.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_7.png index 8ea650ad0751323ce367875d8fe030cf9627c951..1488511859daf78d14ae6f068fc6d4c54366d209 100644 GIT binary patch delta 648 zcmV;30(bqD3X}zq7=Hl(0002`twPcO00LV{L_t(|oQ0G@9^Au(uTW?Z9gXZht#)+5zoA{ddCp)1>Va zJHQGvP;Z||{_)b?ig%<38HfOdteUP7nN_yG6h%bj+o(1M>DWA(^}qoI8cIG=aghcn z(g>oZP$mLecIH?}q~9NHo-^AH!ax+Km(kO52?b^3NRf^BK&@ATbk={SnzOn$?Cm8F&-4=1Avtgoera5C^{?w@U#Eo;$z=| z!Mx}gSUYxl!ae2e9_5dz+wX?Q6u4Lj&@r^|(0^ofDBlNb`d1#`04o9rw#GI+1t7-J zpfB2wgIF{H*bbg`5-O~ag*PLBM6IR-3Xoe~FOd3MrGF|4ygPG^5GVvIBcNbhGj$!% z-)k>FfQU$4bU~z?duz=U9e{dHmn^#3r=A{HJGqz?SxyhiHE{rvLjX3Z{oskpVgNR7 z%a|-L%m-C%Sql}=3XSxh4*N3>Q0+1f)u*m>qJX^V)A~R-gMvn!nCMvNzmA4Tl9T(= zniN@Es(<%2MbQm0X#lz__X-rYE0bOwNLDF>f~e(g_&$7$F@f>5g9pscf)zSI`9yL8 z|$+i^NB@vM&5ruum2<-v-LBSlFD2ovadP(=(=D%(> iA}v|hQp5G9qID delta 1294 zcmV+p1@Zcn1(gbr7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000EXNkld1R%O3IDZXr0$iMhAq2Qy;2c~J z@Z}grfa?X?G4tH62iOeH^Gxlm4kf_#0y)f9KGF36+hB$Ai7o-Y9+vwk3T02-cYtZAH}M zAOL?M1PuhavNEjXmgwKRkOjQs8R>pjbtGi+d)Gj<~+1|5T%CFa!*3{&O2oQ-ktui=9cfCfVHi#?cJZ$jnni1{nIdMW37iCaf#N?E5I#J zDkmkS@XzZcRB95{^ZA-um(l{X42+a8p9stPH21HSvGx4&v)A;|JV{NES~u{^Af)np z8%wLaLhW{?rcVtkgqGh~vE2(N+F1;{4IGVZ$A4~xSK`W##%}(5Nlx!xY8*=dqBE+4 ztQV8QM@IRUQAjejCcqAforj2Wy!u~D-dZd_TY@7# z5dfL>dnJt3;>_j)qamG1ln|Qoqq&3hd3Psp6tYV5;^}I|6X}PY=>SHQXN}7kWj6sL z)_>R1;+5t^%Bk6~ykLglp7KX|IEV*`G$atRwYccDNmoE>?sy?HqI~|dW&Kevuw^62 zA`!afi~v7y%hg9K0ZaK7q^{%8DqsXq6~KzSf(QvLc$t4amapkqzDmk>2Y>k&)}=;^ ztX>(d>t+<#GPlgvl%7clw|OOOR8L_xynmj31TD&!JYHlETM*z=lwZ&izstPHoH9o0 zg=7=qE&2dj6>&N#tXS-kKHK}3&N7k+E+N29<=O~nZdn`0QCqSGF2AQ=FqHtGu6PMv zMy`=S`kbGib%9i`VPQA{KFOs=5b4o#aAjuu{k6;`tzc_Id{fzZrz4_-x~WxLxPO!z zNueduS=7+<=iwf*mTo;<3tBsA$aS^PE!2Cq6piwxX#$`R7F_~L7e=$oOl!T!etN2h zESf`rMue=(&svN(epQ|kd6rf(_RRGFxeg}EUs~|FwLD7}qQ{Pg*LvN#(FOm*5D)yq zq*oSdUJo+LpG|~FPBpC+ob8YE41bw_?S$FN&m_sw#M-?L)FwyWTu<{SQwMwFkk%(1 zu5=z8y=!O56wRNSuY)7ahu#~pY*<0cv}AD1t}f7P!>a)PyWLzi0xO?s#M%Wiz|IeW_m7fKw)A&ia|2g!_vDJSL&07C;|NZy_mhDl>rw^mi00000Ne4wvM6N<$ Ef|{&#djJ3c diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_8.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_8.png index 2c8cf3f5d7c34f1eedec4def10bb28095f2e1c4a..542ff45cbfebfa43d20a9fae4670aec87ef15cf3 100644 GIT binary patch delta 642 zcmV-|0)73Q3XcVl7=Hl(0002`twPcO00LG?L_t(|oQ0G0Bq!%2O8FMr{%^87c@iwG7~OREcdM&y5*+zUA+L!AE0Man}CiBnvb8B-NcU{ zwcHO|qoA4fCVy8Ud~GNGjs+Sn`zJ|99VdQQ%Y7JadEb*xN$u)cl;Eg@}m#q|&*!wIekV4Iu6~YNQzFJ%!FK;JV##wn3u|pAWCW zAvWs0EUDa{z6rmGi3}Q?hgA}z<-uFG>Y-sa%`11KG=DGKmX@Snm);kG3Hn@FPkd;LW~r6Eu|k6kL=t6>|)Y)y*ar7n}oV+9`>c>_*;@(G;d= zfrE&_)*d2XBupig?%he*NJ@x=QtL@5k%$EOV*_v$DCLVB^!rY}w?6*>wYz}i<8VP@ c3H#s0U(O*gzK_0NQvd(}07*qoM6N<$g4j+aFaQ7m delta 1301 zcmV+w1?u{b1)K_y7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000EeNkl|1Y~w0tl72hLY@PfMT14MI9WTN;dcNJkJHdecu;I)WJmjK?!=E z=eqA3CGKDnUG%2vq(`@(qOm4d^i7QDSB-*6*!- zGzCWXN}rdEX@3?8!UR}h{n~ub^N5FqSQoWWgi<`pMbD`L>H%ie#`I7$qM+v+wak8e zd(G_uHKzsWTf*qiS!f<$#=J;^Q^nHtw<@Y)P7W{+z_Iy@koIV~Y%A{5v6KXj995nG z8Uo&?{5})64p^%gkS<#yLInxRssI!!Sl=s>dan@+ZhtbRSZ|HxWc6!ClOU7>&_%4a z_O^!TI@$qBE;zd{*R(9>CKqu@;PM=k~I^R>4^&w+71-a2WL*RJQbdMP=Y3 zfTvlKl|fPIRW!HUzt%`#d5LUe$3srK1{5G=V80;kpe;G5l1}nSQrNH*>j@7MsUrCW zH?9)peSd(gGOhM&bPlexvgYSV-CjpR zfHyy=Bn7+-L@pFn`$oo7E0>hso{@+^F{=D(Y~Kf10j;XB?jAh(&o0Wpu9px%>y2}- z5%Wo&z+3qsmH(PnFdC6dk&45StX}H{Xm5{5^pPa0f0mMP|TTpSNeNTtG@R z`?)xvz1qg+#%W71zP;~dYI{#K@p(yfmP7D zdVlm8={d>zIXMz$R0`XDHgE^!OW-WF?-_7odRIMC&U$1-uoVH&CC(_Uy1v1a<3tr_ zRR|~&Y|{v;vV4TxcJQ7i&dzor09t9rSjA2E@lCLKY(jeCV#F*TcRHMqjEg*C1@mxpt{7K8Ui%Mqe6gI zXCq*F0MB!g4q*TP$i0LIyW>FS03`(QxL|AHQFk{xm#_}M ztzRMmeNO5Va4qD1+$afB9}l=O&eq-u*@Q z3b_t$6H7oTK?2qTk`&WhzeR3qj%+x9e=vk1+vq_nwW7=Dkr@pU+&}NSv*Ez> z09xwpV`viXEEa-QShvF zRVa&ugW((?8mqnlPu5KvL8C;-#&>F*(irGv(8xwJ&6O3&rMK*@K(ssRLCN0<+#xPk zVRgxg#ui^3Im7x7cr5?kz@yByc-_~=9l~HSK?Z>m)J{f+AjJOv!E_}L7RipL zx$4Zk4x_Sd_>LdG@AuyC`{fzBmY}wTxKjs=Y#qR^2Ua~u)_()D9#9Wt8^tVv0~m@L z0EFV3|0oRnjTR%?-EgXPQ?lN6V>in#Z-VS53I=KvFRYd9Z)}2Qs``+zET_TI*)r+8Gm8I2l5ts(B9%8LRT0q(%ybCGtq&`_wp0~jpy$j`XoVzzH!#l^Xm{D?$0Q}6RC)tWpAzsXlvXP@9wt@6b=eI00 zTri6IMxC0Zja*oIbtqCOK=7a?A9f%pti9}p%wXj$bAJei!?=|Oni3DIE&^!(ssr|! z78^kI_6`62*^GYOIZw}sqUsfV4Kw;HvBZlmLhNMJo&s7y;29zAR$c;W o{F>wa?~qYl*Gi}>x>0`tsznJD>?z}x00000Ne4wvM6N<$g3HD)NB{r; delta 1329 zcmV-11AB1#(Z$(e)toBi9D>aXZ5(pc=u8$RoGS{}!x||*$h-jHx$@xT+3GnH? zfcN@Vb3W0@0BN8kSkd`JhX7xXLx2KUSzy)ZCwhPYpWX+|!gXE0>(>6Bv5rRv_=jpRA*|mtmHCL9+esO2@1AmC~xj9vlVCf9tNv&vl&UDe* zLQCsmm5%5<`Y|(&p<4&A_M=bj`J2=Gh(NM{MiyxtF13%ZOE%Hc6LDU}jsVU8E8q0+ z?A4?8E26D|>l={rX7vVznLxc)#pMYDzA0=CxbGb_X_Bp!KHM|A>%d`b$|X-nDWV>RWKtfaE%{Ag8u(;j&C`i zXz_OhX^Y|QF)9~UB7wIIzU_RXP3{Itcr)8bBtT(p7yEHE8`d!vwkE*a7#)a~9L@Pp z?--UY0V@kjV`FDUF(=hVN&vS*h^l}@$qX>7Zb@~tK@(is<0^3JU6OOHOwd1%lmPTP zGJm~9`a6QEqI8TXL{Q;gU!gD1)`iO!QUr64(Gr2;)gHjhc20eJ0$P)Y>H@tU5bYgi zAWZ-y{c6!5L6VoX=I1H-be!Wjwv_?e@zKU{d@hp(%0C`1u|H}jGrj7*Kugy>tggNt zgE(KZB|Y|%p}YiCEp)Yw>NIOLd(t|1qJQ3UzEzeGET;p^l5eZfFFHa3ZO2eGeqVOH z*SeGr@Rl6vLEp@^#}YDR*0chT+-za$SHyUb-3xQ}vNk+pSjeX8(S}Dd*04kgsCNF7 zkmiW&;Vm1IJudr1Gr$r$zz&Yq5Z%g+3uu|p>N|IgHjW2w0#rtpHDT|4g{K`|aWjTP_NI^L z*!1@UL<9+~FR;o$gm`affu|5D1%GKNxDAG)pP*(lI+t%pA3#V?Rr;Gj8k*pNI;rn+ z`+utdP0JN!V(cT(pT&1;%5cFB7JiT*piD$1&(|A0sN4@W-fd@3)hl*UiO n`QgYf$5KBW>5cxA{`2??kKw*mS|C)A00000NkvXXu0mjfEUk1R diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_0.png b/assets/dolphin/external/L1_Laptop_128x51/frame_0.png index a42e97fc44a4d901dc76d92743252777571f34e6..cd0f0bfb48ca439b1826090e5d4ff5c594595516 100644 GIT binary patch delta 552 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 literal 4917 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 F`#+JmA3Xp7 diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_2.png b/assets/dolphin/external/L1_Laptop_128x51/frame_2.png index 93df45f84df55d52a5b31beee7b14cd3b744e8e7..d8a2623b44e72abb0081747f30153c6b3361465e 100644 GIT binary patch delta 556 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 BF|Pms diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_3.png b/assets/dolphin/external/L1_Laptop_128x51/frame_3.png index a86b5e744bd7adb1cba70fcdc13e5ef53209267c..d4ab7525c683c73b5b26ae5d0def93fb3d4b3ee4 100644 GIT binary patch delta 551 zcmV+?0@(esCbR^Q7=Hl(0001Y8$G=M00H|+L_t(|oQ0A-Yg9oPg`b(d$*v!eT|`Ku zd(px|gmiXh6ztW;(iHxH#VUf30TpaS>?{Hi{1IA+nMLg*SOg5@3MmpWyEhoJH}1Xn zSj;Y%%G1sBp7))PGw6g?WC1xQQot$&&p)~_SP65}j%r)%?SH>p{5=KZp=>kV3#X>` zvV~0%jp@`P!QT8{!ds})FZ4Szmd>?T(oi}cUe~r%aj?H8jimZ$s12C0sY?McD{+j? z0+0YMk05m+meMQ&7XS;Kn-n^~)K?`Hue;i4<})^f3SjX59&}c*K;HwM&AXn~5q9pp z9ytTa!Ph`45`Wc<0POPfgKtjWnuJYXw=wq>w^a#@b}O z!$-<|C$=m=_i=#PH?0VO8%eGI0~G5J6deNqE`LFBI)Zt5$c@G<>-IYoDI50rHFdK)?!=dScSt_Sr540wg&BMt;vA0p2ktA7YNZV4; p*qS;D03e!WSCVAJNm>2}{sO>57|b7@+mrwR002ovPDHLkV1k0z_x=C? literal 4914 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 literal 4909 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 Aj{pDw diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_5.png b/assets/dolphin/external/L1_Laptop_128x51/frame_5.png index ef1a75b90e1508fb8835ca398a0d1ebb9a77c00a..0f0528f50a24de3e57d81319473248d9eb056a1f 100644 GIT binary patch delta 548 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 diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_6.png b/assets/dolphin/external/L1_Laptop_128x51/frame_6.png index 7e148697b1cf2d268c4c2e74a6cf921c3d0e6f82..1c06ae08f29753f2a81b2f07e5f501475f523b9e 100644 GIT binary patch delta 550 zcmV+>0@?kfCbI;P7=Hl(0001Y8$G=M00H_*L_t(|oQ0CVYZOrwg}?W9HnaYK>>@%6 z!%n9lLOMJ1BKQYrV<-6&QpReh5VR4ovj`XzD=RB4EZ(AGyM={dU`I%ifZ3g(B(vtt z9E;gOQ+dko-gEBb-HT3XAPdMbmpoPpr2M1h$-pl*j&dya4}V^+{%pX>R5nib{h6jc zbg&7c)ua{?cI``mZ77qE40~-$@7fb-D$S@nL$JopR z5#aI~B+l2RB&&h*fCVnh3%ws2s+5YSeU0M0Z8InVCU5URZwm{&N`ctKzYh;pL~Ky(xH;*x() z$aibY3M}9Eu<)!?1K>u?BR*_yfN@x*3{w?c-FoaW8If_M{Jv!{-F0k^Wfz$ArI33) zD4gXy@GgUsG@%o)0LlPN%1EiDf|JxkF#xZ+W752!IDZRoUQ4PZWzp&=&fAs%Q~<#- z>jJT)nIw-!(2i8h_d=^qGD}2MfUjy0vT`;*u(bZMjpJ4tfDFGV74`}N2e3`{-I$1P zt7DC)Qq`p|Np_EfF2Lpa_Hobws+EO0bP2Yj9L#!XPLDYBr4av`Pgm`273U;L7FyC+ oDq1^DM<4OmC&`G@viuMH0m0oDOUby-CIA2c07*qoM6N<$f=)pJ9{>OV literal 4900 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 diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_7.png b/assets/dolphin/external/L1_Laptop_128x51/frame_7.png index ca19b669fdbb968b7ce8032fa3597ab83b76b28d..24a9b853a68c78476ec6ef0f86744af4391b90ed 100644 GIT binary patch delta 549 zcmV+=0^0qnCb9&O7=Hl(0001Y8$G=M00H?)L_t(|oQ0A-Yg9oLhM$?e*HE=>cypBku^s+SAeYL#=gfEwW7{e9@IV}W-b=zY8AX&+%bm-WyY z$PPCHxv+|ShJP-0?ODLdTa!_7x{GVJF!CVD81WAqqHoO()hoOFSf zq*_uSElMS91JFo+F`Y8|-HZ?>$)H%&C#`f~J~_5}-0(XY;4mQKEdewXulM`jxvqQ8xzG9i{`>h~=ZS{rMk z3pfhE2eWz=`0v*^4Fv}ghMBz?092orTB3*ofaEr&g@qH(#mXFFL$bi3@HiX{4Mzch zb!$#q2$}q3V@zj5NO=CANMV=bFK^redLmNxk|-HU-rB3AG1zL20%184F$-$#bVtzb zw8f2BExVpvCB9{~HcF91)@NJxovbLo`Eh1u@pUyRm#qoyD-3mZ*F(N%(%vLDz z!Mf=vqwF!cBxn9OAP`dX7U%$WZkF}?sv=g)wmtkaI#+`$yiY`EI^6xHFy~PhM&Ka6 zoOj-1?BJ2n3_$Me6}*zZoIY-OwzrY>7wZcx73@&qzfZ`feCpDc}81+2FTP~f=7 zL2+`ZICc3E={d1MF(&X=%NpET9W*c&0@gw5&`st>rirOBnY zpyd_jWWG4YH04(|GPamZo}TIQ!hf)%oDje(RPWA`TKBN&{8aW}Z zEhz`-UcBqIT*z+xgoH$f4e6$wK#`-C%++#dCptUy*yx!{B%bj=;n4^{<qSXcN(BMVxg}2PrE0`#)OH>%wN$kXIv4J2;7l#? z=(WNsU5f3q8aUU`B{wR<-&il}b%bSptq@VbF5KExiBep%wlJZ(In)P=vdO5)kZ(7! zQ+d0|R~Bg}A{YlpNBNQLU$)Osm4b(-;-H(m6}@}R+2LZon$X`+_jy7AQ-$F?+UnQP{!a+0P6 z)5+FbO64xa9U;OGY_3iYjStN8wr;jP3ad6Nuq?3fu^z75ve(76$A()&tDr@XNVL6A#<+y)z;qOJ zF7$?9RKA$vve|{#v!3b7JUm7olONmMv+H~@tqQ#x%|Zuc3TH;46=?T#R+Dmu%_+_} zS7ng6j=W~)*>@!Sf{m_Ch0;z8I-Qo@cD&8^Vc-4SG}R&vEG$a_7VWm<4+oVC4SNc% z-eF2G+U7Mc*&a`8e+WzEoq2tKLt9PTi?oQXj_DyOj%kCMgF4GjLPh6_WlIu^s`d>P zG`G9Fa~UWqFCy8VMl=+!)_bQTrc<%gsHDHru=srWNdB1$auMH*X_W)8{Fq1$?$W_^|Xr(lTp2U3h^PwdB^!RZH$@h8(u!C0z=0Y&Wm^6=s zr!d~-x*H2(v+!AkhjZx%(kAu=w;uHwVpKmaXdR9!O4S^^{FwV}M~iM>X`lZwGr9Q%g@xX__9$3AF1B1uY11dIm1}rs4qNwmKgClbaH0X2bUS2ux$~4hVKchoSpnzV?kt*yl6E4 zc=pX=@Z#;rmytKVsFinl-rmzaCbQJA6tcK|O_#L$x@jsz3kj*xnzl(~I_-7ZhtxFG z`eZ%*UiPoVp2Wp`LVj~sF0!p^wCZiu0_Vx}<>~I#uVaJcoyo^j`%9`yE|k=z zvh+TdXUEpY!sFHU7B%QbJWhQqS?21NcPc5KaxXiU)Ox&CE$&d~90P~^Yxw4{|7%|l zczHuPBfu&cACX0E)p>1qZ{TkFT}RD+&2fhe2flT=b@os_r>qWm?}@d19OA}yD+D8=gH{nSd2PS*evkbTGvry^n}kce-MgC9cB@}& zWJG;Fest|R6=R&*OJe_-n`6ZXQmyco3^34QwOibv(KJgpLOD_ z$);gdW#di!>(`!^)-A*iC-rQ+PU=S=!hRl2nDT6T@4qeJ61%WwgZir0W39Q7>Wg2d z59GZz-m18D_u;Ok{MwwJy}d#~BmDMYt>9C^q~Nu=b0$w81rEIUTG)L$#^GXaDIOM4 zKeuMc?sldlgV))SW4qmeXEL-D>S)*bMM_SA^|#o(wC7x1=tA;hk<=lFLkz@#mr2mw zw-4IN;>&WL=vM~K?U}o_O#9%vD0pMq8dUb)%b=Ximw~GrVMdVruNU6`X?yJ^%j-tN z@cb*z=yXofXj1ndDo&CqQgbtMIoLaWWwJA{Fs-n-)wA`p zy7>0S?H$U8=WXvHrnXAvCgzdtO6_otnf5tZ!Fi1z_-`J?F~&MK`br*7{aQ0$*DT~80Ql_EV_KRc+ht5gC?Un|EFcSb%HvpO4ogec7=wd!@N(h*MWmKrbAMsJf^Cr z^tO*ij(#1T{cyXu*D>#_=&Fp_C7&!?bMQh5p<27x13 zHvkYa06>A0UGHoJZiqSAkxAgVyu4iWH17pCli*l;@Blz+-O3{bWMwM?farTB*`4oh zZ%3fA1K|`J+lLMh4dj4m05IAf%ArvA)AKKn z9nPh@hC7g{;rpq08g#n}#3+;i3J9e0DUi^>02YrBY7G4*mjKRJmJv|MHwb^fG1P2D zA;jI@31Y$K(jf+L6pV^QA|VENIG#$SVrg`J2pWk-Baj#b3JXJ_2xuGug@^q3K|ys~ znlHhHX!%1K_+||Cj=lXa!7Sd7NP#g!gi<&N6dZ{N3|w*S8=A*= zq5osXZ_zw*7>AB$3&#oK z27C(>jf$WL&;vnvJkTf9FNZjOY(AUk$NmqZe{FvY#EJqiS_DTf6Ra9a0Fg}%S`leO zG=_pZa2k_Fz~G4%7AO)5gGM4zD3XPt0SQGkByB^QlhEdPBKD_@-*Jg3teK%97G;hz zv|Qohaj0$PSUi%51(S@~hWg31Ve$AB7M1=}FB8;@HbD8%eee_*4P}UhVJKJ>%+Lo% zgJHl$Lp+{lh)4T=;}a~nbPAu%C9~N9Kg-nVXA~f43>*p3wx>{;td+Rv{0oInr10s+ z(3PTvA+a!|0U3q=R*I9ge0)zQ zk^4gx#>~KC8^)4ki8hD+;L?6m z6yLcxuUF{Qq(J+upx4tee1~ba=w&+&=3Hoq13ZFeVrgBH!@^ z1~!^*P1M)eEn|QmT*3?7g|#Ou=@Y_9qquJ~(M{P4d{dH2)BiUvDZ_p(k@AKVaEfBy-;phv?*P zY1Jl*YwZY7_i^)p`UTg@RnygiD|h%t`B!t-Dwon7`ea3Gp#G0t%eAjQY3^1W%g>#a tY}q^qey*>BYL}Jbc?{})jq;J$zQoY*pM8E73SVY{|7ZpA{hVx diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_0.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_0.png index c7751a1d4b721d28573bd3f3614009aec223909f..011570b2c37b21349aba25ca232c65810bd2e796 100644 GIT binary patch delta 578 zcmV-I0=@mG49^6R7=Hl(0002`twPcO00I_CL_t(|oVAd@Yg17i#XtA;VMK!sVnIZk z5(g2K3S9)P?+wyP(52wuAc(j)ICg4Nb#QQTYd66$L;nMP)xii6S_{R&@Kj10L6a9# z+E-uhI}R`YNO2PVE|>e^-0wN}7y*DxcH*#W{sUMvyFgL@)PKbqQvh&(03)LQCuY&_ z2h+v!-`kd1Ec9+4!9jEQn>~;RWLv4%R%!`G^(7Rtt**LCt<=(oP!8z>i&M^m4Fl?Q zI+B;#>2N^`<&az3gzLZA?i_9O=h%B6IP(i=>e^DDVsoNY?#mu6AM~V+ESN%3^;bRF zjVzc#ISsP_K!3-W!vOB7>hfs}^r$1$g|UH-5F{&!IT-4GKG^Ve~z2H-&Ns& z1o(e0`EIrYU<3dQV3iI^D`{p@lxz6b`}>aIF^(yJ3g7^+1q49xrKGh~dM%})997@; zJl=o+#h#?CX=z+aLOJZ|g_8GZ;t~KelD02EBDDfs$bTxWce^f8y>7Bi-6vK1ut0Fj zcV&Sn&*bN*z_X!A1M0f5yOIt>zS1R}si=JjpmHTZwo<`%?|4d*^*LamJwFfNDM`LI zW~5i^%_fpO*>-%~e?D^d#n@O6L{kr*j=zhK)$2w!cRo<#$cf>5=eBQyi-|9SDPO%Y zS~HV?(mR|dU5)@RuGMNTW_uR=Tx#7QseogQ1NfLctd>e8S7;W17;Xme9eeB_(EP#x Q2LJ#707*qoM6N<$f?^^OIsgCw literal 1575 zcmbVLeM}Q)7=K#^mijRxsAw|1)bEe$eQ<@|LBZM=+Bb5`C0DzI^g+?2cmGGUXh=bo-imetXCP*fSWEb61m<s0S*EVw0L5Io+6W2v zpovthQ@tSNuvig;7!;6nHGy(Cjw9)`+J(EdE`i49A|y@{7(rr$1|{Jf=SQyIt55WwK}MKP_Eg+iR11EJ{F1g~c8xV-qx@p_H6V4%SC_3BeCtp66=yY@rtW4QGPqLfLpZFA%^#^n8(v@qwat7H2H@a&KwusqrMS<8Ec*M1o1Z0gwW4$E7! zoOSjN*|+^Ob{Ocp*JZtZj;5Juhdvww+6~^xH#PU{{$^yvky}@j(PZcCabs^p7F@31 zIHBz+k_hfDn%(x*?#D^<;%9!}YMs%sd2;{N(?u5#TAlYl>dq>#qcU~-c&EJOFL2g( zb|hebtF3xs0M$Fsmr^UH8xx(&kYP8<^$PIl(gAiw|A@+!_c_q|`Th#&Ov74b_ujE) z(~jPo%EfV~SHIQ2bIbXzGnYWsGyU6j8ArJq&x5XlXV)@;qirb^X6wkV(#?95gH(a09+$+Z?)Lv@%$g@53Yd4B_=Cu`W zNT^%czT{!Z13K#)pMM7qr*tXfhmj>c3G(^p60Q_}yfm`~SDeaPPd6rm3wx$zXm`=) zPHghcUBCRaWCDy5UsW_Uqua8y*>>Xj;fmqMT}@k4EUN}ab@kbtX3eBuYu;R!vA2qu zTJ<0=?~PAo2iCPx{GENH-Upw2Fz>;f-sa*)bQAOUJLaBqbz$Vkwv^KN^P-~m!lA9% avIL-5JF)tkYN{Si5-^)`jR)sD*Zc#8Gdbq~ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_1.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_1.png index 20b3a71045078ab145fa43dbf97e18dabda89d58..6ee8edd662d6e45c8ce26af062825fce2a6507f7 100644 GIT binary patch delta 587 zcmV-R0<`_L4A=ya7=Hl(0002`twPcO00JLLL_t(|oVAlpNK{c6hM#lh(qu`QAV_2b zLVpm{t~UNGLI_&4$X&FNT)P{g7{_Q)xCnQ;Dro6Kw?XEW7TO}H5OLvfrJ|-q&eT{l z;oD7Q-2p{OdCM33ydf?x0uEL zW{}I||K2uFeK)`NV9^vs`V-I!$d$CDjCX_=^fgiduy%P4M93DPIIBK=P85oSDiuGb zig&qaR*Gavf81wVKjHHn_zfJq->lH+&3Q=efvth=sU}JJZTlBJYV6rA_pd%x*5{m5 zk|NonnVkcu7=P0Vz+xCUwG z)GJ9+q#z}Ve+>Cv^2S~{04FUur;~|EM%KU^;3Cu|<*_Ee+wcl?AKvF}qb^qW+&w8z^PzZ48I>6)ki8Ix!4>9uI zq&ALgV?^lr+W8QS)bb<6cC`)qo~=NDsVSe|PJ0)G@eEjFlCNr7VYR!vI}m7mXN0#y Z_ywTfFRSzn$6x>e002ovPDHLkV1f|-7mok{ literal 1589 zcmbVMc~BE)6#qg9a%k~r$(SB&Hx9OzWDk;%U5N+@DX}CXVxi+q&1SPX3dyFMg#;OG z#G@8EsEp2_s6}SlI@TUkj!|?-t#(?p9TgAC;8nF)YOB&i9glQ_#P$!zKe{u!?>pY_ zz2Cd`y<*F&lagi00DwuRLPLolL&7^ZQ7n9~B(5_HVme@{zH$K(JY4!BFp`Eqj+NwXd$71dD&Jw5>qKu&JZN6{4w57`)}+pB}G_w>S$ z+pdGl)MnJ|(=#r2;ZlxSxYSZgFRh>nJDfWQ$_bK!0T07dP|#E9^^-vzJZ6^^*3n}G zhQ?I*3LX5ARJpkr(z6@`Wh*fSjiM-&O(<=sLu+FQG!w#6978Z1!PE*IBXKo}siE-) z7W{E`2U%h;j(Zb!I@rbYJ`zC!fq*iQrDQoLf)NCPpg4l#3PD5RukrF!P~r80x2ZgEC1=8*pbkX(dDCA5H^pdiSY^}#0j&)^vzu)%vnNlQE7o7 zBaz65KYnl)fVg~fsOvT#yL11*g3u*N>${*sk}z9V zYweb-N*$WuyFIgBzb&w4OXs-(@r|418mRC5G7z3V&pErSEkzral&5}8pBzn2OI|Nx zCs!65R&O4NADMa?pk!0p&d;It_*v&L(A;!%aKaBY-G?EMDE-0~2|3^OyI4N_t9oFO zv{f963ytiTLaK{rM0Km~_Jh9XHz1!@gR7zwU_)wn&$hro&kprF($K^e&XlrIRmL}x zgLvrf#iV(EG!}`I!6Es|?Om#FU0Z+K5%ASLvFUUZc2rWAhW~u~oMr1PmNL;izH7)* zRhun8vu+az9bA6ry6JdB!myQ;uD#ncK+m-Y zH;$c<{dsw1dggPW>t^S^`e)KSoM&W>2+lh`CA_JEEExi2wpIEzs0$Cx7P@w(=7Y( z&&)rwtPudnq$ieA`~&Ek5@_g8yTrzf0aP6@;>}Mn-KGzA8h@SNx9#M&d$8y*2cv-E zS4m1@f+f9#%8Vfb-ocXW=f-9M^?GT_PIxATveX_*ZTr(DFtq0bwKoC}ysyt6dXl%B ziRa9iLUGl+J(iTj(yJ88KAN-h4$w1Z5`eq<#M7>nd`KTsC_B73vJKGx-a4OiBNvhq zNs>ZYOC+yt1b>yHqFNDy(oX%bmY);`A|G_pSI?s%JY%|w)hr4WRdiicP#dsN5L69- z!2K5k7zu@Cu<23+bb(f}#_~0cJJ4<~ZLI>Qu13t|RDA{=6^g=2AU9A|00FEy;2fT0 zAg&Dn4l-cU{j_p08bQH_Q#c>#v?~Gg&W8XQG9O>rj}pigWluEo00000NkvXXu0mjf DpX0Sd literal 1386 zcmbVLeM}o=7=J56Sp%eG$>zZ5wWd0ccX)?AFOl5S{hdk3it6APUu~^9<(%? zoCt}SeW}SpT$Zu9NutS?m}!={4Z`9Qb7&gN&+oCZp&f#02=pST%c*))K zzRx|s-}5~jZf+{Em)ijVCBf~!2$B|h8;c6iceZF>2#JlRKW4V*aWgF%5NuU+31Y#7 z*a0I@RQh|qg!KRvq}6E5jD>azvYv2?IU8ptkwjKigiQSO2!CczF>^We8WAIC9O z@!-3-5EV*#VW+x1YrvLlb5zcD$-II$Y{BX?0wPF2Q^YcfZY?EbJoqB7fX+EJiDQc< zW|s$F3Mv)~V_w~WSe=t5WQwA&I^HQ!akm6{ss>{yh9+r-q&b421%?x74qJY3s>P81i^E^*d49PGAvLI6Znki-oEmfIk@WGU9s7X`R zH7v&{N_wy9!BMPBNhFe?&CFS?Dpw$Zvtv&(C5L?AE%-!0wd9kEXfR^xS>S2 zcts}MoJ%1T(Z##@S}HD!VxDI;JVntio(;Ho%FocW-|MdP^M0?FcXKSw(3CHa4QeS< z)MS|Vts>vcSoVQf!D~R#)QzaFcjxCI+^L&-s#8y54C`dD>X0a_T2AwHu1iZv`=Fur zK_y`532d>OC&-|~?tC^9!I z|Cyb<3JqlLxUviAva(H3Ln~yUU2*QcQ;7EL;qcC=AIXJWs?A6vB5fUV|So6+xYx7qOH%d{_y_jn@8|JADgN! zdX^jATXpsN)H->p>Dy2_xHtby;~ua9&~W^{hhD}1hz=dSbRpID(T7&a!DoRs$$!z(n6IvAE@ec0K&<*nb*f{(6SsL!BJV0StSR zG#V1E=`9g#r9kTGDG|&b=Lsc((qIhQ$(58SKrfz$E%{=nJ~)URpmw9#|BCCNev7wmWopXPlY3 z(?-*gplCu;v>4#YjS*2G=nGg2LL=dUL<5>ssje#?g=UuT2J>e1-D;+#2`DwH(JmUN0CX)2p7MmB>stvLMGjRnzWVnByf9GY6c zA)|__LKB^mC8?xmA$~`g=EF@~Kwub-VZuSaIV^;OL4oHy49n1=5;u}FEh#6% zl5G{)p5yv&%N2tLlq}6iXj-P!2eGtfX=Yl}G1fz}SVL5j)m-uBkz$o*gAPGMeI67SLgSnqUr%kb!39bM~tr(41Aqx)Na|r>Cd)o_p(C0LnH-LjHt({^#A_ z-}NcBcmA_gVnsbze1kG${P-CjeHkLfgAl?- xIm5Nz1U@`pwLLO=scJh!OV^nfpLT|U3rwzA9ysd$U|sPK7YTQV4h1%C`3IS^&G7&L diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_12.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_12.png index 1edc9348061162f58f2ddf1ed86ffd4c7a1dec93..fef1b5d50a75dfde6e641f08438c239c6e3967ed 100644 GIT binary patch delta 385 zcmV-{0e=3~3XlVk7=Hl(0002`twPcO00CD?L_t(|oVAfLPQySHMBgq}5+S6R0*Njb zH4@x_P;dllu0fT!63#ry@p0+@_q03QSGa=-L& zvAWfJxVQrbFmB&lJd(0jY%soo@DxzBw9kRH7~Y-R1_*ZR(SE&!U$4Qux%I6Y4C^-D zMRbl|gk3-}lX~8zQj(-p-Wi3bFyITTu;620Kx7q}1ur(mnlh4$f8aUcR-TAog_MM f6gq@n^5gLhM#h{>$PID300000NkvXXu0mjfT)e67 literal 1365 zcmbVMeQXnD7=OEVr4$jPk!7Iqa)V_?uJ_U2*1N2u(7Q>Ij;5<|2_xY?-fqX%yW{Rg zyG3Bb&BPC6_%)&?E+jhsK#ajeQFK)j(W%jh#-h<6YEVLefaoBG`F2~Ue=PjrC3nyJ z@%*0W_k7)B$(H*U` zO^x6Wu?Z?+#$czmuFrz4eJyFFuS?-ne03AnnCFp!EOaC+pY7IdJ|DrS?eb_{Iwo;! zTE*##;4`G!5=ks(SP*Ln(1b!!6xP56WGWMuAxEvk7>c1unjvYHU}&CUd78y$9~}9! z)C`{znrFSCT?FrR9Fr%>TrL;L1p|iFLDC$@krYER41qKVyH|IlJfYh)WeWnd6-zT6 z&Cs!uMM*Y#oCuD%&IFM)6Nx#)x;>jJlr%CgnIs*c$ZWP0*|fIpq~O0a=GC^-y(T16 z&^CH31yv+dQwF2#-P}=05wYPnS{f>g)GZiFPZsJek6BQ13@dFI-Q_+=b{dXhcN!+f1Op6Kmyi@qFP+?5s?to*0<^U4 zP;Iu1EH<5HUYmyk&2kJ!NkM|*V1@|M!4MIaCDcEmOal$sAQh}<@mak3f73@IQe>%D z{?j|t*KbSI0L0Gr7 zod;ex75YE~t$X_a-rEF<6OOyMYkbGKiZ9RQy~PW=#u*n@T^L^fGiZt4;Ytz}g6q(I z3@E&_u(toNBVI7*tBX~D2lIOl9<5BCxUFXQN^g3At_8&>xw{J2b-#D`#o`;lS|0iE zad>=r`=erg`_b{sjxf9_dij<&pMTDu{_%J-X#KSP$eAH5F|e`r54Y#D$`#reICS+H zfAVS9V9ih*d|Ux0-gEu3&{@&H)pMh(^8Jw$ge!fPQbSMpstQdPuWsI1d93PpvBy8@ z32$Hfo6B5u+GF~Y&u)rdZ|PWi@J{URS6e|f7#*9qu@T?d#?fR;kxdv)}l+dZvj_cTh{o+$jJH9k1j5@2#42h G+5Hc+R?XA^ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_2.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_2.png index 5752d80e6fa14bf9a7466a6cd78ab60e1c1b1a58..64103f1dba9878c30a53b126b5eef0e2dc7f6aba 100644 GIT binary patch delta 606 zcmV-k0-^oA4C@4t7=Hl(0002`twPcO00J^eL_t(|oVAj{OB8Vw$3MTBNw<<(OtB!{ z#UP0S11|+hp85-_QxOF1p-Wd!?h+oldG#cF3_RGShzK0hgM^WF2oJlAhUFIK4(@_8 z?#z5UteWdF>Rlf1!+Y=hc<&hjfK1b4am4-um@`K}M*mbLHh(4!;Oqk<{MHgPH_{5m zGKIgFEx=l~8GQu{O+t3P2|579RYjTAB*q=oFHb10Do`{QOI59TvPhoMz;-cnBlH2P z)wCf^#be%#U=tt)h?V3ey_NzXBWv%27a){W0Ocb| zNu-GlNe={>NRlF5_#h>oEG+^Ak?wv50Sb&f`BwCHSbu7GGGez4!c(m%TPWG}Ht&DODOS z1-<1midW2pqI@)PebL^{<#I+zqsM3besHWIdv<*nB05^lBr6mUwR)C(3*l`=v s;23BRIJ0Ux0>1QvBdF}3@R19@0mnl`zXl6~AOHXW07*qoM6N<$f|6`T8L8UAQWNNFgPG=_DBNR9YWJKO`Ae`M#u=Z-Ryp$X}j6D**0mN z+JICkA|Qw$)BzNS!(zG7f>0<(aj*=aBb0&^VUUTSfMB6W+>{3WgW(T%X7_!^`@Q#j z*VgA|XQ<M>AzWgk4~c$7|C3zVDz0_OK?+ zOoJV>`_e#(C$m}r1=ZOOrn-zFSxxd(cuJ6x3~)fC;UHJ;^;1EUrq?bdt)s`N2JTf6 z%S@Wbq@4C#IE@zoJXwn)42EIwWK!$G+(s85v57E&5jctyC~iOqoFWVqZh-q9jpR>Y z-BiBC+UHH$nKUJ$=%Y|H5C~`kIxR2EL2;5KQH($d0+BQjf0b9HgNWBZCT76`{EXo7 zi5}hyM=jDWzCtu7+A{QvmHehB{o!!;E~Egms@zIf&*UBW-)1`8!hW$DZ+&ljEf-< z)(BjPo@5!sXwb6=OY2D^ISF$!G##_^G`v+$;ut{~NOBU1KT#q~ccGkZK{* ztud_4>lbM+17f~ClJ7pO{+U=RO#rmW3l5$ykM%)r2`}>g65an8$B5x zt4{?wtx19I(zuWoIMT zgdjW1-#?)4+?h3}NfHVsjm)f;zsByw^bJ3>@5HrSpe6)4FxpdtF`{PTgR?huNQ%;_z9Ech|zWw))(pHkr8;=uUS|YkFsZ z%C~x~@^oHzOG3}XHyaBo!|!g}kiXot|MEB0Z(k}MT9~2#YI*#IbK%t|6#luMXRV)C9KIf2b!^3oI~&IK{8I95-O?Q= zcZG(?LObJ9Z`*q8TlTPX>(0m%A_)3NiTIT5Y%hW3`7OqmlKXSu&4=xO- zN%N+_ftnvKw;R7}Xdad$%NX7UvXbxL?a2wrpq#NuWi|?xM}O$H^lZzQsm1gD0pnau AiU0rr diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_3.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_3.png index f62078f8426cceae8fdc9a4a5146da8db9ddd122..a05fdf82532623b85fee981df0ed67e3efc2763e 100644 GIT binary patch delta 615 zcmV-t0+{{L4D*G$#<={xp27meb0F~CIFD7H;!HBKM2#dOX$---4dI10e^TKf{EJBFE(8SK$6sC zFuoIxOX0eYIx{jhxGt*1IA>7=wOg>vo3JB9*a zZJj!eBOR|2Nd+YhDU@?WW&l53ixt5&D)B`?#f&7t%ZL=80hJVTz1=}Dd~Od#a4sdS zYcm6rleIKM6(Apgo`YL&aH5Iz_~t_snjZ@r4Eog9kbhR~w-hgj@>Gp|51#A+sC41z z&Jw|`QxVXW_M;$4T9o22lryumOBG1I9!;A(0WbrU%Vh%!1i;`snxz0wP&f-H0rp?Q znOWike|%`pc6YnsT3-|3hYyrWCE|E0FG)U-IWRT`keAeKy(@jXxwPa79sr{Ur{7=g zZJY;5pJ1h$d;E4_KDtsao8s(RhWOsg!}rgu4uL62EJNI^Tz~WBL;xPv`3s1S(N=if z4IUQ7KsJfJpiu&6W}XjNC(Pw?IZvPwfCz2`@E3@CDa&<3#3ld$002ovPDHLkV1o7f B5+?uv literal 1617 zcmbVMdrT8|9RIadEaed@o3DW$=bW;6?cKG7-VMf4T3%~eg)T6L$o1|D7ih0*4_lZD zqHH>+Y%?xSjgN>Z8q`cp=G;cvn9)5lrct{^%wA+$1SPr|$eiqo)a?)BAG_r4`+Iyp z-|y%9x{dadf&|q(6#yWisL)(0$yVv5lnUuPr0lRsVyj-c_DW~~vT}l6nyKeR$jR06o^1H$nO+#; z*=)GnU_))*Jg$x}Z1!IgGdP%J|5C~`jI*s6~)nWueXi;2?OGugD7?C}NRz3XNhmEOEUbgxhPgJuvL?Po+vqnl?y#wU`Fgy4{h;Cbj)yDfcgp zhidyBOdBh@fHZ0v}Se_+u zCx$al21i&U=S1`b%OFOBo<&$%PZ)^|)Wy(r)Xu~3`6iQ*(CPCDB7?v%OI|KUm`oN_ zhiBmVhKx*O6kFu+i?oN~qP}^__Y~IhNGzG><7iRvIRv30+6VSJK@|LTf)~Pd8XQ_; zqZ!^4IZ2OH>3+~=&d0Ch*nFShh9=WY@(-ba83>#}X&r(RoD0!oIz3`^(o+BEU6~kX z(4o2v13ZOi|8M%V5-Dw@SN_vG(IcrLBg+S~AZ;E@6X%ge$S2K8iG0;gY0hHoR)`^*bYpAh|D1p4}xs6g<-g8n<1!85|w}+Xs`EQ>9=-!y^8ydLXXritiSf zHp2ueH(JxHK+@3F$CmF?eAT(b)I-7-Z@oL;yLW$U@kzEa_WF}4Pc%L~E&Ssjp+tDL z{O;8gWbS^|+DoSjE!}dvHT0WHRdasLeEG{?VyS%m=pBD*Vn>_o!Y3Z*J4vHTbaSuz z@m~~uC%bdkQ|9$Hb-4Ow=<>GScD0#mOkVW*czZY|VGl^^pCxEqTe}98-yWW)h7QfU z;e;HwcO9j@&F$2Twq?icX^WDPdpp$Ust%asZwYG@?ZtZ+-wvKB>&i-9qLS)1Tr;Nt zgp^CuKJo`PpSF(k)aB0N@q_i4KJ)Fwb7`sz7j$=Zi#LJ34xj*@-nq-x)}~ZPe)2_@ K67x}0P1`?uJ3A2o diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_4.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_4.png index 021e0582200da47411a7dfdf078ff4181342c13f..569fc7779a99f46e6e3b63dd0e4755c4362ac45d 100644 GIT binary patch delta 549 zcmV+=0^0qE46+1}7=Hl(0002`twPcO00H?)L_t(|oVAlNYZOrwg}*yHVPXvIZcqrK zCWbUZFtHRAr-_KYU|}KH3u!b>;uKn>vQ3#HR$D~;0cN(5kSc+oO<-3^5m0AG5_H1u z+hZ}i?q&rmea(9u?tSOu-1kfXAj@|=2G)NNsx}}@=%2bcvwu=ga2Aup-@+PK z!hRQRx%R0R$^n%6A|z<>$9gWQdo}<8V+m}ZgFM?f%FIl^=4w!NK?NshmSd!$V&Fv&fJV|LAB8y;Qety0?(n$+( z?+(Dn1wU@W93_6*3iw#o9*1eB*}r=qJZzLnI1>%o8&@uueJpc;4HpzQD;?5eO1oLi n;*lNl4<1yMoTSZbNs{~mI9lkl<_#uO00000NkvXXu0mjfNOSdr literal 1544 zcmbVMeM}Q)7=MqV0xCooqbTTkIK~3k`)EshClyM|M;D8v)={Gqu6J)sC%voJLkehC z)Xf+XG%oYw4|N|-WRB>fbK;^Ehg0WtVwU+4GtoH%bHRONOEeq10(JYt_{T1}d)|-d z_dLJn>o!$Zlub^VnF0WqY%jMtRT)v=q9l#_y`R+XP(`{@;#L+*UZsJPA+QLN2cq@> z=Yvkj35}~Rzybg?4SttfaXS{WycE!KF&%9<5LD3s6cmPo9KRAOs0aG|q8S@Hc^X6g zf*GqaI7mm(3Tyr4O)^~ERN>;AR`QI16)r#v!mMf_02K}m2kOKS8#ZGjc3E{DJ0>u6 zL`7L?#zslG9hIn6k|Ao;QaDeNBx+=|9@1;_K!(giX_BT0iY6!nPE#yxU?~GS_F$?% zS@5z>Tj`iLb!WzE6(z_LL_3`3AKLDRUZfrlDJg$v_iC@XHk21C5; z4=R31L}L~?k5sRiF_r6R5P_h>@zk&w8cUU$G$PCe2}(;6fj}&>5$%xTg#Xfbrgq5H z7=(lqhNOC#S1aPpii6ecJ>OAGQDws}lKpB~xH_A}*9V}e*llJ^z0nGOfu%hZ&3kwn z7fjHD>luN^O$NPy3!I)YG5MsI=eW3?XW>bTB8?>!$uRjAiYl?1^j4#_gtF$FiY=B> z#umrg#gM{@JdFGHtG-9EWa)FUtW}1bBFQdEs*CqQWv!%0p;{@3(mE}T<~TUsFUC$@ zj#X(iXd9IMtD#UTO96Bw&8+_!6et5jGbE?ONd|gxJ*Cs*CJ(3fkKSvfpg~9K@(tJ+ zUiiQ1BUDmEtXKZiJMkm6A!Ey@v!HICP7@T>5t7we8R|Tdt^6%leDmSXE#g^p(uVdw-x#n560)!RURd~k0A4&=nz`neD>qUv-YjkmuP36@ z?-&#IRi}Xhv4x24O^kHsgGndX*KJSRS5Pyq*7#HP0NA~0R?+RDrrgOz^}kL)9#w-V zICn({)?T0S;70%E&C^!Qc>vlRGeBNWbMLiBvjLWyZ9}HFwkCCD%8Ii)4^Rx5gzS*S6CWtMauTPgIxZ6f%El4zb`{p41b@LGPuaRK37>fKK#+(wu%Ei z7IzDB=nqZV)E%!@w^jEXo>X%ztJuIdM}ACj%{epv4*m18ednC%%fUd_teQ^vmh)a} z)t<{aSkhHl*fFlVytY59=WzDMbj?>GgpE9oMw&}g!Lhl8SaM|T@!2gtV1qYjYEB`m zyCWbxVII|6)i15XLAL?v?YV^<{qk~J%Y}ZWFj6RAO8fd? zE_rPJHgNTRTU7=)bL6$(rnG%(IqlJ&`?%`O_qLN=9pi!z;Qn&&HQ>9jF)3$Y`HH;o z(1gI?Qd+pcByAv>*4^gTPk_peV~^`QoNF>%Y^sqXe2cV+uKm(Zc^lx7I?h+OIH`_}pY+c1Q>;3^BLLK!0 diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_5.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_5.png index d7e88112a8ae23ce0c59cf2dad130af731798de6..d8ab4235c1a62fe60ba795046c94984db0193f70 100644 GIT binary patch delta 549 zcmV+=0^0ra3$g@|7=Hl(0002`twPcO00H?)L_t(|oVAlbXcKW9#XsN6!8JBQQWUCa z8%sf*IyebRVrbnRvbi}Z2)1LkW^iZ+p<}1gy+d&mL3*tYPSS1;YEme)BBqfPda21h zhu@`5iktXbe%$BYz4z|-#{>W}H{)?`{0FdU=fJrB#dJ4&4u7ovGKb_w3_6r*{V5NM z0DkfmLv3lmL-C;Lv8BQR@Cw~Zq?&gj*t&LW^3XDH0thmIx`&b?fGPd#>!BDp0*`nB zAca+73{a~jDGsD?%2f~c09$~3(xZJ1pa@hQ7M<8WZbjvh`d_XCk$EX9+4ofp2kLyk~)(1CDr7oL}#F>o4RMfw|cyQvdQh6DwI0*~y5Sdk=D zz)~o9s^>PqJOH#IpVOtf?8TfYOL`%0qYp~~ga#llKO7LmDyU*^SmE=V@jJ&(;+W54 z#-|(Yls#aDmA*+41x}5WIK@bn$a?Vn@mOA%Lk=XU3Rqa0;}3FSGv4i&L+7}f#IbG@ zwaSb?Ny=q+U{+aySgxKXM2e!YTvqR=D<-Yt8%bX4q%Ky&tPxb1<~h^YqH{9 zdQvnG72ka5u_>~Ib<@oGo{<7=WEqwc3&x%%>bm&RnicA{mUD%tM@Hx)t1}nAc(FA4cz(gKVb_zxn$8T+ zehW+gZ&8Uup>EQmMX!&b!?87pyBr-&ohU-WhFO z;gDwBs2!|dd*$!8KS%6|y*>SC)&XO*>`+ztfa|x%)HSR-wQS=L`P-sOJ$&QZ^6|09 zCxC8i3Ca9r02^kkejRv2i>7D+zSn%9B>Dw#B~wFszkkq@Qr`tw6s z$?dC~_wP9W;pqN{f9?oB(5%Zy>9gpAU3Wj;=Nj0MHd$&*smKQ#MqSwgOveWCE%<^d zt@Xg&Z*N5R;8X9(WXG*dtu?df=4qndY4@^T*>vLI3#qrP7q1Rim(3iob=>_`7r1kE z>v!0fj;Sx6@Lh#=l?ATJ0*fav-yhuhS($C`#+x;_zd3%Gs5*Oo$59|OTaql*M_T$= znl%t3Q$y7!q-hGulWZx{3YA~ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_6.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_6.png index 142ebbca028e5278af20d8ad239d516fb172cf02..c927e79284aed3ec773e818f4ee5182bffaed3e8 100644 GIT binary patch delta 558 zcmV+}0@3}G47&u77=Hl(0002`twPcO00II@L_t(|oVAlZYg9oLhM$?eve`soHx`25 zu84^E#S$BZTrB(t7J~i)F>O+)dmF)6Sz1QH!fYX8Bc{j(EYe9pv@zbr#zf^N81e2V zd*`*7yPDm`MyDC(nKSQu&Y2k_0Fd!BmVxmfz=9b7hxAWfGJj*r06`BJWySs@=C$hw zcTn^fmnO}AaJ;7x`Stg!cJUJ+w?~p(76Lb8p=`|qfK&0GYDJ;TTd=r$Il5Sg4uYk9 zD+eJVfHvRf8d7UKmZh`57eF}#v^D7?ZcC|RSxsGQ_SN#^a`hnq-IgcoOQT;UxvWrE zs#q+B@196<*?;Dm*H|&no=3n&vFwk0D2=YxC6{(`m*Ep569Apz+-B?W$SX-s8@Yz1 z?VnliLfTM}RiA1O_)l&9q<8gt(CW-A zuxuIP#7s7IQ`rYDSsb!uaS$CctD88?&=5uECev)orbe=C%H{{VB6a)2_{T1}d)|-d z_dLJn>t1sgFH4*TO_k1okUtRahPzy}o;3HfTofF)!@$L(6wb@UiV zk#QAegAIK|s>0<)@+BD}*#;8h2!cSe8H0!Lnmv#qvJi@(NSvf_lEx^~LeUnIMkXFq z^(XUQOQ~b&gg13(L#q_UZ^7|kFlY!G4U)VbCmDvp2@0nuOx3^wn?!{TVPYU7X2Agi zoGkbiK@yRuMb;zLDmGN*`X~sW-{pF2SPV?0N=+IbV*NO2AaI{A8risZKq-a)(s-hF zpnQ`b;-xSk)ykY&5pPBetY+`&j-rYx8_Nn=P|L#BI3%vt2Svr{u%YUWffslSG_tA*)Doxg^!Z`oLW!DN>+H@*|YdKp_iUEGLN3 zlZDYLJqp?ZWuXr8OJ&K2jHlTmJdpxJF$8PG2nKpF6KOPIW)G|OkI9=&LfS|e7t!bh zp8vn;!&Opvv{(MqJFz3RA*0L3v!HGsPZJc?5t7we`EJkPS#{2I?xOMnRgR5~wO=~$ zJpgft(_t?UUB0<{dsBp%+Sqz`>#vO+zK2;a6nD%CW=$KaSlu)9=`|gc+O~`)^?-HZ zl=>(?1&SfA+|s-O0O_ zW%x4&4DR3SYZKo|Ysm?p6X$lFSXg%dnckB3TZdEJt^^xMp9R(~t?fERep`fO<}KEh zT-Z2!OVn<}n%Db~7Ee(Y3i{N3+uE13~wLO_N#KBLd z-ne$Rd)}D=ipm-VmhjQNZA}BW&b8`CKQ5YHS?8HIc^kfVIHBA2wGkXTo7tqBdDWV3 zeOMQ6)$3=@jjK#RtdU9J&f7`7)x}v3^NsYB`kv-#mlntOUg?})(|7svZQ#TA-Yv{q zZsNho`P$o;r>`#Cziv!9aPh)+P@R@I)R7bvwQc(reDRrBIvvavIvk{|5(CH?vEmcFT9#;*Z=@h!d;uk^>6wEgk?#rk3GDNSWg zCwAi8P?hfV6+^^1xv24E{E<7-1-dny8cx&bz|MQK*Q{%BN495hJ7=Hl(0002`twPcO00It4L_t(|oVAm`Ym-qFhM#kLv5BqNmKIdh zwn4C>VE+Oe#b5tG7jbeD1ktTi`+*8}sR|A*f*>wta8X2un$V>~(R6VTB>{`Hl-iUC z{ZjLNufvz5B(8dw%YAsyIqy05UK0Swk{w6K`VXLB9bj1hw0}xu)(7C5z(l1z#0uGV zFg+anm2@lH0gA;AkPpE@&;r2@IP|0iX3Bt~O-YI)@~5zpc7aq*+K=xyjg0`HYBf^$h zL-AUh@8q-?DVr#kNG)Kh_0)^w$UwF=XGl^t35m6#34dp1whu5f$4}0Bzyy2)1!KpK z7+?~*4jg<~Iqn4%fJtCsOhev)@lVhX6teLnKQ(pw#yKDda6ZcUdptXo1~S0qdYDOm z=R{r=VEJe|{UzU@UaMWnd!p_-z$|NTpWjK(dMugoBrCV)-waK9 ztTzPcXEQK!=3_uhk)!fBKAFQ?QkD#%-^nyOm7xmp;GR|Z1JKkNsqySDasU7T07*qo IM6N<$g5=o-k^lez literal 1574 zcmbVMeM}Q)7=LSxR#Jq?V1O9U(@Zq9*SofqyHRYRfE5d@)`;2MxZYi%gWet2!?vJH zH@`(Qoms+MR9qZR7nqYxam1_uKCnq5Ma(Y~=Ws63M+yuu)0~rmtRAw0 zu`?tcsOe&|0g(ILjxw>#Hk+V0kD83=sQn&ZLIaRJ!_Sjc6(d4Urozn{;hP-?V8~4y z;dy$S#>VF{mF}5!0yC$s*g@4*Q8*3H$bqu`gk-?Oh$Q6qRI^^fZ-j^J64E+yjKI*4 zidbcYp9WQCD~0knfq@KaR7Ght8pwdFof=n`lfg9^5T?OU1jP_kufk9Q(-Wv38h&8O zpFq0^yQN^*o3t~+m7>TK2;%ek)IP166DklC$8ki1AsD8TG*sRIE0TT{>zy36U}3zJ z;O0d)$3hW{q?4-^jj$B!(m8;_A`S7AJc6nrYzj#km64$s0fH7<%IqjsK$NAnB?nfhD|$1}|+nxB`8Vpy&Y)0)kB z27|f49K~8$uSl{K6ZP$ud=FzK%3pvb@&twyIl;kk)zLmEt>i?`TgmYdrd4B5x{ajV zY~*BGq)JbdwlIQwAww4koCg}BnQ%WZ1U-)78d9s$;EYS9L$x|pmXnnFN9Qu2j9#nJ zX6oT#JpF&^L!_XPNU!{-ccMp9Lq?X*WpMo5rmOss&uv^Uy|W) z__N=(^Z_tJYqgji{xjDb8`wjTGCwXH{&mBirOEB(38~-OY>7Jp>z6Ek0&V+d?cJ-g z9569>Kw;XqUv}|E(ja(T1g`8!C=U^FvNzj)4rj`*Tz=Stfb_(#CNw1tu)$X|(!g8F zlLc3k%coqZ2d8?+g0=!aR65YS0z3|VnLv9FrycAZ@ss?DsXsAwa|trptHXvyE7$b z{kH3(W#xmNogF~XLtWEm1}lI0ef~vz#pMyFM;$uXw|ain#m4&sYiLWm>%Er~w!R)Z zReY2_e(ngX-v*91Po5r{8{9Q!qP%_oE$84Q)8;dZrauw2v}?S8_ETc?`P!aL)Fx#I@=>eHu{WEbAJ)mv{2(zCYrwzMs)u>J@JI~Js#9X)B! z$eIj|F1Vn%r|7S?xH10jnuGk_iLUtNOB%K-``Qc>-iSE{nD0IgnF29edmf+fE=*XI z_%&#}wkv66tL%q&mfV=-v~AfSC{~zv@2-j!$D59R?`hewwB(qHjh(V_^qMA5ZP!#{ zlrVnErvWf`?47&a0eD?)W0(A1OYNmEZXe#Q$iH3HU{vlr;!K{E7~h(lapJ(+vW?Z} eJMI?+WuRw6%9Drt8cs+4+}8YJOKWcV`~LuABSAU< diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_8.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_8.png index d307e7a27cff7b80c61e15a3a80e52d80af0052e..da93d6f148d45578b67d9a81558d4e0de2116015 100644 GIT binary patch delta 478 zcmV<40U`d!3+w}s7=Hl(0002`twPcO00FZ}L_t(|oVAm`YZOrwg}?iDV2xSC1W^%X zCD>TS#(D<}Ya2WN070;IK}e?1!p_3N(#FOV!B!C77DBp>jUY)}BNmEC23N?0ota}X zoB4&M-sUkM=e={@y>CnaAS+fJt@;mOWG&FwKXu8>P6GtTz<)&C++w4!3D)`%Flry_ z+aUUzZB%`I*~g*h73cxV4kRhh@T>ai*DD|$Xx|IX9#jf#3r(j5SetB0dvbKY)=X3H zIJ#I*5jsvhs(}Qj;T>Orz`Nf!S8B=Pkof)bkIHr|w!#lD%U~MIeY4Hi5im774|sML zmcOq{`Jr?uO@HK0UR}Hoa8z_XWp;V-jig+Xq)!i>BT;3mhy*&7VrLd~MB0enY;pW9 zaFCYs00( z23|2he&&=3z=yhCHeg<_N|1F^fF~ueqCdAQ&`V&RqpsL!+;-sSIlu(SC~^RQ0I@^i Usz%BAH2?qr07*qoM6N<$f{Xm%7ytkO literal 1479 zcmbVMeM}Q)7=H_h)QOOpC5~lso}%Dv@1rgBP71WNNH+?#vI+Y@uXk_hS$bEmhrN;! zt5G+TC2Vef#5u)}ZEiUC$KpOP5p;8=i?A)Ah9xqMb4wP{EGEce40{XI?GNK0yX5Y9 zKc3(7{GPAd>8)RtJEvd{03g?0>+~U+KyOt}Ci>pY>GB})wCZY7*T?}i#wifk1=$ZV zcbIF1KFA62jY(JzKxRyAY*L#%bu2H3ja*8{sD&d44M2IN7UB31R53qn6(t*f=X4*A ziGmGZYw?htNHq+KwH*pv(^22ZcZ7IGz$+`Ta*ag>!cgTfE!-wWSbxh#c zl!_X%;nSp=JYK9?Rv=bpqzpVsl2{pI^pgRrA2Q?$j3#M{plE`!7-)*6Ei7fhW*!{* zQ-lEPbJomwLpvKDRMiMe5V2Uy7&94VrInx{+8p-m2kDYa9StJ-cZv)Ubug=Fkja~b1E zW8G3z^0FG{JCl2nzZ zgLXni+ysRhMGj+AX=cSoP@pUf&5)eQKr%33FjFS8!RqHw|Cj@16ttK~Q>g`?!3+O4 zeFP#!qdp8;uCtjGp8YJG(O`HNJGK;&u;4dk^n)`pW%uh5I zUEIdyb%)C5U8{9|px@EFh1u%G3o@!E&lu+{_}%r^=9bx@_b+J()WDqk{aGNmn_CzE zX3KVPVIm%HE6N|g@?>K0+%V|ezUm#ne$Tc=t$UA^cVw14AIW#J_~4ecy73MDo07Wz zU=t|*ySaX;){|+9-Dpex(Az^D+jwqPf!F8g)Y=OVJyUaU)+^tA)w06Io_udXmNk3q zz`VPlcxg_3Va7Esab%=E>1@s0-`z1`0!oH=nM2C*1{{)Z!TAHG{G;H_UE=#6TV8uE zL?1r>Nz02nc1Ea#wtV6|7`?u7T<}-?(Rl~F{Q1GRKg)I(B)W^A?d|+}#Y$JY* zhZZ?U_w^I%rC_Kg)H8Zz+5R)b=Cdbm?p9vEoxlInqRWT%LzgStR)3Unq3)KE8L;-{ zT^?^PNoHi-?LR(NIy`VHzW&KUh;p_puZ&%FW?y$3S-(6U>;lW7$#2!MI Z4IFz58h$>#wJG&$b-U`FCmrjz{sWQH1k(Tj diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_9.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_9.png index 0d28a861564508c8510dc8d8de27e2beb901ce17..edf48b0f0d605e9deb05521497d75a80afc0c002 100644 GIT binary patch delta 392 zcmV;30eAl93YG(q7=Hl(0002`twPcO00CV|L_t(|oVAj@N&`U@g}*yl*ezBJB9cO6 zA(f42W#^``Rtqicg}i}{#oDD71RuaIZ=j&@4Ps>%6-8`<7BL!#xfc63y9k2lZI<~s zbI#%JKs=IsF_h*XK&T~fFMpa+QGEq)QlLV$ctyjGeO1h1uzv}`FJq(pv;YQa=3oF| zs&R^jU1oy37(xRdz-i?Q0>Jl6#YXd`Sog66J`RdNTBnTy@Xvb9f@FHBKU;`hy`;6Z>H-n<8kMlf=?Xdn9GD9$#oETtaYK(MkXS002ovPDHLkU;%R1h$M_4##lrdLM0R??UCHS6s6dNht!0OSs;>g_E{-yF2L7 zOvmQLX|^FM$@Yf>jZK6^Vl>N)3$u$eW<#@tsL|nKOcb`nxR{Be`@r{rqJNP6;U#y^ z`|abk8w3F_4ji})Y7t~pLJD>09f7^9AjfRHsbe!@3PdAFZJnX;LNCzKFzA-z9_-fn zPcT#xJy^RlKn4^q=#h3ORnVGj4hhL#ff2E~C(v4hg$80k=TRdTjccso!B*_DaBUtF z7`mdO_j<5ZQXPR7)GMn1b=fFfAW0H+F}5%nafbmz?m}sjrU;5AC?`%+EbU||C%X1v z(4Q(s*dW)m<_+#VSdXqNEI}j^30uN$lhtm5Vi<-XX@aJ4sDWz(ah*5txK^35zyVEA zB}JFyIBHtt!*ZYQ!64VwAYw`&ux>c6t)&VkjWBqHpll=&iuPAKp-G0RX`m>dx6#!IfnLh)@{&H6*O$Ti zHsfDar5Lcvr4N$ zb3m2)f!L(VF?1!(th50I%E{0S$=h*~0TJ9m*&Vn$%)|b1L|hbb+DUtj6I;WJ|2KUE zBt@9L@}J(x9KnV(m+P|tH|x^`;&6miI4h4^Un+ugmfNy7K5BShMjrF^gznX?*} ziu`oyz3dw|q>}oIzU02bSD!z0e=+Oe7UVY42xgy|OrjqnClii))I{MzR`uHxd54D% z%yZcbw-(#dKMw8(OWR7zu39S7BV(7223wbqyOC&B@oaZFax_?gb4RuVg z-`LvEjdZ?Z`Kfrk^ZZBlRMzDe@8(-3KYM*@babX5?}e+k`>xFVRd9(E>n0ZZON=)k zc3a*VK*XZ@u^~G$biFR8zHIS++2BxzmH+?% diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_0.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_0.png index 04aa17ac07fb2fbaebdb7c4ac1c6f8fbe1876b4b..c1046f9e11f9f0a05a5d04f19857644f1cc786e4 100644 GIT binary patch delta 634 zcmV-=0)_pQ42K1f7=Hl(0002`twPcO00K@)L_t(|oL!SKZxcZfg}>c99E;e*iLgKl zQXHtDK%|U>l+Yt23P%y5a6u7?CItl*cac(1Q1B0M8J#Kk1JPLu5@n2NTp+~}MFIx- z2u|#reLEC)zSx;&cHYjuH#3^WiKHh7GI9f(#D0_j*iL~d0e_&YM?iAZPcxJPV15*n z7ZFFKsf`SzBfe?HxRr9SrR+ncNIAIYDc@rZXxGhLO_nZzVp;iRuty~Mw{}~bzsOL4aGs4-0@+qZg&Cr~mCi28 zUuDULFoSmeF@KJ34mGKAxtHUs*Qkv5GSh)WJ=V+n6PJaw7Y#^>#VYOE&YshfIHtQa6!bfY20<;aVMR=`Op&?elfq}a9&ddERfh5$wuWE#)m98 zJrU`r6m$9w0JalMZnCcC;}6tN0JV`mF)jelQXug++@wE{o`{G^Gh+QfxoW>7zLE65 zY-Uo9xTu+aW1KV##By4@$(zon1YlJ3-&yrYD_Du+sbEw_Jsw1VD)vg4G<_-NKUmH* U0r=;=Q~&?~07*qoM6N<$f{+F)bN~PV literal 1556 zcmaJ>d2ka|7~domLfUdnOQDowSyU*p*&}I^T^n0+w1jDB3}J}cKf2j{AsM>6VY9WN z1Ji(I#+Htf&M+f7Vv(bc)N(i;C`dR&=~(ap6x4bEe=q`Nn86XLQ(xK!`Ga9+cHev7 z`+nc|`>t*CEw9cu%rqbflJ8mS^20R=-%7m>ey{0Y^TMTAbqCcIa#(HR6o4!dZoML20uH7 zp;5t(tt#`9-k1|aqDz|{HX*VwU9QbDf|b;=4rtwsvxNs>gZj4?!pZ6Uyri&2`SDT1O2stl(omM&wdGIZ?0 zpg%{f7)MRWj8D(WPK`{(NkTgNlIMl%7>m-#+;8J{k)`APf zc_kWCqq2l%EOH^aQMF@`>u3;S%EX#(aOjgDOLSfv@GZvgHGly}8<~ZCGHi0kzq}ggQVFaW|WIE@ePRfd4 zduFx|CIcQG%odQ~Kq+u??9PI>;M9%x)dbvd9UdOubLs705JX$xaV-fXE`Pm!i*ypr zbMGG>?p_srUiWvK*a`f*i}o;eLvt#x+`Zj>Zi0De%AHlyk!!scq;G21O?_wg))xQJ zlZ|hl?i)M_b{UbM|7=Wpw@pS~X&G3yPdkL)>TB_J_2>Exc~V!y;C;h_Nri<6kiB9v z;wkw?Q?;Sy{j&?xzuH>XzM#>UO8@lMYAzi5V(8LfPW#>K#Y1gNBY_#6_(#=_4^AA{ z8J^HwE=*oG&?lt|#ss4){yD!%KrOnrDb%ylG%J15r+W%rlPm0`| zoIP>ddn?MP@5oILes9<~3)ywcBF@uy{g}*0hX37QIN-gmoAeb@S~BJ7oj)y^8ku~j zpp)s&)kbp8v=ygzG#)KFI2SqFP%sOv_#rm)TvAiCV9&(l%AP-ZZ0GY%eR}mq>lwqQ zopV0q>yAyV+#BBB61<_+|K2q&{mfZ=YZEfQ_3+LC-PSku&#q;E8#gCO^`G*W-gBJS z1dr8CKtye8UtbmCSnRrq_{yiv0G(w0ZOtboNoud3eO{J diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_1.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_1.png index d93b1f588d42a88503e2938fe6590228afbf85bc..24c08c043c837be35dcd5a80fd5e852dcaddbf55 100644 GIT binary patch delta 653 zcmV;80&@MV44DOx7=Hl(0002`twPcO00Ll1L_t(|oL!T#Yg17a#(($b*#?`mX)!2N zXsVMAVkapGjk_ogDMdswI22quIJoG01qTNQ|AS^MiT^@*kro_{xMUEL;?Qc8yw zT10G-x;E06wz#Gl;fWy!o66c(iXjKL%gQY?0<@}Tt|Ck4K(?UV0$2l*^!uurtH>Q~ zhjN-|h~3N<)-DxR6BgiyPHBweTX1uP19;@EkEzIAo}EW1KsZZADxSPkM)?zjyDRM- zl$&SC0)GPSxPK!YofK+Z;1Zgt=B_+n*|j+6bBCb-B^Z7S<+C zqK+-pks7~uju)rOQP;i9X{LYW$*;!ADjFci4>;Ubnsk)f1l7=EkjuK za{wtqZ3nv!2eg|2opM4Gl0UmojfrbT^#L?KNRv`DVUddTkURjXGMbJdg8~1rB(DHw zLf00Lv_ql@b#1Dqn&Z1^+7c{?BrIyT9C+9scHeAuMS?HpPvp*PNhgk9MUYb}t6hI#C4LH~>5)*o%NTovY4tCf-U{M8pgd z)d2vWa#ZkGTqDE(vLSEsF-H%88S}X`LYf5iyb7ST6W{UfMWh-p4mz4u543`n$e;8E nX;h;|^d_TK3FD?O`1}XzGB;`s--&7f0000eM}Q)7{6;>t$ZkcMR1ZG1(Pzl-em?Bmdx z46_6xE>UMtvoK9`7_-c|sYqOAG$Je`I5jcr+}uK ze$Ur+_^KD4O}t$&tXhebCK%N~1jsCsh-`_*nS{eIWtUO+DKTb1 zrc~r6hhdsjo!5uBLRRfK;MrAgEM&pHP3vLkS zrEp9Ri%}$Hk>$j#vcsTqoem-r^Ln2ej>czFr6vtaurZ7<;aDV+ifl?dF4uzpX*^du z?r)6&tQN$@trD+RBv_aRtJ!<8qm-h`hFLF#)v~Z#+#KXS8VDAf#YO`T&mT^gdl|{)fid)is;0uYe7!QdtgrrO)V)U|nIGU0a zr>Zm^v>Qm_Z9u4y#0WB#W+wa`3OoUL)@r9wPQcah?Y1Cl<8d0rS&Nmlup~(V-Y|m~ zo=M+yqpA`$j98itLr_*b1-Kwe^L7i$n&}{FCs`Jyf)oe>fYVkBWx!O5SgLcL>7=ws zZO_#9>13#fr?Um3>Oe{AN+_&*?Z&QEeO)A@VHm|6E_Fz=S083 zvp#t;IhI|w|N1rb${2|_fBx!laR-y}UEhxmW7Kx^Zi)- zZg*Q1e@A?9YJ&(Ru1&y2^(!Ig;|H4>@{(fn<|kThq{hbu^x8X#i51K8uLlM+c>aji z_a~e`aH;e1XrAuj%fHP&lBaat{hTnxiweU+B`do)(!g4Wev_==x-kMHS7A` zUK$9@8W=vGFy78OuK&>JgYnKPcl!mUEAtwX?7h@|;6$%OmjzXb?ehwcEf|{kVBSOM z(5`|;<#32~j&c_Vz}`o1@=mn!bZ60P)b0k#o|M zk-?hzocpd8Dd;7?9fG0dFy4Op%ytU8`(C2@Ang3ZAK2qL+b|bOvN<{2gMYS_?)fr$ oFPjFi*|_+nxBC0%CMy*fn&Vk~W$!XqU+VwuDX(_-l?Ar{2aXdbAOHXW diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_10.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_10.png index 47185499d7ac7d13e9c24210e59b912b8c557cb7..324adab8c2ccbac2f6019778acf186d841b27ac6 100644 GIT binary patch delta 640 zcmV-`0)PF+42=bl7=Hl(0002`twPcO00LA=L_t(|oL!Q?Yg17a$3OSvwJ9{Qr5Gs` zYQ)V!?AD=>sDrMe2_1xXa1b2q;Gj$2D|B#h=pwjToXU&fUr_Qu=i0G?m=r;)6%x{v zq{(~tIK1Xp&vNhi^1YvP&gGzywzQ(|`Oy`R(QtZ~pIHDl`+q`G0cgqvYrF3-27tLf zEUl`p>Va78YE8?w8taKZgAL;x8Z#)%4d0agp*}bc>`X})212G_$^~$Gko4=o&Xn|~ zxRC~|s9Vhxmd6Ukgah0Qua7XI#l+Jg2802RM;zTGR|XCP$u^M_SE=i!v1b1k(cN-w z7gNr&-~ijJGJnF@zYqJvRro$jv+pq0oS|7X z7c2!)pCN#0F%7W;0Z5%4!EtG)^UTKqBd8Piaash>q<#%azb!m`l6iC>Hl)p3WUHCN z^7v`|V?;p*{_ZxeP5SY#w^E%kEsQW>NKHVCOr9wi1T?J z&Lj(vA`rNVpQ7zvL0{x#@-?A;Z1(Nkn>s_9vmfYI*u*02DU zdVJBAs;X+O5*_f;nP;A7} zT92Y_ooQ7DWU6$$>d`48Dxua^s8XiwjP;=7fz`I&w{t`<!MiCS#Cn-6p!YNWusq~}@8+oKCo`-el zt){$@Xy}$9trP^eUM{b$u9j6RWW1+BPU>_zIYG%O3P%>Wx5g#VKHTL^4S6s@FXQ3d z0>`_sphw!yFAy@Mi0g0?PPfJK%(2TmQYut5xsP_sNf{w`I)j-FS$hR5{GY}Pt-Yl+ zZYZ}xFTcRUppH0FLts?Bmj?ba~{gJU8t0(L%Lptns zoM34NR}xTxYqd%WSF=jUsD20r|rdVi(a|JbT z2D>zzvCnx-fPWTYc_ z_PO#64=U22G~6LJdQzd$DWKhfD;b>{r&US^uA^ugS2z^V0U@E(s1;HKlOnJkHlW7l2ywxcQYb^rSSJl-+NKd_qu9~=Gq@aZ>l zo?7&uv=>wiJh{WPE&g0(jSFgu zL>qqWNSh%sRAgNf@0@V!l{weMooY*Z<{#GM+{tN0?c+{e`BS$!wZe4h`mB`7vuiUg zY2d(_ws7LB#g}HMM%a2*1SZX1uP$+wDJKVN_U_nR9yLbX_jp&`qlEb7jgE~+4#pZH zyUFbb8ZZ4*2XNkOH-1@ z_wI4H`SDWEa^L-)bHC?&@B3cLv9@(z%MAeVe0nji0JKaW=znE8g9;GOK3UA0E zR_gbO7lK3u)qfQ;(xtu#^`w^E?JTDzp(X#4v(uy&{lf1%BU&1{)t!VEErbul7!E@_ z{h}~u0BLg#GR5Vw^Acv$htx%LGk>`KsXJMVjkRJ>-!@!@hmCYxcO(1feQXnD7{6|Oj0v*9ro$0(-jEIOzPo-L>nOAx%&bthM#hKI>)qR}cJ0;cjdpy* zG6xAPaRdB9Bby)?WX=^q7D#M?2{=gDR3c-7D1vcA7&<|MalYMF}Bi z4oUzoR=@f+$VZUmjc$9HQf4jY1j$SAaUCM$^+Pm*aWRRZ zLn?~LfDMx>v)WLTBm-1S(6~TR6spw|PRgZo0zLIS%1{hV(hN!G;S9|&c^sXGjyxFj zCyOqw#9TPy4W0~Gg`)U5k_-leM35yUxtyf+dOb-oB*WlP0}oXD6h4Ie0@(=*W)Ki$ zw_kBfJ~VETcS==?0fStJgYf#T)(3`tfss_fq>&-sPtpWMdcE<;hO`4p3HYDJBeete zYCj-LKtQUJ1y~VRb^;8u_jpHfMaYI*EW2S@_)4=RRC$34b%xckHTwchNTNlmihENil!|lotb4!7Mh~jLWVZ$ zvwOE74zl^5K;xMXI$ zO2a{$f$Uxl#6nr}qC;us+>f9j&_Lj|dNuA8DHy(9=fZUYrN${~ZWM)2Z8 z=^JiTD1l-46Kpt|)#_Q`bm3}2ufh2|wF}oXJdd+37PtVQ)LIRTk&q%8@0^D^DItRG z8Q(sb40w1jTfhegN`{kD-xEC!r*4d`*lvOA;Nak%?#4?9k~F!rmJX+sLwx9a-r_}IMSpdNc`|q!uV65wHTpqn? zyA7_^4M~Toh1WOKChgqXqkThF zQ{YG*;G)gpmD7Teoi<~4>EYgV%J9DZT+Xg=b>p%tRhO!#Pv)}5_tu@?(b;pwwyOC> zhxV9$YIxRY;)(I9>6sn7V^3P5z2ARVbM@pG!szqSGj)e{^tXO^?dGJbr91kQ8pe&I z)<^6cE*G@TC1$t2^LZr6jx?Pc)t5RjYIS;lM%ucHGfNz~O`c=>s)aj$rJ|pP*WJDJ zo07I|@P2XbXKaB()jI$5fjxHPlJ*S$*(~JaxB8av3E%nZLRWKS_msY6Z7V=Y+6 zpzP3<6m{F3dwZ1^Ht;jvbVbHAwK!cX);?`quPd%kK{5**o8IeMWz2LmBRzkcf^S!b z8zy$12zOV}9SaVcF!>1KXZ4ZR1?ueBcI2fl$%EYfa!hip?Zhk<^FfJFe`r)gU&i)7 z`_r0~3o~O|Tjos5IM}xoIlXDz&zF_`vsInm<+m(%apaqm2i9hqkfzayJx5yH;z2&j zskPY}=WJBcYE?~#ZHcKk4{Fq@jv<68WB>1G!tL?@bdhC|xn;hi=0BN`JI4S3 diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_12.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_12.png index 15ded267251deb5676fa24b1633c1e4e280fb0c3..e9562ab71f0bb4883c988245200eab5b72b7880d 100644 GIT binary patch delta 614 zcmV-s0-61V4D$q#7=Hl(0002`twPcO00KHmL_t(|oMn@-YZO5k#eXxqCI`tG4Mt8< z-K=&P2+u12f-}TiS_b zV0FalF4Wg9)K@JVXvc1|pm8s{p3{K%w)Ldo5(PXut59G?oRkumfov0cYkTF>w-)BKC}yce6KLfXQ}=DdUUAsSw8ZkRLIg@+Stu$NG-S%#1jn- zs1cXoptTb|_0RybCp}oGuT34Vq8ql-h~20jw06Q7FIL7_rE&YF?(d@fW^-8sV>V*= z^Zso(<0aP+2O(T}_`7qwnuv}Fq4(}(IOCz=3lYG;Cx1HnfY$aa1{~@tz$~$LqP;Dc zcDevV&$5ZFl`1`$syr}nKog=MNbYl(xF|OxW<4}RgDWnCy{5bXn2UXpfU=9V4*S{! zCV)B9btGC6u{7=2B?lV>s2~bxu&8M!JCdNCzNj$C10}6j0H*adrIb>tthWHTIyWf3 zWc9r4ZeL1AoXKx^W-V0!&?f2PB9FTXkya=<{gh5+lytC}CXO4K z^LxJ5hk{jO4U-KBf{gY1JYgu)@O9wt!>8N20--6RTBKg(Zk&GHFVhO>%rWK`{(NkTgNlIJCeMt0a|6;ZmX`>%jvOd|Xsi zQI^n*M=l~as7?%W9Zn*q1Oks7ONo(E!J-iQxFL z!XP0x#Ch0}Xh{|ftM~Lk8AHg1T^JW(Tey0U%s0eKTpEjyybK`RcSA$+$2R+RyaInx}uUIDYKWRJPvyn z>z5KLC-EQ~TZFMku(qdS*@`&eR5@NP%k|kg2-V7}oT!x*ls21abY_6#MJc11mFd!O z(jE{OR|3Hsmt*KqnOX4(6nF~ooSm`Y5rKs1Gma?k;7JQkayC0{<7nCpcx(hOJXXHp zL4_KahLUB&Qf51229YRk;TapwSuIhVp*apWN6jD#0BNz?%oqVF5}C<)Y?87nIG&l~ zqs@SqN4o_ixKMGpIsTSi&2Z~-Lkp@ap&T3>-2Ka^zaoe>$M11hr!IDHUGu(fYMy7^ z;NYJ}gs#Kir8gYx+#axrvCY@!Xv40XJ-;W9$swhrx5}9A^%kXj^Fn{;eXwxq;7g4& zl3P!lzS|RP{tcQ|f7J)OaaEtmA?2R<9~_PlZ4yZXEB*M0xcCm3yd zwtk!bU8J>WgVFVsalVwYOzeKf8+y=m^_>G_OAi<}He;ObkM^6#P9iI?o!{o)Y`Rvs zLyNHE=9KoIYW~Y`W^KvN^o#vTcOtj$QmOH*VasbsjuGj4?!w~Zx@DvM6Yx#>cRGuT zx9F7ikYUn>$@&(8J#@MC>^?@HySp`?EZa7E?zUU8%Y{pWuUkf=1-9{J-5uKX$h3mM ztb(fY{mQ`?+?vzhe01oO)j6)~Qp)?925;M&~|hQ#T4+qCCvRvmat~v!N1Xz z(PjMN-uBG{ZIS2GKYiYJ?eMdRPwQ&QZ-4N$4w?OCn>f{j>?-|G@A`iFZl5N6AvpTh zCS*(N?G8kkZX6Sxpt)g7*K2OfSi5fB`0nB0(VT;x-w3Z(o@<7fuG^uMB$j Il`nheKjID@Z2$lO diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_13.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_13.png index 13ee0450e23fe651e38cdea5d5bd816c8ed3087b..449235a1ed317b554ec560f54ab0dd5dc75e5a08 100644 GIT binary patch delta 615 zcmV-t0+{`Y4Druuf^m(v|P+*0e=3?))BMWX%6ppEjX z+_0fvgu0h@X@73%j7w(&I+;Aa6$#R{RE|C$|Iz7M-t#?|sijwX+D>Um#lPi8a}5os z5$EBswKsX}#w}bq9mf$To9KqEG~=*QK5XqxmfgrU#>&0wSkpnfro5BbWlXgIzuQMw zmfg7P5dmDh_p5udi3S*j2KsMbOqN|Vd?H*L!_XrdSeJd6uW=2pq{!)z;~ID>6JK8Fc0_%aaB$l|}upkd6s zV=2)Ep_Afs3BfFBK3-6_wSvk&Z^V}jl>Bd-#a}p4GP@VZnu`Dc002ovPDHLkV1laV BC-wjU literal 1545 zcmaJ>YfKbZ6uz!*MS_V{Y>RE`bg&3*XXmlcnXo+e0n)IzUDlQuQ=Of;%dWUP%kBUR zi8=z>n5v}4rqRYoV|}z>jrCCqMnPi5N)&5ieHE#oO+_P`wwRK*y$h`MhjEgbd+)jD zJLfyE+2|}OoS8f?82~V|Xpzl@Rt3FzNmJ4Hc2biAEorj7OfHqYat$AbAYYU`5GxAs z<L;c}8@S(c<2l3@s>K}2eUG9M*^k@SQG8;l5H ze@OOAK`d^O_efQ;8An_vf(V2hj;Dr$k;zn{q>)iRMA90H3&v{5rTNiiE%6dRVlV_)eX{Gw}mn{s6EPR&Wl8A=~2oU05Kq$xv5&STTgF6oJF z?LWJ^cg3B*2Lt>1LED|tDX%Qa0eQ=JZ+EF%KmWaVPHN_-_1jdA*ZR&>6sJ7u+@R7Z zYkFVK`(^s^>;K$sT)NZQc||*a=Mr$FvufAntbxZzOLK>JD|O4=T^Gtv`PSyIKE%yA z;RtO3&F`-}r?P?>8$9Y+jkkWC*>t(Sx;yFH*u|wIhxpqcZhYv@I1cI#jggG9qj>-Q zhOt3by&ov&r=3eaKKy69Dtqq2)V^tJQkR_{xVG4~ZnyG{`oN{nup_6FuO~;r2XCb? z{Mwxl*RkM-W$&s}?3-09`S!p1vPLTVF6j4xn@_5$+0GGP#y#Ip-C*yO*#~+SD0x>l zEvz0>S`YJcE^bp*X6QOfZoZwV{8+6$c(e)hoOr!|Z|0PN$9XAO|HFYs)#_;XgO)as zHNQDcbGN;9H2+lEwZoe_a!i-fU0;!FXDF2orBjE-<~20@@kVFKKApOGW!J|CuVg)< zYj2N4`WC70jSiFDEucNes3%81In9BVpO3lDtH4$;YuH+udmkwM29{_{QsnjDgPyjp zQ?v36$4V{Pvq5R~lQgAuTYXnA4srtlaPQUiUlvAH?fi}4NF~TsrGPy<=C-`K;Fcx+ Ob1t%%*uJx@sQ(Wlel_3# diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_2.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_2.png index 32c0a1b9b50237f972e47318b9cf28fe57794711..c94fbaf161a1eaa293d20a64a1ac1d35faa854f6 100644 GIT binary patch delta 628 zcmV-)0*n2Y41ooZ7=Hl(0002`twPcO00Kx!L_t(|oL!T#Yg17a#((#|*R;@t+G4R< zp%FI+p_@*5Zi16TN)f@11s4T}4q{%RgM)v9(10M4I0Pq`@*;I`vK=c9O>r=^m8AMg z(j@O5hx_vS(zBd%zIX2Topay0lp^WKz6@R8CAMFA05%d}Tz>!v^$>`^bdw6D0GJ=< zMHj*>+J6s5J5?hp&B65xvs{Cf^ehWs7C6wUS$y%Jke=noH@wXhNBQ|2PiiR@ z+MG3-9M#SA)54;?pB-SfxSTm%La#gIFWrgm=8vi$dXtq%8{-vf$oqz^a9n^!{y5L! z*54bG70coA87@D(pE+H^l1igVb91dXSwX{B==;zP7=Qfxh}QZHzVj&$kR{Tk!M1<0 zM$iBVD~?O#cv2US%-jR>1~ffP8)N@x7^~!oERe0B35|k7=rzmo0$?f%3gVOVaaLdt zv(qn$SulU>(*4xzMn3&ovNxE`j)?p=$2OhUlx-x|cH@o8GO)pf)*ir^zN(Z`O6Bw` z0Nhf0bZwJ$IcFbGHwI2thpO8606a>7*kAF*i$m#%NXH}eM}Q)7=NKyuq)yWZeZLz5Bym4dS9jORf@GON+(r@&4l45*Sojv4SH9u$0&*! z7?(j*Fvbnd)ajybiJ!}&b2W{t*U_#R9GY$suUyEs0|&kYgP9#F^(bw zDoTY79VAuaDMFl*3=y+|#5jT=5Hn-&5q^sgGQ?DbA}A6kDV)r~DAG#hSjik@=s{I~ zGViw*yJik~Q%^QDs3>78j@Q)G7;0#PBnNPkVHljCaEiiI4J=YCDr^)JBUy0^E*Rlt zA*=|Jh{PWzUHcq`%KInwX* zVFb@|n2~@qX0aG4%)}cZZ?c#yMre%Nc@~}~au^rsU>xKOf+X{u78gx9^GSlFXHulg zVvb|oVnks@4#s^8s_!AJ<+)g^Q--V}$zDmSjQ2rNP*S8wPzoayZJ?0J9+nftnB=us zl?H=$L0NbY@-t;AgbbwFDm;S%M?#J@Ge*qE6KeR3#gADy!iW*9$xNA8ilQNh4&nKy z(l^+sszePV9A{%CX){AZpC2=Fj0t0NjDC!vSQexGH1tDA7|kXc#Z`)UtaF~~q_{|J z&)D|KWT=NHvjs(Upk#G&Mr3an)Tz@J6?*g4wZFfA>%~vI0Z1I}cFpicyH1r37mpDs z%lh9x@KIl*Mzi*)@V2n^n4HnlkkH!LdH2rQ+nUt6#@{&|=scbQc8%ZkW!B`4jwKTw zt^URn_-*h0o99wNXWcma>T4R%v(QL))bAVh!=q&F@y|9LYagYJE^ci?(u^75Emsbo zPO<-#T-Vf))0 z1$uUV&S;YWGIzK(J8_ckYH4pt_Lai)41Ex@R|V4l`L%h=342QYDQ`CT_U4YZX?Y{* za=)X!-a)q4uWM{t^U{J{N4}dz>3_bL^2g-Dz5W$%(PM|P`N!Aa0K3Bu`a;5#vc6J2 z;|@LkO`mQAw^F#f_>aUx_u;M0y`b;x-IwkEzLOQqy$=-e^%p>P>FI;MqK9I^pFMlzqGjbt zKOQ>Z2IZ|^bxfa1fdXexbLQfNB%-RbJ86#{nLWt_>K{+hA3YiE$<^Gd-uCWp4f;3m zw*8Vk^7`h}hcBmtuEIAm!TQyS*KJ!{z@`1^nGY;1{c6YTvWk^`T-p5Zmv1l5Gd&*L b-U2jWjB|9i{hGEn_NR8|&vET?lrQ}cDb**T diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_3.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_3.png index 93593594e9c7fa130a763fc5becb073fe8fe39c9..eb23cfe0cdd78dbe24ca1ffa2a02ff67a11cdbab 100644 GIT binary patch delta 649 zcmV;40(Skc43!0t7=Hl(0002`twPcO00LY|L_t(|oL!PJXj4%XhQE8?Ya3`nwOXuJ zNWe)4v6DLGxhW3fkWxgjW5Gqip@a0jLI(#yM+YGRK_zu4PA>8y?cg9mY&!O#|( zYD$yzy?Y#PlD_mT=br!m{Qo)k9{gAiWJ9{?(4`ZZawxkJnyST}o(2ob-BgO62A9ezERz7XD`s>_CXaxzf(i@Zc11GJDrR&^ zE^9xQhO;4lb*wNwP?&ODU?&breHw3~3keO7*H35rT+9sjj~EJ+p_Q^Oby-wKHPXZ@ z`Q6W`&|}htMt>R|g#DeWK9^c_{@5(%U?w?B_DhycotPyM5Aw-betpF&CNxTq$9b@v zaG_4CT4TFnPCm>}YJl7iV5~4bxIcwnaL8S`7GKY8FTHOMmt$>=mwSY~ty+eofozqX z99!>RwTH`S0FO^_`tHra{V59|)f%qJMuM&|0_PJ0EiZX=3e1D?w|H zunN#9J1()~Nku#c$8VeGplL%BWB;>ZUE~C@1=3|S4FhaJyH=7X03&heOF$;TnSpg} zDyEW?qN(~4Wknp9wTl7m<=)<4iU%U{$L!d0LQ}FQv9Z?Ks5H@E08(0e00a8$DW#NB z89fhx>wnitB{x}@GJ7ksA%3$1?9E~sXcGW%k7(5bop#OynU|fT9Eiw)={Bk(n^mB` z-I34;k!47oTQ4LuqM-@Ei1}Gch&DmZR{*pQI%@T+R#a2BKx*%#x}g>1Z9P=)wo$PU j(Hyc_3H_mu)%*u5w>+G>3oJ(f0000A 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 M07*qoM6N<$f)wQ+fB*mh literal 1557 zcmaJ>eM}Q)7(b|hlrnWd)XmJ>!JKYh@1v#d-6&9Ll_F&w*1+ONxVydw9rW(j9=0I3 zj?6@}`2ooiwrND?BJ{lQfLGlX13MbS873D#-PqJbU&R)P! zpVx|2>wxv ze2VImB{XJ{#<=eIFl-vG$PC?1f?elzdsh)ly*=p2mjM}s&>%R zpa7yA1m*gG04pM9$H6dr&vq13glyP113p+5uFftC^?o3!PP-L@H+rwn%aXiTphTX> zNiQehMiLlsi^WLeCa)2AO%{{I2#j$%Ps1AxW}A&<94jarNl}g>i`_sMIVh4ctfVQs z#T>^vrJ%}50*L$eLEkf2`!lg@Q2=nN9Pr3;UAzz6HL@xPYh(qb4SE_~>f!{S6q78A zRcShCI|%qT0q@Fy>_?~4%=(@}L7;%ZnHeL_dr25RV-azSKpJt9Gnr`Bz1U`#ldYZP&Y<~ZCS8h{7@X*8P*7y&5~vCes-lj0)S zp0VxY$$*E)vjrqLPyskOPWHC~ICaVHQjY_!(P;FGp?x(3OKUs3JG!K~ z?VnG3`Xpqg9ZJ+2nc3K-*(sf_jo49ks8-Jg^mDV}oSom*Kj_z)n_~BqHsaKTs z35ERXykimJ&*yr!uOCTS+@DbrwB4Dn>-pv#e@@e{-68yb(hkqZttYd(kDh3u%9f63 z+HVdZ`x8U?8{CBlI-9JLGr={oxyR0>kEJ&xmFnByUOXP<*S$Xv`NeWD;eP$_-H+0B zS#!TG###s5_g)|P`C#jTiV@Sb{@g>zwu{Z9*Vmm=jTxJax25hM3c40@&ljR~-y5hi z=jXRpWNpiS*>wr6pZh^#d#yP*-aM;nYs#6@!M64!rLIa>c=bCNXlDQI4rZA&jJPxk zrrGnbb$oZ{z17!W&F4*rJ6DZXy!6)E#$@Dn@}cA_lex(${Y+$UnNQm>r~R{Ye0eHY zypj2KLC*dSL)m@e*)2&O$5O9uIa!(V$AW>u(o|&g?|TxIAK%L?{OL~Fob1G^l|ZGjfo|yX#L~(jlW{_i-eeRMj@2jT}ALGNiw?2pR7hoz+>QowIA?;pCNYQ_nt4 bIF&?(B3akR1|Keu{ivOeGW+orRW1JkP{l8a diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_6.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_6.png index 17930e075838239a97b2055f0449220f528d4dce..6c2fa6ecb7ea72ccaf91e87865c184e2bb4704c2 100644 GIT binary patch delta 624 zcmV-$0+0Qz4E+R<7=Hl(0002`twPcO00KlwL_t(|oL!SWZxcZfhM(PYKBUC5h=>#k zq*$b*K(a*P0^y?~Erp{L6fTiyQczHF7byh=KY)t3BeIcbX`(v_4V{Y=>0&Dd7LF7{ z9G&Cb?oiyFKQhhUJp1lDJF7W7Baxg+w%p`MJwsIpE64-Xaov{bID%Vkpu?G(uDrhhTdZAruN@)UCt175ME;Gr$5A8}*9%;`= z-#Hbpy;|L#t8O_tpk@5}jK}kMW6A?e*?BcnB@THxQ7CX?t{0Okec4l1b=NRQm5W1E z;8My#cMa_avwt^LGgVr{@~vJTLv6a3%7dqL^i(fIK2)ZA`S#TdY7-A}JH^Yem3bu3 z@d@ZP4@R#WXrSosT>Gq6x96|6(7QRj8d56ung^q$hEdi!glP6{642nKOnyRLVr&4_=|K_w2!$2c`O z(KfVU7!_=Y#OorCre%DVhy2P0$L>cWau%1%>73e1BqCkB?;;}7OToD#XCfkUskIB> z#2BTNQfYbpE;DP-O!6WWA~_XrI2r9$vS{n4pq_$EAny1p5|K!3n(8>aaq`@fsjGyzE*XF&S^eKyB{K7jcc~BEq7+(^DfI4dNf>zxwvBkm79$9j%1QQaDI0i99i*2oLc3&WcWY=UVfdN?+ z?V*--TBl>H1@uVkz$tYnT9lEFA9!u-(U$ z11Dg(+T~w^90*db@w&>yGRHic<$W3^rlSe@1Q`uMIdeh+!&U+jc7t-S--O)mIF7(x z&V;;_?Z6#^6;ybO>H?s&uGq!aRkB77nUf3WglO4-4~PsL@>ThRbjXAZ+NI@vOpGD$ zpo&;&LWW3{IZ9wF9{{jkL!c~<soWw{Hl{L^{tzTq9s6Utyw_pQ7 zHsBRRFYkwA78y5REt(LS>rfCr!Qpsh*dH8Dm7Fvz#0VIn!7-mN7TKV7P;`R-X*^Lo z=&BU}<^(~$I>5>m@npooa`v9?D5fa0q2~v@a#@%v8_!nzfM2xROo)7=;k+D;yE&Hd zxZNnuF)T{qK#Lj-6p89M3UE4u&OiYwZs$pON~^b6a0{77Sa5>Kw;F6((wa};gtmYr zYzBQCYxf65#?OMdZ?Eio7)v}AOIrhg5&3|N=d0pMC`P$rx5phl8mP_0J`JOJR7UZ+JcnIabJoX0vT zE|S|bwtX}i^5M~J0lz#@0eNx`_ULxXQ@lPd=L?p(f|oT6!Zus{_F6sDQajNkU# zc=gu2hoAg8_l|DM#_o?k+ft{z{@M>CllIm_(!;Jrb0@YfYR!sTR<>sr&5W!`ICkvZ zm+G-qnQ+3%E1MJ44dx~H_Po3A+ho;x)7=Y;RpwDwZ(gHSO-tAPyLh_leE-pu6}hQj z45;pQ{xYvuZ!jE$BK7lg4oE_^Mc6T^_s14w`{7ABH=spLRcQzL)npM6(!ZCXGr_P3+F3SC@iZ{GugRJ9a+#8DP!MSdsNXnY5%3d=;Ep@Tq&Kk zW`x1+#wC3#_b41XyE--fod(s;!gT4-#{TTxlB4;e@l;EauPgn^$9?#+iOKCq@9&)_ z3ao6_>CQxGt89DUgw*1n4d1u+Z2GVj3UxH~M(*G0K^5aJ&+gtjqT9kq$CfvYFz^2~ z@5sZ|ow?Hb9W$Vgo9h)7FRmCFULYifby6C1US&~8)f+0y(;)Bh6nIwn+-;2tDpEtr zh#^v&>$i(U6je|3EIYhrY2xEWGH$*zeHjCt!?Vn1+uezEOf-m+Ey E0hXRQ8vpn41)!b7=Hl(0002`twPcO00K%$L_t(|oMn^0YZO5o#XmEKpIHFbyMM$X0idZFd3H@Y6IDRWCHx*nW!mFLn&Z2R$aQRaI@Ca1g{n5oI+Q$LXVSk-2T zHm&+cl()#d34gU2wBrrlR1H)qwHAi5T!MUm7VFFvwsc<>0tc-AEbrgiUcToci(A

Dz&5tb5OsXh{Z*t8CCR{Ylm@G@2Zr2L( z2w*DmB=iv{_jwa1i%b0UVO6gf<^ey4q-L4etpyi;mTsYPNd5RuxPY>0@+ zcBiAvJZ}X6#=s6lq%M+rJYfK7Cyya^AQiD&njz@eNhayoRYYBl1R@ehD?Ji+Ci}^^ zkI!Q+ QZ~y=R07*qoM6N<$f-9IJ-~a#s literal 1575 zcmaJ=eM}Q)7=J5*QbeYxn;)5HSrnYt`)Ets8=cS=v5N(SI;t$D*Soj$2JO}BA(i2* zh#HN`Vsw#ghHf&AlIdJVNQMd|OycHOoH0(LL!6?{O*Z5FWb7?a=O4yP?w z@A=wPn4g!doTdZ-B-<8Ri;xVXH+yUx`ra5@Z%1OPoa>Z}MUPy?N)Y7mq8nm1A6o{C zAj_{>aRO!m5Vu}%IAy1O5yOc-H5;{2hkOBq1|VyGD8O>%P{!P_Oz@jj_uAT3n82G< zB|1B44_KgASXeE=;_7?{S6$8-dDZ-Pv8)h-9QdHjVj*9JKgfhksv*A&I!D!n3L7$! z%T20bQcimzW)UTb>D3g@ktB)fjcPaPF}R_ToQKgQO%W7LP&%BZ7+S|rI&9=op?DJS zVT!B^MxvpcN#&L007DQ}RaNRLjarn-2+C+Q5+qH~G>$Cr;3~h&hH!r{E#|=rgPbG; zWI^;}QID)!tdvbE#C13cU%+mE?${q3DHSRj5n=-br6viVFPhnqbxJ>bxz5Bg=B)ucjy)V#nmq?_j`kK2ut zJj>x)5^8XRK}+MAycY7AhD?JNYGZz0hS%v0x*XDKHd8qyMdexyRt;^*rASJ%fTpYl zeGF^!2W8gJ!B}ho#U8=tyb{Y;B*@C5GDqV$ah4{qQ{El#qTdODM(X$|C5BY6IW z@(m9v(x5Z~F*XdP(Hk|;?ZLI2F%xHXS`TidSr*rLG|&Sfsnus{R0N_(L?`EkNs6h^ zct(%UHv?Us?-ulVKY;UY&al7oYTU;WZ}1%OerZPpw|=+eoCt=sCb zadjIXuDRXDKN!svM<$6!yZ9STjoe^%I+M<8opVkpE0+m%v`$pi|ww`iQ$_A1G}5O?UMqEUHy`{?|zEBH!<9=m>KS4 z@3dTezhg(}(z=#e*N%65o^qB31vQlgu8mF2$I_n8wo=RUPu`nw`?Lj5j##{@U{7_| zlOJv!JMOxcvC^Qpg5iJe*Z`EJNAn(Tw$0Hd>{@OpIGVU~-Ewg2NwY0n+gXeM-Pzl& zxVt%++|f3e4DQxw+({jk;q#a?;o{>vuPM$N(-U2b!BXp0ML>F_%wGC-eCpHIpMl&B u$Ac5y4NK>oy0H5}Tlen??c;m$!U|Awa7tXzygCuh4zT6sTMwFDwf_NH0Xzr* diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_8.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_8.png index 570c8b0c4c48cced5794a0adac9f8f07f3d3cc36..9cf7366e4b9fea0b3640d6499538262f56936127 100644 GIT binary patch delta 634 zcmV-=0)_pp42K1f7=Hl(0002`twPcO00K@)L_t(|oMn^2YZE~f#(y)rZ3As-4F&=| zD0mYT3kp3HlAb(x5=`j9Lk=EvAAHt0m=jrm#6vC|Wkq2%PGa#$*3ZLIZ*|>*Z7z-{bieLxJUUk(zYr$(}N*lO;IL zb&pVPo>dz<*?<3UsvS4cr7>EgF~xWYgXAo^U%UM?otT9dKT^qAq{Q}7LPPT2x);z7 zH8hACvP^ZWemLH$p#c^yIvivQo3rOdbj4O0u`8vm`r&xK7TCsEsh#FMQ+bq8?s?JD zz(}?O7=PX$&(|i;FwO(^)4#3rA{bxfkMw=l+pu0_o`0Qa_{I=e_FVk_7l3v7Ds6gT zm2T41W&e2BXKv@c0}N`GO2>M#hKOEpl UZWBeis{jB107*qoM6N<$g2?M4>i_@% literal 1581 zcmaJ>d2ka|7=Ix>0u%}kU|Ru~w2rNIvsZ2#+R&sWnABQQ8t!g(Uz*S)8#Y^##-b@= zxv>sd9mG=35r#6Jj0{=}j8bMmjtT<~RM25ir~)!&KnroxHpm|gJG1-V``-8azTbE4 zs`9eZQ6sWO002f=rkg6nH7dSEGO75zDtp%^E}4SaAnOs$fQSa5pfDVunOZ0yPFUmd8{{_+ekVsftU+F- zvf;KsF?4&TM|e0hQf6l&wTzCH7fwYA!g|qw4+=CA_Idq5eb^u$u&WpMaWN)G22_Mv zgM5&b!&Z(Ib38;e3Ib(t97i-dg%fvaoluA8BP31|7(rr$3MC0WsnQcFWayEL{&?1< zuP~Jic@s|txmyqddJGGNLW&Tj;P@Jh(CKs-PGTg9iW+FJ-Y?K$)E~@FSTMmL!+QdP zhw~$Gi?oxg6AW^Z>tGPRfX(*Eus=AIDlutTm=0is0>^y5cw__GL7@WvPveQ&L3@1w zVihpR)$xp25m$BsEN1WNj^c_U8~tm%M=T5NHE~Rx5Bdd*$siYR6s(8U<4%?#Tuvv7 zvowP$aY&(Bt&&95tP-+nty-&u%7mRK;Z+)~%7~jvrV&P*Ak4*D6GaxA37nuxNW!Gm zB(N5LP@w$`O!)SQzK5{pr(*TRJfsDVw{x5~(Ff&jPT+!WE`X4ff<$s{G~@BdC3*2G z4F+w3yk`kyOL)$Q45V4_c>)E7fDEnCDN!eji{b0EE>z3lN))Hn8d6P@Bn27y5T1Q3 zeS?iEO2jY%2{w9y(&#AYbfHQ{r$%X&(uL|snno!X1ziy0N{yP5V8<6P@FrZyRKqq%f7`ECm%{?4IK@AZ!|VOyY(%rq`8MkDT>JO{YfV(e~)eG z$lL64)<3v^es?-(=)DFef8HPg5B|*Go_6o`{VlQ1PRF<}GaQGbWn89nL+a=ZndH3Z zFQ8nCMA}_1UcH_o^%sP0D5P!4WtTo?kXtv}-u$st($}$f*)J!TUw9~&;w{6wM~xoY zM5h2t!PuOPrcBwq`3J9@ozvE|t$$&A^3CUZywCjBZoSvKV`oue7dXxyPM0h)?k&t( z1gu2S@K3krfjtYF(j5O%;9Oec$XVWufb2+a`Kx2RpUuADCN3{(q|epyIdd&dZJk9) zi0zP4du!9~{A;VzHv)%x7+BJumoo28&4eEIkE<7%PTL2)EtVAv-6xiR%;};R<12QmJM#- zLBaXqYtOc}Z>#lYoy>~1I@Txv$L;w(T1jsLW#f0{rdCSUcJ-x#Z)RP*Uwt|iSR07j zbDLj^u3H|O1OojhR@z(m$sfKq`*|w5I_&uNy0m)Bj3zK{UNwd+OsbA_WrDwVOqi0t zc@mhKw*Te8jj#J7-pVWX7dnS%c0^Ex6-Rr|S*W*8Mi@D6SZ(8-T{{Xy* BGI;<1 diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_9.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_9.png index 2b6b6e57cbe2126dad0a5e24236024079c1c6fe7..27e3dc369bceb8cbc58226ee233216b79774aa17 100644 GIT binary patch delta 637 zcmV-@0)qXp42lJi7=Hl(0002`twPcO00L1-L_t(|oL!T#Yg17a#((#`R~u|Awpa)_ zv>=EGirpN9L>C1ohlCCe-7IwJ;Gm$*3v_UB72KN5@-pZ@Q1VK52~GvINpVRjHNm7L zP2ao6;k~3u&vNhi?m6Fg5BIwiBJFBT2g|uj5`Pu}*c<|r3V%RH20(Js8&((tz|BF< zjH(t?_r>bDHnn2wG42dGC>r*){J1$U-ywVuQ)9}^^2Sg8@)iISY;N?Yy0Vm`v6|1y#(^%6;6YXW1 zJD5tAB^MfL@P8_!Dy0<}Q>i|K>exMgrRj{$lKJ<&eIlc?eB~fDHcNeBeP@J2Gr^-E z8gd9=x?HDyT;A@l`3S)DS%c=M-13#vJW_Oxpl)$}t-Rfz@*~$;C-rXsp52|AH_w={6t+sGhQv4Kg-*Ui- zkOHQOq!8|HgiOAt19W`HC33QJG%P>T&+SJL`j`g|J(px2rWR^e%u#yomJ@pqc=K0xb=9@x^*cDq*rY ziocB}E!VltkfR51mQH}=d(;o>Nw0_paQI}PAwmnlnh7&&9*cnteM}Q)7=PQ&s(dJJh5KEpBWhbBo0M#nqTPan#%V<^zYMF$NHX01e)&N-YqhW@vg%aX}HGIgbx%Gp@=BN3BqYNIVjTZByfT%CJBeh zn6!0;A`%l~VbV7*`_>yx`a;}EzR;Goi;$57(JKf`lYLMg5F{ZI5W)yaX-Q;;n_>A- zLNYT^rQx6*P~?|Gu2>X;$WWST{y7v_0rk9A7)b*|k`!b$ zBlg@g=^JiTSt5rKPO_m1%4nvb&yVU@vjJuFIzMVA83v{N6!b%g>x>3UgUJ-JMCUxy zNlB61o{8<#$&e3EXA6epffD7((MfxaWn;#s={BYyCjIRmaQ+hdT<5YE3{<{bJ7j?w#$6N9MYCH+{O;&CS7K*R_ zC7j20p3?aTmRwzaD;=DDY>OeMMuYBlW5vnXzUyZmD^+m8I$uYs>Oj|-=8dBbS>=k; zryhVe8VmltbA0WIU&pGOt;=rDR&|UD?SJQ3?E1yIPrhkU-fCPpD!+Z~w*yW6zPjmM zW#P%{Se|-HYMQbHpGbk+iGtBmmD<00!luD(o$*@xdF!;J6>awv_y()(IQWJ8vB$PQ ze+wIX8Jund_fb>YqQ7-#z+zKx<;=U2c^uE}-WFe`=G!kc+e+tTXLJIb2ALCXF4&&c z4O(Zms*k}PgG>H=e;S}BS?EcncpET~_dutVY7M(|DHLZ#0YVQP&9xnKN z($8zJ5b1`ToXra^sKur~rZ#PT6ivI-RxW+n!AD!SWc=3SOgp!ds8%A4#(lAuItM%F zDrVTKRT*RM;jv6roWvWZNQ<4d7cLI8Re^$t9KRvwoVU;2 z*mAY#H4s&9d%ak-BSD zATljo0eZDS|LHYFwPXG0m}Ka)?0$3a>g?`OUCr0OP;`_|cY=()TY4U&p!;%@C6>9< zS(@?>39{9J+hFdozO#qlTIK%i(WU5>_*uoHSE|A8tW2zJpy-3dKiuV<=h#(L-Si(i C12D7z diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_0.png b/assets/dolphin/external/L1_Mods_128x64/frame_0.png index 220908495ad987548598b3c9d253b5c0898a5e76..e185204eec4551d3af3f18d48a6736e067d9c055 100644 GIT binary patch delta 661 zcmV;G0&4yEA)y737=Hl(0002`twPcO00L-9L_t(|oUM~FY*S|xg};0Khz&vbWkDS% zexR^>VnW0Lx}y$R8w4|qhyn5}b;t%turNTRMo4t1I#dF|z_SoiVX4Z1KtOOnf(Rk` z8M(2YyywGU2NGC&$8R|I{OA71#MW{CU(hx)3pRnS05qB=6n`Zt08GG#-+5{yjSBz? zlqHD`08}K&&O)&dy0zq6*GAv^s6E&~BaONHElH9~Vnf}`j1d@A?zc22$$=Mus#c}3 z=`DlVsU{VD-Ljeh?S~J4GQrD9==DOF+3X_*U}9oxVy(+VuyKkV_e%2)+*AzY5kT(b zc4$0-wEH)Z;eXhGlQGP8Io5`^ zcf}M1@J~I0EOq6zz5z59w-2lq1B$20`UsesM@s-`VJ(3Qj_n`%e!Xo0s0OeH zGO!cJj;BCCdm73qSjMsec}r4P(wthukUs#60Q^}uGk<3Z_!&ZoV!*j=r8nErN+YBO zFnFc)rS-W%7p7X00!2?APu@6UWoQEUfYY;oO~aXx<9##pj7GR-5n~ba1xdcj06>RI z1mrawj#S4wvCY?Tv_Rnew$k|{X7)Ko7UHFNPqh*c4@s{i52kIrFb1uddJMSlQ-AMH za9AJ>|JTgSjx|2%zy6PAX0IcFOYMn^@3$-c^6A3*F8Uz=2>^%PZ}cJnrkX$@*>>$0 v)hd#P&2h#*jet{@l#qw0wrpnKRsAy>pDR>;R}Pig00000NkvXXu0mjfKSVN0 literal 4344 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 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_10.png b/assets/dolphin/external/L1_Mods_128x64/frame_10.png index e90ad5e90d9d22f6dff7d583ff77c79483616922..d09cc03a0e781b7012e38893da2ced098ecb0c1b 100644 GIT binary patch delta 673 zcmV;S0$%-+BCQ3G7=Hl(0002`twPcO00MMLL_t(|oUN0+Z&PO!#((Gd+D`cL&C(5g zk?6og2F8e71YN2QfdR24`~{2%slwMx*#IFH7BaL|VSxb&Lh)z z5G8w;2q#0PdS>Qp{1Ejm zq7X5gljJKrZvdJYA%G4J>rV>HiOt41C~@cKsbB6S%z!~V_K{@1QBKlB4rxRl9JH;u z0<;pU34h?eTfJS|z+uj)g>E6BJ?wxGAW-%9m=FD5fwonutHJu6OTa@|rJOt?2>SEK zfVWUwt5U#xkfp^=7gv}d=TFVd>~Q^)zVvpQnZ1bs&UePny&F~g>z%{u4tgN~H2@B{ zUs+A#FxdcdwfyC2#brrpa-6N7GT@XX)mRTv+!{2qZ=(J$_SP>XD65@w00000NkvXX Hu0mjf&rdu6 literal 4370 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 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_11.png b/assets/dolphin/external/L1_Mods_128x64/frame_11.png index 031c0ad81a1ce3f4f77b62f74dc865fabc2103ce..78ca6798f24db063f73592cb1a33969493b39fbc 100644 GIT binary patch delta 656 zcmV;B0&o5HA)Ez}7=Hl(0002`twPcO00Lu4L_t(|oUM~PZxaa=g}-|}NgQ6DG<4uW zf|~pQgeMAg6oDdbLPtl5D8OT?Gzbu^w4wkPXr0Dnxt%0IlefyPyU3gje- zZ2;sY$u7Z28}#>*?`|9Y>LY%#jRqRU#fBuwC9$n;X2t;Y@{0`>B{}d8(726L-7!mV zwooIl|GI2cfYql@Pn+QVQE0V7nBM6l0bp!w_r@Bx`e1ora?j)JoCAM-odUKZfVu-G zMuD{X45;@-6@S6(`Z}xCv%?Oh$;p>kC0!<0c!4A7_Dx2Tw^bn6bUHuH!~m#C=FM?Q zS2Z)E&S!_>=E^)!Q?fR+fzu*A76Yc*{!XLq(7Ui_7F6D>KpqGGGZzCNhsr=c074?L z^QWd#z_C)s#sTY6H#5|b)Ra_Iqrc=8-~j;hB{OrDfPZrkLX-f`L(49YqA%63@4fdy zouy8(*Mvetk}J9%)vv{tgBpPMSeyTM0xpJ3wav`COw4au#Bju1Mv`xErVQvrmVm7o zhqc=9dSY`ij>@U z5YSN$Kz|6}Djl4jo_qw5QuAK0weSb<99ra)JB2Rm0DRKDX7|b$Dd(L*TI}-3Mg~%U zWoBlls^9dzeaOu0V+3$>b?nCHQKdic9F`8y4gshDaMJyLtN&?*8jz_B-JMaKm()*= qv-jHoI5|lbwn7xw&Fp_s{{i!0C`ekSqvQYp00{s|MNUMnLSTX_0yJO% literal 4342 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 Y^oL+X!q1V(-@guPi=*awrf0(c2Rp-`h5!Hn diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_12.png b/assets/dolphin/external/L1_Mods_128x64/frame_12.png index 856e068fd002a75f04ef4fd9a20649584763ee01..bfe678880a9bcbdd9e9e0c8758a74df39e104a5e 100644 GIT binary patch delta 646 zcmV;10(t%CA(I7=7=Hl(0002`twPcO00LS`L_t(|oUM~PYgADbg}=RXoykMZ%@5GI zf);lE07-6)b`~)|z{JklMn%lr=`6Jn#KsgV7!gtkLYhpJfZC{y2x6Rxg%FjQ2{Ds- zWR}IfiI3V{owGQsvsi0w6Mv8Me}RUXS?~wY6o9g+Kwgppz<&g+&-30gj#+>*3`VJP5{i`E>u?uCS#ig1g$t5940A^-nK(DY=Q&Exw9|4`P6D*sV z1FS{#X2vQMvKJ43OtMu58Y?Sj0^sBTYPUuLBt4l( z?}PK)a5|a(oqq_R>hwy%@fhmOmp~PVVtai7W;QozET79c+tiQ6Sh>E&@Yrh{dKU+0 z$R{6`fuQZ+cZTECl3jyBBH&Faf^Htwfr6y-z0XrYQq&FjWq8YOOs_HP>xDUWW$;_NpU@A>B0i0*n zzcxUNgAq6SB>7e< zG`!MJuveJeW|AXL&+fq4#l!#u@csk}N#gNt$AWPi>dWDlP)Y#zBWfMq52G*#;1&Wp z3J?MWDt|qQ`QE+;)B%E>#oNFuD_^3J0Bi#AMWfB`^>32AlWmJ#&2IttJ2Nvo{d`S7 zTZhcdK1TpIH|F$pK=r-yhsi9h5P&iOqwe>%BLK!KKwo*^-D$-IN$KV|LmL_33`;7r g6Qa1fTmC=i7l9!n3YW>L>Hq)$07*qoM6N<$f~9yQs{jB1 literal 4327 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 GasLPY-HN^d diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_13.png b/assets/dolphin/external/L1_Mods_128x64/frame_13.png index a0366b2cfb4478ee1e6a3261351ad2608a960caa..ad29e872d4c2699ef16c362ad54b820ded27f690 100644 GIT binary patch delta 668 zcmV;N0%QG)BB%wB7=Hl(0002`twPcO00M7GL_t(|oUN0+Zxaa=#DDK)u@k<$K|&O# z!;3^qPeZ(bX%GbW&=X^Q5?GBPBa8NS4429 z%Q`Y~{5ceM!dJ_yo~D>LdNX6<%W=Lh&@eL#J_A|;&}eFqmw%)n%z%2S_I{4P4e%O3 zAti-^B(V+v6-f&67l5^0Ki$qqzc?Fxts|yg2H4dX93F{FmUZyr_J|@lKjkHz=t#eXuN!R#NOP#4r{;I_C~?|Ah-Ax+}i>v3_ZBRW*WM9!vwaQ_z{g+mk_K zDVW=do!Y#*8B=XrxBls;n(d@e{AA@|p;w%iv|+ZLD}Nu)0Hp}wIo%v zT#@9w2krv!uxe(`0&sHZW&${mZG3TpHuK?7`{0eb3*Abq0;Oe1fg-5S99q-JW*-2L z4$|+29B-SM_kfN?t?d!l#w7XbP-yt`IKf6>a?K=1Jlx%ZV^0$U48X?|C?<)=>lq6U z+Lo~#Zhr~Y1aRM@_U^4P1+xHdA)vhgAwZz&y_o+xmw*f)=s&#${ATHSiU~jyfPXaA z>RtX%*xLf^`ZTvnc3S2;Ks_VmL`;Kgg;EK&<+8HC1J{aW-S7s zR0GD+O?Rdh7bOjw<7`Ejl literal 4363 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 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_14.png b/assets/dolphin/external/L1_Mods_128x64/frame_14.png index 24fd557abd9732bc5c44221f0d2de36aac1276c5..94ef0e680788de1860edade8f390b813874368f7 100644 GIT binary patch delta 643 zcmV-}0(||_A&>=-7=Hl(0002`twPcO00LJ@L_t(|oUN0)YZPG=#eer^%u8b?pq;uS z_;)0u#7f?NHz8~K?*TkRW{9mDJW)}P=)CHh?iZCEa0kD{4uzz}=_m+DUQXqp-Nn%3) z5=pWP@by%N?k)SD&qjZ9#4k3a+#^{iOOjktHj%rVnUM?K!a`YzBqY@&b&h5Q#W{LS zQtP3lX-N*OCQ!?O>eA9-6I8Bw+GvDua)YDw40`xuV*%9=hI69w?bPW$sOwzse)#F& ztW!GCP#Qxg0)HquMMVIW`b(gMgNguW*4C&l9`AP|ivY_iD~wLO#)<5!rP)CGVG#({ z1I%FfCqNtl&WJwh9q?u*g7yGvvxkDD)7?)~LG??3-{19pH()A`v`Slls=4(H3R_Wj zm)nKuJW2rU?BuZu;8e{l1guTT%urcUT~eZQBFR|=?tcLAXvWN(Wnik8W(qh@Y;a|W zCW|34K=-3s%dMoIz(iS6pa@F04mAWt0Pg~i57KFc9BZ1Hw}Eww>N_K5`y_d-2O3@+ zB-kuW|61Bl+&jAiN9I!l48R9dD5R;!8yyP{+V;MF+)`#zzp$l7Wk{9H@`veFnjrug0ORhr8W8{!MW8R+c5_;BK~isXob5ky!5Nj5(Fsvp dGP8eH{TF=nJ~pl(D2f08002ovPDHLkV1nX}E8GA8 literal 4306 zcmbVOc{r49+rKTv$d-MnOe1ZKS?rU2S7RI7NU1SqEMu0&U-?R|?>f)pzAiX9*ocWJi2wi~W@l@O z;eFY>$5dE=_nr_=wg&(aivSA?Cp!xZFpW+n1_TiRfH|1!5{6A(mNOn%CP=uO56qWm z1VsZ7RgQ40q-TNT6#y42DP{URE?&f4Ms|CSty^j8i-1EUbBscn2I7@$?twN(aa zRRHe0Jn$6((f}Zc6=@Cu?uY@i-|dXI00Skd!}7pD!HyDPAdwHq+;6jo-?SDu=@yOA z;BR^gn%dJlGmi9X$yBGmQVRPvKRUL1>}gQBIZpn7BoQcw%CrUx3!acR!?& zRN@5;x&!_rE625lK>0^SUWKnDu=LkVcjeu1YBk)sLuA{wIW?af_3%###+zCnsiO%| zKX|JfL*etlsVvjXyG?~>*H7Unp=Fq)sdhng1Z8c;8G&^ob0oNj&Gt z&blUfe%w||Q_($5hLYx6$JskXZYW$eQ*>=Y4G2EGFQAmaJ?o=nW@hegdoGo~(o4iPa00Rc^|| zafSErC$Obwg}q}Xp9aOGq}X85Sc}_gv#OO+HNqaCv$2S$`yi>e9V^wsrB<4mKB)2( ztTkuv*WJ5z=c#$`6PG@bYP(0g?aH`=$ZoY1q}?_@KT}R~fye&qC8v z(`UbjiHe;QJKJLGvtN;<7@=6KP^AdVMBm!-IwP~y75)~foauK>;u_Trd+^7>NZHFT zrP5L9?&(qKQ+Hh5g56B|Sa-I$mbyuldb^*#W$pIB=~D^lja+G8$xgT065X;cOc*BF zsoVKPVZ({_m|u9YigR(+`R8m4UGY^f6ccyLy+9Hcu;%@AcYzrV(lvV@uZopfbm*2< z$)GQX zl!t40S2whl7MRCiy_`fh8BpAYyiHR%AA7cI%wM58My6ALJk1J3Dqr z?d(6qI21`|gmi=k(duT3K59QJX)bv-?ct~FcOy7=QAhsPk(73+jL-~u7jp5%V#@XK z_Vfv*uQk07UoRDA*JcmjeMf%tzQgGG>C#nu&1~hiMGBzUo>Y5fXeqqdiJ^cFlhFcAg5u*mx zsQ#$TD515y)kDA9*OPxXeq?=l7Na}rr=E>oh^x5YPZ5f zjb+V6L1LaN^i*n-{5RzlywlPl7jH2FJK~Hx) z5{@6W35u^)2~fLWUGWdJkys!g%vQv(bf5!TeJ}Sz0;cS*}+Z__B%Ng2(cc z(_QU(VTPVMo+**~ao40WDoiHMg3X;^3XT)S6#Jdh-(s`l9IYA(5(}KmtEvwhUYX2w zPyeC+{?KWQU;gJDtwUaDfgCaFtjmg59;+_eyIb~u;B>z`^$u!~mXnrKh!G38TB-gP zUbVld7$=hZB8~ODyu>;D^IiFXv`#XNqPhoMq3(dxz@-&H7%Qn-{yQypTAde1d%V z1LH<`;8Id&W#`LI0UeyqoL9#q&d|3Tx`jW&bI%-acVE9-TGjAw?_hu9`>=>b@v}Q+ z4}IXK&DK3sXL^w8txhjddcVfJPge3#u4$Z%dS7i5=J-4>IpSu7&<`u_Odx|AG<>hI zu>wTK=qB#6MbRd*+0?=8xva2bpPEfP**9`4GUAid=NnzmhM#qgWS*&75}vVT zsrRB9Lpabva=y`xdhX{-g}FPuciJ>mZANhspYS0qI>{b+`MLXz7FNb%Qa=^@7U$(U zm>9ju9A+(}*D^`RosZZ1S#;-_$TPm8t4=JpEq<6vK0aSZ`wm(58B(h{a@VNL$R>)m z{?YcH7j=fP+&<@FSjPBnKXa&u`})kUz^1<7w?E%%9>312=f0R#uA=OHzoS~MX6a|> zk2(1;k+10CtBR^Nqjj|xlvANB9Hz&*>tk|nWqF-9CSW!BW?5b`H#Ie z9X5Tc)~bogxhg8kVoLSje7jOV7FQHYcfX8s-(<}MmrjkWkF6f*#;y&_Z(B*|ZY*P! zEYi89CHGJ*sx2yYT`Z%8TWfc_hE8*@FoYHqiA2E>yc_(_1>rfQ`w~$Y zOY48!@n%L4e+Gkwg2BSV!ZgFQG^uny7{b8700u|GkVq&`0~*YtFmOyLC0O;31xrFO zo*qDB1W+m9-xhH`)DVUdgct1JS&(V=_Wv5D1pmVok2M$*M}r|W;V?4!cWQrW2Qx5) z{|)0mY6rWrXapFB5KIlB<9S;`RQ&_y(f8jS{Z`~fgL0(v4iFSvkR=r#LMBicc9upE z-ioGgfGW1{vSL43D2V(X=$x% zrh|lAAP`oT`j(amYik6;S_^KbXJM`T2Wv+OX5c7z!XMuOJm3Fd4gM<@WkDz47*x6| zl^XP?5S;v}3~I1Hl?Fy?Y3hLY+vD&7l;4sAzjx{Hq%8^bfKY<3HJwTZ|3xz@;6H?* ztD~>0tA|5Ed8rbh+BkwXR9{aY4>ceXef4~`bafC2EyzE3-~TUtFkVow-?j38YUhuL zSCGGl|26|}@^3p4D7+q`^O^-RO)BO!ny3@n)oOEdlQ-Ph*jQg*&ny-61_1sGc9v$Y z%)wb~0_7Q4^gDTTvpY3Q@Dh3UtZ%7ydfA-{jDFWWEy(o+#Z4Alp|N&zNa9yVO|#iE zdA*9bMsER~E=6{25}kiwhj!0{We-1Kkwq*OD;*I6Q@4&Lu3#%hBb!tU#mUv<2USx2D52!z(AnMzNDRwWkY=#s z;Jyvqq&eu5DB!;}X5Getp->=H#N5}66ev_;i)RlD=9UDp+C&%8T2RA2H?$gNfYu%y+Rv(I^!pbWuuIl*<>7`JN;(+^>0` zWU+DEBFOLY6?===bgLf|E~(y0Qc?DjhW8@RTRC5>E41-uBFaJC2UVkATk5X}Z5#d4 z6hlq7i2%vAQB$Sgy*MaoM;l~haTXtdX1wDMy;X?bwpKwp7BFvJ8~ZCVMGgp>0ABBy zNQAyHIrU<0SAmYB^g@xQ6){GzN%G+%=Hb3R4ZwddTRN_P_c5Rxh&^SlasXb(ln`_i zuS{0M37-mimlq<Ka`g~2WsVJkh>t^5b z_&1MzH-!}0dsdZXoYx{$-ej^b#N1RriRP@s)_K(?fF=gg>>egg{r)Z3SvgpinV*dLA6wRn8UO$Q diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_15.png b/assets/dolphin/external/L1_Mods_128x64/frame_15.png index 3bf1d3ed2b4aab9c4801cdb145d64886751a96ea..5f3e54d9565e78c069d0f81d2e942921062d9049 100644 GIT binary patch delta 648 zcmV;30(br8A(RD>7=Hl(0002`twPcO00LV{L_t(|oUN0+Yg1tq#((GZ+NP~Gw~M%F zuHv5|Hfr4jMWnd3?t-H@NN%=nTF}M8c5qP#9R$S>yhRE+iHo>2CJI`Lkfg2oXg(f? zn~K%dGyZsa&ck!w$HeY&{x7JTnFW7=^=XcS&oB}pzRnHs2@nK1zU-0P|el91Gp)H|Exlpk1c zNa{S2G%IOmOCtg5D=Vi>&>V$UD}PHqf1L`4+Vab7SN3*5w52ydIsmt+5{An2oa4HvCit_;ZG@!E5 zWZoAesNkS70AB+7WS^C0M&b}Pm=R~$28>DlQa3j%DPW&UM^?cu zO`od)0h=LYYhYa}2B<2jDXE}pL6Wl$+ymfo(af9@aDN^`h+@EbYMC#iXl*%6z4uqu zDRm0{CQMZ&1&W}uc+#>^2Jk-c%(jxC3XN$IOAz4e?A2xi~!}t&BW4VdF!?P>m_Zfcs&!5A6kqC2E1(LO@5EfDph{ z+&?pO>VFwPjk5QH-t*hQJ7|%MZ%uXC0^qCeHoMo?q^x%aZLw=3jUlM{2QxF9Uf$5p z_CYhV&k?}Q`s9u8qpJP>bYXFVb_hTMz;XA*R(jH@GBA|vxihPLPEy(&XMAG-oUEjT iUWoD)GyA9NzW~wlI*6S$P(%O#002ovPDHLkU;%=XtSpHD literal 4325 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 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_16.png b/assets/dolphin/external/L1_Mods_128x64/frame_16.png index f0b44898fb76099f26cfd61c57c2c252e843faba..7bd404a93edf23b6e49bfc6ad41b612a135babaa 100644 GIT binary patch delta 667 zcmV;M0%ZOAA*Th97=Hl(0002`twPcO00M4FL_t(|oUM~RYZPG=g`fLoOg7PEC!K{l zqvQwV2Z)(StQ8Tli}rq$DhNBKgcX1_)&-!V&l52pdkpet8sTW z*_~st8!_5?%cnT^aPB=OwvOZff~J|7_XlVTK!d5lh$MMHrGJ#b>TTZHKqH8O1d5Wx zCIA9Svh%QVB0;yRZtL3cZy(XqO*GIbEvJ$sCn=d3sGFHF0C}*Ssw4?XElIt@NuX$8 zy(MYmuB3TMn_F55(0umnkO|tOkYzp`|IMT zq0xR0)H4UreSea1a&3*~zQrFNO&`Xx(PZbBsbaPJ&5_?}>-3e8_&QvQt9vk-vZN=hFr0ZD%UI8_Lv9|JRH<*{? zF|O*q4+ZSh+>r+0@xzB=1FTEk0Hu=Jl1fTTk{qkR4SxXcmCeji1&)FbVGKAPSmDzs zTB-Pb@A(I9R5wa_8)i~Tp2D{;r~An-yH`&!$`Lb zL%5AWTkPUU3-;jNn3>sJ<-2}%cAJ@f3<0h*Cog{;Rpa;5`Q-^ZJ^%>-2b^2V`X`;K z0Yk~QYx9Z%N&V(HwtpW0M^REj&qq<+%>JqRFBIexMm5(<9C!c#002ovPDHLkV1hl& BK3f0) literal 4346 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 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_17.png b/assets/dolphin/external/L1_Mods_128x64/frame_17.png index c98c70c91261ccdfda7bb489908991c192199121..f10d328f9db8908aa2deab71a8d4255f5c78841c 100644 GIT binary patch delta 662 zcmV;H0%`s7A)*D47=Hl(0002`twPcO00L=AL_t(|oUN0+k4#|{#((F`wL7~$=5D94 zbBRAg?3JueVk08DS-nJwgv=e)c2=QLprAm3gh+hE-H3!rG@>zPNZ2egGpza8`FIpF zE0)$Ne|htqC(n5w6C20*zo21e7W@HP0?=qGFfK^}uvAQ8<$oq`Y^0G-fE03)#5w@- zl4K`g`Dlu6lzrpc=x-nKvvoAmC_b%8l3Y?cGg3D*V+02Ir!^HNA*m^;e=yA}9$9Zn z>fV-AkhH#~nF5XH&-a_4H398*2uJ?(F|VtvFpN*fJO+DSi1ew?p(R|)fwDs>3A}pyj=nUoa*7Wk{BQ!22{~7 znOCIR>&p2B;>fC8?-dQIfL)Tm#@v$;_NGaDNCwh!VhgVA&57Xn83ddLO(~ zx7;lbS};?S8b<5uhx^jxam-pSi2m5SuW(;Zxr37%_sm}Bk zaJWj?Gk>=b&~COt2oR`rJ?87$8K6$KoelaAF9I*2O+E?gA*%p<)a6$1?3dn*ygO=( zogQzJN%7ZaW;VO@T|YZJ%*@_L0E>;O^PeYF|NZI0(l$CF04V@_-LJHVC!MJPnRL^o wg5tcSVRM|#-$%g7NlNL5D6X2>KUMz)TdYVX@ejZDWdHyG07*qoM6N<$g6DxY`Tzg` literal 4338 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 TR|WGY1^}2Eoi;4jzZmsD!#|dj diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_18.png b/assets/dolphin/external/L1_Mods_128x64/frame_18.png index 4f7b7ae82eb0a11725af52a2ece0ab0f85703825..05cdb7be820342e5baa9063e0456327749969b37 100644 GIT binary patch delta 662 zcmV;H0%`sFA)*D47=Hl(0002`twPcO00L=AL_t(|oUN0+Yf}Lf#eetq*{1a)uZy^7 zp5mV&_7&K%W>xrcM_F|l!+{|lOCX2BnzEdUKCgE2`8fQ51j%YV06w4p{R0a7SR66*jc zNs^s`rQ<2OS@n%;qrZK`PuI~~f2HBai;-iVJ0g)|P(us8~Pa!Cv1~Ac9zuGO$NebAi z>Yn!n?BvXB0|@vLLa_nXrDlNYlG>8Ws+T1>%fNL2?tfOy%&7uLAcQCZocmVzIF6PU z!h!exd#zR1%KbJ>)g`&2VpuyLTM;q<@AI{BZyHXA%y!JoyKIkEEn+lcengVDc$)#* zS0I2U4!u{SD~Zj=I4E)F;OwCX2`9jy5qlw7%u31NkbSbqgK675G79yCN&>j=R%h21 zaJXiqp?_NlXfN9!1PD~Q5%X>J9MG_GB@cQJE(0$hr{yF^jQDFaGn-lXuAiNqW@aBEfQ!w^3tz_7`2BQYWgDFkfE0lJ?pO1{NvASkB;9mn wPH{=npgGRw??d1eC8hL26xYn`pQ`@?+Q&dN7!Nva1ONa407*qoM6N<$f)9;CssI20 literal 4346 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 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_19.png b/assets/dolphin/external/L1_Mods_128x64/frame_19.png index b3ad6700cec06ed37af344e2373eb2bbd808edd4..c7e290ff9207f0c7bf55e926b63ac076b7eac061 100644 GIT binary patch delta 658 zcmV;D0&V^CA)W=07=Hl(0002`twPcO00L!6L_t(|oUN0+Yg1tq#((GJ+NSj*x0{RR zD*hQ_Z=r4lMMT`HyWl8-k{hQkq7E(&+Cc|(u!A7@fwzdDlembBF;UP`g(SA-qq)iB zkW{R$p7F=aa~_`aJ|?z~^M66p%q;i=v<0BiRAF3_0${n6!hh;L-q}c_m;fmhB#BJ` z6eY>d!OF=L-L3f6wb9=`;uo7}q)~camn6BQbb6$2X2u8%iqGpRNkURfQvXO=R6MfY zlGJ-3Xese{$tU>*2Ube}{Rp7zKtTyK z+OL3G#{qiJ;D6NmI?esp)&iO#Ok(NoF9!;h?7K6#-`1IAJbAwi1UR+h9VIb9JPfF+ zVKQ&Z5!7%{6@aRe=Im7FL^gb3surG3?sOtsu_Q%{8z}^N)Bq->K_x5BOA6Sj%Ki^v zr)Q5gfPl3S3JtJ~ngOayYD+4qUXtXj0=EHJDw~;80e_A`2vGt!k1YRb0Q#EBK^vy)l3dZ{sCFr~0#pHfz}nKo88{nqv}!LlO<#gBjbN8-sd6IRV`Fsk?UvI4lxo z<`x1vz<(|X0Rolp#C+el05r&V@KC0C?-K8WF3Idy4lVye#@riy-{22{CJC8 zioZ28v)Sbz`q|xMX7(`xxZ0e$@^wOu-=8il@1h$5kOFYX{Z?mq(&;LYOSj#aS6q}d sY>u=2#|StDNh$ph#Wgegr|Q1|(l$X|g|SU001E&B07*qoM6N<$f_B?BnE(I) literal 4339 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 literal 4344 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 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_20.png b/assets/dolphin/external/L1_Mods_128x64/frame_20.png index ea2eae4d7cb6d87b5f75327cc668f38c0ed0d383..76f90079224ea2b93710eb5f88f03fa50e176fec 100644 GIT binary patch delta 649 zcmV;40(Sk{A(aJ?7=Hl(0002`twPcO00LY|L_t(|oUN0)YZPG=#eer^OxF0w2nrVJ zj^f{ujIT~Gh=`TZ-pWQrbS9mZXklYx5G~X~3qepM6D6RPXdyPPy9z2Xu)7-fk$oJC zodh4PxB56AobShX&NcDpIR96uo0$c_2~7bgpE8U{QUJ^)8GkI?<*nr&#T3Y3Op;g; zfJBn)417J7p*to2^V#Tcj`;bClzSwzRY{Ud$|iDmGc$6bU!1Kfk%Xj%q~4*ds5nP& zNb1~|G$qM_g#;QIP@kVaV1n9ZPg|`Jj;?TYp27fs)24uW2%|Ys^=9hy?=^L5a6kH_ zaLK70X(^4N7k>e?ow6c;TJr@^X*sA2aAIkR`mU=#0wRm5VAlyEY|wkX0bWfMp4r7{)fqZ^-lqQck|*Fz*HW)-_`1$YGyfu zps*Tcztk;GT!%OKf@!;$Z9DJM_U;ti7p_rx~uXHTfW9x>7aZ8y_0r#D1?^qAxFazKg z0@@7_0)GUWz8$l;d>*I)1ii=CfR~n?&MUqIz$cA2yBEGm@=m@jc5b8r;IGZhZ2z;5 z`q|!YX7(Whxbl5QU)HL&TK+J-NIL`|17O_!Mk@kfq6`dWYpzczE=n3~j3N=>@B8CD-ao$kxR>iXuix+7uJb(Z>$1JArI4VUAOHYDR%kN} z=Nrv=jQDvt?-~AN8vqbAC7GJqTbY`I0%%ksiA(^1(2;z{5Nz72l)?BaLBz#mc&R#z z90P!rnf#riuEnC)0Ni;|aig~QOM)(YB*pU3&aJV7g6RB9Q$+_^KE_urolJ0c)A^z} zR`xI=jJ>$H{${;?Hg9&Lm(eE@Ehes-`mxv-(8a{-p@tQc?a-}V4bj|^=m}ns=*R9B zpB-%gu*Aa%jigr@ZgAbB0^C5rp!$CCj>+w~I(yX<04Noh0E^G=;!42)o$5}Vdw@kjt^+;VP(9O3;DVtZ?PHI4&ddz)1axp!1vUAV zp8`f)fHUK3?i!;4MJEMchOH$qbT*9k72L4z)Kl0ixNFy*oOpzZH-ClL_*{b z&g#}^*b;Cy$0)m^xg>7$EY3f;5|cFB&1(YpU!7In>WGipOghv*rCIHEMDofq_A<*J zY}3Jbj7c?9>dKfBpNm2)D`svAq=g6p%nNqSwvYH8c9WYUzi@FU2xA9=0i(!okgIaL zQUOsPO$1{V0MeS)l8w~3fEQV%9{`~KlZ@N#bZP5$egH5liaA_m%(wgL9%i#}-cyD8 zW@&ERPBWw3`@GJ1SlQSM56QD8q^Q^Y+wv)Hd+u4bQp z^rPak{^Os5=s?7kBz$x~T$p(EEza%gMf1~_v2v;%QurAx(j^&*SHNlqOUgGF;Mn~8 zxf7x#7Wh5Ri?)zsQ&KFk)>zZqDhtXr;&uEd1me!aTMmHJZrjzUgo&@UhI*l@Q?M3H z)h|l>lnPWl4hTzlrlI!>cU_yd6;x75L0Ijw@W-L>_uXVbNNP;Hl{tObhqV@lJ-k0A+$GrTto5hmG1cN|`n7rf@ba|u;= z(uz_PY!7w3ST3O%l%w(@SIV@z6jCzyGKb_tT0H}uqt^+%i`!?O^)hR~?-SqL>|EUU zkljKTgyK5TUI%6UWY5W#$<)e1v#oFKc$Jmi=>&U&kk9tHE^?jfj6MA0aJXdZbMXvR zhD%0d#_Sy@=Rjw}LB^e3PIsL}?s~XH+_G?fVE>_9;I-7yX6!G#(ESVX7DX4(B~JL-cG*NFsdfZm8EY~`bK#jk;&(u?V1?%7)>+-?S zbJmWgfp>^ZVk$BJEXOch|$v4(zfZwLod?(a)@>PHLvJBJ)K9!n8VDjg(Tgv&4Hcvf(hv?HbLN|}FQSa-&Z z+?Tq6hp$#ja-ZamRlKFVe%GVl7IAmoMm<-)%l(-?+xYv^Dt78@&xic7+_IK$DYHWO(NW(=v|t~mFBwC| zFXXbKS$9}5p%;IeFK3C3pZq>j1A&`5PoTHI9o#T{A$5+mb6+f2#IM>@< z5TfUbbWI7@iN7wMb>DC%4rF2vm9d*C^S4ou_8{yKBP&LXH?L%XD_E`Cwjf>gPduHF;vu`1~>3QjSB^V)6W{uh#Sna`D zJEEFen$R@kBjve#+QsLq)5>ds-$o_L@z(t%HJD0!VJU0qZMD!-GN(dW=mzx3*Bax* zt}wJxZs6ukQ?=L=ni=KkUEThb-%mcqOX4!To!P!wgQr}g4ohcvG6R^mD}Pp5 zus%+mu=N}aUtv&2M&2K*eZDx4o-dvEXRf+7-8G=XF-O1N&?@;6mLKKb?Xp>Mx3=-E>c~*jyO49=gyR$>kG^N8 zFVsI&3q9f2U>>pJKky~?U9y~)d|lJW$agHu5WBX5D;>Htj>1cUeKct)c$w z>@miw^+vXzyMud!k7-|lp)~!Ab*<-W*SGhx$?i+_0pG!^UZX0t$1C(J^(`XZZAuvZslk2k45Pa z!7tWh?qSKH_cj_wHb3+I68RievsF!KrcC@i-F&+5nX3p}Sm0v8R{HjkpoWJSUG5HJLsH{)yx0=(n!q5Ew?6m;(gtP|U`jYcLWj`^j$yV= z_%J`bt~c1w0Hha+;wYdH=r~X)h3p@Q3e^Yyr5D8+{}w~RpuZq=KYj4uPGN2AL8eq1 z0i>;tfZ$;;7)V=J9qy%t#A)k#X&wO~UhrUiv-KoAHN49>Yh|6E{>L7F!ag)y`E z#~f#-4?aVu2cV$PkdP4d5Dj%I%?AqC)zyW<5KsgH!a+a+8UA!!D8xTd`Hu!OLLi<- z3ZRpy{-EC)abDCQx;~iW?B7vP0&HylRqP-5Pp&vwgNEV)pm22%u|VH#Qx1QMaEp`oJ<#}jn^==o243v(n=*A!`v zM8HhoaC0*qGc&k_1sran0W;P%wb1&*wek<7$C8UR9Qs3SoKZE$#!|8L2m-@Ej8&}IZ0DVX4GL8DSYf2A2k z`VTH>A$7F0v~dUsCsYDN6Gza5=xFQUA-Y7Ox3;&277`BE0RO}H{{N;A%5e(%yH@^B z?femO3i9{x-)7)U{%t3MKc|OioMtJFJ!{EnwB7dBPUhR&+nnLn*4F0cX7*iP4*=j! zwK6ky3LRO%#`v2m@lV%nZ_lb!IPBr zm*Vu}WTVwcoiNlsEElWw>5uh$=li@)m!aPPMYv(3`de)RX;85-o>0oS@Vae_?Q;^I z=mlVsNcPwpZ5yAZkj|wkH}d4Q5w_DD$frSw4rryRAvHyjiJBPWi6oMt2*~SP^Eeu3ht?NZ5vA~lI8C$)SbiZhg_|jOkyH<9tgZ7r9A=86*?Nr=*m}G#ISSj zlCE>fh@S*RNA$K6ZCryh4;agE!{YB?SgNz839Ku|HX>ev#B3sA)S|4|+lKBvcqkfO zoM1w)j*^g%Yo3XmAd6FcM9glJY3~hIhPoYE*aES$&wUPR-RwLNHXSd$t8j^lfCL;q zpAc0AyqCZ(m0vkCZeqSz+iwL}7>XZ>3!E=u_3 zXSS`Uq6ksvIp3)s!>PQZ;L^msui8azcc(rEalr@`kb?WUzJfsAu8ABIc~SKkEYQMx zqi>IlM>ucnVLnv*HO=#^Ix-yRo8ye^P9r(99_w|5Fc;;42(?KISE*+B_6N}zt3;t?i5@|5wVx$s zBj^%=O9ziHqbmHqk8?$%n=-N{D@9!|M#?qc19*T)9|6!iYDL8F--DI8ty!hX>Dd1P DJeHGU diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_21.png b/assets/dolphin/external/L1_Mods_128x64/frame_21.png index 00a7a6e99c02f28a51350e2ebd079919b2b17a1f..a0c56bb318d5b3aa05eaaf5307bd01e1c1040e28 100644 GIT binary patch delta 682 zcmV;b0#*Ik6t)GB7=Hl(0002`twPcO00MnUL_t(|oUN0;Z&L>pg};0K5+_Ynzf4F- z;78S|Ri*v|jb9*L5JQC2wc&4IfK~j2HikG~4ahSX>jp8#XaOnZMJ>DcGy zzXC8l?Q^?y^nY|kDL{RB8vRz6xH^Jkhn!Pg(4)v->1DJ%Tcl>>di%9W!Of`17l?Ml+!YPYx`$wo-Ub9;>n zI88GP0qasTGgOzBO>XZY;|!3db~{bZbY(7OZY z))NB^z<(zaC??5(6TpL6o63#jmav!r?x)l~`60|e1;8x?^a(%+5NPp!%-+%WKm#D? zt=|HkSbC9S0kRxrf_&**;-rwiN-~d|uJ+q#7gm z!{i$65E#PGjQh%A1VAYRa_QKe1;s^4gXB0<&m)I|Q;?L>3sGD%vv;EY3IS&~XB}F` Q`~Uy|07*qoM6N<$f(OMwI{*Lx literal 2648 zcmcImdsGuw8ovRfAc2aCT6@+`qs972GLv^w0)&J|#83n(Xtg+*Okhfq2}y)N1%Y<8 zP_ZbKQWsX()wTFqt$NxmJ!{m~)vm9K0!7`jf(HQ+MB0M#*c%|!?rB~B**WvLbLYFi z@ArM*@7_Cwu`!Xp)8|hI0QhR6)N$~c2d_{s4|rdH{O&98;cbapV*|ivmg{1GU6u0y zn3_W+B-xX+E9C@j;^KN*M{*q|3$z9xD8ymGi8RuV=*SextYG)lon#}FUcpWjX;H03 zMW#|w*;X<>J0^k1P9tP`c1SQ1@R5mw4ZT_Q26>!1 zV!{`EQ?OI*c8i?H%goH=W(v5pHHC-CWHKJg=kfU*Xu+{%neDiPW40}HBdAFmVWli~ ziZ&xIL|jL2v@6(<>39ex%OtGXHjyTnFrEXq@Gvgw3dwD#)jr+SWSX?L*~2rSmkGYV z3T#WrvXHzu(nfEz5@dJ=X|^wPJF}$HcG{Lo{|2|o&%a=(Cng8i>CqEB(ny*h zwhh{1WBe>~m6gQpv^9aIjqXClx;-L%J{Ln?Nu=+P@KRxB7ukOXZTq1+4M7UJX zG3bN>4la@!IAT;pVwlh%CIuK9`Pr|EHqurtt%unaJlU^Nsba0Pfil7mwz$YJL=&zO zV=}Rr18c-a^n~0%TTM6=8fC&$NS?)<;*ve20mF@=Y_P^z6B8+(OrK~ODP&BYa-48Y z3I&^Rse#n9C%UO$N%OM>G!C1YN@q=74m+IybaHII`wB$ z$p4Z0L|Tbd+?+zf6_&?#1;cZ#MdL-`{dc{77KU3~N+^3*HEk1V2*Xn*6B6uJU4$AF zM~I~o5g!f1uyD0ht;QlEFf2lVDkZ82@wiVT<@P=f!h5>6F`iGXq3*$OVRkhqcLew{ zxu=k37^W5O7@>*k&D^&l=&54Cm5&3l2W4X$6dy$I-gcP4^4-I=*IVUdd2T?cI}&A2rr%wl1GK^!c=rj)Hi`dz&ly&Z6qx@R?Jj zIn6OOm237fj(!m_w{R=-)}{V_WgV!9E2+t2p2w#nx*Z;uwO=C&?>9ay40tu!(Xx(;An7I@=;k{!i|=MgZ?ca)vN;NewVKX zD}7YLyO(@lK3#vN6rIIbu&nHa|Gw8A40yg?S((4Xx$6o)E@>9mOZ?`IF;o^y%_ENH=w>4x&ciajcZ_@ z_WOitjsJZ}^ar;CGd!xxgI3GSkG=mx|FkAeablX()9B$mVm#Hl=c{gRkT=LLSl!N2 z%u9Nqb;GB%04XoHw&=nVZr4lR`{o}6p(5o@*51oaYlnYg0A${kqOibq%b16RA8hj3 ztSR%$+c!|ut;^27l-t-brP}|U>kVnogLf1&0$yb7-|~VorR|O&Fi{!{qD~l zvoARPsKGKvc#&FlN_ zt!xRX@7&GYl3to+A9}lZ*`hOy>aOccx;H%sNUNZz_E72fH9!vfLGQG~jRzL@2|i4A P{rhRcW7LPkHWd5^f;iH2 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_22.png b/assets/dolphin/external/L1_Mods_128x64/frame_22.png index 137d5ddf6ef0995d0bbc0e1d6a26720ee04d7c13..bd8464e4e264c1f20789b82a37d79fafabe85351 100644 GIT binary patch delta 661 zcmV;G0&4xO6`=)?7=Hl(0002`twPcO00L-9L_t(|oUM~FOjBVLg}?jrfFeX51Bo%w zK9RwZ(ZN7b+#HBeoU~z##2VKy_#Dv69R1%GYVbCyWX(7=BN!lXP zmcDWv`XHjKclvX3bN-Wa&oOa$9RC+6o0)lk02Ki!o;T{CDBst1ccg_v1~W33qk;TdK|0zqMcY#ajFNM zZIL2X#$!@X!+*!E_ohwIIGqP-j?8s>Gf=9$0}53~>lHo$H@3Ga_f7ruh}N0@5Louu zxBl*2wCUJ+t|&!&xUvX%IF5|I9lz1Eq-l^BoCDxvCV&EtvYGinUSWBpC-P`qJ+smW znDX6oksKw!1I_Mc!AqbaNs+Xdi;`oK>>yI9kE+UJTQy`;6Ai z%tgSi1(l-#_gf^n_yYb!0`DL&ZQEfRspi``;L?0(fC0Ef2+1&Xsr`(3!`9i-hO>}N z2sn32wSSXcFbJ~%&U`@q06u`H%;OZByLW*SfY+Fx2Hsot7ReA`8-R5UR-$`9B)NLr z7Q55F1K^g;%xvWKnts(zn3=5x01vii^}R!-gYf&|BsCv^EC7Sf%~S&bhVnp5w)Nqd vQb|e8<~TaHV!+WYDNDmgse+mPQ}y4?vpf?$j}C);00000NkvXXu0mjfGk`uS literal 2733 zcmcImeNYo;9)1I-mJdCx9R+FWUT~CyZnC@i-kNI2htM;Ciej5k>oN8h3@e@MC#;Aqa zG9zYmX<4f+waCq`E=td$i}Gm|BV76%vcyM100--#5TC>DVAL z^3_63Fd?$en2BgPH;c$c7)oQ91W~9&xLhhD6we?8Mqpwbeq|`GAf-xDLLi}!5N2~T zW^$Fz5XuFw)IzJr<08dkuh%Q`N<^I7BF0rJl^7$$1cAZ`l=nM5ln-_C36lsqmZ#k| zm&e9Aksu;v;tD)!A!IsHg2Och>*PZ+LBYg6$|c4{Sg@qYK%?>Dp$^AXH1E+D!Ym=a z_XXy&{4Q3!isiWiH_hq`S*IsqGMUTDc{tw6J%HQP<6kgj=&6LR0=Io!9)=dPcGdy0 zc^He2^K+3}H%oaqcNWLlCmWSHnGqof5soBg+nfyN<$oV!6q>;5C=aU^!mdeCOoC$4 zEP^0q7>VP_7*1l?M5qz^fT29pqXlz}&Fp`aP@|DdbMhX_NwaA>wGfgL*=!8SVk!wH zp`@sZrC8Ktk`ky%!N^d#9GB86Il~ev#W*iGU&qk}K_!CoCv3}bG{l%vlT?~z5~)h6 zLMZ|_p$sdB=GAg`&TZrvsIKJR`)OKjrkgX{?C=4yPTGw?I8_VZmNxkJ@$uQq}A-7LnFHl8Fwd1(ZQEOEu@2P zU>RZPw(UMLKUzT(uwE+*K_B9hi7=isd%TpJ)mUIle$|EI2a)Hg!iQ6TG>7~jsfT2x zt(4Qk!WC953>G5}u0<0~5&v($?iyp#TpDQmU^n@Y3@MalN|5L7?`6s)Q?Ss4C`QpZ z3VltZN?b{!7)~fCg^8tUg>-_2-F6pi(!rPlQ>G|2G8utsaa^xc>U6llfa3-Urcr1O z@(0f}=y16~u2jI8DZesvT!V>H#1F4|Jo28Ed{RKTJp_kS`x3mE+Synq6x$8=trea( zTL1{pOw(zyeCL0vYH^0+kLmlz#;VBUNzE}$pY5vneDk+8TfTZSPSkbz<5ufa^>k@? z7f@aVO3*q?Jm0On{6o%IRmo*X@lx=4^2pwnk@HxXvCkVT17Cdqcv#o58Q!Qa!-2E> zD`Q>$48i7Gcdiw0A2BCweI0`s3B5AQX98hfRrIpQ+th~ND4?T+TA&JSY3F3tw)=O0W>(!5a_ z(Rmv5l=jVAbn58=N&89})*x^-x79{ZFL$@Doo?FjazeiBYT==zj`*X7pUh7IzIN6# zXvgETnr{t%O5N;~U3dH}KeSIZ|6tBXO+&i^-Qs^(hw69i{c2j-;@)XaJgFs9pB=g4 zt*Yg1Fb2qeW zhOb;W`NWIcPxilHGKQT>-rtARzP+#V$F0+5?`bO{dghdMB%Kh(KAW&G=7JH zl^FpaRw0PrHGJ-94W0DkH{Tv;D%%ZCRxZD`b>!-Yjy&J>ZEM~Rr~|V>^`dhxWrV3O zy(z#%S9=7FHwUxZzsy@LK+a7o({vneYWyU*>Q4<}CDzh~vCRWUc6{KJ~IZDKoEZ$N;SDtIwI^T{o0khR8xQ?qYFm;f9q}S zS9~DMR`R#s_=`uNcy(rc{lJaDIOuVm`|ycFbE3BPi2USS z-`^YS7%OdVxw$htCpu77@BDWw4=PWeP0Xmzld|?tpET3 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_23.png b/assets/dolphin/external/L1_Mods_128x64/frame_23.png index 89690fc0382f7d227ea9a2ea97b13f7809b0917a..4074e09830e5a71dbac8036727779f077911012e 100644 GIT binary patch delta 676 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 literal 3236 zcmcIn3se->86I3kK`>SzDk_eH4?H-#^V*%6738tY3XxSrjMh_4XJ_uhM0RJ{Sz$p_ z5Zd^tN2umBN5E&mM@!nAsP!Eon$%)qeWdD%4^)m3s{(q^p9)CvvcRp z|9}5?|Nr~%%&thAJ~cQnJP<*U;FM%@Iy@J_BYr?1_&a}BQxrS}xRQUaBFMlH-{FUp zR}Mpv0T<0FQur9obIR=#9lXaE);6o7Q1yhlyul zESBI4h|aa9p(e!*P=l7hMS`GFme-O7Mo+PmP>P@k9SOgBoMep*XQU~#>x02)Zpm&; zH(R=5!K+v-%j0nwb-KK~JZ&DWRot06lIM9HLFp(8hZeY+@AL>>+^I%(Bbb3Ix@DI~ zR-C90QLrhCJh2#L+PMUWs|VJpcBKg>Oy?C`I#Nscmeg%%wZ7cc;pnkeJxRGRN*CW= zfz^zB7to~xRaxW~K~gSodLp}nxv~_GqGl;S!L8@^3k)T(C!lMQJG&!2lBfgOzyYyU zXiIkRa~Vx;Ab1pahN5J57b>kgB1%zO5{;T8J0&Ggo#!_5MuO-xwL%?8f=77KnBp=B%1E(BntZ`nkz{-R>zG=t#uTUO5u74OF~?$% zlvb7{BP|LH5I6!SX_m!Bo{?}~5)3#;>j^;HDM_S32QTPvR>VcVO!)jeWh*Hn#OTSU zk+Rzb5zsttV@U%}+874s7&syTPw4G>)-KRwH`)xh3_C~2eje4wN`i=@-9~W~!Quu% zU~s@P1TF}AJx+@@&aNj7fM)F&`eR&^lC8L{iUhMuKR=&hGNri{yPOSgsOeJ^(Uc^U zf#eMa9M%X!CDCYC+ztT>O?C*GK<9F1`eYAjz~v^(Dy(sSS0l{=IbEY{8SPM~Q4oDi z5sQgFH2?|gnwEP>^Xo0B6E-gkK+u<{q|;1Q?4CTq4H7b8NnWW!-A|EMh1{1@hj|xx zULbJ*2o9I*48R2gXUBP1OM(NmNCBpM>Hin%U1=4w1ZO6IJFE_S^ToWL+|viY)vlT*3Yk6Cozi<_!mgnip5bwUB5k+?d<{ha zJq}1#VkC|SlEEI+!6I9J6_#Mrvw&d)oDf73hqxlnk(`JVB*hA>4TvJkye<~tX--cW zc(_+c6i$**TyS8+fxwEajSvOGuK#bW?rnn5QT3vz9sot!|_KKTz#k4 z9X>ZxQ>#uIgWN9Piy;?A1%LDCU~6S5vi$Lr7WK^0Pj_%%^hI3T`xk{G+=u^4ynA-G zW^dVheM`(?ZI6}&`mYPFolfnVa_0VsB)`vQO?WEZC_i8L&cjvVWtTs31lArHKj9L2 zzqF;?ujT9>|DwDr&kBZIZ&-GtqEDLT?3h8z9vqmAd^H?-wlZMM#%&Km3;mGa6$e>C z1ifT5;z;uDUhr#8?L^Z~FZPF!yP=j_tu^5pBX`IT8RU~ETadvsCoTB;hoviSS$3A* z`1Zi15$mI{*-JM3*6S%{2YYp`7TeQ#cN-}rIL&3LzgTtqv0PnW6;AlYr;HpoZd*{~ zKd;9Gr6NtM7if^mkq^H4RZaP-m2DA$_tFYC9jyr{JTyK!$1r=(lApaR9cfB0{h)er zP2Zx=W)w)Ae#Eje|@vf{F+eA761 zC%$@U=mJgre4^i`?*^ETkryuAuCJnI46R3&4E$*AxG(2}dHaS=uKQTdO+T`+dBm3O zK{dnwaiM-o&9^&FyB?p8tOzeWCUb`Gkn;7P`j1_)(MHYRcAoH5P9^2oB} zgfkP9*KD@k)(tAc+H0qc(ZmO3C2bDTS`%zq_l(uY_?dyLwVT^7HXr>>)TvVsathyS zS+xq8yua;8Kx6fskbb9-ru~LP{!!N>E;e0x8lyQ~Q{Csv-;qBqKioF#;K0jiMK{;@ z*Ty}moHBm)No?c$1FFzg;9NMmXzazxt0QjVSMRCRMyEnE(I) diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_25.png b/assets/dolphin/external/L1_Mods_128x64/frame_25.png index 2838804e566049d8593108f52f572d6f6f185dcf..776f1a73df216db7523513a7921a31909fff8ece 100644 GIT binary patch delta 688 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 X`N*M1_L8U#0Z2)jXs#Rgdg;Fbz)FQz diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_26.png b/assets/dolphin/external/L1_Mods_128x64/frame_26.png index 2af49cf177b8ad12a9afae3acdfb1dde5368793c..4df95f37596acd927c36190b3768ea3d5122fcb6 100644 GIT binary patch delta 689 zcmV;i0#5y-8odRO7=Hl(0002`twPcO00M+bL_t(|oUM~TY*S|x#eetu;RGo7nF$Im_;Vu!%Y*}mU!?)h}@G4ZvW?+Y4cX2BY;Ab$XLl|Y{)1%L^7e~Xva z^%w@ILQazC0iYmBb{6`UKsTrS>#@wmKW%}#`r06MSLnrf9h3s9^{az(jt=3>cmkN|jxx%%A!_&wzK zl9_qRwrJTRvJoR0N#5k&1kizg0=E3LC4lzx?0h^nQhMUtTFz2y@7*zedRn9B=*+1l z?~h+5g@1Tukvem2)`J1tn8`vdrV;~z?^5sj#*Y2riCYM051S#xh+LIzgM)|e1Js!y z4cZT`08e3&Li{5E^8mcn)rIuJTzXdC>bAws_ch6k;4jR~?C``#eO}sWW;PuGTx#V1 ze79cp)uRh5n^_70r~+`%eROf94#fn>RM-7Aq$*ND(n@ojjUT(f$w{ix4pC`kbKmHH XQu;(&o|WXS00000NkvXXu0mjf`&mac literal 3363 zcmcIn3se;675)LA2qwM}s16&=0cF^k*_~%xW!ZOUX*Q8T8YO8tpS)ZtHj3(1yT^PNe-7+qquqOxB_vB8buCi z#>_sQ{{`#etL%qh1F|&j%%q0(MP}Vk#6< zTL~4XQgb*y9m6>c>oGM$9f*98f83a0tQf%&6i2EaGnPe{z4Td3&1TNz4Fq|wAer=Z%FxEzqcG+7#rH_feUqYvGaQm;ptq+PyraLnGY1|_#!jl#ENmT5;BeL@ zHHPw-M4}Q-i)xW!C6Thv2(xgzo`%KSNLo^>c@*OX9EG?7%HWKEVmLwbv`rEOTK%k8 z602fJs4o<^i3Ez{Y6)&Xa5s{8TA*#1z+-muzp?tZ2~1^VwJM#SBrqM08}y7`j~k6R zZd74fT4$u5;7Jn33`R>lwS#-V& zv@U7tE@NjU80&^V)EHyI-9r^%f5D|n;HKk=Yh7!vEgzKLa&y*)DJS+eF?o^Ta7$Er zH25gyen!XVuSU7kjt?8MCbji`*Z5Q-p}f}VTv^{nS4J+~nboC3A= zN&#nTHU}G9CSN2Yx9pW;!TiQ9a?I76C)&&r$@4x>ivIbXBd>rzjRJ30MkM9$yfgN# z2!IbBWtQ^nC6j^2P;w~m@BzVOA`{TT_y z{KAVlM;qsYm=4nmv47v7zD;ba*)`_mtp`z5aGu)c9@Ob_jt17jixRi}xYGIM{*js5 zx8I-f>(O|@kh<&<(H}-2%3noVrd1?0;jdq4udFA`6Dq-jVb!X66~8%c|5x6gL2o6u z)gL{6M1Fg&wDi+mGZ&4Y>dD%;dg1$%np!%i?ELDiCF(EdHjYC)ajoE_H&(iFc)4ZdDRKHTSMc;)3Sr?i<>_w&i2Ig0e^>9&Z`i&-JQC9W#34=hxL$d7Qs=~&9 z-YrY5S(SV-r}Mz&BOgp1pWE=G=)?j8_ws@!Y}f9b#x_rG(!`PFNAkxte^v&Pw{Kdo lv8MJxbnIUv>V}q2-WX2||MR!|k diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_27.png b/assets/dolphin/external/L1_Mods_128x64/frame_27.png index 7dc44d061e5e7cb6e5fa8ddfa4e0f099f0855c8f..3ee650af3d6e93d4d1baf9da9d41d70fb46463ff 100644 GIT binary patch delta 684 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 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_28.png b/assets/dolphin/external/L1_Mods_128x64/frame_28.png index 87df75ff79f23e3b622817d5ed7f969f88a8f354..406d965ea3e6c6b5196984e7fd5720e1288298c0 100644 GIT binary patch delta 662 zcmV;H0%`rL8lnY|7=Hl(0002`twPcO00L=AL_t(|oUM~RXj5Srg`fA!Z5n@jGZaM7 zT(yH^CvlKA)j9|cA}VgJqm$rbMQm<1M;%;T+Cc{eQ9%$2V(Jel4&tCVXiZvBP$7xN z{4_T`4)rcmwzM=Facj~@zxTKX@C+8 zNRnqTZ81jyz|KK`2Xu46{rPS1w~qXi-%vtYcvO`nIY~$ofSDNyu#$UJRY8&iihzb~ znEB+zLrL8`k|rcM>UO|dU}N zTRshKx?M3x^PZwS{o%WLActf9k*8-SV@qO#ykH*yuZjUwaMaDr2g(ZTr?T?s9pC+K zCtxZM%tTd34e&s-%cXc3l@v)U3sG)DlC4H6KmM&Y%YPbDi>R0xs!D1}DySNp`~|oU zz}=#mITnDU@ijxh@xU^R>*z4=$J$pusJqZDv+| zw%GapCV+cwW@h7$7xlBV&CKj$0C4&HtUj+(Z8iLUI8Da~paj5(b2IG#fYCCLD)n8P wP(CLqZjNKa_XKbZNGj3uQNChk|5W`K;d40In-3b%i~s-t07*qoM6N<$g3WI@bpQYW literal 3371 zcmcIn3vd(H6@9kD0ESQoN-*Y=9hqPPth8TAyRi(iWMK!(9}tB=p?8fY&NKu9@0QXO<|dK0Q=a3F#xg0Ja7oWnv@%<@rb>Bvjz>TXa|Vf21QkibXer zcT&!P4HbGaN`q)xX|_u)oi7WDZel8t5)m)P1C75tNt;B@EV2yI@zLRELB%aj zwL3au;X8}2P}2gU!4M9I^L;RzP*RIDiw-kwPr(=Hg7t?w%7hDMh`@k>)>F}xIt`u9hnxC*UDhEjy%uZRJs91M(st#tvay zx{Y5zv;`5=)SydMy`7E9?Tkn;jGiXO&hYpZH5__2%BaHu*`bCkI@~pmq*#*TTnr=f zlt|O#DO#kcc2g(TfdV!7pfO{1QH;p&BF{fytSTON$>W$honodxq(Q%oGVK-}CZ+dy z6wz#yIG$z@sZfw3%`C@~(C9XikTshmfsO{*4dhp~x@BOGzRtiRhX2@_Hlt=;6W|B2= z3@JgHCS{3|5yjEGV&rwi_i=5iR}DH<1y`57e?8M?%MGe-j~71(O`V)ZWTxAUv|u!n zxJNodkwv!}^g%2%j}I0gL%?4Ul|80`)6MXNaF0tm25B1lWyh7*L$s+=gmQE!EIK)= z2BhdZmOb5+`SB8JhYc4Z4Ehk2w3~%gw-$y$WG%ogd87&rKSn+TiyuxMQ36Y`SR4|9 zh?JygFH8zg8jUn33q}Pof~hn0{|ohwvdV?fUx4r%)}ZToGLI+s?)uQp0QRI0-6vy+ zzF6B8X857_zE^qYq*(C`N2M9+=xG`(=<052_k(G6^DHND0tp#fA{B%O6H|dY4ZwU3n8ERz%<~t_7r&U*T3L3{_u@owVEnDO zj^6s5igh-HhwGjXC`EHMTB~r}o4IYEDkr zJHR0njE~!!dT{xBiQ4|DL%b}QH=r@vX3ylvt6 zmej%f?mm-v<=*M$KWqT5XUb=1J+b5)Ykby<%E>!_^0RBr)sEV}O-D}_g9YhTPfwcj ztCYgVcQ>RS?KPyXT#9MvJ#^)wtgXNQ=Ppy9)|AS%Q#g6#oQ`N)rDk6s(PPCj^#nxuqJ{}c!=#m}ymRvn>Hn(-%s->r2 z=9K2NKc9)?V)N$}TatVz{RF!7r4L%c--&{5@r%?fo zEu$AL8x@zf{)xAj*7omz>R`h*PeR$d$@wX3KLu}OEx7DDO%M5Z!KJ*v|0NqpHCu{4 zS)jp2WPENkQY!v+V<6Zx=FHrjSj+jPF_ix6#+d3G*JsrIDSuiFai-U+*7|Mxs^1@9 zId4yFSz-C;VKvu=H^rZ}0iu6xMR|DNtf6+#sD<&1o?kg2|H8F*`cKcwId=A=A~A+z z@@G}?V0GR09nZzQ{oC2r@cCOu(+-2%IiRRy*Eg${@7kUi+j1BWHu zJ5YRLck|VjgvRnomzUhGZ(1}Z>8TN?=QL|$nqKqFK63Ko+SOMKRn-Y)!Y}^u#|>YB qv2Xq^Z{w^xO@jw*irdutQ18{fR&GnX0S`t0&Sa)%+jpnsm;VQXvYayj diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_29.png b/assets/dolphin/external/L1_Mods_128x64/frame_29.png index 2fdb9d736412fb3a40d9b88a97b45895d988b3b2..1a46e8b01421d5fb37cdad4329da26c14f2eba8f 100644 GIT binary patch delta 673 zcmV;S0$%;17_9}67=Hl(0002`twPcO00MMLL_t(|oUM~Ri&F^{hM#kClgaosH0An-LWJ zAc@YJWb*M^Bpdu_J=NhoaLxLPr3aRDT9Dk`zQ4(5Pguuko(| zo&wCJq%bE*{4W4CNeZ_A26VTdxzrlZre~wCeZ=$@0H!A*o^#CgAmQw)jd-r~}+w zqV*Mw0g@X|dmDJ_7g?Gc#NGXHEb0cA1$yj{wfUU)HNxwWjcg$vJu$SzKQxLKsqO0Qmz3F00000NkvXX Hu0mjf=;Si5 literal 3106 zcmcIm3v?4z8op_jXQ3d11%Vv~#6mlnMjhvkUp?fI+?kXX4}lfB+wQ) zyR~3>)q^0cP{gx&E(?1&l25q97Gh03Q~FK-lPvx z%I>qkLQnb}Kb$saic^|XB$;JAISETB6%c?I21TsYTdW3z(nLIrE1>((Fo|PflVDLI zo)U71<=Qhbi{^(Ir>6*sq6`>s*3%qoWcYZDp%{v!(cehWyug|S1A}$^aOBM|D}uvn z>+pr167j-d&?k^&NlA&m#Gu#wZjv^e%_PN;3_~CbB2cCV#Zp2IjP69R!hq!W_<|ly z#X^XpOPdu;#1Yf>5WK!FST)d*CX_I;RP>Rwo(hH3X=t}U*wpLovJM2(W+N{he7gk> zILmyHbijZ%%P+yS*-#CR?sVoW)Ph=|Q2PaLU9azBC`(-qeY5<<;q=H735%f@VF!>c z9p>i~EPf~kHNR8SiaQIH+368u7(I=}=6F;&BD=U zjw4Wwa7>m2Me}<_Bs7m#bVJgoxgpptg8fTjdXL_bV%qmn#Sh2$@h4~VlLOr1BH6~;hw zgu>7wp%{=tM4F=sPNqyeG;n5@3wDP7f1%!yR;f@_-4K0YN&MFb^JsGKt`6Na;IFAe z_rZ{%4{N)^$o~}I&noZiloZs%A!!CWYMLs#yQ-ViePfywqk%QEW&*X3i;y8p5h4YR z1f+SHl}%xs<0lySIYhHSY-&97fHuK$|@(>^yGFC6jKhKk5~T}xH?w8Sy~@YFrEcQ5FU zDd({7)y3bfzWUj2@y?y0`@x;2%8a#f$|$fx|5J0t(+he{ynA`)fh`UBulhdNapm>| zv951I`48&49(h!0Z!qf01YpwTPM!I(b#-F%+QrzU!Fi@wLDh0M7Qev zKOYC_Ki+f(`4MHu`(BNUKGmkKZfG0uCEpPL z>el9C%imy@?%p>vt#^D6HX?J`{M9wwLC`e0a)&ee+DnUlAl6o!w6Z6-c9c2yaJL2{~{|)%_iTCyC1&89thyy2| zt{4thoXoV{uG{8XcUFA+*nrl}i(|(E>fO>Y0M8d4`)~YsHa=@a#oSAO)VC&Sy7H)- z*t7HM2CqE7D`VA+Z7&q$CXD#1aiX|0t}s?p-`Q1Jl)O<{SvT;gKJ9u$!IAp%)@S~J zA9}85()2Zhxysq5lacj>RalNB)|aH+O5&vVPfM-DYf2WyL&0 zUFwY|KulCqRYcDjGxrT{G57z+>fGx7^|im;*-t0x^k@UQs4$tLji-OVwxKZ%?;^nBIg jQ+3I@vnw7S2^@z>3)$yPN`d}nXcwQ6HpRLkPp|eMH diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_3.png b/assets/dolphin/external/L1_Mods_128x64/frame_3.png index 1b0e77426c54323d46644d443ce364301dca1962..ea3f7c0061c53c2828cb31f56551649f29fa06b2 100644 GIT binary patch delta 652 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 bLx2O|;^IXc4Q(KPe>p5ntxd{|+%EnP;{}-{ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_30.png b/assets/dolphin/external/L1_Mods_128x64/frame_30.png index 785f19fd04e3b9259a8313a465b2424699871c25..f3ca771915cdaed50b9707935ff2296e4200c45e 100644 GIT binary patch delta 648 zcmV;30(brE7nB8%7=Hl(0002`twPcO00LV{L_t(|oUN0+Yg1tu#edJ!Ym@qwn_W#5 z2XS(8Y*VR&;7|lztLR_gq9Qgo;NYl(i%UD`V3#@wg^Ki6Dd;3F(#4q6L8yf!TAQZ% zI1cw#{8)Xa_dW2Q_i)a6O#C^{{{>oRX2EYjTL4O@1{p~T0Dlv(KF0@3Ii>+($VpOQ zFl`A(8NhBprUQCf^*_HY{;i|*dKXGb%S#POl1oC80L;vg#6TJpmKrKca-gCJow8Fb zn;GiyGCQX3yrd~fjt#gPu@wWYm6fxmr0-Ua-Rfqt{=bf0A-AxrW9^_pS zncXP%zR2El^?yqp1Lzk4>H(Q+Ic-3*{RZgas0zU4%}u_aJ3Z{!F#wC3YaCdZH-|&e zBNMGI0|lJcxY>!s5`cjI#S^P1fp?Y5P|rBcR76ct>q=e$YjX);s^w;S4JS_Sn%#*Z zfI%ANpxP@;r9mYxu1rie0jFhVAz(e~W`-J)+LFp@B!4Ea1CIfCRxvZD3S3Cii~wiB zvTGxBSPm2IgOBP~yXAHn#u}0W6`?+JW?N7L@B#3AoPIZCvSVi619q&~K3L@5kR;zq zgoZb>1iuP1ycrEsO3v=U`NhZp1MqAFg(&jUZpVUg+cz|fTSO%S+>ferWIv3;EPz`G z=r}+K5Pzuhq{PO~ZAk16`il>Nw-#Tg5CLog@L8kn-kq4&IPH?x0M{U-%2DykGrpMn4Y002ovPDHLkU;%>aSt+gn literal 3051 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 G>;D7y8Z;#U diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_32.png b/assets/dolphin/external/L1_Mods_128x64/frame_32.png index 92db8f024d73371252f11cbce26f4ca1a6c87047..f4d0972d8b17a2f094fe93b8ca15ac2b15fef976 100644 GIT binary patch delta 618 zcmV-w0+s!^7xx5^7=Hl(0002`twPcO00KTqL_t(|oQ;z|PZUuU#ees)>@JAe*DIaSpjqcH-w^M4tc+ipiohpzRG>hNECNuY5becuNxkWl~;k$#C5fW?F# zIw2Em#taM4otY}(#taKk3xNHtt&4piZGqv{)%-w*1t6a{u-rQUmDPM);>YLFm)T_l z5jFri9zfYZ7JqyQ>pMWZH%kCB)hY*<&!i1R01|{>IR4^kJc|Pv`)Lz!59Q(y{0ITw zEqPGJKsL^@q;`KcpLh;OxbXy zc=*9QTS~+L;8~K4O()jAw{doRZoIAvQx#R^#QB|bD}OUN?SflTRazZw-P$N>$6@Xp zVA?=aTwC*49#U0Pizo3vXJbtUAYHx3ydUq40j{ju;{gbO$y#vj!rDMjYlC$8;M#T+ zv3OHejX9-_lVft}0Tcj?IDnph9`(LSN|zq{{A}KsY{urNI_nRCw_`-O7N82iUZY!Y zFZ@td(_>Oq)zXmM&C~$Q2N4mOese*8H^xOoc0GWVgW~Sj5e)~9Ig4Ey4gdiFlg6w? zUhIAe7z&0TU02^#)%fQaj{WKZhMcMfbR5(#AISxPKP<)aArnOUW&i*H07*qoM6N<$ Eg49nK#Q*>R literal 3000 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 sZmyi%KKwu07*qoM6N<$f=hVns{jB1 literal 4149 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 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_34.png b/assets/dolphin/external/L1_Mods_128x64/frame_34.png index 12f22abdb996b1a1e301e114c3d1f60c641e2ee5..d8fb6fa4a18d2e4ae8d550eb0502dd7e3690ce9e 100644 GIT binary patch delta 613 zcmV-r0-F7#A@T%}7=Hl(0002`twPcO00KElL_t(|oQ;#cYZOrw#eeT*;%x9^$Id3~ zG-A7*#KIjVf~EciCY2G3Lk-F zQe{R6RS}T^Bbxwf3kMAMUM-jC&|3efj$q9%1KAVg!w@ilD*#Fp!3 zAb>b|2kwev{eK8AFtfW0i_+JS0;n+lO7^0aYXA>i^LZ7w8;_N92}XXz0Ph!l*mg8j zY?hH2sP+$9ltgR?47VWdKViT6sucFdc-!Gr>I{df+39OBRGfnueY&a?HVqTEI)^{Z z@?t3l0N+q%ta?`aw>Rh4=O+^pX!JzHnL2xYcJ9iVSbre03Z;HiIwHBp{C5j96X_Jq zojS?ZC|h5GFBPjvBgTP(g}`pq&}soELr@kd=6)LTrI8*f^8HS)SWi=$w?#x#qz^o! zu0De{fEH)`VfT)+k`B&9OYvy0T20THf%&@F4~l3xJwZy%0J^_<>GW(AAH(f80O*N` z$XZ_(#$N7jiHQEFlu~N??Pd9$O)90-h7Zu%>1=FHNIY`PYZhc403iSuwO&en>wW}` zh2zg}NKg|IdpVlpzXpJ&Dk34dhXmatxd8ANJbePd1awdu00000NkvXXu0mjfr?wP4 literal 4260 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 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_38.png b/assets/dolphin/external/L1_Mods_128x64/frame_38.png index 13caae7ca2e39adf8dd0e33d7a94b1fc326b9090..61e2dbac505f79685ac7d96bf1c564b0f23c2cda 100644 GIT binary patch delta 650 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 T<^(JL{>NCEA2Ta9@i_NCw3V}x diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_4.png b/assets/dolphin/external/L1_Mods_128x64/frame_4.png index 45e47de12adccf1b4deaa8bf4be3207357078bf2..2260541b41f5b7fd04c96a2e5d244870d9d3d806 100644 GIT binary patch delta 654 zcmV;90&)H4A({n{7=Hl(0002`twPcO00Lo2L_t(|oUN0;Yg2I)#XtA<*|b*7>*k;) zN(XW3q+1(*O*#}oN3G~Tpo@ywyn>*k4lXWsP{B?Pf>4mYS_(Reixk8(si2}l5~)qo z$J01OT~^M369SXWW?-e5pW z@HPE!pXQDeQ-8NxK#~VYToD-owZ?0pjVmcM4H#cpq26<-9gw+{)ekJ*^?4|pRLoHc zAQLUl0l9U@_HSAOBo4cw4ZNMqL%T*&BlY`SXK8Gx{v{web71ixU@B)nRH{xbCD7D* z3^_<<(@}Ox?c8}uPMl`gh1+8QZkNq01guTP%urQQLw{0H)zsu~z#{;jO`4fg0#2vX zi~#3_^)2_)WG7+rYZz8$0vd z>5=5CsnGCRAHn9r^sYp`6wo*`ZGe~Cc18*$8LM{SW0pOEH8tt3kC3&lREp|P#3gGX| z%q}f4G(hV6+VM#M>U6S0N`Uy&PxY oXBTj?l46n&6)I--&#C_gTOKJN=IWDR00000Ne4wvM6N<$f}>9=djJ3c literal 4327 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 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_41.png b/assets/dolphin/external/L1_Mods_128x64/frame_41.png index b6c6fbb19168b4e5b01f36c2a17bbe00336a4a7d..010ba0efa181a937ec518b5359a13dd6c7a3b380 100644 GIT binary patch delta 622 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 b7eWHHnZlOuxnixqe;n2pcIM@#p6C7teSDMt diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_42.png b/assets/dolphin/external/L1_Mods_128x64/frame_42.png index 7d2dcda5d98ac939ae8263cb7db583cef6574fb7..1197601e33690cbe7d6d8527637cd76dbc2cfac0 100644 GIT binary patch delta 551 zcmV+?0@(eXA+!XL7=Hl(0002`twPcO00H|+L_t(|oQ;z`Xj4%X$A9OU=EV=%CkRd@ zPu#T*qC=sND!MpybTiuB=;8+`z1c(%I#lS`$-$}amb}=(Y;_VBHE}8;=2fFF32Bc* z-pjoa1n+X;$N!xFIp>~BTEE|^Zl#(ZkH5};g5V#DJrR)tKz}juj+k0QfwZoj&Q_{LI9VNSvVVaHssT&=QPLhJhGNLtrIDfp z5jtNQ&Bn_T%9CgedH_^1Gk4cbjI(qd!!v`kbRMKxNQrV4Dr0~Lzb$Ntj1 pxcY{YcOc`y02DZL;Vs*?{y(MFyM(X1Z(9HW002ovPDHLkV1fz_2XO!Z literal 4253 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 IM6N<$f@OCsR{#J2 literal 4342 zcmbVPc{r5o`+sdQcCt&RK^tQh`($575!qGB7=ytqjlqn>NJS}2wyepL6vC-Uwo2KF zA|d;d(2(p)zv-OQ`F;O5*Y}U_d%er^+|T{_+{<&{*Y&*DZBJSV@XGK403cwAHnn4Y z8LY>UhlBN=;)$~c0A3TkiHWVHi3ylYA$j5baR5LY$g&T1NnDfAA6df*IT`mamZ$nh z01$;@o@Qa!T;baQ=8CYW;hU?`yiQ``BAIB%#>>6D=&b1RoWoV#MmM5Q$2gwV{w6X(nRK{vM4GT6n@qnu#j>9$wi zTyFqik%LYPqm~(LvppsO>;Sn}RZ+BQ>}O=P?LlV%oB)hML}&Qe;_ZNDRflFVpjiqi zv;V`B7f1pCe|o4f1b8R_%>S^|=K}hR5{D##{@i^)Wz}+#zPKCYU z6_8VG2vOy1C}m@~K0{itGitejpjel9Awze7k!GyY4uG}U0h9fEJ2=2r969iw`q85E z z0EE5Ok@PhHNUYz8GgM{+I#Tl|0HEfJ)Y%6~l2&hd0KhaS;%J!>H~&kq;s(LYmvS`? zlI)m0riT2A4Z6a{dnOtCc<)K27)d)cp!zwVmT}1Bh@_7RKY5AJ7MK|oJsUAcmfYhm zmHkSp<{F68sF`Ok<^U>M#3QyJ(#a#47Rw32pw(|P^1-vwVy7T)nko70MaI4fZfJ$? zP>Pt&t+R%k@q^7^BAjAJ_v8pFfb7x$!n9pqr{Ldr>&vWjI@GJkz@$nWeRxTzFl;#zlh*tABgCegWULArYKCpSB6e7CONb^9I$Geyp zAN+P;|AB0!bB6@?o=-$83bx#yJjr`NDIRIbXX%F?L__oK^Ywd#@tIZ!=i&)1!;?G} zjAC$VLS?*Ayv^;cme-S&VyHLK<5r+tMZ5eY(c>C8gDK8}yGY}-oQJ16in2fOJd8%& zJ#9(I39^ORM-}Z=4@_6;$dE8;%ZKLmzDvh@wRikvjhAiQZ~)|j?f*Fqs!6NqoLvnt)j`O zWT)h?ebe;pY@~!l(0}^kMxFr|kK8h2^oQmHaYmYM(8}n8{TwAh1 zu!~mqCIJtlzF`KK&L?GMJNZ<09xMXTjEs`R-!c!GEg_* zu|QdnSeP4N29mQ3vsAKHPz2OkAgEfi`c(DR>cPOSulnz?bM#rzO6!W??B{Na6~d3a z70Iv6K4!PP7F?Z2GhW&sp^aT^kH>!TyMwRlUc55)K%~v5I-$`guiG;3P}RY2QQi|8 zG)aB0V$wd3V)bF%ke@Eb1CJccZ_Ix)S$Cu($uHfjy8Fp{YI}RL%208Cam#$HPH(1P zHm2@V&EWQ}s|9A6Z;r=k#x$i2q=dF{rC6t|72k2vccMG3IDIU(>^nQBGDqlh_P3RF z&fw2LWwbqeP?Ay77?eR65gQkaJJNGx#hy5TnBSh~oll?Nv!JtzSyfsktaiz@?-P~l zJ4QVgN}&d}2lb*%r6gdQ77qi)$|97uqMX3Ns2{EyvHm z&IO%wJ-1c6-{z0ZgV}v>Li1qbnbF#|i|#0WJ=|vJEQkJEefGN{ccbd=*Fi?~>J-BI z!qURHx3jm7ZMN;it=Esyze_Bgx z#{3`wS9wYzsX_9)>;_hC$Xg}7TfCJgOZ>F#CcOQi)&4$_*lS%pBf?>%`x{oX?az3k zM=kuLtK{+0X_6b4#Eu+AK2-gB>WMw|0(DKLuXxgR%eyvqDX!?|^J9a)&nQ9O#lHS_ z{@D49Dn`}Ast8)ty4g~yD0QzQXyN)~V}GOG^@#xX8UJ*(%*k|z6e_lKYAE-)T+-8o+_`bI<9+rI?E|} zRr~X?OD3B>*KEuK->QLZ?3C#V(zl;0EL%I7_6-+zeY)@os*{wNl$mEIfKPd%{1IMx zxYEW;SvgT)l0Hpnl}(IlU7J+c2v{Bz_rGe@o%h79)K*Z!3id#mc1G$9tqNU>KK(&$ z#B2BKh63MZiO|~kGTW-MKl-a^u1lkkdb1Z23NiMQ!Kw&1yJ}AwezE6Ln@?Ls%8u>0 zi=E?lU;5DZSi8ucf&vre%g*Y_MM*7f#L^$9pJT-_$)1i(-_+hSPT@x-lg}5EiyxG( zmzh^hk2{|{-y6C@CkzY>AFpg(m_yIy&k>8)T$K9?azt_zu(i$TMfwycWZOnDS1>`_vzq3U;XFci_3zMa^lB^ znMw0CPnBuTezj(oR){^{E`N@b@sO>qpAP$6Wf5%iCOht8!A0&>Gv=HxmE=G4xW2vu zM6lDmwI7WlPh~Jj0~rhH!B5Gjj|#prntFL?MDPRF%c8kz$T42=j@!U!+J{_la~`G3Ox(6vrZc5 zeMlRkuUT!U`MI5PtMxYN$~KUsezU4Pzt*xmJQL@(SVR5+S@RfFsytDmSE^?bM&21i zKR!d6!>zR~IO~>De^}2Q>t?2H-)~2KiMtEH4sME-5cDyUb_l01wm2SyGcLaM~(GZv|IEl zm@C|h%aWIu6_Ba@?%A0*R#;KEx2rYG=_h?I;L*&;&iK}eE|=~8MZS%guKH4X(K3bk zsOT}ONuf!;rjxF>bbq^~bMO+gidj9Oq(<>LFmfryj&v!y0Z)Ho^Je(IFI^eaJ}% zY=|FL#}i_p57wojSOf$d6$7Rb{D}c5njYj&UKDHmOALd6|5Ty+=|TQ-%Ej6iY(k>o zz*?$EC>9QfgSB*25gwWv7%d$SbrmoYjzq%XnlOYK6p2K^5v&{h_XS}Yq

`cx7 zHpiOjL42rGG71I@4h~igR#PQWykQ6(9UT}P2}2^GEDdM?ok+#dpu_-$-wdX>04xPh zrs7FN@GnM;2Pu%M2Vpt;R}=)Ywe>&5#DKqZ#mX9th9Sccs&E*A@GG=GwF9Vjxc_(K zU$p}q=wuws4i`WQq+nTF;-&B#%u3&XH}p%9 z!i^CKGgEC-Q-rxW0%5KOH_|dO*ZhsOBnD71L@e&NZ9L2N-&nQ(iba`Fa2P6y;y@z# z|1Jbu9}<-m;6oyVk!q?M;KSA!ES~sFa^%-8{S~w+j)D)ud74v51n{3}M&bX(1x*cY zO-(Hf63Pk{2UW-5)S=p1+E}QLmzSrOr<$e)0-*-^8}IqQrVqw)3ihj3{-bt&i&zEu zYxqwyuqOYs6OPF0AquNmB%`IcSdGSSYvo|}^XE_25Cj4V3JMPC+wTAXdx@o~kppdD zJ`F^94dypnS=wO^<-g78<-ry%Sj{S4_sg7K96YBN1MTP#PH(-_g4B44Z9KFq~^=mqGNP{EgxF<0W`#-`{uwB z@N;dc_cQ%VfS^&IQ0=#_a+KW#Gj78lO4L@>mq`MRK>QqI&geA%ZDLi}SuRG>?ct{r z5)9Q7E^^KMqw3KVpq!WIxRhqCDu?hZiF`^R6VC>q4{jZQhKH7q@@8F>21?oU&kVv# zxIm+%+uq}btHHt}0tGvTY;c4AOTB!aeUXQEEn0le0Tt_4ng>*h>?`QH0^mv~J#-oc z%tv;DwR0eE33u~&UQH|l;hOc%Y(7D0o`t%+3hE#w9 Z;93Nk^X$3K`tbw+OS6-vrN-`;{|~Y=oI3yj diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_44.png b/assets/dolphin/external/L1_Mods_128x64/frame_44.png index b018a94c19c4cdd239a3043b1ffe49e93cb0f471..a10c370204585cb761166b976ec31bbfab0e6b1b 100644 GIT binary patch delta 668 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 literal 4267 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 Bcas1B diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_46.png b/assets/dolphin/external/L1_Mods_128x64/frame_46.png index ed38122f52a73a977c2ed044d22e8c113ae6c3f9..f9e3ec5f40efdd52fc6d19a43accea496f6f37fa 100644 GIT binary patch delta 641 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 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_47.png b/assets/dolphin/external/L1_Mods_128x64/frame_47.png index 38610bb4b4a9aa68f97442f901f3318941a2305a..2e87539b48b8d96f27bc24dae8aaaef9671b8511 100644 GIT binary patch delta 657 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 Lomr`g$L0S4vAUb6 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_48.png b/assets/dolphin/external/L1_Mods_128x64/frame_48.png index 7f6b4b29a38e935cdf69f158929d29cf0de5091e..ad22352cbff7c821836bba19916dc8939f4362ec 100644 GIT binary patch delta 635 zcmV->0)+k9A&3Q#7=Hl(0002`twPcO00K`*L_t(|oUN0;Yg2I)#XtA>}j4p!*fyzP9wYj_CO&G$buQtxJ+z5|RX9X2uX06ra{rmgK-Hph=r#Wy@a% zbJJCd`m?2#0L>RKj+@~91avwfoZhM<24K&g?T*!NWWZ(=JD=ni9k{0$NJ{{zliJbo z1RCv^Kp)2joPUd9Zhf8R$dP`)^9b%VEZO^IqL9|i=}CG=E`GNH6gQlNrd`V{0a8~? zP5`eLO3-h((x__yRmIK2tz1Cvd_g||Q?;;Kt2?Ryprwrjia2&C)BSOD378CEAN0Y_ z&Yo-l0nHgGG{E}Q3`pye+LFquXC{9G?f~#`!OWZraDOUGGX|W;mjASaE-N7sz~F;= zm0r1BhUvPbKqaW%KGqRb0ek>Fnj!6loa~yJ_kj&7wRe|T9FgR$On7)HPw@L-#@6F8 zqU`MsoLG(xFaXcTP>f@bhGBUyW8))ZxWz2Qfcrsp5A1>|SORbh0Zjme0D%_nM*P^g z0yF@EbaeS9@XC@46k~vO06uG~-M{)>lJ|yfvCFv@fWI*_v)N~#^s~F)%uBx?Ww002ovPDHLkV1l^*Ed~Gp literal 4313 zcmbVOXIN9&);{!JL^=u~2o?w_^hoF>C`~#lN(cc0qyV7=X-W}ADblMnMWiSW3L;HK zdJz;vKUsV}drYqJJak zj}AK%{XNT`UR_yu&{M8|U42?`y`LEE-m8{|ai#!ls*sCC!98GAm?_M-YXsj-r$ zp~1A}<(&^Z_47INyS>ytzKBBta!GTAo`8l`v?g*`D!~HX($NsXD1@G12Jz2zy>e%H z0{|;b)SxiRW9?mrMC`bNz&bPr^aa8qP9m%``%XZD9M>x5-mStTE8er3LS_ev#q=~q&4f^W- zXz&W)lckec(OeX{=Yt^zR9eN)cQNb1iJS8>`)$$Td+{gxrzhRw zF{}nU+{cLOW$)mb#} zm1uno2eWQF`(cbUGWL*5{4lteT_iJ}8H_52VCzw&wfwQ`x-f zLFq{~iF}C`cXm2n&(sJa-^5Otaugo3DoznNqk_|(WxjV8p_iHe@LW%6-h1|kvB1Wth2Kc(S!*8o;t65dghn zYOU}0(5>7p$t`!zr-y;JwQ6ET<73X5Ug=(*-YXC$h&H5Z$g{$&BCJAfBzUB8#AVrc zS$KJIgyv7q)yY-JT}Kj-oBkYis&(h;qU%Qe`@U+u!!A-6IMzGYc^5wQ8?O`Aiq=KG z(uQdLQfe?|cGW~NZ@4;kr8^P(#VZ3}+rJVu`QT8OM_p2jM^V2?(eYZjZ`a+YRf0sc z+{#HuT*{R{5u1*C?9q+RCQGlu!3`Zb^2@s~?H;&`SZA z953xONLu`nBbPS>BeajUT$pI+y5fw~LgBW17nrnKwHWUP-@V>=zY#o+YLp2Z3d;;* z+s)fKz1_8!@Uv->`dxU{oW+^pCBrO3!&ULCe=vD5NikKE!{&lNf^u?_2%GnE`V6d%*aKF%LTy1!+*(EW@(cEZ>@ zwpI!+mMO9oDtPh~;-TW#bJf-qAIhe}Q2C7Gj(bD=YC`F)=ch+KpZNy3mwS3!d1IHd zYa?nO)?N*|{?l+ZU4U}<7{~IBnU>)e)QxFB#(D27rJR{8n=}fxa(1lnxyal?Z&zNR zrlX2uVu*TlhCuog?b%3>o+VV&Vzz{6cJ%P~sO)G9!^Xnfh3BejYR_oinaj0H-BAB@ zI#hq#BgVqWzg3CD!b+Z+BzEVy%nvg=gQ3smeII>3LNroxQgVu{c<^b}@*iL|Cu%I* z@v&v?<3EOLgB({Uz)glPgk|EaMFJJ!PF8iULHLz{&@PXzCuw_@Qw~

q?m#)^$DoTy5VRN6sY7NR}d)>5}S;PP#;gC4SwoJ9}raG)_y$ zUAipsw8Y`(yvBG`5kN%lP)yfdo5|CE_U{22qTldQ*v-D%Q$?-cr+}Z63EtIHqI;b% z7~aW=PWBy}@G<`pG%JFYfVQLK;2O{RjelZoTo|uG88~`8HD1X1xf9u)j2_YcYvWaG z_4$vW21_Nba&q@%&v^J<06d1=UvJR7me1^P*&9|pcQe$@IsUYyVNPQ~X!GH9NzmH7 zp8IvBPOnJ5R*!|b@#Ef)9m9BC<=fg&XgUFAY*nS-h1E&#VcGGsosZ!koS_V(qYv|w Qi2wiq07*qoM6N<$f^jbj4FCWD diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_43.png b/assets/dolphin/external/L1_My_dude_128x64/frame_43.png index 6a402b350b0adf105f727593be321aae2ea9e93a..d71c76f05d58182e992a3ccb95eac8d253273ed3 100644 GIT binary patch delta 540 zcmV+%0^|L^2B`#)7=Hl(0002`twPcO00HnxL_t(|oYj##ixXiKhMzNjF<}HZurs0{ zvV~|!8Z89DOGeN>u(?>yTH06%79q^C+V}&!G!nImnY{!Stw+$xW{YLlGPZHRAQ%>B zoLEe5Gx!HQ-FbPx_dCxy(j{3^O9?71{2z`?kaFZ6ImjZd`F|ahyC6J$mdZF$OJ!)U z>{*5i0StfU(4vJoWIT0nP?Q?bwx^EZv+P{k8(JQQKV=EeSV_3Ho}$fEVvM87XNfs1 z4{MP{E4l1S>bCOljagpY)Lc-mQx5QpwB$V7T;ARdo0@M?O@q4R9Ie zwUP_NrGdQ30epM#DL%})+%f=yY^$lXh_R@(902y}<$r=AjE+ql1U=Kzjvx7_q@&F@ zUiSLuWq&=f^qdU5gm6<#D_L7{OuO${KeufzzO>L?haf<70MLl!AqWs10DnxF3mxDfMserp052vd zbbuE#iYo&3I6RneI-@M+M+b09PUrv=7-b#D)1p8Jc)*z^ZcWR{qfVJuliVSA&c{xS zLJ=%3hMGCKv`ig+ZkJ;7Og7`<3Ig|Lei2DOi*#Djqpag_vrZ4ex;5t|@zlmA>&2hS zTxP}Q!3@x@2!GK5PN#<;qO9YvUOy+z`LE9jUDrh=MseTwlGCj5-$r%6LI|Oi^rw@~ z41QFrk~T}L{QRjcqL%#h`x5iH(E5G&$h|8+#xmQ+HrlNd}^9#Z4RfMlCI%Px?bw8m<=ddM=s5sSexG} z`Cn=*&J$-9^~}u?rCA)3I6t4?*8!yF^d2+gND?5rKD$W2^Rxz=Z9aHULez|+?wOZJ z_?JKrW`T2y?t8s>5quS+N}HRo)6Zcs&!U^a*ME{c1OXa$g5t%|!6pPXYdr8_2Z*vr z-i}4kTPZ|j;p?!Vsv yxh+E0ZsU1Q?*7(uqg<`o@k`ewy}vgfseS?SEx1fJoCb>k0000>(xfX>Hf+(fBRL!d|(sGY6o4F>?O=tpNkQZ^A2cE%lT7;7)mqD{F|*Jq(KGz8(n8TJ&RDN&DAqKnEXl8RvL zboRHea4t+j%4w|cgYBAj<73mmU3bYSyja~x!po|0%8{jnq#p5S|xf)GxD758zuusxA$4^ay zuccI14jh*2eEvTdU{byIJM_Kzu4RbWyrKMQweo(E0Q@4~&GW!#)g wS^&9XC?$Pw{!_)0+wZC(Ca3mdEahXZU+t@^W@a}&#sB~S07*qoM6N<$f=9I!^#A|> diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_45.png b/assets/dolphin/external/L1_My_dude_128x64/frame_45.png index b0ea1a7e78c0b590c493451bc16d27dfbd421928..70da80e9baaed157f51e8351aa08f985894403b3 100644 GIT binary patch delta 298 zcmV+_0oDGj1i1o`7=Hl(0002`twPcO0096=L_t(|ob8jbZo)7ShW|fGq=+d)volt7 zW@5=urY=Zz5L+c4qBG(tn3<3hsYq4#JOyIp4ax#SN^3JW}5k7#d@3nQGjuBH>}8+xee6~XK^Kb=++X!*i{ZWU|Tll7Rx~yuWcCg8EXj wVT`2Vrq7YR_9JhwH4ANEPd=3WD%HOqM;JX%fH(jYF&sod8~}5yL?Q!~vj);UEIy z08qqm5CL%jC}KE>Xkm^?O*l-4x~J1ZgdtZfLk@AB`es8M01oCpPp;F8g{BTr3%PjV z6V;k(-3@i!dy`r?6bUan0Q6uEO9y~!hMxlmcp!7&01yX&H~<{URX5wGMe#6&g9!Kl z2Y{Xo2N4hl=zn4<)Vh9=rw)))EfNYGU_bm)jug`x@}~VGhJy%b=m78;3OGa`z-6E4gDzGvby_d)!cvsw(4FN0nL6w*S(*nf?-(BaOHocqI$xVXbqH(%YC zuk%e8T^xQ6hvH#zDdxO+4u>M)$wPj45_UJUlq>b*=y~1tKCt-GWfo_}$~s!3yDz1U zcHLNba1*N47xDd6H|P>X@`Whg)C`{RQbTNDA?=2tlG`>U0q|27Y@{x3{z=%wpf hmbFiO=@|T3{sD|NT=Axh7|j3x002ovPDHLkV1f+_=5YW3 diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_46.png b/assets/dolphin/external/L1_My_dude_128x64/frame_46.png index 3113ff2e623dbc8f684d790420b396e3e1fd811c..ef0cd69bdc0157715ce1b44e7223bd2e2fb7ec86 100644 GIT binary patch delta 532 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 M07*qoM6N<$g44D`4*&oF diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_48.png b/assets/dolphin/external/L1_My_dude_128x64/frame_48.png index 2734e2fcd57ef6b102da9c2a977264694246b63e..30848e939e847e84aa263afdbf9a013b4cd0249f 100644 GIT binary patch delta 612 zcmV-q0-OE&2k``u7=Hl(0002`twPcO00KBkL_t(|oXwK4YZGA@hoATO0_ROfO$I@1 zgo=`M6*`DLiiJ9vAxDEKba8Uf{sAVZ6+~R>AUH`;1i33T3I$Pw8x%wb7p)x%Mn|Ld zrt6hlzH_*wP5le}w(sM4-}iZceByKPh&ysoDJb`UCwhf{34hNU5@rIRjUgc!0R1KJ zU=KrsO3h@iN2|o?@iL-XpdqaO1|(daK#+^E}MtL-g~Kp#kJo1a|cO%Gk3!Tyf0==w|E3XEdM&M7)4s=mDtL z9e@l8tQbJeMxatAZ@KkVm7=BOfYJ28dei_Sd69rzXoK4g0Y^Q-^Z49sSoNy_C*|Ha zP^iI8-(3UA#PvMr{RwwX7clzr*aUO~@UbJcB_$llR`W7Q)dK(~Jx=5wL(bU(^x7o{ yD1Sn%hb9m&SSujYVJuSY%|bUU)WF>7ul)r!^@==SY6v+u zI=P?5h$0A%&%c7vK{+G^7KhfbovmUKNs2OGzjjAg z382i^-IqbvR!$)z5w{8p+}aJUitM z9m7ED2;&qY5`S>53sE|P&%-Al&8-6PJV)-`x(_M3*(9MlBZ6hD8T3RHVL^+^z_kK+ zO!0*tmXK@R@fh>VnE*>Bv{r^VrrDab6hYWJ;8z?7GqslB`0*y7xK_wdGM~se0V0w! zf{!-=+XQ$KJw#0azCIHmICzQOX6vQTM#cZA37`=aWPi28dxh~BjyOakxWcQ(*X~Cb zK}}CIzy4p8*XvcjUi$)Hud;@9zZGU^J@Q@;JM|&+@=J$jMQI=_TXvS#G_%lgNZygx zKNH{+J6*HxVySHfJ9J7t$b6e7z>bQvvRqo@%G#k*>haod_5ITmz`Fu#UFo%-)VtdK z9(ro|%YX8nVrl|dDvgyf&8hFKub(dVJeujy%h4EFYUqdv2|Om9sbB62H)s|knbe3=)E zzU~CbVE&cqtt5LE!bm69%-LoB?4;n(xv1qp;??`W@iY%$Lt|Qh4z_UZckA{Z`|!ynlpUC%{Vb(dO%pX_+AR z9sxR@C|>@PzzpJBMbI*I1ik(4kSEsk9nW1Rz(^6Sz!C>KpQHIA3BJAqTi43D8X5A? z<9}2WV5g2*tmxIq6n`rpZ@!R>G+&D2WOx8=k@B8Gjf=^z&Q5uNQ;O-CYb;)FzTfhPZe7`C3jdY?CYAxdwJ f88h+D`XTWTT^OOn){qqn00000NkvXXu0mjf8-nee diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_5.png b/assets/dolphin/external/L1_My_dude_128x64/frame_5.png index df225594910480d7e00543e706d7286736ca814a..94ee5d1542865d135d8546f2539230470dad332c 100644 GIT binary patch delta 817 zcmV-11J3;L47>)A7=Hl(0002`twPcO00RR_L_t(|oNbd|XdG1(#(($DT{0_+Gp(Ui z4cSSl7>o}ADHhaZN)z$1(k`ZmG+LF44;EBxq3I6RhxpbYeNm(!B9ajFMJmQLo3v=5 zXj`agZR@T!L0kK0H#E+snYqV@-G&wX-tKokzVjXKIoOe-(tiq-F5=Sy-RJApH|o0u z@0Cg`la}RHtBaYgp3a?ZRm5>|e=OpycKP)zncTqgO75*p+6>GF)NYHT)i`ipc*A6` zb^6!m3H0Q|rhlJGWY)OpNH26=GTS-ba}G0A+p*~izjbaj6WlX$PMN{fu7kO!v>La1 zxxV|vjpY2;mtFa(s+mZgJ7c2crAlZ_Vdeg-d7&rD%onG>85&}+PuhmvLcl@^ESN+C2|lMHbyy-o zbhltJ<$uFK0@~Mv)X5$XzzqQOyB2T`hN~OoQ>j)k5e(E}gR8?wsXz>vhC(3+eEwES zz2pOEu5JzCqKM1|py13d8^`i8&;j5X&gj^rqff)lJwVL_nQnin?W1GJTHHG5HQA2` zoO-3u^Tp<7lKkdLNi0Qs02hFVe?(F%kxFm@O@I4C5{gw~695bGf!)U*|;k}$MHOJR$0cu{gq+Ny~=sO7DiJ*K+=-|b!84;->3RDTr zU(YlWFG?|z2+gmYw{NayFYPJp~Dp@Qc0&fO0& v$|_M9tw&agj7aq@TChHY7n%Ps{2%@W8K+@wTqfQi00000NkvXXu0mjfguIcj delta 1643 zcmV-x29)`{2Jj4!7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000IeNklm);RN74x_hwnoGI}b{e2&s*1cGRF9wJPdYQn`n_X0Z8r91(cbxqX z&P%y6$_!k6_jo!toj(g2&*0A+kKAzpfOZuicQlw_G=}gfX@o)kYRXFY^~|2_787vK zR0vMV)N=vg=6}KX8GAF$V7T$CndT`_84;2U5SbjOl@;+tWrjkH72^pEVcok}dy{4W zZ^>;g*KS0KTz0|D$36GH)H7Db3z7R0+Lp>o+e&+S?LGX*04t*ZNZV?8MNmdtz< z-nB<$<;LZ3V&%_{{-v@4+I$@z50Mmxs-MGC z>Xo>Z-hWehxjr3qJ@`G>&TG(g4c>m9dag_{0A3hfq^DnYAsVt#vj?2)md9u2(7Zmw zARbl@GXTJM?u;j*=N_%sl#E#+`jN(?UX>~7Seij_F@dH4ucy=fi^MNln;Qer#m*|} zqGo_9N!n!YESK7KMB)?4o4IkKdzqP=wmZ3oGk=v&8AAF*!1b5bgB8HNr_YwhOC>dS zDhub)T>L;wZ7p;S8UtSS5MThhunH!SEHq*Sl80p>G1Y9xsAN(1Sb%;M>Qz>S;MM|0 zU{Rl^e-%6q)9dj3RYoU`ammwKYn=CM0!NihH-uZL_Ab)iVipY<&$7nz>`4TgLvnNX zzkhLGTz=@l^z7gk>pA}_7Rc2_+IvC!Yw}wL?CHnN?Hw1($|+fzOJau)uCyl9CaAP_ z?>Q&6k03HnH8Oi9v7KZL)?BBy0sT2bbyb_#n(tdJya}H6xF7ACk+G8AM(n~*_ZqSb_?0nno3e`+N5LJH(Y2gU z*Z@yv;aS71^S*KqS26+sIRc^<#pRkFL^rEC(#NsQFPLcNoDrP?FfqVvWEVdx(yvNc zGxAj!!l-kcbdZP_XN4a%0&j3i+wKs+u3(%=T<6!GaevmC z5qO7mP|N$Ne7}};XP9ZA2a$Vmt-cB?l^+S5SLggvTMSnkDBUA_v5GOWSxGgX#5fnjV$K8dmJa;|E&W?s58UP1vW3^af_QE;k?{dq?{k;mFIj{dAMB2D&>i6D} zXXY5m$t!^6-ZknMzYEZyeL19kvVQ`4uXQy1X}PKMt>)5SXFT8iS{$f^de$_(Q&sl005otr1MWo zA*(Wsio1o8%tPuw`v|N;hygqcjs`*%Y2Qej-Y$a~7h78!z}3m1UD{q1Ab***S^XlL zSe>GcC~&m_gzf=4G&aZvKoLXGj*?&A1K|0ef|LOO$dRwNUPAQPkRtM5;FrqJGDj!~ z>=UsAIim6Z17<5ZqsWo8^Tq($bAmq8XH=l_m|Fe5Xm%J)}$ zKfpi`h$r;~g1dOgE)oC8C4W>U%zqlz>$H1!k0I>H2BYv?SI<=NsP_XTzYcyP^;aRX z*_M}&vOtA#nFhcKsRe>s{Zrrx0)L(Ib&SRzR~l$pqEx@?>Nkqf+qkN+y_pr)Rtgj? zc|5Fg9qoYb0d@#Vs^In1h(TJ)k;c~?$BMnYvPO-d*WZo+dd0dLRb=eYgH~_bzl^UK zfCh3)znOZ7GDf}M11a{Zln(&lBQ<`CGFHQTz5>{L=&ASo$YkV)DBRa!7Vu&|c1R&9UIX~!_y;ayGDeREOf~=j002ovPDHLkV1kdJB9;IE diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_6.png b/assets/dolphin/external/L1_My_dude_128x64/frame_6.png index 4c00552ea2bd7bebb0243febc10fb51c35d7aaa6..34233f5bb415a2f1a372267ddd353087d4486e74 100644 GIT binary patch delta 768 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 Y0MS(Hq)$07*qoM6N<$f@_BRDF6Tf diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_8.png b/assets/dolphin/external/L1_My_dude_128x64/frame_8.png index 86e41e913b7ede1d900fe79314467ef21f50ce10..1f574da9456f9a236ca37f32f8f0c7015ffcaa9c 100644 GIT binary patch delta 623 zcmV-#0+9WH2>b+)7=Hl(0002`twPcO00KivL_t(|oXwK4YZFl%$3MU01%T(ov57#)q) zo6;+HdFOCRoB9{{w)gn_e!tJ}%M+i2N8F){Ngx)zwb8R9~@ZD=~BzL@WXP)PW349pnBP1b8zH@w^i z#0MxOY>z-}4yG8Iw`V9v5s1He3ZTCL_MXSqST45b@qPlz?IBaU^Uleq^tXLEbCAgH zUk4}bdq_Q?+1#co3X?h@+W251bjoqzd z=zQDaFVHi#57-eZU}YYX2?8Xux&zalQOC#7IH3xxF0ER6jQ}&|V_Ug)6uWG|7f&0g z)8dxDJ+B!H6WrWXDTdBdFK*YVHqBTsHC0dzVC5oIs(;H7m8t|8NY*>zRBj(_gCn!r zj18@y9x6_q4FNTqf=czB-gv#)nDg^I%=km}^OB(f`nvpigJ%^2up>&K@w zp!!629>0(PsMl?P3<<0*fSQg#rHn7S^;MOkrR0Fo@W6UB2SoBB2D#7zw-W-6dV=Ti zxiM$euV@0ClzXEU40(uVcu_Lu5B^=0B^D;=)0|3T7 zPUIg$&e;Mat&#(jKOxpb6X?!cD<@61NH>4xb5dIDd&-1rgPlugLSMhLCfk zlly6$Q3S#9*;jCOPzFg!i-T)$XRX+bBt@Ce@7 zCcxG5PErrn`+sK_d8r9djXA6)0NpQR0%V-qvdyf}siOjj)a!Mw*#zJ#RAgXL-90{j zzh#T6z`X)^O!0*tR*-w$@fh>lnE)aaMyo;`+pJAmi6C?x@GFiCGr5-F`14K3;$9&? z$$S9i1c*q^3O?S1+$P8uF+BIxOf=GXs=_IkbA*S#;`wUjxu`$-tV_0ZR5@YI)?mtQ(8D~cntvT0{= zO*<<)4$2;R{WAeRvC}#8E~eTf@X$&1Wae8n0X!;F%XD##lI5Y3>ap5S`u^<+U|oT| zuC&^Z>VK7XzlEM&{;GVZ*qQ*EN<+q_-Dk8fUsSVZdFi#@mty7l)&#}%P+c>_G@$43^RmqE=^1?t&h~j{eP&siKAJcHU{(lM z6E36kX;6h!iwSi>`W7-?`y67{kwpOpl`g2AOjW5-X8nx{^jqzSFdMr*2<3CDsKQ# z`+o;lDu(R%9P>8r^sC^jCg+YOBX;~)yxvPf^<-&RwtmVS9{G7;74!hG_Qi1Y{MGxc k*$Pp5dyLqLch?V!f2N$dsV=B`bpQYW07*qoM6N<$g6AOmrvLx| diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_9.png b/assets/dolphin/external/L1_My_dude_128x64/frame_9.png index 4334eefafb905d4a60de23eba29fc7311a6898db..5e75e2dffd0711ba3c912119f7718b082111fffe 100644 GIT binary patch delta 652 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 P00000NkvXXu0mjf!91O# delta 1613 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 diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_11.png b/assets/dolphin/external/L1_Painting_128x64/frame_11.png index 89d003d071e2cc1f55f2c13f361641f996385ece..e6ea79c3778f0147b375dc4df1105ac7ab711b31 100644 GIT binary patch delta 839 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 Y16@knQP*kC3;+NC07*qoM6N<$fu>b%7 diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_2.png b/assets/dolphin/external/L1_Painting_128x64/frame_2.png index 8bfe6b33c57afb008d06a5b1743c5bd6164d2522..302d5be61e2e34847c9f4849bdac6d40d9063e8c 100644 GIT binary patch delta 834 zcmV-I1HJsn49y0R7=Hl(0002`twPcO00R_BL_t(|oORMqXk1kk$MNsIb0;&MR%Q%F zyD%g{lu{+ch1FFv)O8F? zC>TKoBi3fHiNz-EO#aR^^WHr!CebSNEPs5?fx|gUoVILLvVXH^fQ4u)(7TETr+fT= z#0>ux>I??>SH%2ZJbepsu1wmySp-v?ZCm2&!?f+q!h^JbE1@JdHaWaGBbgaDEZ#nP zU`yy-#^_7!YoBe+NU{ode*cZ2mY?@}e6J^%ZkqJb8Re~wq(_g{)Un?ShU8qOm5DO* z2dnM`i=3XjgBc36Ln2g}SoaT6CLN~3Ifr<(kSnh8VbYu*j!2SV;*usS zktd|Xh&|%*8&cnhhh2WY4^$FVUZ!4OYfroJ-ET(_Pk;WHL9SeGX5^kXR1IDU8pF&s z`mTQ``R`w=0h1!gx-4FB!}F;Is9-ZliJV9+h3H8U9UcW><=I?uhn!JL$@T7Qcg3=L za{c&2e}3Azi*`tAeRuYw$1E7t`^UDu{TCDSoc?N?4@MlS^4Fqk028*;lBWBU`(q_X zE)H}8mw&okTd#!^PdpHV5~pdr`tJ4@vhjE`>IlrkG79lq&v#xxB<^c1PsrKki=|S@ zlmt?>wglkrPMu$UDe;Su@!c;Ji<0HNR$&N`TCwCphmD+G>0m;9;%g(|;LkOMnxc_X%w^z6|iN zwi;gscvxGFekIZ>nvKKoyEe&jcMz+Xpn?_N6%IuZ3H}PIYwa`2P&JOz0H@e-YFmxt zG{7l#oZ437%K#5+tMO%khqcmPBH;Z)B5(}$GEp*WJi9vyP6*_1(q=7~$ z$V(FXUfbNNQh#tl@G64O{gWvZKL_$MMpzTmOyrq~GDNi2A=z)OjjU^}vHAqhXn_bj z|2o)BVSpcsFoGWqJU1f308vLr*Y)N=lV|n(o_`|#Z>_br=Pb?O@i|I8bbhJLjET{my^FLp3z}4DU5fyr)040| zX;np@}l)rt9%}Xp*3)Ox9gk75v`2t^qi>xL0Y1jO=)(b|=4Te1b#w)7uV8>xEK;4M zt^J!YKYt0}O-^faX2De=aYh4VZZGJXRf$!ZtkQl%zYK~RfI2!FNLrqviJ5gO?}sEq z_T4}w14!e0@A2OTX2q5_XC}k5qB82#nUlwpgo;^YYy|^IqWNb|>x&?7BGhoL4@I`T za3Hr3&8gDZmA3>`GU>`DL&lART|sR8&J$c>s&;;qdqWZuuSfhJle_}a6TSn)jo$F~0$pkd}zMQ$Yg zbAQFXdZj*yFx3p+s1T8Uegd?zBb_Wxv6643(-;X3>OboiQ0e;@a!1d+I{{j9YbQ!e z6#7g9PY9_bMa!&}tX1u{KMUtT1mg@WX7ldT+|j?jI0W}f+8WVZXPx302?LlLcT}g0D z3D9T}87B!LO3|6%YkfUiP$8$yXLmAl#D32YL^71m5l!d z18`{dkpGO#CC#ZhJ*#az`W}7g&om+E+EQu!SO(A_(YthVkW)YUjyd>gUsdxp-G4HG z*e%()tZji?0LMzvlsWCvSUyH#l-Ye~NhKwj*T*VXE82ct*OeJq;kXsBg3tR@G6527 zbnI*rgzWyiPCkoHfhH0Wy-~FfR9K?(?1;&GCd*Dp0;$F#$efl4s>@0wCK0@6vh8kU zgHQWYQ8|lBX53YhUr!7E2$*MsR)3TESW4LysPfOQQaq&r#)enJbExF>8TF0Yv}*4= zW0AfE>=1%l;4NV%y+fZzRJ&)3)*l%&a|?*#Xbq6c=vhhx$5Z`4pV4`w=X4F;hpxRN z7QOfUE#Ph~AYs-fL=;-589j|sA4$zu$3n9GH5>fXlAtyFcM7zR6eKI~m4CX2&mn!T z4*qprzy7s0aSPZX{xZ<)qNf|NpC-7KEE0`t^YM~l?V&OjR-dCazzn2Kqe<(P0_!_JXm|`u6k&0Zc@jod7u~>GrExm{o1W%&k!Pprwxp-=Ir$$jc zSW$v0#$;==7H!&Wc9ZNTJM(`YHmgiZtIAzj?fD46a{eHy9p(+36mq+Gm^Op!}7i3 zV;!OQ8lx9lw?6O8NHPk0>CmQE?x_^|-9o>2rD2>CbE>dD;*6gxtCPR=8j_2pW;#k& z4$r!WXT8N3dw;dmT3u}X1;AuUv^xDEJAJl9L}VJYpXB4z7k(E2KO)-iD^!`vx0F&! z4I?@p>8-LGrzA5H7b2^d?qiN#T0RkKnph7GGmYar{*pxsG?5#&^g+_7~KX#J;y9h<_)4NFz6{H`21_tSZB6UNy&J zHGBJ8>G}SRGB7EEY{>GA%~euWP~LWs5_vPV>Z2z`w0{DC`U~CpU2;JwCAa%--5<-^ z>5bPP|KpSPUbID08~ZXJJspBk5B|R6;NW~>UeuR&xM0MhN`EffDo_mDEe?GjKO8GL zIzQA7Y=7!{d86zXpLrw(C00{C_0Gmx>W{g3G3~?eW!I&}%ifvp zr%WibKEzpPVvinj*R64x1u|Wmn+LvoH0&PKVE|wsc(=CpO5)}tBIn|Ia%#Z#1@Bw!jzLn>^C~;4eh#C$32O&PogEx1{dCRVe0kSmIa$PA#|@dX{^w_mm>(sJ{Q=2@?uM1TsrvVQ~8NR|Sh SQSiV30000f3aJOe`L(h^S6uj{&60=@T!E**2fR81ECtYJ3^sVWVWz8GmdGfD?@O31cR63013YZ3#+LyeHcDrSfX@##fn%{3iIP&|+1){Kf)np71Ds8IYfbegbu>yr zUXalD+Tm7}f`1d7SK)kapG=wfNyy7sVF{*@$RiVFh-j@tqTkvZ+1J`*bq3G$0ugrp zmDo*TfFFu5oF8>OS0cgyQA0=f^<<#Ivs%7qpNRciYwhhBOH+7!j#3YmFO8WsQ5jEX zfLTyEPzjKJ9)kEg1Srk_qAGBYCT};@TXFY324*o1+8ai>&Eo9CTD;;Upho=WJz;0qe^W5?`dFjwFR=|mt4Lr~z)FVbmDLIoasCK^ihAg+M>8xF0Nz^9 zs1kMsfCWjZ&7Wirkta*S0NACnNm#0Do2B*@N~UjfSIZdW@jorlnw*){Y+a%UN98cG34HZ%{qTpS-)KFT%_)jnZ zhgJ{y&xkBZre^ePZ{yMTm_vW20YUecO5?{efCh=)rOZLHe#{**c($*q`C8vHfPd&M z>A7rdfm;B_%BCrk?b2GlMq-rNb7(;&1(`R;DpxDUeqGm{(ql*6rBRCNksaMs&k-?B`Rl!Pu??8c0v$HH5Nf8TOz0~D-oYW@ScgbyODK1 zoll#}SyVFPu9EzEn)8RlJRP)}%zxKX%C10_eRh@NsUBb)cr`qON=BdQzN30n+hC_J z(zk#ejbPN^nm*`ruW7W{A`&>B&1P-^Q5@X^q#}Bj5|z?HpCRYBZW)pdxf6HzqW7M^ z1>D^WNSM`0Y6`W0;PBQ+`$+6VyZLHgNK7={0}Mf@K&yvQx*zbIFV)}~7JtgpzoaXd zE4@$O0#0%|g{BwH?iuIvQo!eFnMn6W&QR$KYtGRJ{!X&RGMWS@4fD(55nhZ%q? zy9!7nhBz^@Mp|z*SzhypWPiFQZxsXlN#GW^1xSkD*${fnFdML*gSo>Z`)GE{1_9q& zV?X{3W`KdaoGrm}xb(haKPk(tz_4T?`y9~&AWENrO8pSST0H`lF|&8Z`DpgH1~33W z)ThE?56QsRXY`$?&uRwfz1s{h@Gm$&OV_K=yZrBH8RuJ!pnelLfF&G08|5e9&L-AF egaIO;YySg=bf9>Qi_M$>0000^!lv5rwMrnktG5 zTd;wMHJO^E)ih0Bk|s0Fymya_X=)XEmp?w|Z0_$UaXMt{rGFhc16+-^0=*|^aJt>z z5>xzFsFN7rUy<;C@!TE6=@J?Lc9B1Ib8JgY9HJiHE_}$?I|(I;3DZM2ccfFphQ(cj z2eyRXV~n1zU;A=vN19c*Z}#8FS6b%%cI&t2&s9z4$dvNe`!a(^E9&SUt%me;xz-dl z%^#e!2PgA034iXla(!i{x&Xj1szLzVwtbTLo}8zULoKJ7}B z3|)Mn5q~&uwz5$P3eP;8fD)&P-}qq1%h_bO8Z`vw2^oas-Ip2_5J@^~s|ER@`bx1_ zG(`cgvYLhN?EVkyB^`baFzK=KK2O;pG1dX}#l#axc(uPFq*X<67IjOk%G}|<=8&-Y zun8p(qYrI%e|#Ke*P&PxaZStLEnS*<`-UA79e)-<)oN6m)3rx!PE4cttxR{EAITqY zep*@S3gG&}Q2&VwYhSPDw0#yJo0*vH`^gKViV39)aQCUZUmW<#u1DGq025{dYTtWd z1h&5*(zA2f$+T-Lo^aY80M1-4)yHi&6U)zJaU&^bK3R+ctI_@puI3c zhd!f?gN%b8NNrDSY@^g%dWU0bVB0=j%r%0sf=J!wX7oT10mvwz!YKU*(yo@}t1d4* P00000NkvXXu0mjfzVoiGFKuWM6BK)fqg~3q;uY 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 diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_7.png b/assets/dolphin/external/L1_Painting_128x64/frame_7.png index 336cffcb4c16ef9dda5fd12e4e56d9a94049c372..8212e629c737aa69bbf58783e0e22b7976a95d9f 100644 GIT binary patch delta 847 zcmV-V1F-zw4B7^e7=Hl(0002`twPcO00SXOL_t(|oORJnXk29!#_|7o=T4GNQj-eN zf~YYlmM9n(iXe7wiJO z6O;T`$VnXFx`_F|*mV=}NtJBjMlo2qTH6p`>?8_q6a~n7Hxr^WLwk~)S2vQ$0}hqp z>%wev9JBrK`D+_Vi!fVUdV4TzpDT2Fh0ejVtIoYwOz!CAr?b09LK&IraLjK}{@3co zYE)_sO089d<$o1T@1I^>0AQk~W@Q!G3+t+?S_Lz933`vy1i+7|@h73{Gd~g$kzUl) ztI)c`W@~y%xWgnwvX7aXj1KgLvQr&V;}PzX$@ zlBDkpspwp$4l<}}0Mw90e53%z=PyX)ju&!no1PSr#7O(%E#sWIGWy7T2^?^1NfdBf zPs@qE030XnBhGr9e#v~k$pa_mMH;OEIiMJT#F=_WeM@fqgZBu3uY;sg?+9n^+dJP^ z?0ql>Nq+_M-~MU8Z;21A+JC=)@Kib(AxJ zO__1V60eeWIf&zu1#{hJBVFO(7_6i4u?jN3H}bM8{>DBp>Eu+2e^wJcOAQN zyB^>!cHDLB#)koZ*w~F!4?r`JXQOA_hXMK-07(o!Kg0lY&Tr+{b-jG8IT6Jl26!(6 z@I;zp3{@(f?0+e@=4CT{S0cPScwG#@{evXQlJ)c+fGVI_k`byU0F{eodZa{Hwnpu+ zWOvgzD&N|h1-|};0W!fyYBtIM9aLG7fh6$``JR6wpmQHj*)adtdQFjJtTmUf`=%Z; zMo);eRvJAUemVnGLFK%>3ibjT$;K#nvUOy5mI3aLOn(o6;OQEe34SH;3roggh7&>Q zOyCpPowQ$E;HltCIWiCw{;b3XR~5d(HPPTQbY7P2<|mNHPqlK0>b zw23E9&C(O4X+A%rBYJa)BFdy$d0y}l+v%F{o4`|)$;*MK7u|g4iQ2^?-AOveYb?#5 z1-zRky?<*cDickD$Q7B+?O=h3f>ZY7@(WPX)@_EzTZ;} zpeDfS)1aL|uXo_dg7g5^=|>I$w?j%eFBwlUK=Oai{qinF@*M*~?&tm?_m z;8Dq@uG14mSI~F%0Mxb$(0ye0^EmAo1X>Sqx8Qe{lv7Nm_5hyXoh8Bx%*o(GPAw)u zr3Xms8ek8gok|4ANvsAr+MH$AbbsJvFH>d!+Vr4CaG6n@Ztx`i$XajRZ5Y53EImKr z^abyvqh%`^EKjGUOJmt;Im`NePUAg*R|a?j?Cc37!#OOSl7qAajy%)kW=^BzzmBBv zbW&W`W#0mtT;(&x^GRC#!%oJrMv;pKgBD%(CU;utFEl7M1Sa~fthOtRhn6cg6s1( zobAr7byn|z0HuG8fwX4}*MD{W{VQPzm8=tP&6k?09f-=O%+#$jE7NLBI~c%9i1jtb zzyBDbWs#N5RFK9Pd{a9RWhIo2tW(4TMn8M|^?X}7`5A;5AlkH8pU2qC1YRACI*GDG zCiq-Nr7^2AK&Fhn+ydw(GO)6d%H7cySkBO%dGaJk`{4h!)?{$v7E&Y-K-c~O X%grfbAn=<$00000NkvXXu0mjf2`~&k diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_8.png b/assets/dolphin/external/L1_Painting_128x64/frame_8.png index a44a7315da3d4a550f3453dd8d221dd9131bee83..f13bf906cac809773cf69ad903782a78d4e56e4d 100644 GIT binary patch delta 848 zcmV-W1F!to4BG~f7=Hl(0002`twPcO00SaPL_t(|oORJpXdHDI#_{j_+nF{^BZ)$4 zKs0F)EI}|H6hZ7xhzGr`lF2p}Ohpf34~kl>F}S~Yv7lf*2woa{%XUY|7CiU|*@;>$ z*fxqrBQ?#WCLtu1Y)IPt*_nAg*tAvXdwlpj&*c?OO~BSAEq|T^EQVWw+3Pu^rrEzP zCit(AlQ_T)5%Yi1dkgVZ88>&c$d6pBZHaI8QwweuIdJ`33DN1kL&^SY8_C2GhmnIf zgxTvjX5X<3*Ef2bMIACfBec5?t%VD`X`$l^G7ZFTY0fu zEA9-6JIe?wtACo_H?_6^z;H#)>KgJ2Y^thi8O+hk(2>|}0Q`g+I{|I#)kH+312xq$ zG=N*tZ#B+^sUd*0muIYmN(? z*P%kJAI!FbB>Bo4=1!(PrNezWL^aoVjAebUvKD7&C4Yi9^VKYqX*jjCQdt;`fMHdV z^y5BVs?27pAbC{-Kou9UNDho;9-`5^p0D>B^rVO+MjER&us>cMcxbK&l9-z=0s9*Rw zoKJtZB(BdmjdU)%BTmn+5Z40QF=(*(lv8Sl`NU_OI>f(HF+Hi}L?$Q=;-EnY-2<%} zy;{not*V=)Pn6QYnCeEi>ZrcE;rFQtqy^-GnSbR+?_PP(_mt9OKd7!}k1xG_DEZm% zn>K-j;2w?EB{aKzFEu_EbamV9_UM^R5JsjXF_^Oh+gW`*@x9RW@I7$YgU`Rq1R-=+ zE~}=mO|2K6P46fTrKUTow@BQi*$?HHAY3uUWH5x#A&t`8{A_A^GmjqxTjc8nlL`-GN@YZM^@L?%5Uc%RT#1LeV1F9{P6*y7wAJ`3z?-$z z_$t7gwbke&Kr1gBr{i}m665Y9Rw+S+Dm*I!YJn&DE2OTq&p3vvaa;{>iXW%8)i|yO zIK_`s+iH9j;LX}Y7owdoOet%wuuOh6Rlx^402xWV>3% zqxPk>Nxp3mf|Xv!0uXa#re#$NfnUXstVh z8cVgB5AUu3SwK6NSHW6BEo`&`ldXc`UIjQEo*E#6mw#)ZC;6GgPfQzA8FnP4lE6E# znzRpWa98rFIX#P;r11u1)f!e}Rq}i9uQh_ zM-{Ou$$v_%S5<&JNPvq%d|jMB(>HGtBSFReEM$m&H&Lko)cD@J{@XxraHC^2o0P3c zU?MM9GCL3Z@40?fDF9V8PaiJt0U}A0UQkfaJ1tYpPJw7as<<9wapTV7sK-+ysF!#+>^MdalQH(^vwtjUZ(+ff`D zR=qRe&Sp5LBwRZHGXcRZ8JuI)z9Luo~R_5kI|~?(Y_mtuUtzj?ETW z2~trFTX&SlziO;_4}h`lk3zGk3P9z~&yrEIy+f&a8#`%%GqFHMN*m|HPA1BSyN>?g8FYF`vj|oAkL&f_F&pIt_$q^te3`uN#`XieF+Qjt(^*u$VBNV_3Du|WT~x&O>f~qFNF6KiIn`JCykebP+keLx zL)sO0)B+IH4qXw93O}`ETgPTe;PU%t9@)?xB;Xcuq5?plr>zXJc9Qv-VN=!aq3mjN zo>~J;R39tWb$HkF+#MJR);Uj2e&vy}OUc+8Kr>uH;Yk+%wG{1!^7m-_jTlcH9Db@2|IjEK8t6TJgAo2pj=5 zQfhu=HbxXsfwIY$6yZVbT+0sNU{#W=Oj7o&z{QYMNI|0RO8&&E8UT*{2ebA`fa;gz Qxc~qF07*qoM6N<$f|myW6aWAK diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_9.png b/assets/dolphin/external/L1_Painting_128x64/frame_9.png index 7cd4252910d4f9fc9b398f349d21ee6bcf6834ae..65c88162784e6f4143cfaeb1f8d072f5a32618e8 100644 GIT binary patch delta 840 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 literal 1762 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

>s&;jK0 zK`fIP+y;pO{`&Y5%D`uLOAY|v$32eq%*1dp3u4~|`nVjcE&J1pT~p(0>v<&LmrKwXnzot(d=T>1^Z&}hZ8`cVZ$+0?{}HPXrSbReWAX5j!Xp_h=JrNH(mA- zXwfUpEIu z#Atu3-{<>&^2uH^$P|$>Y^2OmSqx#wI`qMd-QBc5@_*t|1Vrk|p2hJKwDoL70$|9x zzH{{S+9&TF;-NNO#nRt*j;ZcSGm@{Q#a%okLS(_{#^i4ZF zwJF%O3csEdY-z|B2-mLEDz7A~Bln)o)Zx!S> z9vTyo^?&$)f8qMAx0hv=IR~&`iOPqT7`rR06h}nlwtK)2mgbg2S=Y|IQmT}>{{Tl26W)=Bp#1E z?au;ZA|jGfBENcTr=-@xJ3FqP{OZBwD?h$ae`xg-=#~C^oaf$ZrSr~?63>Df*?oT( z?Q&0X-=(dm)Z`adT3JcSJ^W|x>um!AXRa>jt{gLD=L%V(|c literal 1756 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 YKx;?vKP_DqJAHqfBu$FCBGI(=KMzur`v3p{ diff --git a/assets/dolphin/external/L1_Read_books_128x64/frame_6.png b/assets/dolphin/external/L1_Read_books_128x64/frame_6.png index eabe9def3375a009bfa5cb8604e7e880eee5c187..aded14709cd4cb0b90260b66859ac1c24f0d2d6c 100644 GIT binary patch delta 743 zcmVxQp``5&)I~uM3k`^hE~SMyBP|uAYQc;m zl4=XNjI9J@BD97ywn>voH_6O?J?vVre?q_G!^`{fd`k2DnScKU>VK68Y=FQ9V_XudMDnAFVIxZHM!b+DG~|C;N}qmhVpKz0-QXNU9Cy zIbDT#Fb(@bX@7$bh8?gjcbyvpd;=PZ0e7pzZL|Rt9I!6Ai)TocZvqhzzss)Q^n>V|oddrqMD6)i4P2zziga9 z^G;6%SZXCSY;hR!Cae+P<2?Ls&a??vqxrZ3={&s3AOKUksC6dkk;CRQmkMmYWAo-S zIcvoC$8E682C=tQ;DLf7uZxJtIbGDfdxB1RXm1rCBbwB@B%>c#ea@0Ayh zsqyP(Qd&yLyz+PE=DP0glRwTFtr;dr&*aiToj9?htE;(^CQ781ktAm-1&~SVkW0wa Z{sDqpHT}3>$!P!p002ovPDHLkV1mYpZLa_T literal 1750 zcmaJ?eNYou5Wkoj5fIc$1!XiITC3%f%OxQnf)bJ-Fa{7}#bS|5?h>w$T(}%2P^1w? z5Q?Lt#nFy-;z(5xkW!>pWk9KlR7-`b2m*gtks^v6p(;#EFML@4aJ;*B@4dbK?f!P( z?p$GP^!hpOi`)SKm=hVHieqL6GeX_i%=@9+UJWz((dq;`o;1)ll)?c8M(S{GqzN_R zaX5-)reDW{0f6lwvbWCo>Yj>Hf!4QA5!ZbvRfhK)RiBA9bQ(^RBB!-SjZNL2{PeBogP zCYPzg#6hq^DpabZ0)bj74HL;!>TpqzDomja4@ahLybUW6Db!-2Odv&M0vA>$R7jNy zSf)^`V5t<5Ok*R>RvIwG4|RpAt|9mm2c(!`xeu$*`c0i9HWiuEELBos?!kjMawA)Q2wK|&PK zqauMpr^A>4Ch^!CiJPoZM#2PPndTxlU^-YRLJ>$T6C)6&6QK|qq?bSvOdtx93PiX_ zst5TDMZT+M-l(Bz5mT713$b%JH&$VdIzoX8GEu?w3l> zXUFeuOTE%K^6SushFLMyNsrw|@K+g+q5RwtfA-a$QB@PtYir2aSuMTvq@!S4@ycC2 zuQFQ4*6tr&6CK#`Jl@c|%(t!}@l1Wscnt8MMbUCGslw8glbif)M4iOT-*&l7_Te4ti$_n-9rpYkxUs6n?PSJiN8|Uy|Mi2v#Nx?!p6&e@tlP2n z&S$(e8+}ffeA>M!ls$X#m>LS#uDJXt%(&ds|DNsEYC^hBIWkbuDjBHVL&O)9dWCNC zII;T9K*7VGkHvJAfj0q9NAut^_KkaoetNK#`$bcK?3rUhe#wsoNf?ZD}qy z*8AK(Q*62l06(-B@$%BsEPpNckLM4R(wT#8jc&*NL$hmY>`$Y7wq};x2AxNuk0Ov? z#CInS+$CQ==(stQZa{SS|?k&FNU diff --git a/assets/dolphin/external/L1_Read_books_128x64/frame_7.png b/assets/dolphin/external/L1_Read_books_128x64/frame_7.png index 3ff0aee0c806af1bcc5c9a2a268a3b6e124f925e..9540789e7e668cac122554570281ab7ce3005c7a 100644 GIT binary patch delta 747 zcmVAL_t(|oZXVaYaC@5#(&@JEE}A(ST$*3 zEp84A(h|A~JqQguL4;b62HGzT1?`9wDHV)ISwp6^gN1_jV4!LbizuWsMX}I>7R{hh zLfb=nm|DnXf~{TCYPKemZj+gPJ!D(ZKf(9-H55?M}~k|2VO_mPZ19A2o8V z@N}CnIS^?L8?@neIi>>jNU0 zHfVCX4#`Ls4S#{s23r_)z&hXe*(4Acu&x+(`yD_VK*<5?oV!#96&OGaBnP?W0FeQV z0@lY|IRk7rJ2fN+nHZxw7%A)!KsR6bb@9^HH?EuFP61qLT-Fb`Nd)Uv=={5SuehR3 zzwWy()W7U{E@6;JY1Un4sVsyrZ0`H?NKX&#&%L-50e_Ktv3Fr&jJ7dbkpLJrZ)~1H z^Lo_-mb-}zTO5x1Ggd9|ISY5pMvrhYZYCaNP1wl@0CT#mbuO*S;YV3K*fwqR(nDa? zD*SOwuuKC0dxr`KM8NVkh6c35W9cPapEY2;3vS!%xN~u!bs!cA?Zn+rK zRS{{9CEm!-Pb?Pd51%ow%lf1Kn^V7KM(6Ux)2pFTf0_;`Shc`o73hS!n|M6`vOf!q zi-<@{iTuj#&61jp4>w&s_WjnSOV{3X-#G!sa%BJG_G|CA(s_GRiB~}#+Wu5G?Q(B% z@WNv!)YP|TT3JrXJ$pa*!-j!@Q&$^Cca9mdGleWvCr|F`>+5XEQYF&LNm?+K0?4Ip dD5T_C{{ZR^GYvrgY|Q`w002ovPDHLkV1jMwV!HqU literal 1747 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 literal 1752 zcmaJ?c~BEq7=PieLJLR{td7f)QBgL#xk&&?AVH}FnUGer9d)zWz#5WGlO+U{LM_Du z&{kViEZW-EK|BW)br><7A{09m6-2AFUbTo?4+_ZORJ!4?{^7W@yYIbkzu)h>XE&s$ zEeM!2Z4v+=AZ4LS%dW-jBlPoR-`S0iVRi{;)R{~MZDjIr8wr#KT2DeLW;~13lDHxN zqgFBw0MAlNm&s&mQso3~=HYG~p3`h)(E!9HIITEgA{j_eW>J=S_))_d7@`dE@Di~G z(^!+pY-(YFjm#)W(-8$GLS}#y=0kB#IZI$B860w&b1ZhbGaer0m9u-d7=@ux6~+_~ zk2#g8Nr#eX8wp8ye1yO-43f%tqyZP`g+`o+h6I>^kMh}Ditwd!fl$tuLE{(98nhXV za;++P+#Gv~hqD>RDo4@0ygXi>kVo6HP`*qiLoop=5Fo4uV$ZiQxD&D1BPSSCq@A!) zR)(T2ked^WAY~pLN@+2FHGqg=d(>W83ke*F5v^|@)LINQVgXU;( zg0i?JQSK^@1+5}&l!G)R+h{X1nr1om3Ks-20YMN_Hhi&|M8rmsj7@|s#KHn%Y z;9`t`$MJ@j(l^$rtb`52I^m66MjFIYJuXBHdbWQg5)sR*$BhUn#*G3ACgO`lF)+%y zh`KxHrB0dXDHV4u>P3esUK89$hIa zrOtV^DYMLRAM;BZ8R>YMqcL+!{^rK^7)?FL-<%WYHES)p=I{_YweNVhaWJ7_J^VXS`>?&xdg3tBmf&MaIt4cp=D_OLT%?eZ!6E-hVIJJeYho!6)pRpg!>fBgBF|;(B4Su zgG$BGnKx8LgPo6CG0!UQ{x3F_QGJ_|05|eZMBSGMc7Glfl&(NBPVklfi*FBqhDB|8 zFfWerwN3_i=3V@5g~__caI^K@oNAPTtX_(mXii`|oT2txJ*6xF_>$gJ-#fpR3vTtU z;)HY+`W2T&al#%Upn&FF(RS+WK7k*An*f}1wD>)Dd8C7_x(oGh7KMAR06P+cd;xc| zt3107oZm9PkFz5(G;~gCY(D62FYyL**LXl`t!MGDD|-5crsNQ>?!cP7S^XZ0u(-O0 zpS{k4-$FZ?aIoR_rTyYzLFJ#-wbvhHm3BRDsy{PuY(B@zj{{KU^3a;z#CwGpA=4FI zT-&XSDEew6_iEEyy)pZS7L{KP8H~kDvn3U+doKUj=Q`TWU!|;A*C>^=b?vlshHCP= zs&-n+whj1Q-CbVdTiaTYR*JqKswk2id*k{R#me4gwXF}gQ{R)I;gG`IQNOvg>RJos zUli!y7O+&Ca<77w6F*wyT^gS%zD2cw;SuKq^4W#E&4PUqG=?;oD+0$j6ie(=F_ QM)$uaMV+QPl(=&3e`D>68~^|S diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_1.png b/assets/dolphin/external/L1_Recording_128x51/frame_1.png index f3b3f8a977f357187cbe110fc5f5f3429141dc2f..0b549c648cf12a72f9d140dffe3468fef11656d2 100644 GIT binary patch delta 653 zcmV;80&@M%4VeXy7=Hl(0001Y8$G=M00Ll1L_t(|oK2IvYgJni#(!(FV|GO27Mp+v zvjht}BR1*I3Rv9k`Ui-$R;ChPn0bUJgpMP3-Z>HE>@w6>0BnVI2 zo`DqA2hjO|a6{iADTP0PhGD3WXx*x>U+8J2mFl$6z*r{e+1=Dvo;ay9IHm_!zJJP> z-#4w`ASU6hyW@J^BvN{a=%xj$D8@&9b*KG9Htf>+^FPD@m`9YWCA>L{02tHIsWFn* zv;Rl(7r^tcJ;>@ls4jbf1;;-?1Q?KvJm7&6P!LZy zqp4j+-od~*FW3km;5sm~=44^9gcY9-+eY;T7|LUW zB<7P(aOqG;^6`J8xxuaikaa|YdStvjB^Xnz(}1jkzVzN7i);gaYU{^ zqp>-Sm`2LYu4>&{E;e*c>sDDy7DM4-(7!T+wud-VvqXk54kjBgyHdBtv{R_w!)U7( z#F#(|jAJTbwx_D47OIPws#8mdfF8hh%&nwv1Fr$LVV>PZQh;LsLqxGdVxZc}-}opj z7ph@Q!+)>Pfm-O8J|YP5oH9s$b+q?_mKV_{d|IrZ)c`7*l2UBk&PDB+)GBj npgmQc*Z+Pg%>nfBmeL;qAVNY_JF!#%0000O4V9A$Urw7);}C~cK5ya?f3hA_v}|G z$qRkGg1rC$zUoAkmR+6fgL`t>cg_!g!R!*m#HTY$Xai#>tQ1h{X&nWrO++@Or3ih& zii=bv0NhezYC4myS)?FolYnsP2plF0iv}Pv#$h4IT#A8oRJPF^1rM~Gh9RRq3Qm(~ zP>m&y$}uJuTB#+4$*E*vE-BZ;G0{+@L%|Z5D29L>raZGv;fR9Acopp4B^JWama=R+8ZiG(8dmLVdU0>c#|IW%#>tU;^Z zpwOxkCd{#?C^&~;q3`1BA#8zNt2nS-eg-tT3C>v=t zS{Ng3hFpwMghOkL6o4z+2aw)RjC>C3dY+Z;v6;0-wC^Ms0MZxSBf!?TBNN`*% z!zmPzi%Bsemdhd#f|TeGgHDebC>cuV+lIEo}k2WxeP~9ktjZHffB=2@t6$7 zlyPxNEMgL?Hrp7&Oj47!jjZhnY{VO}ia0ApFtjz5rt>BnAti@qXj=|#fiPTvLg5;M zG@4zK4_s9m4_ZZ8jVmdAf|WKwV`)|xU*iHM$4HWtvEfT36e2N*hqLe9i%y;MyM1>O#2;DOD%#%$YKjkzl_gfMZoCB|!sj{aylxe^)k`)2@jHHC zM@#bi>BC=g0{GtTl{Nc!;m(_Go*v*@o_&3k+q67Hw^&@T0BTEp2C*}#d7-1JMsJ?$2Ld(n^(=$D-yiJ)kD*>q=xn?7O%iQ}nuXpLQ^}DJ({kdNU z9vfIc%Wrzc`7L!VsLu_qz3m&{f2Dl)O5dyXCo`s*S6%`u54Ed~9;n!#cjAK4r?}VW zvUln1X=PU=@2w~WFZS4^yOwjZv`yKdi7xr{pN{w$eWHb6xV7)|yY92YgW8MEnX|09 zz>v|FH2*QWw*IkS!%{GGDx*%h_yTitRv@1`9v0mU`g*;Xng?rFZMw9%D@1&uzRNhR zv>Ag-Z1nBuI?hngwwW8-f<5t{%3C$Mf@iCI+7oO$(`0A8h(g}r_U;Xw*dgyPEMbR` zOFIG~;D=cJLH)ymKe$&pCl5bU2SoCmjTH~McKwsO;`Cup6re>O1;0y0D%T%I9iOZ^ IydbOOKgU^uQUCw| diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_10.png b/assets/dolphin/external/L1_Recording_128x51/frame_10.png index a474c21479d42198b80b6e5c29005440d8ebba61..e45ac86be5d0ccaa110d75141d7d9de006970241 100644 GIT binary patch delta 669 zcmV;O0%HBF4XFi?7=Hl(0001Y8$G=M00MAHL_t(|oK2F?OI%kJ$3OSX8y!s<2iyo1 zdlOuAWdd2mMT1YW?ZQRKvL$~&>Fk<%3Geh%krR7H6o&6rZ{WT&&RTYq|ZRM8%#ux*;W?l|Tw zv>OPkbB;=a>H;k7Al%dckc8ZgqkaI&i(0nIySKaUvKD@5Rv5)tCh6+WluNs@lqt;U zI0w^nE_kdELyZPc;w0`m8WJ2tY$Q1rJ)R`$*?sALC$=w-(wZ0m^9O;O;6IAZaUZCu z|2lE$YWQ^ZT7Mzm1FY|n*$JrCkt!X`ty$ZMEoQzCfuR__{dnjQDt|fz_=!az0t`q> zdmaY_KtUYoI#asQsY7waA=n)c_%!io^EFZ1hLn!WC;Y#V9TIUTg{`T}U$nn|7OK}X z@tD{ihsxSuOJOl(6jbj5+?(WG%ASU z(Eoqtm)6-}@uD#>%*cTG9GMyehNP)b@OUTZ?tJu+3>h2?fgKGC&Y zU7d;_Dp~G?){!pes=r~hRSF`>WBvjzUy;2>A^V`cuXbf6Xr(?g>41B~0Ga?)O9D_3oAmihfW zo2=JI`@{odCG1vjY`l847kaS)9nPnX^>fx}h+uu9SYW{a00000NkvXXu0mjf D=tMiQ literal 1708 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 diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_2.png b/assets/dolphin/external/L1_Recording_128x51/frame_2.png index f61e59efd34b111b72877660b6715ca48940bf7f..2901debc4eb1e5711f313c5e901a9b3d317e52c8 100644 GIT binary patch delta 667 zcmV;M0%ZM|4W|W=7=Hl(0001Y8$G=M00M4FL_t(|oK2HGXcTJ{hM(_bHrZ9!jM{7w z%%@mb1>qJ3BiuxV>>P_E;@iE41LvHV^B7f8ewU`yReR}{7gh@ouYX2#Lxu3p%(LEeG%a*O zgeOhMNQ~+|SbUH0x4uPUGPe))6)67DqEY;HsqbcV=*Jg?35;c$zTTu*T#ckiU{3eZ zoo%|@V}%IHguIF3sP70RcM#BuGb}ooCfL~Sth-NSzpf=^F#zTPITyfBMrJSyYN~gp z4j#*oJ~=*=e}4d;eI~V2P_7~+z+7CgVPrAaMv;x9ukIiJ1|yFh0-cD5KmZt!gw*4J z98eHPE1|BfUKNIi9fA!2d=h(fex0CWbLhEj%D;g08v&Prc75hd=gLZ6I+cn)0mEdH zfIq=@Vj(QE;zEuP`<=BgmF2NjCNPxnn6YIfq<#(EV}JL?QCx8(!4My@=D%;h)!36; zyl50z{-;(kCz07&%=MOP(dcFaUDKkG7m}1Ab5L@xOv(0<$P|1f!I%hUCt#^pG$wU1 zQ@xAPMj?nXo)|cQ83IdvRn0Y1UBwI+3-JNa2iS)BFWk)ZHNYt5>1`wim;)FiC`U*c z7{UiY(|-ds=w_;ZQg76MJsqe;ebX3Yj1k(IsyjK*_GSm|OtsTq(eZ9NU9C=xiU)S{ zNKfxL-}>?6bG|XQ>x*68Sz~?E8qEWEF_qn;;-9+@9|Q6Ls-)f)3%iK_4K^Vdd^tC- z-UjPig{0Q4EWf1s3GJ(DTMupFfp%53o&N&pClpo>N-9@{?~MQe002ovPDHLkV1hGx BH7Ni9 literal 1688 zcmaJ?eNfY87=KH_BEuUvbRZM6;05D4(tJJcqgMGxFT=t#OI>Kj{07jL>Zm#|V`wVu{dklI9~Q(B79 z=Vfn#1_RO=tL!Q6I)% zhiMRvC5p;0#^zh8#QgXqGCz~V_54-g&`P_4B`{G80ohGiW}Ctu#-HR>uzRN%=0lSz zOlBB=%Bd7h0u)7CDM%(12}lG%AQ>*C^aQFC8wfH4LJ?F1i`ZKx5Xls%SRulp>5I=A zwCW8CtulJr9D54mXE2OK0mHeuxx!qrkhZ47A{@tI1cgylz-kC=d1i*N3(U4)7lV?r zkyfLHG16wp$w=tv943sY)K5kE-;(EHyd&)vfe1xT8(U7h%6;d=9nlmqgICT*)Kx9QLn(n zVu?&lAp%@NN(2&ICKnJSrV|)+delJ45JHEeE}qxnqcIUCSINXOF@lIhs;EdjN*XE0 zaFq&I;gNEs3#&HU7{W|aF55=d_B0lKBUTY*r3i+$Ced`3s}T}1Xoj|B&=v?43lV6k zh9He*r(~J4N>f2ADXVb#0pfZ72A{B`Y zQaynoB!3#Oe{{?-c;Md^yzvLv!69;f&uHV|E>PcofAQ@|UvQUnhl7eAeDltg<8BUU-P8C@C5g>x zPcs7wdjmj4adktg+Q+eVaHmJ9*UxUhB`+LLJ>dH|Ji#1msY24OS&JezHk{g)@rPG) zWLfBW;RoXn3z&z0$N$>u9=NV?03g``4@Dq#VASX2rZh6VeNnxTAP#wRKL00XPes78 z>mL21IUy}C+NyZObH}6E?;>B%?Bn>*xq z{c<;Nc6Y&9Zt?BX^o8IiPrKMGt{%*O3zQG!H8o^z&fKCIs_pYGrH;?LFw!wrt$TnP*XwBk<^YZ8|TG`KisU^ zZrf3KIp*4Py`LQ#F6`=jo>jx?Nsrn)vS_Bi!DD%EY1Mu&aO7CTlE)$a8*fz}Pn5U% zdY^Yo!Al*n3E_Ufmp{{n=a}V3A@oi#Sl*~O7*w0RcMkW^l}~E85oP=O*PP z=(^;n=hzo1JwL^6*~e{Jo)KwL{IVidt8IW}f5pp72XWUjfI}AIG+~X6^s(OiO{gKZtSX*^^IvR^|Lx Ns8#XGW09X0{RbQ%dUXH* diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_3.png b/assets/dolphin/external/L1_Recording_128x51/frame_3.png index 87e297b2a7292eb0a93ec9b426d669a76476c949..c0e2388b796b8942e3f6e94c90e3f3d9ba700173 100644 GIT binary patch delta 651 zcmV;60(AY+4VMLw7=Hl(0001Y8$G=M00Le~L_t(|oK2IvYgADX#((GJ?n~unHBE}( z9yNuPF4$}nvJnfl${!$>Vk2%P;$w4SrHH6tp@H+M!r;48(9$LKQCn; z#3zGuiGB$1aesxbI|3CSouOmZmAWA?P|KpBY2emjR)NIgLAlHuzylQM5WoU4AfPS4 zxGdrW0~U>GRRKp3Ky4M>T6T_(4f5^=^c)`7f{^C;*oBs^#f1|uwL4o1lCXs5dvNF` znxZj3Y?0IC+`i%Rte($Riz6s9_SY7 zL(zmXZrUh`JyXbe19Od#Tu2!cQ|OhD-fR4djKWB`OBs7NT{ZW&)B!%;CV!l20u<_t1A zJsz)AO`79QayXS`&A3pQlanLJ5esN0MJU2BOo*UD6y~#+;x)yfq%0(3 zFtY~Q1lbu0EuF>6Vb0l!D2!&cdYaf|namZJHKCO-3q=A%Xf)bG8`rk5@znoryjI(i zU^7#~c*;U&F(g+Kz1I|&OW&If*%di&@L0yc)rH7V(qxvAGO>|LIm~?#=nOhsDi%v* zVhZ775>mpKV6q@SK}xlJy;g_nDH%d&F?5ROb$AsfMkSaiP$otYktke&DOLxmR7%xq zSr~#U!ltp2CJRfLNNUQqfwMh{mA(;+D;SDkX(oZDGo~6rlS;F+C6zWqs91nNzG{Lr znCucidzB`FR#J>1o6@Nm+6axO88^Jf1r$R`l9X}bOQjTFs+V9~B2XD$ED02e^np4; zijeRmUiV7+COVaqaABCIyumR_CzWXlF<+idNdG`h@_GrSjf33 zw0F)coirul+S9(B9u4j=JzSKDn<$1GodtUfi@33yrHM`m9~&EUaB#qv)mH-G*dD12 zOR)ZYsmz6GMx2zkp+>f5n^$vMtDQcci+D9Bx1-Sf=Yj9i|Fk2Zb8EomwjWAQBNtX; zK56mJU8?Derr)%+?YA(+y92W)$!)^#R(Cm}5>??)enEf(73T+$_~a&%EapB;|I2 zwO##SuD=b`?Oh0Z8+e*~d9K}OoZl&^=goTy_yaAk$=&tT+@_I7i#GPSLi2}BO`C3j zG?gR{tnY{juEH+9ADVl{*A|*x$P4w`=m>dsz*U2vmSMMsRnbmqimI*y**-maULVTc zJ))gk&-$wOILv#veZzMumk$m$Iz3W+E?-o1=$LN?vp&S3Q(F(9K(KFlK!aP2u&^yQ zzE$lp^6e+yFT4ubeTRmNceKk7)bt$R-wo=YWYu3^&%bMV*f@u6)bZxzNLuO^&eNVuC{B~32%jJpDf0}-w2gs)# zdzOCHzs%9SYDCkzdw6$#Uw2S-RT=F9h92C@j;*sr1ncJ%e7)}Yj*7#h&||M_yk=AK zX(_OjS4Ra55DVk_-Hx6BgO+o)>OnTTMXlYbNt8dUowb$czIkP^dc;$-z5225rmNlf z-7Ul&y{I&=w4x()#M37vAWyn^$*&(?4sRjghHZ2EjgS|)Hf@k-{?2kRz;|DIRI^mX`I?@pmkUw)VaBZI*Z=Siz#r~6t M43ANsSe^XYfA0;5ZU6uP diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_4.png b/assets/dolphin/external/L1_Recording_128x51/frame_4.png index 62428a4055a629a59736231282016f0b6154297a..c81f905398ad3b18c1da68e1559e2955dc821494 100644 GIT binary patch delta 674 zcmV;T0$u&b4Xy={7=Hl(0001Y8$G=M00MPML_t(|oK2Ilk5p9@#(($jTXxpK>?1Ur zIAJdd1r-@%Lt-(H&QAUSqlFDrY-LcAox515F$OxdP#X&?#h56Cab96E6p{c1nFRFR zLCG!z_RZ{)owxhmyw74-;@5pA=j5DxIX@#=@qekHBaMp#Z-3dW1Kgj}Ots}7v&#P1 zv+iIRWBGI4GnXP=hu*(fKG#ERO6gCcun6_*s=M`PmnWKPDy>;s7{?hV?kM#qeP|Ot`?HCRe$z)wU=l0mW=^)!nx$_w1Gy^ z6d88H^TVCDUaQy*RtfM8%MEi8Yg#E^4AiZzjQcmQw+bL)F- z3UCf!fq$rxU>m>`9sw%a%aE5+SkbqgmrnEDU%3gGkmC`WV&{AHU zX*OGjYyggPL+6iP8tm>qt!8WUP#??B8W+}`Q5C`6)8%y*!yW(VaYPkClOni!?HK7- z(F+Lnp1r@S;G+G5!e}{Pym^o26Eu;O>5T(CP#Z2Ot6l>1AE&Ea$a3PZJpcdz07*qo IM6N<$f-F8luK)l5 literal 1735 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 I1z)cG4^f_N?f?J) diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_6.png b/assets/dolphin/external/L1_Recording_128x51/frame_6.png index 942f082b83af4a2228227f53134ca6b9ab3fb391..aecd99f1a4bd270e1e3a475d8a660d3507f4d3ee 100644 GIT binary patch delta 659 zcmV;E0&M-*4W9*&7=Hl(0001Y8$G=M00L%7L_t(|oK2EDYZOrwfWLcoq7%_|Bu&62 zUcti32R0VMPQb!We}LHA=ypEI-nH?Cm`*JO3u_-(Xd&zrLM)WTMgk^g)(5Pj+1*64 zt21+t#rnwC9XN2l1D{b9Wj#8es@fa;orShf;ay3Gc;Ta|@qer5Xjo`P2(KEBQiAFu zXnsPtp&yWh%ASG_X^lB`vHW59SjM_`^GDWyZ!cw(y&CuQ1IGjs*V#mFryPZlJuyGK= zOs}UO^?TNITbiAA^%OS;v#PqBHQCE-oR zeVVC0z-ZkIBFO?TfPI((guqPJ3V=k-3B0EDZ3W89E tzu+0qikELGfBmzOtuq|}IIjQz literal 1752 zcmaJ?dr;GM9RC%Bf{KbaaWLj$Q735HG)*bZsJ7B#5vp9NvxA8yX$oCwQrciE&Iz14 zaOzNS&TV=O*p!<*eB7q!Df4-pkKqF!Yzmvs*LIUR)FEyx1?v36GneG|`+f8Me7^5X zS^C`BVZ)<_0|3HO^jago7V(cPB#?jS9_kkHOC+Z=a~Z6a^AIi?Xe=yALn#g-hc?oL zWodpZod`hSYMaT-nGI<;#X7`%< zpctxAX#Lm}#?287Mf+{rc-uo*ZiQIvuYUoNL%xfN6Li9i*w42zdat??E@ zj!>c@yydy{4R$Io;lptHy}^~VMXn$T8Ehf>{)vyrcwUmQ!nB;QqVWhOm17Aa3GbrB z*E!F1l3&EPr*HdgH2A}_;i4ISqFnswXiC0)n;*O2^fZ&MzrSA~5a7}KwgC`uDMhO> zc{`4o1`FXs$?{|88_iaTNebq3;jtT4SnQUi!-lup{I|6SJ4xTl+!!*s9anu~!99 zN$*JY)keLb7OW-SacK99SpPWuN`Tt*2`Ks|#DQI;<3Vm`v!Sda?#`+4pxzdwrhXQ1 zuXvMFFX436&D0<$LIozu7M+<^WDW=s0_UoN5#I-fr{{F(9QRt2l-cA0OqhMW{K4Md7YWE&<@#W;!;M%%5 zJzb^+)oB$ILUYq9x70KB{h6(xZgu6h&o_k{vs(`b6!isT=gr@VzY>j_F8^o#GEdZ9 zqcL@%y0Ec!av9UU@_Inc?#TH}X(;8;?G@*Gmfb0TFBo*3qru0~7bbokJ~b=yPhq$jK;!D(9Opb5kWDRx&|n~O&k*EbVG$u1_(?^#i1ZqC z&%Ni*uffFV*baxc2!E+sSo0A+nOQm_RA-^~ z8DX(HibN#gLDY34+}7`Kg1kC`PW6YPd&Az4QJOkKUaJSf0LJP;*2k-1>ae6W)%C1- zWuBqhPi_7bA}F#PC0MjI3bCpt+0prPR908q&~Gt-m}jJ11~(L#Rwv|AdNO?YRC;{z zbS4i0v-E@54u3tYt|1e=1wP4pb?tz)}g*l=y(w#uxgnDJivelBO?H$fPzf3 z7EsgWMhUWGAs*B%;5wrN=yV%#_PGy4MfVQkO*~Tv8kOq#wHsg4!c;6=CDO?;JZ^$r zi^QE7diZO@GC}0_l>J!ntu3*e0uIx)fGl(!^1;{xQGXD1hirJg#Gv;5u1A&qsl|x~ z4mMr6+e{+k<%qk>`Iuf`Pg?p*^Gccve(tyKLm^x-1=~b6VrEKb9mWJOJ^-&8skU@3 zQGJThN-h9zcnOSPG7v<^90g9=T6PR#4a2ml`q(1lkFkOhE~ zTmHo(Wq-JksHTH?vMn9!iK-jSceLC9waPzQf(Zk-leUiZ_3bNqZUCm*P%lg`|E8Tv z1PrEVe==^Yt6HO}2TQ}*EZy#H_~n~N>VXf==GXd(?x9UpUCokWTEC#V;qjQch?s^sZc1DI$oACUNX7fUFiYsmG*%02q11u zBF4%#L^lDbSQMwtLd>lrbeOFy8UVt=9aap_B^l5_W>Xd=f2^~I4^o7Z zpCXNe;;d1miHa$)kx3=-db}hTR}lR0HDH(nWeu1~1_K@DJc}K5DEU)%QFiYZi}>J_ z3X`kkPm@ZGO9Z268wtvVumFc32$U;?B!M9Yu@S>VKmlY z9k)?dhN3N?+ahM53m7GzB|9C3*%}x3%CN;glPflBA_ry_!9qx6HoHTc(zY`?@_!m{ z)VAx3t)xgt+UWut&X&Zu+yiFQ_jX5aMV1YkV58W&V0mg9FEEo9Mypox*)KwZB2cMV zERl;zNT8755`jb^4;5gz)F3b#2*gOrAG4gmzGtxTTd`=Ajl>w*rl;vVPa`CnXoj|%Xe)?_g%J2b z9EMXCwU;h35|_5gHvfnsW(tS6bO#vayERaloUvf5(S$GL@p3ZWH4-$ z5ttOh`7?Opwe(GQDl1{buzJ{_3X+h@4VYL!7})-i$t0{@17;MEQp||RAPFp$gz`l! zMUlI6Uh5=}h;2{z_SI;xhgZWzTG)xQv7@uKe^V(tc0P%*`sm5YNe+jD1|8oE0A4$_ zYL(t`81>%vkRPD9G!hdU4Kj>B{ z;Uc)Hf5RSa7Spn$CwVhB!jN1wu_2N(cz?*T=m)>3-rG+MRnC{9(>0^t`WHssTB#2B zuH0OnLm%`#Ah8#c-gMo8TM|Ar+v3~8qAQxC=Ysg4DuL0Ko$T6L$^9#4~ z27P{MI>3o=jsUfgYjpuPq8|8^H>cy|;|}hro3)=du5R!!LiQX3T9d?K{k!+&Pe`gi8qbBtB|Hl7tw- z-q9AOMVXl>&cu7)d%BqT=eIj>;5>)lV^l?XKRRSawLg3_3xA!$!=sXpQV35?lh=L6 zLIUkN!XFEcQi|##to)5|S)U*&nLCR58Wf*u(JC%|KX4~C`0;sR5);#4s5dFJlSt8n zIXy~u_KM3Pwj@xcPJ4E0X$W=69auI~Tnx1ac0_m1{r*LWdmr|yVgSrtUd9*LtxhFo zw*qRSTT_**`G4v3Y>;08Hl8u?)6j^JGJVYX`It0@W(9%q1b#Zk4iFpyEU^q&z<~5< zFXDh4P!LCFgBjf<0!j``d?p6`N2x$_2WfYx(|2jrUxcB@@)RJGL21{yS|&hyJ=uEX_iwyQ6+Xyt|UswC@8D7#0d91mc%ou{Aa zdZsR-{e; zFn?|xmwyys&H!WBYJyaO@W#Ir6VT06{h=azCmm=E!Hgodw;$uSDDBy+Y-g(Nts?t5 z8#bb7vLYThR6wWv-R7%T&+^gP96gxLn%FPIMso`r)8P&^|G@q8uO+uo2Ok&n2T8A? z16AD)*|#+7)>dWo3k4HdSbIqH-`+;{9_bJue-}&oKQE(2E^6B?OaK4?07*qoM6N<$ Eg1$RDJ^%m! literal 1766 zcmaJ?dr;GM98W>zjiASFzE~*gA<#BS(}wma4=GGkkU>S%o0=vmRA^J%AO%56cZi^< zY>vrL1gxTNBJ;s9R1gm~apLBNigPl>$4&8pIuIYoQlQR1Jab8Yzu!0C&*%HT6voAV z>gGJv82|vc=y~#Zb~Uk&(9xcKr!@6(*<}h7nZzW}DkcNhQ$RRLD=9EqgC|q*6i#NY zX{Uk#zK9PhGKBgs7ccrq(&KcgjdS$tzrQe98qCX zW!zDxl49b(2wG2p7$4>l5Cnmkginz;q7}xN88?MtbW(vJBO`;KA>`BgWC1LZNCXffKoB0Q!82rP8QjRz8hmXGa>_vH z)jCE^Ye6d`uB6i$8JBf-GzyI_Cgv@%)-aYUHfsVSt`op~NTAVJLmSaHF!9v?ZoF69 zpvcrwf_Tb6r|Su}Br0DUm`&e@4OtagZ={R#YPK$Tnw%!mHI$Z#mdm*87e1*br6Qpa z#e@{Zlb{63LnT-c4<|%Qo=Qm~Dhh*er3A6@ybljWppXy~%P}DY!*FCo5EdB~6cq$V zph6VE5TOkltu-*XmY{65)vWC?Y{Un#(g;0;Gqheo(`mLwh)bav+K@u)Kt#xgK))EA zP;0G{Io2wT1}&%b>a`RZrKdIENSdYU_qc#a5P~2uHhhtY;)ztKgiQp3@r0-thE-w` z7eNGf3{Sq3zR^x)C2SZvn>SJkMT#&bF65C)wtvK8l;u_8Djp@mRfrfuVG$a{6|gP} ztex{tC)q@7ds??|M}s}Q9WF}CPL!S<9XfxB4?A`f;ub0*hlhtb9FBB)Lj?fX-Hw)r zD~x}(?kG&`ggV zZ?!a>Dp+^htIyNqakyd6)^*jngB`m{tJik_))Hj5ZU1@BywbLW{8pgy~GJn-!3c#n`PfOFZsG;dDVN2WPI<)mIuvjZBJUsAlf zanN|yp&OWAMt#q*_<>0EM!U0fa(=R}@U4Wy4_*!I1AeH0olG8tlL@mZI92ZdmJ`Kv zQn-hUIc~joQL+1H4lQ*}Bkh{HFFeZJUgm#jC7?ut z0gqqLHKjXEc``T8f3o>vU!>QYmCK&bZ}i*a5waq6?kRIX#*qoz4i@k0T2`_l8!?1G zb&xyO79FBrnp^WkKDUZ3oX)12`pTSSi^W{i`rv>j)hYjibM)ozx~E~9i!)vRdDL}> zyre2}{i3I7mASsXiucKQ(J#;fp#JEWoi9ZlJC7S2%Xs~$HRsLoeqi1ceHKDpAfp+vmF&odp-bN8uFeRe+Y={{dnSy z5_m>^XP6`PU?N(_@pxJTRHpDf^;ya_-i6b$(yPR zMd!?e>gMK;?9mS)fsj^`v4mnAsj6nho(IRP>*nV^T$vUFh`C3;l*8Lo2mq$0V_S*d zJb4(%O~AbPPJe30A+$&e&>gqLqcAm)NH2@dxJ%nv8iwM66PUNm00CeifO;K(98i!k z-o-SvMfE-OoOS|j4|w7xOfARa?Z-Bd^x1PT>)~^yF{q94?5LOdR$7@B&bHA*Bh-9A zB@GdOP?P1hB~B_nO6&InB5SK`0Jj-B&9=-|wnt#Bjeid$A=(ZGNI~tZ^&|Us=KS)a zv4oT&`)^2DQpRT7q#gOyw)P2M4!=fv>@lE_~@7YyF~| zO9Bk%=*Dc+SU+iv<^jCeQ8eiDFWslF0eJuscw3HdB)NumRCT_{PBIn+K`6m$d&y8% q%)X}j?axJ)t?ftw^1`elzX1^XLI)v_ZQ1|;00{s|MNUMnLSTZOVK-F( literal 1732 zcmaJ?X;2eq7~V)gj%o+1jv$?`K`bcAUI`&9h%w;^5=4lAjs-Wn8(2fKAz2{UQG

qppjAtyD%}9F{&3vc-S7L}eV^yOXV)bq z#*Xp!_XYr9j3!Q<%&!jq!93mgcXnN$h+q7;=yWcHHE;!ll?Id)tEWMYiO8apX@V-u zy+lU)@>oyC|VMZLA(i$I2o6s5_u zu-2lYvzfSMRyt)_qK;fY8Dt_$9V!1%@Ls8lw-Ex_DInXFV63sVn_rIsc^+2wkxRrIv{D8< zSsgQCjz2|;vN_IzLr_6MfusPFu+}UHQ79A;j6x_X<~78&LNiC$#b#Tei$P7>NGoIE z7}g9r83{d`$3=>GXNRLOS+v^M#Ae$_uK27$cESQ75*RX>oS_YA+qh)dK$ZPOK6 zXegPsv3XXKFNq=01?JQDZbME*-Wz9Og>G;SXmP|lxCcHiwmd%B}r1whcA=SVwpjz;1hw$#h5eE^lxJP08eX0uxhuzJJ2Pq&%;lFo zbdpQNx2JRadNlaM>*1o!{6ty#(V=Fusr=Y^Bqivg2L}fQ0s$UydN%-!YSgHeI(vK5 z_Pd+9K+ocr9fM^@dh+!S^R?!#3-qCrJB4NLOg-}I*qX;TJtsVTFmL|~_q)B@TGHw| zYbxKrAJg9w@#yIXUDK1&D%A+(~~^&LCeaf8^v&2E9MySj@)_X3;l=0wgZ*{H5qbXhkoblhsMDY!>wtuj=7fGJNlc_dAZm&8Tq zAKu!xWqu-ay?@r^AI=5ctg%e}96#97yD#%bLsilF3(BRJ{c`n}E@T>et7A&=)#D;Q z(rl=nfJ>%&h(U=WLNOc=Xk;6$9aujy!YkFV_f==>_-Zsyq9$ecJP5 zx-#S?=WS<=hhr90Y%t%LjMqXrC0#Q^0uugOj0}u*Fj)%`_i3M=>Xz?nzcO(&uz1UQ zq*PFI#5*2r%^)h>L0v;x<&xOCXDjq>^-sM*m?!T6?O)l_8_Ql*rbd1IumXF<_N;wz z0Cxui{(Tg5eXJv}Fyl-)S-83FVjWWyH`s42ChEqVtnd+#z%0-#}FCIM)tOuILk6xqmmlQewE1Kv;b@iMjtNsJ* CzKN9p diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_0.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_0.png index 71e85fe8f97f8a8de21ed4f969091bce2a428dfb..36e5de4c9153e0086230b7cb4e322bc34a8590b6 100644 GIT binary patch delta 711 zcmV;&0yzD+3)2OV7=Hl(0002`twPcO00NpxL_t(|oV}7yh*f16#(&>8-*k>~(W4?w z|7K3QPy$6<%|e|!jTD7Ak=NyNq>@Lc_1Ds_=g=iDI$9m z;{R76y-zR?I#gG#PN!eQ=((V~K@O~Zt9Exyd9~EBfLUi2bd#W2BZI-pDb~ir@5kn9 zqVd6rU7GwY*H7y;(y&9G>D`MQaCO@u&3z8;6oY5M3BES&C6Yr;%nKWXZTFt*78u@x z1$6YHUoK5Tx_^DmI|K1olLy`yZ%&bp2K$}h&8K?4Se^$QNA4|`6GdEwCoNzumP`ZW z#t&>b1YyXOovYiv(%_l;5X)F&%q>4Xn_wN7Pq31PZ@*pNYY2k_CeQWbe$!CGHRBBI z`g0;a54ImMwZ{VCz=!0Rvp6y=FvI3o(-`;|Dhn-7On(ARAgmmZw_d{y zQ0IM(XrUNUu*H0Vj)kj4zwb{+wyv)4byv81j61*F_%z4l-N$0r;Qy6>DwR^X)Rkp*HUsbmsx$*FEnJW! zB=r|MvObMR;XId`8-E%nQ2}f0oCCwpb#H<6$3Jr6rbunyY+!p6(K z{NveqY>D~V!?tio)V;hr!S=k40E3me^>lF%SU_6n|23wz&geq#Z%Hv5f!#002ovPDHLkV1h{!RLB4T delta 1458 zcmV;j1x@dLA?Iwywjt4O5(ONs(W}N5G6prKg^?wR_ z?>G+ChSn!?-$JJERq(NU0uT1$A;2HU+Y{jK5v2(d=QCsb+Z_`FXx zZlkhao!cxU0P1`S>BCPevtE(#X(6X_?2+teNl)=wv43cNvX*3OyQ#Hi?)dCtM0Qgj zb9RDe$$k|HE>Q+b4-<)<8EB=XhRR(yf)#SIYP6LA=%Vu-&$DmT5mw@fD3df-Psuu( z8!}dJgC@qKwy)L4nOa;QIbH(le5tbFc1HF`ZC3n&i8o=T_ND8sEyw}1teH>D`l}zw z9_@pWAb0yAktXgcLqzUfDVnV{dY+Pw14)Jz0BNpqw-9F+8f!L9s+o|W-$~g z|DFjM2~|rwLhIh2HLtJbKG_iq{%05C*7mhGLD~x(Y&mX6-fpyw%Rx+58e`F4oBK@WlK$C5+4eog96j56M^qhSMsw*AuxFrOjF^B)GTG-j= z?0-@0B##92a4dWjtU1~GIRjR_qyMf_uTyxE-z>Ooz9uFCBF^S=%ztLVQ zhlmouA{Vk4+8nBqu*`FL#z%Mv^D}MrVkCI?U5|zm}MoIA1bA>F1RRHR+5eXtT5m={W zeO@DIO3*_cwRu${MA!7ynqA^Wc9Ya+WhfYxsahYa#9c*%nMx^+$7?{O#2XqN?8=Uc zOx$y#hlDz5UfNklg@dehL4A=S<$nao8l*NPWvM(L@H!#;0)^j8ExcgMQhzS(en)t- zY6>6?>NY;uQ600+BE0iL?OM)=s7xd@R)vROWgvgBOenC3w7WD!2<|CuJ-c4Urgy>=?_>vgc%u%N`7L4t~8%t~6lwh?8k8mj`XmqFgx zIJ$oo70_&~aLlT5PlM}SfGZWdkq5D2XSWeSMNT2vnC+O|&Tp-?fBc5iJB5=3c>n+a M07*qoM6N<$f(cEqivR!s diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_1.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_1.png index 31ab932b965f743aa00a3b619d5c41a400959ce5..f487ffdb76b1fa818080a15b778b5f7a2f7e75e3 100644 GIT binary patch delta 707 zcmV;!0zCbq3(p0R7=Hl(0002`twPcO00NdtL_t(|oW0Rch*f16$MNs`&O37sGC0R1 z8jHGzAaqe7Ey{&)k5h|kkp^98*A#_|ATCslkaFHcNJ4N>K@cJrE()QHpqvQq!Br43 z1<@|=8TvDe#^w$a-g~|0ygwJWKn%A%%MZUF&jSwt3v10h4}X#*S#Fy-=w{BnaA81dev+5;0`f)6rAAFPw&he@=s=%xp6`#&Rph-1s>Ri z1NiLuFQ`pHxqp3Q!5U*u-Fw6Tu`ipajHBI7@G|%*&I698Env>n-jO6+h8_RDp#&Hh zKVbo$o2DR+nYWAMEwr;Aa24xB?DiS}*jq zwx)(URYTE?`-B=+zq@*g)b{E>AF&rNe(ZQ-<;y)_2K}kjwfNoEryn&xl2BFOL+d~k zCT6s}qIDhY?#*rMiLXu7WA+{(`Q-|{*eoS!Gvv}&?*_U350?!fHU-R9GBo;oa!Eri zOJRK|@_!puQ&OeA6xK&V!_bfvB&qIh%5v?!9)J%34%F?uFG*35Mx9kTpQR4qa{~}# z(;`XXILq1iV{ZSpfrSm`o&o43HiAAx*+UoLI>1PyZxz&C{ZN|fd?XvNe|w0hpY`?6 z_n*hsn4*BY;=7ang`EX<=rspS2D5TswHN4iMm*hyavjmh;jfZxnN|rvlUKHW1K1)N p&?e(SKQkx+OWcbgWgEx?Hvu3{EM|OO{M7&e002ovPDHLkV1leBOw#}W delta 1436 zcmV;N1!MZp1)>X(7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000G4NklWZ zAH((mFoIhD61ES3hXG>PJ^&sDh++Exco-mt?E~OpfEcz9fQJEo;N1w@2f#`O_=e!y zJ^)ra;TzJ=d$j?j{9Z`QHS3)jp!HrEdNZ*!0JJ-NGziY~Y%VPQ-OL5en0Kb_O9DXp zsDlFu0%@0_bALq8`amVaVf+J`EWIsE4}g|qv={CzK#Kt)izNk2ODCOMV>1NW`%yjF zfiN`y&|O&<_B_we|EmmV1x=S__oI$PK40@tcu$6|U1ktW3jhx#w|2JnJNnGB^N>a5 z4$uP8;~*w%dgW4r6hJ|{q zYrxaes5R7RKPw299s^Ow@c?Ske$)xpAj;f@J!mN>%0|l@L0V2j7C6HZ+WbfmWaMOY zt~#dow+>uZ99t&*VTk6W7R@221U?RN0No){F{jBy#`NqOnX)wdhSva^lQJmO$^h0X z8aaNgPJai8Oet+&EWHfkjTCezwPdXGdStY@ytY{S8d22xiKedQHNY(FaC7Iq|A_P* zmR|>3S)fL+1zFA?!2;ep3(gw!SZcu*3~-m@7@coM{{(?lSHVSPS$qoM<4VDL?8tZo zURg~pyHfYqf!Z*w6UcW?%fQ~nPHQ|ZYF4F&41Z+y6sW$Qt|cizGEA$6GcQK?Zi}>o zBg{i>h(Ov{h>h<%?E(rZ7$OTdx_4jETX?N0<|zg>=IGfn{S=UK`BL@JXT8Ov=^_hA zhci=W4<5PU0g$!e5j|+1eFY*nnHlq@1OUIF;5ldnG`gc0ePml1JT0JiBJM_zZk?a0d@~XXGe-{QQ27^Qn>17wtWh#%K#v5eZO_ zoMnE?J0m*N7yvPz8)aAb!^lop6Xi9wBPmg zieoqfR9GV}v!EJ{tRgfM8kP3~Led9~E983sk7DguX3;wn9;eO<1U{$N`K4gCzJKaK z^u;JsNR1b*Ah`pi0<$NB7QuG_>d)7x#>Xx}FiXyg=gQvYx|K; ztc@L6KxHtDbOc^e{m;ZD1$e3FqJPkk4l)*1>ylaKXk8Mm3IvZIyy@st1h$TNnUH!2 z*=W%@BE#jWtW}>Ebp2=G*Jt59D(^v(AMrwnol=Vx(aHM-wC9nvL9`-t)Y0!E+d2hg z(4E%brgKE*u{t4ofx@3f)~TgSOF2FEbgv-~fS%(_%7MkK@GfG;;#>7<&VN91H6Q2M z!CC3~k^=aPMbbepkXE);kpQ=xXe`b|3(Hx(lMe$#8a>E(Nk=plWUy4^_*=(TL>e~P zCnN;#Ix*7du@+HY9W$ZXW$A%X8OwMovtn&NAA~@IjkythzM2Ij9WxxWdQ+G#gS5Pj q9?3@J{S3V=9itty+WDoF@)ZwJQ;9!+*aw3E0000AZ9)UGN^HLjnmeh@MEifFC0gf}9XVaO_|8Ldw`*^ApZ@vx zpP5_WuBbQq{^0g2#d!W-a~MC?1`O=8ROA(c8=>3P>pN zZOu3L8U{t01I%2Et_~`h7#Bd#^DfccMg`2Y1Z)HHz5Zi|nsCd(0zg`27E8*sC%hGz zZae@-f6Mef@qd^mqabd)QM3WlMxm~4aC~>M#Cw1z&hCd2gR%5tx3CbPymq_WIrL7a z(O-~^;*W_Xg*b4&US^Hum~VCyU7Ur>YIrYrlmPQ&Rn>|kupH7WCC+qB#%RF@-a7*N@$NZTpgCVm`1 z4$OPy)*5KfM#c6TOf~VqegFp~c{8~hycSSN*$wkp04u$&72+`-xFU(|GZV)NWZkVb z;9*>c{!B+FleMbeEQzngsz7%Q7?YC#Ynp$%_OMwA$a`0V9RTJQ3z*g$018fz;|K?2 teef?Bwj{RRqPle*Jy`<%6c8Rx;Xi(0sYBZ|WKsYC002ovPDHLkV1m^$`r`lq delta 1035 zcmV+m1oZp31e6Gn7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000BVNklrMnA421{d`@iz|!(a$<>5cXj{gO>|bY~fQIFy2x=Xu^o$@_laqLlLUbxVJ} zl%oAe6@42=?Veq`jq)f3kS+KXZou2;yot|~H%ATr^Q;A1>3`e)zVGwCFVu5rQ3+r* z`jLY_q6T&(iktcH_z?8qQ)oy2O(GEsfHV40xj~p(jyu3joqVGUhy-xM=&$ri-%Wz0 zaMS^A?9AIla&#Gp1l5%|tAW|?WD*El08#djG_CAJlF22GIRLimi{`@Gf*)T zfOPbGb(&;Ea(^@awhywn080S7x_^cG;GE!VJJUmG8LNq5Ng#KpEmNmfGPr<=0Jy5p zUOQNk%>~E;u(JQG!CyUBhW5`0tph{`-)faIx=-r@=+l6!07m=kv+p@bI@n5h*(|>& zO(ih11tYtFS^$!=>F7O_k>nj{&B`Q;Gmr#ez5e$^(|;!Fvt|kQ2=^&~QbQm8eDpIb z!AUEa6vskO23?MXA!D5kW+RmV`cBShxoE%%z;h&N1w?5p`Y|#%0qj7wTI9CPPzgYi z`Eo}M<$e~FQht5r=-O?VIl!)?&^xlt)Z4)C1eSdo2$=%3R(UcRtU{wKtd+p9RRH2NU=`p@(}24G(53;({jEkf;xv%1 z4$xxd0&P(0yx!i6y4#s$)VG8Rz`7=&p%noo;JajS)^0Qx2uT7_6DIETbOT!fP|pHL z(e9=9@3%-Ut;ldrAZ!^Z$*MISc`^tyt6#MR<$s)jSO7@M9=QOASt6;~k3j056=r`J zqJew5M$0NWldLLM4lrvsiVIx*cLAJE9aR9mcO)Z#DFs_6gOU-|ilE-}cESrmrz(TH z>16b3+jC+yu(}>4HW&vuf#k4?6tUy%N)Si#^`FHl990i^gORqbwyObSWBR2fLrfBu&4>IJe>eYr_5tXne~KM zBKxfeVCgTI-hUw;(_|FHZnugAAZrwA6NBZejV0a#Jha7TC^49VUhEbo0+d&FbuowD z=zjDUBxm;9#FCj zza4-B&U)p-8c4>&+2R^ZHS)k_08dF>Gr1b<38-YOhIveYxn9)@@fZ(WkjC~Ii{$|F z<%KoiVY?3fk*Ml{O7?AhDKY}N={flZVFa;)^0{yH`u(ZX093`^3axSK000000NkvXXu0mjf D91{lf delta 1060 zcmV+<1l#+<1g!{=7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000BuNkllK(03DI zIdD~g8yE97lDMXUNZ_i{PBt+5n@j}RCP0+@Be|6oNiwN~n*!`E0J4EcbLp=m&4CLu z0!VlNsYR3Q$ba34zg>eYDzHU>Ro%aWJMkUkYZvnb(K1#O!-BxwleSEYT9H8oObD>c z`s}rX8M3JWn*dhwpVj!Yd1V;?2%&X=NaI^&Db#aX6+m|bM+rckuaAD;fnzS(JfA0PFn!B!4tx;?6aTu_+vP0h}5-^*;5U z72%{6Opaoq2ZKji!jNGd3}!l?t>*seZkE7WcF>%dT$`N&xGcfCeoII0jz@gQIbysX#~&h#D~Mx~ChkBmlP; zKnm?ydVjw~aA}1MeF9-=pd_l+ETpFqMp8c;3x7(VfS3SC%%)Ue2ctkza~^@TJ~Nno zF+_vi?iwv-!I>nhm?^+$+$bt=_4fjH7L}?1o<5O`08A;^IvAAfsFnovnYSan5ad-E zT)7kK)sDv_8<<^>A{&eXctFyuVudVKK_~)fgTYgIH^;b=6gMImgdhM)%Jdh4z8(++ zuz$qtET41lUjrNgtZD+(;S4Gw-2emuB-Jy|h{m@n${@~d1c*xDET^BrN-EnnFb|@0+s7j+gW)kiG*0YL z@1`0JLvHbT>#rdlfdi}XdfIUz*|6WzZ0LI9$LDHwh{cL6p^-`M6lpo#B;m~VE-ENlp>o1lrKd@HZHg{ zT6}M)nQU_pFt-5Y0JTMQ`C3Qa_>_;C_-c@Je%=CA81eTDYCr{-={oqEG}7h;04KxK z0>xly-eWzG9e)k;CYgp>E8tH*(lo&D9XyO;h2kH!pI$46y!zJNUCd!F*1fHA%F&<_ z*kU0sy2}h1ZDF!OQd_~}O1*GF(E_>cR**AWQc>X)_H!5!3`&8rfJPi(QZE`jrt9YL zBD%P~pAHnEz69zno;l%8$x@~0xz1rXYJWt92bSZu-+uvmUTz0VwUXn8u2c;$CG&S| zpD70_XD@;?U?;b(Q=Fn2U`1xr$lO^j!HkAUn{?Sy>)JvcQU^sP4zzZll_zr`z{bYI zQJGf5&C53YxBx7x_0uOn_MCmWx>?EBUms-FDJGZ#nuD4*!^Y|n9Ke4`(w5j=r^D<3 P0000A^NMi%Gu-nCi0wE`Xw`e3c z%E+eTDt`daGBCrc<|E_Q3Z~)_NXv^+Xk{RL3E&Dul3av@Y2z*cl%Bxs()8{%b(_1p zg>JX2iJJgC>mxV0-bu2ABmnBY0JnHf2Cb8iJ{fc^0p62A&ykN(21Eity4^{0GWe5F za{$dQndCEwAWsI}R{;?dnhAFSjG%P}e*zE!@PD2Rz5ulhgnBR}8WDsFCjjchA*;{4 zdKiO}T60F))A#SdE`10w)URxY49YO??-0BITMMEU_IuQC85fbWB&n%n!& z8VCWbo*LG00V!4&nO5Ixs(E5Q0ZKP}SF?lHGG~*}$%S*wC$=7PiAfDR{m`>ns zO@F^b%PRYw!QFl}>BmT2g}m$xx|aY1UW`!dn`&;kc7X3>jSF|8XT|G;pk2#=C;?J# zgX%RJPsjVR3~Wn)m2Dx|q4&PWzoq!C6hh1av^s+wujKDW^{i|8q9@??Ly>5cAu1>9 z-hGerP|B)}tu2J50CtIzP5?c*6&|G~uR}g_v(ImQ`)h4CcsdD`jDF9XMydUQ(XPij sFLAnA3D9)T6srJBZpErCMk^8g0mATZTRRf=s{jB107*qoM6N<$g4uwzr2qf` diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_13.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_13.png index 165b0635a7c309b534db8d4066155aff0180954e..41abfcc610c4c9f798f46018afb35bf2a1b77696 100644 GIT binary patch delta 598 zcmV-c0;&D}2;&5h7=Hl(0002`twPcO00JsWL_t(|oK2I@Y7EYA=F)W8Kn^(;_k2nH(3B zdz0DSkKg&ucg|seM>|0HKE-{V6`*ps;Dy5!kWUBYD?mCGfPa}ErC@*rfC(p<4*=>6 z3}68mcT)8a0IOY3sIzxO7od4@(HjU?PN1oJQRGheMN?G^JMBC&5@=WS^MIH-5KU;R zcD=W0w-gXpk_MU#`x>TuQ3BAmKDt^cq-CrVYAH`cO=3?#TXP^D2+2%+)}lrRZ5J~D zk+1U2mE=)PHh<4Wwnv86<0p3>jF?_p`?5JXTpq6XdHIR+YNH`A7`(B-gSZ?*YeuSo4%wcmPmr~m}L%m zfhF^V*toA28S~RZpl6{YRv>0+Z#Ead(>{%&mGRuza(@9P|N;HZ|5oPnU-?2Vqm6s;7P zcfulJ0wctRfJ(%K+eZdm=vhffib;VJLO(ujvFt!&eApIJSS~}qqpGb|Usco9ArUKZ zdO3l>Bu|7u-$1tU-4Ssk2NIbqg{uG@#mEv+?J}jiol||Yuex6n(=_Uk-hkV7_%Et0 kz{Hra3)G`B!Po--0Yk#WiSKou_s!G@vB4K)XH9^FB(v@82d`Yd@by%-36M z+OJe$?jzLi)wSEu9wh;)8NY*T@Nt|s;mfn}tj2#HoUk2p-+$ltecty?H4ZIQ1i)5* zX5&NXhJ{FRGya_TlI+H(U|jh(kwi=Y&g##K8;Gfey8_%a$v3KihyXXN{*F25yNR$A zxGKPnlX)9ST+_fzpsErl8(2M4i6CqOM9F_9x3VKiC6#bf0PX~2Ht=dJ^Yu()pu&s* z($#-z(j+UA8-MYSb5KPESOnPB{X3`w=NMl*nJ0)=v6>hb1af!UDotuf1r;zM0GIXE zYX=yrsQ{S(R`Orf_}I8A^nZoWIzXiHt+EuTolym{yMdzwfcDo{e{&$2U@PKPll&QF zDuIRA9Ow7Y0fC2+MTFoRMg(xAc)Vc2#sXJRB1 z$vFd{1(!&fDuZGIWMcMeKR^qOJIFLY7|ebcq5-#_&h3+QQ%6%4-npbKDsc7h0-){T zet(^UPY4Lp90{`y2A}8OGA(w<18ehkgcHCk7#vqWR4_V;%x)l@0G^m#z)8bbsS2hd zfHoL}?s*uUdOVDRXcb67fGjD~C&mUT2w(|LB@lY|(~yn;RyBc>l|U^b-9QQgNK!Ov zd%wUDP5>xxpFgkO^Nt;)WR&zNN(Dj*uzxasG_+}BWX*vKlmMPv!5NKjRWHamwiUvU zgza*A3|3M(Rt!CezWRa6>e>GJ1j1v0Xq;G~-iK;55D{Pw*0{(L=tUTWb9m%LFj!sz zq$D|Qe9jM5pu;U*L|78QOSUq|VTAE_O1FE*OAW$kQ(xjB5pGV zLlj^n^BB)6E3i}pkN}vWv;klwq{O47X3#ShM4#t+j14U2|CkHVtp1ZVff>~Lz*xfd z=m%6Hwr~mQV}M9V$?BQDK_t_V;6DOnmH$W;kiav>u~dU^rc}NgO@3#R00000NkvXX Hu0mjfWvu#M diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_14.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_14.png index 3ad1f1c2d64d6f0fb0074f9b386f73402e7221ea..93b0dfd43aeb5f397a5e1c7cce9ed0cac6bf03ed 100644 GIT binary patch delta 590 zcmV-U0Y7{{fg}r;$6i~tr+YJZ>s2f(}s`XhjN0}WUJ zW;|+L0PtuK6yoi@VgS$^jfM@lb_zX_(YW;BH$4#<+m81raL|wBTcfzWuf)+483b?L z&je7uB#*^S?$vaLsRQWS(7IR{t4v!D=5n?YaV99BFC}0a;1=487SXD?cC`Rd>bpAj zC1pCNUY>2KoqwsJN53l5o-)1q{N~T@Btl}+=tpKZCW`p{c>5r26k=n|`t>j8p(M|t zb?eEwS@tCwy>#z!6$jHoaj}*h*1OY9^bct71cgG~=;rCC0EWs!{<&UeU7}uLTrnxJ z1}9cs3DW}ZEGe2iHjgpfZ!MODOe?xoR`5dGdKQ4YPJh&;H+6K|ypE)`X8c}2-i=jB zh_KD_ cBzg<~0hkKAr@_EU=l}o!07*qoM6N<$g5NnA(EtDd delta 1144 zcmV-;1c&?E1c3>V7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000CtNkl7zxnL_ybad!}q)i|D7DXs_~y^O@G*d`Pskkd%o{0^&VE3 z2(ViHm5q;K7#1VN&G->+&o;z5fn+mWA;3fZEjlX)Y4$n^^H4l(!e6L*!HV#yQ>TV#E09bvU`YeHFg1v~> zP4Z{7$pm(m;L0jsCV(bwie1B5NzsP3>`b~S1B(FO`+xsPSe|L;vf%eR7#l;l3*h9? zvGdqDj&U*h<&bzsdahzs4+h)B02DZ#$a7Agvs$Hw>#71FJ%L`Bje!|wr!Z832h00Y z9l|%E909CSDG5j^Mc}xZaSbO>tlUOcjsQFCCjEV1^gI;@P-CrX6}z~g6HElq_&n*V zk&XuqyMH>4xd7@K_#NzcXSntQ?9N9`97TfpJbbp*XYAZu_wTwJNO1ukexB3KJNtDQ z1U}F2#>CFAuyP%h47@`q0VETnoygf&kFltGP{*-9t9$KGH5hCc1nw{gce`LuGd2Ww zH&7L61UT&m=2go{{BZBPyS5V{!U+)J2BeVIIDfPfUeOJ-b^+XAkTVVi$?m1gs)tA= zfOk%Sg7$jL)^)WrsiXoa#h}QXfb?G6oInNRd0D=X+B*F?M}fG{qJf8 zRex0A>fZ%mhCi{b>#))(lxYd`4hE@CA*w=1jd?rL32-VH#AFrQ9YmnA8%QU>NnmyV zs7daU6)Z&nYcROGK5}=UQMC*eC_#WKTc*D;HYh;=Pf#l0xoU4hIRbd)1iVVP5y*4{ zB?thGbEp0PL_fz8sDpO zSn=H`q_>3a_Vg=wNhPcioFF{hUW@(SP`3|27y0QKCFDv`10}%9P}Tr26V{$WPVM1@Ay2xCFa@xzey;+N29ge>@qPH2Gd}zqj)!$RdlTWW z&jYNWB`fFJ9Z{&?HFy)@k07wB{6}U6J+OKfPS$aphug*zHHM$5dZ{{w!w`Z10000< KMNUMnLSTYHrwQKx diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_15.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_15.png index dace07e837079e675d4e68f82217f27cf94784f2..64780d71b3fb7687f0c0a541ef009049cdcf02c6 100644 GIT binary patch delta 589 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 KMNUMnLSTZFQP~6l diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_19.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_19.png index b6e3de1acd2fcd3eb3215288e06d304d9130b170..39ce8407618ade2149ef19fd6adc2a75bd57f6ea 100644 GIT binary patch delta 57 zcmZo>@}3}J%*X%)zt%ck0#ZVrE{-7;bCMGzSQjUV^e}y5U|?}zVEoxC_#LFm)78&q Iol`;+0J!ZBg^|cn)l6tUs@i>@Lh|Tb1^VH?rKiA(pMf*kKOiBOZbD1`FmRk_zV- d3I|%KHZ+B?e)o$HIY19Ec)I$ztaD0e0sxHPOo{*i diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_2.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_2.png index a76a000224fe9a1482500050448c90aced435ca6..4ec651e93604bfd9fad8203693ffd6707039641b 100644 GIT binary patch delta 707 zcmV;!0zCc83(p0R7=Hl(0002`twPcO00NdtL_t(|oV}4js8nSbhM)hRb7xLAG>1^S zS};c=0vF{@7t%SBn6!`r4={t(&-Y-oxt2|csTyqut6Eu8s-MPfR-(VmJMl!R+x>6S`|^-( z)Fykj9a;aXqQP|y2fe-p(&C`QRgN+>KOw?O9;sEdq$|C?m2{?l&T-WOTL4Kv{9KRp zmLm0*YJCe_+<$c6-Psk-l03iSJOeSf5BLV~ylqxe^W2z_AmB&X{eSB@KyKVd3-E58 z!}vb4_H1QB9BxgH;0_kh#~<+u)&p}2YmE8j#&~lVU>XCG7K-RV8I_~rA8l`0fXWd@ z4qF7w#?}}!#|!T*V~*pIuC*SLhrs;9zgRzk81PFA?|&!Mf9e8W7mmTY?=med>AX5c zQ?>1wnVC$#e|@Z>UfC$_HN5Yc^7v%eLoRp;6SQ>RQS(k)60WKMU6dQJf5azkn z2Jm57*==cuZg!+mr!QLrp*`_y!J1OV%b`6xyZ{5hme|C>-uhP9Ko)xTTC z;$kE_bc%tg>V_b@@Ol@U#%xK9GtS(8x!4IFlso{uU1{F^_XN=CWy=k9w5YUpUXtww pxq*-uT_aBbi=X;A0ndRP@Bn5=HvpuqJ~aRU002ovPDHLkV1lC8RI300 delta 1477 zcmV;$1v>iA1gy# zJ1c{m6L~HnGxsX^I<3Hivv>&b$MNw5xO<3RjgKclHE`~+dVgM}Oltf?fIp7g6W|H) zIozHAD?;mE!tDw0M1UM_Pk<)^TTL$3%}SV^q&`9b?oJ=WV!UZ& z?(^Ld0_u|ao_|4Bh85chKp7u@A%q$yMGI{$4>)<0Eb0p?cwEHmrT0;dtpu=oKJ?!C zcbFgGmj&fzZ|gingKJYpljKSADKe}g!Zrd}jSoS6?MpgWGsd?ZHPm`qM6*Kkdbmy{ z3ARQ6tAV8N`(YArIe-=3`Pl1Mc&6m_)w#{lDqw;OuYcaT(KFvW4wSF2b22UCAhP?^UVJn=$8%P6FQroTcn+`|SH8fp8lNhKEua$c@9)PHB(OTUVjT2R?jfbuk1M>>I$_fT{2 zGm9*bUYT}qcI}Gy&-GI*Iv!5~IZV%{ygnPXpr@^H081Im&5Nw1$&_^2+6Zbb=WUc6 z$nuJ=UPLb~npMfv5V7TDBLGI$Xp+b8?Brp1FQKY&8v47oBZKS>@6o;!usiU4-0z?+`D9trEGREQN zSCJq}0K8X^@wKC1f+aw6L;y+H>3Y@zZ%&XgW^@i$)p+w8^B64xKxmu$1QNh8+PF%c z@KHxSlRo3*wx;a05fNa*v#{qZJB`X0SOqDRYlM(ws!ls2z=XxiwGyoA++GEbVSjg$ zfLeQ{@mm8CAflKjBHWn-k?|FX62PPD*Q%07%SunfyYDf4-$KqJNvU1=Y!#op^nYvWoOr6q+cUw>Fd|ADK7v^`x7UY)+?B+5XM#KUUjDl$Ow&Y$_Y zbq%;joZDQ{(<||o1j5a(JmV&^FP4j35h7p`;K=A9)ColG^{WcdLb(RcV_@}A2`x8) zM6duK1vtX2CIWQ89bn7Ai~^Vhkrr|#yk#pz0*VL~fC*=Gjf^h8%0TI2!hbDXNiHEG z>qPal=w*49=?+q|q!v5(d?MV?g9OOjJpB@^5a}cVwE3E0C1Ys%Snf_Ns5(l22#{&? zSmxY`1QySh%0>y2mvizpT{2kmuY-3~5LKX(UU=?XdH|jX0LM!XvFrW4eIY~~Xf&!P zl2kNsJi2*gM9+6`$(dQJ0zR(mU`x;6`@Affxey65Ywm{YHc%=}EE}7DA$o z5u)FgCTlth3Las_6Yu~?Yo3680iGlUOP4M!T`Z*_bQ>tvQH&48{McFT6xQ|enYs6V zz5@WPr7lDU^A>=DwEO}j^;sxANE-5%vd87G7*rv0S;)`BuzyLywwR>EU=hPQ3GY0f z>FQRTN>UpgP8H?UFl*sVl6KKiw7Iq*_-$%37X0Ejtljr5_dYmY0n%m!@)`K2zX^!Z z0|QUSwiYbhUPB^eeBeDDu8Ba*HQ2}88rW-~*^NN#4(XZ^;cC(8jn* z!sM@n^X|G*FW7%&zWh~FZYvyaQZSR2?mH0mlFV> zrL>Pg44|p+DJBKlx%TS^Njb~;`brOynz*G{@##@7?7m%RAO`q1zb>b<#p%s*u0BqP z0p-bCk88$mnN#BG5#zGwOv7~;84I=*ZWDkQP&=A5FH|wx*HA>75a~+NMF0{U)o8ba zdyy*^gijVV*Svh}2&(~0$!d-{YB2ENq1qjDRN>x+m+qLOoL=OM14j$s;XgkJnR3`C RI!XWl002ovPDHLkV1nyj+)@Al delta 912 zcmV;B18@B41DXer7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0009_Nkl6n z0<{Ns@=95%CgEku0TG}z7S?c>QZcm7fbEYqku6|31#p#bF^L<;jw0?|O4dpCsQ{c& z(!W3GoggKlw=2OP0Y(n7u*9qIx}VT`pa1Frt%0>8LVwz5qx!}z_-_iRJ9nuuYx5R^ zTOOy{marXCNJQtYxquh}ZZvKSt16(T0Jlb*HHZ?Rclb_y07I7ko>d#%q_n64EQdp} zXjdU8b^gA+_HVal`!k470niHI=(^P^WwtrBy+_;m+RyKyk^`KOV0C|6RqP34&G;5z z`ee|_oPP|-H?&}>FXrk1J+L2}sQ2A`Uaf>l`Qo2ga62+~`*Zi9Lb zz_FpTCVyCk(cbPR3Drtq#aFhEaeg~ZylUe&R25)nH!tM65n(Ju*%!3?r$T^H!RBPS z*GB!r9@KMy7OO9ejea+Byf@j`Brf`JC>D@)J%1!WSULUFsM7BYv`A})04a@0uv!Mr zK1z8Cjpe5X2}B97oAhDw11g8L$KN6!Co`1;qy&?H$h{Q(uyO{H6Ji9|8JzU#;}s&; z6U-?<#V%nuqNjDdwQ~|w5FxNZMz`7G90*H+O9-U7wB3kG@f5%bxB`p(A4f(r2G|3T7=Hl(0002`twPcO00Ey#L_t(|oNbfAYTG~%hChwf#)X3A-U_AN zyg{Ko5(F;GqR&qY+VnJbo)FqQFEL>v zt)z9Q$l9ludK|;SxG}^4&7g`^&&vy4)=fhg@Y=J#ietDB{^8D=cm}XrzxW<2^1OWJ zlE{$BYAGEWLw^jY*h1oiAqIRd+*4f`@b!*0&{30AI52>#zj|D>vzI`hA3DeFGy<4Bp^*C=Q1l^WjqD;>gjqSB3|{iXvuPNc&|3bz;|e@4G8XE`J{;6uS6g*TpF(_wJHK~9@6B>p~9 z07>x?9N5#a%t993_`RP(1_mzt119|#RG~xu10mX=(c54Ty8r+H07*qoM6N<$f&mcM A0RR91 delta 884 zcmV-)1B?9F1OEn)7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0009qNkl=R zB3f{spclYSWMqI|09n{Yc+>*eg@jB{3m_Xi2#{6)I|LsAw0{CX0lN?>1;8G3Bv1+f z4a|b16999t5kV&aRImz@N&u`uMh2At(7`BB8UZi{mjN^aU;&#@DFnb4R3=aefDKH7 zg%d{_?}0Yqfa8(kn(0PTUy zcPNvC6aln^x5Rshpe4NBN?y(FO)e0664-zE8EjADM}H@bNCadf%mHRWZ!@kZ$x<3> zt$#9DOa7Z&0A>+*I>C%|DItAH`7-|+Ap*Dyyp$M?2%eJv78eLv13b;bzD!8pfe>JH zgqMI7S#{R=hz#A`1;R=|TidS|X;<$UAxaFp!o38{wtl0sVCmG!&Y%^@yo^dO0sX4| zDi|X%X@ADGIK}Qag&`e5mcy7UH_$8uSM>kw+%=>s0eujpZCsWQo0SDE`E0FY(GWYp z$O`Z5`tEsa>-Q7)u;3&=qMJC{1s<0GsWAGc&e898kYu6f-9kh+akKy)F9Q1`TuX|YUg7n+K zKA0MkXTN*i0FD;2%;yB@0w`rnp!Cq@N0hVKtVW17u`B;=UVcE)skWpu}$fS^Nv0ppffJ&P&n&0000< KMNUMnLSTa8cYE;w diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_22.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_22.png index 657788f2b0ca93da8d4d7e875b6899cfa0ef0267..5b8635a5159eab7a45b43ee210c26bbdae04efa9 100644 GIT binary patch delta 430 zcmV;f0a5LYfKO8|O z*?~()m~{xc1Q#F}H!w>Om(n6Q{^=5Weg?nBf)SFQiFN&W=}sl4Afz~)dR6Zx1ps`I zdYgHUBO@J>hNa=tmt)B%=odJhwh72qjV1y4s!=7NST%|SRDY{Ro`B|m<4ZFOM6v#H z48*`e_lnaJN94)8M$e{o6Yzx7PSZIm3&aCt>{m`&*dlL--mUdwEqb$~($py9A=aJ3 z$*B0{e$H!L5XL|}%;Gp2@2S(zrMT6{E(t{Os{GoGfdEeNQ5wNm<28(bh_~mQbZiu# zs_vwAG%_guet%AktyJ8rlXjz#gI+H4_}ymHH!r1a(4(}Uj2F)=C<7IopDk)^16Cam zG^j2X#zRk>0+HgojSi+ivY33`C*o|Nk<5ibNyWV2te<*z;1U>dA#!9te<}oKh-@T&4KlLeAOse3tr& zz5qsf17|6E08TO^Li7Mc=@js&0XW5kNKpe2trGyG1>l6nM}H7404QPykrDv*Mn@7Q z0BB+ck`4go#zqt!0H|UGlL`RVMn)DD0O(=_lm-CC#$^x<04!nyl>z{^MrG1(^aXfn zw25OUWTh0EO(XCCXpE^%7#-*N+uPD6C-5y{D~4#y+zA3h3P2~os(~8wo_~8wB2Wwh zXQeg2Rw+f@mwz+B0}Ft(@phX3z7B>cUll9>NYX%no&t~npj7`2f&>6jr=|cL0N?8O z6&wJk3Kdc)0CqOgOk7JN{lq5%C;+7D#lOU)oU@y$h$#RAz^co$%??0+gb<`c;+vyqIl5`6-^O==D7 zMgzQ-(bndpz!jPRJC|;2J&%XdB)C!Z3Gh^Q{gcH^gzF3gVE4^GeK|s-GKoF`QqoQ0 zL{9)k0~<01u)1lCXZcUHy$3Tr*vudM9!ro@jNb@6S2i*a%Z0J@MYvu@U5Oo5~ z=#$|qTYtZ;2AfeS;0l08^^MH=Cc=LmlK^!E%~TSi@ewKD27pI{zu)SKx(+5ClK{1t zP4-R!7XYjb84coYUE!1Hh?&5*Jl6OvtJD)xa{v(kHxHyOS<#|Rfauq^t@~=P`!WT< zy6>O;{cfRc?9_-h0T6UT3YY<4S^Zw|cuJLj5`R?!%q;d;o-0Du*I)tw;>f?&%ooFE z?}2?hK$8HHMIPyf(B5%SWLZ$#0q|P!tIyXnT)N#`@@QFCK646CtOZDS`Si??EEA*2 z3bL&LL=2i*U4!&nf08eXo+kJ)z$fZQv#R7v;d<= zy@rIW|18+e+qOf03s4A5uxueS>&JE{sqUAG$=cTc0B4q#7*01cl! znCt#SQuoRnDQIVNV&!voD!urO3c?+QM zW_N0Hu>7wW%%nAoo?MUDt!3vy!9959~3nEhX{R2xdH$H002ovPDHLk FV1mrdz%T#+ delta 792 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 VZhby@6+Zv~002ovPDHLkV1iHo#i0NI delta 843 zcmV-R1GN0P1J(wR7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0009BNkl_Yrzk1D2DXHB{iy!L- zoS-RwR9qWCn}~*UYk-JiSm4qCulRhpG=L@1%;(Mk(FCx@m45+V@%eFM03`8|+H#5; z1H8!K!T^yX4h?t%po)*$E-LT_c##F#08ye08CU~&5Z^-^XTTcZMF&U&M2IXeqz7z6 z$cgx~4I5I%^1M;xW8Hv~U4gOyv-3-#-YoM6lmV!$3ZE&Dqn;ZTm=Zt{f>XSd65Dk= z0?`Sy5ZskD8w3CsH>753ou~i6m_6*xSm0>Qu1SVvOa)k~h>0 zAo+rKu6?WEHK9rX3ZBfRVgT;NmR^nK=mXr=ITSAe5`WP!>ZnofckAq5iOUkuTf!ZQ zpR+@qCF*lHR~bDZngJwULM{HzW{~ECWctRE~`tWeK>o6o?o=s_sjWP2j1` zoVe@*^q`IcUIYvv?fPECmi3%!gqueLterruls6jzNPikO14s?|cF&;>6+Lv=Bw*TlAdl8j1|;OdwaZ^g4ow(P+Vz0ir~Y zwh0j58`%IF4`KbuHu~%xC*e!L$$f4x0m%TKqJJM1v}ap3fK|hLJ9)J39X$)cmVgnO z!bCU0k^!`$pOXGpgh5NU8Kibi4S>{GF6t@b-j3mNCNgRk7#cuR{4)AiJ_323y)4jM zCeEgaEOv{KtARBwQR{Vv*0%!n-#AAoC`RjM057S3@3^xs6`QSTI zQABP8?L~Td?8*}H==;M+K$L)4YF$aab*FCh|DAS82#-(({uux@`l&-iF02KT<`>;q V2rQ9E-n#$*002ovPDHLkV1j}sc-{a2 diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_26.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_26.png index 83bc94316b1b2d3c125a8f82485caceb46a6bf99..75eae29c7c6ecbf38df290a8c2f3dd2fa5d3131b 100644 GIT binary patch delta 413 zcmV;O0b>5O2CD;*7=Hl(0002`twPcO00DAIL_t(|oOP2uZre~0gg-7HASOVd*V%9( z^A;|{qxb?jgLtRZ26TWF0bIBgQv`7*CKeDOraUS9{z%xbS`KGt=k1UHP)phYfC1o0 z$5PdnK(l1{CD3LtYs?tk5|*T~U{uAVw>4}DxWc|IjJ~7ci+@)ZozEEE5-3jvpj=|9 zDq3s_gwrR$L6rtMpy90VW!tr$^c0hN)j0C86m5CTqYdboDS&h>Z8a1c?aWw($Tv2y z@Z=-lc$s&tG)dZr=nNVrAnx9Qr(!Ipw7_sGopMt5&u5^6%5REKQTlz54w?d^fsz(9RhCI@HE*_emMvVze9KXx`Gpi9f>!);;b zZ;O^5Xh)xrO49n_+iDxKwAZ=QG~0*gGHW18i)8G5}NcGsRj1#sE)AC>sz4 z*y8&EVStSv?gn74e&*OSt_FBQ0@-mhz!o0^_bGrKb|Zgz+*C4Yt=qNPh0?;@08&C^ z;ajiQd;BWIV1M|<5Q*f^3aMoT)-R4w^#Bs$rIbQSiB>Ra%nUGFanhB$P4I(>0no(X zyiqrRl=vD*jsmRar0D@z6O4|k0g$UdvwAO}W&p{GWvPCaIFG0pK=OItf|W-B_#S|< zs+bTr09*A-!)91f14w`P-s{~NhuK(Kh#A1!`K{t^6MuZ-@;bOik3gehUac(VM$p^H z)`%FuD{1HM{VooxIGLU*rVU^z{#AvpR z$D#EsT#FfNL$mb!&oT`Rj{u(YzU294S0 zCJfU6{C~TE5;G0l-eL5n%K#P$YrRK44!y$AX*Pg&wOk23V}j%7S#bq0(_{dI52wG z4*HJ0F{B-c9w0OOoxc#axV>B&z^eLthF|Fo8-LbDK^;;582~lV5Zc}mAjgl$hXGbh z9>aRQCT=}I9?p-+KmTnh%&I2%GXPrkAAiW9SDca0Vlfh+kH z0FM4?K>}nUAXcO?$YS8fDv+ejf2Jk|_K@Z9?P5g|gER&Nb$>Pr+5#T{10aCC>lG$+ z`!l+Yfr~*h*tZ~M>qZLr+>MNL<;tZ&;pJIC(JNF-KT>f}81`{!8R21JS7RQ01E&B07*qoM6N<$f~mf(>i_@% delta 780 zcmV+n1M~c#1D6Jn7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0008XNkl&2gZD_4BE^?AGrM3Q-M4K!HbRcWHtc=hP48#L z%R7J(ti@j$IsB1G^41O78Eq?7!dYfzRDm~Q29SJR zV}vzsh_`^qMn6Oh;FbMX#tCCxGi?B`($_0)n4ry+0e>u)chj-y@9sVFb2J8mjN^de z)j*Gj%|*M4fl&}^p!WlmR`5bpS%$g*DG_?IxmNOf%6ERuNcXWixAy}`W?-)YX5uKF zpSqIRA8@k*Se9R@Y>h6YP4^f;v*GeR4 ziz+fhLcO-lE>O?%i)s>Ys0V=z8HUb_y%9(LZ+}2kgEwXsAeH}fF>Dd>KSZ6f;N=K6v`^ zk&ghNM8pGtPTt9<$)Si(2W4Jib07zovxrEQRH$TWod@ZxuYU%L9LgMQ4lYT4*Qo*! z0O^lL<$KXNm>h~et%33;Z3H+RuSG<9_$u`fo<+_((7+#p17vr0K?;`T_GZ>jOM_$dxJ@h0@ztyALE-N0aP)kMy%fhNyFaZDe zVhBfzPiBy@9DS_Y3ITZj;rm~j&(jV9K*jNF5NdgFgDQ%e+y1Vi7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0009SNklsJl?!n(F$QwdusN;Mrs>5r8x7uLQ$vBY!g=fI&6@wZ0F%9vaR^Cds8> z4#@z}LFK6PLw67)U62F{>l?kPNtZ3A!(I92=O@X7r=Q>EFQ+HXK4V5tsVwQQi!>?M}ef7E&-MY3o1Hx z32Dz6_Rq0A9u!Pe0-@Xq4>=$*+pphkOQR-+LjzdtC|A4giZ&y$cM4V>_{jkxb#Nv0 zELyBY_FC;*@y`I<;#)UUf0zXNdfMtb>wWI|8h^lB!#Qb<@U(Gwl@hztoMBs{-k{Cv zl=$8U&U^c3sDDS$DJbiEHt)*=L%ce93fIPctix~#hcA?$d>UkQIws)qar{l zzvbTk_oKhHqW5O$0I<$j%t-xA zIPW>a_xC46+#HF(@ME zM3Urt#b#{!?9WYLp4{3j!$s_thDV`?9kG!&3jw65#=Ea1wTjxnVj7yJ;%Vr~UB9Td zgOM^56~HRmf%C`7&W)yS9JU%(xtR1#?L2dSH&8gZUX*Klc>o6UrGfTqSxWaI3l81_ zQ*V!a50aV%UVlAsqa9wiJ;Ab=jOOo(F!)qI{Y&08+~1Zb+wE&d-m1`)?av$d4aX9Y}N`ZCx#OP<6Y&{@1>i19}OZc;oGac0VOqH?tJcwYFZ{~soDFw1wSM$Rd3fpF~q-p z*Me2$%QgkL1Y4fn>%hqxFqw7-gpv}bhdua60kfj-F*^7zp>rR`GURtVqR}LSH|@lK X9C@Xw!FkJx00000NkvXXu0mjf61n7m delta 944 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 SGO+&u0000ly|3Hoqq?C7?>EOF~~ekKNv%5 zXZSJDQ4Dkx0}YI#mTETingWl;KSe~E9vEpnpy4TlB53*y8%904YlcC|e+xRUR22p@ z@;k^i{?QzYh;_zdb6Er>qt(V0Bq*xpF87W6SGMq9N%+RZ2Zm2F^Fd1aj}Msx8LVVf zb*t9oaBe5HGk*#wZ|L`>6-eO^rvaweo;m(S56A%T+&KxA6B#2)Z{wLkYk1l6CHA$T)?)%Iz@le3H75PE@Z_!C*zdqSufC3gwzzyy00000NkvXXu0mjf{|LiO delta 860 zcmV-i1Ec)I1Lp>i7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0009SNkl}YFqt`QJBrngEk=ouw%n}!F>QAe}68n0|5E+aT@^0x4~rq zAm0vm0f2m4Tm=B~?Qs);DDtD6Clwa~*sW0`u{;2fzm}x|fc*6=3jpN%U`YTV-w*$+ z4g~2wnHqpnI%PQ(LSj!&6V?RYB1`EMx!mnnvdj8F^$KuZmsn)0Vt5ZibW{US${!V1 zRuP0?9%`ciO@H|*{jC7Ilv|Ie1b`!-BQxjxyFEfMhviejJy7;-7!JU!tH1Smr~>+! zO$6O=uI!fZNJGU449x>@ul^DFt$kOI5O%0YCVhZf)LX-qp}POIzzAU+lUo2)K4%yS z@j8eDAi4V9{-1_^_4X<8M;Th|5GYawnEgd1_j#`Ta+@8*Y4I8W3;EI+ zLg~371pj%w1$dSZbm#`a(-l()*b&%y;@`v-;oMx;vT-a_it z%6PO~1%F_5BfN>HED-5EqbT>ix54v-A^;w~yw*9qJ*aBQZiPbQSl;=hqL2!yWyH`Le9 z>+MSMCsvbf0+14K0;#^@seOdq*dhR>yk04PDu3~<387P_pv~V5noaA+Da!wE{jHQ< zhbgjL3PS<#cE79z_GpFV1lcXNxCKagnke!X?pcTf;I)Ay=hf>&oG>bIT>)CX^&TVT zyB-bHKTorB2t)y}xL=m5gSis8!@-ok19VD%K(zw&CRsGzA(VuGxEO;)fISM} zTvh$O4%XBD+OLAu$EE!4fP|@Tv*VJpv8H| z?UXk5b{o*b&Moc_*l8zL7Q#+vd!2SR{s22|#B^Ti4-hsB!U_uJR5ZAgd=_42CWBMH zdER&4?_&Z0GZCo(Km$HY$xx9^2VW#)sgS2ak$(y%75-a8>OiRYqb3
?!4$7OGN&iAm=dj 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 Vm>|QaX0`wT002ovPDHLkV1nc~ewqLP diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_22.png b/assets/dolphin/external/L1_Senpai_128x64/frame_22.png index dd241d24ae578441ddb0870387494b574909677c..21a72199409a69e86d234aff25f7871eb64f5a2c 100644 GIT binary patch delta 553 zcmV+^0@nS`2(|=}7=Hl(0002`twPcO00I3;L_t(|oUN0wZWB=uMbECS7zu=_XzedR zk!VsN*?&NVsE|@prldh@e?dOM`3$OL5fbSzqM|^`S|B9_ir0kTb$0y@#V(1HnpYm( zJ9lQDCX(AP=Klllf~&jWYy$*JAhtjStXSohXT;4`rT6V zw;6lrk%pe9THQ~XVMsL6i3W(kwW1+WN9=;7g}PErqm-Cx)dfBQJuJ$hAL;QfRjUG+FiL z^_Ndoto$=yE^DGmj9ec?ABQm&tL^klgQ67Y&e!wWVjW9(v3GMZZSqH*myhpVgBa+% rN;ef*KO(x=;+CTIkWG+6u>t-9nIF-V*J9s900000NkvXXu0mjfU=s$M delta 1093 zcmV-L1iJgS1kMPM7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000C4Nkl-TmB;NUUqxyH1B)8AVfAY!<;+;zC? zwBx01-<`#ueb%=101=X^7OTXkvw!57lDwd6fR&w1^nWt`NZUUPYT>@M43=I$f_ntm zErGK(UhBLg{XG93H!@JF29P{xl;|P8hKKl)*K!V}y1M|aPHT$p5&k2HUlVrb{=s|+ zh!o*;fS&;H9RPkI;YbS3OvwrxjVI%@X4WHi8N9(Yu$LOp#xeoSB zm?Gv9H8^IJgm0_u@X&SeDxxnhl)NxS`;rErFTTe36b;}}1q2XVa7x~8ZWb?n4n=FM zK7Sct#jKB-PxPp@yCnRq8CoZJ+GF-g0$1F51MDSw4ehe5Q7p#p4Pedf*ByjUNUnEh zFL%uJ`S*X@9FhRU7Jjyk(uvdBF|6L&s$A$$b`T!m|HN%odpU{kiZ-cL1kILRwTNz} zQF_aUM}n+kfZ0$unm~s36qvj z(bBEFjB8{m=vKHGSJ_CB>=ZQUjfcnpR5&R+&t?lOud7=oVCMic!qN9~u9iohDLI_E zJ2cAHm@Ww6zN6Yxv;@f4rTj{@6vB`Ac0Mfs ze1LpiDn)?&XGeTHh76!R1AB?u5q=$RpAh18`EmG+`)33lv3>af1f^M}*5Q2S00000 LNkvXXu0mjfHuMjp diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_23.png b/assets/dolphin/external/L1_Senpai_128x64/frame_23.png index 944bdc74e99bc530de3bbf37368532a2dedaa377..fd5d53b27d1748b4b73f8edaac4c478213cb13ac 100644 GIT binary patch delta 732 zcmV<20weu_4Cn=r7=Hl(0002`twPcO00OT`L_t(|oV}4hh#X}A#eehd=#F@>izXy# zvKuUekRoD0aL2+j5D62apt-`%#zx|wa66+sfhwxhoU{9(Qvh81Nt`Sjx>L zhgrSI?JO&IGnsF`XK@h~tbOJ0{dmpu#J^+sUqJF8fjU_MpnpyhFM=i9Bhg*Pk6I3z zH9rLKBD^TL-v4{y65dkF{S@0);{$LyHpv%fL+nj^Xgr;GOK>#Yzs`+m2l%Goo!69U zub$}6P|7}w%yX~5)unJygwTB=GD&*W=SmBueYo+*X>aM}&FO`zz0>oGF1PmA%(E*; zF17;`I{^Q;U4QdqeyXqz8Ui?e;)Gf5XWa~V2v9ygHWx4azIF;P_3?>=-H7PwP^vW; ztCk+DN9NV}3BY`SgYv7yyzVqz^X6EK1|1aqUG-8}-zf9G-G=Rg6J>92&~i&i1cpR@$QNvZ9tqoAxm1t>Fg+T+uyM{7^j_p`a*@d~P?jm(x4%d; zv&Bp)qnyD(vklgqVH=23Siy$^X&}kf(g(ATq;<3^N!3*DV0KIzqM0O(YgLo|C*@@L z8Q`3cWA6yUumvYoKKAG7#bjp+R8 zwE#Gd<3K3|Gp;ii;hjquS@O9=g}PJtBTv=3e+6V2so4WmjP6gY!Ez5UVxr#D-)2lY z((ctf!g3GLd)8wxbF%zd#fZ+Ud8#^hX-&3!fSHy?X&lFK`^?_|ODT7s-H?>o| zG*JeP5?rj&|A*Hv4Te})oh$EEG0xUK2YYXH!*_}2bsZPV)~O@C zQ?ngh>42?hUo)we+tqjwD`p2?US;+unswZs!Eo9w4?yp)nms?u1C09bim*9Nz^9nA zVNrsX*HFg*wNo8f8-UP$^mnNbXI`361m0jULf0A#SlW(cP}}fpI1A`8pmFOnglmO{ z-imaN!+#oNjxryPk$goDAQ99oj>hs=!|DaH6mvydSns8PkY-uE>lNtd?fiRhpLvD= zuSa(Wtn<}u1KKg~g1`t9JG*MC#i-R^(42ND%vH&Z9Z$coeMUJI|7 zZ4GtreT98^HL_)Mmj?N*ov;VMfQWB2xi0{96=whVTLWJ_}GV@rf_t0|DU!;}=Y{V`Q~o9ZT#M ze!bp~gL@#vfApFGFiW%b!bw)(SjTM9mVbD8gurr!@LR?fvSd2Gw`1#N2CWO_E_Y{b zU;EOGX4{H-NDW`dakv!VpHj+)wy`zOtr$(7FVM(psABXMB*P1M>l?EoeGW>;Tn7N~ z5iQ_o`dfmi*^8J3Nx33{u!i1<*0t4m)KQC`HCo4)1g#N1xBgK;I3pJ5y~ee|@_$=2 zuG(BV6W%wDdi{2v_xI@Ze$yC;mzUP~6n9&|F8Ar7J5%^pFVGX%NSN6kz&dC5aqv!P zCMmVCEVgGWXq{Jhl*wxp)_&J#624dPUTB0jI;_&BeNlLXuPOwsLdG%kXt6y?A=Mh_ zn62j)Ps7Kv!Yll{I>5@vS3*Y0Gk?pQRVC1*v^+iaSig1K@TBE89*^VeG;n1ZHWQYr z;YwaK!tYuCtkjT?dkX@ii?pi*`v}6%p8G1{10)Uf65UyQAE7nrOr?;ptnDrm08)N{^}+}6`+o#k1_Yi@@VwoO?amsHw1UbkC4bP2qfP@K zRq&pmGb;S(cFDhUzE%kzFl+(9V+nr;PZ@OvT33*sX9eV@Qt)W7%HU3{NRvjiBf_V` z<={e}A^c$$&>AetPz0-M3Oyd8!lzdXF8t^gV?GP$4YnGZO4~|g7=YID>(#3WUd0*y zZQ!a38n<@37(1Xb0L?*>=5%){Gsrk2kmzuP{y#tlW0`yV46l{tj-_$92jJ~iY{B0Y zV8y=M5`2_iW_3@~rbn+OaA^##1XjUovlGb+eEZu#EkVk(#qwqdJ`=MIfO`c=38X@i h)w@v{ar#tdzW}KjZUEql3|;^L002ovPDHLkV1iA0=V1T< diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_24.png b/assets/dolphin/external/L1_Senpai_128x64/frame_24.png index 3f445593af79067b2b2ab416f92953a1ed9c4cd5..7e7d008bc37d7858ab33022b896ee555e6ebb1d7 100644 GIT binary patch delta 692 zcmV;l0!#gd3%~`C7=Hl(0002`twPcO00M_eL_t(|oV}4hh#X}YhoA4gJ+lPiMkSzv z?tm5nn-q3IZXhByHp0e2ga~#vf=HT}9YMj$2zDZ*4cVXzA_Q`>6Hc%Y+*oW7)Xcyg zt{BJ;hI3}~&G-E*_O1|n-}2#w-#;h*ea8O*df+Fp5#Ypg#eX3fU-|i@!JC)IfD?WK zk44x&=O=)qra2#^IFb&ALnnT@#fj6K_3?)|{Fo}}Pahje2k#A?csp~ihRrHT;D-tn zC8-&ylyop38h(8DdJa^;=6uNZ_mZ@nhLNN&AKC}+?u=oQtTWs`iyBGosE*p(Q=Ff* zYxlpZIhL02Gk(+HJ?tuD*GltIdsXrDo)3K`*Er_r~*lUBpS#O_FPT zdFP&_2l8Ga#(NEt)aZelAg|H+rCk8}0FI6#Vs90+umLV_;U#R4(f=5LtUhX8e*rCN z1r-MPk8%K)1K8Io(Pai~0fxO&(UJlzGoWukO>(qb{ePb+d*#rMx6ay9^IRbx} z0iF953KHl(bp}*Ck%t^t&^zS}l(UgG@Du7P33 z;Ljy@_rJK`Iv0QH}EmS>y@fpS0 zY7OE*TS2A5BCf;jR;&7VfX*2}xX6+nfJfKy_Y1D8B5k9Ck)+QQw^x$x`oCpB*db;= z0uOhq+%h_g6uuLH aQuqgzRi~Oo{U2Qb0000|2BQ49(rii$~~;SVjXOL4A`@oPl{%fv4Jr^#*pk$N-1#T zW${=oz>T%I4dBIb8^DX>Hh>q$Z2&Kh+W=l1AqH?9$I@%>?|%%wBdlH*>UwzB0gmH< zQi}M>(c$Py=SKnap$vhOLAzewSN8~@6#_3DzP9%z^GAyu^}fncWolm>>KJ^@Gy?Ys zz`^SI()rqPGpL4;xrEzB0O_7<_52Er@}+w-^$grN?D5`^tj|^vAi~=$G^KgMOccq= zEqdUdF+BoMNq>;XRgyflkSeBU6x_I#%EwV>lnbRsfYshW!J0E@>8^s8=TAidY>oB( z=!)lY<9c&eVi)BDJf9K(=5m7r07@l1f;JIbf!RHunzNJgF}xzc*?Msg5@uH6JQkys zv6Y=0L(RDgM(fJ0yE+Hh!6RB@)ySint9@23N_t1pc7Gezcz&I8lv0ZJ_$2k{sDzA? z3xHQ9H-?&Hm6ytqqMp4qg5DU?VBX}?SN)2@h4@|q3X`lVQ7ceSZcnaO)gI`yI)ChJ>rq7kkM@Jy)^9*?` zJUOq+P`;JN5(D5AoKZpZhS%vJ8z%r=wgjN}mw#DkER`#9O6F!GGJn#@AYHSwPQa5Z zGRnOYT%jQ4Q9X78xY9CpkD}q( zt!qQGg)a3x)V9?|0dXP70n3#S@LWP}KYx#agjdv7FoL=psK777oK&=@2?;Ex42_}n zjB_}|}@TG|WPZ9l}I7PUQ1%o==8agy-w)v9+n1$-v&$LJ|&G*7!07JnWb zt<){Rx`*O3Yjz}UO7fR(vt?K~RM<=^ZtfQ?vUP2g8{4b}o6+ZkMegMt?h#_GD8^+3&}p8hC_YD-EsJdq)Y1p4I^@UkF(S zud{MX%X;M6*>9xAR*LQmA*qN+u)O>7y8$PIQX|;P06e{%qPtS@o?DA%uV?E3J7lmQ zk`l*7pAGfd>!S5u7oGsHBoFLm$Pvdj3C&&hcTV}E`@O_)MDI+uIAWo_!g$_@hZpT= zcs80OcvPm|O&O|{ioIN`e2ON=_iD-?!KxdsIdtNI6eEwWSx+gNo?IgbdinZ-hbyqWfu%)HKg=eU??=s)1yT<+oA!{wf1#G_^TKY*YYIe&mdbAYaZnFm%jW&x<* z0<#Lhi6A;)9Q%TJsS((FXP@yz*9QRQRf1mlaHY0c*Z}K^S*7*Byn1?W8Q{B&VEs;K ziRu@M5I9}LW|fGaTwKrw27k1ffAf}ik11i1rVo_NKx)2o=N%d^hI=O+Q+xj6jY5%W8>2x;$PIb-IKJLk<3AdUT-cnv{ z>Km04)qfTT#|e&rbGwJ)`xami%Mjd(nQB`t@G@32vi667@?s0$7y5%8Xtuj--D*9jtO!1dV`RznCHb z9&98MNZ+drB7ZsClV6OsIRjR^4@Us65KW2polc^6?e&o+jzRMUFIIJa0~ZO}ee0qP z=K$8#S7A)6Os<_JIso{R%-Ns>pucJU;y!nCfHqJs0!aJsC&NDe@C2j?aTZq5!-C^D zzC=3Bf3yw0zqc#A6d7}SCEvw!42+6LeMd={WFs3)8%WXZ@^ zffQC(&j$cx614AJ8`^ibBzo=2k%3dFm!wJH$gv_}qQF~XHhO-O?wjfWO*j@nS4$5T z=W^tb2&Ro?UAeOfhPTBmB2b%Xk(*w-5r8we#Zi{uN5gB61ePPB#po5ppt?!9Q`NZA zm5l&RL4Pi3pu)Mqq~EhZPZ-ikWEEJ58G%G@%V};q7PDHVBe|rN%Uif@E;_Cz%Q|mO zSFio{)snAjK2rJIs>y`aAtU(>&M7={Fm^7)YetIT?9ASh)0_p5^Rgo43m&|uSQcg( zTrwmj{Mm#Yf#!VeIF50bZw1pTBn^`om3#jPq<<(NhWadOvIa+0M$6 zhv&C*6JBXw%!D*oOBuUi#^RvITzo%Ee#6bfphts5h*fMcqgeEr1FSUhN@%6i6$?te zVq6q=nFMMWJ@Kqajwo&j5QqYQa@2_<63Ol*3VMi|5dnSzzUfRMH zHS|nqm00|Hb~$**H;jURg-0)j^tMoB1%HhiUK`h1hR=M{3O_8nc`e+CAED6|r2t}K zyXQcBt%T>9euMVJl6x7X_X=2V%o{mC{yB6ev;@bS0O84LPLSkDS-90k)(8@r8|}}* zdW@XpjVozo>+SCEKgwe_hlg;qv@o-7P%w9(aXePJVdtba>? z$KXr?U~nO>%0QeGW;ovpD~Y0GZQEu$2F^G_VFO0Sv-D40K?8|buN{E>A8kg6KqKLD z6+N7-SCW8^8A<%Svbi=5o-w(E*Lz&-5&$zSE9_9&7+M17HBM%z)RM!|8ouY`A_4ce z$iRAb3DBFI7bDJ$62cNHEvrA0i+^}(0#O@}^e^86tgFzHrH_Vbi3k~qpY)prmSnFw z_c9S+bOmUAEqkAKj`!@Jt-V+jNi?`u4$WIKav=-SBY?;8BijHcNBZuOH)FMVka?`^ zA(a5L&aVxb32Buqk0WW@s^k?TjR2NCaitXoFs@hS%FJ5%RvB&raGAK~{D0LP4=`6R zuT#0xgQuq9X>TTgH*vbRRZsg@W2C0Q_0v#N3SQ0m(FZUVXlH&d3V8E_3aA9|hWE_s zTNWy-mtH+M`^?ymq%qV|@QCwA738o=6lv(KbX;eU^rl59OP@-lo&p-Y2@A$*4sXcb z`#B;}5@eR(#prVgBUFa|$U#FM3$oAk4c2EP(Z{qEi$Kyj<-dbHtAkFo%K6b1OP{QH i^rYonPaki;DE>wI_aXdV-=mY8YSfGlSiXOalpnt{mLoRGP20?`*`{)Nnw?$vU zF-WQqbT~roL#`zp0*1AZjsTPoM9Q%pAsJA%+N$CKG5xrhbr-;*OY0a1^jdSa@GfY- zUoZIpE_L4pBg%}70yxwT8o=o_CmJEYkH!vNOS}3w0EUDJz-g4#goLnaMq7==1fa+w zA|jH?!+%snO7FHB4mBM~3S>f12J&;RJaZiL(Loq zx_lb~-5U4|d^@>k!Q+4i&Hl6L0~6zf2PCA=TR)xc~qF07*qoM6N<$f|jTqF8}}l delta 1357 zcmV-T1+w~+1=I?V7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000FBNkl*45i%wJ@k>Lm|p)X_tMb^Q9R~f49^x=s7DTr`P($&R71mY8~uMve3S@ho5O{tuIfox#Pku(YrP<&L}R5pSd1-P+Q*%=%m8;Xq_l2 zBu86G5Z(nu2aq{qvu8i|z_=M+dk(a`HF#}_oxHm$ihmc2%xffwVzzu^Xu+KJkfkz~ zF-DcH)gL=;L<{&V5wOMJ@_hwJ#Pv_Ov|M>ag|j#eS;WbgPb zJBQLo4@f@SYtEMfy&i^gj#x1O^u#~b@yuKbO?dzSUdkeBP*V}^0rY+-Tp))(HDuZ~ z%JDT{iGK=UbyU=#D0<8oZCgj->3?NqV-*14b99-JbXY0sw?ZR<$C*-~ID!;hKOegQ ze8m;G@0Nxstj=F)b`)fiKx$_OcCYl+P}?e%d)5K2st~Otpj+P-($LIl%QM?8StzTq zbkEG~kyo7IR%F>Ok)Zbkpk&?g4^ky>C$;3rs(&-wibyO(x74M))ZU1RvTfV_R&XXf zOF=15@8SDBQTn_z0itPXZ#*C^sge?mP=SZn!f)8&eP&uht#+>maN9e*aiblzr9jH9 z-~d`{heLD{UwR1uXgi&ZYz^ssX}QQqGHEy^0Y+ucEQpc-U!|Qzh8+^J2=FVZohg{{ zj(>ut1hsM)8IvG`0N(-NcS1X-MfA{!rrKwy+IILU{{{fB0Pqt4zUG@`NA}^8^~DVi zUb${5Pfu!TaB1l;ng{p;|D69DCOdyMcmp;rJJ<_S9>PO_HvstZ{{5xdss%AS7Vw<8 zWZC&Z0L6e;$)+YNf>>!c01#IJ>7H~y!+)-*#-{x6_cCualQ4r-2`@zRTD zyULw06g>QQFs;D7;xGPHIqH0B#|%j0uYa91 z?)1m(?Alq7;rvn0PC8cR%1Q0)wD8%TpQ!>P>Wu{VY)*L`tielyR_Bdyel%&M{r!{# zh$7<1nKR$oZ;b?>-U?n_!aT65K#K!ckbSOyOPaX^_)o0>mJ}=go_VA@a{FvOSHLsB z;He1!V2gykusDCTGI*2#6X7Y3b$`9EI?QrNv|8d!N^1jLKmh=9wuY9J@aT65tibt# z>D$0rGlY^r+8W_97RTfEdOE-5+2Ju@B3x<-pmL~@z_Tn^%g+YQ`VJ!i_uxl9FiW4_ zT|l(17d?)<0p6A17);yI5whm^$o7w7#CUos%~LM{7Uyb;WI0kjGlna`C`Lrnx*p6> zvh2Q}QURjNjI>Nx%l1OAH?=O22WSONpsXO8S!8%R0`v?rS8zN=1_}NG!7KOWw(gmx P00000NkvXXu0mjf-jIax diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_27.png b/assets/dolphin/external/L1_Senpai_128x64/frame_27.png index 66eec542a91752a5246f1cb18e4d4cc00b12e463..e815ead02a8723014880112f25cf0aa79481cf93 100644 GIT binary patch delta 641 zcmV-{0)G9i3XTPk7=Hl(0002`twPcO00LD>L_t(|oQ;w@XcSQthQE6=(T%TcVq+m> z+8|;qETY9uBt<|3o3)E;nMQ21-U%q!SqK&>G57g+fx`1&_^(`{1uR)47!v~isIdGNXfP7!$9 z{iIkdtz_!!lH?TO?nwX?ri#f@D-~RnB-!HeW4BVlDn7F;SB_a)z((O$A2x z0yI|pjg7}m(atq;0JV5$Guhc=Dh#Zg00V+1HvJIDZ$qR!YC2*YDo3UY|9(fpJL~ z>451ze}dj;gc*=LZ!m32(t^~|^B^hf z#vXWz1@ds;j2R!8ax9R8m>bhBkhfXcJLKILz@h2P!y`9#6mSfZ)+KR7VOfe6G7#&P zzV}Pff_hB{tTW8#bI@>+)RH2t7cNVxM@UMfKymeeq~+zTY)DUO0?74ImQ+?*3hR=Z zvR*r}A%GqzOIk=GNp(qa8A%F~AOmZK)KnqqueQ=m^PTA5O<8~(Pk;t+_MrpdAfUE` b=A)%QtVci{7Ah2h00000NkvXXu0mjf4d5>~ delta 1318 zcmV+>1=;$J1+5B@7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000EvNklmaMHpg@Z5JEr*VYC?AU@8NMihshAewfAp9_5e06n_TrD1RId;6nkWYlPI# zbA6OQ7DosH=Xrv=0$|&(T!BaVBXP7)s^$7%ECPVDwnwuAX3F2e`)7XF>I?wzYyM8k zk1@`9p3}aonE~E!bTUAG{~eGoWuEyM1v3Kxd_Wl6rRxflBO&+j_-A>)8gY=PdK&L} zXMnV!##%28zJIa-a7$SFZqj?!o(D;;6tT~t^=z-F=R&L=`EzT!Rr%65R-_D+K8Iqd z_jWk5054YdeyvAal%MyL+N?{9)Zd*2q=QhNPJP}%`2auZTIE~E&q1*Pg(G(MFhJ>r zrO&J3N>Hbz^3-E3h9N;Rf+HPRQnEG%s3G_)&?vvuhkr_)fwJdo;|ER-3Y-xfRL7E% zDPu?l=RAK!`fnk#q`R&D;?1`XM=v_P?=wqEHwmgCeX_W9tL1= zb@_^hkjDvBKdS1Q-k!1Nc$tIk$wge8fIfFd5sd<7rXD0KNkFS>ZX`gDVVK zV7V_iQh+xAuK>OS_^cIZg;;}pRq58l-lQe7B0`wRwC5HK`os=Ve(f zYAp>Vd9=@?`rpO?D0&0r_1|Lz+`Sxn9=g#QN4L$Omdik1L)UEIrZSbPeVPrN(T8Vp zgVgLkrhU5Z2DXj`w2IGVD#@iWf|(3KE5ko2W{)f&MeU5Bb)+qgQQF4sjZ#Ly&40IN zFJMZv4yw4_xe5==p1Zw3JR)&(rInBL=&uQXQAceU0qZovQ)tX@c+!tp4MVv8$> zJ6dB10|4z<;41xU*H6p1z0MS9W0e%QVt^V(m3qIn@S{n+dVtFWN~|`F0f4$J&^o)& z=GUVsUNYFc{T2++V&W;qOVm1p5r1fE7eMlJGBo~Wkc6ufHaeq_cHBn55(mA^V704Y zl{reQlj2^$Xysoi50^H89(+KWlPP{0R%4G~v?0#~i(@SN(=czo-Wshpyd>m7Y5F~d zX$)ZW#I26fnx7j%KF3p~fu4ZWvxCuYqYut5jQ{`u07*qoM6N<$g7?{fIsgCw diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_28.png b/assets/dolphin/external/L1_Senpai_128x64/frame_28.png index 1e232ba91bc7e94f0f0a04d94956352b137cc794..24e579be15fa10b8d96af344028c65725b578c7b 100644 GIT binary patch delta 591 zcmV-V0MH+8LK06wH$(+d#b zh`W-Tsx@uos;Zjyji{UfpR6ch;l+F8dFij|YY({y9%&AskvQZ8SP}>D4rEt8g0wTP z5$;~+ylS3nT~+gXUaKw044C=C(>47hlx1MNNcow0vCmUgUDukbHrF@4X+x%g!Gh69 z7O`@>7!E+ahkqcm03^W9+}dG8g7W3zlNe*mQPNAPBi_4)0l-Mv%m?q@BapC^+-G0! z=2qoZ-UED%W~B#6b>i+`z|Y1Xm$4cWF#5JM&0{=w@MzctTHwPBh}TATzuVj!WUkE! zoZj)&4h6O&G1(Qte#Vutp(RRF_Ka`f*g>R?mUKsTuXOHG$%d0Xr zwp-h>eHEt}ih%ZOKT~5Qd4>b6HuYAX|9YdRHrKSF7MvY3^XdMn#cVpsJRyM7n9A`@ zdl^9RAxHo_F?4bzAnlecBWa%t0ikI5Y=r+K0;Jtpe~39!cwj-JR?NW5Vu!7kYD+(< dYF)Lae*jc@2y8GY#U=m%002ovPDHLkV1jCd7ncA4 delta 1270 zcmVlcLSe`X2@ZcFH+tSlpIv z?*T0KWhubTSqgA-mIBb%a&4toPRS&pNs3VwS>R&MAv4D z1@N{a%PRSCC<_oN*p$*z9D>JDgbx5={jIHxr)dE^@NBDBm`nIF54=EEbNtRY7wwBu z=7q~!=9+TOnS1lS7jIM`J@wBd{FV^wxp3tzb7rG}MLfkZ%{hPlQDy4q*kaeud$(HA z2k>UZ7r5HnkADSkL8{lY##?D@R_4#r#}$N+!_eq4w$`|eC8Y!pJfPW1pjm{Y3RFw& zPxa2nx>l4gNBMT?^LxAl*c!0q_tEmvP|llmJ|k--$@Iks;0i_{S(~E?vlop(q`Gze zk+qV3dx-*OLrv`L!l%%#v!om&YsD!LX#r+~`?d=INPkK*GKT^e64svGA)NB1ltFt2fPd>98^=VJ%#wEuG_d)zZG@1Nr-3|x$%argkn!ftORSX;mZI3;Lh{kZztgCPw|0VZKl zf>MU7uc_C z-T~kZ0Dc3&_wEq|5Ow%s8G}Yh+PI$@pZ1P{_J8!T*8=>7PvL*SL4 zl!v?BLxqM`dKBOt0KWbI{~;ATIuRFNqEhM67j~W$pfQOzp`A-561YT;l;FX5T7mkx zM>Ozs9Ng6!&#tM&p0`hPBd2T&)J2v0xpf?+O>G;kyg*OCxGjqU{4&%z9NOzuoFmnf z$bYentsYl-?%}hHT7Vxzy`PZLYgZDUWi39)$^-`D<*ZSTAQv(8<_%sH;7%7qMnbCA z`MBQlX8~p_xc5n`bSKbqZg3d|unN{<1vHt*NM8W=(K7~Wo}>cYX&V6OQvyvG zDP0Ds|Dw=@m|r)7?gnQ*vEZ~}VtoS$3x5_nZ<4=YJ@Vz+>*3TX-5M@t*T(mhAhh0h zt3U1dJ)sVS>hG)qXik!@ibjDra9M3V?{%gWmQ#YuZ2{c=O*um&$F~$m5PqvKyv?PQ z;OrRD{nZ1)S9Nxkop(_y-=@3RykGbBvz2>7? z8>+v(Gp*eg;Or@4&Rj=C9-8udb^93CaYJ7=Hl(0002`twPcO00I$7L_t(|oVAj%Y7|ivhQE8Vnkgh1AxH$# z@eNX1C99>cU?A%w2x-K`*+LZN)q)G4`$5xP+W*>J9Jkh^T!YcQm1OuG>jCP)LxOJm8GMeRB* zw`7ZNnznuaF@M{2Gmyj1$-8{!rTGRY(UTs(idMJe{laD{g9HRUczpgWAdRF(Ri$SB z>AHk8mMS%cnz_+i$smFnR|0VcNQG2L8){r}K{Dt-30+*uCKwpx&;=gcYz;Za4Q&Ao zT*w3TUQa=v=|J33Si``FUA({YA(a8iEbo^?(bxkWSbxr=0HQj)pToKsAq5z?y>N%U z06!uUY;p&eeeSZ~t$ZK6c?%E??G;p$ za`f%22tj}-r@tr1@!ROznc;o~MA<}04oLa+w=*Mz1&EFrL8&B&K==c$1c-9_S3zBa zq%W~L*0ul+==l=Rw;rhNhhuq_gCm}Ps!SSdn2jktr@Ipv2^6PJi@+lpH0E?6K*ZC3 z07C+8`Fk>G&40NqKnK>Ra3+K1oSOguEKlJ~2F*Fmqkzcfzebw@^ptycC9TM%Mu48s zR1bTlzZ5)_&kYMXGKv#mBn-yG#`M=#Myqfu<#X3}wCCgpL-*V84_#i zRW4^^x;TLm94rVPa$u4_RFqOsA*~nzs2jHu=3Jo)cYk2C_MG!FA!mE#8U}iM*O4Jf z@L^svP-C8QC>q>$E zKT}GdmR3MBJ7$p!ppc;Fqs;n{WML$NK2l2WDW%^jrSC5T8kkeD#W!PVj13WuQVfIM zBuL0hwE%z9KjnX>j`Gh2t7lg|K<^!(D`Q3|E`KNl_(&;z`~Pn+eAK)OG?b(zFUDEJ zrfci=((+OW@ILtVv`URl)jXk|#i*V?0Qm?tsigK-DhfD#ZB~P{+>i|-fyQ;kA;2$8 zBa4K}8Nj^?MwS5T!vTi?Kd=oYNN{H5uL4R_QwlyasHcKgNMNn}=ni4qPC{OjS^!7T zJAa@29w-GR3e1W@6cTtUKe`o=-WStqAZBx~eDWm=Ic;djg?TyHI}eY6Rb8WY=-TqI z753i+7y`=a*Wm2I3Sqk`T}u4PRa%?X!i>XxG=asabh|qKY^`1g;H4S}Jz;``UlknF zA5;70Dhu0hrT%WEe9kye1Q-p#{WcW<;eQ#E7e%lrT4T5Etxi65JhTtsVxE|rqZw^* z!da^Fd(X!xp!5yc+^TkXV)WCo5qcZ=F0wCyG5ob7G*3h+$XYK^NkCN_UxD}Nm7 zqeal6Kh)*{o<15UEhO$hYf$!rV&%BGjJkg-TTj-v(WYYu*}wsE(6|oas124BkHaw; znI$VH>gvSm?cb;-fC*)({oCIj(1%{9t1HMFnEhN0WoINnhk;x9Yp9h*Jxr@sctisC lM9>`|VLdgha498y0S9DrH1)e%^$Y+2002ovPDHLkV1im27eD|2 diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_3.png b/assets/dolphin/external/L1_Senpai_128x64/frame_3.png index 9a3c13f66213c3e25c8363eaaf5701ea980b9586..c610eddcf855b4a929c76bb8c1ad24dafd1e5edb 100644 GIT binary patch delta 831 zcmV-F1Hk;n4$20Q7=Hl(0002`twPcO00R+8L_t(|oL!PlXk29&g`e-6JCi$Y>fEG3 z+E|!rjelLGpfvuF`HHP1xN$GVfQpD%|7mL__ogX|pd`4_Vr@rUxO1VXMPhT43Ry^- z)P+(inb;z!+RohkkeTGpe6NdX%+#|yoO9sidHKqh+obn!yMHwQ*P-e{wzD?YQVx*IYL$n%6Tli`a(*D(H*sTrhkDUXH(}3pgiYn*fIe4t7FgQ zrFd?sJSQTe2^`57EU9SgEplq?5d$O!+;wA6LTYL_Y+wMG_y{l61UuOWvJPGYi6?F) z*A4A}8-Qy5kGcs_!GA^-*8rwr1klllNOz3$%1;FX;xRPi1kbHMUnD%wxU<7fHmpk5w?0yP}g^LfFuhz{efz2r$u-F z0CCN8j;(=p_qA#>S*1>&Ruwb!o{~t5I_xEf_J2c104H(@eGa*<4NCsb8E4{wtiE9L zj@lWhp=5}$Z~Wr0uYXyMx)|-{ip9`s(kG#B8y3iM6^_nrj^#>4uGB}$#Vs#Ai#`2W zMQ+COkNtSQ*xG(UPZlq=<7!R;-qD!_?Q0%FNoEdOtG!!8otO99f~0?K00+8Gey)$< z-Z+nDv!R<-Z+=GGUL1o-xb@>HyL@CsZ*%Ff8lkf<$9Ev}c;)p#G1dtiw*ETWVy(xso7w zo<-8J`fFn!)Ul(+=!Q$-NM+E*@_xwr$Jj^U>j4#j$j${&yC*Pq7xJW6^`0%(%>HV?-hNyj83SBNgFw(0|G78xhe<+kDNsM?2sAXsKxR zu}Z_06+l+_gP+Lxhqk6F(40sfoKLxL(gW@MjWz*)CSQBwC8M$*(pE_qEwBR>;YX{Z z(Pr`OmCmwHMyXIDvS*(cpQHw**BK&B|hW1BmN5-~m!bXfov|Mvj5s!dgM>l9C zDwaIUcea}F6i<`yjyij>#!3(^D~@P+m)q2^TA3_mj{*rxo5!n@*7(wlF z0TH*qD%bi zoIrX4i*{$&==3@kEoqT*t#|W$@Gbx$BYczqdII+5oE6|~HqP55Z;^Sd+^G`(y^=i& z^?wsV9NGAyG0CAFRB#$+C5~O*!J?D#d={*#sRH+lA(aWDS+BMj`Fw@&t8rOV>g;JA zTK^ST_RSz}#g@xM)d4z8xf5g-p79`e5IRRF1XSUblo3zi(WxM+P}WJ_-2_?1<=+kT z;%3)ITb|^OUgj*Et^nMsw2Pv%aFx*SqqQ|AX(iECg6WSS282c|W@s z=u&_`o9LW^>@n&pLES+KIuzhHBKoU=P6)FbcDIcFY9(-wg2CqePDH;F(H}(g%j$To zT}gLb&P0x6&pN}u>V`C{0Do`W_RV)4h^|Gb>+$NR3r6-p3RfQ;32qJQ&R zR-z6{k%aS__n}aKA)`Bv9I|ULE_z)?(StZAaQy*V`R@~+%L=k@u#&B&3}xH z%kd)zh-jGhA&!dGbwK-sQ3V?BkrJ^Rl9$S@Df*C&nFDZF<6YQzcloO~DD!EYS$^dG zLAN)t6b}hLdWYe8l@A55Cb*LutyqIrYI*%SJq)KAZJ$vBYyNH9KED?r zL=S0ZV!XGB+->qPa{lVP$U+fKd05mnFZ_0}$0*U-_!m(!Elc(`#Y(Ouea}i)8iA(- zR-1f=+6P{;A;O3?W>zs!(qf_F5;OhKpX4>-L85$k)m3H78dxBvhE diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_30.png b/assets/dolphin/external/L1_Senpai_128x64/frame_30.png index 36d1212bec67b33d81867f71d1320ca7ed6d0942..00edcb7f2587eaeb0a132cd963c80eb7ac3d982d 100644 GIT binary patch delta 601 zcmV-f0;c`03FZWl7=Hl(0002`twPcO00J#ZL_t(|oL!SKk6T3)M$e2bWRRk`phyuB z(`~s$itTI~+N7gE0{;V`3dIV)RJ8dAyZ?ZaB9ZKla$BlAM+j{s5YJ1LwUc=>hvGd4 z?@lwL^X|R#z5Cq>a&yIg&#(8yZl$mL!w2wO)rDxS*_2d^Mt>MXA+`WQgb}oa-K|@~ z_W%XZq>V0BlcHH`)yt_#_bI@e^S;JYSOW}trNxEwsq1N7cQvxha`u}KE}CUmqcCy( z(Dl)1)ukkx_vUPRZx_)rN`yijK_tqlH1e?t9>X4UM^?N@mb$9rLgP5hA=+eVA(wlscQ z>Ie`jV8=Og#-zs1wmLshpLEhE^xn{RU<{mhr6ar=Gk*fRri3^fEnhJNyV4;(bA5Lf zyU_q(`&KWCZfhTDxr)P&;3!n=U=A2#3qxjXU1Tx<5PeMCiAK;ZA*D1k2_RKNFN2HXc&G3@&Z_kii= z2i}gm4^jta16Dm~dvO1D#BO#AjBkPwM>i%Y|C_H?{l7d>O(m83@I?_$86T#!oP?@N nDO=U8wcmAbKPS~j{nh^fj2oXc+QoA{00000NkvXXu0mjfbhjoE delta 1190 zcmV;X1X=s$1g;5?7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000DFNkl_SQjQcBa`&W=kGAf*I3XUI9f6yEyn3b-TzN*oH0>ItP}RevME>RY3^US#D zO4BLb_(;|$)<8>6RTr>=1X>$!$r?rZnz(cf&HmRDT|2E$q0N45NK|wg!pQ4diTyI;K><)mj#F*Uv4K?>Y_aff5r)l#gA@ zYVK&Y1u_97o1!SjbGa8w0?V{jE5Kf!24WNwq1=lhK?IP3K<&e`_LcQo9!zpgnqJU2 zdq)dR0*nOE5^kkpJSo4H0do;7JC`3>z(`2U2FL;|vVR0t(8xG27s2A}0je0FH{nP) zX+RQ5*;e3MD2-qc9Ru8oqJvVL!aU~|yG9U|f^W1@R}C#bUn}R7xPqGiioletwNS@R zToSy+034qZEoies+4`-a;j2gIENMA^6oNP<+pELNIdDkOtOQ!t($9p^t*;@m0+eyo zb-FRYu7CEXm!gdY>bG94iu>`R3PnD+F;WO-CV-D?qufWzz!-P32>1|CX3lcL5k_ zV9xoc#SJNmKpCTXs8;*(YEe>3{r?Tz(Fx?Pp&`?34#^sIEUcmJLbeaZi92b|_(2DvWhQTz}a@ z5?~j+-Fyw)1PF+-5ho==I0AU{!7E@HgM=f%mC;hZ)C$}L2!!6vmso^Tl!85@bvvnD z&iZdj*R#e=03*zrO1)>4@dqSsz&!yX27NP`XSus{JOy_Quo11B%T+4Z3fu%x233KQ z6z}wPfQaUwgPmVoxg|jFKs+>udLNJ|Q8KO!7^!FT7yK{87VNqm%m4rY07*qoM6N<$ Eg5muXfdBvi diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_31.png b/assets/dolphin/external/L1_Senpai_128x64/frame_31.png index 037bdc8ed6eba76a6f3431eac40d0af8ee688ee7..3d2d5d6f74f722b72df19fc49b4e447f869315e7 100644 GIT binary patch delta 580 zcmV-K0=xaR3DE?Q7=Hl(0002`twPcO00J0EL_t(|oQ0DyZqz^&hQE0@VMP-QC@3Of zBqS))Af;PZ)Z74$kSb~wXi<3dk zgKJ2sE6GbztxB)`+yGooxatitZ6#?YX|B1X-H=!UlmJ8l#K2)l)ZjQ~0?Gk!mQH5J zL@-qCY+vO@YT(D}>I><}OZ8lp7h7|zT(h)7w$1T@E2Qm^k!s}8B1n%e=m zqgR|NK?RygUVleAuMTvo3k^M8aF3FQT!JJi%j7SmUO$Hj<+uzSzXlrwyabnj9Y6|f z0u+M-9(V*ypR70+hod*G^dsm7uz5S8DQjqnlMN(&;5avWB_$7jY~%o>=tL)(-uoA-C1rDTpiVy1C$*ASg)%AYr8B+|6zDn{wC?>pSfvLvU|5*ZD7avh!lIz#XizLx-Y z4cW*^QUZFBz$^HpmoETXU!L{=Jwv@Z!X==GEoT_{Pk+_L)@k6ZlR!xu7B=;CSoM1p z$!dpq0F@<}a~vFb2aat{DX?DlsBL@rvv%a%Y6ndN^C>p^^jOQ)Il+=_Mr(Q`ZF6Nf z_K=T*wTe6-8F3a%K}(P1eBP>Ujtz%e? ze;e7h7k`#H3#h?+X~F_Avu(^Cu3gI#VAQ^(b)-6@?G`i}_3#9Ua1xi>5G@!QViw@&SSk3NeuW}{G!4>V=EYM_kgt;o3PI0GkcK>pCsbKZ9Ujv$q7NEi?e=UE z=kwGrS}5;n9ak1pu=ZNdYq|J}Bfmti#(%(?0koen)#NRlEVT=>NBeQcC}=-mA%7YM zV0$OdLZ_u&Wg4ZmYXk|n?bP1yE&-ljzi9MZ+hsW;MMaI=XclnBe0+3zDTUMrrETc{ z3m7#LqUGb!Nno{U251l<+6NE`QAxQXQvaR^5T&MFA}T3859)}gD&X78PVKXm`j3M8~*|EbIAd(ns-M40000< KMNUMnLSTZ3;31*_ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_32.png b/assets/dolphin/external/L1_Senpai_128x64/frame_32.png index 91ce1886940f2df4d02737d8508626b0f9e1efac..819ae205e9e5550b4964b4d5a86ba067ec620f26 100644 GIT binary patch delta 579 zcmV-J0=)g;3D5+P7=Hl(0002`twPcO00I|DL_t(|oVAg$Y7|ivhQE8AHG>veVhRPp zDeNrVMo1cW1Pk9Hc>_TZgv88fV_}iBR>7ALi;!K#E<_fw6UmqqsmzXvWJhP_{uVQ{ zJ9z+ab??uA|MQ)5jJS9#|4n!gfX`ggc9f^(S>qT2sH09RV}CxttkazeIvy1)nHUd1 zF}iG_H?87CCnOZGAuv}+^((;3|Wh`Fqk;4o)#c8F<}B=u<(MEem59)fgiD@ zRFH7(a6SegL`OP`wCV0?A}KmR+bZND?J1X>#we1aQkqo41Se^bOSwv^RBiyMHdY2?NGWm6sZqa^Gj6%aFiT z<{C#wlM}f!+iPK%*eu$I4fq7l50%a`79GGPmg|V({CS=qyt-lcYeU&F^ delta 1240 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 KMNUMnLSTYMw;_B0 diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_34.png b/assets/dolphin/external/L1_Senpai_128x64/frame_34.png index a28aac4e0f1e76750594be887fe23ec7778094db..53c2ce75c1263ec8eb96df500abd661c9e40f131 100644 GIT binary patch delta 793 zcmV+!1Lpka4WtH;7=Hl(0002`twPcO00QetL_t(|oVAicYg}a*g`e-6JDHo7nla5n zv634p=rV%RDzEFy z$z&?hP;2JKiF0S>&V0wkqyc|`XZ5~^vpUZ);=i)|A4cWp;eQcBLJT(dK{hR?ht|Un)3X4{21k2yTNCoq z&!+%3=^nUuH6LEL7uu_U;#j9T)5#levGj67(!l9%y;S{P1v|BSH-fg3?I~T0Q=XRLxZDsnU7vmOZ+gtfIINCeneAovpIaLlJbq%pIxQl~<2k zjoNewAa{Wm?R)Lxj|aB_2H?WH{mp0lOacyK+DpcJVY2&X?@*jP)X&z2od#~Cwgjf= z{SX&sfpWL0iOHx^q2UrUu5fJPpB&jo5lA4kp82$RBluEJ?0hnli8_5uMb8$%A zvcZ0$5rQ2__IA+$e+lepW%&CcO!y3JvA>t-gPA}~9+IT~eA%+J8p2scdn*dfEE62P6RYnem`Tx9udAx3gN=HQL*$?REe~qZbor7W1DB>|+z4 z9C$OQ@Gpi1PE?$_PFde9t8!w!V8fLT0~1-3PDQq%#LAp2<|AMt3WJ24T}E3r42|v; zF?=^^Z@Q9ag1~%~kAvd*)~^(n3z^<+>e}E~y?^;*H?@pjf*Ej7^tl7)HxFi7PqjYy zDsBDo_F3H5S5p0z=}&j1wUdnBv@7*r#_=tek?)VL?bx#AS&YUuvGcNrV_VXv4@dd( z@3WX2-rS{c?T7eJVL2EwJsZV$*F1L;FC@(QgQz;~eXwXB@yah@o*;5N|1|DwpZpgG XuM(SZAU2E400000NkvXXu0mjfPFRhE delta 1763 zcmV<91|0dM2Imcs7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000J=Nkll=ATGJ2*nlIlXfwtfqjvFq)CS!@}*JgSDO-R_mDSK@ch?g<>R-ioL2MoYXri zdxwshodhz2)6T(mS3=b}YJezO=kFP}S5HjeUjO{n=5e=2c0Yc81qX=e+3VCT2J`f> z(l54`V_1<|!+%}th(aw#hzL53nLCc5W#?JzhMz5iGaXv&kaPZu0BoR$auE-`0wTum z+3hLm^JQZ)=aA2|KHf8o0+!8C|2qpcR_?>_#7H4d@)V-GaU^VOGSHwicCKa2`p$|( zjOgc5O7TiQG^{phtCHA_-UapAr^M%F<#Vl1R1cQtTYsDeA^Y6qU|K`;uINPN>ESL^ znLCYNpW}RI&7F;H>8RO~>3)wG9)FeswNMv{7&FmYHm%Twk>jXN(Xr+D8acN}JC1YL zjLj4e=M}NWe`S!2zJOgJj#rH7f(U}o*T0=-V4)%Mod z+OD_8PJc<91GEqurU-kE6Ns|n2u|(#9de__Wc?T{`#zlnVuPq+p2AvAvJ|&;>M_C$ zr;EsLb@UbI5Rv|+l>a$EL=kHNS|UZHW^IvuMXaiR(7AfnMfU%79gHP}m3w+%@rddS z9=F(O{Fw%vHI_!?thKXHO5tVTsPQdMfRRAH*MG{#8JL;7t+8-N;#{v5!RTE8LyPel z0rYr*C-Vep)XqLow}>2zJB@IlQOCObP1^H|rlf>N3i0G?^&!%%vQ!(#ihM1=_M>{c z-wNM{mEWbpl!!lvfb(UMvIe1&-}`&zhm`iGyj>R=TYsB%VtEW9OxT*2rPp%l;y zuYatIL<(=57F}9Hz18PxhU~@hUkvf`=8A=82U@G@_K5tG*zN#wSIPh7yInYGgsV8g zkqCgHm2rX{J3oq5hPr|i97_R~fmh~Nbgl~Vfc)V=&D7!hqb!d>P= z;`plx;*$eJYI35?HMY?pw1wUk?JQ%@js|tC2M36<;qMUsN3c3=td0gUqK7yDyMOh% zx+6%Ptv0>4cr$mRCJ&9h;>i5huZCHJz7pw^j(YNdB??bJ?XF~2N_hASA(66()u<=) zChDNc)#jp=eO@_O(KAoB&fa)d^z|Z{WwR#^5b-GOOB|m$!gLijl>R7}*P@t!%zWKW_tBu-aG^3j1G`@zu{ZehbsY zXDnBFV|dV_PGn403R%x1dRXh^?baSWt(~vUNs~o6faSR!ERUVV;zvoFbeiX-)555Sma>$waFi2a{qp&Y=uqF~lpep+ z-^vBNKG9s=6K$+i&`Sb)9H7SuS!A$M2)?)G8(E7w?tf9NempQLiU0rr002ovPDHLk FV1h~^a}EFi diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_35.png b/assets/dolphin/external/L1_Senpai_128x64/frame_35.png index 04f8c1a7f30fbdc51cb1c9d7ba2d0a6b5e7f87e5..d6b2f16d86cb083cf749b2462c726984fcef832e 100644 GIT binary patch delta 825 zcmV-91IGNQ4#WnK7=Hl(0002`twPcO00Rq2L_t(|oK2HWXk29!hM(`u&CE?5?IaD- z*1(K4pcY!wg*4idxne6RZrqnb7K*sAmAI%jntN-CA}9@RwAi0W_bvoQBqld$Aq#1f zcA=C?rdUdfHZwQLn3>7U{f>)qlDxa`;hgvIogcpUbwjbL%6|biWdYgprU7uWx}4Q5 z;>X#OMSm-}dFb-Ktr5;r_{>2lr&~Uf(5r{x&kbYI;r%Bd+62knryroqeyHjId zEqS&2g^IuX)!V_pu&QH_`6G~Tjy^k-yX&z)&k7H_R4QXn9-qGz60t2d=e%_}vlfO| zFG09sBBHn6VSoJC{eh+5e5=KL-v2>U@^tyZsWZC*W%)d09`(x6E01j7AuR0iyq69f zG+9cVy%pxZvRGR5ffmmv^=`KY_VNXP7~s+M%F?oU;< zChx8FbvHj1gZ0|vcb6i7%@MLTZk)r}+S^GJMo%>A^M3$B&L*#ogUL8Qhp9opuT8v} z*TUp#>7J^p5IDNs!;*}4G*d7WFMB{@&~1Sc4QZIsW?vnE>95EnTU`g*20&Yb7a;N4 z|B)>q4!8lB766F75EEx)oAxnvX85(HbzRUyfAzs4^VCcA4Dq5T33G%qs8UpPa%jvS}QCC6YUS{|!nFJG$YQeFSC zUoRHYoi}8raH|tnxCmrEoL?4ScoC!9??JlSzax~qe%=wZ`S%BLpy$GOGK~8i!ebu2 zq%t#$^J4pPJiLS(f0DH256;U@$3KGELts})NwNPwQh=0eL%a7-00000NkvXXu0mjf DZzGq# delta 1829 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 delta 1765 zcmV>e#0?S3AH`u-_^0i&H>6m&-%4Y z-SQ6nd-Qz4v-A;Rp!VEiR7mpjs;IH4^Apj_RgHip014!-y%-*`Y^!u^-S}PtjFiMt zIvJyiewTBd6o4}qJ;=$7%bYew6oS*O#fUJ{A{dXi)_?uwa(if-uUU6#=bIlb6|Fv2 zX*jY1$Oymi63GpU*UQrI=xc4rqoRG2UTEiEGy?pZ{OpaFjLLpUTjjiHfjy8FezY>; z?HUcQY)1X$-dW>OUV!*L9R(xek`U@I1uVa3!iu$FNFi&`B78|#<0Vr?Sn!OC)6*17 zQ;6Ntkbg)Pt_j#<7-@ATacc1dy<>jV+R(KqFPg%k{n6TyvF)0$5%Z`WC4$IJMLYuf zoY|xi$XKx!DqHAU89bsZ`QiPMe0S8@i#1k)XjySI-i^d)WwMk#3M4Fzj%W4O+(gRV zK&`XI2x^xLh`9Yx*?ucVDGpMSs4&r72$pt4QufJg?821;Z+#mt!Af^6k5ng>~JMZw2E9}4Bd;qThuETVbDD(LC4daYGUM(Z6-Wr_^KTf5u#TK$?>)E z-+wFF!}C!<0ctjmkJAp3ExTSAhCZXb;rHO4-Morv_1l(oXVL z6JiUd|2EK4gr08F@+7NynJaO*0&uJ1?|=N-Rd`pSb4>97=thQi?Z#MKt^kp^ex>l= z-3#8D^LOFnT?|x-Ph~ya2TezbIKQk0O|0&eFS+cUQIr#0_=s{0*{t=iJ z3U*7d*1dbL8n{|vta2@CVY8F6QGfL1-f%gda)5{yY7cRYvN{ji6GpudNP=BtpF!va z^pFj2gH=G}DHl&$uTp}j#mqi`&(QD1tLDLZ+erbed-JO$ep!Cd0Tg=pR9p8*FLSkW z79&6XEnMV_HO}7S~S$gN^czBc=Y1D_M{yRNl~CRNSMz9WCeiku9a9* zULItrIs5bt@gF@gT@kVxc$5zuyX(i&_Y%K~xE@^a7)it%9`v zGD(+h@ULP~EYV5|R8L#X*M^AIlpxdJOW7pdZM>Hq^SMy_RjBn2mgOT4tQq-n9Qc8dmaJP_NDr&$bG76W zg^ylBkMdK?bEe$0EM6bA!P~(y$@8+y4CH)SB}1iXZPKT?(FhM2+P!iLl;|PhBVG|7 z+qTg|mULEZLG`_t;i65d-4I!cXoAQnMGG&pfYz5y#!K5T0D1f+2q_*?00000NkvXX Hu0mjf;~G_O diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_5.png b/assets/dolphin/external/L1_Senpai_128x64/frame_5.png index 7a111afd03b4a20d23675dadfdf070cf0be65452..838f46432b449465f3d679d6f1176818288ee5ae 100644 GIT binary patch delta 842 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 KMNUMnLSTX~^;t9k diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_9.png b/assets/dolphin/external/L1_Senpai_128x64/frame_9.png index 00b02330e1bb9d3c515b63a7b146cdd8e66f33da..577207e5cec431f00d71b3bce1be9dd9fcaf474d 100644 GIT binary patch delta 827 zcmV-B1H}BJ4#ozM7=Hl(0002`twPcO00Rw4L_t(|oL!PlXk29&g`e-6o0*$Bnn@a@ ziG>+!@TVJ7P#S;8e8E;y+_*1=ER^EHR;$u#HTT98e?Vz)qs7{eh`4hhs72DrO;@&Hr_vT28k{_=?~QhP zV#$igN20ynXD%&%1Isc2sb78l+3ts4jXDeq^exGaZqb#Ad-vwb0U?_j>X=#6Z>Sn**efp*ycnS;KjCo?m zPOh9Ec<$vXiRAQ>Ojh?@(S0l7yaRP;_hr+2R!=cr{x|?aP;YN7FxojgD16!LrsQXn($mA!Fm`a-dSqnIJI&c(utF zvQo$|m#&J4XnaRH43>Df`8GK<`J@42BksB}Dgkvh9yBokOn*Wu-U7RA7-Sv124c_N zzFar71FjFMbsr5Ap!^oYHGpXv8yGVHgd!qRFQi3EBBEJnmir-`2Xs6HK;gr7K(|je z^QkIy`hPTZs=hIec7u?a2cRVyN1G5T4g^nDG|YTz7Q z1M3bYwVA2XP`*|bGxolcP>VX8YV(0^AC6^WI)9Jc(8ehFJ7b*bN7DMD%{nTRQDbcZ z#=dr$L_QJ8!IGS9JX*+asZ})XCtw&Xkl`B6p`KlP>2t|2k_!KwsA5ljQIT7b{9`{| zEF`-w>Y2i&E?mt?Aob>aS$mqt8Iq2xkgN`F4s=#N?DW3&u8-hA--$2vQQU{=;x0o! z$u!jBytaclLm!x!+juu_SB@OlTO4l}Y8$>?CZUUi{{e)AmhTe`&t?Ds002ovPDHLk FV1j%Qjza(d delta 1824 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 JPDHLkV1k2p4D0{^ literal 1552 zcmbVMeQ?uc7*DqWUAMVW6~>remchYCl~J%L$kOE97PmAdO=&lg zO;ADM#sPZj4!i+VIXyu1gjoo3EX)IZi1j};9x*a$BO>J@rSu2@B2Ra z{hse9uY2Z{W$1Er5CmnE&vaC(YqR>4Xp`0V1?_sbx=c`U6VtpXQM6JlMUPj%=#TWt) zLzFrza?dHB+XI(MGJq)qfpR#G!xU`*JWKkG)hst1CUKI$2=%5=f?`M`L(uTZg{TH) zzM83YxJJyWCo58`C_x6pB9Vw8Vl+r{4Mxy3jo~CllBkM6Lk$6ijiP~2enNu-gg99U zDuNV%;~H7N6jrQ=>g>HJ#Gu=KUvVHbk}EZ9SdI^=B# z0<02*q_E7XC8^F&kk#}(+)x~-dc#!6f?5~0-XU>e5d@TShZRx37VHx0EvLwR8X=a26xKITA6bbx(lr18PP?9v6QQGJ?p(IXl9LXC^6hR{+eE$EY z4^y4O;=S^p-bskmhKz6T4}*HRKTaT^&XBAQ%Q5$qGIh{KduDr`8jU6vi(Oinv=f4o za?2eyZ?xyK?~j(_xYl?z_C0lW*TP5Bi~2g-=bb(>HLXQcs?utn*;RU50nNRaH~W=jR69WY4rmDpE%8 zfO1k(PVD(J|K#n~SN87f(VttPKpnRn{q23L*N7LVp&Py&=*)|u#KpY&PMcQAh6ZFh zdFvBnTD>`%;2UD$&f*s)=#!4NzGiv3+XNjb`LK=Fe8p%E7uOS;1;{tKdGh2FOZA0m z%|g`|yL;CiZ`yh$XCvOU?1M=I7gl*Tq|Z-lw|RZ~odkYwUNcLb1o8weS7(m}aN#+uE2Ho&V0;1zVi82k0ePsV6_unlg82 z_buwZGX~1->o9bk%j@lGx%pcp8UA}(*Evo1T3zq#woG^6bUwa!)b^OHU)l3nZql`a z_PM$l`cY%E4vsqyncBp|_A8?}SW^FL`wIs19Xilx=j<+`Myu~ksXqV#KbpE~h${2yKJoa5MKuUh#J D%PA@i diff --git a/assets/dolphin/external/L1_Sleep_128x64/frame_2.png b/assets/dolphin/external/L1_Sleep_128x64/frame_2.png index 70ad96ddee80ebc482de9f7db27fb42e56add439..20f3709d2387829e55401f4e6ab6dc32a00b6b13 100644 GIT binary patch delta 581 zcmV-L0=oT>4AKOU7=Hl(0002`twPcO00J3FL_t(|oaK-~OH^SLhM(_vM@6NXEU7ll zr3`Elwh?9#%>{{|AZODe5Q_Q(RvV#Uu35NLTD8)a{eh@f-XhW;&^kwm#zim_BhKi| z{oWRXHuV=et8g3f{RoSxt zZkppYyFLJ;+x3VXoY%C-tD#O_TY3b8dP7`PQ;Tb=>4R|)Ub_7i_FbpMAmhIQv$*y# T2*g`@00000NkvXXu0mjfs`n70 literal 1552 zcmbVMYfuwc6y5|zBZeYA21T*UVn?)W_L0D5*Mvt%0(1;Sh!v|&-RxcRRfjl{0bXF{c>8=f*r`5 zhc=M(@5ZWrqfAN zSiykb%1wDq5zMDnejb~0`O8K@On|!OqfxUG-aZ+(Q86UoZvW;H<~DdM#k~{ z{|z6elENaj@}Js?iqwLPET1-mx_R18z_0d@q&ABsFL8s~XcOFvJr0dV6Ap)mmutU- zAnlwYd!8qB<#zejmQ%R?P&oYgop~+RN<;{}l)IC$y(#?^lW2XkJ`jZI}1^gLLOgdZ%rUovCw^z7E~ z!l~;=Cr*03x1pOj(EG`&H@4hZp>-BmZ15W$dZ9@eJ^e`6RF+g8EV=NvRs+5Y3CO_R zB{wLYd0^GRp3#v4sG)jIrY)to@nqF!?L!)OQq5({hS5yO)oSRtesqr~=HW%x%;6~? zUwmt6TLM(sxw7d1I&nhwz`{?>>-6lk7qok4Yui3@>e%qT_GzZrF6PhIVswe=+BFTK ziVm;fszPr|6 zcj-`^_TI8{=QlTZ@1CaX{P0(3DEGSfcJanplll`5>zj8jKK_fXYy0sLP5k-#Gq;Y- zyFF5WHGX4h<4?n1T)|JAO^)3)U&=2io40${H}7_RYmuQ%gVm4bA4&Z_Z>Bi(FoDmR zYg^&YKdIAX=pC`QzZUnWnT6RyH(Qt7dr3Ev)&)&nr5_%!-0hG2ql+BH_Wici8~*|F Cax7W^ diff --git a/assets/dolphin/external/L1_Sleep_128x64/frame_3.png b/assets/dolphin/external/L1_Sleep_128x64/frame_3.png index 03b2f529a1e8741ea968d05ae6737c0beb54dde6..ba0ce672f3a49a20854cb1fd87b0c505b20176a2 100644 GIT binary patch delta 586 zcmV-Q0=4~{4A%sZ7=Hl(0002`twPcO00JIKL_t(|oaK-^Zxc}vg}-~VCeA}-d4xyh z6$A+ilnTj3#I6+4P!KnCktp~B0UD^hU=U>@(NHCnlr#vavLHm#At72~M?yG7BpV#z zB)fYLh2vm;15?d>Ix}Zx;J=88e<}+@aX$knfQtq}I-m_0Qh)3QK!vlW(Jvz`ueheS zfK3ini~4k6YuW%N)X%{dOvKnMF0yBfa15O`qZNcX;lWR&S0C;eb zeU98&pE)?lH!IFbHP!mowv?-?wQ#q5Fw`cj!=-3=4j_h+dcIawCN+|tViW)aKNfo6 zB$UCyz4_kI>3_O&Qb*3+?!VAf!9(Us0(ey52(-^Qd*eC)t940gsT(s6SQGmI4RU2~ z0BfS&1+-%OIsvR&lC+|xv>X7Qx>BxHy_Z_gfr4r+k07*qoM6N<$f)?-xR{#J2 literal 1563 zcmbVMeM}Q)7=LLi)(%;5;uxBF7M+aQ-bah=omK_f&N5rDlvs_^UhiIPhj&-6hZIDI z*g2;RKf?T+24#!JI7Cf!$fAU(i7}GQk4430YGUG?6JxRuKcKrJb^F8k$1ZpGzVCCt z-}C+47p3kGM{2S)0DzIs**1^7*2~Wme~MIpBW9)OeK_%09+E{t-8L>(>f%? zT6OdCU6?Ce1cRa3wIVF5b$glGN`_>0GiM;vqm-v1zh7%7}YhAy3K zP-H78kIgY;PCi+6K}iZzC|X@zZKyUH1aS$9lO%~^1WFKk8KIBV@Dd%>^O2mS1{;hp zVkj(y1RhCfqys{gWYx*ezKDVgyIe07^O2!k$yr0AbQr}A7|L;p&<4>F$pim&PJ(XjT-D4)k9HE7imwD=Y`Oe>u_wvt5 z&Mkh{{K5F{{Y_6fRa6P6xhrqX=hL4{t318r@UHvjjk_HRjaH*-&(ONJ7UkLwj&rp= zG^_hA{BkosK6V+NGY+7-+p+lY5sUx$)S2Z0Y-3B>>bJG+d3V&S8^3+L$h^y6t+j4t*Ib3yv(Msg_!tx``>ULcNR>uEX^z$8ezPvtQ3p=^x#=rVubj9& z%{DQzBNcF?4&CYA{A6cp?7UAoiyYIe-ahZfM;RNkk@V5q4!)~(ZOKy|O`Y((wYB@? zoV!!@fvy8@tXJ8}RXc{?&U)~7HORWOyS(w?gzd-D3p_m~p!r#5>xQgzCx@Lqe>0;4 zxi%){>Zn5lm!0aXd!TmR>B8m3<^F#4=+3QoKwit?C#Ni$r`j_YC)lxLn~r>G(fYm~ zYkd^Fl;gNE>2}lMR$^bN=26ei^0ALs99jc9a)f*8^=t_|o?$VTr2B)X`1qL_XKJ-S z?K(N2ygvTTy_0fV{GWmBwZ*C*?r&SEx_o5sqE!{Xx=hvc3_m#0mG*1j+V6$L@7ig1 K+u92K4gUZP|0-qx diff --git a/assets/dolphin/external/L1_Waves_128x50/frame_0.png b/assets/dolphin/external/L1_Waves_128x50/frame_0.png index adad4f41300d50f3f2f2b39ab62b84cd3ba704a0..aabae9cae6e2ef6a7c824779422c7ea84a9bff30 100644 GIT binary patch delta 539 zcmV+$0_6SR5vT-^7=Hl(0002INA4H^00HkwL_t(|oK2HIYZOrw#eeVZm|YB;EhM-W zx(j0E2QY;)vsJ!8mc%Ntu(uHlk=<_~_z4t6WJd^MBMRAxjgS#_ndpU_dJwW(srd#q5v{lQsT-XFEd<)I+PvSm46gbY+zpTdk)@h4_lxafz5KQ7 z0KAgM8s^ZJWY+e>pw|cZd+?(n%;^4EV+6pTO=`_w)}J-|zVF}m_g}-f*EH`oM&P7I zTwfvnjOpikzkk19M9i*vP5~V5ErUJlJ3gRZz}}M`Fi(A_4;Xiulg%CA-Yw_thc$E( z$ZLB*=c9Ay{nDG1ezq=v)}nEP_#rU)f)~Ja)d&_}!i!oEc41a?fWyb6!4(<+LnH}W z$+4!AvVqau*98kQpkBGLOGCp~OtnJe!FWh{DA5IiTz^zjI+#dFN6(868#u54UICc! zG7y1e>IvsX$J9uQyBPAE*Ca_tIw$`d`RsaB dY0R0ee-vsJc0Y0F~}bxibCYt`N|mY2f@PLTb;5DiBl8bKBoMI#*F2sG3W>P5+p zUF$oDp`u{NR+zk`H{t+6v9wJA%i79)d|M-L6R@I1=)x!q9fX0#q0w+iQrV~-i}_{Y zSf3^^GzQTc?O3rM5UuuBq7GRBsKr3xJV}zM#by8kNBfxo$InM;lBNg>el0jyGz*afkW8vVF9Sdq&ge8cUmKH+`V~~}4g0k6c1W6M#jY9;kwn`co#U-^M z;lT-1UJ)ajC`+jBk@L$j}JR*i^q5rQ(1L^!Ndi=kDm3fxO$ zLbU2@jR2wwsB)9S0|+m;XY6W*k;gbp!r0XeBrRzUtN+i&i8unE#6_BvP^?S>Pk;~z zLw_pdL?sDDg0d#7LHTc7CzoS|&;!6~u@#C4b;E_6GT)@T^f>JpTrmiuz?zK=2W%9D zGqB6J5eNYHGfV)t+Gsyd*-RvFH6{E^WKWh@jBbac*l2OMD9Yuq8cl8|Q*3dV7`Mw! zmn3XGlB#hM4-&COJ$8ULF|^r;0}Ertjb<~Ab7nuld78JHZM224@l?#7btr(-WW^`T zp@di~6O}+|#z3NlUXB+fy*5vcGXYLc19nUoE)F@;Rv%5VP`f7UJd$BaG7k01f*5EW z52bO2^iej}$goD!eNeb@1Wx1r6)f;H!gv>M=CgAJ!p$XX6(=h2q?#MI7yhp} zh-6Zwq6(YTI(8H+11rZyAra;X_Y%wT`nHC|IG8&&HaSt^BxSZ*86%XTpRwUafivTN z0r+vAH_?KLqpScxWyGDf1OapzZ!wLNCLc|+Ml(y%iN3{QsvOW-I0Y2f!yPag5yj2; zAScxWc-9h_PE%-*h1wJHSP(Xr}QsC>SLAbgIK~i>koW;KCLx-z9vksBzj?qyqGdzblI(tg*SNY7^ z8GcjU^1TRhyZ>z8)o)7r?q&>xP7LQF#r-{<4Wa9&%hIHyy;|X}l;@8RdbX!E98SNU z7Fl`mkM8{`#;F@uXXbcPBQwvPbQ@|PL4IBCI5~4lTIkMC7Ubn+(TuvK3%>ZMy0&h^ zm$P2G)X=~6_q-zy=R}Vb*1TVLt?W7UMzqV&aPDCDB7g0=7xJYumD25@qxQj@clY&o zSIs#yzx$Ir>u2wnBHkSuxs|n}cKTbR7r?RAS!X-;_8h2i^k4b5rYl%izN+TtZyVaJ z#%+5J{K>ek^~_vz!dbDhVle%UJ*VgQZ62Asbn4enynFfC-s~Myf5u1sISu{$J6ugy zdQ#tOF5K0%dDgt|-&~%0fnHy-&7GE&)q(BF%SQ(~v(vM7t{HqF<<*hCxs{zoUC6!+ zb9?{!C(A7t3vxQzFKHhzrKv;fHePm4zqMuPMKJu?jn@yf|M>Cd4KHQv{^8S23oQGF z4`iKP{L7Z$sm$Eof$rQ>i+4WyVU5aW%pKnJcw7DeUQ{~LdGmN_b>51tx#t`G?|e7y X?SpCAnR%DX^?w{5SGjX{NnPh(NrwdN diff --git a/assets/dolphin/external/L1_Waves_128x50/frame_1.png b/assets/dolphin/external/L1_Waves_128x50/frame_1.png index 462824be2ad9e4e60ec92ae7537e962daa7bd9db..4adada4f3129dcfd0136f84fc06ea7f76c23276a 100644 GIT binary patch delta 544 zcmV+*0^j}W5v>G}7=Hl(0002INA4H^00Hz#L_t(|oK2EHPZUuU#eeV3AZsKnF(hbW zn60I;u~TQavNe$>ozYJqjg^Tz;0NF%7z>)6Vu|#!N&NMP|+Qc3b7N$H_1oHZ(0I*Wzk5r73Sm$0KWKn4sflPR!P!$2VINRkdS z=u5nkb`${+4jPhKexLMO4&eBWtneRn&srS-zF^kpe&CpL&bg27XpPn2<6K>m`uiG6 z${f&^q~TDxr0jaR@YD=i7R#?ykB2!&%ntuiidQ_M5qZ-UWR1&r~4!*pnXC~QeS)esv^+7U5DRrhilZJL27SX79nAl%cudU7}=yMo}YJh zWHA~CF`l8>Q{cv6_$7z_3mqXS=;Nbx2Hgu zihvmqHA)mWK|{h2r)(;5C{7R+6fqkRh&X}7#0i3^fIR1S?OH}Mb=vg$efNF8|Ks<6 zd|%g<7UyS-%^IuGXfm7y_A)rGf)ACJ41eD|t6c+!)Y2liV_;waP8aU$T?vQuaKYk; zMl)`b`Xp&yeQhd49TMG@N~Noa<)xsG6C@AN)d#~6tFB%klFNil9iGgkKXznplcvNd_7G zpwOT!c-b<0-k>@7Wkm^;jsPjcc%j z2rr9aMU+B_s*&?ZHHrm=&c;{-!!B1saVRnvD;PDro(tooj=+OKm0A=XQOdv_H-<$= z+znxXmw|{>Bl7^lwReOawb1e)hY<)nYC%Xzh{NdrvvAywz$b9w8aWURlfdI30D@3o z1acx1gu;GFks^NSZ&W9?qk&Kjz-X~0vIy&j3)m&TMpfywTTr;86GVYE>S+!zB#F^5 z%a|Sr0Q1na7c(=IhbI{W!J7?nJ;TW}Hrk$RwHov$n}Z}BHnZN4XQy*bHUpjK$fK-r zS!XDsa3LPVZHv%0FnK&i00@lo5PD4SF;W;K@J5UWz)Ud!kN^l#dDbQaPLX7{Bn9Hd zS{jc8LeV+`ndRbmF{H+3_7D+Z=M-Q;)xyOfN6PG`NR~9Sq<$_zvjh=?x+FpLHVlPQ z7)`iIhSk$7ZMX{x8%N+2?q9(I&w3>}$iV^rR`k zRF=GA0B%Ie@~w!|VKb79(TGtxQtgpgO6@=vYk`m_OF<-B5Y1TaRSL> zUISw=kepEfgf}i<=Lb+_EX5Q?7~B-a>WwVH#Pb%j9g)0B9VdfaAMAjU6j4l!_j4g1 zfM+d^szlWj>A%w%S)s=a-c4tiG8`!#^6s7(mJY7+i6sh;71o^`M)!uC#*lq<2_Et4 zG;zJam&64HLNHP?yncS1(lJ4!NqWy|&vjSsKT!EyNAip`?Z7~9OMm~BwQ~A%3YpT9^-@Y4#W>-6Unt1&3r)`_F{6CdEHmfUX`KfdG`poTm zZTFOJ{^09%t5Z*>6-#^1&m7;~>F+XLX`h?Cs&&qZnWL&T=_Os7otyeddf_+SYjsU4 zD&#r03ok6ymP}}6awhh56n#I2+*o*O#+aPyYwM~W2&FCVF5D`;@Yanp)0ew)7V-ajAV@+S(}&tKlSv|#dq)t%S7mS}%wYI-W3`R&M} zs$0c*0u2TaBLDyZ diff --git a/assets/dolphin/external/L1_Waves_128x50/frame_2.png b/assets/dolphin/external/L1_Waves_128x50/frame_2.png index a5a72884989dd01e871f7133051e0146dcd5b1fe..84b2453bae5bf2aef2ece09a8df1823edfdc75c1 100644 GIT binary patch delta 545 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 diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_0.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_0.png index e34e7969077ef4ecc5a858c3924eb7b46b37b264..7f1c84c26d091ac3284ddbb7e2b301732027b6b2 100644 GIT binary patch delta 567 zcmV-70?7Tc2*d=C7=Hl(0002`twPcO00Ik1L_t(|oNbdmXj4%bhM(``r1npHi-J`O zNelJ|EOnAngrtLmBE{mMAYvzR5X>Y_Hb_w^h~nbll2K_KEtU?ZNF8jUVir-+>*m&q zHBC*^&*A>$Cgxl2=)BNsfdU-h?6TaHomzyWCId?aZv2t$VAYQG1@K+=aS3xzEY zWPn_|!7&kyrwzN0w+P7hNMys#{XuH&i7oOd4E;1fL1KyZt`^^F}CChss?xB z(bVa+&Q9-?cfzEHRaJFwBQ)*t9-D^M$+_tGmOD$OxjN8(ZQMB*A%W?j_XAvQa!<4M zGlYtGBWO!UO>e`&^@yp=LTM<{VhmLLD{Nw_x`pcB*@&VHNX`e{B60!|$@sIR6bdMO zh_n>o7cfa5EQ<(8LVRGmzPoR-d)q(5mR2X30_(Q=ihspDxGyL_`zrtd002ovPDHLk FV1mS25BUH9 delta 1065 zcmV+^1lIe+1hNQ_7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000BzNkl(Uz?s2!`8d_5QEyxj5rlY~}~SES30fcBQ5zAfnBDN-5iXt)gt{1iqYK7ND|< zgzn4^)-)}^%Si!vIVJ(1rmP;*UvBEOJX(HqEY*$fllT#R0F64Qt3J)EYgmYaMdLLKfQCzJ zJ@vXp(3%3EjkO;C;7v#x-*bv(*B6>aevfv(vGw!8}E3j z9q9xPL~{D>z*C3TuNes(#FL$0>$57UW(iC~0FUg^>wm3i9ltJ}@66MkPwVvz2}lS` z763)@P_z$~q31}Dc4t=S)B3H}011I>2=F|h78OMKb{38mwtDpnK{|mK;O}e&tnI1! z(g}PyL!3aKM$gf&L&$Ob_Utu{kfw?| z3c;>g&woiLu#?rzzo%{K1O~)oSyqb=l zV}B?3vz3y|!Cyqve#s(IG7|Vhw9e;9&vq#iIMOlWWukV(YIH>c`E@O7XWc6}B2t(5 zaeo+s95b%HJ$nUH0IqpbcbgH(z#R8@U0MJNTbW#8aC~_Iy z8kqh_)NGzujng)+(mJCJiA!4mDIj!LCx2+Ops2&bvH~z`L8dhojwS@+5HQQs^=#L= z13Lao;p_-3WdT-OjG>kwlGansQH5ape;w;>_Y*ONoiP97NKI4kNNb^OAoW~F!5^t?L}B@w1!xaBIwI{Z j(~s)&>;`_r+@JCnH4;`)~t{uxAY$skfSg}OwcU|&H5TOnu`L7~YY zbSTEbYTEid4)4!Rp8ckK59j{wITx-X+D8x{*DS9BfY8h+Nq?ef9BGo&-G(}=wu6eN z!jbK-Z58$qfZ)O4U?B9VCLma}Lq~(%4p90sbk^T@3?FR%07?-e#X3{1(0w@IEJ09R z?)QZeD0?q7%I?po?6^1rORO0HP&FW_G6tHMBsZ8h!cLNZIj2#r?5;Wh2tYaK1@4s# zz5@U~1TO}TlmWmmtpzv!q`m?`Gk~B^+ivV23`H|X^Z&n0A5N)U*OzT4nQ-xvs)i5<1IFw)O#5oBwWHXUe@{1{c$RlR zc)eavwqt3ilO3&}-^cO4QMD4>NAKSe`}s{1qgiKhKW~0wG=B?S0cm25GTBN5Zq6SM z&>6)-XJ!U(S{`6?R1Z*G5A_JBcevXVy9Ur7U#w%A_O7?;Sd~85na?U2%9VZQ8UPpISQ}iOy5HufT#Hly_v1e{#B78e~1^5`o!}9t+i8;##d{tNs+3W(Q&MS zN8o*ql;y^t)qkZ?BJd*k#L0L#&9z%~X-0=G%kEQ2ev_ioNo*evsf7Bazp5PJ@C{?bxc7I-GCYMhcVROe7Mi3H#RvzyV z9{8bkcmi@{M%&qwF#-x?0NUdmSN2xNXpf3B8o})R8p9HSIHS$}PNYrTGnWWlfQ%>Y z1_Oye?YFixNaD^bH@Y|+tvy+|vA6~xz15TQv@&Qpq~50)(fywV7J*(APZESuo^@T3 zC%X)k2!8|_RRB^lVz5Nu=7b`FJuUs_$I>}ZNP5>;*GtEi*o@5N8D@W$kO=H(>kZOL zmLQBq4y|=hdL3=0cLnkQQkYlD^U~gZw6x|~kb6mGSDnonAy^_1V5TJ?Dg;XeI?OQW zXMiJtJS~a9p0WbX zs7K=y`&1QFesYoC{Z$<6Uy@C~~dxr2AL!`BY&)&>l!6#Nh&5JG@nfA>FGFFt(y8vyrT4iY35?v8NhTK;YqgL5n**X$PKl4hP zQ>F3LC=vLL7AaeutqnlZE%b%Z4s2}z6n}06yBNau24Lx)9hQad4d6KZKclj;5tIRZ zgBZbzlmQU95v)4vDeB9hRW05lvyX6Q$^#Ij$l>a|k3)~a?}Yc>d{usyfL$zJV|7=r zvBX~s*S4M)K1=-TSia}*Y#loR|KrH)p831-w6@a6IG&&R=FyCX!QXOPpW)Y2fFvb) lM#$se+Od$z?;z@;d;y;_Uk6aYj#&Tz002ovPDHLkV1gAy`ey(D diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_10.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_10.png index a28a21225a8fee13308130f7a7e935ecc60a85d0..ee9424ee54113585ade555f3d4845bf3828aa176 100644 GIT binary patch delta 607 zcmV-l0-*i53G4)r7=Hl(0002`twPcO00J{fL_t(|oV}CJOB7)k$3O2oT zb=t`U7j~Sd!|Kkge?W73=fm^;zR&x8-WUGIr=n$I`EJrE=zj==#ntU0G(e^Vz{Q^1 z9stI>YO_yQEsTClU{EQNeSO`xhSg*lP$IdKVU4H89~^ejpdssMd#O9y@hA|vT6Dr%jmN-9ybsGjP9&7LDeGC~x^b|O zN4bz#IdV3Q27lK}?MMlN*@NGFfY879Q#{ZgZ`{cPgq8Wn;zb@x{FC0g6J@G`#iOT} zzYh*)?Q!*LAHV$y*YCjkvA|j=jsffrAnn7TF`ZBXIbEdF67fG%c zikm0GOS@N!vA`}`iQj&2sxI+!;_veiarXlN^{~(Y0f4fd#oJfGMDu~6%vvTv85 ztC5ff5Lgp40v4#K37}I%ytXi^aDY_wkTktOYb2Ni{{X-1{g6O*M9lyI002ovPDHLkV1i8tBNhMv delta 1201 zcmV;i1Wx(bjQ40O)){a@MrafX&pU9BW;#z8xiiDM%!VG%3g&vjk*l{gmvJ>7xCvq%CQ zjwHb0NCF&=B*5WF0!+Yt-`9QL@LDUQ*?a7?dOS!1Ov2~$fq&Q9b2)j)#pGfMyK3A^w6&xDn0R*tQ5L?ACd*F%XQ#&~NmElf{fEG2-KrCvrS5&E%Y3y8Y$ z;`XcwZgqQdYtcj&dWPyj*PilP{Z{*)etR*M06qJ6vGtH3+J>yt`d#1Gwk{<4m`Gz@ zPHF>BKUlvRrhgG&lyLKqAljZ*Ct9&gkZHE49&ewR_>)3WvyEVi2AHARBLhrr;Ky(R z%naFT*XS*q;263E%#PQ+x**aQk8rEo)WH+t%tt!V~qi1>0l-XMp`FmT>ZjGSrr=6MwB*ZQ`u{SYv6y5Dl<$_1EwS z!_)#CO9{XxqdAwIB+)y#WSzY!&fMqym`Z@_(&KVjCOY}ON6Sf) z|9>$p3Sj#t+bg~0dv!odR8YHTExPcOLFJ?yxAGaIw80btSgV)~ZpLIYc>g$0Hqj#l zr5&4mSwCu{*ON^Vfsrg({agF&f=ITGWdQ3kmMto$g^pWg0^f#HHNj(wLy5s9`DnLNuz%jkKtddP;|_u|zaAb%PPYMD6em==ju`5fK1`sz9KLSvE9fM*;U zUO@nDU{S`iPz#;!Gm&Psfs{NuYS!9}gnTXA+IAvvb{LrZ{!eU2fG2P=DZW+&da?85 zGr@=M9VY^Nu=B*%u#Sz75P>at%LF6Ha|9GENU_;^9`JP*Z<13N~I5ae`0XnKGXR@(_<)IbSv@*i^whHU|>U+31q-pKXX zod%Tv+ACF7s#TWPp6!SeNdO5jYAV9e3z&($@Q((VF-awKd&BBFjikQ;kO~x(GQCul P00000NkvXXu0mjfMlwBJ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_11.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_11.png index 3d94c89103c538422a75bf4cfcbb919f4997c1fe..7400b90eb81aea8f85af46aabac06d9f5001f48d 100644 GIT binary patch delta 607 zcmV-l0-*iR3G4)r7=Hl(0002`twPcO00J{fL_t(|oV}9GOH^SL#((d7?|ejpGa-a& zd7&09N`{Ieurz2BxDcV08>vmSDQMBIt}P;WW7w*VNJt9O5S0?4lN3&2;3AY&kWU&~gNQit3 zSWQSm(&Taa$=TVZssnV1RDG3BUx*(Y%wU2A8a2}X@(~4p73dZ5q{*S7FEXeNK>i;zf|~n&I*(&aSj$*riTZ& zS339mIZ)o>XL(Z?O&=a@yKmJz)jRRE{yXaRWHJjVFE{i%Fjb>j&(oR-jZZhg)lYlw zzKA_s)qoF~{QSV`%+53Fi)sP0edO)Q2@5d1`3?~$G=Hr+)W@GxXm663a}zFY?=MYm zPGEvpI<-=P)V-~Z?uI}{s&kA)ltRg;_1|B_2Gn>i0030lY631m>}j?ExI{>y9JpMo z*m9zP+gMeJw20Xl0W?WafhwRwM2f9`P+TKnv8mQgt0hF~m_85h+W)QPF6& t0C3P$mWYJ0<=+;mHZ9X8$^uB%fxkeC@{?Uf8aDs{002ovPDHLkV1o1S9|-^e delta 1223 zcmV;&1UUQb1kVYO7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000DmNkllqyrp| zbb!N=4sbZq0S-qxzyw^^Rj%t|uTdM+-_j4su^=5_5?-$tdw-3dQ{!=cw0@|Mgmi!f zs77iHc3s!6!RoctPFm%h16lDZn-qey2}Ha*q2o3OkV0NM!#XV80xE&w4BS4`42)z% z^*|(xdxrFo$Qf#nFpUHBglG!ucLP4m}UG{zJ(W9b!lbQ2*d5I^?CbA zfjEWMuN@o7FBj=>Vl9 zF&u><5n#3P>zHZWek`p7RuaekMPRKHtcJBhIFfKiYc4QRjrj^Ej4m&TuGnA zJC7#tb;WB{Htrdk6W7;6#yFCP#lA1S+Hi%1Uej%k&^){{A}Mh77ykVdv+ zT7Lxi9YCr5*EZhOuhjy2`b%=@K1{O-2(QXO})XKOtEus^qe{H+bB+w(vQ>~LKfNdMCFV_yGj*<5=eG3o= z-=rRJGG|zN989s=_%n&;Q}MVuKrcAbHh-d$r}aSm%K_;?@W-6B^O95-F{Q zff%^odfKU7VZLTm62`{9vqhiQ0%_?wPWL65_qfw)GFhSKxrOr6Ms2F zp?Cxdj9^#e?uP9+KrhfCR5}EYuW|q>3`R-Px8t!65KR~J4B#DGJHRYMr4#&zI}2Dz z{zjkuCqChFfV+%gbp+31RU<{RcZ{XiE%)}Js{e8WrqcEH0Rw8wgkD*bcFO!N@d(|82C l1&lIS`%fQFd9kNOt-pDr6^VkGuVDZH002ovPDHLkV1k?YF?s+1 diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_12.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_12.png index 74e0b962c55e38a6a8576397ab6a3e8fe38c1c77..c8779d6b4a89aacbb0f8932fcf8a0a7658ed2e6e 100644 GIT binary patch delta 606 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 diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_14.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_14.png index 42f844d3d73b33f409350c8b9bdb4b12d17202ea..7209b545fd4f851b2625f5705dc4eaa17d19fe54 100644 GIT binary patch delta 517 zcmV+g0{Z>P2a^Pl7=Hl(0002`twPcO00G)bL_t(|oQ;z|XcR#d#=m(tn`~6bT}W{; zCkC}h6VeJPvO=0bh+rBUK@hAg1RMhn`7CyJ_Z;uQ*UaNL-}~mxFi#PGhro{ABE1d(!Xjo#5`RIVm?lX*T)1wkUZ#?$ zETs3bJ;2+=JI}jGV_wgV0sz!g#(?0+)yt+As%al+=p5TFAsOrkb6%6_~Qwq9F$H|1xx;m`^3X>XdUO6Xz z)Mo;m1(dgm#((~)k&(Go4+u$y2ZCtnb#?3ofCxa@DNNN0$zRDo*H?`v$D_)-MIVv? zXbx(8cRzP-J~I0nf`>no0oRAQrYcMwl5Ep56=;0AFf*(m-1QYWV;hnfMv00000NkvXX Hu0mjfUDWnK delta 958 zcmV;v13~ZI7%V42AK=|NocS4|hpAXWP<(I#~K7n{j;sl+$uVCv((VYe}}{-?tl(e3!E= z9LMp^c7%o|+10M|S<3%LA%9h#sIJ-MiBD)GyF`UhDr{ zJ<&bLsKBqjE?ogoXvc9`0Vh1TPpQluBi`GYQf8bH#Zham+)P#U2z&wzj0P7(7Nh{` z?W5t!0Ld5_RDYHr@SDbyxYh6udT(qQ4X}1VlTrD~UGlQ#W!5FcLLD@~2}r$Na;Q+W5E2wunLUF$8EQ gncL!ZekrB=0CVNU0ogAB3jhEB07*qoM6N<$f{WeCcmMzZ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_15.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_15.png index 861b16c65ef501353d9f1a34e1cdd0d60ba00187..b7725b350246151a588b8c36498d8cd0a4ef165f 100644 GIT binary patch delta 520 zcmV+j0{8vP2bBbn7=Hl(0002`twPcO00G=dL_t(|oQ+dKNK{c2J@3u?`nA9raWUpZ zQZ3ww+rWiCa3hF9ZrlVy(5gicxXeEgEoxCli&pX%ZIZEC34)*n7AjJt%i#ZZ?fMkh zOf%op;=lL*_!^2F_Kh$x$2teBq|eO zOm;5Y0ob2;wBC-?rqtvB06@H93`q3eUeLWzjQKz<Au{3HwoWU6z=*=$2j}9? z>Ue-_fbiB(+kd^>-#_`>145GFu|zcYu{`)5Km?%ZfH)I+@se06&+WQc=jvla((DAMK0=)WRsStgu>yyfl7Fjvl+Blsc(LYzvY~2Jat9L zGP=yKo6tFuOl(mBi7zj#I*W1Y6%8de9Ee>C=O63+c<1Zw(s3-V5UkU&K002ov KPDHLkU;%>0e*fhF delta 961 zcmV;y13vtf1j`4I7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000AhNklZI7%V42AK=|NocS4|hpAXWP<(I#~K7n{j;sl+$uVCv((VYe}}{-?tl(e3!E= z9LMp^c7%o|+10M|S<3%LA%9h#sIJ-MiBD)GyF`UhDr{ zJ<&bLsKBqjE?ogoXvc9`0Vh1TPpQluBi`GYQf8bH#Zham+)P#U2z&wzj0P7(7Nh{` z?W5t!0Ld5_RDYHr@SDbyxYHQ$PB>Hp8oA1f)oHj zdN(n$5L_>WL`Hg)O|wD7Ympg%(0lDY;;@hc0D7;zMH7MeICwYrkI=Lq`5Q%<0TgH^ zh!pjdvy{)Y7WG6&!D|yK`b!~0K(rIPk~(PPJ|%|$BT)k+e>!$^%s(8djeomrix?yy jLx6UYxh-Djmr}|PD#*tH`i`;^00000NkvXXu0mjfONP#d diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_16.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_16.png index 2f4b3b839c503640240c59136155cdfe758c9b68..82b1feae09a5fc3b86a2bbd0283bd3a8835d5f13 100644 GIT binary patch delta 601 zcmV-f0;c_l3FZWl7=Hl(0002`twPcO00J#ZL_t(|oNbdmXj4%bhM)7@V@YdkQ|M5& znm7m@tm&d?DJG>ZN(X-iK@baq;1&cO?e&K)4y`VZW^l1YU7hT$xL5~^f`Ws+wg|-~ z(H0EpO+JTvZ_-|Tmvead&U?=HbBwZ6LQ-CPTLchoE3c|bsec`jQ&qLSZPyp(f2Ptf zvBc5p&ImO*cL&(5i$yFS?vEWg3&5}qGEhEaPxk}hJPq<|uBGexXnGRB@twK71m6EPXKmjGu~XsZYyScFRiZn#Im2vG9?6smx58HcrF z7hVI3AXM0#>b^Hq0@nwG$6>oX$h-lB!~7iC%+^Ocm~f*uc(nsJj=qG0;ln4P>y-`t*wm&9$CV}^bAJq(0$5-o_3O#ozCkQ=VEOcI zS-a2g^Ic#>LsLt-Fc79&7bXLTo2f%Z2v(s%nIV`~T~Yn}eY#l@u;79ZwI5j!aI`g5 zQ&hLlN7W0H`)!Od2FQlVkx^CEY#bMNE*CcAYRh9iT3g^x5^N>Gu0jHIE+>Gqo&e@S z5_BZM=2D#ms3)(DOCV141M6i>qN=K|WHJ7f+2}~`ioY=3 n3~JRlxl}qkephTNni~EAr6=YQt+*A>00000NkvXXu0mjf#EKJV delta 1151 zcmV-_1c3YI1c(Wc7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000C!Nkl}E?TAgHJz+?UB1H40Y*%(PdnwU)$d@n`n{5_|EvFRts_ zIgZePM)ov0e@gi~sN4zsaLe~ZIe*}n)7Y8t#|Iaj#?T0$7Jt?$i!GhNm*bZOxN!sLt;-&dfK(3UHQ~pupA`|falNEI!cPu-_JrMBF@$hCvz_*xpLW$fJ8B&<+Ae%=fcGzlQ>-`aXoTPi}3 z%Hch#OoBANk@$MG^5Ju@>oU(Bj!|s^@HO?lRZnvGEPu|R=DE1P)+ZOLYR9t6k+p0I z6baG^9K=acjCLHb-n2~M2?FrM6GB++cwoJuOdyxkiH1`Y?163zz&U-s@rX}#Bk4VLh*6lEAled22iX7sTWt5&JEY-+9RGl3_+9%aFk%|C>S08-|y z7uHN$DSzMF2DCe#oZJ(XOtWZhcnURcg0op1ujOYxe1 zcZQPcFi^VQi5bH4T=h~OUMgQDU)2jCt!oW_r67s(YR$xPKazlZ`k?MZ^n`z$l{;Y( zEqN!_fA$~~2Gg2FLWhe4d6t$!1e>Ypf_5sc(HX80u9K1}ZfLWjw6 z@L+}Zcvi|pO6C@y{I%*!WgMuj?nIcJKwNH7uJ&lP)n`jF)DbW&$K-0&$M>v+?j^#i zgC>&`2)}E?n_lcbW#cTyXn&S@^*FdzEO7!Y=Cox6D1lHWT`HIQ)*Nt+5W>2$y|cgP>x+imIMQN*yv{4!qJMxl?4_$PLzW!L@~2^oU|s#IFx>*2@O^~iWfRRB{NDni zO>8D2JB7IgDDl(<(t4FY|8?xkq5j8_tsgYJ;akRoEcS@95h|C8C)t0VX*c1TV!yrsp zKJ0e^c=8d%TYoj^&B!csKxxDf;6!Z%Kz_h5gY^NV0_2PVa$b-9E3`PW_58dd!(#vsFS03y6BM>bgTc4j`KMm)+w#t(_-Ob<81z)Rg>R4kdUrYniv;1% zVaTohkkW)#0CGT=|FHBP*NjXN2Il;Wi05|alpC?;FEowm!&a00000NkvXXu0mjfgA5O7 delta 1073 zcmV-11kU@u1iA>27=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000B*NklFAPp!3<#IgAE?G7Zqi>oC* zpU*e@5gJsWI}^|2!W*kGG=Bm(!CFPw(g{2qzcfI@ zDh%BjJ809?0EZ(9a5%aIsI~r3Wi3tb<8$d5me=arL48Jm=mRuJYgc-o`U`Z;YrW>$ ziSC1p5`6Z!bO}H~Cyvt!81Ue}r8-ZPc<*FNn(+=PKDE}$MXI7p;2S`}XyAm%0!e^+ zc{I2*Kw=CiRDTvB$f>rUfL2 z89%K|`)KWOWvuUDb^?2B((-9#k-?l(i1l)LENs{MH`BIC52pGBeuznKb~{ zxYQX_N6 z(`L{UFE`Uc`ZiXGWLj2gn6K8_Cjb|-$7ds*<*|qxv2RxpH-A&pAZV8n0{zdnc!-*6~_0 z3DO3VR!4+5hR3YA&IFw{!YaJSEsKQhdF z0o;AhAX)NSNYy)UK>HPMCaZ+NKj=_ko+`6KBmoGd^Ma9ykOcS-X}g$egNQ^(0uX3t0HT_OBmkgy5F{E2#8B|5q0t8I z2QZPwCN+QpstF=VJ;hau{Og#+@3Dy_{iP5S5becgBAVT&NE2X0Q~}9<9eX&;|0+0A rvwx>Nizp;NOn~;1`7GY#mr}}Kb>49bPpXFC00000NkvXXu0mjf0z&kX diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_18.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_18.png index 0b8fe650ea9feb34aeeb719057b71ec175ebe8e9..3114dc5992de4b0e7f340b0527b967e2ec19c884 100644 GIT binary patch delta 556 zcmV+{0@MAh2)P817=Hl(0002`twPcO00IC>L_t(|oQ;z`XcSQp$A9zoMK^Mq3s^)G z$psXyiD#okn_JOF2!dJ&RslgsClF80|z+RezOIM^R8!wL=}(73pVc znv#U+U$zhUaQ4=VZnAvFp56<9Jktsoc3qi?dr>L)u-w+ls)iM8SN5cBjAMAbw0?W? z$>0Ud>X!G;H_VCmAX!t}n*Hh&>e&gHj<8Rwwo?Ld% z?4yS}5^zjub){I~l>6(!n~Vz}SU!H)(9F60VYSQDl7IDVHUZNOhimS{!btKf$-|tg zE~=`w)PMyawAQZTD1b)e*4z6L_tG@*M?^%%qVcy3jH{|@*q((o5fPb+&XxaJy6r&J zm-yQ&Od1TN!JyY3E{d>Vsa-2#pG3Pq*BPmU@du+ uF|b4B@Fn$Jt5K^YDQ-4*a^6@s*_wYcsk^C5wSmR}0000<7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000BtNkl;c~1X42AWM@Bhm5$1OA2Gzlk&E`)qDopluf;UomG?O94GN3t#dzFmRjyIl3) zJkM{|BQ(^>&eqP?as01Tjs(w9+jquxzUY_P)R{cb#ZSzp(0>R>hBb?^We~VIe>^~C z7KN_N3f?q5z~-a?Hm50oQp$%btH<;_zph>5_gnd`;65Xu#sC#|u zW8v}uNgv#(5Pu_+#L=>T?jaB{KtUicTnh@dPwQSQNJN59tz3TWsk>G;54NQ%8{C4Nla?v0%$Yn ziHAdjnH88}B@>yc@pPq>wg99xdw$K!h&*QC&TQccdPMO0cJR!vN9_nC0Bhx~m!3H? zU+I!o%73(L$UXeHRsWf+--{~-sPKmB>A+eztq9NCLRwDM(rMRe9_UKvDtMozdnIrd z<&Ut!o^9C(z(F8)pZpj>+6nXQj!E^Y_x99<=V4vf@`xaWSGI$_ozt_&Af=IxTX{t2 zR8M^3dMA)KsJF4uovh?NT<-+ZfC*JtPjH29&wpAgk=6>OKH{Jt{|{}r=P8Rdx=_3jQ@&MAyAQtG3 zRDaJbLR!n0>Z+ZmvzS(($InUiSsiE^$d5gnCnFmSi6vUYK~Fx>I-T-J5IC~YzUg+Q zfRmn&z+v}en|5wtlefXzt(Y)%S*v3e{+L4OwHQUIHi0$}vKWxO&e0D-zwxq}E&00iFY zJ9vW>z%SYsH}wV)g^&UuSZ_Q<9TrjmjMi&!(L|u`1w>sFN3nhZCQ{p^2QZ+XAd=Nn zuH*Q0Yf&Gx7v46Jtp7O35D@LbMiOn@r{oX-64gNRU&n3^{Es88@o$%F5sl{B-~T diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_19.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_19.png index e3c50e3088fa1db5437386262897f389c51da6f5..9c79cd16b49348e41da517ba366e1d1bf6e893c5 100644 GIT binary patch delta 570 zcmV-A0>%B~2*(7F7=Hl(0002`twPcO00It4L_t(|oQ;z|Xj4%X#((F&Tl*@}q|hPS zN>fnCQtP5rm%gHlPy}@loFanIO&nZ(R&mfpT?7|1xL8vEEMh_MRTQiaih_d(c_@Oo zm_n#&O?n*OOY#y@@J#pq`0jVkci(-Ybe5sJg7)$}fYEkMseh_cY%3;IRc*TMx*)ww zO+%VxdbjNX-W|LCG)YQF?U5k>jWjNF1@iVfWXamnj!OuzdXTK~u+fhSh|rC4b}DOcTu19WJa-9{>OV delta 1114 zcmV-g1f~1O1mg&h7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000CPNklByw;Pc7F0Q(9 zp655)5gIhf&eqS@ar|vm-U*&V?cW*u`Jz8&V`t)dTztoD41bLPDX?YvdUTKat2GHklU5YAZ)kVH}c-9MSPD9-WJQ2cAK&M2WJ4O za;-5|RBN5>5ras*++OQjBH|s#NfCbsJjy-gX}dU51b+^MCi*q8x#Mhj1%hXk)L2haR?)Q*4%V9mVsqGycE zXS$@BGJowDat_~awST7Q_rj$CDtJfrIIvbu8^Uc{kfu|$a@uif1D)wy1>S4vo(Y_V z`6HsRXIVA^U=hgEC*MXOt%P}2$E5bub9>stZCJ-O8xe@`%5t#RIX!C(QWZRNj#orrD{A?E%lXn=f~M##rEl3r%g+on zQ{57Qd>;iej6%v-?P;~etL!6<1W>?>L3O)l=FW@Wb2P$uwTf0gA~B#0AUzCX0bP;m z8Gl7cbNNzRwf%Gy(-L}opVXe!0SyEBwrBBVWQQSIqIEmyu@lYd6px6&k)8Izl=22=b*&SSHlEEcRtlK!wIl*dPGI;s^s9;Har8Y+A%w07y(v}{Nso> z$Iqc%TmFrp&5;Dy97%x9kpy5^UCU4)6Mu3^fX$HvVCZ?ucx5C31k{zv9Y~M_AmC2l zAsZwC{y|&frr97O5t0A|))P-rZwpBPhSpdT@T!Npis zlM7dw(jvmmjDb55#D$xJ+C;mgMbKs(TNoG-6-3bH5iK%D(2WHWzG-2lL6N(te9}g! zK%zovW=@Mccizk}XLIlU-hcjk&Use}wV|nxAlgm9#7<77^L}hi0zl#1cR&;OVU9W})jd zz(Jrxr47f`=znd10-%*2dGv`$N&Ncu=079Lk3RMTkks7RHPefkueP|XXE>iT z-Gj-kYgv~v4x9$UWTTm;jbTO~noC@sT(HE`3?z~-R-T`68cjHOXLRV@0TsBZp93JL zDvFv&YR&q{%u+;*A+!8!dv^lMeB zdOi6aTZ1~;+2;9u9REJ5BEk32=Xb_=e$$)Tw6pMiym`TF8h^S2B*U7;*op)u$1e}i zF^h(-j1|0Td4S|71xOB40a|PST^V(0y_`O$bx=9FFFXUt0Vp~jpzB#{ZOhANUJHL4 z$bdB5#lc((&=C=wWbx9Vs8Z11oiH*UWK>t<)mm$kb?zpFJ0Ychqh1dgi&ZCzkOwH} z&;+juOHvNY1AlOiHL47z0?+|a_l)8@Z6~>Q{=PFGKMOn-uXzAIepD9;oGL?fE<+?x zd&ZSOx<_qR2A}wm@gUc(y$dN_lta1l0EoR(0a^?nEfrU`e(ue#Qf4Yh&-`$~N4}#- z;2@+>_ANyEh{~`sfdjZx_`N@`K}J1+D-(!*QD~6dp?}qmXB=nc26qde_8SQaUL`OU zKw|dNGt|c0&hy@<@s#js|6Xt4RRT8&)Djb%Kk&}c@^6&5Jc$`rE>|i+kw7PA+{f^K zkCtLD5|{{*vV^vS=}Y)8>cDENkwsodt1n$^WHVyPGg^NHTF3~IK?Mu(B`^blRJd39<>Cyc>wtlv?PpwA9)jwul~TkG7}_AGj32 znmF`~3tkcqE$7y49j=Iy&S*TJJ^o*TB7q84QGb9lM6gKU1~@|mPh|qHBxY8|uW${* z%Ro=2P0QMOh?&&S(;+B}0)|2WB4*rrN6re)GU0SAPb=Xa2>)pqFGJUwg?dd z{b;$3>h$ZBnZVtI&tZ94ifPUS-qlaxCx$%$Cw&sZ>h-j?C=-bK;ovTfx0S97A6&W} zEDK%tO5meY4;WL3df%A|opfXMG0jx~f z?ntQs(#j&MHyAz;vJ1EpWKo1Z&h55?CC=i>MR=B~J7Sv8&%SXFj6zb zeTwBmz_%?klkksY!G9e)DtzzwGHixXxc_maW_fo#J0lcpmn=ifm+&J5SO+hjd^Rc| felS!^3T4D!U^UI(z@aT_00000NkvXXu0mjfYIzRv diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_20.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_20.png index ae6e765320468d8e8f2d65e5f7733beb50428158..96a1c159bd41d10a04b93d239af69b3806ba2105 100644 GIT binary patch delta 652 zcmV;70(1R=377?t7=Hl(0002`twPcO00Li0L_t(|oQ;w(YZO5khM$?+)5}H4MT}sT z6BQIwq!UrNHI3M$3rVHXAE2dzklTobg`ij~(auImA!4JuF)6h1EYoN%{zc!(VhxeG#hipL1m2sU@?y(#yjg? z$zkvMfPE!xTpR72y&;{Bu;?{k`4JZ$vVsR5rpCh7B!3*gIjq?#mck-QltNi?U;*rB zmmUr!_c^IOjG1AmXUVPXSd;I__9;ZYn2u5K>+m^;fl2QbnM^+l52sMAcbYtLfvA)Hx$pOM$ZPYxuIHm3pca7^yF%~G002ovP6b4+LSTZGFe;1y delta 1144 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 KMNUMnLSTYXBOyEh delta 1011 zcmV zX3Z{@+VD_$wWoj<&x{=-dX4gAzPQs8fOBDX#*^&0LVs8{|HFn7z6V#MwWhNrhohf# z1}Jqa^)Go^wv6aD!$aN#YR#ynvun<;$-~~)-UGCFdd{cVGNRiI&qqr*1svyxuy^;( zaXzGzvS(z6pt=a^1r68vPe5r0g}z2>xe!{i2bgjGj#*$fh*#S5(U>!_nO6GFU%3Y; z`MDVYqJPJu<);`3|0YhNE6sdT&hPPBOaYKjs*H`=Q`3>cW3~s-xbt`D6*PJoOWQ6i zN@g}pC7)KqhmB)g9l1QE4pMgYb_iTOF+TLmp`+tpjZZ5GN*UU7bB$*wyD&X#P?-X( zoWBd6Y?t~T;O)*2p`8JwfIb#Jy8S!J`F|nc_ReBZw~lY{*G)v(%Y z3Ca=zn~OCr&gcR}f(Pdvs>A03W%Mt+pW@R@g zz<+vn-Zp_F{>$1q|icGjwqw5SPr!jnO5 z1g(OA(#2_^W?rc&9u^R)km9+^Rb-q>x*a@7>sHp>2KDh~W z=i^vi2C@!Z`RFr&S!l-U^bhse4cX2e%0UL@I+04iOyhS-1_)v7I%(-amECZt$#002ovPDHLkV1jZl(-;5% diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_23.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_23.png index ef4876275d1b45266fc7b2d6c72f04eb52b30bbd..df827d72ad2bc698ad1f132bce55cb08e68c47f7 100644 GIT binary patch delta 575 zcmV-F0>J&D2h0SJ7=Hl(0002`twPcO00I+9L_t(|oZV5sPg7wOJ@TUag9Z}^J`yJxU~&P%BSuM}!qXIJ zT3(L>1q<~r@a7KRJvq7OeCGoHaS2ZW+C~Xaj&2*n**UqSqJQU|`AkdalrYz*nSC<@PDN(LIi0ElNd9$ACViRMOlow!GRi!EL2#GHCSooUlav+9EoQCaR%r1 z>Tj8u{=QwF9NZhqz8D64V~$GjLO0Nu6)tk1#zhXqtgua`9bgEg z{*GA%>Z50yamgz{-b#Gs$F0os^6dQ!g{x5(#wNP**MEFty+qf|$XJlochhSmSuIsb zDiD{JQUDOYce4PJ_)=n}YHatzIj$hm4K7T<6lz?2WO0rK1tuQA0f5~AmjDI(?4gYX zKmiAheEtyV0tC?gxYV@01xS!{Mmp{StWT9+-UD!>3h(+IvQ{;=dxGSW4{nyoI!TsD zu2Hcy)i~U-2_OZP-65bZB61l(hbR|jz;Tl71z-s2o#w$~0LYQ7;SVEm5Su&q4SE0o N002ovPDHLkV1kC02DAVG delta 919 zcmV;I18Drr1fd6z7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000A1NklCodlu}6nxA^RKAg~uf0Otq- zI7bk`If4Mr5d?6KAb@iO0h}WU;2c2!=LiBgM-ad{zNN%xL4TeR6~H;Z@JY^jmmdK| zz^We=z&U;upx*s)CU`e;&MD{o%kyCifXN?i2Q5)T{u%P6l!NRS6NU`A0+b2)XURi+ zs0#$%16T!4hd>GT1=a&5u`TN(d5Fs{pbB4IIr11`xa+U>Npo$A4wg_ApZ?pUAO5O? znBi6O8aAxS?|-n7b3PLw;0HNp{v_}T%$BfW(WezUrw@Z94uH}vj)o13KF!*wD5c1c zf}>-ggL|@Hfgb^){d*?vwu7(uFi4w>T6d=g&_Ph|%8}LTp;zcw^ob&WH|aAk9292STry0|e&rk?1ouds@qLfG50nIT8L$oOW+|*A_+3au+bG zH=`4C0O#md08RF4>shaAT6*0dht8hlpP;9uV_h%00Otq-I7jzu;o5_oIFGIYXOM*c zH0%y2#DAf*TyG)+jD-_dOpX^0U%L~M$xrF8Jzg3A zEdp?p|5o(g2MMes!88FP`A3XeJ1Kj2aUcM7UyS6Ru_Jy83EBg5D}VY*Sc~>`OUdW@ z+<%L8Mh9XS`LU#Oa(ZY3do2U?w5t*P$d+as2z7T>z}~jgih3#+F zCixI(CHYpNc>u&PYjgOmU|9O0q21*l`m__)ZUQa=N&hfnSMo=bFDsSC8VRaT6b!!= t%t`*rpnC_<_VwN9wOTt!z^MZN0K}6Utq?L56?Fgr002ovPDHLkV1n;8uL}SG diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_24.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_24.png index 4dfe3a02906da0657ffad6d044f26840fd297a4b..688fb69af045a0039ef9c4529ec2450a7ce93a8e 100644 GIT binary patch delta 545 zcmV++0^a@D2Cf8<7=Hl(0002`twPcO00H$$L_t(|oZV6}Z_`i^{_Z_XPKVYJTNgJ2 zLq%scr}3Dnf+2+grCB;5RJIzaQrsVaU|~U&utJfN1qF#pd68J5Q&~cUD}<0}NKA?%uuozW3b$|FIFzB}A;mn+^3?h1QvE(tj0;T0K4GS-}G?P5Co1 z*Hnn%NKLUyCF#{u;iYoE(Rw?~iBak^?&_{1l_ixWl}X+biacW@ahjxiiT$)zPm9wP z`jJ4V$JLeue%lrE`|J+GXpMhvCE}UxF4tMFOdNFLK0#BWenP8 z^PDQ>FYVUBM(?J5KMy!kO;DsVnGN1KT2@!J+fNC*o1xJ}Fq@OhcTXq~>*xW)oMD-*;sg%kvBUjywE5z&c_MFO8}@hE!osK|W= jUX+<_02-hxH6GwMB(nc=6~SDD00000NkvXXu0mjf3@iPI delta 845 zcmV-T1G4e{aMf2!`cy-~TJSKNcI#s>NSa<$aQ+*#_b%MWA;ZIp@3sX8F850q`zx0OP;` zi~|QS4jjNZZ~)`L0gM9&Fb*8RIB)>tzyXW{2QbdpdprxW41XekalZT;B6@2cKoK7G z5dn;IMSyVkBPTc;B637@?eotOz&HQtIEWnu@_Wd8?|)>!DPis*Ik*hu_mby)qyvC+ z;8Ea~1kUh2Fdn{%aaezn=VYsZAe_6_$fq2pcKp$E(i~f&liE;~IsMy{Cx2mrDZ``W zHEgUV|Aq}Bx_>(Wumcg*cLI0t>=`yzoYM%M+ryw43E=D!N5jU7b858_@ZQgF1*2k+ zQ=8e3;Bo+ze|yqf4j%C^NZT2;?oJJojiA!CMpmna9-*`1oFwwSuZ6t#Uh2(nWT_IJ z)ZIV33YcL-Qzz&VngF)>I=7Z*j?j_lX+(e)JK8$pPJf_AjXFX{s@GGax6W-vozJYn zfi5jQgsF`nI88g64WT3Y0HB@Ej5<@Zrd_!Yu*2Gs6a1Mt?b@{0mPBvmDxg)bMF)KV z;}j!+ruS;=tsd31^ok!2ZO!C&(9_acT@O`&ao_;PDZVWnjhsEHX(SDg0NUr>4zzam zG&+LUM}Nao*O=9s7`?i?&2fsJ%anmDmo6i8HOs&r-Pw9*1Q`cafN^d|z#Cz%NB7Nl z>PYok?P=)Vj)0zQyeE4fQ9ab?_I3h$=Gn8Zqji&iA*2;c-6E=|_p^|x&=KE6yK82+? z$s4)(v0Z6Gxmy`1IVNk6tX1i?R(AqtZ$7tk+Ho*?^W$+_sHy_AHvdFsZN77TPYSaS zgGO=&q}l!m__(_wS+7y+R&#U)s{Ubw=H|zCcSmF0;*4K3FZU1uYCL#`6YLxXc8HvR XGa7is{O<{_00000NkvXXu0mjfk#v(_ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_25.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_25.png index 1f9d6ac54774f9fe83adf60e075e8e75dc6f1503..9ee5743961184e4a9751619eb56f1a9e4897e98b 100644 GIT binary patch delta 770 zcmV+d1O5El3yubm7=Hl(0002`twPcO00PxXL_t(|oZXVmYaDePho9eXerr;iWCu0A zV4AFHp|A^zrHG{|jv%$@!B9F`EZA)hf(Ks?iiQa8hzGq1g-Q=vb5Uw%u`0?|bC_9Q zE-jQA#TGVcH`Z9lOLv3Wx7nTjdgwv$Pw;bi4$tX1eBggPC4c`B8bF+XNd*{KJPy{5 zt3aOy7?eq{ChrC?Re`@(l7bYs3vB5@Q#$Y(8>TcdXAYRsAl?YNYtOD8^WTjx_NeJ)TfH!en9@O;!)mi%e{fUY|FWVY`F;~5ziEJl9KaoR z>Rv$CntT;X2%R%1?~u_TStkS%ZO=Gh8ZS?Oyca2~f7Xv3J-?;>h1~Spa5VFC%f>o5 zg-H9k+4wDymF&5VstDf1o)b|NSz+2gS8q%x^5qrxjen>U2P?aa^-j5m6jx8wqfQ*G z`d1pA4biaricJ@`&$frgK||G=w}GX1A6a}7%+%7?vGa!%*27Er)Lm=GVCDzEYrk%V zd(4k1wdREw4;fA@Ah?k4{X%u+gdLCdS$(M%!S4rR^82uoVUVJH!so* zO?S;5hQ2P9!Z4V}4Qn6%*ag7X5AKX0=?snZ$&3|_rRPQ-OVsqu_lCxmBavKAzc~Kq zOL-c%Fr(_tIH)pVv%gBy8=e^$X~seIqx+Iws(UokzSQ8hE8*Mi$(i9P?yCPE6_q#_RR!XTIZU~8g0Ip73gfvv6Gynhq07*qoM6N<$g5f%G Ag8%>k delta 1493 zcmV;`1uFWE2HOje7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000GzNklb43rl6|6k5MER}IYOP-!zfyn}VkJn1=^ZbfD9_LmB4Kuf zKi?<9mygvB-hV9qJW`28AR>&Ugpu)<@vZf_0niiH%fIoY_tJdJDI}iR`n1MV{GbbD z0tt~4R`aBw`)bDKuY1>@4a)IS1kUh2Z4JI2KV>}_oo_+o*P{czPLy-h>9jFw7eGUu zbd8MHS~$xI`1?JG$bgQu!aWD-jNGwkYC-u&WcZr%yMG^E{568o#>jYH{GnC9<_OZ~ zNF?czK{J%ZA1w~G8V2PQk%7;twO)(Bp3{cT(Lz>l%jYRMB1=RDUi@i=U|Tm5#YS4i z9@~Y#3GDSc>7-cRpMmTM(5_O1>E*9=FlaqA8U-#t2F)x0tpaLB^^Zi4==x|OnB~wj z+CjSZl7Fv)Be|2$ISm?L>$D>Eh^3>M_&5OSJ<(HRo$!%UGAnIF_m!?$h_-h z=N!?FhK?Oc1EWz*iUd9K)LP3=mhmNmo|0yU|5@-(x+HH#HxL<*&V9e%c~1pvMwh}r zeSe)%7)d;4Ak(=$Xay+eF^bg3!YOGfPf=Jo%W{rgQ9+7=R(fmW_!<@=z%2kv$P$M4A{VQ7`dhcPh z4Wx5+%g;G!=~^6bwSn5=r#ZpSNOOYx8ZT%p>HyifE>j`9Q%%-ki0IIh7uCrn1!!L? zpya$SO0>@`4i+RqSET?tFQXvL(0?80qVfIQ^9Z1|e{`Zo1{J^(L{pSklW6xEkT%!b zi@t{%J0c(I1lIeWobdAil2={43Fsc^TGAf$O2`9F}Z+j0f-VNt`6O5n!~?kqB6%tk5ZO+JA{AXOmev ziF|y+DEEk?SYt2$9*yS5K9796jc-MwTG=CETCQFh0Z>@`AP$(>2A-%Ni6g!Lyyk5nA9Sj4r-c579(}Fm zC+%te8hAqZmvEZ#OS#r0Cr;=I!AmNxMsoj3!U5PJcsB8d&KJQWW?H@0K(EX_3&R00000NkvXXu0mjfwC>o# diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_26.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_26.png index 379e29b50da74d40cbe316425e68671a6047b9f4..2c3fe69873bc400e2f07b95f5b07152af35847cb 100644 GIT binary patch delta 734 zcmV<40wMi?3+e@s7=Hl(0002`twPcO00OZ|L_t(|oZXVmYgBg_g`eMhuV{!SgHSrf znvB#G(;(edp(b8G5S2otWK3|;G~%M0))oqiW8)2WQ7K&(#f1|$I!=VK*iu_k?~EVV zR%vS%C19J}WV(=nq1Umu;fwkfxjF8Sr3RTHnJ3c1b7@^ViEJrIq~0Xn{F-LT6MJL zdMwX}%iYAr#JH8+QXCvMev92&LuYlzA~!FvZG^JSM9lCz^-t_v&j*oq^JoQg3mP7) zBtq{&JTt9_tA7Ig>EM9&&;m%gN@g5@8!JL~+ct124`6r4n%&LV3-2G?QETYsQnI** zHxlzQHnBera-ho}V%eHq`%w)$ibYSgv8NbJtIA0C+E>ejcFq|R>x*s?O+HvjNdp}n zb7@Y7;{H+jcoBf!&)B)z2o&x;{oYru5wKw)>c;?j-+u-$@u`Cn-H@Lv{Z#Gv)c<=5 z5}mJSGUHaZC;hz+4r5gNCF(>Rw6D|l-*rSD_Dz;~V&`H5+lkahB&?pk4_=`6Q==mj z>s8S5mh%9O$yeHLI|vfF)#3tdxHemlAv#s?u1*5{(xl<6BZOVfo6Rn8=y%K&%%!F$ zeVl!%T7UZ1&F^Dj6syv&nm=k~+lB^Jt68)#rdn53Eo4;dDikj-Ev=XWf!3chs$tE_ zw(rfThGltpHwBys^w-Z*U{v^WU};{J0Whx6m4XJqniPPoakE4$>jU;lH63@J7WMQA z<3!C{U(ZZ?M~-hQeRrtVf8&PIfGEM7}{s=oo)X-_ry2U3?xE9A_; QY5)KL07*qoM6N<$g2-EH2><{9 delta 1401 zcmV-<1%~?S1%L~X7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000FtNklMSHpdBo&2a)?bDRL!947!a#|ePVaROj-Tz~g{z6;tJhXFRn1%Iiv zeoBvniGZws7+`a}7@%eUsR{lzYOST#`ttMJ5dfX99S1m2j{JAX-}n6{dr`tLLO4K~ z5%R0)^OxiyF6#s{03#FXvx073Q2KNB%|>H^`@Ww=;OK0Y=4{GgnriRc&&uHRZ2QF7 z=LMX@G9M?yc7Fj)nEUj|Qvn0#(F#y)^CCKB+l%ecoPys|4$brdhx)soz4&ViQVVM^V+0izX z61WNMjXFGz+5jyp;20^hGVS142+}O1ZY-}kI>KTRJAd$)$Cp7f3qUPXqVvygySVcl z)&irLHDU*xf7(?rE|zc>N0CucN5SbIaX42PkH#wiMz()k#q6d36(P|*hBa6{iP75* z4rc(Z)yby+8Ib6|l&1r|&dg#*3&@Kg>C+;M-&+eJ&FS6>JHr;u0URr81)mk%(U4`! zk7WSmNPpbQNn^OmeN=Sg>O8|1F5tL;jM_)-j}`=%2V9=>)Y1V+ zG~bg2p7Vc1N5jcT$6Hp`H{gKiv8T!XjCMZN;(tlexpMVSL8@uEV<0lWHb=DUNNWS7 z%-87un;~U-PoXP~%`Bi(?*S~EA<^hJ!ovX6xKHE9+Acs)hL%DXFHmMS{YPxF$l`Gx z2FN%DsAmzIYOTM24`5LMPmHTkt$(#JK<|6Xc#lmUc}g#9As8uWBkXAjw9vnXY0j6b ze}8T>vf-UGs)J-Ve9x`fYrocRYPh5*;j)CPY%QB$=^!#-t$=&Sv}e}fm!4VH_Amy1 z#zABNsr}=O=FTPSnd(K9Q6$@}Yh?z%Wo<0m=7aO&wKUtv{|m4JDus^)3@Iw5;8?Xg zpf*`zfF_6MfZ+Cslgmh^Z~%BO9<0jZY=6#Xj1kZnpvmB87*<=kB0B;$05lrG8SJTo zC8Mx~)RBM@x(LEir#anXXj8WRU<2ViD+L3kt5!Ti8++H5 z_R9kC?*S-itzSlK)8?l(iee>>cD2u}F}N_K^v&8A4lvs(uyz&ZB1mi3MmnDZm49X4 zwg->T7$Y&(jD5j6QR}dQaXYlKI)AjWD^Nd$PwxxX!vb>+u!{3bS?7xs2+#hEhG(6} zO`znw6`XIutRtX}lkNjn+aGM_<0eo#Q&(XCNnh*wTALeLYo-06)}q!{kARh(zZzEC zAIni-ssTLCpK->m7-*hjU?qqF;D0UrRyA@aR@)!A9+fnYe-HOYvi1oT*#Xg{;pVbJ z+FxnCONvU1b8(TuDJ2=>2@V{jl8h$1L><(FNBw~rAhU|? zQ4-@DG9N=b_ebv|r_)h#tL6k{n0j~QGJ!Mt`<_r^{00000NkvXX Hu0mjfcoCnM diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_27.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_27.png index 16210a792bb313dfa25674392ec0795c782dcc8d..3253a415fec4dfe185ad0daedc4e728240238ded 100644 GIT binary patch delta 712 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 Hu0mjfmiDH9 delta 1753 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 YpUg@JvRv4?XaE2J07*qoM6N<$f&-xjW&i*H diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_30.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_30.png index 645ffa6692bd5d8b4dfd364b80f5126d1a30ebc4..d67714a898331bff909538b8c9f604a5da0b41d2 100644 GIT binary patch delta 720 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 eB7^pl@7+H>SQHJyN@N`X00008-)1*WWCtVE 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 Z02I|Uv#X&oWvu`J002ovPDHLkV1m#6gQoxh delta 1533 zcmVC?2fD#6UMwD6=zAybM9H2|TDx+)mNk;(dgsjT0*t2(c06dPz_)&da z5g-F?A}bQMCpiEdi$k>zWCW;&G^tgjW*y*e<9CjK9LG32Cn?FzBskxMI~U2Ef9e3; zgK+riPH=aG9DiesSEQ5Ia8iP^a-ZD=*8M)hvlnIupp>x=Xqm{W{q}BHxfsLGZ=`M^ zIzYzgTpx*mY&7V0qKy2`BOb-C)fq?!s4S;qSkAjvN4Ps`SjO)@+e>n=Gf-pv;{ct8 zkKoDq!43&7&Lt>5U+@L)xJoe%l;S%OJjQ1fSdqASA%8i-F~*ow<5j4<@Swh{ECf|M z;vJC<>-*jUI+GhocJ|hbLq&ejd2eBnndO#i59Pk^0zB{@H!STlp|fN4b8;%8fVDVQ z#jVuu73mc5I!(rk+psQF=-$aK*Y7xv-D_57MsJ6l&I`p>g@vxni=T_x*1L>b32SM1CvHC+;7*byMXg7oF5Rt3 zo}|N$+=hN1;4Vl6Q{Pt}(`Dqe3b}ptgN<09Wxch@APm`I7+W zEPqx4r2!@7Vf7Aw$NgMsY`kAe?JDJ2VdW2h)?`NDc7RN-Ksg3(V}Z14D_6Evo;Sm{ zwv9w(FIxX*5QKJ7Lg^4SV)fQhxyMI=d8#@Rx*|a2e9nFLB#PgH2!CFly!?f701e-4 z#1&Y{UnmE#fD2jhid4ET{Z@GRTfvjr0e`G#Q(P&dLRNJcdjh=t!OvbkJndbDAXxaw zoIRz=;J1S+>uPN~d2%^G#uKGT@RQ)FJ$U;>(2@lH$8+Fz04_1XpSj8(*YBq!gq1v1 zaOQFV>qUihwaNAKgt=A4D=VrBR$iVewubj*Pz2BuajBQPDwWz{>}F^$utB?cihtme z_wsnJRN14Rk?+149Xw@uGj9PaSK^abJ%=6nn{)nkfNX`28<cdS${L;>UNTjt4iNi+r1rNjPcRKN=P-dm9Xpn4`I>2 zlRpX6xF-xl*YgVVoT5_VCsnYxHgMc08-EPBC`5&R_>THcYlGimKwDC_KA~4~dlTgh z+}>l&gsJyWH~s~y6KIt{44C*yi;y!qW$PFBf-(x;3%!P=ve$~Fk3vP5?SFDQ$_XT% zINM+yx$i_9|8DOyf;7071T2Rd%aiy)`B`LTYP#b^;DKg%Ngw!3{f7}!#%od9s<8B) zlHG;Kc#(Np`18n@#(YPBD7*@Iy_M^4kISO2sXROm39H^4|)^o#;IJLdQciB{xbWIL2300000NkvXXu0mjfr)TLH diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_35.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_35.png index 05f9639b95858b7ca89e9637c03447dbec50e1c1..61bd92f5f00d39d0b6cecc4aa774e4f597edc86f 100644 GIT binary patch delta 789 zcmV+w1M2*M44?*(7=Hl(0002`twPcO00QSpL_t(|oL!PnXdGo2hoA4;*<>q8C($ZB zD7y_>ilPmA38G{QdJ7m2E4fG!L@%W*wjd%p-$g5)iqM?HkqD&+aR+-U6yink zkR}sEB2_b!#xRp)_WOC5#DnkY<$0g?@cuDf0RH-ck$C`u8h;eftTWRExV9DQ#OeY- z@S31W3p(~nLUW&P+U&-v%W_-sL5Gaq1RpAyt&MV2c}y8AZPy?V<=d=F`KUJKGbL^5 z5|^aX_)YmuF@Gzq+fM*FfFVH0toV>e|CY}8@Tj!Wt|s|Cha;EGwmJdY(6%#orFUs8 zYr|V^awM{=@RAF9JZLN_jl}>U8ck?ojGr-bI$!pL{$+1i>EG0FVoVx)5r_S`Aex@Gu zg%z+gZ-2kzYUA107a`y~z6s9*aQ!+V^@2P=r+)3^$>YaE1KH7QNTh~gD)-}rD z;{?lv=eS&h@nmY=aMi(M#r8F<7{(`^|F?X`Rxo6AP8!=_WB-5?3 zbCW!XR_u#YjNm9w^j>{p$X7XJYm&5|gC4eDpMS#SDS&NZcCXm(o#&@ghQ>nh=~C9` z?C#{zIKCy{_C5%&-ecg?54@k1ep9>{$3tSp+ruqMRXkYs+OrYS=iUR2s52!RHo@f8 zw*V6p<0BZPOv|SwX=7W3WF7FzG{9IB5K>Xi3?%7~YBrOQihSp+B>fzRne;DLowDEx Tm=4Zs00000NkvXXu0mjfBh7>& delta 1530 zcmV^hh+bf{B!JcQk%$vi_m(16&1- zU}-z37!w&^(qVV}=K$FWWLEFk)~m-DdZXiNvVXJsjXHY98po^vr+YdAcrR_LSIBtf zIb-!nQKhod=xI~VUrz!ft8P?Cd(BNUlg!N|!~;4<&(>fS!mOMl8>xGLvk;^Sp!;M0 zOd4$Llii;y3MkndJ5Rxdjw|s;|JGzw;Qf67luU1=&?124;WO_DMk7=>qcx878kJ3- zU4K>t?Pv-{=^-^9PrLdpJU> zQ?yby?txPE>>G_g0^zT>Yfa~=k~3%v822KY%xHxPx`+L?~@yUD}Xw{IHy}Cfq$sOqc!>KTpdWbp~;ApEJ`6C zS^X%`zSZrJ{u!Q-ZNLJJ_Uu0lk$=D?Ynt;|$(=VedXgxsZFRe`tu+U4zcKO4I3qX4 z1F26-N=nMmw$ke6JiFrPhaQcp+gUQW_o6&ytAyR|;?KoPidQEzsPXSq6F`#6Dp;II z7jy6D>wWA$DzI{ejPl=N{Eih)fXKIO`?MNpbpS~j$$5})SA`0aXE_}W-+!pVTKi1m zMsS~5w*80z2rT8L*PL?FWatD?ow#wL$jU@(78F`ih#FqgXMCpq!w4xtph}|(YoBXl zR3kE;XPzGZJo42s+fM|D!mEJSTc!SpjG6H0fjR*q%PUvwmyQ6aB3`3u#@{g+tcYe~ zyN($vpY~5jfKi}?tXF5wyK}2hna@y}9I9*v{Z61qU{st$AWb;G!3nH3))eEeAS zYK)c0I~%_>tWGkv*@FAZ2+)OQk8RSqcy}O`)UoY|Om39H^6Oyg`R6JBhMrWB+!0*S g#yZ;3d0#QdfA(uUcN}dLzW@LL07*qoM6N<$g8PBrZU6uP diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_36.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_36.png index a968fd015ccd5066b7482a0930afb349fe8191c4..6924299da0445bf6c524b8cfe0f5bbfe56683799 100644 GIT binary patch delta 783 zcmV+q1MvKV44MXz7=Hl(0002`twPcO00QAjL_t(|oMn+eh#X}YhoA48*}FY*-t5IQ z2nsi*NFl)-*c?XPDPpH27Atm95NtwNZA8S(G@4+e2nQ+_SIRAd2$3s-J0KRR&c-5; z+|Hq9#Xq;R?uDJ)&VIiXv)9D8`tk6*Z}I+23xI!qWbOh0et!kVP^*$@0c;HeJ+=Ef zfd87HMjb-Cky4w`%4)4xrCh9OD+*e45<04Yw($P4osvt;<`nNgN>^zhIXOw$yqry0 zFOH0C9fRb&BO{T73d|9JRatH-o^8nJEpUO-W@Qxf%43RH*=hyyKyH;iDWBKA+(7B7 zbd{@8VcfplzJF*+d-fWj1Yimf&=gmA@?Yt48;1%T-PbaI11G zQQuj%S%~Z|oJ;&R$BiY!+w=jV`IH(~30$bBV8Z}R!c@}j6Ju#N|3FfgiKM~KSnB;f zmejK)P!9`eEEYh+0#F|qQ?DLp3-%J9pQIJ?y@a}j(|--P0(aq51L&2hH!UQ&i#JkF z6N^HJhY}MhbYQd6UN@kK=teEZT8iVB5)Q>C#W4~rIiII?3cqA|ElIH{<;x~1AyqN~ zW62W z6kiH^hQ;j-x-R?Bxu*1+;>|do5-T1}hmy*;yW@0dBciXJ1H33aDLk8E^71=?M&pq= z4AMY5XC$dV(pa(yaDEM7u?7ffT&{N|>Cdt`kdVgty^E6cYa9%u2Z0c;bk_~H!2kdN N00>D%PDHLkV1mZMbfy3R delta 1533 zcmV~Y+Tj_%3%+7Afsx^Lx82}t?|;3|jDNb*Eyq;_K$Tv1 z*e{gBD*|AZeqK8vkbG8>0ixLHbc)jhfXm4^T>_d3)C@2NSj-|y?Qni; zuN448R@CX1e>C0243I%IMXf}3Ub}*o%0p14({)|#t7?+yma*HYuY#HLSJOn+d)#v!%z@5qrV`ASr?h)F$!iK~Ryn71jH_RDYqtAO-+eu&PM>Ee_WgdsZ+=ydPXS9yygxnepQCy;xmbW_82v={Iy|HYD=SZgFB%AUzfGVzB6KUWpA`s?73sbT*?)|1Cr;E|Iw$zj9-@duH*Yng zGCb!K6*UFYy3U@PWcwwNf|2t5IScT>`?_J#R~>jrj;P3HGrlVhY^>*5dOq$eGN|G; zW!%f2dc7*Ng-~hR*|_Vvz7Khu+YTyZBJwpIPRD-%kextg^-@}|9yIkv<$qedv-(jTJ+i3G3P`%AGk|7vx@Skb zRUY}PR-cwtDm#suOewI-?Kg_R$f~0XRrbJV`m8jF2Rz6^OV*cQqFI~p7-Cwn(ewqNKiz@vm#(4d9R zCqX*zu!`skxM~0dQtQ;>@y;usBD?LaDu0}zFN7e1`M$-QBlI(!B!5MEH$?0=vlAi< zg}W8(d3ECSyIuoNhNr5x>{Qwa`o-r04gjgM$Dc{`+E_m36AHmfJ5?2gt_)xmC`fx# zOKGdyzNetlPF35eyA@0o;l+yfw}oh<D^3eNtLz^piPS#Ep+YF^o^#L?T@Cj-A`X{Y?2^l+iyM!A4`%a+6Y;`e% z6o0d4{5i^}f)3%c65ir(&_A_;Pk&9Zt@+=hE!t{2N_(>XI3Dzi8WyC^lT^4w3Kn$r zqd>c3)pRo+l$X~|d`z|vF#N9mT)f6yD+ULx)#0;>NXlDN_|%offy~2eCwkwLl_b9O z`jDJYBkdIb?<-z1fuIGHB@5BZ+FGK>@>~%FsN*et)C}N-mLX83QH8DN zmW*mdIs;IK8nRIxS#}+}QCZJ$o)W5j2K`Q;hhdbRWsqnE?jV>}#9Wy*eF8CzaAtWNM=fwtp?0M?UQ)j^|qU j>SS1*R0-0&@0jBsd}4~)W-C5$00000NkvXXu0mjfuEX(z diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_37.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_37.png index 8393e3ce8c06155317ed42bd54da230581eee48c..72e71368d00fb151a82349fa8fe9416c1d6d1946 100644 GIT binary patch delta 804 zcmV+<1Ka%g3$F%{7=Hl(0002`twPcO00Q<&L_t(|oL!MmXdGo6hM(`7+3vO`&KgTk z;;tgcvryrIaPrK#K&|?2_YUcJFRpzm>kSNb>TM22FXJ zFr&p-ru@@EsWg65et%QUNbB}pKq){45HTZ8aobu?z?nLV&oL(ZDK&*;WR&8-YowB>j4*kXG|IB=s3d8ZH;o z+Mk7_HS2&@w}kds3A8N$t)Vfk`f;|TYKMF+9VD;Xw0{_C{h3kGk+z0w>*rM1ob!j@ zHUk)+A6z(@h8C_)!~sf8%+)g)^u6Quk*dDdPB}W2MV6c$u~4TF9~_G9DBy>#=Yt0z z8Tq@8zV)~3PhK4PiKE`)xc}LD7spwL1^?MgyG!{K85XxUb)77m?#Zueu<6dt5fZeX zzO=jTO@Eys78ajx*WkdX;p2q3In0{?{M%#YW6S?8r19AJPadFa&K`LIn^j}&l@!3d z6BeZpQ@Ybn)OKs)+P#F_{2um3U7sT`b^yo$v}3?o8lOCRysntba~XCjSh=!DXo$Jz z{C$^pY-tWp&6a`5rdsCvgXA4K@T!(02KYy~&$^pUy(0<7DzB>{<+>HV6pZlfx zs_lLA;9!BuSg_MulS|m*$wH~S#^uC6Mc=z|?`NdnlzbT_6^WAVYD`ER#u|W-3OC)Cq(9uuP(mv5 ie;rOr(vL|rl>P&|fwn(W%Bk}J0000WV& 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 Y8ydb4ri91qn*aa+07*qoM6N<$f;r=Ro&W#< diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_39.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_39.png index 7ca97b4a7de316242b68d76e29ae0e8db3c1b98c..8a7e28ebc22da1260a872c734df684cd5788a11a 100644 GIT binary patch delta 885 zcmV-*1B(3g4S)xb7=Hl(0002`twPcO00T!!L_t(|oTX50NSt*5|NWnPrcT$CS~+st z?TFG0rv#&@&bzG_=$nH{5XC_jF^twWn4{L7BLs(|Y|w`VLyf^EXXAvyWN$q;92_0w z46`lY?lH|0DlP^@P7qiY!JK+2?g!z zSm=mKW4){8RA=3&vMXGFalo^0N^7?G69?tQ2;&9g)mYZ~(A;BuV&Q@eldGzYi31Z9uy9k2wFyhmb4)$b}(`@!+p7-h&_jO2E!9 zF5DTsRXZyKz<*bOZ~E>>c&2i72qZNC%FJ1h^AjxtAT0pJ{N^QZx$3!V_hqmIfMxvr zviLk@u@j5}@O#@!{k&fI^y;h70QjgKn^QUNUTOV$?G4A5vO?5PO-&990OiJQWqEft zVV%xw-YNsaa9_7$&JD<6$9!7`8qt1|Ki=$tRFSQ+1%HaI)pBdo>HKf8`NuE)aa@9h zk`t?i%M;C*6ldSa3cr@Cw5tBHht8GOJyB6N0TMKpTAbst{vsaM4})4cyVx_xeFr~i z(akhG(2V4qcdhe%4Lj3z8k(PF@oZ?Rt*B}HPc&5s8t(7)Lyzv>2t<{Tt_Z(2Qa`(O zb4RiJ%YV_}NO?fgP$Ifz5j>M`>PAf(;LxJQ*N#ne4!cmJ&yPH6* z^m%|!7y6?B^m~q{&MuPnQN30rC2Y&g^lo_%zzd(Xo&#Vm_SDD6yGS?NxX@3+UO8co zj&4@1 z%6eD6HH=(qACP3kTfVdq9}ZAeQ~i|M!cF#-KKtUeOhqD56^s50uDjYc-345T{!|6f)gTDmZdV;4N6B-)uwY>@;YVsTLRBu8uQY!6JF=h=?qXy^HV zi;m-X8}HZT>(w^R)bneKlm}lH4*`BS9s>MuJOudR_-yz*%I5a1tXMdF>EZQ(}{0CkGB`Kwa&Zby6g76d??glstLZ2gpQME6y=JprzA zE()!CrL(<9(j&N(0C#sTgV~O^?#cTcVgyH9^kL9Q-L1%3ja`w==$t`yqGu=@c@wu#ZEdTS9dj%ThRB)A0uu77w^meuR5rBhl(JiLAC}aw{azdfC^OZBaH@LV&BEeOI38TWhmM43W#6-Lo>_5yZ;| z2nmJ=aJ8dba`PCATm7MJa7)hfQxzSO`B7-$PVz*^al=2V7YTQb1Nrd1uTWuQ*B(!Mok z21ZDby+=yd+x#|(09QNPlIc0$YVf)qtMNl>c7N4A`M&GR<|6AM=T}R>jD~2I{LGP7 zG|P1!8RS^>n*kf0*1GIE+f$?jSnceJ4)1t_&O;i)XikL$Ok)|58X--VG34vF?*z{3 zbTd>VT&{~E7tw<_5^+9yq|-JX$6@v!mfgsGO8r&_bWaoKpx0;DZ>t8&v5ypHG(d>n zD1SS6Ix1v{A|J^hk@KRt=z59(E7G}^JF=dseT?j^Y0R2TkDylLrq_7)k=YAhj|i}; zep?ZTI;L9xv+R+r)%vm?K_kit*8L!L-2-xJcwLtSn4QionO?(%kicuyP}>j^L^`xC zj|3i~Oi+z@WKGzgwBQsl%i-RwKx~Q}hotl<19&80%AQ=029$U0W8LT}Kr5>@S=qfUTR6vTQ@-JUKo>0xh#b0(3*slG0^W_Lf1V z|9Y)G&-1L-@2;FV!mP{$h<-g5kuW={u%&LqQ3y)@lNn$(3FLUktm6#QP$8!bFI#1e z9#axMoh!hS?DdBtk#1Hi>OYzD`+qoURF*ci&htFoHJKbs9_xHhm!8Y+aRuI9c%c45 z2ph>GKzagghjm?VhUWlJmzDNeoBMUPgp2?!IUlEh=!TK*nK>CmKu;ObsUvID*rrmy zM#}(W_X>n|X#(^G9jwz)$3@0wdOc@kB&arF$i1R{%atV1_P0hp2}DZ(LVp4&Ba$0M z9YcbVO}1p9O`&zKSCK&Kf4%=}8~0$OqR6@)MWi*Bm8Ymqk8W;cPc~26ZrQt=1TPy} zLVyv&A`)~1tn1d;hv7*it=Lqgd{z32E6YM!0#=bg&uI<+fCowU9kVx)EpL&WKJQWz zG~nal5reYMIMN&0;HCMM&VQG7=-1hpH%Hoi1qnXB5j2YgXjE5ZdUCgIT0(+uUv?_- z=I7cbStW0Z-C0G95(MU;q`aMhg^nH1Dp{E0VpR@2r0LBp#+UeRs zNZQVHTd8wL&9`9b^iCz(c8Q2I2pML;eGr6{f)1veuQpNHW-txd41XXseq{Zw(@pq= zkc(k!?ofBpokxGHIR7oN`?1wR)Y|4WdZ^ z9fhlqohZD>^XwXp6lqI7+F;H~`}%&EQ$i&pnBNIx96wTzGABn3A7TqrGZE+O%|-8b zlpNZ=nZ3d5Nnq5}dE@#9m=0LV^g4RR`C2ZsNs(i%u_(&CvJ~0O5Q)9NO#UC<4@h~Z S5DnS@0000S93v diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_4.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_4.png index 11253dd628bf57f12e735cd8aac4d2e14bc57d55..87b339fcfad498abf34a7ef2417ae2bf5a2f7876 100644 GIT binary patch delta 593 zcmV-X0|43D5*kcK?Z0OajX1PO&{{VbW zZBGK_?9F?TThTBOO1BH^P{^0n;f&sxN6>_xG(>NfSU!loS@_$V&Wj;VH%e ziD`+6xV~C>K7S6(0m3*gQP12tclJ#fq7I1DF%K#VBx}DtL6T&1N8)vE(YL-pc}ks$ z0YH!>n;nIrOB0c-W6*r-?<2`=%S&oGH}-J()$Nmy_RatR6eLPp=JnCKRVGrq@dH&r?}u)ZWXFRBbO(B2 zq#k{nGepY~n%bw`g$D?A&p#!WesuO|2EtuoN8u=d^FUk!0DK#e^yAf7qL$~A?ztf` zpJ=~)*J^l4i>;|6LdM-5C+S6!WT)anySW4;jNU1(L-h+ou3)#kH+mci{Ly=aS$v(g zSpfpDBucJXeuo7FG@EJyK!}iOlC&xyNj6#FSXYp4Zo}V_CSW_%aIIb`RN2(F>?vAA f&lF8)ZM)+i30L44Gkq0Y00000NkvXXu0mjf-31hW delta 1135 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 Q2LJ#707*qoM6N<$f^x)A9smFU diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_41.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_41.png index c33f03e927ae06d8adae5aadaf5259663c9b1d22..7126105ef1528bd31bfea93f3c321ef16a078298 100644 GIT binary patch delta 897 zcmV-{1AhGK4U7kn7=Hl(0002`twPcO00UD=L_t(|oTX52Oq6v1ety6Ag*zlVGA1$U z4rVB`F|`j#qTIo3nrq`$k-F8On$^~7@ui$L?nqm!)>th!TPtxzYq$#0i7wCg42#MU zFkvUWeC_%6{Qd9%|3TC=19t%uD}V5R1rc8%s1=D2jxJ;V z8iVoWt~p~k%SJ}Py4kh_!+6pR90(Aoh28bOj#pjLzdXbL152Rx=X0Jt1M zlFm}I8L%~yBmjS#@6$f$9tQv}1FlHQXI)nzZ2*`F0QS)x-4Fc(D1uRq;sjcgp( z0pM*wGwa^Mx_|72Hjp#{gy!1G>w_;egR}v-C}NylyZ%BSr~rVb_b_ix4iCKuh5`7L zV1xsUubnG_2|%Oii;Zv~dFGW5m)>wR=2-s0+To$!bpW35+I&g?sJs)%&zM5CIsV2bAHvsqb2jl60}0_u~YRNE=wsM zZd;e+2!C}GZt+Kc<8be4|C7LIzK$z}3+~->o>|YwTLdnZ!`X4Wz44CUej}dcXYD-E zrWXCrFEY75_G^d{i}I#8(vtlW#G3Cm0NyxcAq71^I7Pw_WWYJbC1h1DjY?QdaT zMh+EfeaSoDhDgg!Rz970R-$p8>S9N~uG~3qp#9vC*I?6|e94i4~;>f`I_m{P@kk X$#AL^Hr+$-00000NkvXXu0mjf6qdHV delta 1766 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 diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_45.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_45.png index 86630e83aa56102061ad25113ff5fd8240abb336..e6da05bd15a40ac27ca56d376691640cb6b34a89 100644 GIT binary patch delta 363 zcmV-x0hIoQ1^NPz7=Hl(0002`twPcO00BWsL_t(|oRyPLN&_(zhhH)o8UJv#i~U3!GMffYP}7Z7>?J%AuMUAXrE!pso{gxaC){9GiNWS(uMZe#Q*?k?2JADsE(`pB32cZOJPHf delta 632 zcmV-;0*C$j0)+*T7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0006vNkl*>=Mq3@ljGg!zaj$y+(a%29bl~j=$hxm S&cBra0000@v~SY>4;+ zf(wGAk+l>oGTuQdNh4TW?HxFR7myneasg{;AqY+iu}xtm!fs`o0VQtO?7S8;bLPx( z(XW{~&w0Q1`+;LbH!N}F?e7%8s*Qa~;lLLvhzyrYL&BY9pW{@OSl75%WaEu|fR+3hwuVMz0w30Vfz3ga(_TM{= zz~H}%s`y4lf`7weMjk8~A~^J*&m%M*)CvdvuU~SW>@NNIJ1=QtcyUna8@8S8Y|-G{zSy;b%7knzB2l20D||3hXy2MV!*Ke$qV3aqY1^ rUwnF1UM`E%T9J&#PhVS?jB3Rn%^ZmwaV&I?00000NkvXXu0mjfe=*kY delta 826 zcmV-A1I7H$1H}fA7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0008_NklTXw@B3Qv6`KrKR5r!YKD418h==;3^p7D9?nMwh^%7h z&g_s)kpT`TnE^mwYO{lNW`+P0(FXH*9#NbYDImZ=V(?fN`8IMRT6%s?8VF#-h~V?>Sx5i@3>Y1Jy4~x#ibP0B00A1A6@0q= z(rh3}009hGVWCH@1Q4Ks)mHh`NH9zQ+DWOJ_K9toO;-V8$8t02fy?O5&$UI^rw+k|#cwPh^#@yx9%&Rl)Q$iH<^kKR%Z})~kcx+LBt;lbRUv zB!X!MpnpN+LFECaBdcfdV_WELYTHu#J?{5uHZ#otJcv?or77Z(BT8x`z4cb;;qZ*t z{WNf=bXgkwUFG1Pt?P8~uAOum-2~WaZhO*csSJpcpWLHp%x%jw2{iDkYs&S z0!ZiUDIr=aXRYG2yneT1mmDSa6_o(eoAu~0UVnj`T~hYU(g%T3k%mj5S@U0l=89Vn zZ1oKxZxux=W?%6;lBF}iXmaxvUV#9=q~<2*_4gh{fB*z($~vO?B8HuS0F0ajA?Po@ zTpb7?P$GdBAV2~xfu~VVNuCCJvb+Upm5?Wp0SfRIbjlsVr{&-iZwG&ozg>W5%Rw6K z0y7Q=KOK8G#XlUGI|4rCF^_}f-!35cA@P{M;D->xH}a@=mA6BYX#fBK07*qoM6N<$ Ef`fu_;s5{u diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_47.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_47.png index f5b4529e448844213c2482c22324c4ab69bfe0d3..3d631e3fe573bd044fa4e9f59101b22ebe9e8d0b 100644 GIT binary patch delta 450 zcmV;z0X_b-2G9eL7=Hl(0002`twPcO00EatL_t(|oQ0FWY7|iv#(($D>^df^89^{Y zAe%g*&b5XS2!F{(mub*v(~K5Gd;cnNiXK z+geTu9q>H7+joKe@_X|A)JX}_VD@yvya5lSYaKg^hp@$K2ke32&;c*NOddNPD@m)h zqey|c*8;NuB5Q#o;NGG>m}8a+>_%3Seiasa;}l-q0uW-sat=e4w=!+no+Rb+Mri*% zQxEk2tEj4OQh!7Y2rzL2LIxCx{n3D&x9E5mO=JR^mL5&&+QLjtg!OH#3B zjsf6_B&oQvRKV$@0ARP=XB#@Tanc1_Z#)nl(5Fw?mq{$yd-C*McODu?%^b@0GNIQ2 z!2L+jfK?3`L>K|NmwC(9)G=023ex;q0fmDq}VgBRcWE?>m5F`Fgtn;9aitAjbG+ zJ6uDP>}uQj3gM?w*b~^1w(pAD`Jzu&vlG~J@fTJz)C0MWwSP)y!yxc*J~BXJ6+?Gs zhir-ra5%*b0BmW^4x=+O1b7i`Fz@@$iqj(n1eiz)UJ95t3*-XLrO?U%0VYrid@Wcx zIi7ldiwqFJh+H6e0Bae52e0(mQoyMUH4z|y0lld{_Z`WyO46k=bPfnG7#jSMbpWkY zyd5P8PzM-@Re$jLI%+*S_xYMM5MU59g3s4CLIMadfZ4&P>y0srL?}rB0Xlgr_;mf! zY><-x0t{e@4m4#_x+9KXeM#)ib)1&-B2S- z!aWl*>GzUIv(H=1Vt6T-PC`u2pRl@vMsHgz+O!&G=K^RCl44Z~ZfOf`Picy_2Zrqe z_|&A<6MsS$^qdUxxZkJq2!~~W(p@lCIjyRlLF+N_A^gvXF-F_Nz*T}TMH>8F<>0@~ zbWY%I!9Nu<0d@=iNvWTLO5ou%3n0CI-D{8Xg8C>RS5%R{2G&C*KyF|seNDTb5ZdMG z`M#%dfMi^w5_0%VX#-~|X!fJ@-1*Hemz zfu1byfzNXCwq1|`1b7QN{I|W~$xN>I(T#IjDAE1H{Aeb&^qvOtn*oqHeR2VC5^SemWv~l#` zB=_S#|2bUlabjCWRdM+{1Td8vND`yc(UT;vRi?gjr-jUPPd#M3&TLC7 zz24}u2abIM2Y^o>T)4}44W^Q&CkBc#Fav_R0RmdbE(Uxva4v>!zsMeQKnFtaswDkN zJ@|1sfx8DGfPaU<$2PDtxdVVRSl)bsd;VGFjSXYiOY)-uK?GiB<4&7^g&Uv&xTui< z4~UvDOIU+t`~eNWWL+^}3e4kjbjwC>OHwKWMI%Ud@2|T^Axw{gvh5-8y*poLWU4PD zDgA9&5Rp#@tQent1i%GJQu@vCx@@V)=w*(nW%Z4jW|)1w0(^Q?ah&W|z{0D5^jQvS`39~=6-TzD;GK6lc%Oqov6V@+q?mM4EM+Gz tX-#KupQg)sa-2K-pmY1sJU_@B!5`hcv10yeQm6m`002ovPDHLkV1l9o=OzFE delta 915 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 diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_51.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_51.png index 3608e114f1fa09137059af4586b259f248f0ae8f..0ece627b4d7af0526ce8203eaf59afe83dab97fd 100644 GIT binary patch delta 452 zcmV;#0XzQ12GRqN7=Hl(0002`twPcO00EgvL_t(|oSl=wN*qBDhQF$w4XY&XC?1p~ zG6xUdyyoWk207*yeFNXX7Q}0Ofxte%<{ly78pu5l5O7X8`zfT7ExNU6NT?##^Q(}n1(kg5gnIy~z1>E<>J_V8*TvU)wLM-iH>|JhHCuV!?WMNWt7a*i uItJIp(RS=02u00Z^Z&n`KHPCFYSlm#6*&8;oumoM5gEcvulv651j6!fw*g=;pZvph zT|4b?4GprV&GRRv|3+aa&?C?9iSzuSznrE{pwFj#;WUMMpntZoPFZY70)z7>0%T56 zsAVifQ$&E^Kmfsk0D{xZ0ko*?i@WlTlWf_=5&=9_!t(J|li$1Fs;b@F1aY=assi9T zHXqj(0_Xbln6^FA>)!W0J!+{5AeTNRP$A5o^b_nU1tpCFt%x-ewbTSKGGQ7kZl^sh z$M>#V6UWo)e}5x}broqt9a(bk3Q0U>KU+%Y7#ga!e?y(Gp^I>>-Qi8)BzkK*#;nh;6MPu85RJy zbH(a@S$}Kd@Us7>G*AbqW!K!-EYKT^CteAlRV(MbW`W*VtcZYX@2f3<`*CNB&QHnL zSe`%IK&$Z(r8W;&|ZN9Rcp zCInEjqG`lZ#xG@gN022VIG=89co#sBv{YH79DkcyOBk>N1n?zN=%+vc!GQpR0|5jF z0x0lQEcV#7Ge>TmZ2LSb9?76i6vK08*?J6jVl$qTTFzhvM0>d0M1Q zWBc2tciiJu@>#onqI_%ndu&FS5*3Ykz4&mzP}%hB-*p18+-+ zw;{3$6eRfy&u(%|c5@h`I7rFl+{y~Z_jd9tvTau%kfcJA4I_ZS)jJz-U#$l>nNSKoTqPrh?&}6u>|oEb=KNlHN~i7cXJU z?dJfZpxJNOsedy7hk{YVA!mNVuJzc=Y-Yik>cdX`%y;m(MX0EnKOnboGqN(LZ_ zud2+icnsyd?3oVC5|XgWK_5)B#-jm~%gah8ZCM~fig;#bwwNlwBByxd-`5IY)mr|< ze^jsF^K~%XpM*{STs`ckTMm3*lK)?!A&5@`u(BS2pH0UBxD7pKEr^;8yvqZHjQrI- zm4(RS=02u00Z`Tt)|A8u_OssdRP+RLWdCaP^IiU;O`U-}H~c`GLOoDxSbtg?TMPmZ=T8R6Xi=zT zEM(Kj0EZI-IGkn|AVn=L?&@wd*|Liz0(dKg0OzIrQz7ZTItyieTwn0Ds0w((?h>Kw%uJZJi(1p7K1A z3{V0546ih8kN;;g|7HzGcO158Y5Lgb5u)!?Pl`5j_wnZ9h;}Lxe z7;VLzj-Q>_bi?m5JKe9S#1>Dp!tcY2MAt zjk+aal!cQc*PaQamDW!|od7h#nUS<%QUI&UvsMSN6x0czHE_XhFH5N{21+1%>*zcQ zLY)9o`V_&4vulAH3BJcZKc!FqsI3HY&Im^Ee}94d1XN~#%t%X~8L&~7R9OT*+p;x* zvrwvWp8Dq%m=HjTRDe%O{SdWdfM5+FfWrv^98L%T;As$vnfnL<98L%TK-qEY0duc` zD|q{F92Pf>vd>e$0Ue{p25 r|2yTF$42te1@s;=j`<6IN-2E-%nF;H2!D;f00000NkvXXu0mjfdSiKh diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_53.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_53.png index a91b863c7022fabf43f473e2a8c09837d1622bfc..55574b441be8edc20997a887a7c1454e913a12e0 100644 GIT binary patch delta 452 zcmV;#0XzP*2GRqN7=Hl(0002`twPcO00EgvL_t(|oRyQYZqz^!hQC>_!-a#KK@^Du z!39McNK1D{f}S#6;0>;f(qxf%4WvB4(L;r=poRxPI@hTzMLOlkorhxWtg}iYG0m<% z{qxVvYDbjoVThv)*9m~p5MxzUPJ?1!Rn?Ay>sPtS)U2fobANN$J3*qg2O|ekgUY_c z03RzzcVVcr2?iwl29M7jFYWVJSP*Anpr!e~EPj4rdgZxsqQ6#U4?I*o*AKn2TX3KE zJ@6ESy&iZCQatH-%vE*1FhJpFsDLaDDN+IhW5HGc=2@8bu!hlJaR6eWaZAV~2e25> z*$ddQZ@rTNQ-7Sn-g?}cPcbA=@=jHCt)a2hgF7C1BL+e7IS0V^1=D1^1W1Oes*M_C zvjC8+OIghUSRF*BK>>&pCl^<(14p~0m#V7G(t~>yLk||-W0~{7`rGZZZ2P1Bzdv>z z_`by5t}ro3k0Y?T6@foT5m>|?moaEu3zBvN*QasolRXwZ>Nc$Oz>d4EtmBlf%B)Mt u+mz9~`f<{%F6!T{Vvyx;J{dd6TE#z!0hXaGKt%HZ0000+jfK?3`Mca|NmwB(4i|$0mCIo$k{LL=#0eV5H#S-6=RG6xaI3@1Hil7>7VPm z-n8RrXp-H{&vytvMqwn-Bl&knKi~AlZt4X3+}rNGyYn-j-V@9z^DSzNp3{}C$7-OzhjXFR-qp3be>#?NS26q9Ip$?x}2x=7-x1*HBPzRWZ zR`7WnEkhE0Z_XwNU=k~W&)b_J0tjFNtAkJ5y{=0ngpvp#fI;30K5bu`4RRt_A^;1s zVw@J6cUbAuD*|MI0d`yF)guBG0dR-xM_RJKg@2`U0TL%_7oenpeCkcR_5N0p z{VExNI;Pb@nhx!?MWZyWMXRl98G!c=>DZM1YR$yWu*GVx=crx;(%U0xFzI`>%BZt! zv7G)Xs&@gsy?CYwMklwdq<%_E22~vb-u(Q`<5(1d6x0En0|7K*{q~Oo0XSz^0MfN< zR(p(PyMI;J1m>=;rQ0lE)$Ufh1W+oDNVZv^WVh99P@_u#(#M@G20w)Qid?JbR04}a zD|i?Nwidu>07gDvTSs@2Ahs4jYXD{i>a=@(4)yES0!T<_<7V_s55cFI(S!gvn$HeO zf^StE{M@i65I_J4PpO{*0XPQ&a1I3E90-7MQh$+0G8Y2@I0ph?v^;Tp0wxPV+B|(5 zhsM(Nw}1c$ycSTJOgbU(2?*c=uaWbT>8aovfZ*|4(jWkaHxWPp89a%gcnxs!xF?0* z5}xQ2WPk@wUJx3>Cj-!u;fW_Xiq+-q5`Kq(6VuyFP89)$0O#PRW1S=Z;mF!@DKGm@ n>>?z8hJe~hV&8ee4L#Nj?{o`D@N* z?)}a8opaCOUMK2dG-F&Y2LPrrb|s0!Qn4dRey_~>$*oIj3xAh~tuI>zo{~C{+lgx6 zhE4|f74X<=9 zj|^P&3)&h#1=qjDs7M-1if5H76Ch|A&<8L#2HN)jkVg;#_$EmgO9M0p?+*Yz2J8)> z)6Kea20{1({C}&BBF82^gnW^tg$!odpP-nj+&P5LqH@Ug8F+H71pYqoiV|$3;Nl3t zVSsA`+Z6>vU@Iuj;d&`-Ybr@g888RLkX1M6O$y1uq5z!FAw50<;I9EkXK<12SrkLQ zElFDbUUy;Mg#dT5ePVbY4(kfn>DNITH*>vG&6429W_-~W~AkA{v`LAJQ)Vxe!QGpXZ^kI_MZjFV5TwU*>q{#Xl0Y`NMO zpU=lqM`&P@_14Z;DgQ*}NFYaRUytp4!T)%3XClvq4|sEE1b=!R%S&g=N#No9$^Z>7 z4t+Ck$flVA4u{MDi7d0(VRvRu0~j(I%vx*LI4h<|11Qph*8(=01$u$TrWiFt8bARm z@OQ!Lnd7PV&zK<%AVe<^IDmH<00)mcmkKyE!<`Y*00OM0`rc_ISP%*&MxWq|S5_;~m%;=E{{>nArL#Un!L=C_V?8xLuS`Qva zxq38$kFU4G1Y(uIcA=4Aw(}(#P*RU}@Zoj2_XGnEHHsNvr58(N04Y6I!H3tso8;kh zu?g~7zy>^Q^q4h)iUF(}XNJ+S)dMpo$P92eDhBY>OMf_UdXl%^KT6ZDRtS1(EbU^D zCoMY}HKuAIh&!A1uH~)09#d=GYk*$r&15a8sF@F{S8`-+SpR`!(lR$Jo z0Jp(l?Erq>i|Y=po! z(tiLy;2OE7jVhA3UIl1_O>hEf0K{n~NCR{@$pmQt0&Ie)Mj$7FktaSQz`8)hr-hjT z7(@#?3^lJDh|A&CcE>CE32soVl)3Jxc{=<=XGvHIc7qOFk4FPvIncs^S c{8CE!3uIj5nysYCEC2ui07*qoM6N<$f;W+#NB{r; diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_55.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_55.png index b8a8c651257dd42798c7d1ab1e1a46adaed2f06b..8711624f94e10b2cf8540922d7ef31d27be04837 100644 GIT binary patch delta 583 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 LNkvXXu0mjfPMQ>e delta 1123 zcmV-p1f2WI1ndZq7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000CYNkl(Q+g!2!@?g^Zu{gdvVq+$^Zg_Vu$Z0$#l2U@{5X2z`3wKZrp_Xs@AyGBg@3*QtYc;AY&8k|<@|^M zoh%BynH!=hDS%=>tAep~+7iHFFsEA_`8>~$vLxk{01mPE2Edg384gVknR|d zxdPSuXF@0eY-DtVM^D$()ss<>62N9G*+A$t>9eDwd%dFwN&p*xz0u-)OQgVt1WW{# z2-?I>=VMUAPk#wu1E-ze8GHZpJSBiAPK13aH3V!Tqw_mm1SNm~ZrB58t%iV5GWUMS zHUYpFJKaMfZ8`mJTEYc@r6E02pkB6&_pESB?{95`0JzlUP9b1vP>dBvSf4w2R?s~Y zC~auSj>9LKI#%r2=}gW}sSWM|sFOrGR`v$C=cLiK_J0DLu$=w3?gmPplP01{01jBQ zeqAWi-inn^iLKu^`#wSmzzItz=MHhK)(Nk1BB(@ABB(FyJB+!yfiYUj+4vN)G z=*%`rxqt2vz$=&TL1yP`?7)yj0*U?Z0S?OBh+HE>9KCg4y}EdbE1W{(td6N;8K!f59jvd zqoL}i#29H`hKLio3dk~%f?$oV9fC4At}|=nS${quQ~+6>Kc+~fX;W^;FXCj;Xb-e? zoV#$tSM3G@Bsq1?`I?G+;$ z9)LNJ3X{}|#S4j}sB6@)C9M;_i%9?yr}lfYI9~#EI<`XCX$QyZd;`9xDG?-5-i?m$ zWPi6ECef_I?9VM{0(Uf)CcKTGacNSIdQakE-xb@zaPmT>ma(N>{~QiQ+S&Q;@V}d@ zRsmR;rp80b8MEl-X31CLlj9t^HyVw6?-P-bBBLK?z+NDyz&+?q)-l&YB zRrIeBKx;pD`&z@(w^T!MX;v>s&9aW#dVf|=6}>_L(k)o+5V2zdC`m(Wp4ajU0ko!1 z)6VXP!+>`bnAx_IE0%#A(VHr>10%O{y#QK^3)R?s;vvf-$Xx5=3GL@EcYg`Cm zSP|ANa(G7C6*0ZyU&ls9FU?RuJsX9`dyD^ZB-ax%T+{T{m0s;tmKE>1KF{A0p~_D? pbLHCXnbvHLXtfj8Yav=(e*kSV`$U6!qVxa&002ovPDHLkV1hao9=`wp diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_58.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_58.png index 61efe9f450d441c98374135072d61d9d1d7d5b17..846266c123d432bfb5a79633fef483d0a3658350 100644 GIT binary patch delta 499 zcmV8hl&BIE&`FXwSNqWlXKur z=a1gKyL-Mf(GJII43@)}08Y#3ND{qe#v@6J(`D87_P?U8vVSJrzsqiEL>$7AJ!wI- zuY=DaXu|gW5U%;NTMxscHE*ZiLwHOXedOKZ+lIAt5@w79n*q2%4KA4C^hc_Lj2OTI z5R>-dlGW4Jlx@fuwc!#Jw;MFLn1*oIQAa+2PSu;lMbMAZ4t0Lqs z=KF{wN#MTtaAQD}&ETe)nSt$%=dF??4Xaw0k+iSH6!We!E1ReOyi(7=B)$&&Z>o#a p3-xy)m0XhLJ9{qqL0))D_zMDVvx+3pcu)WU002ovPDHLkV1lKM_?7?w delta 964 zcmV;#13UbI1kMML7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000AkNkl+m_uR2!=^l-v5=Ii;lBg22>C{^4+vE*%}*u5s~aZA%psgqspIlln^2jwe)9r5|D_?+MLht<^S*z@MUSWTfPfPYP_RVJGUftT~~0FhM` zx-&a?Q&IrVczOjRnY1o|$zVp87&3(L>8qt57r-P+xdDkM!1{>&l!V{{m`F5?Myx>1 z{+bY600YSlp)u1r_ln7=6c@l?B-y~!XsvB?L&y8(B5(l=Af1g8<4ZgRwj^L8@I=rc zMj9W3T7Fyr1Amxp{763gLkKPaD`vR;R(uH<#EQm`L=m_E4A|ie0Kk_3Q&yh+DJ}qI zcA5PV7k~k~%zgkDfGSc0&a4&mOrSC&jafPuXdQzKU@|>t1EqGY2Tm>kB_y@~($m0} zcCCph7k~oNtX~vL>ukmPr^FUNS9>491)zk)m6wV*dVlYkUMq>fcL57Q6>R`~ja?I5 z-VfEU3t&MgV?{V|KrJ3|0d&%0h**rl?Kh1PwCV=)aku~!NDU-0HU(xdt{7@wz=Obv z^i~Degx1opdw|7hiSj90Jdq1vLvrI|Zv~~FE#UY4j&j{%gyjAMN`)Dv{N04B0R z@yK-o(0_OvcLl>mYTLY8KH(|>U@u9Q(yvteybtVWO_8Lzd@Qd|jlboKsjd&3BZ;wEzK(gcoq(vgv2mk;#V9ibTyx~)##Zc5W zY}t|)iCiUs8m&jMBgRppH{M7^?};F2J2qX3G=K9a73LKlpm)};wB5td7~hcssBPCc zl{7PJ_D67>0Jz(=v|Y{E++4v7xc}~>1Yi}ha~|sG{eOOMZvV#!fHJ=13zj5Xtk%z3 zWelaFKSlrm-_k4qJRT_R`KdIkmZ7LpaO!%E-m0P_1kic}%UvQy1b{U`aNBb^LI42# zG=D8;H=ykWYGWJ8_K6_tLzP?vr?I^N0PI{f7EfrFeXjty1kB#g&Lls1%dY{*b{8vh zObjrZ-mT^;ya3;_p`EaL;HekjBzG(;gDm*-0ILtQgmsiINd(mPDN(u+9`w>bJS13~K}8_! zMaeeZ_UrKOb<_Ht9=?2^&+p&!C}DGGwnnmiyaJ%59AOa=Vt-{vyNHMhl&R0v|Dd{{ zywLxq-7RTMr7*9KV(1%q`sLIG0N5!i)?8{{I0=9qQ)w*Cf#sWb z0GLBvC!(2J8gSejVvF9g+abZwcigOQU%$HmP>kA!@qh8rt16iBW~6!8KeDIy!3fkw zAy(ObLS%wY4;rwm0PJg;8tYMa^kZ+Np$FQ!lPW$JidIW@=iZgss{F#Xu%_*N|LGPJ z3mx(0tR0yd5856}iDdoZ^^Hn{X{cI`Xv6J^6EznhlmYxUhRL`34J!E!K!IlVT=WV4 zMk`sm>wiLPJDFNm>Bo;mZ0000< KMNUMnLSTYDMn{qW delta 1302 zcmV+x1?l>*1)U0z7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000EfNkl+frDr9DJR!; zJ=u?~L5=Ke6>xGmi6zUd*PQ2jlUnZ_K8lJAVKztXUS@A%QQ)mjx)8 zMMGD{3f7cWfP?$dsxXm7dlcYdph=HRWX}0ZmPL+90ZIr%&+D*;HYSyk%A<2y7KKu) zx+>`%B9;KjKx19QZ2{=Sa*da3RHmN5S{7NJdI>_HT8prr7Q<5V3!b09qo29WBEut3Rbf0=pv0{Ga?*@MHoz<8Btu z!P*Ct3(!ox)S!nbz7bJ(LDRbEk8(6oR!kbkzK>wDVX0JqXtTKPTD`fY?ZUKY8B z1Wpbs%je2yaJc|_u4VWvbx|EnzLi|oWp~OxqA#!{MUmjz4yNaxtzi1R<_DY`;N)8~ zjgos=-PQC|;BXj-o}r_4!aOUR%F;4k+I4SmR%&FsEyVL=0vpjQ3n&4l(CIS^xcaZ# z4u3`y6^YSjffnXz`2=?qpk?bcQisZEvaDH0E1@hV(;J4-wrUyly0`Vzc#||XnsriL zfK|gRX-5kzFB@$K4T!bxXj~-ph|z0#oEdLv)9eDci9u|=RtnD%wMVZ}JxgD;0k;rT zkFRf05RPz{_Bln?+C^nvLjom5(3FXmxqky*Yeer^<(KlWBY_e)CAf3)OFtx7Ie;X; zyi?Qv21|9?G* zy!SQ=z)gN6RN`Enrym?z8N4JnB5NB3Na;IUmQsSsAn_3{A=PW55XX?7YlyfyiY*jC z3PaI7>xAAx05yg1*7sry1xU%Crq#+v(#bt=H;G*So50=!R{MYJrr4@jUI9`XXQ~mO z7_r^^Bv=>lbUgbc>YcaxSxWJZn19)@4F|Xzt)b>D_@spQ_gBHF0jE~LliV2<=a0gF z3ov^}C5&e2kwlQTphjdWBXW-m5YVDnn&s$eXJ{=!;#WT znBkdcwYIG4Ub3R--PVKe-9H^ng9R* M07*qoM6N<$f|5&aI{*Lx diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_6.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_6.png index f99662e70f0d928b252670eb51bed5fce26b3b38..119d8d3461211a94ebfb754561209fa5605ccdcd 100644 GIT binary patch delta 574 zcmV-E0>S;Y2+IVJ7=Hl(0002`twPcO00I(8L_t(|oQ0D=Xj4%X#(($bC3#k`FW4d0 z2mwU|k&2Tj*c6ITkfL-_5GsN=6f6jxq*lcwBYGwxIwQQi&RY!eCvTRv_8Vj`0LhUV7N zi-iMswoJu=%zpryV!d*8XU(o|1Dq(D>(+^+l~_8T0`_S)^cWG5KVBv5^dO*>Yw_|~ zbk~pE(V`EhEo8C5p-UyE0mx`-Q_qt-o(99f>6)sth7;zq+R5rW$W=0B|h$*32~kR1E;ht5W^=UO=}Mz~hd^3;+=YfS3N~j>Y_= z?ficWdjZ=3o`0m#xcw!{?UATVm*J;=J3+!QWKTfoRw)D*D-t}h(cZ?+86Xinu-hhM z9_<$q5jXkZ1(H0DkvvgKDb-R2V5M4~@3g$NPex)p>9L%ruGvAS>x&zv6l)b_OA;6y|5<>B zRU~w0>|jmP0t812KyY*gfSa-Qoj++lO+)1@Wq7*Qj-@`zPZ%u#4`j4GEh>Y!11e9^ z@}zyTRF~F6_4!y=+=ssnlK}KyoRr5G9xV<{=i1%sYMRa4(Z>2#Fs5g{_}`PbYONJT zs&W@Fhne^2v44WI5VwJeF`&4=SF0sA+AA}Ht^jaJMwUV{*N89B`jX|@(F$n`ugwDq zN6!LqS26RRx&ojPGc-Yocxm5JKf5fxMdLLKAdzWHKP`PmVO%ai(sX1Eq^H#8j_e#+ z$I&(#ENw|b*V}C&Bncb@a#?r6D^#Ovmyy5$e0%X*AAcT=*0#+W%#lE3@=-o|YIQBq zKPeqW0j0h?W0%H8%RJ?_zAXe@0nq%nwVWjiSjx`{Na-{WrD@Q{XW4r{z4)}>>$==? zw2aYp7GPz!npR6M&qD?+{qpvDPid>l+kT6%dR&4>2$BREvC?kEIu6TvCJ8iPrNuAB z&I>H%On)xGL!3~3t*(Xi-Puo6Nb?`I04M~EPX08~MTw1e38JC?T(>1fJVl8y8={B($d~>?9AA-HX}w6DUt*dASC?w7BB}#uJ#`WvmX*U5kta21hsnh+_IVhED?%XCnn5I8p!tVdyO2RII#9 z@nYs+YxpoIaR$O#02%_01g_9w1)!8-ihq=y4%b=02|$-iB3pyd7Jv&u6hWX05K;ho zSKA`F1@SN_0{iE80Z`uQ?;)fGpwR9&oWA&_{Ivko*Rg1^cb?CaF#qF7%`Co=r;WAcNk3EX^%qHae(VA?6D7Dx mp63>?6!Fu_Mq2z@YxxaI%7@JgPr@4j00000)+kb35W%d7=Hl(0002`twPcO00K`*L_t(|oNbd!NK|1I$A9;m&&D*Hs|YBD^C6 zZ7N54==hk^;$FSi@T?C1@0{Ov9vnkhZHoWR4c#jMN(BOdR5)8%J7!06vMZjEwezc?vBwRdxL;o%2nqXD9?giA z3xxfiRYY<3>+V39{53Tig~sh(DYy}6$#9;Mr;3Tux`4UhVC>Qixxam(rU;x;n96(t zK;s-x7J+)6h<_|Zpg91gnHVphZ~%jx1%|@Ce8!J(gZ7U;-0t|E3m74ET|DE8NC=J3 zNG1hj2X^ck0w|Y5;)y8kEY^GhFu8Zr1V!z>j(&heb{0ybGu>o=m+Mie#SfZ6^Wj~| zpVk+TKF%IiemOVh^zCO|lfb8x1)7emu1i}}*O-sLSAU>s0}epKy~SxFi@MnDAP#7H z)YgH`7cwVY=-&pKrkwRWnQWZv++a}zMK0ZY^2k^P>m7{+nsxvNyHX|qI-Kdbd1n^L zj<)s;K`bGQmzWhH+oGGRLCuKt8Pg(~vhz*maj1Z{gL!kMeI>Sd1zRK(JdvV^C>#I` zrxXk)>~y6_H4qU<8Tf~?JX24S1&J&w*~gooMCMV|%$7y~9rH7%HxkQ5BZxUcL6!b} zT}@lTOK`JZ=9}+?byNi@Bf&*ZB~rdJ?hSV>E&NRkza$|dqDoCG-K}DItB$<@{{Ri^ V=n`f^3!VS~002ovPDHLkV1nG}AYuRj delta 1261 zcmVU>xfF&N$B>nwU*H6XWsW4`$QQH-7*vtXURYlEBUJ#{yK$ zqM<8e1#6lXU~{AbYz~(KP*Ya#>6M#0t&CP4-AjF=b`o(kS%B)(R?vHzhstnn!P}zX z&#iPK4pRXl0SxcTmfDv3LUm^hs;r2!lu}TnDp%Ka(7Ckc*Q?CEtGw36+hGaMvI405RfRAWfD4TeK+8{jK{^d=5xA8f-NIcKfTs}~ zZ?O(L!Ta731(6gYq6kR>2LP>jO_&j(dw}|sXR?jYRQyi10-jttsE9%;Fi zl_M(rr+}0oN#I4SB76!umOKvbfSH8r0ks6K!ysgy`H`%2fP=2+enmv$_p`lcRe}%+ z)bjXCa<9R2G`u2a6mA5~AA}soUuLgO25MtvS8(OkUr|a)64(N3j-*AR!PC|VWF#;M z59{|X9)C{=cy!RnMFOR(v^5}dXVqJY99pZI6J!(=qX8jLTca$p>o}MWM*0?z*Wp68 z>hbMoMg?dY6H)>xjIQ-%ajaIjNuU+QLxd3JY2{Wxs}PX8j4T0N@#wt&kx#-jR}SS{ zE}zvNO3#W`1-9zlWeqbD=)_eaNGGJ8en+07hJPY~HI1(P9zC;&q*X>MkM1?H*&hrN`?Q7lv&(q#T@>F^Xu_uRde-B`h8tJ(d0_6mb=hM2{%8rmuR6YuB6{3P|Rfb`t zb!QS7@lrHsaei6`5kc=fk05}@k&(bIkbn3BFT>sEdhcn!qPGisDH7O|nDIKJ8Fs4= z?rGPvMQF+*jdKLtzYf-(^QavnURoOUbH^5h-pymqJ&#Y!>IDllj_}->n zr8Y-vx)&qNEng^>r(-R+p4gTIdKIr%FeW0vR<6*3j074$%>7C`clPN)I1>0KM1S^V zFKO$E-T@?pZQa1uV9Xst;eC$8whB0@?lZ2eSl_7=Hl(0002`twPcO00H_*L_t(|oOP4WYZE~jhM$>CYMWNO1;HwX zqy_r}482JyLXv|AMT*6Pf`~nd2f>~^nkb@Dkct-%UUF0#j}}V=Q=}ejK`|H6qVX?i zK#i$M`gz#d>}HMcWtL~&dFT6f_ftZrG+~we$3*}wzEUD0S1C@?|Vp3Dy9CN`8sPsX@YU!s7 z7J+{nNfGOuX+e=K$RT>iaaM>lgif1BK7ek^uCGh&047 zZa2kyV;$0HR>qI5cA$IBk?jC5jH>wu06mtpEA1B%X-OzlVR-j8`fINE3x6146 oUb9~Hjvw?oiOel+dL8Td3pebpjgYm>x&QzG07*qoM6N<$g3p@@D*ylh delta 1001 zcmV-O{Td3`Oyb@Bhkt7pKgm=}t%}Z6RdcR0R|ve@2{MwbojaWBK>%4kW+jZX4Hi z{jwjSp+LKjpQDZMisO9Koz`8+p2u$qKM0DmdgD$15Y;NiSjfW|5k zx-&ai)3gAGlLBx!CIO(PtZma@ZtAo;T79%FT^pSz@gv3n8ts|3LAPlcs>7d!`MD^( zF0Z$9oH8oBv+ubp05pNoyExM9)&{lb=a#O8+FJXxGTy#RR_~oLxN5BxWvX@_*j1oo zi7c7d3ZOaR=YR0d+mH)Ld~l_*C>autp7wJKVG#zi3(&Udey@JdEkwbh@tOrd?$Ual zcHAOpT>;R1ttUP>2}$Ee&e5=(OA@Kkrrj+6EF26 zgTRSMLEk6vTtl1J%mhy2o0H$JXH`%(o|>Uf1IikPw(G z0LtQ_Y#(Yv_mLp&&aWn)Uf*gBkPx_BfaeCatRSklvv91i)N51-G6;MFK4vRm?N6(h zLEzy`2?BW;-ABJtptut&YQKlpe^(Hwm7y0N)Za+2hLgE?v$DerLP~j!>@|&$9u;>K zf?c(qlYc?rAgh~yPv0^K42Z|FnqLNK!5lq~$}H`o1c$rP6##8%mNg4#X=gcaG9Pmg z*vsOffDn~w^>$!&|L-M(KqtEhfVGbq1O~+#2)Z(XZ6E#eZFH;`NcQSz_0hH#Y_6`s z-@+9HHYDk?m>n%3^kxnhacC@V`-1dC8#yrLDRj^b%gG> zfzpQ{J##toN|~2y?NEF4O4=HvMx6Lkp1)Uctq0HsL@MJGk0ys6=h`iq;L)J--Ewpv zJAc9Nt=4=U{6sYEmn4l01!~-GP*TL z0eGM-Qi&`GDF6iRDJZI2NC9B<9)+U`fnvBIB+|3+2-NIL>Ffxk1yG=tAd=Qo?o#B{ zxXJ6-MAH6Jhzp2zV>5~7_bKTDj6_wC{Oj1mG5>L-=KoG9i>M?|Ee!rIhjq X=#3-;Zz#GY00000NkvXXu0mjfRq5PM diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_7.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_7.png index cf09a7842a0a864332ebd0f10693e05fe46a883e..bc407b6ff96f96fc65bff3d97c50f8cff7193ae8 100644 GIT binary patch delta 528 zcmV+r0`L9Y2b~0v7=Hl(0002`twPcO00HDlL_t(|oQ;z|Xj4%X#(($bHhl&$dC(zh zg@A}4sNmG<&TTtK`0bl6$EiIFHjupWN~nkC%9N5I5`Q83Q84GRKzXM%|-KU zp%m?V$Km~JUxIj+d-?dj@1Aq+IZD_WntXJ#>s0_PSxkwD;D2U}<02xaoVh+$!%TIc zlF-AS9Rj?ax&1V{H$#BVv^g^dfa)qA45iB_D-8hM3v8g1s`t!I{qnX0lkzg0K=W{U zb@AwOFk#AbO-^(tj24;uI_ySy8-3Y3>R4BOPZaPm0ty*Vz{`^v)|1) z5n4BfzV&(Q=6$FqlBM;aXgT0V9K#{td}377`JNiXr)y*5y-RX7ZSwW;&1diZZ_Fh? z+n+wDbTt*F)vkz$^#9~dwdUi!=vOk+D5Ij20F841*nfG`!;xu_nodN=gA|DK`jALe zOGHF|ZVV1?%!udp$M64{v4L9Rh%&eSA*tmhvpI$=+it@k42J2H_kU$}F|oOxk2D9c{Yg{P00{?U{~=U+_1=3c((?6m1&U`m#=-0L zda@p&flhX{em+|JsZ>RR>lppJVm}}7%WBqHT+e||tY)DRpnoRTDwC~5U~>L>fWayj zx-&a?)A9hxDFa9j8v+Kyjg63iA7|hr4$M!b;quhu5k8KqU(@FNYp z)TdVCz~Pijvw!0900oa_#!G{Y2an6kg~{Ig)Z|s40yF`G)2UCXEZ0d~Id~o)OZD{B zovRxM?D*kDz3zUL8Gqwi)-o`^=iaITNb%d6Pby12AxP(88g))Ws^6^O!usbdE#ol+ zoFCRp!|Va5i(1?i{4NPTj~KMv7hg~NX! zmB0y}82oWxPe`zM0#gX^2q&t%RMsN;&b-g3JT>_6{??FSF@k9iKrI1N6Jig@F@|9p;qUpN^+gfd6%o%+5JnD2sE%m{GSzrB?6Oy!+>ig zkP~GdQD+sAmQ_J-nWw_X%9vgU!(%Q)XktxD(|<&vRXlp`>s>^NYAh}hh|gg@*@#Qo!eoiSc%jYj?+XScWy_ZAxCKwhsgur zcmCR1KR(`tG4NxbLiE9J&G^$We9UdMxM~B&9biL;?A8_!^}~?1m(rhsGVIaj^iKg9 z27e!hHcV;*_;kT(b+~PJkkkfHBsPF7t{>xm8(74q3?MmW010uu3y4mnMV^@*!s!hl zJLwGouKj1C_5%Q)BxXuF&DY_A) zH-Oe`Mi3QtLrCOCbKuyYp%2OfAgsS|ic7-L+IyVK(CFfi-w=?&-Fe9{87c%Mr~Y+p za?JlYQrbQhH7&!Wcnbm2qDQv0UH1!8ztWQU1~0P2Ibbx{Bme*a07*qoM6N<$f;@cH A+yDRo diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_8.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_8.png index d12fa6abaeb935d184c0a5f82713bebc827f1ef0..7935a77552fe89d8172c9be07e1ce27d1caae0ee 100644 GIT binary patch delta 589 zcmV-T0$U)+j1 z%5ffZrWOa|DJ<4MMy-MM~tzEep-1PvINMAY8a_Pj!@v&|IQ)FsUr$~w{ zM64F1AZ771`|Rw*^ri>2iEM@{o4sfs>&at*0|u(U<;@c+;T+H*5=eu?fX>*=2Jov> zxh~lAdyi}>oqrlex!_Oi{^4POyO;^240IpA<^qJ?o!`=ssvxXZ{+x3nrAoYmmGoF| z&+2S$e^>++6fevB%0TweK=VTf16Vk}ZqIk!Q}0Gn1waL**0pG<1_lC6d2M_I;KtWI z_g^I*&((d&mtS|!jjz9;Zd4kqmi`YXhaJESO06QEW`9$-@LhDLOi51qNuTCVS4WnI zu^_0Pnyo?R!OGIiBnC)g&<8hb?y@fw08>H{5m)075n0lA3SfWvHo81|xQMm&4|0Xl z>Vfdg_DM;yT1we}z4lCem3>+Y%1MNUMx1+78)vzHV5=I%?iPlSM)5I>=`@M4}&DYBD`KN^?x(EFN3Gqcy`FfLK0vD zYLME1UDx#!u=?3*XU%erKrCM6kV26606pwZ__&P#){>WG*oUoKKou}rfZKasfKea4 zejt&h-9vs@;taJ%{d?mxezVv@fT(ko1Pl>+Ap7det)$YYY8%BtM$YBWQjj16p?KN%QV2q5-q_#Txx?jmJncO@GBw=Pa^P` zz6GoZe(jgh1yLUu;a1;~K=i75^19UzY7_A_f~f>p75uh;Mi;QYw0+eTM%!EK{q|h~ zX$sG-9UJwj2~W+}9!w*^>fp<@VbO4DN*{0_KPFx941u!Bw z<$dpX*}86Fm;heT*uX}sSy2UiCrR38v$6&2y_EM7vDGJwVG$Ue)m{mfsgZl*TK*({ zW6Ks$VSnYj9+67PW8xJU5`mG~&*a?lbGyv3Gv2GRY4^}GX|@qDrinZ>J|h+_Tl730 zwqyZvA7e6rXyC1i8`>v(Y6o z9aZvJ|2$vNJ(Lo9<1)Tl7!rZ(7Qp_1!E4{zFn{7Q;iFpwjuu#Eq%ax~F=Q&0_>WtE z7Jf=FECD7zYu7wmOE|6=CxWl}zX0?FFkg&SWs?~SvbR<CrK?Ynni`d_gu^prt6bW;+_E2i+o&nN=%9;3!Vnc22>vN?^-mln${uaugY49?MpM zpML>}9G_V&n0_O^^^l|`GRiKPHd;HmjC=KrS=wOP3SbE*ulmQdAKfCNX(3ZhWQ3r! zvw|=C*TxuK?Usl@uZ%0xBKg4b)wY{00waAzs&!Tcux;bnYVAnv_v0an5jnyirWj&zX%_x{%U zM(wq%sa_uygda_So>b6E#o9KWNVCS3_EPa{KB6%rDPPaFcB=?vfgY+$_2$0+3&*Vh zD{_9XuP2k@I0BrI7M=pO$|$#p2p*RONSr?Vy<_815%^dF)GFhNKxv+A({qL*@qZB_ za28Gt_?Eh1o6z}kQMxN9aR`E2|H*c9%U?;t%b00000NkvXX Hu0mjf`Wq~* diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_9.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_9.png index ace68d642e239e5d78c917f9c877ddc4b283d39e..99072fae973f11fdc1da146427b30af1a96af6ed 100644 GIT binary patch delta 604 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 diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_1.png b/assets/dolphin/external/L2_Dj_128x64/frame_1.png index 32e13541d83eb0571414851957a4b8a5647a8c03..efd0fcfafdcdfab812548ca38510eb19bf2a8850 100644 GIT binary patch delta 602 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 F(|@~CN2UM( diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_11.png b/assets/dolphin/external/L2_Dj_128x64/frame_11.png index eca4a1296ee3dedf9ebd3b010c7be8763eaaa44d..956d31d02c7c866adc21ac57e8bdcc058797dd93 100644 GIT binary patch delta 599 zcmV-d0;v7`4CDlm7=Hl(0002`twPcO00JvXL_t(|oNbf8ZWBQehrivs#23XRt01ro zg14jshl;`^SJLGX>_-5Jg6=kNke&kGBBd{q1#~2VAe#AoEvNaP?b<56oSluH9+8G?hwTNy4BswL!`jD9(3}Uco!^!?-z-Srf zlK`X|H9P?m+^v|?sg06OW_nIV08Oy?4x`bzh@@}zg0Zx0Rt&GeXSZTl$Zt7!6=P#I zlZc&)A$IP+AKB8DLg694+Wy%7TjF!BY0T9y>Nzk<9Og?%Jiv@$`!P%Ku zKh&r8SmcZ8`GC+E_$e`Dj0%_*G`rd*lR$+jfcUi0j@^mGfPMwg_D}6WXDc&LN7p>@ zLV?(JeqAI+vn}6>WH<(RHU>?*@iUKyV-0kh0LPQ|=6@tcr#5n4W_s#H<98O9Z|P4l zdnyu{PonE(J$&Ur2a7KB7F#I?sf{l3%sk%~5h>&bEd3nwuq7fTrea+!jqFQL)*KW8GjOjrMs9qg`8!)+sD#gKRA(Cf&#%w)b| zkf3BHc~Hq1q%cf2p=1mIxC{e8>C{HhHoYZW8%|)%h;mX@y~hUVwK4Tv3AF%5Dc59? lMa9%sY3U+vO`sfPfWH_G?!mKaPLlut002ovPDHLkV1hft8M*)f literal 1660 zcmaJ?eM}Q)7{5{wsDfm1laGv?g=~Cy?e%)Jca>^OTLfY&D~+Nvlk448D)z3l2egQz z&P`+lb&HF*5tVG6ZU%;lafqm>bCdXm&S7L5V{Aj6_<=^iIbm0z&OeNoyL;dFx##yh zzvnAgn{QeiC5jgT01%a%qc`)bkAE}~LjL_%#5NS?f3o1<(va*E4De$9i*@h7#onB$x(skEY^LQ)}@u&y;y8II!t8wdjN8j#z|aD)e9+(|(T zdfH98>`uZsFu3yd|`-ndX_A6&C63R}g zNCl2rQA`ODq!ouyxeSL08ID0Ti6W>>VO3Bt6}0mryh4W~a-|N<&eCSfWCp!f3mbGg zxdJw1$g?n59>nG{ZjN9`I_TTZ`<}+iUy4=fTr|P4E(^=93wA<&G0U;;V%7;Fs00O5 zj09ZYE@pshv5veQDF#%C<$5)DPfr$!W1Y1VI&SiC}zV51%cWKt6VJQ zDM|yK^IRtdMSOb(w$EmRKRlZ*n&C&v#m`RjuGTz$?q=jKu^9MuVq(I7eb27|5aP|% zYb~DMKO62ao8Vc74Sf^-H=EP3ttUd7empeZ(3|R&+hf0Q;(q`5)48`byTd&P(!KSar-7QgDb=rJ z&T`&d`M9wt0jL?BCvFSNU#0tZ>{H)9Anj>VXyYf=wq5Vog}8LpwTUB};}U-})+H7T zyCc2c9;bG~psDNE`jSGAgkRkqo!QyGaG<8BCY%ur<(!Py7+XdCH-GNfn*7VCuWO4S zW?$NYWptGfwe?u|!gQD4GPjN0FE>PQ@LxoifZAKo*1Jp5wymV%+~(7C3= zug)%Nm)_oJr5ZLj?B5mH6a|b_e7;%|e<5CDB7|^Q^al=e`ddFmJQ3vi1m(_9>yz(d z_m21ku{QINt;uwuD_q^`&-l;zS;6s_ZjuPu#^3Jhie;4 zyLPa-gK5c88&ma)<23R0+<~1tYBdc)&5FT<^wL4?>*-}9<3k^IS%z2iSJmAJsg5Z) z=-GC=_CRD(3>tlY{eqT(^ME0G`&$14Z_}mH{MDggW7cQ?+;Du^+dJH8x4jJ)Ua2{> z>~g(N{eyW!S9Mu|rl%ztC@&cbi+K=%9jh01KLkF$DySH{zaTx*GV;{|W z(mqGi4mm_>8_+bWlaD8 diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_12.png b/assets/dolphin/external/L2_Dj_128x64/frame_12.png index 5f92e47fdd7cdffb93e2cb52b64dd87858071c6b..a99135d7b154a19a28a8ec51426fdae9264cdc2a 100644 GIT binary patch delta 582 zcmV-M0=fO=4ATUV7=Hl(0002`twPcO00J6GL_t(|oQ0CTZqz^!fIqKŞ#0*P}G zbjuUml_{)XBqUye?(PMGpbG`ElY&qpUVuDCx-(Kl8_IOIsW>DQISD$P`|(itF7^c^ zwpx8V`_0bmfC12o`C4q8yFl&&{tpb$k{YmpK%q4Irsl{i$6qacD9JfaQaLi{N9P%smWb7gMj`Pa zSub0rQFs*g0)M4oQzQjer6unvRAwUZb;t%^?Q;NQR?u3}l8@i}?iL(lPO1 zlItDTWWw3njMUH_qZRkvN&mPxQ;`Li4CLlO9oPG@;eUGX_5#REJecKrhqg@RWqSsO zZjtB*bVcO2T`YR)(F44i!%4wL9aLuG#L4xRlYmtKhOR{VQA0#x>EAl0fF!klnF5o= z-zIG94sZcDrQ=Ae#-X%C`l7J(AVV(ST1cyR6o;EP3kL)`guNe7&KL|ikx0zajLCdr;GM98U}4iz153Ly=JC&`Fv!P1~fSyxO9@S=M1UVS3s$Noj#LAq}>8J|gGy zrW?~u-E?z$zHcWJ(Xs6We9hwyH@Tfo*ii8?<=n3w_Ddp2oF7Az&gJk~7)NuB}nY1YMnRv%f$ z6f-1UQ`N>~13=U|ucJgLvCTD5tWQOTbyOiAC!ql#J2%9UR0Sh|E~d=uH!AzSX;Fe+ z+NhkbwIMdn#CW`Omh#NJr9}>EX$3{l%G?|D~;}^&f<3u(8^i0oS1JryX=bTvALAFSW}{O2qN2UDfzlDU z3&ZsgNx29J)2IoER1-MFP#B7-buJx^&=EV&!|O~0s?nS9!h-xlwc29N&qpjKlSYSF zw3-4O(L}ITe?TDp6ch37m3$9l^)JL4OguvhEbn01%19^JJ*>b6JS+#Im)P=Yp6esi$rpIx}MbJ1zXtZj*4#!ZO zaw~`N^fT!jYE?-hg~3JG7;qFv^(3Q#^oUvm;W`Y3aEd@640q$Cj>O!gOQVD(ig37d zp6R5BNNUgU_UUX$ho{rU_@$BJrP)#7ubq|VF2+9BVUgB>fq{LUySf2D?y{Qm9igsY zx3_IRgN!ow4h-}jIOpQsRJJK?UC=?6Mvx9J;F@;a+2+2oO1 zzFu|8wr5WPm{rl>cBR_o?VslQ;wJ2+GX8Bz5(}ap-f{vhE4e9VYWf%j&fiQpdyJY` zOU$$%*xg^6bf)SndlFoK{Crc!jXgK~$GZ9)*^TqA3itBjoK&zWy7utr?zXq&2mdHJ zxxBe<)8);DE#u-x^glR%B{nZXFAt4KzbMW(T^ftZpO_NMM+YaZPEL9#-!QKd(N3|?l$+N920Vr zFP%*C{FK(bA_hDPFNyz4eOL>;GC6hA)+a3)7y5K@qDQ2c_;&$X6VUwqHlTK-%;Ou| zfQ)WaC?*2STDRRjQ@UF=ry+4_IhW8oL3Dfqsm|GNR+p#JT(`^_Q)>Mgd}BGEQg`r! zhDCXn)?hKFtqTFdw>`ZNj>NZL+dsWDkQU`!d}o1jBL$*qqDNK!5nhZ?zPej}$m- F{{s^?M>YTe diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_13.png b/assets/dolphin/external/L2_Dj_128x64/frame_13.png index 1b1017ce259d7b511bfb2d6c565cbe8350ca929f..3c5ff7b3374e5bb3a61b9e5cff11b2485d0c2b1c 100644 GIT binary patch delta 597 zcmV-b0;>J?4B`Zk7=Hl(0002`twPcO00JpVL_t(|oSl+bNtp)aA|b^Ef7T)>mpHzmIR80Q zGS%ws+cz_BX2AhiVG^^${{rPdKoF#hfYBUkX-$D$V5~%)Vt;}0^3aEMhPnTuSrX2H z8$U9o{^aIJ)zqJ?eur5d9*7Ir$!d&N4&>rV&fXTb4ZRE;V(G7+MtqvmLUI5vn1epp z2-r}~5zL;d`saApgV=5(V^#I9#B!**Khr=a8ejle0$c-&urks>^-8?k9qJd`CSrWa zhZLN<>#P+Xjeka(unKJaI>`|p-n$6iSG_$MfbjVA=lB@#E;+d<>^7U_dO4^J>YihT zO?{(1kSvEKJmjp=2~z3J#<&lu$>g<5(x9+y0Hx6rPd}yd literal 1654 zcmaJ?dr;GM98X(TD+i*^sccSTIXtJPP1CeZdK6j-NN*H-(8=R)Gfh$`&?cmT7Iu#6 zx%0&-6BVc898TSx;Hg99oDZhsd~ABCi0_-5!tmxD+t_?;Se62H{^6NR^85Y1`F_6N z&-Zm%ZO>W|8~t`P006Pp3?f@xgW_XW$i#P#V!cgV;)S$4A%}Gdev)SZ3(Yzi(CQ(J zm~4imtIE$aNdO>Q>2~A^dA3X=#d=g^SVtA`a3UH2l2QU3NtH4J=wyoAUX!x_+fz!= zO`DXtIvZ@`Qki0RMm5jmRA)J;>QV})l_|+!Qotx0@Gt@i20Ue6pD|!k4%;<~`>CoRG!Tarm{Q(;wl)TU|0hha1{k3FzQ5T#x)N_U_`5i5%GpJh*5(Y5fmJ~ zl%hwTb{VsY^ihA}$)qe61kR{d`~7~EU#nvIBDDs`@vsd9fkX|+SLGGR0Oa*0L@W@D zkK)~&;AXvG*dpmmSS)Z_YN}Qb zr|GowF<2YHTD?Aj^ioX3w_Ef*iq*dsYfR-CQeb%p%a%nt!CuS?tgo2mKm=8x;A|U7 zxxHb@d*LdL1Who!yON>PdDa6Cr`hO!1qGK*t4Ex$6GAZD0HFp9gPb^xLAX|@G3YTA z!6=t<6i>gDzL8cHC1My{gpCnHFvLJITF3xvv=F985eTDj7(y`@M(Rn_MLM-gwMbDN z?wpr8DIyZvGrWB<8{*-`bTM9Wq ztw&pOz2Czz1pefd5QH{lj9a@_|D7_VI224w&N(ydvp>vR>5|1K zPA)D6LQyN|o{oI!{$+p9>*{yNexKO+bO$#6cz(h~cv^Ew5882L_OS=V(n-Lf-uP9a zRbc!50(0nn-M!Ymi<&N-Q0&rVOg;Hi_d%D=UK^8d?5nsUZp6-0nAzW@a^uK)n`w*acQz<;3$*I9tbQ@;V$A-)mv zNPSraroon0L2b}l(A?kxVE>dXoIM?fpnQ_ z475){sFfO2cYmaCS-vo`4S;^@umDH<0xQ%?%?9~0Kzjm0Oc{=l>wYZihQ6buaM@ro zvQ6&k_kIt+(JpfG zTu6THV2=pNuNCz=_LnC6TG9XyH>axU4Qm_YZGY&I#7U~Z%eN_Fe_2~ zx?6|BWqs}0CYw6e$D0$eyoDiONr~uSglQcy9U!hajEB%lk-}x3x?MLp1Oc&ZL!BQH z;7y0QW6Z759s`#EQn)ve*c3Pd%+xVrpB=Vl^D*s*9={0S5imJG`F{0$=6D5l`vAH> zr+z1@Ls~0)4@;w(DIlstB>hq>sAhWgmv7H)GIP8HY~$=h06;7|0Q-|JcJ{cYdWwL{ vRQp;1_f@s8GTS-kn=WvN>bbGE{{{a5KLF}eXtd9A00000NkvXXu0mjfH7*h7 literal 1667 zcmaJ?e^AqQ6i+R7RjFglAB@c{t$MK2v}qdJq=2Q6qCG6DwJH-Fq-{!b(5ALwlV&00oqu@dl6=44_kExD zKJR_sOUjLz^FGOa40A zApvPyvSe9;0XDePCc(98qBlk|m?0vJ6Hrjqy+*E`=d049h_kF15l4j9L&IWuFToFrtvb2zNtrL@h_v z2nvo}63(N?W>=et^f7i0Y}cQ9lj!B~r&l#A69$r5fy zYNKsxs}jd7D5io)s|ANpg&c=SIgUY;6-7|F(xSA%wy>QS;W4=i!L>wcda5>EF4qxS zEv!pRQz&6wf+7`z6=AI2)#^x1Qws?O#M!Xq?%Z%IiyVW>>^H#9CtWE2;BZHH%gY{ax9> zC)HKLoj@ynAyGVdW}pYi-+d>lv*q>s_e8*!d-?!-{^s#Mkx@3S4ghlgou8e}8w!e( zo|e7I+wsUVyr^6^#C3}9o~_>}zP;?9_57YcelI$Alo{-4NMmufIf zueUd?-I3BUNI+E6Kz>!b)aW;L$IX)5-hF!t0+qd*p?LS1!jfsT z?gkSAZId@$l73gx`nIv0f9xsCyL*^Th_Kfh9_(zX<2iyA9m3NwRBY6_*jWKz*%zXtfZu9Xi~;@8j}*ap0E4 r14aC?w7aOMg&+C!?=^uYKr=29SRN~Sr=Tku5B(POx=f-uHE-R2HCSU* diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_15.png b/assets/dolphin/external/L2_Dj_128x64/frame_15.png index 9b796498c0c48c2c9125e98dbfea9c0c812345ef..69d233ab575adf016b9307608e4cefd2995d8b36 100644 GIT binary patch delta 322 zcmV-I0logf3ef_P7=Hl(0002`twPcO009_DL_t(|oORMMPQySDh2dvM5Q-EjQy?WL zKsf>OQF09=3Ud=~f=f!bG~je8P>_fvk`VT%K-lAl*z(iN&fC=pfP=b|OOnnCgKTA> zrNhi&;&ARTa>z=D%0MfJrNhi&;^1TZWWO+S_|wuw%_Z$))PG#kg|{T#_t|qv8BHhw zxB==o<;utI9U6t_0w;h?sK9f)I_w=9hbn>~VN-sF1W1F9?hEVwjt>9|tN1GViZ_6r z-|-Z3yZ~ux6`xgrM$*>TVPU}zw{brz>Cx7KA`M&KRSox}4*#4>QX!QQC~aXV)x@Ml zQuz5?(n*?Z0y`|w_~96zztz0G3l&porFE#-J!iC+0Z!LrS_ObP#~~2l-{tSlH#1p< U1B}&wBme*a07*qoM6N<$f*gXBxBvhE literal 1344 zcmaJ>YfKzf6rKgPB1nVPmPk@M9co&mv-4zjX2KR0cA?vJaiwdam25kYyD))yI5V&d z{%}KUjP(aL#-t@ptfo~HZSg^DLSwYs z@0s(R^PO|gnb#6+trca}We9>)#P&qmq0GUjv9uVz7fMIsP(0yAJKgf-Jl&v>fno4Ks|yKzp5oW-Ol(vQ8D#^M^_8p1m2;$+-v20hxIAsg%;YD+3Zy^5e>4ZG3$tOyDo8(r(j?6gBn@wzqD6`oX%=0* zFc{HR(_(w1Wi=k$g|HsiwM2r*WHNya6EN*=f)WJ5^Fh-%w7{J~!@?YQmWe;VsrJIO%{ z5beM*`)viDNxHTGhV^@JAkPr85udd+cra35#8moqV7ReJ2!me&s-}txC-5@M2XRS} z1)OCl0hcI&$AQAqEXB#3N~#4v>*0ASNDJXeOG{I@g`%R7aF~oXH!~a=tz(*ak||(g zhT}?x0t&G;7<&~PeIQnBwt?iDcG5Ka3Z0PXFntSWt`@PAkGGP9+w4`#|5U23UWM4^GX_9#jE#~Z>3eC z2Bu*Z*oZvM(?JO^c#xzRoaa~?=M{m(Sw786oW!OjnZXE1k?=a_zD_ErV0(JYwb_81 zwdn!|94Q;l&SPbN`~>H2Lt9@`cUJ=oZ-7!G~sv4Z*RGdpLt(;QFk`(M1HN3K3S3x z?h*foSF4IX?k2lNh@xByx$Xb`^^t|eft<`8dnruc+pu@~*vV4j;ATZxtVWa@+h?~b zAKm-(&eCFaY&_K3@Yn9CrTJH8o$=WevIB~D-@hQ>q4&yD>PQtJ6~$=vyH%iHe!m|TBnl1+LIqF|DDd*V zh*zp{+KUXc`vAZtBT+CjynMXfdY5npGROD~*X=-h7K3KYkbfj!WIHqL_(C0sw2M(t zElfHG<(|QO*O&m00IUz#U@KysIRLZ@Y6aK-fh4~qBQf3zOgsfX@F=D=TJolIT%5sH z0Z7u4*>+_3*Q244%rT@3@2wa{Befb$BQ>f>jCiAM|Ho3P!RLD92Zxed@yO|aUH||9 M07*qoM6N<$f|oRMNdN!< literal 1251 zcmaJ=U1%It6u#*;Ce${is8o%$on$xmA#|9Td*{sg zzVn@P&v~ypxqrvDC$|9rc9cu`8d*E!$qXjQ``X|_g)C1*g{kO(XGJX(V30LE9aCio zHE<0hbMEK`JO)7Gq+OqirYaMf;W;ddeb~0+6Epy0>9&uIX&g~HZrE;${`1RoG-aD9 z`nAytU-5IeX_w{$d|-aEZp=>`(4^C^P-AV45I8tORNI+xL#>^n*LXFukIfuSt+_>$k#Zo)oQUViS>d8CqM{e4pC%?2NTY@5o$ATIMQRt9rDs^R}-Z0a4>=X}i7aOlkj200UJ zqz5MTdvKuGk*LvL4Qz5SXeRF&vkrEnay~_qKdfn+nxQ~dm(?VL3>`AEBtQlUP-U2{M}m zxqGNOQ7@2nb#?X3Pam(4-PLkFTW|mT$CYn}&QseH)w`?5=P&=b=aZ!$sL6>UOx}E? ze`{Z3VDQ4?q0HHi+qZJ!SMYAf&9*X!GiMjm)XTRaej`)8)PMSg+Ye_-nOl!u1k1Ru zZ-4*Z>EFQa{^vT4Q^$6_4{FQC<*#3o|8x3-qRjV+yf zhlH=c+dVen?|J(B1@P>hcfzX&hlV?U{WG}u`Ri{dmbV-{HVi&{Jo7>NE_-Fyjpr|2 zTL4D}sArCE_upE&xcB$dO&9!q{oi4KUt%P4Zs1<$BuIdp=XWj~{U~dZTtT@onO_<| Ga^gRXW|=zx diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_17.png b/assets/dolphin/external/L2_Dj_128x64/frame_17.png index 80863f0b6935ebcdc353deb69a6b5cf4d0c4d4ad..f606afb4bf725e43d474579fce86d188ea178be6 100644 GIT binary patch delta 312 zcmV-80muG~3daJF7=Hl(0002`twPcO009n3L_t(|oUM{EPQySH1;;qVNLUIq$OTez z1ebK=C@v^C1jQaDN1&vj@Db8dAQ@4F(g+a>NFIf~-pxvQ8-8PJH2c1vwWyyJ-5e3j z-=K^dMbyY6M$I&ukw%Tgj2jD*I+j5df--uf2thu6~8N$bJ*zU^Nu&=Ua8;Bj$iu(<(P zIk5W#cFSQ4WHB@80}s&7l@DMI%o@DZ)n_P7|*p`cWu3O-I%%|8ZwZ%HJ9W~E|~=*oE27&jfM8X;EgN@(wi zDFRHO&Nw4+p4zXX5s%dHq>@&r(Imqp;?XFbh{af*PK4M&fo7Z7lEZ|nc-Xltt%@l=YD+WXAJXoq~g(Bb#dwD4_l7W{^N3W<Y-MP88j#+;%e)*wV`r+Q!^6&d*!PZ}nesb;Ey{|`4O@H^E zwHM}3|8eWz{nxu@dbl(Br3>c^cWWQC9SPidt0z+1Om{ACD`0t~x diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_18.png b/assets/dolphin/external/L2_Dj_128x64/frame_18.png index b4527bc83306f43a5ee138258cee037f073fc276..392b12e25125e5397e0a15b98b3dd64fcc5c167b 100644 GIT binary patch delta 502 zcmVTHP zxLCC8Q37Sb6?Is|7St&`){k9S>g8@y4`j#=0DE_vv|x8VUDx zUISJjTAhQ<1eBTscs{^wR=e@WHGqx=)Js6U0N{fLuIvMmNq}bTgZjBe3fcfy=Nfjl zA<*0eI6%{UzJGu-0%B;!&`Jj)^6U7|$v*UfMN>rN^Ko|a7G*)-NCDc4AYjXYUH~u$ z{}zv=8uC{(s7MKjh=@G+zFz-s0OAxw^^A=kpbC&rBUJGp+^C0u_b~yK04yKAny_At ztCY(_%-QJ}xKx1U>x9+>pjRp69RTA3e3=HBZ2+Drz;B%)+ma>Fac%defXraGw4ObA zp95aveC*}dC%K03v{cOC9?->sqc(BqewK)cq%&fmQ9bT3PSDV!RP+@_gDpX7HAdl8 s^Efmbgbq%T_lr4>N<}sXz>5L?0%As_SiPXlNdN!<07*qoM6N<$f*hpfeM}Q)7(YLT(BKS}%sFwKrxQi5z1|(yyK05P6{u2HDwz#iNUwKqrGxfrd(wiN zAY_|n6Py#qaEfMbnr%AgK25WY$!21Mf-VjlpaCyX1T^fe@dXWGBQ|2!0QYgR z7DGo=lxib3O3Goip#^dPpqz%lMS{?wdQKw}Btg4K3Ah)cBtcSIf`m7&BMmy*K+@>g zg+Y%2$!)Ong=7BU$%s`cir=8shC(4th|4_zi1?nWDpsS zbzthUYjF! zJ!ooAEOw&kjOXCQo_C2$%VzKGJoEUBtn&x9RIa)DMYM7aUUU0Y^QGvtTSLg&vU6!^ z{++SANb5iY&t7?~x%I><=e0@da~Vs({*6dauBCBc>iCE~{bWPu9_G)#w$8D3u?^8} z5;gEaws7OvD_c{X!M4jcGEf61uzU4P(c1+xUtGHxu`v_`q=u$!{_=IJkz2(knwig z6h78eu)lN_-H>XH|;_$zl))tN7eM7a0-Bp>eLkt1+uU36$^2gP&KbYYU7z=K$u}3bzxu<>2}iPRUG>i&yV>qE zty5pWx9h`c7rKWdEek&_t9zks#p`A7AoiIr+mkox+tV*auj!lLyw|$CV#l<9qT?d! zEw!PeeV>Jn4}NTQmMOOJ!?m_4hiYfFWZsFC_Wz3{Qw_yId-t_X`N+V~)hUtwjl+jh fpD?dzxRuq7Ftbvw?pm70#Q(Myb1A?We67btK@-#mT8t05)-UM7n4Gm$tIa= z@n*~<7EU#MoO?OvybAza6XSl+Y<&r+6Z}U3{w6s3SK*1x0DooK^>1%2{pQ)sYLOY8 zXahuCTCPD}Bs!FM1I)z%x3mDFj9M$si$oM{6QjLRI5I#H4S0lIPyui;@fG(*i)jE%(7;u~ zE|h#I`e>laxwg{WgX=D7Urt(ISBnA4f(B)&wJT8KLIA+7$Vuy0ygKEvfQACp+R7+Y zMF|=nz_5!lJ9&c=jjBVf4eI#;pmO9VaDUYVO0IxC5r2t$(@y_g(Eysez_3dIPYfu$ zS0WPk!v1&wP|&v~z|$`97T|ynA|i4Y_NM??4n;&pt#Eu=aFvRPh(yJ)RR;ExCZlIF z31k9yQpI#(0X&m{)!5xeIel9_`A!MALORmH&yh9;%;x~)gH-Ve<7;S;f`%f{$tjD7 z%&aC*?keRqz%bAt?2#zqhO6o*RV>``cs{@%^B&!#Uwldi00000NkvXXu0mjfgMR=8 literal 1530 zcmaJ>eM}Q)7{6L71%}|q+!x!9b1`bX-Y4zdg~Cc(5JREXIvaJ9>)ll@&|Ym%sYDTR z@e>ExG@5M$wq;_(sTs`g1q{okZlXA|S>iI6snacf42>93ySG4{e;6-!_rC9Q&+mDD z&)02qmKLR_zM2X_PtFEp#R8s~ev;-qqmW|sWNfcOAW5wPLPLNX`}Uu9E-Wqv837Te4S_+k)ckrRw8!3%OAE}0&$ z(n!!YDI_nK#KMr`hlkV5$<7x$th!m>XH5Q9~8EyFuf;5B0Hj6vb|I?1+6MA61 zEgFkm@9msAZ&7B|`F?9gv)Yn2-uc$I@UHDui`z6?AJ^8$wB7QfF6hD!*1O6{H1mz_ zar)iA&;Dx5*korxTFMKn)P;-f`=d(e z#O`;Rq}G9!B>tPc1<=Rq|9M!HetWZSP4WfU)mt~VydGBFcP3sNbC#HulzYyuJ}>OK*P?A$+w^zl{m##_S|{h8YpGlGerECpU9LWQ z^F-Ex8OaSVXQrJyoqg#j_IjPQuHC=!;Pu`;QMPsFwSlH1f2@V9gF`OSb1A3cs%QFp zLzUdw+Qq9s+PCt+vG20(k15%DweRM;$&-%T9%NiOtX-#@v-JF})G_VLyF1}%W7ChN zyZ2PC(KOvC>KBkh(;!#2(z|Kbj2+r7y1q^M*=2wA8SnM&>^XKZz2^4m`Tu^}IPL~D z)Ux@=oNagd$yF(O#?Jdt!^GVWQaK-WH$+dmDHSVqt!%q zvS8O-=jkx6oAw9vULM{r-{*P1-|zdt|2gHofcX!_-wU{V0e@%rRc%+Pc3Sc1)NVk> z1yHdN?RD-jG(cn9lifp`K4icsRe{Jl5A}8xXvg$W8(vk1ZU+Z{2S|gDO8^Sp^sH&>jBTNiwcXdmKXsfu(XrQN^th^)ZaPAdk465!)h7!uUb zPk>vsZ+52$Ndvgx(IL~zG$gR%%ppZ*k)K6tr==fEB>pT117k=e^0uEX5lb-qO5SLc zhzyMa3Wd-dZ(3?wdYyl+x@ZM7Svzh{w?LxJ*LJf0D}Mm%z=?4PCFfBaiVQDf%!sX% zx5~f3PWwRp9W$$s$k>=a_8dG93wI^kaV9gX&-Na^ zd@Tgz#)r8>50~_QFK4@p*@HyW-HofgZ<$Fh9Bv({gRVh|vU7Rt+?OENw~P9x82GB1~ImNsQ# qD2z^xD8_Rv1c--9CqG?J{Q<=E=7eFC8?pcZ00{s|MNUMnLSTY$+b!b& literal 1726 zcmaJ?eNfY87*9byPI2l9OdVpbd^$**CZ$b!fCbt@l_FvfQ05(JnnHm#r46>_L_66A z(``)H1i8)W?o`l$;`xCff*{+e%*{XvL3(r&00N`GxS7$Prs$>aC8+e3Mhi5aGSTq1cudta2GM{2V4V9xe#&CyP+qs}# z8^g_rQo$-y0+p*zDmGJVi&NBOaXyJ_xhrD9Xq$vJV4xTRv>6JF7Ktr}J7rhG?ww*j z7o1XI@?*Huq%u{hU;=HXK%56dBn%5cG0r1l1Qu!#Ev1VD5g0-FFv8xD0FelU5=02j zTwK|(FM7{Z2sQt$f?M(k*qfB*}@P7GMX$hP)0^6i{Y|gcv`(y zLW*!qBgDiIL27VFhzf9s5a1X@kwQc$5NSkOSnIO$I=mttjfzvq6^i&cxj-P7#l^w$ zgalLs%cIbE3`Sj8rP0C=Mv`***0a86u<|!zB?)GVU}&?NrVCu1keW*~v?Z4|fryYN z1jAJXsW&<$%biu44q8T;^&2Uz!b}^$sWeOUuc4reLPdxM)<6h`iy@&H!ypZ=#ULDw z5{N~Z5Wz?tcLuM0C4JMa%1YQUOfEJO48agFL7|Ws7N8I&5+V>r;xHt{bQmEbggQcl za``MpzO!>)=_HqkZBOU+&8o@<*e9XkU%I80_j%HZ(V(#$pfqDB-95I6!p}Zx`|V-di>IA`JoQ?{ z?-X~gauf~6MrQY?^^|%y+wUA+=%Bl+X4SOKsrI?FY+U77eL84-cy&egngcaFAb_*v z^35%~fx6-Rz>&nlLoE?NvLkW5N7cz}u1E7T^TT%n!W_r%yWhGr(s8CwD(zLb6*b(F^Xy8Fzc>7>?8EUV^Ur3lQjDJTa7_F~PX>HB5Jd_csxO4F`nCSq4sd;QtidVYgB&M?yl+XQ0}gj{;)o!eY0)2>0t7WuzyV1 zPi)V5RXxGIR^Nf%^ky_H8n46P=>8VeV zmhElv2o{Xy9o>-GceGmFAD&!3R_dz_4?BON;A&l$-!Ai$?GerP`|XLBt@S2pgX~mc zmd~MxqGK&7zs}l<4sQDD&&KY3DPnZl`To|fU%nnFKK65H+`8bJBb?i3t{gASE7`I2 ztxCn?qx)m$ds%hH_wwF_db+m(mF^k-)zA4HPhjOE@7@FZJLWt8C`x&XtT8@&>wjET BgtY(w diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_20.png b/assets/dolphin/external/L2_Dj_128x64/frame_20.png index f63904f29b2f44112bcec74fe738a623b2d9f1c8..c80e59d0786eda558d500de166381b8a177aacd7 100644 GIT binary patch delta 672 zcmV;R0$=^24Xg!_7=Hl(0002`twPcO00MJKL_t(|oL!N@YaC@5#((qeY&T%&=AgDj zFewy?h#HEAT*{7K?8$R`(HwfoLGVAADfTF|9t(vHJ@sb)gPmff6c1Uw3Bs-wO)8Y6 z+0|^bGxPH>lURHX-{HsmKF`DV(sS1r=|2wqGj(7Q#=Oo#5`P0#Mh%d|VB5SFKviI_hJ4`kj@<+3?OW z70Up(c}VeI_#q`?nN5J4y$>ihdpdWdsXFe4*4mgnW(l$aw%75uj-x8ww^GHxTd*3j zfE-{8^c!`grGF!fZbfR5>PYA6L9e2#w{%}s3x5xP!3Hb=z>oZjJxe`O=lZDz?jtO` zSS7|apk8)oSDg(EPg)R|TRU=?pa2PSZcYH1mNoa&DDLk0v&OyDaVhXqb$&fgic z6}3N&lP@MORYT{O42A&5X8>Y4*Kuw7y<2~TCF)}R@_*d3wRb=KDOC+0!6wsa>sdAg zAUwGa5Z&xGQK5AgI3{Fl*8qUhZ?Bm&ZPYT_O4{#7sXB{m+FSnQK7d_RtL)0fD;I-$ z!%&-yr+YE*d=$ai6-{DD+Lp`opmpJ%39XE_ckU@wG|_E<*HjJR?ZxISivYydpL(h~ zLY&)6k}cN=r+z&LYE3!P|s1O&^0cr46(KL#|9- zn};{2r`s5cn~F}y&BIgY1|lfp&f()w<_XGl^9eqVbHYiN0(Ji3Etll?`+f8Me7~RX z>r#`Eo;EXhZZH4P$O!qoHCl07u%@S#pxQdIFA(RpyXv>l2gnYFjEWxI?eeOyVxm#ChUsYy+_Q2 zzzG#5PXbMn%2H>5a@t0LA`SwR2*Lw}A`Xe52&P4Kls+Cr5tPqGQ1*s-sF;U|Q4E~A zAl9Qzrx#}`lvDoLlLRs{j8)9#Ivfs;gU_LD1};w|5_xQ(D9mcW_6-(>aKaY*0|#Jld{u=Hj=H0et{Rv=I{RiTNol=L6e1M%EG7=5{Ui6(V28& zQXs;$7%qefQY(TnK2HP_JP{64B!*%o<-AG$O6ysoE zoSGm_7LR1Hr%IDSD=3?(h|(!-v>BX8v)J?o3i<@T0M#N|7{x_G7!%?+tQF~SSj11@ z2?aQY;-ns$!s}j3-(;(@5;hF0myH-laa2f9d{~I^_%JTOP#7mg2#n!+oDdM0p3w3k zE=!T?>73U($tz;p)3bdw8|>lLbWs*|q-^Z$Sax10Vdrjo#!5{pySm-(@B12V0Dy0U zN+HuY|LDjLvUDJU^W5&shfb(Mc97N&&EKt1yG}dtkoa=q$2;L=4PA!F!QPzKvZ8Hc zrBR_SpW&_dKk+HQveD;pf6U9hM8~c31N5$es%9uKE;mrxxX~JhxoUm-$0K8BC?WaH z)pfaJbr(-ss~u~ul_U3BOmT+&y~w&!V_^I6`_WRVaZ{jlJg8}-czauB{Gzz#x^P27 z-8va<4hU=7bTs*MS{WV`8VVDQp}l98`YS@nfG-OL&Byx+D}LQPXWHXE@ag7Rzl&am zjXvFe?^MsK`m>8Gm9x_;G*tV-871A4S+Z}}3dkFW3huX8G+p?L7tyOpdlXa~o}Z}s z=9&A#7fU{#QPocYj=_0PvxevOJdGbZV%_&}=gI3ML62R&)y0{;Ys@30f9EwGuwS}+ zMRos@uG*sU)`~L>qQuXs9DPxGg_4ZT_jGno4_4gL?1T*uNv>&o=k{Rr+GRuF`2GEoX$eX;jmbqa)9i>YV9q z(A{mL>RW$~Uca<&%sUtm1R#hl@4Frf3s6%T<53TGiW?9wj})A>}Aon4&N`}L>w58Jsjn05N)j;9{8cm aKN6?|A`4=UbUyd|HB_nTio+?nu73e(FMSmN diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_21.png b/assets/dolphin/external/L2_Dj_128x64/frame_21.png index 076448fa940b42f0740c62feeb1943e00616371f..c3768e27b2ed29280a2677db1e87a670998360e6 100644 GIT binary patch delta 623 zcmV-#0+9WI4g3U<7=Hl(0002`twPcO00KivL_t(|oK4cPZX9J4hT&)aS?`);rF!36% z_fU-2_TT-lj=uBh)xi_9QJa^^Sk}P%rg@!}18>N|eUq%q%71}vLlXZq$AQgj@L#*M zuUVQZNL*G)6(vtiNR8FwOD$zKH6_*J!Kyi8q06eo2RzX1n3uU+LBS4%&d^Xv&K5(p zLSZJYTIZ~=RG4A^s<2X(%bCa;ni}oUkRdIov!?Jm8EBB1`W&sYX9JZ(oyuUH+T>q& z=;kHkGoxl51Alwp(Sc|Ers&v#teMKlf<7_r{S2dpWZ5FG--bA1VS+nx32)&QS;M_p zHDm?p>}fPi`W_!$?|&zv?(#quh(9Bx#`7+H^oq@F4o1iV5W?1n=opTA};3p z{h>^)0cfVu-T|X)f4?5L>x)Saz;VX1CLmw$@$eWj!$*+2-%#?4{^s6(mX zF)gOmv6Sji4=T0}W(4VBhoYk3RmXx>@MzFt$I&S`)3H>ebOXfthtr+i{l4$*`@Q#j z*X%Z3_L3>#Gs6J@n39pM$r08H;YkV&5#9r#JG8saj+#EE!4y`F8~(u_y3OkiUJ#Q8D|y>LltXSy2Q%Z_zaCoEPRm|%|?=z zD+vQmC?JY9C?Om}ln{j|35cO_6i4I+xe+!7?7RxE(WD>*f@so`)oBQls!^-q)RYuV z4yVenWCF$l*bJM4r))G6@NE`+k7HB*7fYsa48^mYo@I*zouDgZdDc};o2?Golrq|4H$3hT(oNJDS^EdU7Kl%Y}U zU40#^dbtj8a`W?%LyH%`6}ly&*VFx1gE{omDr;oyu{FcK{O{^Fb-JF$&zg8K7dr4+ z?~w=CS(C?*)wptKuE=0Xn&zI_b}E1Bg&0r5*LNmPmX~}PUNL1y=Sb7>y<1o8Y4jdw zZwI{t+h-?EjY?Yk!SuPF)76JR{zTM0i402I&`O?c{Az0W(ETd!jF?BcS1P;S-@NUT zw|O-ud+50|P~8crXXo}~y|vc>Ji+6%sFxQQYDJe*KRO238~!=9sJwO0a&JHNr24_H zf9hdKeX(DBrn+rw{q7)DO`oOcc{H+PZDZq=?CH@WXlH---V0|tkIZM~(+^a(INuw( zT4OqFQk|cX*MerlNwcD^H)tO04-2liX_40fK_NG-Md{Os%+j6hzpSY8w60E!o94c) zQ;GI%=^Nl6$i7s(j zdVXBY@C|y|hNy>;k>!u(HFk)Epp~_O|TUWV$e-xag2+53mE$H?f-@US&5NnTHw%hKG{ubHTrC$+!GWa?jx>IuR=61uGuuCUn-P(;VNI@mp(>qsi0_UI(@nS&LHE==?~46>Y3P-=bBIav+ZV(4UU$iMgUUA8-f& diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_22.png b/assets/dolphin/external/L2_Dj_128x64/frame_22.png index 8651f12f8bd91d684d5943af135697e9e7d700d0..f5fe6855f88e4060a3b3d6315e67e215386a4c4a 100644 GIT binary patch delta 735 zcmV<50wDd74(kPw7=Hl(0002`twPcO00Oc}L_t(|oJEmOXdGo6K;M45$p$uyy+Ig~l*!wE%eE4hf zz%Ykw%H||~GVHJ1+GuVpBmkdndm()H_UFU;Rsi;0-u(9qCYOgxHuKnYH;=nJcSGye zBN+)K>=|GDb326F^_*S++Sx3*{t|u^*WESJ)PG!zYTg*EM0q2j$GNQY&WiiRFXkz<8jg=`a#)SVft;V;SK4WRD?G)cKMbk>jW`4)rzf zv1H!$_*2(U!zIFk2>=wsV$3l1vZ-pSP9*EP^qYCr zLK&Wmd`n-b#TIIbmzLD>3aP3&W_70)3#_X;4m1nqIe&>QbYGpdSyQzcVDaLqFu6e0 z;;cp(aKjIBcx5Yp^*pL&Qezo9DxnQP z?RXerPJasm8>i z@~5FSQOhnmQfJUo^(N+ebPDpoPjGO0%X%ojg;=eVT>!gUp5!Psyng%w^lKZS9y+Rw zT@MXF#<((Cl%U3X0If95QrFR3(*tNZ$eZ3nr&h*bR6cJO;Qs$*mNQ1Z=6~pvN~>oKBs}eBcH?PQ|I9PCZbZcy@=6gQ@rcL6#~w|M1Ku`Tc(1d_Ujs=li;p zWll;94;>f^06@5Ig2uqDUhYu|dEDDCT&3rh0j$=Jr~4z zbXlxQgC@1dA9qTEa#_}?lt}XP^Tqj6G2@yeK@|!`zy^lFoCfSJaImBYcDUnuEof*r z<+3?h8{+^27D+QRpG|@|wr|6*JN5c^h8^ynWN~Secu1!N6(bV6JrLU)Z8vM6|EKXm zZMU(&NlOg0o0;#TxSCkwdcj=&KJF->$gxpQcG-5HL;Q7>>%!G7DnqweumoMw5aPD2Apct5Z=_t5K^FZAyw% zhG-L{$pj+p#p)bxmUK{buWuXYy9bMW6st^e(Im^bj0`ikw-YjR8J2P9GENY~#W*O^ zla$R7kc21&&+GSfnTT)$&9ek5!rR@V0tO-&XW=6~~MkwSkE++`stgsNULYjce zWdx29lojg1Ti#3G+g9ZyTo}$?HcA2`FgZy}VL5_IVM2yuFhMC07$>X*DI;+!X_i6~ zj-n*cIq!8+uZU~U!1mp2aEEu(MLW2Wa&fcMYI2R_<}NsMqEXAO-QC?g>bEp+YX!u9OJ&N0#opWU_y|KR&zITY9Ip_V0eMJ9@lr5#9y+=*fn)byNzk7lC0BorAn|VQRv$u&DmcOnOTTQ7J>G zhekI#=Dnzt+{!u@RNbtPSw2{-EV#in0n@Srpi{@2x@pMC8^Ydx{vsjItU&pdSwt-PK6 zS#91uzkh93W838TKX{SGFAjy2XD+JPiNxPi?ZGqDUD3RhoxbRnlB(asvjpeDc{lUj zv5%xHy?x|)qk^-W_*<2p^{;2$-gaQ!6ID$GPfH)q{0bT(hl$$bfOqq}+0Tj_59@Bl zjU9S4v>`9m{LA*Tk~ZfPzb;+?y6=^15A7P(rRI$glsD#HWVeqmsb4sALi%jlynp4V za<~K7N`<9QE9(ZzJC96RKl(Ud6*}uwwpg@c)ssK#D^c&&(jToVK{cst%vzNZeD3QV zg(0gJjm|w`l%o{tsyvoy!0K diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_23.png b/assets/dolphin/external/L2_Dj_128x64/frame_23.png index d2d8e7e5144697f5932a8e920d673c29de730372..f404dafc3c37b891d38c79e66c379801f18ee59c 100644 GIT binary patch delta 692 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 JPDHLkV1g=eU10zK literal 1758 zcmaJ?c~BE)6c30rP-qp@im0rM2aImAyIGP=B#=OYq&0{!Dq65?HXDeLY}{-lfC|V} zwcb|Iwt(ZP$XJiodQiEnodQlp>4=IVc=Yf@ysZb_a9ICv+}Yjl``*6ad%t(hu85DD z=IcGmo5$n%YGPG7Zq4N$1%D9t{*%8}%Pj${I)R-+g-D@v6k*I< z)JTQ%c!P?~`UEyXJ6%T776IYX5jZV24$b3*M>=f;nMSdIfl4u3lrIAu27#RVCJ7t^!3&j$E(~@qr%baqs*RG7)yTn2e=v86U z1*F#~F(Oj7_9MnysxI^*@bwYTNah zHcF_Y?6iX+xtf@Q2f$qZ-tWkz$gz>lV9Z=$h;$WAIxLix)u`kk_eEed8)c+eiW@Lo z0uiJ^3SlBd3K57DhbR(5F+^+-8)4&sop<5YF>shTDjJT7QpO;NTBTIN>gZ^Z7*>ag zqHtI=fYn&-EMX<70pDiMcONz?=Dk>1G(!?j!Fnh1W8~-1mR)~g>X^|Ll|zt2{D102!jX|aukKG z&Uveo21HzYy0&j-gFC#LF3QS{6vNF<2YSrO&7EibbiJBedwP0yUMy?p@!T(IR7$huUd5+gHGv&pc0Q~_ z;GiGxlt0|!@dZD>E{Li)c5jK!DxMTJ6S4V?_s~sv>9OJ{e>Ac&8C0xX>%R>C+S_yX z;a{`o#BWINf-hhWpC?Tlx2Fpt|0vd-xF4MuTiC2w*?c4CK$OkmxowLcx8G{s z;t_gSH@xA8RCvJ&~N&egMHju_DHv%X1{FDt3L!3`k~ZW^vJt^ZURI^F$C%=JVnrF6O6CW8lkV#RB7FVlJo~DCSj3Lp8D2hT#;niWp0_Yqz*n6dKDZ<) zY_kt~Rxy9a;=9MMOC}^g_7vrA_eyO*-0u4}PILtA4qvDqJgVcHyzTb9=y86ED)r~5 zM+~0Y)eU>ZW^XC_DJ-#dX3>PbUf(*9qLO{GrMuQAZK`YixTPuW$dG`%xw>>O{pj*Q z^CHiXxgPp!MUBHwU5OaAbL5aStBNm;E%@s|#(vD}@UG((a^<8rV(TF06p+O4DXc50 zuR_;OezvZ@w9XmG3n;$Y_Ce{Bk(t4d97{I0hh!hz?|(tko<4Q{kkp2~f%kWZOc~6p ziBWhQ8#-rb?1S64_~1-M)mYyf>)cj@S-{;uyFNc?GvzcO2XDW zzBPT3J+~>t{g>8?Imv{g^hB{k+2#{6-InQ@wblKGoF`agjBHf)fPRuSuZFr^EGztX z)_K1m6gQuZux0pM@l(8*IIUV(5_D|Gxbn+mtNAUv?=*RSXa8t{6T2J#q;(e%U(3{Y m9xdPYnpbkUs(yvQQM(0a4Qjp+llDA`(Xk%Ehd2 zDCW-GR{Q>U_L*m%XSjYUeK`1kRuA?<9b2Rd`fV^>u-XE3^M5I}SIlPQt$C8azt?Te z_Vcfc1A(^+2yyZ=q#p`+JwGjyFIEM7ke8C+ljF6h3%L!0H}7m@=LoNy^kuxIqpQ60 z>OTc6wFoo66tI^um-YweAf5MUB7Hr2*n;nRs0L#67ibq)#L)Q9wet=tQ{UE*Eeh9M zTpxH$aCfo(rGK&CipxAxx0iW)XCeCKRX^hUR$kcf5l)T0i@XWT65J)6vFUc-rLknTTufG;k)8#8zz9}R;e{o#@~0#{G=cwc+| qG6&((?fPN48-H&qxzUtrbH{&4vZ{_|gfB<{0000F literal 1725 zcmaJ?c~BE)6#sy57DU8W#KG>YGA+s`o6VAJ76ODEz(@cAr<7@t&1M4ul8wm%fm%$l z9j#N_3|3pmTD-8eQ#%wD9kBw%dbKi&P8E@3)QY0@Xi>o{-Edg{aNOD5@B7}q-+RAz z&3>AlnHmxl83X_bNl#Pf@T-%5k^_AB_g?{D==fzer^)AXStD0P*%+WSuzChcH&ew- z4nrBLmz`h|0PtC5%FE~Sbr~ehnuU}{N9ZtHc{BhCNe(MTmoXfqXNpZ01$?Kq4Tekx z1^iB&4%JyzOo=J2#>V8#`vgYhxg}5JhMd6+<$)kVY{S*JB387z<%2CJ~_+e5o4t;1Z6rk|I%6Rh6(xB4lmFBC%X9_t?NNgx5gq)fSF&AQt<)DGO@G zPTNdY&cs?Ek3~w)R&WZKXFCyw*{ah$H*B#_CW}v-$U#{}Vj(Irn?13OYumXT=6@P5 z)wbtVTNzOfV`nRDG+z_ryeTlBzgIi*DDrH`ESrfh3{|dX=?XJr;nLL#nExU)m<%K> zl@ofLkRcSUmm|1DEJrA@oIn^F$8fP!FEyZsDLXI2YqV&bG)0ALQQYz)P*wmg_u^|bJz+@C7L1d^{f)G+1LkL=qA~<0rC@F;-DZK<1 z@f1a#&UvAerbK*udbZDJgFif`MLAU&dAg7tK02v>}lu&!24jj zTAAm#cxYpmZ6IERD|Hr$-+O z!L^tzpAQJ~bKAoMlS$Afu(kT(mydzaxQ<}Z0|I2A;9dw=9MaSoc4tY^YwfwA1_jd^#YL4}boG-Z53Ewv z6?KwVTKCmA;Fa_0f7Vm_d&@wU1Q;cKW4=XX2z9l4oyoWqVKk4^nKIy@g{Tg z(~~>>&irtaiTJIw?TqWjKXV6b%7u50+tGntEvI?`+R$2;8kTu!Z0m_?I9k~l3-5Sq p$L=z@*M-{A$~&a}JMcSlAAuU92nzt5=kdiK<+DE`JoBkR06m>_$8msMfyu zL+moMtf^m`^t+0r>VKF$(d3Ln{e!#&UPTIr`x^q%)rM4fv2P{VThv79oqkF#_;_&Y zVdE*2FnHy}ViqkXV0Hag(I~jkqYiI0cRPw&+iM7o-%Vk)Gcl764Sq_ss!5mIAyuSr zmo8K`+j&{WT7;edBH&#Uyy8}-2~sK0;Yc=ACOd^$Fh zax6FL{6uUm?VOtChaojnf$cdwd}fddT+7r777!LXCo;SlPa$^Hvuqv}$`tLNUqAhk z=#~d}>g)BtV&}x-eZulec|@}uDAAxif?!kqUq821ja&1j?IL> z^dpUuUk3GbSTOkfixu?g!Tp6(bNhRy6U1gA3ydpNeP+QD`@8SfZcuxR(*AJAZxh%z z=E(eD?p0Ij7jWKzAYHtD37>6E78}^puMdND+cIk{M*};zS9x2${0yV8<^A#s1^%0F fpT(LA{e=GkDZbWJ+5A&N00000NkvXXu0mjfr94<# literal 1835 zcmaJ?c~BE)6#o*CFsQ)bR7It;6V!sb$!4=8n-v5?f|4-`7&Wb^*=#nNLb5U0m_U_T zZ$%NQ2Z~iHisMy_7oOGVC|>o%15wAD*1Od@Y7yv0!TN{e&hCES_xAnX`@L&+UgogD zox^&B0RTE@4AErsE5|=6p+WrnL1>AdU!qy9ksZNUSug3LL8^r@(@=(;oIq#Oq$PjS zNjedLpgA^!ku~av5)@;XkO3Wu&+g>W03;^+oFtV?vyhpdU~?pipYJ~;hHRE3@#q9S zqIagz6Kz8ZT=a;7VFs!omr_~8$%CLoAHf^2(<}-3?0F71;Y$*~w@dK*fLJPq-m9>= zN#YNrjQUI{jd9VCN`k-?g2*7HNT<$vuQWuaZ!9ttg-E2K7U_!6j0>Z5W`(IzA$8-hM_!m+QDXMlEnNMiN$6iD1{0) zW4IC~DYFX3 zQZ`3G5+A72hoCjI%Ql&|q`Me9^ghjm?K2dt333H$M$9mZtCTRN#BtcHvf!{vo*+{y za16yMtGEqs`6PWGT9udZVL02_5IBmXN|KhtN<=1yaRr9LIHf{h47cK>g2b$(SuU3H z6s3XA`J|KDMSOb(wjXDMKYW}n+QE;Mi=UnGT^(io+=XNgHE8*@wY9bCTE$I%NaHdz zsRm!e&J`DyJwigY*IHZayv3Il{%M&{Uulm&m^l`@pYr?aDTkY;Ha~jqY3Wn=Ze6pb zk-p!-xje0<#nyCsP6TMU|8kJ?@#?e5x5icYe&T9d$iIdLKRL9QdsBKY*K@dh(YdJJ zhoXR_E@DFRz^1|7-WbW9lRO)VD!bkaW};NkyzobD{6~nuA=6(n+3^DG=yDRtxO7ug*Rn5A+zUe!9 zWGCM90-U0_7Hj}8->z(q_h((2C2v}66dH86pn84SK|&r}-%tkhQRjsV#F+w9g8$Ln zVauo90TEo0Kpm4L;?4+&vHjJN0!8=+a7Faz!dFE6cffvY|LwYw<3;ijT(4;>f+{;6 zsO~=58O!1O7J>YQveFvpv@>Q}T=d4!t&=zFk7)N_0#!jmZunXK&Ek#$j90)@9xOcZSN}Sdc#9?%Z_mYI*m$+hWi3Swj_(Vk^b8($WtJZwBL^+h;%w`UZ*w4iU5 yGFN08BYf;tn8$_B*jzjYJUzoFv|1P3+QkHP*F=sS+q}rY?<+$)OtV#On*JZ+TCjKk diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_27.png b/assets/dolphin/external/L2_Dj_128x64/frame_27.png index 39ddf46ab3bd195b3e75567a3f91021720c9e1c8..48e08cf62a24b412f8c6d4dd5721ed8ad0c88749 100644 GIT binary patch delta 624 zcmV-$0+0RQ4gCa=7=Hl(0002`twPcO00KlwL_t(|oK4cPZyZ$+2JqjTTVGbSznj{F5Elr+{tk&?KiLjDt|kcA>x2SiODgbs!tb^8Ku<#zZN$G<@O5hbtZCqv8Y#Q=PeSCZh9Bc&A!=W-J!Z{8l6ED>Hl z?gzp*wX}tIUj1jtuQUj?Uk6|}V=3)T&IHm~k1EpFv-=G--}g{V#O$v%G#$E_nm^iX z*bYMO__l~Z7nrCYl<$| zpa0uzhAM@V^!d59jgHH}{Fc-vKVc!*v1~`G)mh*qHJO}IH-YJzE(U*7_<5F9c$gcL zJaGD>NgZ0T9!{lcDSAsU_LE@R>k@qEy_FzWVC~~c)hV10#*`NxJli^$7EJDbx#-9# z7in9cystTXiT!ZlR(XH8jlV}ru2qAzx#d49UAafJDBz> zAERxp7ObESZGB4_6_i?VtbzkoYIQ`bwQ3cgsN;yWDs+Qj{o%N?yZ7F+=R4;+ui4_X z)X4)v!b1Q61N6z-bbj^mk19BTf8PvVXW*9+oGz1_&RRGRMsYbcQl7 zTyTn+1VF$Fn=zBiG^8kK)-Iy_IwG&#$)f?7l;Cwz^n8YcOiYf=p@bjS*1?d?tb{Y- z45-1WVXU^~0v9vAAk|10%%|mMI3XUIVcP3)zdVoZdJ?RI}`-P&$0o%x@}JGI@$ zg-%AC&bZk;7tPni64?vp^Y?y7enp;*Vyer=7lz8!vUHxEad3LA66U{%%r>)vmdZ(! zgp?r^ZIUAr0+S;YCMOYwmf#XhYLc2!bFZCu;ggaQF||%jBqgeoFifXat5KasLr76w z9Fa((L@!qFaC4M{W_o?wc;7u({JmI(#>G$^>oT%zZf_@~Sy_&CTUjTBOGFYV#z4_F zhhH+zU!~VUYZ;diCt*D{4EarWMB?Pd|_X z(!kwm2liYT0v~BwvQ`t(mU2dLdw02U^|SUFq6%q5!o3^feTzR8Zhd$(y1lLi6K}B= z=D(EwF!$o3zN+w!E!%ep+M@-x@zzN4`dTxHJNEqWk-OW7$;P0Sv_^L4W0Jc{QPVBsFpFVzBq>H-D=J4n9;Jnl0}% z1NV!Q+g56vM$O{kF9Uq{hs67C6vnG|bQXZ!{rscSDsu8qQ?FWxczOczZUGoKjse-7sMnTQ0(YR0*4wk;U(q~Fg&DqM*;>`mg;ouFG z-oeo2*|{Kp9rZ%6aI8bCI?=JFI=XS@cG<5{;KzVr^=02?#f3i@ZEelKP+Rhi{zb<@ z`||NZ)%k>s5==OFO(GpqUk84PuU~X)VCAOcu6R`ivF=32g{l>w5Jm20rLW#_3;J?R z@|^Dn2`Yq8SVL#|y^pNzAT*%)j-JjAo0j#W2+XUyH*_L+YOMOKO9-m;!)r_TG{A7* zm_kGNa`lwuG3iel1M7F1moTxj!Y*x&R*?~Dd7HDPzjr)dy>oWMsf>oaTH@w~J-Ke5 zDSpSu&I~;@qkLxIFl^QZj3Jg{Dkv-^ zNGWI#KMi!=lE|o=8$VZxj!bv^&3;55P}eei?voj9x^L0e>vH`8sG?!24980zRjT z06ct`C<5@SNRrmTbsBvOG>d-?w+7nk$3U@xQ1+n0&)o9Dd~6Z!>hA3EQ4tjja-Gyv zNsqBUUbBus1#nidO%*P)z@{k4NANn$;eU5CMqAqU^iviU0k#bXE0x`XY8X4WnQ|&g zRuXo3Htw6&5Pv3?xOd5J;4O(u18&?6BiRh2oG0DZR{%V>&C!9J52J3W(ks9pGUdLN zr~twx_o5<9?c>Z8s5an_ch=F0BhHS?~;@NKbIt`9!&Os mgPk|#(ktBTFWXxi0R8|_X6drQRXfxG0000eM}o=7(WVhfH1qs)S1oQZV~t4wRhK}y*sGwL0eYk7f-q=zR5L@a+T0)#p!o_h07zoQc568m|kr)$qATxFuuuqCD z2t1>r*E^6|QdL|fT&ij^Oq(%O#4sGT(`FGPFj62SIrs!jV1(6z5#UB~g273KAmOA>3;ct8uMz$ z0?kp`;+JD;qb7oy1XrcNAb5;Xq2?#G|J;Ng~}pHkho2-Ntl$fGaugTEx}n2YxkD0UL5zhSr+q@mRfC?r_fqL zVb&DZ7m4Y7M3hs$72tagYr7|wDb-|NSG9nuHl#YCGNkHiETl$Zf;5xxYK|9`NK&#U zS*6*a-Lj@^l_jsHhT)ksGs-*^f`wKaAz%VZP_!K-?G%Lyv_zq_wGg-4D3YMWATo!S z?n>Wms{#oKBbs8vPy|KTdD)8EG2Dt$Hj+Rok;YJx3R1j{Cxg6TMJ#}#CD}Q5by7+M z+B3PmGaKM=XS(DF7%2_R&aayucYwJwR+a}mV4a?x?z`B18G_P|`rK?FKJw?AR|kgR zEU)vI=|1(NE$?}b-CA<_jbqMF3hK4JM_kK)8+z!`_OdIB;u&r0q4OVCyV$Y(E2j@; zO>Vos=EN>%r}LS#fwG=~!-F1Z`BY!DwZSwv(QJe#6l2ZA3&x%apYh5>=gFtq*R{QJ z(th9Ou>)z(_MI|Z|KjJI#0UPJx9iu`og;3HU7cL^K-U=ee%FHWe>d(u@p^Snq51o> z{foQWh_y#23MI%4)!Du^tlZv}(8q-wcdlu~aClr;Qd4Tmzi@wUhQZi-BE(ABxt9jt z^^Kliy?tlmZ2E!l=>ALtH}a{M>o=J8z`MPN7P958Gv^jE@Y5Lud)m8Jx^j-^I?5on zz2NV~8;pZzMsH;H8`uu$xyi4KuC-je+Li&|;@E>3a9}Mo-2GGCmYx-v`)aqc{U46s z-VF_}`2AX_pd(>2y?T+!%W|0>e7Lv&o9tz+t@Uqn)kiM;VE!!ERXz3Nru_$&P8v+{ zplijYkp-W3Bwlmor`^mhFUp(x=U8Ifq8IWi#v+u^#^ nn=?Fl^SeV|8BXJuyP39Md1O*k3KaGRa| zbndxl?<{<Ca=R=)*=5 zf&|)8jv?576s%bjsruhkbOT^=E`pQ*=&Tn3xl!pNK;Ps`&<5iw9+J3)n?-DDvc{CS ztV*WJ)`}Jgt()kmDh^EKVMgB;gbGcjRh`tYDg!mgnj&neq{%8gpQK8fJ~yN9xEdtD zHS~%a41q7sKYzi(F)&UGj+VgO0sDtJ{Tf^Wd$;SG=sZh$HBuQSZCfzTgD&{X_KUah z0&t2ShxO)vFE*mD)j;>DPi9H-g0~r8f36m^J);Yq`=^t5LF07kFeN5bB81L~h5FJCem|@tcg&F+lUB9?%E63=4vCBBTurrX&W%Szjpu)AcUV-Cd zcw=#lkid*v!c@jIalvdcx`o6z=SDPP)2PwR#kruExUh(hjWH8h1m6P=_Xpavec$)# z^ZcIQ^VJ@IW%=5yC$bO(S?k^As)B1AK4qDy@O>k*-v^gm!(C(S&_YIwr~^chwID#f zVX+QW0a0$?yC&~qq7P_%`h;Ej_MPcl5kpvxBq zJ?e6ZuX1^o{lSwRt2c}YZ?Uwrw3u6Hv!>TsNRHzY7!-v=4LsVa8e$ArqXkI>7l=x_ z5-}7_MH7f(P-`;m7-YK?MmXa0tpKahfq!YNsvQlq zMu4RXM71Vef;9;hB#mMI{@+nT5whW5&=pu1vC*YTO<|xKUY8w%U(B*1^OBWggA8lK zMJdSP3{7&lNOCL=B!*&0YtSkaauR1Xdy*yuht^4XnH`?8k3#iuh$GMTCYV=iZL^2kx!Hq zH6eLAQKhAzT|ifwf$Y(>FuIs#URi}gsF=1=K_ZA#EN8BA{^_LDD#DWhk7LI09$b5Gz_mCL{)F%mOJ|5}orv zCnZI&JrmoN*?@jSoDILzvsaM8iICpFO6#+L~7Zw)Yy*4zCAf^tlO9;e%{QcN? z_Gf73tLvs0zT0lymEOB^!zTlU+dq!&EghYa_Df@Zo1SlOyi|03bL-b3%;F`FqxhB75eX$TK?`u%+XpYvmPM`+G{c$OUKK=yUq zOFz-~>Cp*wE@OS kWlgiQ#)aE=FPFznh;lgdO7=+pfy6J->#lUY@2Kti2RHiax&QzG diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_3.png b/assets/dolphin/external/L2_Dj_128x64/frame_3.png index 40d1314c95fb07190f995925e69f77df558f8cbf..4772c92176fe13acb8e9275cf26ddfa90755928a 100644 GIT binary patch delta 710 zcmV;%0y+Kh4blaW7=Hl(0002`twPcO00NmwL_t(|oV}6Hi%oGD#y{WhIoCZj<{TrD zF6Us%ZcJ<}{5Uk(D0Z?yBuk-WL*^u9sVpWo#zHBZNs^IGMcz>Ys>@a}XXoEp6q}`2{q7Lu?2{M4(Ze??k!jB%Bc?5)js&oTnZN@<1 zTecQ(K!-$tT5SQOcGErsMUkC=2Rh7w+~J!5#zDspAaEVPOVQy~K$6B+nhb6Ogd60? zji{+H)P8I~U_9DRFf%cDrkzVabOR|J|G z`;Vl69Djc?x$@$)y(p@>!JEo*@~7K+KJ9tJxIa}|HQWVT&r4pJtl?JQCDlV;L>_LG zTtF3sDF<$m^-?q6g4~myRl5T&R{(4g@A2>RKl3(9R&TsK+W3TIv<$he8c(#{I z*B&SS+1KN~H9eB$TV4G3=j72`t$ZkJT%IspM?V>y{9PZb57)=!OeWpc&B(1n`R??I sbY30~ntao+X0*ywf<)-he|4Bvh?EnA( literal 1777 zcmaJ?dsNeA6ptX!!4ySyz*i{vnx;+D7Scc`l(rV7h)@;h)TU`F9ki)QfP#v}Q*{jR zdFIq1zQHL+Jvtd4buwS`wZTzgQykzFA7ew9=wLFtRH*Y0k2y)c@4LCbdw=(JQk0TB zEzm#A9{_;BM71K7TkYHv=j+M6+kDq)xFwWTrn703k6 zxlG0afae;MHl0n^Bw++)=Ho6MzRhgq&;SrS)n>(sOp*ol z%6R>x(lsey0!5Rcln+A$3=6?%DW8B5Sgc13q;U#}z=%iyBis!M5lkq?5HUD#@i>pP z!HA_QR0ICFlZ=V0wEt3n9Z)(UTHIID)~Q+w`w!m zJS!{%gg+iqwJ|0#kB#5G5 zr9>o0VUZh~Xkl2~LXd9XCeHT&7I`NYOQ1=drD!chWw|>cC4*uqCWEqqh?p-1Cu(rQ zWN}F*xvJD3w1T8fIix{FQ)cj0nlaN`C>SN8C`1qIAq161L*i%@h4fMb3Q0v0VRRHK zMo_}Y8^9ahNMC=eauO~KtD6mmA}A7#lOiY@7K$J=N{m1#A%!6^YDDoUTx`VkBA$Sw zC~$So8=d49aqa2azMc*4@OrvP3pY|UH#>C0@?dW6yi=02N^W&Jo%?R>_!R&=IuaG} zTHEbE<_%hVAND=xbap>JwCSSv#`WJY*yHNSr8x~ruy?@aZU4qjty|%2&41}Ps)ZTS z&~SME%!2JJ+GanU&~aKNubvfj*2q3x(4}Lv!`8HnpS+}FOw~qo3sp?4yxSN6+UJI6 z72g=TXIoO>V`^=^v)M|&)ZeWeyY$Ph_Jp9F+a8cbS9pEB^t2=Ifm>A4AL0V{EP1mIw>30iOq)uLK>okRiy>lBR_MbYy7I(x7p2uiCOf!87(} zk5z|#q>DSg_b(_iyk=9Yj@Nvp&^OL;0t-6rr`t2MQ@y$I`QhH~oe^hz07hD{rf}=> z9+CXV+XsOP-|`fDw)Y&gb_S5;p(o|;L)Y>I~$)hhJ)JV4SL__$2QpOs=CTkLiU2}Zy^Ck6b=tZFpw6s>+jai0+s<# z^N0?}R1^f9de$R(`qlBW62E&tLqLxVj2K8B>;-$hl`ZNR@@)IWI8|WPqcW(p?quk`u<+*0)$>P* ziZ*rVhj^E4+BFC zJF#+Jeazt5`P9_F!lmPGhd8q@gs07T@cjKlF_)j!%eOkN?RIpXE*gHe_u|cez*Vto z|AtCQL*c}l9bcn2gFoJKY{Vd6AO4iJeTzH-fQAKrUcxWfcGpiRQJJhbB-gF{58GOv ANdN!< diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_30.png b/assets/dolphin/external/L2_Dj_128x64/frame_30.png index 27c297e8d59c983d0a06ce9afafdc39064216039..631240dd01684471aa3f46547101b825fb9a7b0d 100644 GIT binary patch delta 389 zcmV;00eb#`3zP$p7=Hl(0002`twPcO00CP`L_t(|oXwLxPQySDg}=2IVu^$-5)vih z1h}M&q2>@Y)X;;JNU7*Jf-gY{q~HKP07WcOxIiLE6d}YJ3jgdbZ~&(K{N9^+wyXqy z0{%6~)z}9^F&-$NdM~X>d7Vx^zh1dh}`Z;wh zbRI(Ho?^vl>Vm~h-+l)X`OtdKmD^>#W$-ML?@yN=Fvl1E>1vQ)x}gM^bMFN?6@%v9 znFk__-_|f_J$@qcO2TBL4n;%?#;S`0GKGr6pW}{} zk~eo~G@#Vs7!WCmh^oNHx?E(t5kQG?(BFSU(@afUg|SaXmaS&9eTDUOY-pv}cDHEY jv;twn`bYj9DxU%0Aq%&?>#?00000NkvXXu0mjfh|0D8 literal 1408 zcmaJ>YfKzf6rP0z)~)4H)TFJ3af+4#v-4zkX37ft;Mp#$+cgr4hIuVaV0YHpp}TC` zWUFb~{;1#&joKz9n$}lR5lz%I^00|sYcrp@Gh{}AEc8zbMHO( zeCK@U+;irLx1naed6OA}p!IdNZXcKv;H@;JgYPeQznpE;XP>c}<2Kk}Ak> zU65~;eKId~z4(n>4ngUM6n~T6*iKh9X;17Tj_~ z)ReHUs3ACMkr&iX-HrgZ%V7k=9?z=bP-G=pAZ=KT4`YM{$AZCRY)je^-6#J~V@>Ud zzbhd3k*Wl5o2sjkHZ=^Bw1tL?JiMrcl9Fx7 zTUrjI}Ii=#9XV0bG}2Y7)(FhCJYR?a<@loEmR zOfFY@18i2iOAdjS(m?M#)c2JN`YzME(_aPV#l^*wmrq=QAjAGTx5FR%@%PJrWWS7? zGR7|49sFy*wFU^`;UMVO|*cWakyoStc6*)cm!&`@H_nlwp zF*0}a)EyHKOdH1AzQu0*-9MH0ld-SA$%!u=fd-^IjZyKO4L24ZYPkN0@rcQlQp|;`e;wT z!GC)6s?uWge(8EM@qK>%lf7TuY&N5b(0pO#_Qxp0+f&D1r{rP@#gJW*+n|L}axNu4OzVvwe9JU;vjA4Jq zh#}s1JneAzVjwa1dMUhMYAG5>&wUl@9Nq!_S~Bo(?&b%_kdQPJ~{u%69q#* e7k@BOlQ2NG;zy>fj4vzsPpqqIaG!Rzy!0Pj5bA>f diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_31.png b/assets/dolphin/external/L2_Dj_128x64/frame_31.png index f2aefbfae2f1ed51e8e87c69f47d42b6d57b6a7b..5dcfb355d4b930ac6781c7c60e8bbebd677a4c73 100644 GIT binary patch delta 411 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 literal 1306 zcmaJ>TWB0r7(Sb%F$s;dr8G7o9VeBhC3Bz5&Wzb6drellF>DqMBDQlmn+(a$OlBtT zCPcEtn&Lw!MG8f*^`TKKR;&-fQrpA}f)v3JDaKxmSV5s6_+U$*SF%trYpeqR)F-=QX|xv6(@|52-hb4bOrd437w_|Wt*n<<90cOIx12KuD35}*1EGUs0&CM+}au{6t3G>dM6VP%GwSsvTCaOBa^ zvvN9?*zku=A$-8|Y?-3+`8=8DNXzM`7)g?R8!Ss84ZWq;#p3{vWCi?&@*6pmOEhC7|WA9)|^r_!}KKw{VJ^o9fOYXI@A-6 zmBZH3EE`);$hL9^$6rxD^o%2X1l|`sM{q5##pu^^LK@*LX zgJx&^Yt=(@SKV_Y6Gv;QRGL{jcN>5}Loyc56n?pP=4Rcu*!I|gQfcwZPah92C5~nz z&-RY(taFF>?Q5*h~!hU|RSUbC_ zPgYKlVPXDM`#adv%Rip${A~B{rRfV`G5;+Rh=C39Wy>%%7E_R$fJ+XcMCjQio`US1}{KL=LZ+3!*AKu=BU2GXYFyC1WfNOfy UNHl%vIsb2!jCaRAjU1c&4=x3@iU0rr diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_34.png b/assets/dolphin/external/L2_Dj_128x64/frame_34.png index 81f133ac5592569c6963b813e7eee54087a5195b..e12c77c8a1fb102672c871ef2893e4e49e8e5725 100644 GIT binary patch delta 439 zcmV;o0Z9J63dIAE7=Hl(0002`twPcO00E3iL_t(|oZXSXO9EjS$G_*VLW7hvf*_)y zAR=fgsNn`PYSQqa(IK!P?hk0Xy&-3baEd4gN7Lnqkf#2Gknl&PJ>($KDP6<8de2FJ zLGN_;xzGE(@52N9zvC{BfS@!2D(#fxT?%gp#gibVPS;XAf`4Z_0f*sh7``w!%ww3~ zVDZoxThSO;z5rU>_`Wp8_jzbU25xz=(uVsi=PI?4*O~@Y=XM6b8@Dp@_9!Y5J&`sr6!D>@3s8op0Wj71dP)Fm6gG_ds1nh=s*4^{ hb2pj>`VTJvegX2&d!D|SCZhlV002ovPDHLkV1j}n#f<;} literal 1341 zcmaJ>YfKzf6dr^uO>wc>#DuoN>0qKnXXm-QGZVJmC+%vNlI_M4k(7DdWk;AtX9jn` zqy_t<`k(ow@g( zd%knNbM85FsIg(2ckPC?2!eQ%+v90C_rN#2rWAfJujxy{sme(-IlGLklNT+3L=-~; zXi^i~KpKcj*WPbI9fFh|R5MLZQ)-7G8=6ln==faCglGh*+v=L4+zuR60&S`u!e+<5 zz))2QVY~e)GG)d_+=< zkCu`Z(((Fbe{dJVa*ksP1d-3@eR;-bSZxHw^L)VuP2*4lx4U#lbaCCTDO!jFTeeiw zQ4Jj}SQI6r(+Oda?NS(;nM$n~*6rnF!L$*sXcCld| zWhfpODW1cD%+f3skOB&+6z!~rrM|($R-x}@Y~+DhA!Y&5F|3SXbQCM0F=sf2oij|7W_>LBbV`&}y&$PA+|p9eabT&h z0HxkCG;}e|g1QQYte*+c5-H&{#|LpX$Z@#DD;&-)_nFO2{78XwZa_kaP&;`s z^86 zSUq@pTkhoJga3XP9cY=_GmpMM7uzXC{=`}2Ir8(V-PEWZzWVV$rB99_?|#t3jSb&D zG1W6sO5ahlsJpK9YyZ!`hdtM;-btp$kBDg4~+HYXme{t=gri$nls2pT3LVj*o_N?A6hce5Fd%Q GzV;v5Zqt+i diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_35.png b/assets/dolphin/external/L2_Dj_128x64/frame_35.png index c828207d33ed6ec94a71c904597dd24b4805b3b3..335f819d81d694d9531bf75b5680b6bebeb5d068 100644 GIT binary patch delta 275 zcmV+u0qp+g38Dg!7=Hl(0002`twPcO008MpL_t(|oW+naY6CG4MgLAU>=9Bd!&ZY& zWKy^eK7cV>2~}c_;9?Of!jc08SHk6~bZgi&{PYdlK-kN5KtZWpSPwC#(6D$arFJjk9iP{RC0U{4&l~DU;p&!1v46V3qgC(07(@NT$Z^C{ z-4F^QwFz(xD7>Wu0Dk+Jr>wt+5^tEge9YFfD9FVfZ Z1K@5(8WG?RR15$B002ovPDHLkV1gmwd=UTu literal 1255 zcmaJ=U1%It6dt>whW_M5Y@;ZQ(+X8PGk1P=cV?2!-_E94%%;m`!T1t-XXftiG?|~y zOuCblYMP4L2dhGbRV)#;STGjEKd=xj6j5KaNeZtO$oFf;eg zne%<;JLjHrB0scm`<92d5CpM3JD?WuI*p&6));Tnc@?~m%q&H& zx&&h>YE9HgE>ET%50NqhXdM8KOv;Q7cpz%Lfl7Nx9`FJSczn|wuW+Kmi)7=Xa7522 zDFwB^5f6W*s7esH3d>fjRi-L1j#p+mS(YOXo~N+~?N8bP3~Afn)nrhSuY0B&n2t?G zj8JnXf)s_-uBBnQx!gLj?Kg^r%f^P#WjO}0mKEi;>g@*w^uLS^z5U{(i`WA4oe59J zXHweL1mpVMJ5c0^)hPQt6CVs5R~>!ALUxc?JlW9@lWEyg^ zL?d0~MJ}Nw3}7^QHo^-6P(`37`uq9-$7R&sUXV$rg#^gNg+2)gO>EZo18D208Qa9M z8`$_gu}a!QFmSx07njEsKIvB=dj zE9M3gN^v2t}wNUBbI7S+%zqE-u$Dv>gZA(l_taKlmb6d2eFRBM&489_+hz z;oRS%y1e+=hxU!5->~+!w`-g+9qTS^J^3%!Rd4_0{H@X1+h;c|-u(Kt>8>Yhm#FZN zPIPSkw4VL>^Sw*Z`U@RseQS$A5P8p$J+jU16A`K z2Y(-ZyuRG}QEjL#{A=d>(F2!fj?A69zV+hL^Eb*X?~Zl9v-{2p^RoC@aI~eJIOg8x U{4;a%BF>k{W`@*reFtX#193vGHUIzs diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_36.png b/assets/dolphin/external/L2_Dj_128x64/frame_36.png index fc923b40236dee851d9c3b1f60a64d0050b67350..39ce8407618ade2149ef19fd6adc2a75bd57f6ea 100644 GIT binary patch delta 57 zcmZ3?;XOgZn2`Ypeyw%71f+yKT^vIy<|HRbur5vz>0$cBz`)|b!1%LO@HmdK II;Vst0Kr`l3IG5A literal 1059 zcmaJ=&2G~`5O!4wRh2k$fYZvA_>ow9y>^nd)zBt!N+Z=JN+S_*Vr{P*)A|Q{OWdAN zC4@Nf25{mE55NI9@&pJZj@*#?2w|PXrH863+dDI!Z~o^^fA`__)my8QBwg=q+XHdG z6z}HBviSa4dFzPlChv~;UJ~#L&6w2k6PJNrMEBW%QUCb)ceXA`%df-Xh>x5d%S$4K zmO4rir2;KU>l;N%y#vO9%l5;#DW84*B7@Lx%8zRfa?%bPhubF^+dJ7EdM5{->B}1r zzng(Hff}|n!@>qw99ekG{Jv{)cg?c0N2#nL1#3a+G^0qFPSQg-NPJVmwRod^ZGh zzFjO9E0u}ed3UFHBKGcDe`nYg_jEe_@bmp|L4ls#8Wz9)ep^}++$orTinljQvOH(E Yze-?JTKaM0*{hQ8b$9KL?Wd>z0Hr%cDgXcg diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_4.png b/assets/dolphin/external/L2_Dj_128x64/frame_4.png index d372ff643b40c4cf27bc810fb25a3ed239535b5d..57a9dd944b4d88f47620a7ad4423f739190a6339 100644 GIT binary patch delta 693 zcmV;m0!sbA4Z#JF7=Hl(0002`twPcO00M|fL_t(|oK=!fNEBfh#(&?pv+b0tvj`D{ zwi5~+)w*=>&jw+auv>H}E2Kk*h@iR@I)|X6&>`rghoYm04jE!j2pM#+AW%|sY#}v~ z9V2o#$9X%<=dOK+nQz|beV+GuUIws8P8PDDAvT3p*ai(PL4Q)n!LElUwb%oIDgZ$O z_yF2;;XykXZ5x0>wtBY`Ahp+xMn}M|w^tCf3vQwcpoVk+0Ri9wG^na4JoX;A*of~@ zi-nb<0|Nq}Ee`Jc%%N2eEw~5K{=@IjO{gt@j4ECV|U_ zQUD*yHHwW6l7CKPR+>W_+<++Yr|LJhjROq?s5rW2#FHty+)x1u5a}e+ZVsp|4vVzW zFceZ-W@!;X0V}-~y8Gi>2TB$9KZ7QB>6gv`Ocu z{ZnX@={2CX-J3v8m4)fQ6 zN9c1l3?RKDGPMR72kT?LK7oG$9pey6(W5RD8D8V~j5t>QPV^g`f)8xoORZQZq$LDK z$w4vv=5R&U!>~?DGP344+03%#csV=|8+U!B?abV))!Wx}>3Rsrt<_xrxL@AuyCU9;nM`l^5xU6V3nUzLjT25#P7;MKG0|tsFK)WH`XvOUk&Y)eK**nBM4mhYn zr%548t5Y5Cmd0AZwNjFRMp;RV z-c0LFM$loA(3mo435Q`j6o$d9QoS*3v<@eWNgK~jn0b6I%rh7qu?=cl=~(K28t>G$ zsx!?LFP5^JGAtxh6P@1(n91M!9XS*kHu%RDJyRGWU1lOP43v>p$|M}-3s3WwtkP(u2_s33_|`MNhq0pfV(|zIMbIXT+GI)}>4cb66K%4ln#>>~m4iCG2GgPtCJ5q- zMW_%#NgZbxuYD_hL#@h4m@v#EY;Y7o5ivmtATi7rK&VKFKq!g9kPy|OgoqI82#tWl zV<_?*o%2>Fjfj}`bZpYwXXb8nOq5#AtOElB`~N6w0|4h! zN|{t`Z#k9V9^C+Y6g^v|cS*1A&?cSPF?M`c%kkols=C1J<@3kDFJ4_`ClV*XJO8+! zox!f^_vyi+_Sly-^|^R=-`s(FaNBrO*MH{L9GK+s-Q$JN>Smw6rTXpA*nNQ;8eA2X z9w*z$n~!S!{wE~ffz64j7pBc;6$59x;t87FbTPD|9L4h&xE59jLtLzJo4L-T0dTU< z-<`VZ2eW{r2_bi@XY}TG^pqRQI@~Ebj>uyfq2m5tBmo(HY z__3&Mpdz+)c+p zEi2yNr+jBFH==i9Nqyr1<@Ur!KF8FpE8{#%XU_1cJ&<0os!v`}=~>dus{scZn=&U{ z-G6S>QO@NJe`?}a#Y#JW)$b02JK8(8*vgiEOAD?=`ezsHE4nxPNQ}QUVaB8BG7B7&sd zg$6t(>cxYt5yWG?i3cr};!#9UFP3%>g2#Xd!Hen5V-6x#O3X^Zcnbv~!M0{&z@(No z(^g1ow)=b7*z6pt|1ivZy#N0DGr)1Bg@FOs06$h76bl0mC4XrAcUcnR05Sup{I44T z$dR#%bT|k@5}ItJ+1KQj;n5fJ#8WF3*kO;c&O07b5Ry=5<&Zondt?B|8W0Q`l$IMv z0}mPz(kru}&5jZFV7@oq|A@dt>BbMx4d)=slUCt~>`5MA^?3iP1P4FaGyDPJgN>?k zbSD1(OF;M|T*=V(j-Sbza{M|{_DhkrJNh)|nyEnSaAYh1St*fum+ z8}-!HN||4uOx(KL1wi*#s%M|o_zAnATkG{R@RuisHzz-#WUeJfaxq|hj{JJH3BB>d zZA@(uEnOg=@-Nw=FKRXFoc?-qqO`E!;&cAAwb?;u+iu^G%)|FjG3T)RL|Jc>6if!;(a wZ)*>_JzAO<{>7Yv#Rk?~kPRhce!G`G1ggH^Y-T;VfB*mh07*qoM6N<$f+GSGCIA2c literal 1641 zcmaJ=eNfY87!MyJDxd>l;+-=KlMOI!zDSddDuouQvmIZjsBsC!Fjr4Os1%)+;r1jmjZSE;h9VFzIpQee$VfD z-sjnnVVoB_ar#6607CWY+AMjkke}q>0Qub?ywxBt(ULA#$`&nB3G3tmjafADpx(yj z^I1G=E-gCCCjmgfIw2=l$~7!tIMJqHy*>)J%^{-!AZf1K!E(!a2{iHff?W;WKY9WJ z1+yAjlxRQ@s5xSGJs^&CuLAV3M1W32eN?f^J)(-Nm@o&l8F$N_Vi~z?j zNRH?<)3RUk^6&70eZw@b?6|CjMn zZ&yyKgI8wpF0t6j$!B7T@qy*~y*iNBQC7pe?-b;NVGFe)S8U_$l3uHZf~8TbmoX+p|2A%tfC~ktfB+N2n7MYV_-SK z?zO~uPiZu1E$mEO*I zp_6UZqZfQKqt4>>;xjM z^8PHOwjt_zU~pS+L{S8m^zfUe#+G2q@4#fs@xV*_1Uz{|?YxsM->)fCLNVHs=M&a@PPedfEmY;l0M93#=g}bGU*!Tk%Yz zPkH-Z==ck+4_@og4?2$*o4Xe&4sOhnxVNG!>Tb1EDx=nS3GrlSf`5CEc~4!{hr^kX zU^x9pdxWr&udCkP&l&a|>i7FAB~toiO5v_W?wT5O>-PFzvFL)vnEJACzn->bHMzSj zJMlhE*tOFsD_d=Rxv8Y=*ur$n-U-=@&)0Jgn;G`AM@#g1GnzEFTS_m*9y{e9IDJQE z@wu*B$H>_quhq7MZB4Rd85gd9FC=i+uDUq#>mTz&_I2%Eqe?%tEpE!Y2T!&>uoI&hrEhO+t@MJ8-10H(1?aH75N0`nbEpTRxhfH&ZWW7d2gq>8$F!Z2WfVx#EJR z1=R<-kakt;o3lyd{!Kf|Gp6pn_T}wl=5XSpye9pUwJh&n9kBgWwI{X%Xd4dJ?Hpg* QB=;Vm*BQ0VDS4~^1HhwTkpKVy diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_6.png b/assets/dolphin/external/L2_Dj_128x64/frame_6.png index 8a1e84a11eeb499fcd47e7709e166c714229afe5..4a6f97d20d6de580f77b94680594236e831a33e8 100644 GIT binary patch delta 600 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 Hu0mjf_#qMD literal 1608 zcmaJ>eNfY87=K%!D`HPPR0itI%H%{yo1~#lDxC#Vq|*XIopsy^X_A&4w25u71*g|? zI=0=ZL#H?9=EQBDI>$adZyw$uIQQY^>E^sCPTX{Q>U1jeYl<67fja;2%q4l>_sR2n zp5OD8*DA{9XvSoY0RU+1rBtQ7M&!q;PLSUh)N38`k|Eh#QkCG5LUe!wg{%Q4T)2tFMh)6s=}qKpQhV0KufnR-rw+?<#9TeR2r?bkv) zYtb&ucOVY2n5*MUn*&@`bD5KAu4hPAJNtR4AZ(Tm_&AA%!oCK7&>XgChwYl>eN3#^ zLc=Ojy+u1h%H^nliiH3Nkvars5Cnxxq>e!_1b1UB=gEUG1T*LnOuk_hGo!c}!=cej zD|-yE9&;sCGU`u0S+sSMB%1a5P$;Ae8FWIxt4B$ajM>02Sk{1pO@4_E!~S4a+ycb~ znE)?Jyx@mo7HPN8C|R^J+mSGQqQmjfus=AOEIDoZFfHm)9isR7VzCWt2c=5xe;SX~ z4mz7ePG89dg~k9Q*Tj<*2g~_;vZI)y%*I?E;N`;54V1t%`Z&L2rz~3ei;m@4Gh-wP zH%^#fnsJjbZa_(xMo9wZ7#zbs1qb1SSN@OhU;)>hJ$8! ze@v1StI|l&6c^x^a%@RJ@Ik|AHuI06;K?@_F*o9dF@iL~xQQTOH^~w(X~;)SMgqqO z#-km@vyY^2q*Y~!9EKQYVHGtry@HX*11CX6@+6AX#KIN>2^BaM4#w?V6yDe7aL z^GGMfMRI$_whw1RK0KT*&M%KtK%Skf(9TkM?o<`?oHltK8XEer@4bEilr}q6=nS8_ z+HT+YC8DNw4Ayl0I=2AIj;=a3dD(_lzU~euwCYlq^-#*V%{kq7lfsJo3UTpJLeDvs zdJ{PA-KYKsEIu-j7BSpOcT>G9BISGME`6cp~85hw;ZFDdHDY|JsOAvv=Ze^y-e(x|vb`=b;}4 zgYZQv7aV<%vF`noHy5?4Rwk=eB^B2jCTd>Yb2n#TOSJFX?w6Fw&}pk_%|W*MuV~i! z3>Vmb7(I*Mv#OEK@!Qm?na$CstZe&`qU2I;Z(CJD&#v_Jq-LPrrY?@`n=BnpNK=X* zYp!Td>o$0bx{vK0OkSw!O9?K|o?>D*P83wBlRJJCt}Q4$@OGD{sKp{#k6RUax0Ex4 z&pe+jS#LNqr~W2TCAI!O?U&ALinlZ!d0VfR=Vl_=ZHX;c7L3C|-dEp9GpLe?swZ a;?v;Bx|Au6L*e|`zuj&tqdJRfTmA#Jq%n&C diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_9.png b/assets/dolphin/external/L2_Dj_128x64/frame_9.png index 05de5d5c698a86baccd74cfe33d1109ee566f793..12a3e590d5678c40097c18d57875280b28a1c104 100644 GIT binary patch delta 582 zcmV-M0=fOl4ATUV7=Hl(0002`twPcO00J6GL_t(|oSl=uZWBQehrivsIF4e%5~0L} z!CTNF#ipYO#2qCsfE4ovPyiiwhKeq4Kpp{}fCB|7Rg@M5DHjO|D%g-noP+mN~pI;W{R;scL znrOr5%2AV@Dlw1A0h~r9>fiHlHp#n%S)U$bz!Ikz&77B!OpLA=0OHdq1Bg@5%y}$eE}UOBI2dgK)(e@%yA0DuD>~qiuT&Ou|mq}T{h1!nkZM|MZ$jgfv$Hf z3i|}kCO?P1Ft@>Ur4#|nrpIV78&Xybl{#QPs~NMQs}}{8ml{B2vl)Mt%!W$&1)cWn ULMj^0VgLXD07*qoM6N<$g5)6%7XSbN literal 1610 zcmaJ?eNfY87*FY-RYd$4;Mce;$Tm0ACTVDsj7keF*o^{*I5_7`lQe}4+JrQW!qls% zb4>51c<1~=xedSADd@J-`89URhTeJNoJ=VSH#ZzR*%XIt?mU(Pb^hU*OY*+&ljrw5 zzvt^xo0pRnGjY~L003ef3vKzz8c-gKR;|2$)qd<$mYK4>NM0nk9l8c<#6f1aibVx_%_lOD_08-QZBF&a^GRSbnyw?oD#SE^5Usx@1i>h-9*y>W2bU|qgz*Ik_81Qg14f;K0ULWN*L!)*nWgimj zA#hYhE;U1Aq>7w*V1^)ZAgM!O7C}(ZMCw=sLvRLjaqjsbhF}Igf+;tQVibx~7!HnK zkm6Btxv6|x=D0uQWQIy)S)}y(%F0Szr9mf1#d?$^$&d{UgB1q%nM#HWRYfs3fT-PY{$azh)(BY!(QKbvXr#x{j{h@b%@^M3B@+5?UVDl|7ko` z+gDH}a{7GECsatRQWJMl7_8*)*^WYr3L7d{;+4YCWj2AW@Niz)VKYO@7oCfDQLK?9 z7@RP{G|P}MZa_(xMo9wZSRBJqBV%+SuCSe_;W3k)w51!xRbht|!tr)~bp`2}2CCp$Lq?Of+YJO$cg$2_ufd1WO_?PPhr$NaJprF+h5SqCV6) zPjpgPq_k&f`*=2#!{h1Vyvj&P%ItLP`YBGCyQsYE0=u$~jEwBPzUKx2L}WQ^)&hUm zo$YT+XA!Oa>wkOX;<~QBn7V_(e%mts)!T`xh`H12)j!U;=6Bz#Oan$@fu38(fL6=y zNHIRq(5=b)VDjF(NkH}=L-&SmJLV1qs({niGM?YH=EceC#=$8`Q-hj7{gn3o&jo?E z(zd2eh*B{t|4ynq`_6-?nxLh{r!^MdY zC$;gLk^YF851H$lZ!L#-^{JECRQ0OaSb|!JnRBA?=;}?wvpR!l3lKP7f3iO!5`2)@ z_=UCtys5c+DeGLeba8gAs{MdZb@N$M@Qcm}vksJ!osZl6;O; zqZVUKS5pJ1I`6?&2&DzA+N}en>UA zv$^-BzOD#!)VsT4T$(-3&eWm3`4IgLP`WPPQ4LD>cnAgGEnF6I&bDd!+;Yu2Fe;`of=&Z ztNc2POlU$47JqqQ!0^QxX^)y+0}#4v;5&K`byv|3C?XfkL0o2_1tukhMR~E|UbQc& zX@FigBn_07H`VepAbw)rg;pdfRKJ{<-T?G4WxX9h0T;%yEh&|@OqFAG^;>G12lJdd z`>16sQkt}tnB4*sj}r2SPIF!YN6tI|_<@rlX;>DKcPjUhi|Ux=hA}WO;Gbn!8B>g` b;T~`c#qlHy1G#!X00000NkvXXu0mjf0hPe) literal 1389 zcmaJ>YfKzf6rS>^fQtl)6iL*{KuuLz!9d?ABS!Rds zE-8hSYP2-c606l}<0I-1wb-UfYa1Slw33jBw6V2KfFCyTm6T|V#8mJuu-G4@lRI}ECfNaYpPv-IQPQ0G9wj!Z)Xg6;q<8PZq#?Gk{;zXfH*|8 z1)wz{z7_ZZFUC72K^cOi9+Vpz^+xXwPEbQeKA~fbg~AYxAY~P?FfX(L9c=-vvSP>X zTpGntS+rw&%wEzPc7mW>-KBw@U3CpYSDV0!SVcKn7UQ6S5YTxv7HU@_T+EKG*yZ3l zAto?%MMZD3W2>YZy*|{bY5=twDO?~)61B2MAo8XbTH=Kg)I^#nf`Y?}Q&!GIa}{j=>Y7D2trcxMpy@9wLlnYbvtY;Sd-hrIvoxM4vJx!B(_G0 z=)59;q+c2OUB$AV`(in#26$c78dSACSp>eIs;iNp8b(dDkwmw7c|leZlBW_kv>LDr zX!1TFdNehJuB4cgH=sZ<5-FO1gqs-Bg7Z8>;;e;baav-4&CFXRl8521;>CMXw_2r8 z0>cO=*>HkcVr>E~;Iv3fxF9hS&f0i0ZWC#i2Q&i!Yr_agkw{d{Jynzx!O~1D*V_Va z)*A~bu$wg4Hi61LJ+S3A`*t+AmzS5}a@W^a4XbBl+l6XQJx=0}F|19Lr6 z3RWEWCc8AVEA!X=N47lvIWqjj_aCOl|NJptS+eP`f&B%6-Fwe^ijVjHQTo7JGe773 z^zAvlFoZ;4MHYEGGO+?e7fI`9w1-Uyz_$s3*lGgEV0-Wwbva<>|8 zq?4t`EjS~Ob_F7IyYb}4=J#}{sPA@#r2J@{C> zmGoqdSSMe*)|WF{u6;VvrcRe1Te{TzZ|(B()tt76ww^ES9~;WOkVzsZOH+!!4Bft! P_yN|q>s+U+0tf#C(`@H9 diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_1.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_1.png index fecba5ad5980606b225b44da816122cf0d773a98..93ff00a848b0b8acada6e2d19d0d33f1c5446a3b 100644 GIT binary patch delta 452 zcmV;#0XzPQ3(^CS7=Hl(0002`twPcO00EgvL_t(|oaK`}OT$nUhTkNWih`|fiXXwr zp{TQ<>EPhtpp*Ur7neGSZbfkLPlyg89g1#FitSVcp&bMVMJpAGidwALq)qZVcyn*s zzu*}k-t**~lSCuhOUFM0nwD$>PMQnh2rFc5jIwm>>##GS7JpuP=G(9WnrqeNxy;CTvtvdie$5KaUc_sIM8aE<4T$XzR_P(zyx|eU@C`2tUojg z>M2Q&32iSG+Lk*@aqs*oE4q*)Bb=!14l z%rS{x($#2Nf51O8>SWEx%Sl(pNS6CXf}3)F0>I(dr<`<=B%=knoPSKx9ktZ9%Ovd$ z2KUgh3gBf_ep@;cDC4mvHUU7g$|zZtEx>@Y4P-(IKRrtNmPlyguXLhq2Lj&E0kQ}= u7*YfdsR&xGWQR!Ten&zM9)L(EQ1uH#tV4O8Ah&z~0000YfKzf6doSZl}BQw5u_^Plr(Ma?9A-!?(B@L>po$nixen=jleK-2S(VPWp?N; zgwmB@Nz(=sF=-oukeEi(O4S67Neh_zNJxFOLfVMYK8)6;Hc-K;Pj;CuGT6PNelBTKz7OmJTCLiewIzf|M+@XSsj?zk@qgh}@%=Q9W7~!A+KhStI;%^CrxQG>7vCF}A zTufl-ii*~3#a2mG`^r$Kq5_oBQ@B8qB+9UQAo7L=TH=M>sDU(41O*=krx?yaa}-Y_e07+i9mQW|y5cIZRHY)6JL@Ha5cAS=wc^m@SOkZi!LDrsPX|IdQ`=auB4cgH=sZnB~mm12{#x?GtToy5@*dUi_?-3SWG-4kvt546)!%J zy45O$5*S7>!G;q|5^E7?0jEV;!Uf4F;jD!>;TDl*c|aQhU@aH{DH8Fjd7z3CB3PR7 z<$7Dd&3a>j0PH3ew#|}cT81r`R<@_o9gD@_a^HoiE(A$B>UG&GBQt+hUw%8~SsfjV zOwEp9f7|z7JVi=51@A6= z;@Hx8d^#nz{8C;DbFV+;tF7M5&ZUz1x`l$Y&0X0GHJRP-Jf1IS&d=55>#j9s1V?Op zqnVF>d^4>kbv*UANKekIbab|8?oZ_4y-6;*JL#L=Uo%muuHQ2~a`Mut;fXJEcWys8 zJn+bw?I&&*r=2czPNZhXMou@N)UnqxdXd8y9KNxp&vXCTlAkd=UvQ;oNG)nj$Hktq~>yZ7oPoQbc{b>{xPikR%*GGnq$N2rTcTX&pf@+{vQrc2;ZHk zO1i#ylwR68m^8EL=H!RRpT9lb6G;8J@q^k{a_;Fn`=1(;$B==dp}t+8CcmHDoFv|u z{N=Ib+|lzkQaaRZ%&MAuqU8HNopbi5=FTHURfA0R-A!k+uruEAb2TRyZ|ooKCKhI+ pwyrnM-|20v8J&>k4(XP3B=X+oB2Zx`6U370fuwg9gueUQ zg2N+8GfA>}xckpNY9vVNkkuwrX zlF{Ve{wm;+tABWA$M#Ry*e`(rOz=9RvLLB)Fy`shX*>v0FobW?(1OPRrv9Z#&w}sd zVDz?isT2$+{{7V!h_cf*#t(oOBR7NRrkIsad`S ztF2!<$C9+F{Kc5z4k!bF6@ba2X2dxkx@!Zf0>Jofuz$#HLMJ+p{cmYKuFq*T%oQw~ z&N7x%$IabKtd`nJl?SHm6F~syIE@>d5)U?Peg?Ut2B5cJ(IXmG5IImD+Mu5sWBmf) zH(=Ljf{YSg;zvo6cHhSJ>T4&QQYce5WdfH8YR3XM&!NaW8p%U#zcgtjsh*nVCZzv- X>db2`AP$2n00000NkvXXu0mjfe=7J2 literal 1524 zcmaJ=eNYr-7=IBE@T0-88A2!8SyFLiZ@=zqH!e8u4!QIU@zASDy}jLc;pFc2+*{<( zN}>!c4Q=|Q6O&A3L80##um!P!`yZbizCU5^Mc#kLGdB;zcE>6Jk2LXfTY>0OaLI!-7}=HOvRg{2>c|Emola3}tilQ(Rr-PEf_*hvGb1{ZuXp%;+iJ(n9!}2tT4L>+?s7f+l zVlNzahfWr}T+_llNmf-=>8eQvPMRQFiGnuG8l}7HmDuZO5p!A9;qF1SBD{4 z0wYSLDx#9e*>NyR-{T#{6cHQ#Mb(e$A_VM;SQ&&N&1tvb=td{`CEiqMqo=c!o;4b* zH0`iiS+mh@`{mAbymVPXjx2aIj6xFRLfp`-Xmn)hQDObW6!|Et3$0dmVP)ss4R-vJQ?NIeE zg;Jra1hK&s^ZrLrp!G5(F;FHLJ!K>WK~E8!k>dzf) zV8IZYCKZj%tdG8_Mldly8 zo-P=9^lDGzACor_OdYjAzwr2xQ!|(bqJ6|1D>augJ=a{CvR6uen?ccr(>c3?`;xSnZT=lG7B`(A*>=S~Meci+MD#rt7jRo;pp zuaTW&=Imd&Cchg-GrwK?>9bxBIM=bRao6Ruy|+zC>$e}szx{4*+a6#4S^%bvPRr{3 z8T`F3YXtDoY63V?a2LDOl_9*m&CzzFj?3jsnzB;f2AkE?jo-KJPja4DQhrayR`WHt zR?|Me;5x|JjQ6fh|L#Po$^Nxw zNZ(r2R3A0|)Z;nuUdK~k0Q0R?xygZdq8E}|`OHOS8JFf+#{s%yQJS|1zwp)WzU*-K zr1Xi~$}_I~@Yfk|Y)6_=Nm=B0qoJieeaDyP)3wdlGZNM{Ih$X7@@mee<-bhYeA*qY u`EC87z4!VT_Z+@ky`^$q!$3nlNCZ0$Cr-Y!`12E}5rES%+uktUTl*ihIwm#% diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_11.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_11.png index 0f293281fa28434898b3c4a81126d3ba3a071210..2d98d57ab2f86cfb5a51804196a2bd979708d35e 100644 GIT binary patch delta 710 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 Tg<&HF00000NkvXXu0mjf<7yFX literal 1679 zcmaJ?Yfuwc6y78lsR-f|0jXN;g2PKOA@N?!EWy`Of*y zx##R2Nj0tuo)s|*0D$1+^;jA^d)a$!Adh_x2A(jmQ#hkDGwC$Nx8&!vk_iC7E4G=;jMTtk)mP* zoW2CCLzjg@(=h$CJ9d{SuriDjg`m8=JW-xhM7wrEVgx}TSOQ5TLRLfQ&UY}lN9b@b z_glb7H{r5585`{YeHQUdI+sZluw0Gf{gFLts5{qESZuf;YsqJRc z$p2})R@-gLcal&V>85jC1bZaZazB_&-`RTD4TAz|@FbBiG8bI;FyI<8@e_LaWipGx}6{Z3=GZ^WWn7l|{p%S6+={6&yzr5W07rJbNeDuTgi z15Vf+K1q!4gr)+&W1mQx4e?NsVZe9Y#2^I8DOBLa9Yc2?xH}hMTW*3AGqSTjiLR+zEQKFc+R4L4a+=BnzQfdn>ue$z{9I$ zWs)6yPhTM&sHCh5`wJ@`j*Kod^Byj({6P^K$0^{i03rh)0D{WKsOEo$y6!gygCp(L z2lfGBPcx#i`P*uFYww>oa%!SWw;$s4?*n;Wrcm459WCNr>bME?R!1JIJ7zF^H>x1+xQw5~>Al;{KR(y{ZupmTp4&@sev>HV z2+Y4CuQ$fVuk8$b26CT2F7KXU?NU5xyZlR~`JIsSoKU(N)9y=bnX+WzGCLvmwCxcDP~Q0W2rNG-|Isbu6x+pz!m<->&Ky59*3PDaRhC z|9!FXlP*o$$er)UGg}6@pBnc+y8WOfpdZsWn7cJcH&K%M<`^*R(CHt!=kKO$&U1Q> z7GDgjj}W6#m?*@#V=#35VpPdfVE%x-Zs-hmr6m3!z9>asUze58)b_=hkh<#NGk?ZL zb8;SsW_OOy99mdZlF~R9;;mZDe#om*z=4j#Z4;r*&V;j(+@zUxPX=v!`T~Iqd>(xb zTAI3mqxvYw_@ZKH1&}_lZ&ge?=h9!dS05T#!<`Mx%bov?fMewPei6w!BX&WPQT!it Coo9Lg diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_14.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_14.png index 1efff0f21bd9b9a3d6a7b0f8c53623174008c8d6..25b4ec565358dfbf2ee26bff84f53fd2f1798084 100644 GIT binary patch delta 639 zcmV-_0)YLp4U7el7=Hl(0002`twPcO00L76e0lT{rZc8+jF*TMf_S;Z*SByecoW+LBd^$iq_wXusXl6N3_M z6B#H1<=9qaY;7izdjD3+fOnftDC0YSDh7OCD@vnb{jHlDJGo7;CkOW}1KNk7L#$x{ zO9NH`Hhe;Wb`97*_Gy=ElW919_%1<8BOTq)s{!$_34d6x069b?kkwGC^3zVkG$Il> zi;--|>Nq%PKuu+p2Uu?QF^EW5t;+KSDbAtDXaL)0bQ!RodXbJV79Qb;luK0&ptKv_ zoAef-7}tmn7T2yT`RJi^tQZ}*Iy8r$MSMggl-_Vpz7FPHI2X_IN=;!s0jM_@GME5Z zw}D6p40zJ{`iJt(N`1L$vpdpN#BAXeX?VrykOcgW=H1!Lp9}~%(}8lWdQ&l9A@bTh z18O)I_uim<14{6=F9#zAEaCU$?i}`~fdZWHQ|80xCCEoomxjm^fX-6!gl6a)JR`tL Zz&~1h3VB{;Br5;_002ovPDHLkV1j$>BmV#Z literal 1714 zcmaJ?c~BE)6#pV1hXPeB6{xz6g4U8`lg+^f0)&JB3KT=A6g$GQ*+7KshGZcDtBrUd zMFBgbBK0a(M$1qybePf>R79;q3))($cp+GAwLmLML8KcF>mQCgyZe3L+xL6#_paIE zg!m|TH(xgZfO|}|Qq8P3<_ULkVBS40WpT{nLq{gliIk4EU?u{{wNyF*#Tc**LQP=W z{G5wK2mlU+dQCE&92YCaDFYX?>u{|GBZCGYB+P2W@GOFc(uoW`DP#9GG_oPRR>oc~ zii6{f3L;YLt`p* zmW(}4Dmg9zQcxxWl5qJP9EM>?f^rEhCP+tg7#;`-U;&@UXKo3HFOdomDIbL^<5?^gt_9&zrVJh*MNu9s;0XjAMuTI{Cuz*eAJ- zwpo*JBzS7VOy!zzrX;%glVB!&uXkiuWY|dGH|d$WVA)Cv&ovMv9ix=7nJ-+eUMrQT z6#NJT79wJioX?L`$dMqiQjUruL<*rIQX-zT@hWVjLIlg@5fVwHJZKCXBu7-L2!%)_ zh)|&_$s{(0G}9P~6O(@RjNb{Y__bK6!bD&+WztYo_GA+zWKuL`&ZLZx0O7*WqBsoK zlXl6w_6m&$tRzhOJVL87Q3hx%#Zvt%DDZ_kSSuiO9DxuPb1+N@b5JpgauA)62ohlu z9gH#IkK?s3rEa`S83_}HagvP`7wOO-9Kkt=7SVBVolwU?gD?>%NQCcBfyy zZ8wAVRo^|kf;A|CrKibos`+wm*9QY$!{moUI)`ui8`%7ku9SVNfl!>$*&Z{qwJQ4N zd7tvV>kl+R=gQWluRORpSm(Z!Rrc8dPH;fi0)Z{SR$H63zRb?SvCO)aZ-i3N-MA9b}z>vZ8y{KG;mMLEGU z(v;z))JEt%zxLju?vC}-fAU=Fme$B)Dd+f{sqY4PcxLYj z=Ze$^dn;tuzx=2w=>> zqfl_!9}GOE1H6Cjk3FL4ENydWtIbI<)?UARak0D4FxlZ`e0Ua#YKopEZ}YG7CbNot zLBXl-y|?LQ=WsR8;fIZtYdP1Z`zDTf*h1Ezd9!qvu2xHW2Fnea=GJ0x~?kOA6hA%3AVf6Tzjdbj4G?@yBjt&E!5*eELH*)B0x$i84%`Kh7=Hl(0002`twPcO00N^)L_t(|oL!Q?ixg)Z#y|7!a66Zr+(ZP= z5ZTuzDNJ#s6}>?Sq_atpB5?Z$MA<441b38R5<$pckXtKlM2jmdlp9dcDqayHiNPHX zbGIbHeOIE+?#{eVirK{^-}1xr{lW8m38crWe`SD}@_)Yo2LA$rk{+J(bJTq_ zDpB543P1>jLIPSO^BEZcZR{L;3v$5W`HT&>EFo2MMVr;SuML3K^n6X)l`2<*E&U>? zkg8D%7%V>m3jkO^L#<0vSCe{)_WYJ4ZOwq;t!Xw>w_+ef`^Eq<6C7Yz+yfw@LA}L9 z0G~k7u`CgS2Y=Xv0l5J*X-KO2l|D#ufX1&SO`n$KJt7AN;{bw-&BJTAYsVs>g!1Ku zUJM3u02_qru6_>&VxY*0g6y+5$;BiqO_l&O?Mn}beFcANy7x`(y8o&}cICr)E|%SN z)nVEgN(=?uNx-%em{b@-Xn%>tS!msAhZHEdTpu%k2Y->)2@q}f3=UJIv9$n)QVco8 z?qB42{1eqq(lKNdR}bVc>H&7eC?&ptWmo&+KYU&q!EXZI%}+hsJeSD4A`b&H$cn{> z3rm$bK;p(EIbe=V_h+F4_v%`nSS;^+apWRztABGkRM&5<>0|%Hdj?$m-(h5-M@e-bDy1@f8fIS?A^uQ8u<#LvMZ@RuHZ)Rh zj87y;$Ms|=4Yi?!4oJW1#0yoK0(m);Hu^QbjyV z?&J4P?vN=sV=p@L8b4sgUIg#vAA8l>vj>ClM} zoNP`7H-|cWj15si2QnvYb3P8bgYFfCfXCJb3B;{3y7PLl8YZtm~i-+i5| zO`Jb>;`nLf0RWg78>36&RwwtU`R?4ihriLlEw8ZpG&Y$wv4uE80UDBCOo6c$Jex|Q zaB|s_(^LcixEGs^X>6JyUP;gv5$@6vIV?5~4FD054jWG7Q7pKa$~Ie7f94DmVB#S=}-xt*i~|Smlzg+ zPgK}Em0*NanjsO?(hLR4MJPld2m;D65k=zS#S#-v2thF-Mq!k@mjrSIjAT#6hUWddX7>VoI%XrjPES=m^fO2B;)k!DgU zkJh455=1HqmuXN`uhmEt;W`Z_i;`)jTD?4c)W(aj(MS{`M`U`rUZZefF@+vgU^=Z- zA=c=n3e6}s)@o;QD?yF=HFJKSVs$UYDzyxSvovF*>HN_qNX(&G+MYw(K(R!GfT0GQ zFk4-cFjs{}0@hKCc_~FkGqeSKl47O#1r$)J2_eOl2@*?@a0thx2!w@W7$h-CDTNG| zn-H7}e*{lHm%5QIqFHH#VzJ^;dEu=aCq1)DI62bK8{fFTBUi=h#@C z#^|`zTG7VbM)RU5|U1e9%Gx~*h(O>N%x=3Gt3pF;xOERSRRofD?F3@phU%MU%4QwcP8*3F=(am_OULzla=^?Y<^DSdUE zZ^zVY=~ZdNzUo>3whez5e@D2o`$#JA?PHx={E5Uy;qEs-E9TWtxpcEllyFeyJp3s? zGi;h)tBl_>bm1Y^VgT$P&RJABIjeJR=`q0Z&i2}b9xoqTR@If`LHmzi*${Zv&)Eoc zuitXnEyJg}Oyo@F9U9WwvmhXMaH3{UZ1b;?G5hvTJJ2?8x6;3^|C_kYtT)o?OrJf^ zGKfv7L7RmSeX|PhRW)GE2(YkZr=%bOLwA+6FD=Rktka3y)doI z_uu}a@%ONFWvJ)ZI|NNWQ6Ya-GgQ z7eBI{-hC>*o-BXxuF&nc8xURG1ccvOhgyq1cx#G!FK=J%y4~K!um)@PoC5(p5%-*H zltvGJbJO4Lz>#_NwH4X-&Uufy7zYO2VBHFieWdwGMdz?hzzyBlRWm}oQzi@ilQY-1 zG?ho3STeI;wG%BnoBowHG#}{x#CJvCdi4sQL!MD<50Ah6^JDwfqeqIDLDG_y=XYJ} zs&D(vpYi;dcc=R38KKnKdy}tD6htmuQ?m8;?L}($=6_20m|w3js_#p8pmuOl4NR7{ zoU(=e{@$9_)C=oxxTj}Wt}{a!whIz<0kx=yI|=Lg6WeKHzR`lMA<#| zAt@kOPu%EG4T1> zP-xGism>EC$G}CeIaM(&DOWr4s#`$+o3L=*!i@UOov-)H0q;d2Sp(;KjAo6KbAW_kVQPl+ z6!yU)ZK#$c&B8#6$Pc6qNt(q1|?+;n6j#kPGFG?p?+79em(xUMQ&f_UP; zfmyXM-TC8LRDW1N^c>vlb^WbNx3&wpCCK*Kn$e!jB?{%uwmDPNbg5f3evbcyU&d(5 zYv%d`>NMbhgy!MXWMXh60J6l%&Zvdl!w|64wIiZDg%o57#Z`_FHF^QjQl6x)CIWl` zZ)qNxtROIiOF6$RK%3(!!8&eOfK#Y(Ugo8#EnH?39DfC{r_UBPr$Elg!zmXna5zFa z3?m+sVDh3sMh0*gOR54Q0w@3-zLC^OQWGUvk}JRw0XmhwH}h{+)k;FY8!2cBEbF__ zKuuW&z+#=a1yH74Pt84Z;Q(s*=sVzO02r-1SZ%{tTD!j(2LK0qbze~_>TX{#M2zUI zSX^8dE-Nu>HR-#U)qKotCv<0~)jL(+rP~Gg3kFek@l4I&kpKVy07*qoM6N<$g1dkG AM*si- literal 1549 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 WZc0siU)M*dq+&_f00GI! zz>q)CHUk3#LpKl$omg19AjSly{sjia(xDPaFtH)*9RWfhh9c^!NJyX}x2cF7Kl?Bw z@7d{J;EtcpJ@4LgpAm}{@Sg!=1`8k?>PB6n11agsSHRPNbbqJTqPIow_oWIL+u+B$ zU-v3S0T*5#)J(_Hbmi}`GChHObt$YAAEfEz&9h3;fjsREqK-2S;e>O^-Omp6;OrkR zZ=81?YvTU*Nu=C)3<_N{TeZQ^qxDX)!?Fjt)_Ir|)%u6poxC3=t+@x zH_|3-AA7J#vP`zMJp+$93W+<=pRH5AZj7bTn*5}V+09LQqM_~mW`pRV`_(HHHhrDWAVEB&->?Uyx>#Y=75wR2zu3TW6eaHe1+i=_ep zOiu%MecZ_It2#xoaZ0hT+8mPPF6mmbO%_`spNA1Zu~a(2KZnm-1m~pJPXGV_07*qo IM6N<$f?8bO`v3p{ literal 1421 zcmaJ>eQeZZ81Fb)HV|Wspkman6WP>W+v|O`?6&*pja}Fs$2i=O>FnCKTr+yT^*VOD z5f}%!ki{(gL1HvGzt}(-2?kO82+HCjB(lgf$}qw*8MvSm#&o#B`QEmh{6T2izVG|= z`906?`ReXqVCA9(OBWyrvdCA)Rlv0cKF%Bid|%3G_rv8e-CL!vRVBTV*8t)Y)mni1 z6n-P90KC{#e+m>Kh#@J5s`M&qgk9t5@E=y=&Z6Xj75_JM2VkO0BQJjSa6rl5HT-g+fv2h1BZI^}nw3xuq zX%)TBfz6Pr@&{3mssYqyq;P>GNz}#|fykR`X^9t}M@^)OA}Dy>K= zP2LQ|QcYFR=@hf_T_{jyi4;vh!cAt9_KHvTzh|Z;N&y&UMv30;H=*(Ik&#s^x(cMwC}5zw|Iwly?;E{dE|PF)G_ct zYggXs(YNEdbFMA_crdx^(c8lx1%oe$_oZyVpL;GovW%IW-_gAGpOM|w z7pq$v0)gI=0_5OB&OE!F9@_Sjb4krH?42L}n3`PZT>ezo!tOk0xVP+)o5p#+y_ejR zs@vjkxyW4}8~-(XyJsAoTlZY~tIc)(d|Tp1^pHUqUrd|6z?E}HJVVV_+g2|NZ|FESwtsRJU4Q1n yzt47$w%p1te(TbSrR^)Psa->BKK-zz9Wfxv{f5x`pF&sCKS-Z9z#VqKlKc)Bp4wY%#~K}xxKx8 z9on9A=)w=+8=t)I`9IW3PRgbclKY?hjt);FcEu2OX{YZOHL6@LEf$1_MtI!m`*&X!L{Gi zd`4Y7`%;NK4TD@MFDmDU;Yk`-QVEj|)#&p#AOByq?EZ2R`$nr*3t} znzxb^alm$&AAg4(7ix*%K368~5cFpb$r2)e4L}RPJ{f{N^a?7RS*K{n6djh&9JmE( zlr1g~z#IM~@D*kT=kKqV+mh;qJL#jUq@J?TPBnK2NUythp@)*xQhT&9JqAc{vzS#t zF(=NlA}N!WT$fKe(6Ll^59TfvKA?uPNSSTQy1NA?t~^@u$zUJG!bbuC@P!~lQh(G$ tX7G`V@|fi>W1#22(9$oBDSTZF{sUMlAscN7n6>}_002ovPDHLkV1mbT(<=Y~ literal 1411 zcmaJ>eM}o=7(W;S+aMZnE;2uEZAeDu^{%~s-9cCSNvo8Rt^@oG*Sq)VL3>xO2b4x9 zBU716K(aXT0|#+&Zf0{cTQr#wA<%A7cDcLveV==N z&+~h}Zf|u}MgF>?bqIpwdp%A+Tsz=Xp1TIVf649f!R3C%Rj2Hbc%_Yz0b=8%AV9ql zrUCc?!?ibm3Ca*;O{Wm3Q|f$`G%H0kOiD)+k3=CFLCUQ0D8n`Z1r34*LA0o@of%T0 z0%uXx8hnH=>Hs0ZlaRrVL{)%IG_e$?vTj4m;xsf60Sbf0BVjQ{$1SQwyENRV#JCDw zR8g8NswGl&zG~DV$pAHJv=~be1Ztu*fMaw)l4saQP#vMu;#zo{Fs+H!k+haVmoF7` zD04jRceMiOQ9-gxQADCX--=-|wwx=NH9XElajk~HBau{Si`p^85B{gIs&*{U z9tF4`#H1FPg(czDX)sLRogJkVAsc$TEWo-jVW-5lM1ZJxofZ}RqTvLNHn|;IJ4xtC zqrs-tx*RsrY;@WvgWcfJJ6tAX+Qw>FyN)uEI)lyRvYAs@J7F?A-2~+_+udfP-jT+7 z#hAi~EJ*tmpxXy0` zN?;h#G#i>V@RXS)S&ZaJ9%Feuk5OjEfSEaxVgRWJfHJFaND)tU&23$j7Qxm`ZCAzu z9##emh;W)@I5wk)&P>CR%dV~rxRS{v-0mD1--RFk%^T-6M@nz~dw|Hklw&ocQ@O!!&RV(WhjX+iruTo=6Ra=u|5*4%eO_{Icl*#s zNX5e5ySiTKAjMJF^lJm>D&ou^`O`Pm2?gDF@Tr`)iU&R&{Ti9MQ7kx*7gX;$+*|VK zLA1g>-W!+O?K3}I{kR@E9iCDbUf-~#Xz+=ams|4_@77&@`;!7}k{H|c^c$!D+??Te zm3!)Yx+W@X);{p_V_S>*iatO)zB9gAb|E)JZtL&cTKd&&RTkkkzFM+x){xbL6w zO diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_4.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_4.png index 87357012697d8989ae5e66e0c10747a5d529782b..eaa20698ec51053ffad71ad647ad7a854d923167 100644 GIT binary patch delta 492 zcmVn`#$FwF+Z073^1lK2aMXfm8YmL1vRB(d1?u_bAJ-OiRwSEWPou64&VNG zkTD{-{Gy*T9Z2J)zwONQ6ei0HUdGsw#>3Z}(&mgoPx^EGrRPP+)}_Q_MXY`ub~Q;-8j)_8joe~ry;+U6DW||hO&$eNcK(s}hVR-zDfU2n-J{8p z{E8&0FZ79rZhs)J7Mdsewkk`HZo%Qz0SK{#6nROfQ3}D|$1+{?@kIyVyoyDDs1q3o zTh9-DEWBrkvv3kpU3V5>pRfp9C(TYUd&)I}GNX+xS8rf>%x@3B3XA2>0Ml26fz(-1 zy84}(B+}Z8x_KSqHD=e|mgG$KF1iOe8Iu%bo&h7Db7g5`cYzPr(hAW>^;A-@oW@Gu zT}21e95C`LuI6IE2xKX^sZC75NDfB^05Coa?545tBwsaQM6EN71LgLRq>APxqc!Fw i-LwxQfM{Ww5dHx;+-I3Uz9+l@0000eN5D57_YJk^Ao4r#0~9ABHOgruls7psmJvW&T&AF6HiSBrG3j)yz9{`-oYZG z#%)f;uSNM|0gW^6L%}(ck9YK&;?tI=0*9Q2kOiO|9fwa9IxMb)~zh0usdQ{K=VwcnkfVzW1 zCGY}4s;xc`au6hCo8t59eop}>szHO0&@seEC>EW(Fz8T| zWX{XGCf&i44GZXcm?Ma2G-`-4234yhD3)ajk|t;xhZ=aKHlzzNJQT@FTHrxM)ReHU zs3A0AQK(RBbQ=cAPDBw5dpwT}ha!`?f>|SCLYSZoBoPcILL1kP=w9$YjVEeHe6?Xf zctJ$1(L`7hIV%Z<>3h1Pgd$|a6=@2ri?ESb#hM@p>2BVJ!7m0$kvNOXLFF=}kujU> z6ykdV9 zAtZvNUj_P|#9E$;c(Uf6bDpYjRe#%N;3u$ea$0?N+=6c@C59CMV+4S;Vg#f}B)aCYE=r1EYbLgj#sVH5 z4HgK&Y0}`>bf&)SfFn1pxWMO($K!Cj`rPGu1etQ$&D(vk{yR5tKU8MUjf-=Fj6i|MI14n0WO-0JDy zbbjfKt4R03_A0umYaS9_P`vii{N1hbH@^MkRIa&!-jCd=8%Ryxv*WkXD@fm`b1n|t z3_ibjNrQLy{@J%@AbBH4r`}q#*ssf!_{qLWfy)g9o@3# ghf_C?B6FrpL$=vcj^#)X_{1O7?JVS5bIZ5=2VyD>V*mgE diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_5.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_5.png index dbbeb1fe16a90746301b8f10a46a9c67059a2242..272d99f74230d4442328b61f6add2cbcf1c83127 100644 GIT binary patch delta 497 zcmV14kW-X zDJb#+NnB7+P`Crp;EEDiP)SNikoOV_WQBoZIaxD-Cv zU-YIv>TvOdYpu(vk5#eub1= z108gZ$IA*Tl7FP0&?g?bzWiEbw)A~XmM)!w!>>a3#U1)6P6in?znmb%M*V41XWlne+HPm zD)c39Rhjj>HA%Enpr~6nAh9vs_KqZHX2;fjz{!|2AZqg*7zSL(61xX{xSmCbKB}vd z!j){S^utwjG|2(OpyFyS0gOPFf}7avEisbAF#`Y?od@=_u}P(`nlj?nImVH4J|wB4 ndC72{c}XYB!w4W=n52Y%CaH57g=6tz00000NkvXXu0mjf_xeQeZZ81L-}8)Gn{d<`(GH$)fdwY~N}S~=M5ddJRibBuFN5U|(2<+@$3w_eBH zKn8(73iUx6xnnY?WFiPM##h9Z!gURN3NnoFeLJJh50@O>Q?4&iB|Xk-0C9*fA=te`4pKB;3)C{c(;kXdsQQC_G7IvNDaKk5b{xoCw37OW@^2rDWDMl{Wtjm}E2(0~GT9!)6WNQ_N5O#^mWxKE04 z6FQ)xS2|6Dq{{szs9V(lYB!UZKoA6KXUst4EkR1+g_)>@u#h+jZ#zcXSqsII3_5g~ zphHcR*iz0rQlS z(B!Bts}VG5kq@fXy3+*74o0Cw{r+LYk=RhKVAk*iAH_*Cfh$Tfv;pmyUJCxF@l@?t zpe73NQV>(CH361H%1eP^`kw75sR-GyZ)h^C3m@iGp;`eE-N!ji@QYcLMb_?hlZ6yP zQ#PxMBt32y<*;!s##(4~({7L5ma_3Qtec=+wAahnJuXKQ%Ww?svXC_GaoBAnH;nZ~ zVmcoYK+3NS{SILr&&0BB4e+|E1ynVhYJ!rGs;jY(8bvLXnLuCh^MV{nO7fEx8Vr~N zn!Fr{UQJcdffTdyQz($MM2Hq3VHTROVLVS07-M4?jFM>Ju<~|^;9&@Zc=3tU4R$G% zz%ZgIHmqQk7>7U!7$s5?CP=h|F%I5}IYf%#0YwAAI7~RCh$p+|i7rZsU~49~!(#yt z!-EAPaGEqYHirW(IdJ4gmdp!y`uqFg_RW^dwFqMP(#N?1iT1l&=Rda&&El>-T6(;C zVU=;zj>(6q54JB~2y&;UU8*nJTYfOux?w{9#HP-Qo^3aNJ8NJ3RolvY7t$4TA;Y@D zeaicV-TtPdwWmJwL^u3=qDDX#Ukc>RZSIM8oW8#;qqFDv#7$sH$*9k>37W!`@+^m#-3ce$ZaquFs4(`Jm@Uw`MN(mC1r8TG5Az>VX^6C=*J z5^bj%FRc9V$UD8~TWkg0)2oXc9>&v<7epT^n8wj4U@dv7apPTEK};Rt&?dqTnLK&Wf!@3|oBz{6h*^*<`B9-j=4zuC~= zv>Pcq+5TYCpXA=1%P33q^k7q{qbRQq)u zNGCa|zq=`Es~5LKaBa5_tR_PT(s=1_OPZX-iZhrj7dqz_-%I1+n=R@2P?AJX`g8KN z*C`*zz;@t_E5XCPg~Uee;dUSJ+P7Qz%OGutqc=cik z{sEThqK_{;fCc6A0Ff6N2%9gz`&jtE5NF{uq_W{GzyV<%woe;g5a+Z`P-4{HcC|W| zr~K~VS75R91z`F*H;}v)W!CRiCDBSjUUzOmVk5rxu6HD7Qh}@<08YlF0ht%T$mdd) z*nQyR%`8InNj()6EN5$_pRTOK=?ob8Wmk0xFalX}Zfdi)#7GWz{-<$`FM_>nZBo_L zdcvdT1;wFed`MDR^DU!w=3Ba19!3CBVVVm50be(CAr#jjqW}N^07*qoM6N<$f)jq^ A00000 literal 1465 zcmaJ>eNYr-7~cy+hVdiJ39U)j#R7@F{k)IeIPthUyep1_^GwVdTz21u>$ux%Z;3+# zkrd4aG8@AhCo-lF32_D;o6!P7OYM)$G-uSQ28%IE6OSxs{J7o&&isRM=iPnZ_j#Y+ z^ZcIYeV%>2v}Eb@^heVX1exw~+P!dYg71>F6!;xZd(#c4xtgO~Tc*fbouC55Dk+r! zbp?eg;01zI|MGE=k02?{eqXs(?k?smo;m?wz3x;lLwqgT`_g5o%iAZdc8aj1bu>O-0k#Y2&-qy;;O zh^jxV`IQiwuqae2wVDNkWXGcjhTZPFhC`8wT*0gnQ6WrFdXfkR6QPZ1M>H?^pT?xx z5np{65MB^bYE=2;XSG!-iuIUSH#*N2x%_61%oGg$uIGyA{$l6 zkSt>~SSiY3vodC*-O3pX4K~*1Fd36JCd1lTv&}(US(C$RPGAc;hAgsLNu!muJB(&W z66*>@G$AB{q+dVuJAq~Hi{))95Hv;gDN0SU2uiCJO^H-1VU%X{B%0$EM1LqDS(Lb; z@qq0>^}hn7B2@{ZV=3nSlTe^onUrWC<1|YeaY0~7oHKG9&d4k<8w8U~3NZX}ymU|M z#;X)cU>M;f8(uWXoLOWj%_RHx_mIL@|m*-g69+CwyATU(z*0!$Hm4O1->UPEO4*Ae&UUD zU(SC1YV(vI1I6Ma*Ix9_Zd;I*+8mzMINUUcI{iW0@gsYC=l2{fE0@SY!r4xxN<*0& zPi)Y2)0>C-=Q+7^J3(s`fvC%~2W}2?S8ts4ev#WW@X57bws+M&um>qz5tw>9WA4{S z-+L7wD^}^rNzbRe!_CWWZ57SY) z?4glAm+x$PDX;sx6WIfsZXA1I@qYY|p;_b>3S?Adq-pb?)ZOeNH}?+~oZ7K+RC$j4hJM>wCgf=`c5}n}>J^^KdDBWN7_9yL56+`)n>tQrdKN|Zc+PzO?)HX`ddfND t3~^yJ?~dp2XwI#@oufI?-1P;zROBlyrLTSK)GLXfsmoDf?Q4LD>cnAgGEnF6I&bDd!+;Yu2Fe;`of=&Z ztNc2POlU$47JqqQ!0^QxX^)y+0}#4v;5&K`byv|3C?XfkL0o2_1tukhMR~E|UbQc& zX@FigBn_07H`VepAbw)rg;pdfRKJ{<-T?G4WxX9h0T;%yEh&|@OqFAG^;>G12lJdd z`>16sQkt}tnB4*sj}r2SPIF!YN6tI|_<@rlX;>DKcPjUhi|Ux=hA}WO;Gbn!8B>g` b;T~`c#qlHy1G#!X00000NkvXXu0mjf0hPe) literal 1389 zcmaJ>eN5bB81ML)fQJN$3`x|cFf)~2+v|O`aKLfB8{iJ`#wIh8U9Wu$^|O>LL#!o%`E}`aEV{Zh{j0F1m6P=_Xk+U9frz+`DUIU0zR09C5 z3Gpq!2Y4~wJ_*VYB=w-&*rYdkcd&vQGV%!>V=NSgXap&%h=q9}2y`?6T4cq6-M%=A zp|a?}p0#*MZ`cJ|nC8&usQ3M5V8&26+6U|Z#x^`jE zp(aYKkMpd#gC_^ps_S8vAfnNzF-jX%t%aZ%h9O83VKU)R1CPWNosZ#4q$p{D0}(-! z!@8_0Xu={NP&;%72Fb2Q5ej>~>xPxcTCQN$h!`IxC?iRPLW$5;v?IC?{7+*;?MP!h z3g7p zc|`z8zcTc@hBe<4%epkc>#EkMs%^<8XlPY+HPWhvQ4?(>(QRH{kd=hwiA04~1LlAx z?*pPoQ$y%VidlIB3Y1wQMH7&4lbN*QJZ~m(#>y}_Et!Gc!rLU0hvBc{#k*3s+NDqe z!w4tYu!2Qm>;f&|v`9<1AekkcvGW$(F47DSXfpte9U~w`BGEN>bx~3TTQjj;9}9R` zA1t82Y0}`>)PK@41V?Uj!;VJx^71m=?)v)50R-8k)^N_o*p1&$?0Ik;HMrt`kLovN zpCQe~Y8MPkzYG`#(lbuJw)?ZDGl7Z256$J9+b#c0b+<2^e)5eM_LjwceIGXTE7fHS zT`v|dHv6J?u06#YE~Hl2{j(W?>C1CqZoao5wm3PzoeIBncJUB(V!Zpn{K#Owf390f z!HWIgWS3@kX8yYW$d*SxM}{B!{)5!`pFhScOE&%0zrVo0d+(5^_;}ABrT4u#^K;%$ z-=5V=PQ7!g;m)=8=gFSutntZ1%_$Sk>r?DRJO2LI>#b*U@`h)?%+%bLcL&CZ+^vS| z>164#OOM+_AG0avFMo8jGI(kHF!L5tH<|y%=Gv55&v*4{X|4Ods^0Uo;hCjfd1;Y_ z!t|lsw+FGK+osQrym$NMALhm3=+(+T$zR)p7R?rf%e(e;aY}Ff@r4_mNd0eh_dgPE zAw5|mw#iqo_U4S1YoCq;)#>tMOBb8}tzBNek`sJj>$$?dvBBK)nIv+uG^O~<(5;(^ OA7G8UjyqlDKlmS`0O%V4 diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_8.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_8.png index 30b97cdf54c42b02607c803d0c6b2c4dc3fae9d9..e2433ea58461257b2e39999949ee249a4c35c3e3 100644 GIT binary patch delta 394 zcmV;50d@Yw3YY_s7=Hl(0002`twPcO00Cb~L_t(|oZXT?N&`U{#eX{qB%q)+f}rRD zJc5wbLa!ls13|D$3VV;BrKN?9l>r+o4OrM|z#>5+M5AVdlYJKM&djbiaGHhRzW4ok ze32+V!~X`8s9FR!9JB%=t?GDA?jhUM=s5&$l1)4?d_iS9D1V|mNl%SH(E;Xn14Tp9 zxaJj#fy#?lSV@`;ydnZH?|yU(9NDhxYYb?TTzW+U+F7f%a}bT|*v-AitvFW<;rqh< z2UCY}r?cfj7t(g0lRQf^4?|el|IR@hZ1950?n9EEta=J|q28lk*kxgZPN9aB<|h+n{il`U`h1r1;HwPITx3}- ocZQilaoIu%q-F3&VIBAZR2ly@(dqR~00000NkvXXt^-0~f+zm5&Hw-a literal 1348 zcmaJ>Yitx%6rQzd-4rRsD2<3POn(5;*?H~m?2NnZZg+O+Vz=Ft1sfj;)0sQnX*-Y3 zPP^MR+K0p9{aGFw(10zXS*=q~^VtBlWS58Q zf|$V2B^A3PfGv}1i6_voVF8qNQMg2sB+7CwAd7S>qlnT|C{5B7LBWT`DVC=hp5oAz zfkB6stnkf3bj2Oq1+bKDn>;~eG8tEfaT!({L2(>MkTgNlIMl$?y}B)CaXnpKv><@A zWT~dD8ai6AD7G5ib^wE9m!r_kczo5co?gin%o>puO@eZfgr*fjThdP3&ES6;Yig&H zy(S=xo{fg7I)-#J zUQdXkBH<9@^9mu(Q|Af0!x7e7w6PX8EQAG*m!#N8$XCE}jE@U@Lmn@~)?+*Qa=-$x z)E*#5Eki?>Qp~GsP@vojDbql~X*cP`MbS;-oR{NpMsWk5M`RUJgyApa<$F@MT%}L~ z!!V0%c*&!1K8cZVMrIUTQrrs8`9u%ylNn9~j2i&XhY^q>QK*`Gs;DS}rCC_6wgud* zHWtufH(9W4@C5NVY`L;TLo$-j=izeS)a)w=;)uqCP%?Y<)>}V3d=Pa;zRKrkpVp?^ z)iKAf4YyN22gV-Q^T?*9v7Z^$#&hk~$fsT(HMj3b^reFngBzxPSr|T5-}krPFthE- zn?c%jY5R*GoY^>;BFcCB>juyA2d=XZ*)wKvVu8GNxblg<%R>|EuFg8z92cM2bozQ@ z?Kt*FX`g8Zk6rmc(J&LkP{?zTlj$diVIN zJ-0Hsn$VNKe;Jtn=fbv`@|Q2Jd+v=xcTOHz{OJ4Nq`wwt^Cb^{vn6=vv%A%kNO0J3 UgZ=Zn?!td97HJedsXH+EAK;(UI{*Lx diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_9.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_9.png index 7ceead056debf20ddfb783cd21f49cb053171ddf..be1afd958aed696adcaed4dced58c1c55ecf7538 100644 GIT binary patch delta 409 zcmV;K0cQTg3a0~*7=Hl(0002`twPcO00C}EL_t(|oYj&&PQySDg+Dt+2@(9wn_}l0IId=zH3n> zNjl$+b05q-ZuFg+hx0tk&9p4(Px&eUI4qnw;f6c6F)&KKLf*AjE=fQ6GIL|aJ3tgY zdP&U=0P9zN%zvVJ0Jqg(VF48QU>NYh3Ilbs4_}oBGXq{5rUnX=*k`xaKQReN5bB7(a$t@C(_m>4ae>7dcaK%&f^BBV`im&3l**{ZIJ_$ z<%TnvTb8+Gks0-zWM*Q_wvdQ17$CST&Miu|M1$MnMKHgOMJNqB)X9mM;`K zG$fge@wLnD;K_@2T9(e?cwb+iqmOoIMh8x^EQ=EqPEi=tz|4Nt5>l9IRu(Mqz!VKd zw-il9au$Vlt=ICRknB z6#OdC?=seNPb?QSfM97xT+_M>O%UzWEY0lHbcCWE1oCu55EV5i*_x}+QouYgl$U{2 zYiLO%pJGl~g#zi635fzSMmY&LCJ0UfW8Ex^(XtaTF2N%c0t|l%FWr^8r7ndM7=~V8 z!-+1LWkg!UXo;3FQFh80%Lp!vk!V%`v=ac9L2*bC&vngRT~rXk*34~J#sVHz1`DWg znhZEL;j`nX;K;3wHpD~OY!+^JPG8w;vlWHHyg#1$e*XBy4X+Xrir)H*qKKk zDN*10?b@NEQ;8PKUc4{;?f!w?J5TI5(e%R`r!Nzpp)=wynT1{15&QfBx_A;~;^$lT z96Y+cr|iRB8?Sx5n;-7(snnVE&2-}GFm`A$G3i?4t9k0lm+BU79GN59S{G-Yiy8M< z-Dz9%fN%Qn?Csf`O%oSB+Pt=GdZ^<-=GZ^aILc-oY-zt$7fJtGZhyRJ&`5mVcC-1` zJD)aO?t1Ui!Yg}Ej@8`$>ucYQ`%?Q$F0KDb+D!fK2Ew`zrWc#8Z#_8l#k1)m+neE{ T(RK4Lf1UwM1IV6$cG77J7i=o2ngS;C|8iIi(SM{^s=xyr7+3_Z_gcaj zAb{x~XRU&}{f!J}w7dq)B*_}E2&eStBi5DRZsh={IeQ6f9MrG-01Mbztk(#){t(~_ z#^EWUemqGQf+Yg?@(sWUOy=2!`tHPQvS+yn?(HkU1fb)%Ihp9+X*s@zX4fb>qg wqBj97L?;^YWEY0Z5h&|e?+_1gcJ8Wed zt8Snuk!^(O#DPO_S)vGvx_TYd|a3eQNZA3N-4pYBKPR4ZP5r2?J1CW&y36h?2ii1k26?8xk-|Ojx zA=;~li`908J!qoJXlrGNDyl4SdMe93xEIdJhO#0$-hiLtNGRf88DMo0Jv?q#$FF0@ z2n>y@aOHaV2`QJo5Hc|#3ew6^nMa{eKw4Z*c}c8P=_5TE5T?LT1m$n74Atr|r4GfR zi3{c(hP*zVgRo4v<9B+vjN^hj1PO=3@~~3QgjOIZj^l^|LoiInYslC&0gjBw0&IHR z0zt8!5FO-bCIH1OlBG-qr-ym6PonS#?e?dJ1MEbu_^crjGKipZ1>*O|LL1j+IS2JG zjc01J&NV>_aZoH%5%TaQ@ukPXeEOd6D5l7>(Jcwld|k+u1mmgjQvuFK=wbeg+)I0P zYFw+em~ld-QCd*cY{D&s8OJacVbZEqIA)C7cor5jWLiu(foe?#MGR{+s*Jc+skCTR zMgwY5$Fa5m%aH*O757W?ekZVs=VEoH5JhrK$jLA(<4sUl#&8T<#sncuDOW(!Vmjbu z!tA10eV&9%P$7CX<+X$uKQx|T9sMiYS8CNVwMwNyHA*E$ zdbRKb-ur(Nhwy}uScm+lW8z1A8^)GTM}Xfv9U>~gPfmy*5r;eJI6q!Vh51f1FUQ8l zS}!(T1wgpWMi`utOT#;_u092&ZEAhE{`T%eny5je>02$nv{jb#^VYgA+fH1*_U9K} z$L{!7c{)cg{xQEdIChfl!Ud16q_UO!*C$DO;7X9p}Wqym3U--!=oAR#@bAy(0up&@F`1 zoX)&0U#H}n1=rIc)t(2r$s_A_Nx-YQbE;NNZvod6I&Ww_*p-~Hqmx)z+Yao)*AhPf zF5pTWs;k|y_u!5OrK>vsZH>^CSan{zFkf_frV}h5wuuUsx-(Q2#UD=5jO{HsR{c|6 z>#QY$dg0@mcIVPIu`8t!Yj+i$>h^cmJ^<&0jiURF{Z+SKFwAY9baHm$!0%ZpiVKpG zzkd6BYI9R{&HXD4-#XO}!P$3vKI-{QAYI-f-hK0K_IIhHk~wM9jr-)9^Il}1H9EC= z$ekWM3Uzfzd+ftRP0P8|79`0h9F@zs;`Tc;FJv6(W~`rn-=~oZ-96P+we24d?yL9I z-RQOqv|YAm{Wvf%cMtu;>-myP%cRnwZD%B}By{Y0tMgjPJaO%Ns4!J_bUw3SLtfNv z`JB1QmS;a&H<}W?Cr~bKAf#h2Pj8ZM9XZQjxBI%2N77G#o$sfW2lWejWB+xVxqvue HbZ`6zdoeq{ diff --git a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_1.png b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_1.png index 45aeb57b557469d696703ab104b5a6cf276ac9db..88849fc6b79752bb3885b263721281f77d00f386 100644 GIT binary patch delta 577 zcmV-H0>1sh49*0Q7=Hl(0002`twPcO00I?BL_t(|oZXT=YZOrwhM#-yBpD%OM`E!S zAuB=12EnAW5HgC5g%Z&1EVi_;5G=F_bAyFt{0AnTunH1E%S<8a50GrYk4zM?%q&Ql zB{TO}+}T9`g10;GIrly1IUM+Zo&uBuM4yOyl<|SFIuVibSbtDy@VAFX5sre{5(0pM zf*Ih-gg1=L%`aF`tzqgbs;w~V#mk`y}K&J5T+r|%d P00000NkvXXu0mjfPwxxk literal 1601 zcmbVMeM}Q)7=Mp1YX?IGH7M$Fpi^giy=zOkN`-zph-j(Yqg-uf& znqYK(%_t;OoFiK@6~CQ~#cIUK)GU5P<_hA*#BGSO8OdCx?26Rw591%Z+}-oO?>)cg z`8{7(S5!DZK{`na07$Upn~Fsl5T9I0wD`U+*=7|*ijZd)N;s!bN%Az%JGe3$ws^?Z zbTLgjsw&#)YyhHJ#%34n)&ecXdE{hRNACA{MKl1}IesrmxoH6|qgOMm4tf05IRs`L zI;2!>Ram`7+QsBo^K?mdp^d6`Q-lM_nFnY4wW0wJEs(I^Q_lLdejPGwS1Yc=$0!01 zs|ao#@{*L@S_B(8o`yAYOhzdb3RpwPX$OgyDV-!W2gVgRhGOEakzpDwuGC@#JaQqT zL*C)k7Msi??!=uAaS4J~i=vg4mGVlZoa0xc7(o!I0!MLNCThrhRjfezWvnkfV!=fF zD4y{O49CJ@i)0zMM$jQ5*_TmxyjJTg!>n&4S7O#sKj}p=xdQcg!l4ao`-EcpUmCB~ z_SveuG+IpixHUW_mc*GJ0gLH-v!k%0$VR)6XT-XYV$vbv7rBFRXw`&9 zW6mQ?s!XLB!}5%T*_21%xXNVIs8s}Rh}d`?7T0H)jf6?9G3pgztihl%5E`Y@oT)PC zF|#^?wXi;cWGOo0ml6GrU{!C#YK=Ti3LJ0axbjF76uCHo^SL-Lj4R~|cxEZXI=D*T ztZ;o^hHIjEW-aY7^PC4BPOz4F9Ra7>sZwXDWLX%2$y8ZtLPjVxYMEN4%EU62N}P0P zkP*D&|0E6-38CQ*`A^40j>I+$FJFy-xOp{1G%HRHFOCRR|I{UpS6oqnEl-p~Lqkn> z_ICjgRcbNmZT=q~)_Z&xVM*QZ|?6rS@oo1MLdsi?}b8l2Tz~5 zpU^gV>czBk-kf_+kEx-7&cLzwzWq?|eEmMiWuFdaUY)%2#PyuHpy2eMeLtOf$DZ*s z=((}1CN(YQ^5fCai|W=k6ut_^d=fZX7Z0tP@~Pz5LL`u$nA=(!ePzSn{mEZKr4vnH z%mmp-!9yDAQH~8<=-EBC6O4=M{Gg-T2nq)hVmG|_hSc=$ft0cA#(~j+1%c+-fPnIK z_a>fK0`ow#)CAZxSo-<+wO|P{7W$?7Ss;p;k=}FS?MCT##Q?cg8W6xz>BDjLNuaML z74UJ}8;%|bsvA;svva3zsv8xA{)pi->^}TZ&c|C^)^=(A$>mX7b_8Y@S=&=V3)p)c z+nJnslh1gZwyWV9SX{#lZXNY4I2)T1-1xOC&{liNaHXgEc-^%evit7M-wz&6DTMY$ zJ)N@BJ%7pKU{Xw|wRhjrL!k*Fdt#$3NCbLoGqblz{sNOE^Q0}ICrGfheNq2|Cv$-g zopZxIy@~FS#N{TjU5^$d2A(awbfly6@VmO}iS6ez(&7i(W;8s!52t+pV{&S8R9Eb& z3&^_i1LG_owm_lSl7kO6$JBDop3&~{d%7kPmz`Yls%6GqTbnm^_b;P*$A3{$@!Rc3 z6FLqj)}>nFyP|_@<-J8U1#OciW4BtGaOapsN0L@ft$2QN^RMqSr}}ohRom5aYgRAi zo;OQIe+ONh>h-O--S~WW{`wZ#h4k+BWc+!0U>Xz$=IG;>H#M#+3;)zDd4;AUhE*H> E0U%63I{*Lx diff --git a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_2.png b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_2.png index a4508f14b5a5802274f21c878a226c2aefc3612a..c2e190203454624cf95282e8ffe4de535a8e580d 100644 GIT binary patch delta 561 zcmV-10?z%$488=A7=Hl(0002`twPcO00IR`L_t(|oZXT?YZPG+#((dhBrAkuL4^Ye zcOeK#5VW*&1se-N(ChC5SfsNG_XZ2g_zg^9O-n;@BfJr?EP~C35CdZada9;vo0x)Gs1?P zC$bE|9Ue{Vaew3invO+)tl9Q(0NA8q%sS#JW2a@T0W}r{s*QCL2vB*;r~xJ10?ZQ| z_n`&?y~bEHB3~BNE(gkBqkbO!0pPTmQjR(iykL)0AYQk1pJJ%#j1c-h>TN8QOob9H0P*VtSw?MS|J^aGsx^PJgnYly7Sysl>+?#^&mvS^gb< zzRXq^lqNNR5-1nD#TGa6?eRp)0ZHYs29_pL3YM|A{ODiozfB+ov|A3DCu8}u1XyyH z=<86_LNx8hQOez4R zeSH^QsVWgHL>ln;1SVi`L5*CB@ng_luOD2mQly{QX<1h)bkVsUy(?7c-FZD|W$LO? z5rdH_;>Qp_vSl-IOv8dE4D66ZV8anzjLfO{IWi<}Y-5`k*%hhVAI3j+xx43m-+O+~ z^LxIo&Qe&AlrT2|0FY!_p||ofz(4tMk^K8X++H&;(m8{jE23ST4`)fBA?Q*PGI{Va z(n{jQ#tnUBE&!2~+h*tN=2a>u?GfW49kJiT@Mr*Xm-`vqSwV78DOu*G)WXLd7le?T zPzy^GW{H{6k>&0cH7r?FQ)qM6R5&q0xI7Qa^{aRT9+JZ$zo(M&s{CrqR)WUL(V^lEg^ZCR+nV4qFUo#kSF^*3J+s8zc5UBXL7}74ff*h~wHPXs8FS=X z4PsP;u_nsP;gpjM`*rhvXRyjwVpTep#5tO^(R5|F2`uF_M|;a@29nCe5@<<@n<8kR zcWJ0T&%@P|th<^dj4bVerW34kzl?xO;gTzqa*-0j5RqJ|z(kk~RfrUFc@B~zlSy#` z70%#^|C2bFCj^H&$Wp zH}iInmEBwZY`CVo>&6k_r@EP|Ps##kvwCG9sU#jGRO?vuNm(>F1)$jT>+;gB9 z^x)X%g4=zgk5fVSy#p!DAXQMgBp9L8yuEdHa$3Ogbab4UxEPU91PLthgSO$u<1t_; z!ao>W3XGQ3`S0F|1y{Aq%B|TS?gCursx$~6j2fgYu_H?*kJRx24xFBq4T|f&eJ#Hr zqIW_5&)btSl&<}ey@?IAcuS8Ykh`_#uxU@{sZ7IPwB=*}%JRS0BVi?D=q~Vjn^9`e|i$A*lbawTh3tH&|uItf` zgzvMuiVg1+I~K+Df8{cZuH9(9Vb9246W9y};yr#U<@X4A^1~$~O+Og|XZx*VmnO47 zC!BqyqTtQe^-+<>?~RA67XcH-8d{{7@0 z{Fb7eqZyY627Gr5J0A-7bX=YbR<5Z(AxKTswG5_zumEj~o^@@*E(a`bxwI@jQ&6}0 z<2Ill4R+5%yH=J9dh#5_1zDNpd;J~twV^+|$xx_o I)jGEQ1JdV1B>(^b diff --git a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_3.png b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_3.png index 350002167dcadbc5d4793f9bdf255e95c5341361..cb5868d3fc0cfc24bcee324eb490157bac38f35c 100644 GIT binary patch delta 604 zcmV-i0;B!*4Cw@r7=Hl(0002`twPcO00J;cL_t(|oZXVYOI2|g#y{U5Uaus1g9^jK zYZ$1D4h;@brzsk0iMs{evBAM5YRJyl8X9$O@e&QuEoidQE3^cG4WUBCJ(WBu zIp=A(YV|MlZtv%Pc;J2B7yh3zfGGgkKhW+^x{V7qmXsX;(|_`RdsqzRe*v&#jHv=n z0Si0PvY-%2EdRVj1Aj9T@biLw*f_p(^xSCcwRV2{3h|0$q>G0Ay~9QrF`{0JvV7 z0FS9w^D_YFxqtNrEHSu^8New%it_;ZIKW(ZwCL}3x82wTvl@!WdjaL+V_;fGxCxed za2s`Cag@7YQ6L|05HZ#V7)z4`Ai}$|CSWVIZrVZjSq6N$Nje}Xyy2V!Tdt+$T>xDS z?l{=2Iar40G-yQ30H^hIES8irxu&)XOOtHg7~}aqntuY88U;?FhuyxZDtHsdMQ*VC zatUBrM*$G|-u0svl9Ztc_`%or+es{?bJCiW;VTw)%w)X+9$w>1Su)bAR#ZSgiXiJB z?#yx_o!e1cDIh6}3*fL;)B?+nw|uD`tF1=R0<@6Dlt>t8#{w*=i}Yz?@Y!Y=0Th}x z`W!@W=T%z)SQ8fVNLwL!!gK+6Djm}pd^&NY+yx+)B%uI)E2{17g#8( q&ck;H-!FBHlsHLByFikZ?StQb9s2;$zQ~#Y0000H;vHjurqdRx^+{gLO z`R;klevy)#ICaYGDF6UWH7?SnveL`G@u6Jy`$y;&6DwvhdJB_A7BDW1!U2tq%*R2a z11rQ+am?mf*@njf0GF_vEsVvKq_mO_5$4wsxgAax4FGX!w-d7#;|!RO7upGxV5s$s z0JPgwf()5SY;q>xMfOFjC_HUdve~+-*oxW&>V;sOTge)5;0y-39VG;8rUEUV2uRLV1yM9__ecsC$RE&VwDLLjxi)slq9pB zm1ARL`>)mC1c0DwqfTRXU%y{>BlQbLQcQQqV!7ruHhw@3Y5?uq%p(CWNX=U-TXoK2$;P;xjXsz@JUzou85h-+czFM)Lao1r7z*6 zWL6EEa{=NgCwVyWK2KwHM21%6@xbBpj$-tMrEF5}vb?AFI=;ErALi?9jOXNtc{2yk zT}j$kIj@^L66yS2?U`5g9uTp{&dut~d^uD*gOkBIHKhpUUZE6aH~4#Ev{~FpZ|ts~ z=H!rRDb3h}y)oYYS&baC;`u3}t>ykgI<4}qL~NSRxhv?%E((obXO5O_SA2Rw;5`=H(UUTemoVqUIA8N*TNwA^SJPX}>mSw}*(@Rk z|Nb*om<7nlo#x8FX4fuVyT77|9Oxg~u{&o6k$E8F>ZXOf zV@p;SdR`)f^&y#`T#8#%dJLaG z+jSv52>C4JI>!=KS6DgHd*^aYt0H+pZJ#!4gGSQ0L_sTB)*q(A<=@J3uwq%~@4KsK zaSq3-%Xgfao7Z??bYRTX&9ArI%fEUHs4e>m4=0}2C!H8M2&jYjz?W{mYP+H<(f=nf M>XUWHw0Z0P0mtBHEC2ui diff --git a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_4.png b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_4.png index 7addbf932786cadeeeda3e7e344b670344f3f31d..4b1f6a2aa8a09db2756a67f938d0f526566eac57 100644 GIT binary patch delta 603 zcmV-h0;K)=4Cn-q7=Hl(0002`twPcO00J*bL_t(|oZXT=YZPG=g`f8$n+*nc1(lUV zvJnN7#uOGQM5hxAZDc#aEiF={5iMNj4GNaAwn>l_VidG6mf3)Xf<+2R0xCOdz%moG zSi{U5i#0L+1#fqsdpK~v7~Gdn18n4?_n{N{{_IdF{TbU z1uRen2*5Fu_7v{QC)&V84Fi2qGz}aF=GqSHy5KG+0HzcF3V8MuHkTsn)x@=K0k{I1 zo-X9~0PvY-!cqqJdLBJ= z%@%8Ac*Z>U>r4SB^yG9bDYscg9Tk>EvKeEH$8Dy7rGG(zQ|L2cV4@D*gfWpDtm-ZS zENdtL(%V1RkJ?C5#!G-7eEYDK#8TRlMx+d1wXki@G^?-xZ}6oo8SPg)Dqt8zkPVJ> zr@4@}w$)JzNXp^@IH+Z{!LscwUmHgnD-pB-&1Nwr5-OcofF*U2K9AR)Zj=!~p-H1J zLG*XO7gT^XVK$Gn8IlDi3&2zDn)%xMp^?#2HwRD}&uwLuWhGJKZ9=l9cv(alesA}P~1E!Zt6iE3Mg`hQ;$=oq5?jcV;(m^9I{lw?GKNCEGNnRJ??k!cVBDc zVix%EC-VUS@QaL4>pAJPg&~ z{oZLZ1OVJAiy@Is)J4k)+A73dIzorl#-RZqB-CNUi8PW0Q^-^cr4aNUJ0SoqMui|j zsuSsKD$;C;$YIDuIWYzzCyl_2g3$S3h(pd9u#zkeI;`oGUG7i_p4ydjYu7O>0H3O` zX$rwJQi-}aP(?E&C=((OArgr|873r+IGQ3h;lx}J6`=@>aIXwPWO7t2M=)^Y5pWI} zqe-q;Ye(F1JB7f^vNkykXJusxv&2H0Nre#%!(b5#qbS5_K=y2k#T^i3pEhbiP1*^@ zVq+~d1-dNaDRc&_5O8FlMPaq+bk7Y__K{q1S%V$84Mv0_*lKl!_Eg)>>dAj;yinV2 z$hMKNp0v{$48fJeG;I{jrSIjAT#6hUc`Re$>Vl`MX(Gc)Qf#DJA>eL=MvGA{#bh$A z22)Fd#99Q=s4%TsgQ2KIt&&M47^)n#@gl5Pt&wO^R3%e|i(FWxQli9UVzD+zq6|m0 z(ot+AWoL1UAV>XLIKLxUX`=`8y! zSACv^t0oysCTY|%v=w}sV7cW51W=RIB#{P7pkM?;AW5(kgD|m73P~lBAS6gEMscG| zFoHM!pTxl&A=uR+|LK^~Bd!fy%jYA&ZJrMiNpX|Ia3fNhwD%-8US4t01`Q{Nhlk59 ze{~fA+%`t4!wrrrzZFL@CqZBJ#r_j)<#=N0H`9$po6pq0y|;p=SUS~%=-ZHW{MMVj zjs=RgDJM+B58&TrQ?}h7GxHkUL9r0!=5{D$PN)djstpt8=%I>zIePg}gxcl)Y_8zEM)6ZOvXy&zoU z-Dqc=a=#wonO6eaMSFQajBUGK02R*(ei#?m7g(~V5UBKjlz8c{%MXeT9r4TN_wS>q zp1S7p?w_I7&I7{Qq{#HeLE3_r<8J=Tk)-xJ?en}MDh`(f(xqP z>_)dCp9xzw=Pjsq_vi2PSYlH(hW6oS{fgc0ybEaSR=+w=SqN+!BNW8l+rGLwAamE) zZ`+f}9Y@QEo&abWKshhmteP=>L;OeKye;=LuMDRCIeUMr*=zY?-Jwl6=ekpyuL+Za zpf8&B$WgG<(hJd3-x=x;OTAbUyLNC+)XGz>4b6sxkn*XYm1?D70ST?{XUa?4*7xmh zdF}j@?OivcjW7@F4Vwo%EKj=^SUIQLL3S#kQ^SYD0CL|{{% Vukz#EMy@vjAW{>f-mgr~{|5nAZIu83 diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_0.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_0.png index 8f29d5e2c7065c50e1ff361f437e85f24cfd1113..72cb959f02b08e90d24ee9a23e4fa8699d53b6ca 100644 GIT binary patch delta 835 zcmV-J1HAn349*6S7=Hl(0002`twPcO00R|CL_t(|oNbd$Xk2v^#eerd|IAF&d`yZV z217m+OD)6(L>nPAQ;IlY7Dk;{D=G~IL9>vc;0G-YRYrtEZdZv9{KW#dZ{4JohWbiTFd6 zrNxQ*h)?O_*ue@>y7+mi6@M@{K#1yE#2egFHU2_kfQT}>&(1GAEeYejK7G!QvZC4e z2YRcFVJWn^r=L7L6mwy1>Jr5ke{bAUPq`*jr8>J;% z709#rbOTLqK;%FbcnHh&&#JTmLUZa)iPGhM7CVgblcvj8}L#YkP*ET+J8UT&|L-&$}1`^(bMPQ1>J z9{}sDpTunBU#e97%lH4ZV1O~uNr!Q>h=epON0`tPL z@>c*{8ZQBuqf_P?K>2a_2_G=8OzCGyz^$gvhkq)&wcPRAgAnrjNH_+M;!2-$s#iTt zQl3qFj!eDWH&AYQG9Ipff9ADMW{o$((&!_EAIq|geXpr+ zZQ|#_mtw10(1Y*Bwk*rpJUmFC%WBh~=gM#`iXzC7he;f2S_{wN~Vd!#sy$d|6`z@Gs`3%6($ z`-y75O$dR`r9=6aCu{QUY9Ylg0I4cHCOxJ-MznRvB~V22Wn{laE25}~d@C||F~A{w zAHY%$!lblLqNSasG4Ao%onoRqbrfite5GfRIzZD0RDT0#7toaZO$8s4!ag0DI4_n$ zJtxzgON$<63P4*r@>>4KR8tUi@86E%Wt?$VT|MJ0^}O$(fEh98X{a=*?rn4x1DK!i}lGAlhZ zJugekGnQ-$pvE;LLNx+-XV3j;6n~o+4Cl9j$P~&8sYf7Epic1c%4s3{r9E9$x;1Lg zf`9Y0X^Ny)Jl}g$tD`IE4rKWDrffVCTnX+Za4zCjhvruF!czOyRTE@sAdv2;Dc%~^ zTxHOv)&M*jOwin>2``iTqV)#f7YVo7DVih`E)Rb9uDZoTwj~t}z#5LAa{_NottrU&` zoH?YBu`Ws9OUm?eB)>#uO*b^&JI?PO^my3lp_UQM_Xw=;Lk+?UQ&&>@Jd1ZnlOKh$O!U#4^`P>M`kf%;jWn8T<&Hz!kwSR7| zMcV66W0O2wGX^PSpB0X;2qXx_zYpL zJJS#%XIFW)qQ;Rjpw21&v1rdI&_lF+(lBWX^~kCjT_<@c5)rNFaP;p6w14hyL%ljv z14M>PUXHAWNR4lluI91XNI>t+Q!YX?Qd3xRU+E%=a2A=#qLd~w5rVJHdKFR&A@dOl z($FlzCpW;zJm)0>RCB$>VAKet?qgn}tBOXecTF*w?#N1=^m)YjB*V+d+wB4>h!mDq z7h)Mj^oR0hd99c8tC67tQh!>C%6UbVP`ykgB1lG%c|~g->iL;-IKMQ7b-_BPEdq2$ z21ICRM5ypB-D4`K!}B$Mxg08}I@5fGeitBlVmGRmoHgEguBIT%v%Sx~_Z$)VcFAMS z5JON&8yRCj*H50P$J3Cn@$aQY&-0`EJyg@^pA5!${hvXR2q0OkBxLBWNb>1O&=mTz1 ph`9+oI6?ZsI99%?2=L%{@DHzJqYn^O%cuYV002ovPDHLkV1oB84VVA` diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_1.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_1.png index f0756ff855ccce089ad99ac229b550b19c3ddbaf..c973f205b89e8f1a76659520b7361e48c7837f49 100644 GIT binary patch delta 809 zcmV+^1J?Za473K27=Hl(0002`twPcO00R3-L_t(|oMn?yXj^3*#ed(IdwWy0rh;*> zjP*_}lqxhn46BwUh?OGvq<8hrybPTn4hMpw-rzQ-tE@ihoFD~JN-|UwL8V|in0r|} z5nBo}y`|~~9czN^(vs#LACl#vo~QqJ_|A9!e4GOvm{7lfWq${(I*1`9S<``qnlb;E z>?9mWY`4Z=Z?GaPB-(F$WX!k5*hHnPefiRi_ku)MA=9=!>mJWYxcUb zwq*D5?svhS&mU`P(*}EHWoxQyDMVyE{McPiQQJ2{N zv^F&x8O7;brhhK+$&!&Iab$gIwJz~~mOe?U>XS8 znED_w|8uS0SD{5{De`{G6$mBA&-fAajU}&Liv-w+D!^n)I+z7;eSlpzM`mU&_^m&^ z(^SBH-18~`9P(k9OjGgOu3rG$2LW#1CiL8vWSuVd^ncpW)_`Gf{Sip~t6V(n-gk^_ z%f*{eF`RdOxWh&O=_)y=A7CBVpR)eZErr`}o$zlhW-iwyeR{!X1l+;tldR|WuE=sr8KQURz}0T{jiiLR6+ z#d9wY0DsO?8D4w_fba9Ofc@dI@yT2HG8LfwXz6MzrgLipRiNjx`Lh+6HxdJ64WHM_ zxfXG%$;mvV= zFLU?elv(%7VEWzSVzCqrJyfA_qR6Ik_GNW0oqzSTzRoXaxo(oTodM#5=irZ1XIP{+ n*&?ZIYmB^3`6Ex#&SLW)TEmuVj#zV|00000NkvXXu0mjfVRw|( delta 1650 zcmV-&295c&2KNk*7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000IlNkl~LI4%PbFszb_+U#xJhI|bY*#ccpzj(=?x;cu%gv?{&gBp}VN zl5cMdj)8-@Z>cZnez_4;$b!?Tl&@+4+`^)ZeVg(JB1S-A$;TSc*O`TA09lKxX6{p< zDMynRPYYVwkmgbPCA>Gq0Qe@nF4VUwe*pDR={ctnoi~HN@B1FHK+mFAF!yQD6zIv# z8@p1b{fE9?xPMqF;8y-Cq|mO(C8BJvmYBse0`RaOvEm~NJ}(^3%tsNC%PNPMIRTh5 z-2Xq7j37dE)my3vRtOkb&r^O@CXpH-LtEninF2U*?Mewn3Y{o3-gs|r1eN(!qh&== zgtnD7Dh+?5L@Sj~$4Z-!@?+GP&|(YaFFH4}9#RLKQGY{iVBvt38w@^!P*=;FH`Ajh7j$^M6vJt`}Y9c`=!w9 z5j_J){V-E&L=}oC9x*a0GNYhreY3)wgfkR8d*sP@PDEK=Soe;N8n2p8W{!$~q?eNf>&xI|`cDQ3XXpdc@1Tihd^4AC1Ql zOa*giG=n_Qla1$r=&>^TT#7>U8a-95K>0_ZXBvTJ#9sd*qI@l~X!QYKH-e+(S6%}k zMI~B*R)FSZ>&V3wYeft1`4uDMz}8yrOC5xU)qfDlBGQKCMqrJT{>=G|))!e+>WAam z3O<{eD&s?Hnb~&_T5X~AQL;@}dNyeD4THq4Bxe^AThtXju(_RM1%g zMVcaLG^6i9tZ`X>vWOZx`d)^QD>Hy2tv=FAM`&rSTWvk*zIEiwVD<>Ajpw|80} zX@8MsXmdo;4HqmuWn2kw5nz@>!!%CoC%mLT{xW{W(Z@%@LBBJ<}#aIMdm+?p=$Tp(V$3S|en?s8i zuNgG^0_R9bO{k+I!9aAK=U)$x3XwKB#($M=nqM{gTu9W5q%PgKPoH_6yfeU+jHbw= z_w#H8qc1BY&$l9h_FJl+r8!qqG=(NR>KM@)=4d=3y>kl7^N~ovy`F|h$Chgi@&T$0CCkAn}+Sj2-p&$l9hCa|k}x&_IQ2QrF3Qhyd= z1mFh2^Rjg0^G*kY7JYWZM)W8*1GNU=Iho&!csj4R{Z;3pdExpi-V)1=L|^2KS)$VH;*%|(nrD%O$f z#;pn6nAZf!Fhz|aI*zVw?IGg1(XfvmzYy@fc-Qe~RL(DN1Ci>p_xE=MG;Pr5StE#U ziu0}&wh_hBF&aI~=qv?Q!GGHya_v7n%I#Ze1JPneLN*d0=>f@`l3*nnpwRf$_~-X5 z-m0$;jTxF(xJUCmjD}3z_ghe^g7XI224l70r5yjLNFsH7!U{g;Ytij zwxm%ewi3f@QceL28v5fyEGT;Lkk|H9>)o}=}h=@blHb3IfS2q#*ihVvMZok+wAqN42_;=ak z(R1BXH2TD%jk7Tv$qO(B20XhLF#NVjQ}{ZC8FI?tKYu6Zx}V$7Z{fs>X&CZ}_HO}Q zOm{W=KD{hfKdb;4z2BK5Hq++sBS**p4{q;1Tzu!RmNrgpSwc)JEwBCj>`nse2`E5* zA=;lWd8%8#?O4D_HJ*FsatO(A1HhTT%VstnfvjCR0pNy%d(q8)iT$-O*zI@(h_OHY zdk(A?L4S-rG&RWeMhXnBeR9xa`xl!cVeG^#05|vMeRfC~d;L`(psUZrLGE*G{^DVP z&5ut*gNJZ!?u@Fc#d9s>9GgEs2B>P|&o3c|d;X=dl4@7AeeyeG(vW+l`yTW*o}jKPt&7S1zB>ZMynu8LH+i1z_E+8Y7kqL2cpFQWGTN}nV3tMm*1UU z&eKD(XM@^s8MAPFzkN1nBZY|yV6A(+erdU~TfrZAT%qU}0OJn~T+kI?RsVYhYuW(d Z9~27&PeK&u@ZA6a002ovPDHLkV1jL%bj|<( delta 1547 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 delta 1542 zcmV+h2Ko7g28;}l7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000HPNklH8laRywN@&nY+3Jg`96tgn=r0Mt$+1b`8$lDDgR{o79y&r zTWJ=W;`!erUoIgBCrZWi@wIw)zv;C1B=mL_{H+Y-yVdcM0=#d=cEXcqt?+zB!{&7VdU}NMj#aNzI{zj>8^_0H zt$iZe9^FOY>hKrM`JPw1nh~tn*GV6OSh97$3~Itd--~<3&U6YQ;G(!JBr z#$45^?zNY-cM%crJ#u+W($T8$v*f12Wn z`se;=9VEwjPY|fV)LQ?47TzmZBzhsemriymA8it4Hj^T>5T!;u-=+LwbOO;_J%94@ z-Cp1G#>j80(TfyTRPMp6{93Et3FHeS$32bF6O_++^p2b5CG)6<(2FSFi~xLaV_>9A zEj8>!W|JignfZDKT6+GyYBj(Kxg13{Upx1i(HI(`tNa!LMuSeR=2!Bvnl_PsqRIfG z&)+Nkq=25%Ee6qQHya)vy>un5?0?82*U8$4OX=+TlteTJHO4KVd2a<~73P^AQINIX zDC&;Ziz>g?I{w$eGXg;h#|YCsS~KtnKeCqAXF;zsN*>k#z0D(=>ItT|IG+<8rwMlk znv!~Bt$nXTwh_F16X>Z(OZoebK%N*7Pewi7y59x9-_?rO)@k?I5#Z4_!GD$6HmeC( zQ@mt4$_zTcVWknE-v1I#CwS@Y-}*fz0%(hIkLJc;DPCHvc8z%YRYoAwfCeiv_2y{n z@b#{^4*LKj<|D}5L>5n+H%U{Akn(Tse&xP1u0+NcL0b5cSMC8`L@eJL&*|~V#iNw= ztT!GB=e@|q<>HNO8A?Uu5^t8Mhqc<=eBrEah|lde0k% z5g^+rvOGlFq()a$oDADNKD7BVvY`9lrF_mSzp7)X^EU9Ez{B?}4TMfl@b82p{-@9^ sXyJR+{Mofm!AC>@8Fptd3ag)ne=g82{%Tk1BLDyZ07*qoM6N<$g46#Dq5uE@ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_12.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_12.png index 6a7fe1bbba1c39e4ae252b9ba8bb27b1e62c6d23..488958005864bfaa7acc312c555c61faf862aa46 100644 GIT binary patch delta 768 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 DHOzC` delta 1535 zcmVVTgKs=;p32X+PJ3}pD3o^ZAoC11U;*f`TKEC0;=Dw zRlo=d(0SYQPc(i5qTlUhAW8y$4GkAhHhzPr-{~p<&EmBrPBIuzTr^ThYt9<~ZdJml zZY5~?eItN2nSZA68RJ{eN+dwmK*^Gchz_keW{r;=lBqHfF=S*+KUVVuJt@585Z&UH zMA_YdYu{7)0FhFyAJc%4pnp!n%=ShJarfNg4+$uk14zoxfE2SL_xW=xad+dQI1ds9 z2;jw~)ylDI|Ivgm!_BV57u3zrKoGe+VE6!>`@N#c}M8 z{~kQ~cI))8%BTL`C$?94e753Z#J!@pv##16#SmaA%5zy)pE8fYXUp^FySBFsxo5hk z?OAWWS%16{V5Zcw$dN@1WDSV~nKEg(oAHS{0w4lvIe~Yovd9ooC?~&myX10E7L|2)~uFtbl%n8 z4<SCwyi2x6f z-66|pHAhOlm9LXCPkvTkKy3tRn?V{y+R674pV4G=77^vogp8RkWLBwYdVq|wY&51@ z}b{c;KmYhfk(7ecs=2j-&JivJa zaPJ!aC*y0+6Y0kG8c}y5z{@)MMDLrCet(ueKgIY&@w`N9A@|inDMd7P8-E9!9^kxS zxc45CXW(-@0n%R4YyJHlI6UK92_jKWR{u%R^kP*O(xKUvADoS#wy^d|G+)n0TfuiG z7h3bLI{6s{skQ#T4n|JA*S6I*Yb8xur_h>jH!K$~VbH%`J%p(*C2yTz&evj4v;nZ{MSa;2E$t_HIT-z>Oh=u9clnt(q7?@8QqC3*eut zJ63l*$xnh6-VZJ2d+s>`o(v&nm=vfRA+Nk2*8szf7N@_5f@l7DgrBPFYr5PAtRf{@XB4BJp=Lit!i!5_@$J6{~y3Jz7|v4 z^+;&QOt>_{qaMmD!~1f4#@J#NFtz(2_{m0vMCNJNq@S-qG=?L|pyUZx8-M@w09@Jq z_frg|%K!u59D;b&q%jSuW9XJ zb*`}6oe#-O%I^bkMUG;24rFuEGa88{!_VyR(@|@+|66#(oo0it-yl l(OBv&GV7*BFcQL^h=0XEyx2b)>3#qJ002ovPDHLkV1n}U?j8UD diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_14.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_14.png index 3eb9a1f6327dffcc27476326c75d9b48c1f75cf8..50b8299e2acc78505cd753e3adc08636baadd66c 100644 GIT binary patch delta 786 zcmV+t1MU2(44np$7=Hl(0002`twPcO00QJmL_t(|oQ0E3Xk2v^#eetzUiwBElawSh zXl%x%ZaPI%RBSUv)R(AOO-4c$j0!42Bv^`@!o2K+f(CIVVw!@&xX`#LD1PKciLI-2 zQ$eX_YQc}DDKBQsB+k4!E+$#I$XOi@hjTC7b741_cD3vdsecNng(?8If<^35U)<baizEPn+~hS{)%5Xk$YS7?h-q4GQh0 z`Ylq7DeA+^5`PUUeG~|qB}spUNJ>NS)CeRjbO0Wt=BI`lo|^(t0|*4r5@=8%3y?au zV18;Da@>@eG9Tw}2GH?MFXS>2;0U)WJpbV9t=8m;_ zo8(m6TI*Ps4@z&Vrc$G894zF)^HNf(HC6v<94z#|T!Rklu2O%u7l6^{u58!oKnGYz zb2%=xgnwKu#zMDPS;_(6p707W#^KWae@K$*%m0E6yMhkA(<;mO1&a`AdhL@|NaGOL zFzNb}-i##aY87nAPCRp24|f8v+Kmm-ez^1KiPk1F5j{iHubnABD@kgeOehaqPeETF zNn+sdt;MHCtNu!nfp4d2`270&M`g_#J%vW?&VRS6+0sJHk5SdJQXF%S7cOc&=K7^k zvtx5bs_m17+TMKpG_3o_^HF(rnSN_Azk$gG~2Vd4Mqo;5%4|*`|^e!)@`nnt&g!#eN*W0B~n) z@Jj)=#xDij96tlNIofN0ZQI~D4%oJ>bzcp4t6{q3+gbylGJno80(#yZFhjoE(da@* z7=7;%$&ZgR#m~6|X2`d-2A~AtdrLW#8M-cV4z9b4@&V?^x4j6=63MMPvOiyUCv?kq z$}ONmWOQGge@EpbI^{d<8W<&#jzz=Sot2O1lCOFTh*p`AB2Fq?G@`xr+PNb*`xen9 zTQ0+je4hrO34hcgG*iJ_L|Pc}{3{ge(b4Hx()_G^OV>clvcxdMKGQ6f6CG8)#$=SW zZ)jRYB7r2|_C5eYGlU3{bbVDhBWzu9W(P|01(E`?)p!??na?xlbmD5|Mv;~81^`D@ z`I+X8MTE3}ceOtw%y*|4Nw!r)2B;JzqcHPQvVS?$jjUoiiI^P$W*b;nJvFNa!hLsd^3~B{l_D^TNNaW_>?S@b=Ii7QNkhC-nkG_8nb63iC^$9fX~=$6JSs+^-qxj5IJ;_)yXKMR&|^n zM5JiFRh9i)C$QonE5N#f;b&en$efdzkBFwS41Y$Sp6)B=B?%UTk-N7R4JULqvfg}vd0%ERJAsiXp!L3aPSoap8YI2|>IJ2TS&;$x82ZN$>wm$A z)Li-&Ly)|8Mx$z`_oH6i-wD({*RDcZLHTVFp;{1+)>U12i2xaJrA2NJbe+^P{$xX- z$n;9CuKrO!52=%-dAH=jl7|Dl-y*a$fMe03Xk{QDnW%Xco((I2*WU=T?ynS5C2KW6 zta0hgRRq-mkEbrf_tGz&gYO^IYJas37azAg-Xba@1R4!KJtAmPlfDA@k;8%%aiiDE zZQK4*02Q{CyCVf2B}!YbK}!ptWC&EA+Evk$anv9@J$Q5;$MO0*fmNkvj3G)KWwP54 zW?iee0{MAS+3_{ntG9=R@GYRr7&64sbCFoBc+4WJe9LH~w9wBig-WmZzJFWJI4^Y# z?2Hf|GU%mYWY^q z&O{$h2SW2u$}hz%C3omajDG+lLiPl!2}u(g&d)F{ofA<$4fE2ulrHOU{(6?OD^B_t zJzQcs3yEM&$QAlL?0F-mRS8J;fjY8gZ+0#uAb^9)Pz5lbHlgOcJo4H3`x z_&+<$Tc2|Sd3zRc1|rJIhB9j(06jM&I?h@J8Tq#UT6h#uVP8PnR~{fE-%BFE59{C` XNwkRaCvP8800000NkvXXu0mjf^!@8Y diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_15.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_15.png index 6244074889e65942a79e6f658f1ad82e989cb88a..8fb3240d7701f5c38351ed976fa4dbcbf492113a 100644 GIT binary patch delta 955 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 B#906U diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_17.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_17.png index ed8d96bab11cdcdde1efdc162669fa9ac5911ee8..0f6ec25ddc3fec023a24cc19dec0fb09c37fc759 100644 GIT binary patch delta 938 zcmV;b16BOm4zvf57=Hl(0002`twPcO00VnTL_t(|oHfv2Oj~6b2Jq+m+NLL^gX&%2F2>wBXf^bf!@dB7JPPrgnEH0U@Cs`myV43{ih zmL3-HVs;Bgi^d_esO!>!J2?7>_Vm17^lEnp_Hnm=o zI*E$X`^rRyW5ni+lGFvPN!Hta;0^m&Yl_0-Kv@{18Em<3)-~Ov#bku>fb|e@FxQ^m zU>JZWEXR?Ct>aZ~a z);s2IypZyzRI$3PXa!JSMthHw6obF)^>z>ueW^D8^Pxy-X?m@d1Hj8uKYwz-51VL3 zH3xw0-n4fzjKU-g8;FREx8I-8y0hf|?9-!cCJd{j;|{VV^yT6zava3lwv;>^BP z^QOe?&$udocRt=Glt9-HpKm1%{u?kf4 z&40pTahPw_HZd7#p;!l^fI+0{o_hWI&v_vPc#4kZvK#!D_vlI1mb}LQSRw*&FaeByoDoliZox&o|Y;_W2np0jbp8pRqcin z-sx37owsmn%M!A_%%KJp?sz>X5oHhWx+A=F0zZAs20u3}yAS^OKU^5gDv?3~asU7T M07*qoM6N<$f>}w#mjD0& delta 1879 zcmV-d2dMb82igvh7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000LJNkl2(Q>6a3=3z@|Nk=ku$zvn%C>C6DX^O9P#|%fSdksJ_ikg1eT*^oeIH|tv2EL! zn9nBWJA97sE%tpM+qQkXo(&u?x>`R!;a6uY+i&$8w(*Yuh=0gfhX}L%StO_g-7efG z0*`)LsB5SaIkSsnY=7JK7U61&aP{CbKNWO{E&DQ~e?&^61wEStciQ=tKw(O*&P^f0 zzVCktfI;Yzp-KdtSQl3fzUmk2gU_blRh!ZMwr%6h9A{)u7LBpid*>}u6?YH5I`5AB zE4E+Cz|(joXMaV-iO2fcULEIZ!MFZ*^R@TfTchflA>MY-Xo2hwX1{xVyv4_fR(HnL zf^X+^R?(*H=*s39Lr?$&ThwUKNI_5y*bZX$uNM5y&aaYyDd$n_`(7u&>}Uh3q=*U; z#)zxtmAQ2VxrvuOMTIGb75-c(z zsA*wURo%gnf{)FI+4k-g->UI^WyM<+O7-oHsiuV}2+_DJ&-TI3C$OQxVPz{+y-VrNRRqM$q)d^?ZM*tkJ{RRIvI6+!7=*^w(qPznCgF+6-z z#NVs|GDJjR?HE=RibsQw?bWmr6>`xy6@M?K00^ACM}$Z=&rpQUJTiMn(#jEBS^+G) z-5c#@hDZ@u|Fa9f$ew-AlqwpB&4Z3{7k>gwctOu<0|q9w%tj`stk6V%yQc`Ri1ktm z^CL_fcO$?U>(pSv3rKb<@WxR{z}hiH^UCT6Hpd^n-H`wjnHtz<3OuP*3&rexb>~Ml zhvEa;Vb@E12k3%L+Iyw|36)jb=nM0$yYo90zqQSdlk9qH0*q1HwW{RK_IRHui+`7w zJ2~I$hbNzmC|=t~D8Ph50xysrwvGRXFKYivfRujf@s!mkk5+&Pj09C8%zkLElEW1e zWWmb%L)cjsORd_z3 zZ`I(V&&)Sg$DsX7e+piOiUfNniGSIqvR}NKp_9*#AgT!-qX24E?zLt8j-(HdG?g8n z%~SQkv+N40J}&3J@tuB1?+?q*+H`0S^+$$yD1C4 zwdWO=MR5`{W@vJRxyyzt0 zjS>0xW%uqWpbBcwL}47MQhc8ID3N;_7JdC1hFgUH4$ zi$DfNI$3*G6R_v@eJ3bK2z5khvT+}u0%l&upD}m=SXF?|$0N_Sa>VN(vhh+R^9*!% z(yFmB`0TjFz`n9o#(%vU-s&-AjL-kE!b(I15&PtteUQQS5s){t6URD)enfQSUDAIjWTC}mXFyfcRwx=>CBq9#JshSD)~5YnYgTKuEP1k7&E_AjAGT!)wF2&;BG(^oX&kf+ zR~wgf;H2cpmh1>PT2BIZ&-3YzW9#47-k;a|{ZTc&SK`;g8Goc3soST^DDvjQA)koE zO>>6a1NtBJ`p~W@q~oSZYYMHbEu)q?qzx#l+WP?bY!*i9 z#nMsom!1Y((@YtF?m=yB1k!dS3W)v!dlv4 zxM8MSg&0qcJZhi<{*h&WDO-n_F6j6Tk*h-@t{3@IwT-R5Y}n`QaIxEaK0^nXRu2B;5W6Ne{zZCbn)iL(aK zeC(R*G=M2ZbZB7xf%@2P8!9`YKm)6cKwn`465o@-r-A%nW^1Gqv7d=u#sG5eKK@!@ zk}0$NbRdC40F^!{zu^?tL-sfbh<0Qprt9~m_hey83?{5u(mIILhr`PY3IU`+1Zk83-wJn zg@tz&J<^#4^7m$VKWzAV-(CdobZ+xa#7|7CU$VeU7IR&-(^7ullUZqc;>YLas$NVI%MzyJElrBHV1LjP3Y%Ju=HGiUAMQq~!xEFZYlsme;-{L3}o zr+@zAnYP8}=2M&PHQT%V^|?t+0`Lmj?_BN+`0CR&w2q00$jnoN-=8my=@UAbmF5*) zozpqM!`@CSpP0{Np2sVgYzohoS&|2ZzcnKpr#NZxRKi-+UD=U8m|! zeQP}YkOwgRR_W~5$|6s9-~nuK8dQ&1)G!(A0T{m+w53O%V*sC|l+2ZWUJ*Ih6^ZGE Z{{X0ww-lca*P8$U002ovPDHLkV1np(;%oo_ delta 1904 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 Y55tkxIRl$M>i_@%07*qoM6N<$f*P5}T>t<8 delta 1972 zcmV;l2TS2?XKH840DR}{;!<U|2lZ%04JsP84pRmYS)57WtPzWiV%kZhs;lR5iI!GAX&{O5|G+wVKq=I5`( zbBr;z(O`gIijY|<)0mUEiFf0Q6Ccg1e%qKKnn&$rmIT{>cK2Vx*@Bo{$ALSO;10T1 zelUHs?`5*Rn%T>D0(j+UaVq#8olLwk304OGh`(&F5m714Y%6^x`x8yBjIrQnV`{-y zGQrAPztX1+m4BeJa#F!&{2whWqN~WUicQ0rW#MkRk9>-rdsLXn`&mwa0X;xB%Z^ae zlak;JRD)#b`m35sFZb#=Vv3k)k^a8#QqG=v=g`THe+Xvp6N1kgJcR9yJ?}781l;cz z2BBhr(c;QPFnis_u{l2__)#*NuTd;k_)8ggG)jPSDu0?FbEZ-n-p)??cX#kB{@5B( z*8et{s-380o9v4juY#2XT(Gj2F#@8)1l7&D`{Z}$TjjUkpBD~xp-KWySV;snj&>@& z0iJ+6g5OQTs?8O4ykGAg;ON4$B(McUL96r!)kV()em5lruui`LPh zXjSJcWq*Ousv7SEfA#4PI}|7*=FuiA{NQ`x*KNa*w3C*S+E!XFHF)}!FQN2Sxo-hUUsDAuF%+)vca zZnWipD;i@9eA>xBs~3r|?|b~0L6PDZ|57o^_g2O=lef=RwSPsepT&yg^;n(&29*TpfFE0(2#PJd zjeibS(0#T()k|T&g(X&%T;_w9eP095f+`6(=AA{k3Y0BI`$u|#m2_YA7uT5e6WPA~ z(mgu?3~VD9Wi#2?M8K?P8`}xi6~Slg$ktOWZA|B~1n>^1XJh2Gxl7w>bGnRh=gE)O z)zPIoS0=z1wYOOcS@JMhR{J7$nQib^1%JQGR)>OrH3Jwjs;lTJeYFu;50Wv$Ov9(v zFk?qGb6s1vGXSDW{h2=6m`MbcV5@@9e4h^7L0S7;_9AE&Z1X$GpaQCBkjKXR015yu@f3KN`FY7 z_8m`|N`lPx(Vl`O^ih^Ho2R`AJQEScd)VexYcnQ-Dh-{0V3KrBKAWcsrEBZ4c^;Vn z1|KL4wmrvWsca}q1aH&Jpg(9MV~~jU&#unpvnqedz~)7>tocIR+-?D z31DEsXXB{jfr+FNAxaP&!@wR1z6vU{i!xF286KSg9=H)6SQ40?qT`5dsy>;`YVb40 zh~)e_v*3^M;2wY>qHljf*hZl&21)6o4(h78W`d78-Q-|Q@l^@HU;*(BpMRoErfZ+r zFshq|dY;YY?aVTON3{X{$^^hGUv{;+%fB)D?+FkpxvKUa*#ktUVvJg?zAN~C?#?Ib z8CVmHzazVkOn@=+dYYY>PViZxVPhFR$1&e0RD<93*Ta`VwENfu$WAcZ1T`Mn!CQio zjgpPo^3S`p-v!=cykCz^fPdNRSR|w7!6fK{(KKsDtHDPq` zn5E#z7dA&WKPFIgy+pf8=l$#(6QB~bZt&T6_8V=WKN-`g@vQOf==k4Xdks7ie6%$~ z`(59n&OR#*s;^;oyjMdx0S2uxU=sJqQ^`9y!yv-`IM%2qyb*qV`dIi?_ zeq92nQ;*-(3m8L0%YRirX7#FlM-@?d`lHgL`#KiGZw zaW$ga7`-WDa!N1zT(O48&dRx1PvgID+u#2yST#Iq!)G1r=zm4^Tgg;{h2x#zcauxa zk5|q!k(HU3cSzldeVI6;RInEser{~+RK2bS34gB)zPdtsMCEE_uYvP1yFYB9=vb%5 zDnwVaPQY-y8>}Pruk0R`NB>qQL6nq~0hj^2H_tl2PPlS3Do;$Ovw5q6pV_O(vFEFR zdyK!!*T7k)6fK>rU>|A1D)if#D+`uKRX$r&HctnY1N{eY?N^h47Z$ew0000~ zDr*#qUua*Ki`J@3Iyam2BgczG!QJ@3I_JPS9RB?N&`^u22Y-O!IvH)K3K>;Z<^NZ% zA3#i1RqI;!iK(igRYXKuB;?a7BG3nbRFX0JRn@xkG5}k(eaFjyVWe?NPVX=R7zrAK zc-MIe0AqXr_BO|68)X;>RYNc6Z@G#Gxm6N2@WH)M@00Gci@AU$vx> z7dy1R(yyvYj(>=%>b2#yqruhte|d6Mu39m~ATS+&aUt=h=I0f6B)J z66@5}*o_Y8YkYcVK>ShwP&619Jvk3oZW!zX1P8R8mGR55uN+j2q4(Xc?(ggF!%Mw* zbYl57$4v(zr(-Q}#oDgfdN4fbgLIWrVC|nXyZ(R=F!Tlxwe3$)S_2^Z$XgI+YA7B) zsH&=44}S&VnQM=|{ZR#g$(s}4F?HCEG{}6RZyZ7LNaB6~y=dQj{DC^B2sMbUpDN~9 z#NLs&LrorCoB_u!YBdX=Cl?r(i8Lh4K41X;|aW>SxAanMv;_aWENJ*fy>X+wc zVLI|hcIa^SXf>(#sjg(Dkool+;NIwV=TiFj1#Fq`=J37tpJpzs^9{fWVTHadX7{WT5G0Xy=L|+{6~KS@f~FhmVTpa00000NkvXXu0mjfyMB^o delta 1631 zcmV-l2B7)C2ILHo7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000ISNkldx$ zI0kUG9)DLe@WZuujPQaV%8+Ps1s-<|T|Jngth>tbmjb>VKYs)Gay+sV?wac~Mw|pj zog^ey%l9aWW8lf$UGts9h`o%K#})FW4d9cMf5P%MZ-2~qJ%*K+l<&$Y@L-x4S21@L zB4bDQ^}Jdu)g-!7zF`sgZOWH86^QPmh>(evSIgHe0B@Gy&wpzx>rlU&Y#x^Kd%tjD>xW&y zD2Y`h+IzN8oQandU@_3b&{ay7Uda|<-Z~7e2%4A3^H<5vDpa3+fE~TGRp946Yb{1O zR(kNpFri&X*ipzjs~(?z9lR2(puDhq{?u&=Xo$fbGd! zCy(q4AAdwQTi{(SvlDLy&|;lCR<{z2$Lf3R3E@ull7*)M^j4xPE7_>v^TOpB`mNr* zo_~&GYK#o7Y_V$$s{t&J88OzH+oF6uUmJmj?AGZTLXWvKh8aLc7^os<3@2)zGU>=N z0+04pieB-qfchRlVl*>7M?G&1uRAB7YY&f36n`tRf~IKzvo_tju9vU%nC!ax{luzJ z-;)MMu45WNW})cCOzXOGeJf?4=1kA}D3Xkzqrn)mm+m~Cz402|HNea;#dy5eVaui$ z#{0EFtWJrooj+s<+jatx=a(|4t%{7mGb)racEs=qAO)698PS_Zd5>+#j6!5wks(Gc z+kc&ojeePL6nt`0PP%+M^9Xdpx>E^O@gK>o$`D z808~6k-?#N3#fbO@z`o0UWbxd^Qg7fR^mO3qxDL`U*70(SHm;V5e=?cko5lKO+6^O zTJ6-xi>%+e5u<<0d%GyVl=9-~QC-8VwSNMdx0eXOhIgir%P>^RxOeSW!t#7ZHmeFm zi5r)RHv-A_8OBVsrW)!LU=bO;v1kJ$=*?`jSog9{ z(&ELfIBCH?fW(N<-mBoA`8ymzkqoVd7@FG))5)a)$blZy9=tTi&qk2Z>!jhMIQA@q8Gwq9VOrI%uR8*CEHS}%P7Pk;IPycuoY zsvW%kf~Fe@K#$XO^uAiWz9saYv>16=k(Mz6JqKNxwZa-8<8f9#Yq?4~BgTzNCp|`l z41E+@)?&O`KjQU?_Q7zVuiUT&Wq5s>mD zLqJ}t_kiYE`$crJ%Af5VbblX!VIBzt<>(ze-x`aIP~T@G#fdCWE3WD90U`mS%`;eO z4BG2GzI7z>#zmMBA$zXWH-X+}tX#wj0|_Ua9x{9%hy5qvns0fHo})dWh=$$v#=C4pbqW5PhI@)ZH@*_{`^;i(i&$)*7_*Ug3 z&qwk?jI{zNd5tu^}1#?t^wiO;|2`L}~r?2ht#F#rpw d$ob(j@DD0nd{=BE+&cgO002ovPDHLkV1nGyZK&t8UcVy_5lD^cEfJy zL{ygg5{nO(+3wDmHbV|Tkn-DrJQJ3unnU&?u%N^MXvhRxHW3*_*)vobj^AYNRQWUj zpjkoo=G|_%;!e^)AyUTa;pcnH$me}2JB1EYvX5d-VSmP4-J`yO-{+=eKQeDeZJ@M= z=!zkc$VdpzBw(xtIKv(q3VBBR(dcaV}>{|EXPe+9=$`Ls9VGeP6n zdsBx|{4H}34w9&pwU(4}CkU3H`F5lCdhtCJ!zn|~=K+OyzfbA9=LG%Hb?zV)QBrQZ=V zEMTwvT1*9E)nDq5Du2wmpL29Ye#%(S;b8)qS~fCyzydUO7I~WZyZDARtgfr?JH_}j zE3h2t#9sG?+byMDhjnGD5QMu_5@$9s05B-^(O`?WK1=28AR^Lh%h^%Sy_xC`=VvBJ z?|(`>wpBa%eMHbr$8VJfr#KnKh~Z%XK&dC*8G^j8;m1z1a${$9v`wpjHE$El%Gc`_ zh9J*6WE^Jz!3eJX`<+eB1JuI+PR1#xdT~wO;06k&bYM*i*gx=kWe@`p!+=Xww0Aeh zWbh0q$Q*PjuMT< R>u3M~002ovPDHLkV1oQo$shm# delta 1935 zcmV;A2XOeg2ayku7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000L=Nkl3?T*|y40DQo|5x_?ITu~_>_ug7-?Ygcu zFrE#JcmBD5Z_#^i*L8jSsRG&aw%I(iF8Z0-+KKG^lzF@NaDTP`3E&YKn<2s&Um-z- z0F|KIgS#W}7Jg6a8LC9i?D{pP2;iMOr3n6gc6d(@KJrt+46#-GiJVk!;8;{;;flk| z9<%$T;3GdHjI;G~cJ8hB&J_R+&JZ~;lNO@qcAcjNU-b*k@y~|eRh!Z0>$eTYY4_wFzR)4< zV4JmrHeg#3KW1kQa0=G`O7Q(T+yU$R-xQ!6R@5D23o42*gWtOOz9O##-Ky+w<3|z5 z978vDHxXuGZ{n)03@ZiS@QwNB&t@k5R`>qJq{x2u@6cve+nE^!I6d-=P4i{71^fZo_q5vJ#vMel@K` zHh<9bY;EsDN`PuUUPZRChzvF;D7cmcV>~0nYLKG+t=gSEe|t_;0nlywZDe(bA2&9~ zh+&^qZe+EFK&S+Nbq$7ZMCiTu6NTJqs5ubLiRzXU!T00Uw8C;fTYJXeFMl9!0o#}_ z_U!mwim>73o z4$&4tJ`ji`r*i&SlOa+pzXsYb8*lMS0t~QVGeto2Z9v#TSJMDme?>`Hs`9?sv131o z92T!8fQ2VRC0~1$@MN%K6cV7^UJbqvoDU`|^1QmCvDW^_5TG^vAF3iL^(12Jpnt_pw^>Tic#M%%6`U0E4|fk<^d(ZgBUkQF@Cz})D;}l>(In+$z z?Krh)M1>c6mj%&3SJFqMY>J9~gnt6GrhRjU-us)6R6$wW`+-u@YPS#tUqR+q?;HQ) z(7UlixX=wmwlfL#wlZl}gYL;S3q<W+Igg4g!6|meH zwP~yJ>({lmvfwNGVE$${>{$6Xg5HYgQ2ovJx5IW2XpFLUrCVTrp2SC{0Ds%|u^j4y zqvUT-mX(`28+^8x3cl_4Ur7N2sE=pu9D26WhOu!1lW>j*o89~FTp=!zns zUOd~=301J`Zzq7wFV!6BF*|oh@UucKA{+7t{Z#h6LjjPDLBt>bzW@f6i91>rU%XZF z?XKWQ!DL+oo0r**-mhLFZ^N(gh5Al}YPGw|=?V$ZO*^RoE2L2sWTyhyVsQNZKRqC| Vn`u&6SO5S300>D%PDHLkV1i%xwrT(X diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_21.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_21.png index 0d407de64bfc2072706a182f61cf9c0aa101cd6a..904d2931f1cdd380f39a50756003d26f50a4de25 100644 GIT binary patch delta 944 zcmV;h15fQ6%*c`@Mh$UU%$9+?Sm{C1EkiK@ zxiU5uX9966V-g*MIYtpEgR6!1?(s$2x1W6fJrDExcfvYr0DldFUi(0Jo;f1aYzls0 zR>2Rs);3|=(tU?F0*Nr^=!!xzSn<4StA|Ae)dG;BvVZJ}4kS2Ykda`8Tao|Xk7zI( zv3uZ11*F@B7IAnOFgU)K00?gwYz2vk^Ew*Y zc)SLB%#tU^iGL!2OJtp%T@&E!`cgU%tf~v>c;mDQN@}jp>_i_0h&o;CFM!OJtmPX- zVNRs*Y7Io?SXmr511izNZ+)f!e8}{3y-Xbh*6o)S33v&ilAnoNfVrv@97M~oZa692 zOos2DT7hZaZ6o*TbUf;mY2fj|*LOIj< z!$Z4i#mMT!xFhK!SxkdCTe*v?izV8rbPIr3Y=8LeX>TYqEPNZVU)kKemjdj#coA58 zIp-aJ3YdmhUP6AqINp;2B=#tdZ}iS}b~k+swuio*dGD&b#+GTZVS|nh9~|9Gw}6z~ z8^KV;1j~RkN(hVd{eL#3KNjt3S*p4v9+dZ5CJAJOn`zOoxbZ5YF z>3_3T1J7hz_6Pt7z)w55Vv(3_6bgU>z?jSG{Q}S+r-w~-+ S!&OTF00003+m_=v2$c8a|9{#0vh>oVfC9%!_E}Xb z0QjJd+C@AAo~|7~^3aZuBQw9VpUR%AfcYm{C|hjb_n(b;^lu%zd+@d2M+YC-?PUCn zd@{t$@%0Z9k| z5f2E+plvF%wLCq$=21Y9b*~CO%5aZqvvoSGNddq*W`8NpGa4OCG#An7(LKQ|1I!4U z)u_3)_8Ac9Iqr*~%wgLfWCp9qL;yRYH_&^yBKVPC-ac)>wg2+nHr8nUF~->Ti5;Nk zjS&yM5uj`)tUmlJgP)ySr3{HaYhwxkdf_SvL{O9C0l@=7HyBsazUPk>)PFG`&~qbu z(*Ur}d4C&0l6ANY5M=yp5UiH0>#sDTED)9fAlg7A2;J=3cKuFp?i75)e5gdS{xM0o z@6L;$jv&L;=Fn?cq^XIJZ4Z$>0Qo#S_^7dE)@SKo?+?jOBQFfVbexQ^+001P%v8!k zHcTVGy|~0Fon%(tD~90(jQ`k6=h+CT-kFV zUw_8<|13@eK;(=_RO|IP3xudF+%@y!%4bEuZ8)M6YXSeEqHRDl2 zc&reWzNi#@`FU3Wh#Uz7?|{2Uva-?4_JMvQFlB(gJpe>1K*%x%Wxv(!((I~R1`0CT z3(~dv-n=m$1OSl?2w4q{I_vDV!1%VZ!GFveLbjCH{r-CXGysUW8zLL2F>s@Z=4C;P z^k*APkJh_42Tx$^AD+)jfTjWfZY5z7>>V}LQ@H)H6z&5(+)Y?A4*nXh&A zJ|eN>Hc5Wj*t`6AvDi#U)Et2T&3}n%JWKs(4)UA*v~%tH5mPV?@__Al9>#(Jp-a$uXN}+9(9XeC-@ndsv>h=2Y@3)vjQpw%(&KL zgOBDRzdX?E`AA;D08#xz6z}~$L#mnIWd?7)=xcc_0Bk3ZvO|CObk77r#D4^=o(BRe z%^PW(%us|9uLc09VbGo8O4_ihE=T;_(6`NzBuh;Ano2%ZRlPUDjuwAQhLuA3E` zvIeU0)%O8tUF16|fe1{G1i*}V8JS(DI`09Zx!$uZ_-G$2J3&zVH2{d%%xCV?Ge^Zz zcoux*YX*X-JUsqI(2P{FIe+T~qJVhUL;c&1L%L3yMr+@ref|4S03d4aym6$PQEldf z)?%9ROysQm=tBD!cks zeT!HK0U>%9VCOQyALE4#z=(IaXx!FhEi3wG3$6$V?3I-b{UxUs?*GU+m2~4b;<=|oG#$Jax)Epvw~O^ z2_PGI5lgj}QjxxAe}y0*bk^|XH9Y{6oz;%r&a+puiez(8gO` zH`jaR$$WbDnEA;59mU>g?B}*M|14k@t<^(gf|2R54A22VCQ$>LW&bR=G8T3J=g>%O zqcY>I>mO+(ScX#e)_bJ002ovPDHLkV1j$8n?e8p diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_22.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_22.png index f53ee0588351daa326d75d7f83454511592676a1..4e0235770b81ea3760088162b7a9f950734a499c 100644 GIT binary patch delta 936 zcmV;Z16TZm53&c47=Hl(0002`twPcO00VhRL_t(|oHfvYNSt*X2k`gvz3Xo2SCS`qsri3);FP*hr?& zY*C5LqdFUHc-olcopPt=bHASF`F{H29{+vud4JyD??-95bbszo%_X714z3LyxXGi{ zUEc%9YM2TF)xdx~S1uQbRCPe6YU02zg}D2}RWd{;S?j$i;;Y4xG3kLJ6j0?dCrq?7 zrQfj05Upg=g(x^ak5o(p*M$LQpZyVtXXz!MO))V*64gNi-R8v1pe4< z6lKe#ZHsmyaX8kt#QjmXHM!4w(SRv*P;!rCQ4srJgpgar=iYr5#+UyEOkgbv$~k ze}7{s_hJVI`wAay02t$Y!Z$oa9ynP@579meJXKgKpLW=`kf=D;AU z0tkRP8)XVWO>ChS0C4yEUgSCOEbF}u2^3C=K$?YsI6E{KGW>d1agW10000< KMNUMnLSTX%R>`vf delta 1920 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 Q4FCWD07*qoM6N<$f&jRh>i_@% diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_27.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_27.png index e82d7fcd14f493a04faa51ee47faddcf2b77141a..b2521cee3cf51c8b4e6f2156e9f8553a176d7466 100644 GIT binary patch delta 942 zcmV;f15y0$4!8%97=Hl(0002`twPcO00VzXL_t(|oIQ|zY!h`D$G^YdUDvU~UP9(X ziS6Rcup`<0V_`&1D-M{`!W_M=W|~T(C@wKG!Ds?;1>=kug9b?mm@ph>?cInoagi8D zuV@h`S!t+ssD=P0dg@(LSG7EE32JS%GzO4KrR4c8m(jhXh2Rv22SKy(D!}z)j1Wq z2g@5;H$lXwCSi0GC`dRa0^qhfwxwGIa*C`1Anr4%pSb{N(oQ&E#v-Qkk$*>sNRoEa zx#ZsocxiXOH-AVpC!Zp7WHP}k(e=J~9Js5*@$PenbTrUq>pK>rH)Ns%*7-+~q)f?7 zm?$O@`K0YC8YqX^J3(Dmh~nd?b+Huupmt)$sc<*uEkid&6%3(Az9Y#5TyJ?r0xERX zoUEppmkOPKxj3VR`GcnyB8#bNCk1|dx|E}wP18pWCw~Iq?@+D#NIg^a24EjL$MyFVADW68s7xNW3QWr9yNfN99s8n@Y0~Yd zmJJJPP6i96PI3wc7+*DeHN1Z~tug}?QpjXRyMH2%kP-UTx2pilH|g{>L$Q1YK;m&v zXjf4|`>&u3HG@L%sA2g77(SvMm}gfFOCAXErk*q5y(>F_B)v4+{6pHXpb}N#kr;ovFba?&2-^{N{l_TP_J3OtnU>aO|ENs2Zzz@EPM;%I>!Q^n35d)%`0V z*MIXsOW@v8)9U|gH&+QZp|r3bM14Aunzu*7zuX_?uNw-7dB=4$R`}ps8I~(}7WM&9 zc_lyqazob+MQs51Z5se!;%J=@0PBP|-j^dHr;E>N#%CTtHn%rBLK5iE} z(7uJTs#!m4m$wBDM+Gi6_9GM2YMd5@Mkn}1Tn0>Zb4@$W+U1J@Im$2n2f#wNsc=&* QkN^Mx07*qoM6N<$f(CZCYybcN delta 1899 zcmV-x2bB1@2ks7#7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000LdNkl3+mh=j43wwx|G(^g*d<3t>DC3rIQDkcR3-+5Kut>|=W>Y1DI#*7r$ji8L%hDD zUE@4YIgaB!X8i6w%f9Z$tY4Yeu{UVG4j(c$MMMtyj{pNZh<}iA@Y{lKv5O374*RT% z3ISerKxG0(1lzuI({^Cz$)8zIWzAK>{ODkfpDfPvd@qE_zjf@}gRlMG9egzJ%!yyY zOXO1~v=bGEB1N!mdcKv-+KJskuO6~a^8c0pkK{G@_U+shuJ-&DMx?4&5DnK7CAKyS{~B-nA{uOM-R;pb14 zZAi{M8=it#QXvxjCcg2+&(sak`ZQiM>_iNYaP9j3O+jF$W9d8S=D?OfwPk9<$pV`aP%Y+vA$CZ5mpsog`i_R zE0DdEi_&UTu ze-U6j{C_PHL=|p^2&4VCNzjd`>aP@{St1bvw}0tzvuR=FwG)~7Ji@K`iN=%(;K2(p za?p~(BaodVLxis2cb)zY(&=_@Z?itM5&*%IY8%)J88So|BpB^i1ixExB6W!Hp*GbT zpcA&J(N5Yv42)pR#ud4Lm3%Cpvw5O9^i71Ug{KG|X`ySKSJfQI7m+`E zaepZR26hp_OAFt6@}qTXyDJ#uzk&b*-9*TY-*p13C*B6NLI~SlA;_gQKm?Bnwhsg9 zi}EBJQ}ws2(DZz=0cQCft@&e~ZzjM1TCfQIew-mH3T@w6neDn|ur;GG$XB!{kZ5-x zfJpphiSFaUtE{8jLdM6=0yCp--swlaeSbW^3jqcqHPFu@u#;F-1h4;Ufyrcj_6A{n z2>)Kdw?S9(<2^b7l@rEn>VCFhvo@HY9l=Lyj8cj%D3MPhHza@v54sMb?iax$g6=aT zxwEn#-2f`KJ;k^s0S4H~N0N*-2%U6ocWjgm1ln-)zN?1F_C@W?m+^XQ0*Lrk{C@yC z(Kg5$5fOABJFjlfo=((1%Ihp8u{j>800R*TX6xJx5h^};{i2$Iwdo(-5BdK{1@OR# zAtHZmVCDo_dl3nuewmY>C6NcK6pvH@k=%(xd9u2}Sv852B6IQ?iK^>F3h{nDXZ7(* z!E(Cyj8**_UPaDOxgBH*K$hkh`F}G77*sRpelx+3$W+CnY5-Ibv(4|YZ*67Tb-!%z(KzH6TUT^V ze1rm6Nk=Deri$Nz>dBu~1~z{5*SI|a2J9)cf!439SF05twXfdEX8jlmEPpb$i`y50 z(S{&NUCEdBS+?Ci8>++))*j;1x$+dzA=L@H4QdlF2wy1U)_qsMi;*0Wy`ot+G)i&GI@sQMO;TAVl*p zTZjnWX90F>Cio&ZRe;J>$o{T3kZma1IMlD>x@pPf5djg}!m64V{D0$k$aeu1WFQ|JS7+9gG+Xt3YKqe>c7>jHn zAp71%qAOI@{^;MawrKu}4TM|P00mYO8{h@g zyMLqmxra`rn}Ij~Yk%d#jTKzEDc%(e^+ z3jWon+k;JQ_VqZ9KmTC_`>;c!i>13a4f%Ky+%a!s`qXM lsFEq_m))}rynPyN{{V)JmUyk>aYFzA002ovPDHLkV1fv*k$V6D diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_28.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_28.png index b16dda91d5811ca36993ea8783a19934068ea27c..5a5043ec52f10a8727a71d3089d011329f070733 100644 GIT binary patch delta 950 zcmV;n14;a`55NbI7=Hl(0002`twPcO00W0fL_t(|oHfpWOw@H8$MNU)bDx9bXQ9Ac zWnOI!21Mv;T7JsSw#rEC5=|LlS8CbTs zQ4d9+q$%5(6p2Kdow+UJ;A-x3H!Voq3`p|7V{@V%ygiPGxM?6y%xF=NUlrEmSl>Xh z`>s+pS-Cgi7c+=TeO`#_#;Bcva%%!Z$BxJK4-NXupOGQcB-vV$%w$YR&l)=j-+FDMM})6JQS3B}-Oq!AJdR87dUtACJn^NY}t$>P}OVh4Ujx{m))xjP_WOj5mG}sl5$i;v5M-`Ceb)LJ~8MC;$ z`JHk^WPQhj4@$BlmJ=!Rl_4Uj5j%hTHS=IR@Mq+lAt3WxM~V;ZO&z*o#TztW?798n zQtu3csCEBiJY`6!xg2r$<&d230P6?3QWvFYPa`c8(OK}?9MZ_fb?)qVsmj$;jQQfG&$OXQa&9!x6$oM<8bj(AMl|E7zz zsqc-_R{Br85l$D(yFT+e?T23;xbzs3As@N-D{2Cd9%Ii1y}Fz{@%z|gc-|@Bm($iC z&wopgCf)ab+BDTZT#?(BhSm9+^P7_G?{&IU$he5CtdC85r2TKd>lqaS@aTf$A%_(o zmCBbM^<;#}YWC5iyc2`~qE)yxw5T&k2)x%j29*J_T?K4_{-$^p2@PA-cL=bhXUIRV zLNKllgaCMGb>G*Gpw(p@fLBfbP^t}FsxJb7$#JVYw%!QZa3vQCoYj&~pLEo`Z+YA3 Y|H-Y%wRo>5xBvhE07*qoM6N<$g1GA4@&Et; delta 1967 zcmV;g2T=IH2eA*37=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000MLNkl8kG(KM(Jli08|{%nXhPpnt;Wd4_@1G0;^o8T@mH z)9v>sb@S&}{dtVP6@W3TL|;}VBEA`aTvt)PiaRnsI#>O+cZQCw*nYZi1OX5+t{koe zs0P7`K{8qIEcZ$dwjcR>nr_0BhQh#{HsF)!$GOqUeUFZyWEA3L@wR3R6(x}RRR`zC`8)3)5r(~Z&C4g;+ zWA4=+1eF^ zJ2L+Y=T`<<^h3w_5zyW*Jcwmw7fhH=And|7WquTlCVy*WhaK`VyT4ekxe|8`_)y&;l0gV2Y5k)1tgN(=Sk~`!4o#+Ok(V`B>Gn2n+N84Ba5X2Z) z4rQ6eGJkEx0a;bS^LH7qBG+vD@j9@8U{$qR_OZ<#$Ksd3sEEd}N21i|id&vf?Zpgx{Y6kt(Mpj?*>feb7NvI#!gk5G>E^q5WE z!Eo038LDjpvlyRQu+cr|%~MAu2(tIMuCf^`4({=EnbYoYey1Wut){c*mKMN-@PBv8 zuyQ^-$JW_dK2umlQ17pHzAy1gr(MqfNPh(|M2^fdHbRu;_`XvSI#1-y^zQOu?`L@Z zxAv(3@JdC$J*uKc!4d@m+qcvCOwMV?Ez;Wawjq!K1!unz%1LT1+K<`A_Q;r>4y(p_e&7}mfdzpI1XV3o3K|Op)*6_TBAq;gIy>l9hDb#_ z(<;8I1t3`O!ZkKG*x#Pc(=h&3d4DK33-Z42GlX19%u-v5n( zFzfv4Z6jK*IDd?X27n=p{8_97g6;8ZUFTPw7gc~P`0V-U05B+LuLObZSAPzxWF)Hy z*?HC50;5OyD*PTF04kHzby<`_~-e=A<#p$0Ke89?ikdd zH;b9u0z0>=o8tTE0H|c4fnA}hP}6>gcjTzf~O%IjBIb_IxHsrK+iR^2h)%ppl}1i2cq2 z0i9npbcMgsWw(WjE+|`t#@;_V06e0ML16VzG%Ew2YDbJNnq~0Dpd6`WSDA14H32Y2 zeZY&d1+hBqGk)3NiZoekU@bunlD}dG=t3FH8=4tB;*p)9P@NOh-+!G7z^WM1e%(KW z?1su-)pw&n$a*^C9c4Sq$jUicuw`?>KXcPlzXMc1dZ;~Y0{1kLV=5nFqAXNAqwfjX zw+JPpI@8`gvI0a?wl8y0Uu8E4oXETVUj;*^3)4g0+cVytA8T*_ol&g-ohkcDbV^|N zUB&60w&3})y?(#C(trAWoq()XtJls6_YPDH9%YnzhYrZHC&R2=@%zAzTL_zX?A>ek zHRqcV>55ZwG#swVP?2Zn+3F^7o`1gtRs^{_6Yd5YTiwHVAj|BXtv2faW4IQe?uje7 zV{R~+Gr2LleW@KoUkmN;m4R@DW(BH(c>Ui#y498B8-_oH>VM=N-N)^39JbhV6&au1 z)yDI+^ZmOwQ*g&z@QJ{wo`;!Hb$+H(MQ8jjaF>nLE$D>`dO`j3HvlJWd$-g1tc4(= zs&z-=c>XV@=&B&!)Hbl+t9yU-sm@rT_qgj;X0~{002ovPDHLkV1jO9 B(k=i1 diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_29.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_29.png index cf91009bf353e6640c865697cfb6ccc3c2f7a175..04bb206bc5a4d15f19a52457757be97d9066687f 100644 GIT binary patch delta 1013 zcmVt=?{vCI-8N{!WcVTHnwi-=MUra`w?9e-Bo*CX4|;ozkkBLPwEUs?*uJT#eYIN zlk+1E9E}5LOI#fo&e&K0*B%2|kK%X7i2+;%q_9!_mK6hd(8kjNuh`)(6A0JU&6g&i zWvmE5F|Fr4q9&xPW+3^(-@Gr_8Yz9b;z z@#?UNa2zmi2!EmZ(7F>ssf43c7SKX+`~E{dC`;J+dO(}Xj(eQ9mAaZxxe}$+7*dvg zcM}R7JNHtqZnG{hj~slxUF96rcqfaCPk&Qu+P%lr5=Z`?by&FMgjId}fu6|t5A-yh z5GrePAUQ3wM&&K5!ZS3(MkbB)U?n0`xhO5(AF+`SV}G1=pzP3ElROALIfub0SmXWR z2T88E^GB;zWmazzh93+`=yr!?GT0ZHv^4;JUEZ8|>Q8A-pKC5&S6=T17+!XzeRh-j zCd5BOr8dhM?Y3((YsQ~Q8egU3uw7K^)eWN-mUm&B|?R^FN?pQb31 z#1Qfz%1UJxst83U7=nXF&Z>PrPJqpU7DBpg*_N@&t?ZIGUJOE0_1KBtvXA2F*g9Xp@; z>4T$Mz#Cb*Tj`m#zCh{u_Wc#UaGI%egx=}9xJSE9tZSl~#<);GMd82#w?q69znefy zXj4#@^rAgpVrTvJn#-6Ml;?EgN@3m3FNafPDGK+AlE&9An=fjY6qv{?CbiJ_P{R_T3KsIP2O3g6_Vo=bFc!_3cLu3m8% zJ<^`BEYbW*$Fg_*ewhc~q-&t>-4^h))NWg~kqtr}a6l~D`pGZ5rWi60z8oNe`wCi$ zKAor5H6&No#6e8oax2#AfAZx2L(gxRa?w0Jzp=Vu!l;!55iC2Cb_)!d=hEC9paa{? j(>Dh;HynPpCJz4s*&dTzqa1S000000NkvXXu0mjfLm=*L delta 2093 zcmV+|2-5fe2d)s17=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000NzNkl3(URjh2$WO)|6kTU%URZA$ly535D75zX=L+3_rvBZjRtI_BMbgkC$&R)4Ol>;io^_`f1}kcXUC z6lJ0$!LAek2`1PnV-GmSUPogn=F zJwPQ1qGXr>VA%h*M?>{#WT$u~B(nV&3!_Ok;LL!1jVBcy#EySP#`>#|hN}ew?p?n{ zdhbsLV2;@_uaU6h87=LoyH^=tRSBph)tyP;?d=86)_)qE#TH{yTs>*4lH${~-}><_ z!s~a=z`*yKW3?};l**M1(|dn@7!(D->jh@JYc_xNrdB@+T0a%= zy{8;}GJj%EN^C#sTvhB-)Pn^i3yyk{qOqL~S*1bslF$R)o?bke-d<+GQyHQv)}M0* zkQoN3_71BydZjE}rTZ1YttbysBAqILo?{U`GDmhbW}dB8;H$t_`>6~xqhf!z-SYzBDillR{0_H?c+34bSU_$mO_dECgI;G<7h>HaG4RoSK2 zO7H#20OQSW`4#ZhW_E|%frGVkt}>`LD|eTHVS5JrXslw_3hsyL+kN`2ed*(11R??@ z+ptn{b}>R!>sJAfetJoutlc4ROx7K%7zEb1V1S~4F*A4f2Fxd~SMk<(;;m6)!hB$U zUVjx9H_8CknA#&K4V1TLH~87Q)xdkUyo6&mXUmS_r`7A0fat`I`>b>J=4N(QCqdTT zGxkBhGoNv<8Iwe8%KTp?5tgSNz`7VIjDS(WS9MmC!P`sJ-B*FHfHni>Y6h@k^*zP_ z1{51NdyP)l7^?)<+L;BPHI`Pd^=AfnTz{{uxgx{PRq#Ew8uEw&94S>!p`FW&tGY8E zGrAvh?f~A}RPF4N4E)x}X8}qwsL3*0!)MEZ-6X5W2%?t^8GzCKZvh|0^Tqu%Fmpbl zTsvpBp_>7Jth4?x;O#hj9R&>UdHzRjAGwWq*yz zC>7?rDk}KBcisbxg)17F3T=BEserH6_%Sz1?22UI-z63Bj|09DWCNiz5NOn{QNWw+ z39McWaP{=E{-!Ef8C#*Nx>fkD#-XG0Ps-23u(QetieJ@SYyQQXPd&rjFOD` zlm#V{-QX+!usAVHGU>g)ekTwEi&u0E0cBt!P?0@v!)UV->!xubgVHTqu&U%Fy=>;Hw9SG3bdmhLY^*;Hs#=qx0yC zTI(uZb@b$-N~MXdijthnA6DAmz7V1W%e#+3$|%aKZ&70x+4FQ{Hm!I`rrP#&UVRGj z4ouc;qYrp};DqSpGb3y~nj3A7%~NU`(=qf^pJ)`liVlyWE4J~y2Y252%JpFvVSnRfgMh)XN>DM*$9cFh6y|IcFnh&urZ19+m6*MZ2`UMKiOYQV znp!W}v+MC(Q2?S0_xz~%#dJpjjK=Ww70LP{r7uyW0)FqEe;)t?n4Q21 z{VQb!-)Brw1wXTodaYlx*OlUxpDOsralC#b$SSQk9wiCOcz<J6T%z%52CxC~-Xk5e`tNNz3P?oPEGU&=ustz-=!adWTq8XdxeD$S1E6u{xObY= z)18S*+bqb+HS^J9f{Y=eldtam4$xm1z#3!0#rG^x7#nz?*~DT&vHE5}Q?8LjCqH8Z zg+W&CW5xCDuYZHR_ZTGRd=yl5Zbk37KeKty&nlBtn4pq;cU|Rw9{@`NJN1#Mr=ddI z-iga-H1l!SHIq*;K=`X*3yKBVD+72Myt!;V3j!0ySW!}B0);23wo{|UU)yB=LLXG>aq&UzklEeAO-y+{C_F`2~d-y zOxYT>6=RIqVAh9FF~%5T05@*><6M^{D@jU=%Z*W!0N5CSLausil}eIUO78Aw3X-IL z+of+8pL^K-t97oU-VbMrfDzPySEc9uYAJ*R_nMM^=@0hC?K@}dE3O0%03S}g-oe4t z1hud!bt_BM$w?CP)TC}_j5@BQ{;j>j$S2hMDp+{R^~_wgxGD=VkhuG9QU?>_Vdfzm zvWwIo0w~+O$L8>DXE5a1Tu4#|<}Ks-dtn`h?jv@DO2-G-1h~eC&rWEOdJBAA*?^s7^~d~X%EJLHO^~q_O>2lfaIM6 zl<|IdPItP8;9V+5rh)QJC&0u$meRoIKKK_1wm&FIYTui46GM@8(J4uidUs7~shU9N z=lZ8On19y?D-9b=C99H8_;cTpnEaF9rvP-f70RtvOf=i+*T`lXjk3X>JTq)Ufb64~ z%3#8qi>p$?(V70gJsK&^WJ1zQg*4dCuF19 z{zrTNOevSPJ#AJA)Mh1oQ00000NkvXXu0mjfNRf#k delta 1594 zcmV-A2F3ZX2EPoD7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000H?NklHl0N)jA$pPQ@oc<>$AK<}_Ag>aR|qB z46f54?*#iexY{1&GUyfXD50V#S{-1}lkcrSq;;+Y=8G)@GYs8z0zAA{jd|{k8iJ>J zH0No!N_L#L+rAMbokGhkd&X!A?DT>wJz|tcI)3{`5Ed5K*~{bro&?S-*o={Mdf2Kl zoe=>_xPQ`%SXnn$X;A*U%E=0L@w`7mK-Qw~+K{GP0NF#_*{$0}`2dYS3hiowcJ^8}RV z-4x$#kldct5RmEHXAq&uDcd{W>j|>xPA)rTEq{4fHUzA4gcN&YM!Hw-1V*xJ>iQ$KcJ#!0x^!J$ptBcXDb&+~mgsRPCxO|fM)m1g<@Bx&1r=EP zi5^bN+nv>xXB5_xHww$uXB9|=vs(gK1=l*~knRImk5Z*M+UMvKwXQ^KwHLU$^BB=d zI)4OYGw}JI(xKmbX-d3#Xh}R}c<|;v-KbV-;!nc3g}4rz*AsYJwAH)-)A1^_vgXSA zyh3ZjL-Y7MC&xf0nah@M+I;J=u!m+O)O7bpx(pynXN>XxCt-B5_rzPCfUEtx5zQT> z`B|?~jqx4*h>Y?9hzE!$)l<{sja^-CWq-VY1h03 z-OA@qftKiK^WOm(W9UryIDXh1V1E)>q5Md7;SD`^fW~+3K0wSHR=q_8uOt=V=O2iW zl&@{ZQ!Qw*%%Z)M5m-r}1S@g&$~_DA@BuLZPv&pcz4$v%^Qbcsy$aDh2hY(AK}sa0 zbuC!(Weq^vSVj3>W8j$A)_NMOYQbBU&p8r2w7zKUotf)=S&Mi!7>W7#dw(f$d|7XR zuT`Se;dVHFR*-FOP67hCS9^^#~qUsD*~Ba|RkpaY&88v;UHO z$FP49gcqXBRZm>EN1%ek>wnx0uj^m!Ib9wg6Arp9JnJbYFJ2FZdFc!tliqyc!-8Mk za=63;aQ7<4LlIHBHQu8rOeYFypAxOhm8{6g{6!FEm~J4unJBX1z%qcY({8O{?f)v} zbL*WFlUi)8DF3R>YRbo9q7ysp-*edJ_b(5iZ3-)!`@ADG%WG* sBdB7cTlFgT$s#m8z*Awl|6lyYA7~`?^uTjJ2><{907*qoM6N<$g6^>kxc~qF diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_30.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_30.png index 08074849841151bf7e31c917e604a6f103c05bca..44eec1f2413119d52c7777c8210bf2ee829a0020 100644 GIT binary patch delta 977 zcmV;?11|jR58DTj7=Hl(0002`twPcO00W{)L_t(|oHfdOOjUIN!13?zcMkVl#KFyh zQQhHjR92>zJ(&o{l|5(OC5P-`;g-#n71`WqS)99^f7F`v7nCio_7Lu=xUg81GY*me zwAI++YAdm;&Bs9S;)DC(-t+5^*5~h!II+;%@Ttcw4xah9d4KK!ow?>rl`We1PgtkI z&$;kz3_z>%bRe5_umR4m1KEM%FV}4Wm;|J7P}8>E0&uHCS_jfKE(wYitg=q6uz{&mi;+U27e+DMuVKoAnwT{EPS;RkH^Ec_5c2S5 z(?Yl|ShGTC0e`epaiLV)RVoE&VY%zG-T*9*JAMbCRr1av_YI{c<0`*IDOEtq+OIA` znd{`A&PQL@1=hg9mxfi|RXv#$9s&Iot#9wgmKGm4v#eiu_mfa5 zhc6OKl20n%w(HY|W;n=%@#mF|h~&n5#>Bfh2YDAo*MEiOz0X?sAoRovv3?fp;xq(7 zlK<}5gx#)^kF^RT2!Txm8Yu6t_Fg9boK#{I+TP-*X$Be@w9q(^+&rQu9wKt4ouB!MC1L5>3f z6`|S!L&)Y-+S934ZLD*GluJ3Z%X7$57bD#Q;Yx=0s6xGQ&3Tj2jv-o2=^3cbOGj^W z#E1iFlVX{=ylSE{9MgiKAMqSH-9e_OEn-3tF@GYW^5x_Buzx71g~+WQQ8IZi!s7YX zY`}!d0ijQN5#ilvcqbNGV;JM5a%U^K4J9Y5{hR~k+sfn+RD3dHrh*-sM??;aeCv97FKX;&|Sn}%$9|Gm)fkwY^*4H|lJ`Y_L8nkU&w8INw zHBEy}dSuYHZIPZ?`bzd_{|Br7ANq&e)iZka+|h~dl6gA;!gzJ} z$s1I3x`97d<^g^2nVGk&-|CM%+};1^))@Q?3_6j3nB8s>00000NkvXXu0mjfd#LF> delta 2026 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 N002ovPDHLkV1jQg&G`TT delta 1919 zcmV-_2Y~ps2Z9ff7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000LxNkl>~XH`G2$a&w?QyA?*N}Nf;;C z74c6f!A^Uuz044g=1V)k43H5gNPn{uWX3HePrQdq=Y&-l_3#}|Ajdz2oeI!e3;Whu zsWo5T!_`iq(KkWII|z^YARygZ`_I&!|n3ADX^J@Wp{xGPeKTLYkpqvtZG z&v>ZBYDHkyvcl#a^JIzl94+ktOcYrat8|7L0#-SJ9BT)nwPn;OyH8e8joMv|F`YEM zVX}`Uae7Rv;va!@s5hknD@{q8cSDn|Ij}go zw{9!#oW%;_JKPsRi1=)d)dsJWUTxcH^84p*gKnqqXXcISvK6>luSAQ;Y^sigZ*+o; z+-L9Wd4D`)#_-zSQDtmBo2jl>Mq+k+RI5Z7k^3yzer&s5<3uWTqmA)MVddW%V<-8n zeT);Lb$L;hk@nSVMsq}Je2ql$hyqyhk2ZG|Mw|fk>p+|OCh|++3(hM`eupNFSy+aI zS!gAjx%Tm_VwPQdrrk;0BLqaUg0Q-&<+tNl4r8RSSsZALV5EOe+R69)nTxy?ft+$X@Cz zVVW>cp7n&fEjn`P`63{xj{102zaINE@jK^$d^PYyZ-U-%Ytyo%&dO-kajf>JRzZC< z*nfH@YJ;B7)Iw;z^0TP`vJp!XQ$XoCWR-4>7r{y^R$pfG8Jl-u2l*O^AD9BXh?N7P zqoXI$%=tMZ@m`8T)xC8x(erxqy&YC6w%XkCgLMYB5LNID`3$L{hbR1jl2(u~>;VG$)3V(3D z@3UyF;qL>yA$nKAOJm+C;UuyOJc~Yu`F#M(!`PG{C+PQgZ0rgZu=4v8(XZ83SNAJ` z>bj2_z%ni>0?|aHhFUhv_OtBW?W7ra4!yz&wBvW&9{C#xN@{dl4!N zIM4QuQI+%HDGs`>oZI?`;LU#_IgB<9Mb1n_Nn%ljj%@OrW!A2Y?cR}kH?qgX*2I4g zw;aJ+fJc7jyd4p1r5MJR%yT^-+a_|l-AXWvTGd|)wO;;skuKX>KR;brkAHwUTIzNg zbvfw-(fU^3#mg>(;ajN_3U}2&X*?%C%L;WM5(@CfRr({kVg*H##leR=oJW`N)CmLof*>`kq zJ>LlVvW=+#+Sq6?2AK`l#G|4`F9MAb&A|elZg#&<=<_iZJWIak1Rq}tMFZ`Gcj91` zXO$B$g|8mZD;TqT=ejc#8MuQK&wxN{90?NfBWPrd}bj}Iu%5Wtage(!q|24O1%i`&-F$z z{dPdkC+*7Gq}ydTPtMOML1fcu@_%Xo27069qIbiaN7o=;TX+|dDXbtd~ z0(f}}Ex7kN5&bfv(41NoEJv^+*L%)Je%5I`oOXht?*p8Qd_A{CUgQiCk=-+!DaRir zU#|1i_2U~snaFt}_v<+$*_ZA57~c4!q%-3%>pQIge*hQ*&Q-amlWzb3002ovPDHLk FV1k!Tv0?xK diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_32.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_32.png index c9c169f2eb4b33cc403c054bc170d3880343f82c..13bc7f178730b0986fb9cb042015acb9344ceda5 100644 GIT binary patch delta 923 zcmV;M17!T{4y6Z>7=Hl(0002`twPcO00V4EL_t(|oGr?4Xd87Lz~RsDcb7}M)-{fG z>)hB5`)1Nv##Cg&W^gZtv%|uARm4dZI)uKdFMJ`2y?}~Nl)adU6Gu?H)|{iYIw)*w zuFQAJ8ex&@q)9VpOaCqXvnEY?_w|LoeR!CfOO-xzoIa7PlYgF=Sy5BkF8zq=fO)?$ zmN}(q2=TmB7u0!3K5qi$tcwE?hpX=6`W(V-&+7v5u!2=nxu447D2-q^u!aVTTRblb z>Jn}S9S4l8(+;W=;^-Qx!k6A4FdzY#lqFtx)B)7Ubt9ZLF*k1z^|Zrs3?jd1d+6?7 zB2EWLRiqN?>wl;1ILh;&xCsi3LQ09uc_Qh1BH^#*JKx;2P)C|>y-P6$nDWUNb|9JC zP8EQR*3I9ql704G8eBPjES<~4VLceM&-hy1 zJ=q4*7f$N-u(tulW8P)Rxop$J(aaJmkvR1vK$z1{5P!`8rSDz_3TyA{Vb~1f@$t?@ zAjo{Eee$;W%fY};02Z1(YojK);(R**w$>}V{UA1MwZ;MCuuu8OoqN^w@Q*#Db19J} zZS;TDTWv1(o{z#DggV6X^YWE$as%Yy#%1s(zYZL*?*1mcV)dZ*^5m~nhR3t4T z)$K-2Yz*Jki-`z;WT-)ntAy?us{@dj5o6=fxPR#Eu|;5GYuU14`-swW{!WmFa#$aS z=&f4)=EY`EWtKKv*!p^%9-UqVAb-yA*(^5d>8V*Ckil{CG}-g)dZwjML{#A)RlN2p zXLZjjbAYnOz6MFCtNLjAcfb#75A{)bNOkLdznuUM#x~BlSVK2FJ<Ix7!Zlx@$_Z?n{ZwdQEs&8Pnr?ZY@c72430~;wU z$vT)90ULPgjFNs2%t9>`A>45R>%If#RLg&3_l4oM?j)$4kKA0IZK5)r!KwgehyWOJ xDN=QY!33xW9(-xCwc`8_07mME=em>dFBIE;lWx{MNaz3n002ovPDHLkV1hfs&8`3d delta 1897 zcmV-v2bTDy2kZ`z7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000LbNkl2?ULIt2$V8@|5sLjw7L?)$AXaTv^&#r&Xy1Yw19KHKE@cWwbpxYe?I2S8*IBnWn$ z_&b>3v_28XYwLvrUTw*e-KRW@ zU5s#2e{Fq)!hcajPdvw43aBy?66Fy_;3wx>f`IEg_e1Y{bFF6;dr7?quoUOds|-#J z_bq9G%I52=I3JlmWq9LK?*Sq~U7fhMkb({hG3na-gV zJ*6k>6l9H6RU1?Tm3yKfMGk3ee`)~95!{JV?y{UK$$zQFs`D%LdXn>7!|S=;S`)RA zl%xVH3a)BH+{FM-bH22mRD`xhQh+Cj0(H6;1Q8=-a^8t_5S@40`6$dHP;-3rfRz%nYf6Wa`{;!_P!rDS(L#musjNtcFxRAW zBhKfk2}wsNb~v9y3uKW25MdI$xz*LPC(C+{IDcJZEq?Eb;J%Q2(|dpK0xH@hDNjGi zXj!^{!XCI2tuBg=(dLaYelvh3YzNSwLN+_^dorcy_vqf!`3ZKD4w*EMg3Gw7Hh{Kg zsH}>@$CK|l-@5l?ctJq{eH|QW5vAONwr_O3D9{tB<-&i#@fNiDP7DBTuvA6!d30=~ zLx0fLl62E_LNIlwI$5>KQyg#Qa{k%6#~}s)?;jCimHo2EFesx$S?g}cd&PHkz0tez zU&Fi#(`y~Iv4~Py4x@Qn(h(_?B-TQTDL$tfnRa}2z1GMtg-S1W_`eCQRpc*A=Dmng zma`Bx${G%Nu|xNVj7PzPPh#LzXhD9_hksUEMDJPA$`{I>d{2J%J%zNchZCv6I`tK6 zY7D1-7ho-ljL-JTT19S+vEUU-=-d-EfyQ`MGQ}=HbEfB9Bv?+pB+=HCK1+3lRb5Ma zJGC#g)kdJrNihHw=oNxhRE;2dVre>|KYR1FZYOKYD58O3t?x1buLC3ntlD7(+JEWv zx(+_x0@XFr2}p7xEV={H6f(xpzYVNVJah7;&cc%E1)KLAc~5{s>ZJJfju{ZCN-{@LEVRtRY<;hkCwRvunGt=>Ge z2H;pp9lIduB;D&{jDZ+NTLh_+qkj(bf^mgL(I7ybxubPkh30&*4P2!?F1VuVe_Cs) zfg73@l6M1ferv|>19&F^eMgYRE<HewKX9cwAtkAc5&r~<<`HDVckiQb<^|2g?^PfV85+waleIq$Gs~dd>Gk@h%{iIfy z>xgu2?w3Jcp~opul6M-&3lMD{a;o?mJK4@FvU%$sVc#*v-`@wQcp*fUIN|(Vg`(Hq zo^rkf?c~!y@MxdzPyMxUz8DwG9W0IA9R!uKxvp06OV@vb^AWx0IDXJS{&Og@aVkt3 z^Q4x@gIDa%YxL!iSHxw3`hSS)BeDF?pNNqPBF+rfVqRPLL~xekh1a|%=^qJ*3L9wc z9%WlZ2Y&si0p@3~5ajos+5vc{!g^*oA6b{OM+A~>r%Y>{Crk3_M-4zHSwUbiz{w!U zG|qBF#(xf$4bfsx(oefy ze1fD1PY>FHccuX(5Rg-2wNnx+RI`C(JA_@mbgW(9{!XArjn-zZ^l%cq`qnCOtvc7n z^3U3pBVr5550(R^IT7dg-amgIK%%us-s2Sdq=K+D{rhoAZ~l1&ULjXyqlojz81H`} zL{c~lYd+Gp>;z3$^M7ahY}zAo@}tbK0xkVSo!@)^`yxnk$g1*I8%67jldw*=M6H>t zR&}pHtKzNuOAK%V{3PBDY6otY$kmb))rab}iNvGTy1bl6+$g=Kh&!zDmPB{II z0qA1fFsE@c2(*-EoqUfG5C-vdI^py;2G9(0M{d3g*<3ou^I~hZ1~~2f9|q8rSuto9 zch>_EnymqDWdKQ;72H)=BA9wvdyJg?2xEA73h)RNB900000NkvXXu0mjfhEa|{ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_33.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_33.png index 0e939aa2d4e5885feb69215c7a2bef331e068041..6cb3f7c8bfd006649160864e0fdf75b9263ec0c8 100644 GIT binary patch delta 956 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 WO2lk<^{oH^00{s|MNUMnLSTYEj<5Ux diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_34.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_34.png index d0f3a5383d809824126230e478a9e2ad74da83ff..0b0d3e5b55171912c9398ccb60399c510ed46d8f 100644 GIT binary patch delta 937 zcmV;a16KTl53>i57=Hl(0002`twPcO00VkSL_t(|oGr?4NL_Utfbr+|z32Yfbn`Zp zT8TTc=%3rN(P$CPGkY;22N&{~tgSAi!C*xaEP@#xY3xmuz3Igor4;Hsr=hLAScu+Z zzNqNM?r1_Z(BqA*(3wY3u3qmwzh128<%frvdAIn5ZFg%uZGY!_|Gukc#4P@RYJ&y8 zE}uRk)I@lmn}sTm?f_<%qNS%@S8H8zb6fP|@;RE@o|gsf=|lxl4tmkHvygBj#4>=e z!DFk%avI{V8kP^SX(tYP(;&JbDK<5iyvq=lL1D12t-@X#2+}D)Fv?RTy(>TnAm+%O z2I6)b_sh%p34hZ^XMT*LNMDFd}vq~H#YH%pE8V_nT1gxl=hbn z52-S#e}9iy%Sy!paid%ZpH)`3ZJ2=gxK9jsL|wl}PtpV=l?*p%RqMkktVHWCZC99q10ECk!988I?&i{i0hMIIBG^wa~U%7tb z?w7GtdIH~(#hyfe`E9jRkwQ(X9^=eHm4#K7`hQqD+<389%k;}dXJdS@!UYp*uPS5S z-;Pd<_dMFVnkRW{i=6$so^T`J@I?o$s`c#BjS@{cy=Kcv*bk}D$933Tvw6Km7j=1Kwx(oca?`eL zWIrK=wEWb|U_wvZD0^`nNQdU_2lYTd7=>!bf%hwvFDBM(FlP1uG#k63W38w9!4NE< z39~eK|A;gMW;K+&O?wm!FbRnntnA%avLZpC6CX-J>Er$?&-4BRVfu|DAZ7|E00000 LNkvXXu0mjfd+Eu~ delta 1920 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 T9HSKC00000NkvXXu0mjfGHBM* delta 1935 zcmV;A2XOei2ayku7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000L=Nkl1(URjh2$WO)|6le!+-i;`4KxVZp1Q6|Ib%x*31}e69M^SSV~lYe$N2O12m0Rp zJA3tH&U<5wlI)5OJFucxq~koFc}CGVYm9z=9LG3w+x$-mdw*rI%jkC)e^vigM27c} zc7V(xj1%mN_$QcPhd$mJt{8qI?EovVHhqWD-^>JAWDFmT{pkGLh3w{J>gaX?DgQ2X z7~j(Qx-M!ivuBq9c2lQS5dKE`myl~|24Wd$)nTRcdu!d60$3x+3RTYgElyB196OI4 zH(5e6pgx21iGK)TARXbiI6nmlH@?ci@f2ALEY$L`Ic)Sl`$0 zb?%ms&aiSA(xKjz2Hpy<8#v_vG)YgiA}A_0c6k3P1An|VDtANL}|lreK}p7$=yr82LNSEjo|RwWh4IOK3#@C@*)d&B(LTf!Fy+ zr;+z|ppuHKko%#&4%P}q)xI99smgm^1#@V~QJ9n^b=?8I?v6FBbA}%UTZf5qxt=G- zT7N~Imt(ExJHW6&H(Oco9Js>?Ed8MaAP;0KZnU7cF|QTOB9jWVj#_Ut=1yvsI&{j^ z^35-Um?-t~)k;KLhTIW}RyX45a~DG~t#B1n#z)_fSN)QTS?!aT7PJCcdd=kdXbcOh z_0ne|$6D7e%yZT+7E+(jyy1DdzUNh}x_@$x3Px{}ojFlEa<#2PhM)I4Tigm5htRrz zJjK0*q79--x*7?Hg(6v~2$i1$SbNgh-(bONRjH@^*JB5Yp0LU5H1qlnc^6IH$J`fTcw>GA0Zmtc%P2EhP`%73lu z97UmLe8w0a1L*X^w5ri_Er(&KIqoe^z#9L$F8kX+mI*v~^q)CcOL?XaL59%=?qrU; z3O)u*9S468;1zZ3Vv<3!#_xpgO5}Y{m&_Sh5r-VlIwv-2J!B$(KL6?h7@GE~TDck2 z4rYztNvXP%m_TVu&RMM+vfV@ljDPVF8-A+AStdoSMm{ne>lkc=BL=iO7bFKowv@ZG zHeij9^f)WVmjW%CTZw#&HnWGwv~N?cS1VME|3onu86Uy?JwO!U*7F@XzjC0=cvSRS zwE~)po_82Oa=gsgNT0vH4D#ARRxqN^3@kQ@T2F5-vle=mZSA@vKcaTFt$%f&|9j1U z8t5rpHU6B-Y{D`+lE*kfG&f2O%o$a>0H%A%1gOT(zlUdyZ_#|G@jZE+Eu~i|Y9^=} zzltdGt@CFC_9q2cMrQ=>ihS#te(oVk1)1k}8{g7rLbt1oKHA3S&%*U$S};14UD4Pf zcLkP{yv6uT8#u@5K>z5Cd4E+u5;mW$7^#!a5xOe#jEor^sDNDsYa^`>V)?&*5P~LH z&$}XixA7TNjmysIIIF1bjC8T;yN@1#iV3TFUELhYVeGtYL^B4fRPl_g?D?QzMEbFv zht%nd0rUV}=|)9T6;WH|K}O)6IruKfV2p}W4_1r$#Q+|?>j|rcpMN&moS&uD>YP>R z^}PL8^om+snE(uU?U96?|q5U=?C)hrn(u zGX4spl;E+|>b~T4MK-d7XFxP3WBlVd{{B6H-jr6L1D)LiDvGkT!Ro%WAy(G#7%{re z_Zj0~*Jb}6U{_n#C4bjTN!k&lk@TypJ!1^i1B7tPUgT%w-+BG|?_le1OMl@mbjezE1Qv(^=G9{Y z4|f~?hXE{QSah*Kr$c#;P|e4(^QbZbv&JI~fRtemCOfCPRt3`$ZXytT0G+?hc?@Nbd_7U82eWPt*Ya03|sh VyTVD%PDHLkV1ldYu$=$^ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_37.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_37.png index 4935b75a6f35f2c11093d8cee1a0e9991e2a1bf7..a28bd7bd9ca4a0c44063ab570542fabe30679034 100644 GIT binary patch delta 954 zcmV;r14aCp55xzM7=Hl(0002`twPcO00WCjL_t(|oGr?2XjOF_!13?@ch9|d)3x1V ziyqcGVwU)jO9<>m^STHvjaKcfQA}1adZEG!g+S$=Euj~Y`lc5ls)0G#&Tf`#vpkNi?LM7K2x3bTIQ zXlkoa6XCi}CoFf#1Tb+uy1vG7wAKa3tJL?)Q8eSO+X>p$i87*W^xu}%2?-}c(gqMV zxGYO^BL(s8M%stim>maQG>Ar|f}-Y_`w@gCP#7%fbZ)%`1gQ!@FiPK&bUy|{05Q+} z(Lmg42M zeUoNxhtU#sdv1_F6ioL5iIQZKqYE#l604qT0>CsLCVzS1r=0p_?!Xm@Ju)m=SlE4w z{lv55aIFCmpI~jM(yIoWUz=kEznE4-HG=#D+Gg67zrA zvsoaNwtq*rWI0^s_BYcvl!^u7MBWa&I8M220^;L5aH>7(-7v6wz7a?&`4IgQ#jt9d zU*l=LsH82(eI4~2|6Iw&8(*mgk#qaYdx7aS=R+UrYo$}$)7Vh+%*z36s!*9&Wo?J~ z!RiZ_^G{B1>kKHX>8@E^MfbL94eCE zIILytu?U?Q>{;=6Gt_>nWX7*2%m-{aordJEmBzmI!~C8k&D_%|s$2Wz+*CJJ2Y}Tv zpHf&SQxgHBU~($~cbK!XcmnzW(}>c>L-sz|wbR!@fmE0P-J=GiX^5yXZi8ef+@-ph z+JC6SMeSW5DG(00-&r!!&2JT$K%YJD^jowx>!Q|ICyx|p^z?$o7tMN6m-3S}1t;qj zW*nYx)>=nR94Qzr-k4>nFW(vjQlUAXO;le4<9%h@@LHMDE4tqWBex7-vvDu)CKfC( zCf22aM$CU-*wNJohG+=PDu_{ cy{ixY0|1|+!{000asU7T07*qoM6N<$g2(*XtN;K2 delta 1942 zcmV;H2Wj}k2bd3#7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000L{Nkl3?T+I(3`>i?|10PIjCVC!Qle}*NpS=Q$t1QUoBHy!d-poe^E{5@c)ec7&+Q-h zXXE$kHIg}=9mg>xd&Y(xSg|X!aqQ37qih@-Q%)q(yt(Y)&5mv z#78JQKt+k-1iK>sj!dw_o@ftOh#x3BzzW!+uOR)&nV^aa@!8n7ufJWWF3y&YZYQwv zuR;g;%;xhvrMb$Q!wj%Hb+U%=8`Hmq)#Wpgnvqr=);fQr>#`D{l3+VjJMUYZV3s&_ zo;q%137-M|9)Eo9h!6$V5x&I?AIQ0i_aBY02l=n1;&OA)w0%tgI{WMDma0#{n`@Z5{T{ z{k^Z<7SC$b32nvEUazkiwmo*I?AVL5rDDE4(6y^pR# zxL4|bIyQeL1N0tP}3_*x7{0m$I);{_SjjPn62R-f*A4D8tb#jj?KG+ z{LXbSSt~kxc1PTN&_e`Y?`JmErrvLLf*pk0#z+U~2HH;mfIyOsjsuff=HcHF>9ooZ4#w^A@ z`yUn7p7(eVorV3gsAKh=bF_igx;oSBS$}<&w3TBPlaB)9%D*2d4&iNoM}|j=vIU|} znng^cLs>)y>y%1^Yi*c`tgA9X6-Yn)G%#}p)mgeCA&R(cPBpuD(zDZ!ovYwVCr}#k zsSIERMno`~m5$#>FDoxzb~SpD-e?a{U-TrXr?4~wpj3{ID~RZh48WX`+1E{kFMkQ_ z)DV@ItD%yAo+tk_P|XApGV&F&q8QAk5y~P) zk(ZIGHlm2s%#Q3Gl981Kwohu*MyN#oc>hlikTpD3c-EYuhKk9&0<5khGHsuMG6s{6 zo?WqCg?v<|-m|r{S|Vo2zpAE2r+=MskD?bfq~o2JwF@fwXbtJNf+MBuh=exM8(IM} zT;0&9gdqEdE>FIni%uY3_SLmNBOlH=iG@mpM;*F1sUloel0w60)K`48RAj& zvo79851Xs#Vqj5=?q}p@^H5Xj^;QDZ>-qD~!z<(?gS_C5+NbEZHn4sqJ4$AA(YQ*P zT0wQ~mFE0B&%Y&rk**5tXnZQp)On=L9E2Tb?U<{;?1=gdKi_gnzZUM5q0Sejr!MkW z>z^H`WC8X46UkSOfn%Hx^nZ^hJ!*=WuLSW?}n`6=GC@M$Z9+c&OeIW!* zVDDKrm_cVcN9c%DFQX!}BRE*kHSACtKI8;%KL9lotP}2P^y~ufK-EDMTUm;pk)M&T z%7Pid4?t->$^cz;ze0fG@gC~2NR_d(_S;}oPB09JJD33wxy%VN!+$D^w1)a;*}~M+ zw+p@jMwqcJJNl}92ukq!)8+P9i8}W=Bmg?oxR_87L2Unqdfqt z!_1Hw`0|4Ev1b{sb^@>4UOlR%&C7}iL~|HHdun&nmz9JlTdg{F zCZkf?*t6_9?knV<=YPq+53s8%@A`WIB73Gc=x}W1+6m@#Rq|;D@Qdq2mrT@?*mu?u z?1uTDu4dNPXZCxC9##rwGQea1hY<>*TIlZ?Sm~?Upj@k%CAB33C?0!f^JQ(Y@KMiD zDHDDk>(Hafua=}M$Uo2X_s78&na4gUYcNN=!Z|xLz*VIG%6|Y>xi_Y=0e8cnGG^vy zutcKTZ^z8^09TWLo+tlL#8m6&D!OE?I)Vc02o`(VCCJO0jjXIafQ%3`w6Do*M3C0#cT$+ cqX+m86u~jeWDfxHjsO4v07*qoM6N<$f`fd{cK`qY diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_38.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_38.png index ccf5bdf09e3120f0db853fc2fbcb147a03915ee3..ec5731155475ce83f90d0cb602d5a8f9205e0d7a 100644 GIT binary patch delta 818 zcmV-21I_%C4ZQ}C7=Hl(0002`twPcO00RU`L_t(|oQ0B4Xk29!#ed)TzGQ|b<2<37 zritS-{x4_;G%z)R#8n3d#2TWDb}utt~(r+5&`wpxnl+ zVG~rWCY+#R71W*Cj#I<7|_Tr_qcWVBI-^#j_;^+UEmvv&xLj_s#kth{g9x4caYt@g5 z2yQ{{JQQKvN`IPg;kR}as1s3gz(cERm&2UwAmMxRU=561P+`tPLydiH9>$a; z&VZ0y|5c)05nC@4=0x;8$45;dFZX|?0JPB_yuPG+OBCXDr3~VNn)DNg{sKUc7{EF5 z)G01Dg6VSr&nO(z2$YS0-Qs5UJe;`i19jGn-zS4{ zZnf)XZ`!E^PxOC%5d+--8Y*({@(Ks2{0{wS9Co{dcp5&!<~vv0fnWXm`qE6-xBzw6 z9B_H0#XT~8J8ik0fPTsIYFf%bwsGlj^A~2-m<6C0N7&f{b#qK2A7G*^D{5@TN~te7 zp9TGci+?uCv2M%b6af~>^7C%;u9@NkI`j1&! zOau&i_ywTeIF`qh9oQHO+Afup zoX#ww`mUsEH~XHx1R!(y!1RA}k|!s<)uLQ|^V^{9t~xi-x>G$|{0AU7d1aOA0|^5P wc`E>;fz3?`Yf1_tB7qVy*kHBFk^(^SA0BH}skys2L;wH)07*qoM6N<$f?P$36951J delta 1679 zcmV;A25|Yk29pht7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000I>NklYK&e4!#R zT3AG@*cH`&m49+0A+|#K^t@FVR?Ao7tB)~;XPpR>64MrQlJcUtE{cqYAlF;8B8ERB z-?U7c@G!_y4#H#=bJG46pVcWQ$`i`ZPV$9n0PO~}9HlX|+QTzILTq$cGs_Dq-wNk4 zQ$S=$!GEU=Yd{R;>W+c$9nHa#Trw%flW#>$HO82GAAi8ASh+wXM8di!#Ofk5s(jCD z>3R=Rdl;D;AoLG9sW*an8G~%q>pAoC{JipSSrBG+>RnZ!veLlTb+BXuWXWHQks41XA z5VOz(S$~lSTa$|}EzO{g5#j6V0$0LY1VFLM^QCwjCbdCt^DRkMvO9n%1;;-x}yk%5a9 zlD%;44V+NAo?tTytSG_}I@&!f`NNRj`{|QmtP03PPWqj%*{z^MWGk)b1@SWyIuNhd zX5mQ1oNcwdhbY?f3Jbp}k4M0D9G(MMLX3oHYhP(?#879wb(Qj~@_i-Bo&`j_%QGT+ zY=7-sDC{fJXkcvKMb)p znVAW2ju$LTA*{k@cwJcWK+S=YIvi0S|2+zB+I20?F9Xd)EvVy>KcIOS_#(VuPP#G(SIXq z^x4R<3tppOEe-I0&j2a1tbILCL5x=G`L*u|c2IaG^0fA^3!nse8mNX8HtEMQIzAkt zo`)EyG#KKvwePzln?~F&U3IVwTf3p1Zwo+JAqd! zeP#%PMggg&iF&?wl%Vk@4UDpF911A{_TGQmKxy&HHjwT`Tf$jbU4j(>G=KiQh>?v1 z)*uR{fu;{D&7a-}pvS92KQ)9^^sNYhMuuo4up-oPKI3rQ04=_(R{w1dz?rH9LbK8c zv^1c7myQQ!A_3a+MvH3cdP~`21hAC9ItplEzcM9onrJsreOv*_NTWv3|MD1De%3g& zqQ?uN)_GoC^R?XDHDOdi%75$LeQ1=Mcl*{+guIGY0 zKAzEf!l1k$p6#8F)*KPX%PO7A;Zy_AlU#6=S#2E(?OIFeS(^M@m4D}0PN3BQ-t|`P zApJJW?-!!(Apwbq`fF;*%+6A8TQJ>~Ozoi*0p`}zM0MuchQU=$vWsDXL> z^7>(SAhkfGUa)Zb+dxG5Gm1xn-dvQID|oK}a_?2T2>o^Nl>)T97UhFp`&+y}f{J_k Z1M8XONu2@@_5c6?00>D%PDHLkV1lspE&2ce diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_39.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_39.png index d276c21233c76a9226e90ffb3065d2f9bfaa23af..dba19aeeb6dd9d9a42733537f65105266ca1e2cc 100644 GIT binary patch delta 887 zcmV--1Bm?o41x!c7=Hl(0002`twPcO00T)$L_t(|oIQ|FY!qc2hM(`-ue;k)+HGT^ zhsti%7-EIigNaq7gJ~O$2at4XwK3pD6VXI2aL|Manux?m#E>WlsKIF25z#~sQtM7q zBPU`j7L|7G1pjmkg-+SFyLD&h=b_^5&6_t*p1i7Scy)4F^?xCsA-zW~?Kk7ivOm&& zs5XaQ6=0TXoQqBkR3>eZ45q4Dr`)<7)VN5GDr2yQM+?hPu~|vV{Fq_9dGq^McN25D z_De#gw6|1K|Fr{E+a7DCqpUls>ajr&DsHxAABd^Pdhd@5uxzimS0JH8HU2re9s0R3 z()!$_r?r2x)_?QhnB86ciMuvw8IU*32XM_jbYeq@()_?s>?=5Cx6cLTg@R5fXZF=| zuqWHKoxt?r<1=?97iEVlTYy*0M+~Utwf`f8Xpoj3K_6Snllvunoc@Ujz}4s7XkFoW*e&}j&ZsCxMvaD2pW=}vFQP- zhgzZb$l2=M+WiDTw*5MUfiR=(L4YvYtb8@0k{0$;Gm%JXvYN}u5Qw&)1t?1^9%&J@ z>pB2USO8!)-Twdp>d`Sg3-raa4nQh;%Uhdd&wtHCA`7KE56na&BKql1^9KNfml6Pd z`f$lw`_`-gX!pY~14$feTLARu_XYq8VgUgCO}V^CDaw-&hjgR|j(Y%VNahjwLd>ow zPX7+(mMGkDM)D#R$;)aaGF#!xbuubak!d<3pV^A;OaWDkCOIV{?}Ykl3s5?Gi-5lL z5O5G~BuR7Jr{{L<20+RHDuhH}><5V;hSn>5(>*QP^#QbFw!rE?p!?TEJ(N-hQE~k; zc))H*$dXEjy66DVfm#bX3+mhor2qh{1|1WD_R#`%G7sztWkB3TdZu3hFaQ9?7+~S`dV#if-p3eY z!0Yw;JTu>G*SxRY$jaq;ox0)pS=aErNyp;BtpxyhV`7{EF@MGw9|DrGr47*aryC#3 z*x>|~@=aLw{BfrY{ zSWbZd^cvNX=m41TiX&KMVVANZ=!|?!pCYlmEm0!~VFp)|}h$tBgy#qTVzSFs> z&Nv-jv`e($F@Fec@T7Z`=1Cc#JL0)unAbB-?_Eo6a!~@+jv%e$?#;|`SM8rNbVaEU%WQ{eLP)X2wsrTg{p$LMebntA>>0A0Al5i<0u&=v6>xmOI% zHF}&J+UGF_T$+KU#?31jw;|54JkHSN2$SwE<6HaAW`7T>jNpA@USbB|gsIF58ZDYm zck~3E#@CEmkvXzpdjM{cbgi;s)ObkFPyyP1WR0&GUNd@hADYg+>7P9XV0eXEbp&ci zt#j^j0xC9hLGQMXo-Czwr_cF#9 zk}zD2vwxUO;+bb8C3))RPAA~x=j4@S>TGH``kdkC`xpHC`v6slID!==7Nm?2dA`#4 zmP2dTtKoKn(JYN88${A$S6Qeseui%qB659|fHDaLXw4nBMiWU|r9q(vytL01XmtSUaoI?Y^5i0z%HlOXl>>iX>7Ok=yU^wUE61V= zWq)YKw48vhpU>bQj&7Bl91qXE49qWsGRPXgLk?<_tHT*t_ol9e;@9np{Z;vY#Kt?BEI;4b3>Fc|=Ep8Nb%SjR%nfOni?ypEJ{IBqYO zcQWRAeG<56mj+f9N4^Ml_5)%D$c#--PyZ9#K*)0%>X2avU2RV#8Q?^4$ET>w)qi{Q zl+-Go(rkm`%0~Rj0}$`Iof;(C{AI8sa5&pY{FXAniSWvX>pf>=4;{^MtmiOK>V(zM zWJ~n`oS-Myf2+1@GmOq!EoGZ(J{o>114QMLj)n8RhhC*F?$Bxa6aY~F)nq5MIe_Qc zU&VzLL#KJ3$p2;KNc{moU2}MMHh+C%0l4FmWc=Od<_cuW18x-Y53b=)(g8)N2beg$ z7x2IKVP+)?>RqfJ;Gg^&txsn`Y7EKj1Pc*BS<|Gi{I|69!_Y6;Vm5U6YYG<(ef>R7XaRJEbA43}oNq^6rjBclV ziY_hy-namI4J@1<%K9If$H`pfeDa|)mf zo@V@LO+T?o-HES%8AMb6(~O@*r4vMkLml5EMEPEvVKGrILqr9Cs8ynq^|xheMR`Xz74EKw=;Qap@#;5-k51K6EC>+ z9tWnqN|vwtyMVi+KZ>jqXag~ft}H`OVcNP1o2VI}lF=Qg$OIN`DRK)$=tQnt@Ofr9ti#G{a7k;b5$NkQq@16rZB!6AYHZ%`F32j%@zqtRA z{D(lKBOO@-L_|b@Bo2>)vRjf)c$hko?!6F^`$f4u`(ZLBT)=^cgH&p}isWA)Sq?JW z#O89xI)fK;+l3E`Tw9oo%DqV_7D6WESpxQ2n8A_1mgI_jblF0mi0B+_beNs4HrX2i zSPH-FDah>x#ecXlm#2OX=cS%TiG?xX;NpeHGOCp7Rz&2E7WsZ>|L7TP!w_fqaqu3RPzKlZGecPbWfkzD21eY2I2ROjKmT=N5k-#_wGW^chA)UH{Sm3 z+UfX{Y#vmk8D@OB6yyM#(Fsov3{NG;@sB%Jl`}w-Fn>MqaS6y|Xu2?|gnYO<35`x%*|DqDd`pB<)hBK- z>H!cb56$io<4wn%d~(i`RnAJ#$Q=Wa%J?3y3V&JiYJX8gWVLbkiZbq{vf;Vov|SeW z&wX|oPLee*pO?D4Gb|!EjUMNodF>_tC#io0_iq|yS~bH$&0pWC_XnrIH4NIS8A9&W z5-kJD(5hwq9T(H1ZaWLO25NsA8?8?Q5Gn($nqhMB>-k~=YHFVaXy(2-1i-1SqnTgm i1s$$zUG!G)ApQXs1!yxhX~>5F0000v>NA delta 1613 zcmV-T2D16D2GR_W7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000IANkl5g#QfFfa8F$6monB`c>stcm;adX!IKB?>$A58*Nd>lg6UgpgeRJ5o zKRKZJ8VK-TDHS7RXy837oS@^JcVmhJ0PvBaDJr_&qT_V}%Gb-2^4S&BN&w3YDT^w) zYjA{VSx!J@@kaEg7$4xqCUA_=t~}15mXS24w0P`pd;oxRCULJqkK^8sW~HqRt_R1;1i7x(AWe@%IpADI%fo~r_h{0Di4t!EKf>3v1bmt>j+P4CNY0a_~crr79}($nB^sXsbCmN4T+Q~?)+OXmPm z6K7=wE-IxO9ckb+2dJtg`rcy}AIq7iz6+=}OV+IdujQUw3dm-FJ21;krzcHiQ)1=X zr~Mvr3V$o(+=X{33om~Zno&;ocob&<&v0p`G9x`jhUVR9`=iimEy8Q*K74iK=t|Em zxjdMWEoNn)jGo)x25NVE>8i!8mFP+|tn%}&HN6|zAUh=mMadNc;R8p!}D6Vm%`@D2$?{LwrIC*v=*?*CBygVbksElk0sAdI8C@Y;yJfn*3 zbc85BFFKrsmchtv?OMw^K=vTk{;YAO0gzWVdYkC(3$iyS4zq$m;@vh1zL>3!0!+s< zIO6#3FbKlv)brVO;Jb`}?YEk~$ZR3nK(2I{ZateBAo}7XB2aX%Mb|qN>X?3FzSf@3 zOn=uMWNH&=ZJznUWG3(cNn2xqYcj2CZx&W#O?i2p?kNLA1~eSA4u#V7(Q9YKDLt8> zLZ|b}?2Z1Y49D*t`E{xXRPh>(Y&P*aSCbJ=pM%2Xn(0TWF6DK=z7WE*P83M>`iO7@d3!Y0IhN0 zh;xebC{xQ4S(>YH$xQXcHHFkMxP25Wj1NFEfM$qniuE8e{pv(E`*Hi|AW5Q)vx08XxBY^Cs;wCHHMs1SVpc6nI3-+fIq46El04t`4b%h8<1=AtbLWa z2S+FC2tU-*vc|`a4RtE)@l}t#8`SV#J!$kRGE{Xc_5hCs%E7oMNE2Gxw?40`7Wls+d6rpxi$8QPgV z4R=>yu=WA){}VA0qg&3v3B?_HXGicF9)Gv8anuH+GiVtB zA2xz$MzI=WPL`^S8D#Y>z6;0-K|edo20&iXnKN;FG@ew>?o1< z67V|icka0c&t6VG?t3;9bbkjC+XGZ0G21&t4u_S=)xqmI?H4K$Nb5PS>r{R!ANQTg zYw?cgXL$zb&JY*6%7ms^uft+vTj$aupZh-J+)Fb+Btt}y@qErmT!!#Eh-7>z^I4G} z*+27B((9BA(48Tw&S)9`l8L74sQgmoTl-h*`zZrhhn<}vJfGE!phg+~T8o{VIMcg zTA!KnwGRHf&42gdr2E*dpK05srB9BT58%4@)~O8xD9v{a)m(s+?)Do;qlJP_DLZ%Y z8#s{b+$&krOF+OsvzLDodx%GEXY4EGM4R1_qP+`Kl^-qaN8Vl<910^&NX@5Y7ppgRD458VdcK{w--Gu_sXKXtmnEoGt zA&l;`0e?VCcM-_q=+7r(0&x5B4x-b_432`sV=0Czo50L6Muy zf5;(`ffnt33Q&3T=*R3q1~SG~0Mhy5DNy=Ic5M+Wdpn75u;jdaB2xNg^AVYriiq|+ z3q*sbKQ{(K^`P}NE^@&Uz?0*4-%+BKLRVOp!Wp;+8U+Q>!>>YQWeyP zloVAU^$fP%6ZQ|0N1QK}_SidvD^L`2G+A|fLH11F(>ebs}rkN^Mx M07*qoM6N<$f;sQ2>Hq)$ delta 1721 zcmV;q21faT2fYoD7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000JWNkl36PvEO#sKA z?tE%vMG$1#H(>dX!-Y300zrz-Q=L!kTd~v21gmzo=3{UU9|1sxX9NP3H?F%g$3kW1 zXE~qR+1kH#jjoXx095cwAXsJLsl|$*GV`f?M0Bn=R+6ukUo!xxkjy}cEHX9v2|Stc zmBEc`#;xIvU4Nnlk3+D*lb)f>lNg{nOm3pUxHM>(Nh95eUdU9|3>^p9q8*d0D8+c#qvH z4(A#@&JOK;@4elcgQdpJYZx~nF0eeoP!$M6?o-aU=6^lQ9#$El^Q5|7?f;|Th=M3J zTML4+aZ#V>2`ZgG>r~BFNhjA=X?n#HzzN5DnGK_+L)s-|0Q-+w=WC9~XI#)r;6AI( z#q<76cVieJy1289AT5L^i?W%Z!ugVuBmIz+(G-$APXN9;c{933YHL0_@Pfy^C)C4Z$XWI5mJVi>7%LJ!O(lgWOa(Ju>q?GKz7#r;?xMmR>#fbAQ{hm3|K#sCOHA({j7d`6y zS)EcAdxHSSOLooJ>7i_C$0I#k38u0VutIwo*?|tlAk@l2rd`@jVTN&V?CN@56;w3q z{0cjeevyLd7|*T*183E)r-6EJPvfI?wtt$U=mJ#-jJ8$NfX!F7O;*!M$F6|Wb7?d} z>nZ+7IHkE6;4++ZrdIo-674v?QVMGRqT)z>xEgbhaNPWYJh%#IX15iaL)BnKg>D}u7f40xE zWK(#X+bIU{2;L2D%Zm1orcMGLB%yqd?QZ-m%ggBfFr?+MkJwP68VwPv)OA84Xoi)`;BGoZlK@fYv_0BK2(fPGW#v;La2% zuy@Ht3`m5}{hH$)UnXjF!aeL;cvTjDt z?jW%2&2AtOH#H`b`DplQS#BYkg^|FDoJ3l(kx4W3QhDqy0EPb2c>o8EIc65M>Oe{x z7u7q)URFkXw}jsat(SQUyMND7-u`6}Qqng%KiUUm_a`1&AIMz4S-m$pmJ0Z#ny*1B zYZY~0!%QHq>iug1hXI)J98TH7RAY9Iw8NKVWU=Y0-Wwli&OgbCXy2-ByUzx8;ciWD z_y&+AcENK1wZoaH)7s}}^-`;P&67av4|Y3W(w|{tcHrzhWb(rGZGT{E`<>sKZ(`Y9 zz4wrY>R#=SJoeMitmt)p7m$tWVDdCW9vRyEs{K1xcBOF{Yp60nwz4NN8wB3qw@ywY z`Xcu&d!l;ZejngzCa6XR6U^$JLF81D^UaLjx0ApMr|%A+$O+ku?A=GXt6=}@So-=~ zv!9|e2(mEqokT_evNC@p>KB}jsG3tI3(VNKs$cvoVZW07Phj^tt?2&`-_M@DfiX(a P00000NkvXXu0mjfo6k_& diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_41.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_41.png index 529f6cdd4554f19c211e1c06ee28370e31309452..f614ecd7dac4eda3bafc3a0ad262dc040a03eb67 100644 GIT binary patch delta 871 zcmV-t1DO2w4Dtq$7=Hl(0002`twPcO00TKmL_t(|oK28TXk29!hM(`7FEf)SHP=9~ zi#D0mwuoAdqENAPu0O3skSffLfhxw8i=YHWTd9~2TquaBm4ZK1QxHvaTZ5QVG{(6h z;6jmxmc&I2z0^XcX*#)WCds68XO4?$!Do5S%Xyo8AI3&A6Zb`xh*GEB-}DDN!w##`Z%O z#nFxzrvk0R>wk?w07tzim(H%*` zAX88Mv79lVpUppFn?af$THMkvGb*3xwV^swCt@K8@s1u&+& z^FtzsmVbSPYaan=bE@J1Wb)&o`&A9cc)UWGq0vsZvvvuz?^}S|KLHKtz<4|ZfIy=J z#XGhCU6}w9c0d`3Guk@2qjV8|CPOemM&%ZGKR#d_DG}jCJtbO517u?8~`u?0LB>L;W!Sk#^Q5| zF$NsR@p%V7Tlb>ZZe;C>TybqAecnC#4CQz_q_F@1Clw|+kbh!~@e!aoTblqMzq|9P zjU7QyX&=J#pM;a&=m-QYI(KzGwQt4FC=;yO2@qp&34a2B3a3*10H~14K$ux%YV;krbH{fE zH(xVp4KH3LdVh#Ggco?)GcI!{2I$`L(q_Q>nV^r3XhYYI z*X9w~sntL`FaDr95V$-#jxz;KA8+0Hbgq295&aY$fxwyPPXO?NcLYL4UKP4_e8lb* zhf9T?WQXGY18pws!5Q!AJw3$X@}25I*y3r0(a77P{O^+(qEmg6m_&(6bI^CwIzuh9HG=m(U0iSHtOi2`?R(CT%%vNm<8dxy zjG-AL<$pL&2@21=qb*V-Z{8UMlKqmsnoXTWtt4M^Jbpgl-`@wQ!b~7|yM)V$GC~y9 z&i4Y^x?hcO5R7JPR?`BP)s+^ioNooQXa6cZyQF{!e;HI|)XI3N=)?-1-seu!s$s3L z>~Ov{C;GF3nP9?s{Ye3q5m8ECea{;2Et1CwU4OJc>wN3P!)1H#X>u$E_{h^zK$e=K zLEurjhS_nuIp0eW5jiupmByMMSx{UAMh&uz(qNrdBI9>(eq{b3#|2o@s{Zk_+X<`y zDqN+@=qW+dmvO!}m)Ut(&gZhIExeYguGw!1fJknW5M5x+@zV2I=SPFio5#$Yc@T8s zwtrIqUHk|%XL`C&50xX?Vg&&o&uz*gT31;?$mh3;RtE4YPz@^!EwKToSA0&#dGudJ z{Zaezv$YW_0^#hUm?xai^-Fn`JCEmBZog!o^?Y~mpt&N2&usK%onH-3>r!PMK?Nga zQCSN}^S&YlP=;zUMt28{RbX+((B8M6(|`^fS$wrX@BIji7y6f&o@ZBDDFn>3K?CwW4mC{vpA3$Y*nd=+CZIzlvcQRP_@qe4b z^3k7DK$a1H4IOivO{voRQFz5IBE*L^lIS0=)-mLb&VQN(&<23Hvw9~^iT?3w<@~ofpW|u! z`7!V*d&J)di0phyS5lyOJ@%&<}|1*eFf3!e+>jHY`@~ljN7_C>XT~_ZUIg|>u3d9|qKU)V_<2&=dgiI~4s`pa_ zq5)ct=L&apeijwqbMThBmw%JB?&>U7^`87eq{lyN>@Nk&ui*l)b3MgQPOP?V^{C3< zr@K)bk9bnA+X<|qsw!wj8@<0vx9=(aGkQbc1|ptbR7-zFZKBQD8t=XD!E2*Obg$?Q zGr-f%2Z%*>w6nLWyQ`JVPhr-$3V%#7Koz=!DN+qbWJGjmEU>C))@tso-ml*W_@!n~ zHV7&LKl|=XQ%bTkqxY*5_$$sw%yh@H^1Ec;1@TYER^sUZ>JEY`WLnY{0qFk8n78hJ vii(=RlU*h2Zv9JtG2~6?E;^sYivE89OIe(35^}#Y00000NkvXXu0mjf_PijU diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_42.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_42.png index 15168cd11124217a5092687483149426b63aebba..4bd13c36fd5830622c49f9aac68d60dd439dd247 100644 GIT binary patch delta 816 zcmV-01JC@|3%dr87=Hl(0002`twPcO00RO^L_t(|oK=oZXk1kohM#kC<|mRiF%%Tk z%+wYaYHLtL3u1zprmHrExoxCKb>*T6ZnQ2GuecErtVq$71PU7GN=vbdQd2Jm{8>nY zB^8Vz7b|9LCe5{(G?Uyr^SZbRm~VA>-uL^?V+O|8rdLb_eSePjzjyVdo9flcwyj_u z@Y!!-TqEaS@pF(&d!RC|Wp>U4w~des(2!~37#yFdtw7>&tEl>WXUza|dB5pG=E z`RsIPZFI9U41eLY_w@3w+`GqWRBySDU?F(>%+&%e}w z6V-u3#I8a_MB1Ttbv$_jc#$`G+)So#$UFRZA|+n|+Y19xce{FKc2#Q4AgN2GWlax% zu>^gy7C6_6I+N)G7X-1PJ1Wg5(#u}o<+_RUb8gXfH-A&dP+Xh3#}=ts$IYk-yQ)u) z;dZmbf(>KXR!Ig?41m>~v^dgGJ>Qj|vEYcH^O+{BH^71b7+-|$Hdvn`A-IRv0chIr zwKf1mn7B-ApLaa~W_JTy1{mS7wxm|!1>IP>l>gC<_J0V#fg1XGm?GXt*4Tbo3wNdY zIp>iBz<;0W*OJR)gTNQSDFBM0^B4j^aQnZmwaW&dWE%b$Kw7rmF*e6uG{r%@!{=I( z($;|5b&&H+77tp?BLW))A%HmrM1b4#paHP=Zya)0W_k|-xJ}^oJj(ya9{n`T9-H8^ zceWI8!SBJrEh}g5^S4%x^z40IlCDvZPpR!jD}UMn@UmAL&+V@4iab?-yYz9i-!rD4GZ(9bM!^SLQ^7cfyalTwo!<16H@+z5#$$qn|ahAtD uP$@G$R$2ZN7&C$~nC~Nz#9e5p4!2M!W?800005ii?3^s`Of933-O~-Y8#{ok7Nh@X`^${PjO;@u4Km!11t$~GY+dx~}pJTMv zVB5CWXZp|DJ@0ikvT}K@eQ!8^);;{J)3JDPYXJauOpG%iMt^JVML;sPqySxicjIFj zXE;Hnd>xkkIPCPs3`dZ>^RC9n@{P#p%><)z0{AjGhYtt9#48*D)9cr(Bgewb$geU! zmJ{G_U!!{@Ishg-;t1BUaMor;Ff;NoeTt~Abge{RJAO?Ez(gt?A+pI>=reF;#LskY zx@X)T9<)ld;D0d)E%2mgl;)i>!0d?Uf}!8fIK6i*waGyVR6BySj(gTK$5m&4mtj`K zOL}-BwHjT{gFdKs1WFIDqnQF9AFD<_)|Kk(;g2!H5oqT5Z~(gS3`fY&tHP{^_sBhB zaIVnfGX`6V5adkqgG^&EZ7==TO{49EEqK&k~36*)*o5pYlhd19@RtJb8q@*y8sNYP@|4O z4e70%D>DFP%{h)(DocURo7SP?7d6<9o8eY_Nv!y0q4s zBn)@PS$|AA@zKwCy9Cc#i%ymCtqezb&H|TxBq!M5|Mvl^;Bf?QO;zy|ZKW!WFKxQE zZWi25&?ZYGMYh-Q(MZn}oc(hZ#@G0B#;-gIEV(#`FuQ;Xp}f(7ku_w*5Y>?%mASeO zh-8b7Iss=7_ZLDcm}!_@9pg=l7+;ffhVdyc?e_{y za{z$zTAnB(#|PvK4fXQloK z&3_6<*sGPeYxH+;1s<*q@O=)er+(@*ho|s~_M@vrzZWyR6A$mmdM~Yx!&3lxQ_X5d zr{}#D-IdYL?d=u&w@U>OK&;@1wtdmHmEh98=j^XWr``W?GT`373YgZeRlyO)GkVms zpjG}I)n~s{RBBF80ZQv514t7yOOVylKYzyA(a#y*asrM<6r3&}H9+=C6(mmgG&ZYl;mCk&8{b6mGT>!vm&;Lyk@^tI~a{9-RGQ%$utc?SJulfP>$oISx zSgobf-V8=EUR2++rhXh>b`nU5dVj~mm@pRT?%e_>Z%1ZRBl=eDO_uK=MRIm5Y&p@L zz-6dA$~hBn|1*e2K<1smN}H#>1j?r6NNZf_Y+1esH6%@cp7}tvGFO4q$&0Eq9>pl% zR}t6+(9ZS_>9|-GQn4D*iFQWTnOqe>qkMPzz}x4qQs7xwty8JS0id7t8h=(den&-- z%FRdc=$u>MF~WP4@6h)Fo{S0|uiB>w-_$pP0G<>59Jo0E7f}`MF1OxO4C2p>@C|1G zN$Axf>DGTAnG8nY9YR&vAd~?r8Q&3+A(nOD3u!N-dz|I_HVORZGhah=AF}%u=}0)4 zGJM}AftfL{2TygPXw=;i>`I@G?bjzv`g%(=+S1N8c4i(?A(QzhV^%)~xY2HHw=6UBYM~s}+7%Vub%cV9Q3+dqQ+O00000NkvXXu0mjf*8keK diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_43.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_43.png index 16196a7062fb707b4adc7a2199a42d9709024ab5..bc9c6dc21d82dd3ff737819cb76da43d596530be 100644 GIT binary patch delta 805 zcmV+=1KRwc3$O-|7=Hl(0002`twPcO00Q?(L_t(|oK=udXk1ko#eeta&b&m^CS;>R z$)73;wzWYJl?G;zrgoL4kXI`r>dHlNB^aSfUUegGM5IftV8J*~TLcwFVnzzOstuMz zFdgzxX~#5ap61^qZ{9mDGEd0ra?kzU^L^)-(&X0cx*0>Cqkm)X&5gU69*t*q409mh zn2B*~h2VNnfMnJO_2W`AFdyDEN+CqUrh%h8IaObW#Al;jOII8-J&$~__#$l~w}10Y zx2>)fI=>De_5CY73^wdwYMy$o3Q1Vm_ZrA`Qhxu>tFZ2Ggnxi%WV-&EIsvD+^Zmf{ zvsG)Oe>KV zDV-p8V?;z=DeB59lgSY93g>vDQ+=!QPu@(V@BDpkb?TG!=j) z0{V&VOAY`YSlc-nb(4+ABE3(b8a0IdYLLkC+Xxo~~HXQb8Cj^KAcwu`XOd|KTteD?0HJ1+da^2=Mm z&78RO;Mp?3w>fgE`=OeoY#dJkeHoW3D>X@4*MF)ebS6#>csI5%8 zmGGrEQIn)0p3EX{B`jLiB8*xc delta 1434 zcmV;L1!elM2A~U&7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000G2NklQac!jeO7GEoD5o@sG!_8hrotowDSuK*-vTtUH3Rtg)ybzi z_Hcqo{SYPoB;5Rs9*&@S=c?pW{aW<2W`b5d0c;su!iNJ;;Sr8N<>7U9?G*Hin--vbuE{~4mnSyQ~yGA~>mD_8XpQ48&@XYh!0DRyGN2rk(g*l4$%=JZDaVFUVD=-A-WFm z$V0n68bPI$SrV#!&J%^vpk(sbE0do)TIS?>PJeMvjx;Z{6gQK6M0B;^LcUesoEW~YV;#0$yx@WV`u1kUHaGWa`$Rbd>B-N9iks$P5+}(zei?-Bith@*HwXi z34h)fzcQ#$U;1p0;oszxf=KhLBj6QFX7e- zAOK&%vFoBp>7U=9X&XKJN6Q5GssVCN;4Mmabc9^xkC++#J?pfO450PQqZL`nSyqaE zYsPKq1X6s|0Ifaq-C)swbo7s0Pc;LaKz}|!Y?bXnuem%YHh`cEuro9#?qOTcEtR8G z+#;$nfJN{Qps9US@i!uCO7b=Rn=-%~Fr&I3y>;ends;F8Z4~Y35LD;Ujv)11M$E%; zYzEN!9cbHV`(~|Y^(g@0r&GAQGf=$YWaGij(>h+Qk$>8Py$v@dRq6n0k zZU8;~Q)rn%d-y=l)2nY0T;G#$0YI`uK0v-YruQ_bkP69}ko1-G^ulXbRDjgXD|Q08 zP;Xyg7vyxU%?RG+SX3a?&iio+;C}%-i+Ib&N zD6fP|1>zgX2dMj9e2S2qIfZ7fYwRh=tQN?sYj0I{gOW3dB6Wk*xQ>uBT>6f zxt@eH2j`?_-d~+S?G$hV`8D==qi#ir|2h`0ZzmmK9TGj!kBHFS^iQKsaD-Y!I?#+P oRQ#VoCy?KI+L^sZE%W~a-xIX4!qskl{Qv*}07*qoM6N<$g3-0ZwEzGB diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_44.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_44.png index 06fb2790559e9f8b7b8a762b37c3475e86b7b7f8..8e271e10a94cf914c0aa595657c61433d8ba50b8 100644 GIT binary patch delta 813 zcmV+|1JeAZ3%CZ57=Hl(0002`twPcO00RF>L_t(|oK=xeXk1kk#(($bPF|{MCxn6( zBr_>R!B$!YX{Ci3q={Xn5%OxpMRlPriYuWJs^nESA_#TSrCP9PoTmjrK`9|m3JQWY zSki^*kVlm^rb+WO|0bC??{kqnA$NDa`@7%y?m4D1wm!9DhJVmksQ<#$h@0%zNM?sH z`vdxw;Fb%)ji3O{DIZK3*D}4+;RAydLe!@OM|Es`b_JR~s~x7%W+=|By*d|>4Ri0X z_e;NxmJ6NV1<>;SYu!BAWe>H?voA%^3~P^^g*Den^`k$3g%y7_ybYd_DgHHn5>9dd zYVYakBi6?M?th3Pxac2W`aRq8q1CY7^Qv$!eE*XkZueS#;!?rEMgQR6Nm`z@o(X23 zTMsx>tDK~RtHi~uHrA}@<=5WeJV!cJT9W_#ofJ3=>^hn%&1#?3n^N)aCGX#w+&-@4aK-Lu_)F3p6mBv*ME#%C?`<@JN?pR1`PnK8EIkY zTxH%Q?LS*^#IR$iS;cm++kpVg*yRTo+&-|-K?H3tHb4nj$N(5yfQ@Ca0bKy*sSPM* zV57HF1z?E*XxLXA0PI@^$|MYOIFr=!Ue|oFr~R584jKTQm<2B3+}BNHfQcW0Djm+J z06;K#h<`>#7ruY6C8^c(spg@5#`*LCFuIvK!XI30NlIH4tx0Lg`DQam)#4y6+wk)U zz+3=hOh+{*?BmcDRS8^Z9v%R2Kt;lg)AGPxgcp zbxHbI>zQ=7$v56;U6PLROcryu$(&VPlHSp+){Nd00000NkvXXu0mjfi=dNt delta 1439 zcmV;Q1z`HP2Biy-7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000G7NklIRKyl0F+Xoh2uCt8(Z&V zlv3b0j?XjoYwa`Zbu^-OS*~?$IDM_ptTtjD_W_MDB%`m);2JM{8o10>H*6*?SFYmpPB(UVVPM$lQnZstQbjt zi-gwm9{VLZ5(laSXb)DUR^udDQQ28eLF5+MO3e1*0tOHn$%5VfphP6hp zjMYF3(M^0ATJBt`~Qc@3E7j zhcC`n^ACi0;9ZPaj)IA`lCRl1oBUo~1)Tv@3~>N}d8GEhLVjzD98Lal9G`zJn<7Ye zfK{Wv0+TFd06g|iTd6aSs2iFugCf`=`YWvIe^%W_jjF}1*cX81H|61?*^^%uec-nvA#^bUk5>2E5v=Dg_WFT_2?f(K7fz`T30M+ zg$3$?^*x1kY%i=^Zlo^b?7zI^dyY+az<;O{wjRt}(@+MW*HsoS0&UM9Ij@=L2%1BM zGC)h{F0eRoX8IplQ&CuX>Z$>Dj{FKwtDAut+a@Pp;;JhH;De$aoq@h}qo0k`JKO0b z{G0@OGr_Kq&O2t+HQb@w3_TR#E&v<7yE9vx39aCpabi-r6MsO7 z{3mS(6mN2BR~Jz6Wb)sJlS}{g%I*157x0HYaY|?V+MbWEf7lz%E&$*=!aeT*cIy&W zd@nE>CxD#(F{I2Oojv1zdi5=W+WRIP08lKE51?1a_@3kxTp@WUID0uez3|Q}D?lQ8 z*^@vj)O#+l3tBIMA{hZ^6YKblHGhlh{pkYe0B>u!GoCO9FTQ>=h^GFxknfEi4W8CG zbKRnPFG?t_gj)sT6UYbX|4rPiH10*O-U|!iBAvt2P6DMlc;-esqgGbQ3Z!1WC%s|m z^PfOE#pCtP>0B=WxqzJ6k zJu?wqC+$pv(?L0j=>0kgl)8X7kRO?!H|kad`=?{;_35MotV5zF`YSSQH~rD5H#kBR tnGSSE7Ha;@pf`};+wI)FMi@Q%{{vIeyRdlw|BV0u002ovPDHLkV1jL?yAuEa diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_45.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_45.png index 5a2221cb9282fccb2758f6d5f0d0d854d864d06f..026064c5a1a77229d0f0f028d297e6126da24210 100644 GIT binary patch delta 830 zcmV-E1Ht^b3&{qM7=Hl(0002`twPcO00R(7L_t(|oK=ubXk2v^#ee_*{AVW7+QcZR zMUsiuh1QxNh+3*MNK(3LQ^;#mgIG7ZC?MEH`Y&LM*`K2 zHCPkDRP(fAW1BRinWQh7dGENG8ENn8-gD1A_uOmpqpMTPW`7Wkp=~cuA9Rx)I+)l& z%qE|0ri`nk{ZoD#s#6{)hl@@3OmM{j=>YYc2uERbd~O-49xE-HpKwfe-0|AEeWU`; z|C}}Lwp2;4JLW^|c@rJb@wz7I+gO;h zj!LNv*A(v`VRpW7tpOW{ITpV>*?M5ZT4oB!=(w~zP|^Ge9-Xlu0JArOEsS8Hg%Y^Y z1!zma`Xm6{xduRFOHZ`}7(yUN**@ZG^1*JbP>%ubP9(+I$28yeb>>?))cY9#+vk7+ zE$*Xg1b@KsZy-u&cOGdOz@O}8)n&l*dSXd&=Mi0i^+%jXKLCPO5#NkAuoz2<-_ENl zMS1HD*9rT;7}HX~+jTUSRJ$)Pl|a^e5CHQEke6_QxnT!jZ)-Srn{PMuqzRmw>Da*~ z;k@>{0I&_f?)ji}DFOT8i!JekPsX?~vysMks6~5>@EgQVm0Jg&F8aVH&=7cdzn2g>3Idvms zRW~tRHM{(HlTlx9FE;u)V9xmezmfvR3}6hYLmHQ)@y3Jx1JK!R2VzXEo&W#<07*qo IM6N<$f>S}8*Z=?k delta 1458 zcmV;j1x@0DaBmN+gwi^I60D#sSjIeDRXlwC4MQaVV zZTmcfKWo>luhoe1WqC#2Nc)Yh(R)Z|w1>170AQ!YBm+{k)_*<(ddBVvz}H{h_>{*A zC&=UvF|wb8onNSMgr0X^)%cXZ89uFD*jr zk`52vC5~V*2!C(zdiOZZD`kM{h?jx^uScBTx|ZAI-~_TAp|?)DhnZtl?MEJ}BEBbw zB~r72d>;Hpwj*$QbREwWw0zt(@~Ny`Ud#Rz6^_6&&zA%6g=aWIgkBb^BHqIHjKQTw zPvS#+-&%u1GjOkQvoa7Hf$k=)VjF@Gu}R8G2AHv>q_WM&187Eh;V z^aPd0*NmExIie7I0BKS0T4uvI+E?=64DkLVYJAP`n$f-TXgas1fAJJRVP$I85u|9g z(#&!M&P%58d*w6AyH(Gl;Gw*2jjWEO7H^MWeb(9}TGnbbsv>{X^qzUb5e<*BwANaW z8L7sNHh)3l-nCh^FOpKTjBm+s+Vw0**{A0O8~l79APXZ$7)1t$H`2Whm1+E*(zSI} zFgrmj=0-AzMG29{apw6f<7@j$a%Yx;5nqxGhNpl`raVzU>z7&@u8RDK(^+J&KI73F z%Jnq}(g@6S=2qsiQzSJcrGH1`Q+YJH9w#_@i+>}jX}0cF)kkX3D;U4WpR|{BU0QFk zm&B(!3XZ_q2}{pawj&WIpwISroi#qC$890Kj~buyNclH^AtZvcI^GDZ#^=a3KBXI3 zHygku4&YVDS&l-DYc>9;L}oOrD`}LS0IBkz4XdLiiYrBbbblaZfh5aU4-kFz;wsK!;s5OD&mPZf=w^UQ z<6jAxUA6~Rds$Cxh?ETQL{!M;EvYjYHMfXR2Cxvm3oLz&Wu0fgYTbEeG*cPi?m#)t zmgVfysmYg;0q&d)JhP5WpyO3L;E49CGXRxg^^|YbzQ>I5S1WA>y@A)Nvakxflz-Me zk^h9FAjQ+<8DXbJl_r2a<3Ft&ycObS0dF_{o3g+zrGI>tYCgYDpZUZ6uuJJ5U$svM zpBVXX#PAdV@O|cgQ;K{#c7T5Rr|4w{EfcI7vP6OWKDD=zZ~(|%KY$+j+GhfMK5%t~ zO8oZLSm2d4D@Y>yijzQ2)H)tUqJJ8VD?u7$aXuqT^~jo~m*~DwMtO#_xTmQCasjK0KJ+_tOL- z1HIZ#@do4fu4#1mNlDX9Z@TKm?7lm{;W_8u-S~(n$PmQ=VEwnDBd_WH9{}tkREXU)MK+5N|TRRthub9nyMB`Q=CN=)P0m2znD{P6!_GQ<%0c z!w#Vg@CW_V(v0JySKrZnKYt~xa@g}W2a3w79Z97pC|ee84g(fw}P*Z*()9=GYdp`nBCv>U&B^M$JMb~KQsIP1LW8B$N%em`~Uy| M07*qoM6N<$f*_S;UKopdv#ry21|De7Z55qDZ$-3VITQ zqZ`A@;nPEMsju7MrJ^4coT_(~H_ zRPu*uxDp{DodI<#Q_())W!~aRGt)UG@5o<~6nzV9P36OMw{mv=t`yH9X;`BxntkT$ zWf+;a!1*{Fie?X96f_L!aC9+}UiC(Pt(!)2!7aITyMN;tZ`7&}*g=P$ zxSedXV1ov1DMbZT2f%7US}HbGPm-Lo;0R&pxi+i=76ic55~RCe%M22Ldu$zmwhi9s z0ze4lXxQT}17LPGdz>OqbS1^9msC$*O8)F7#y$q%U=1iR=)Q__09^hN+FdfvBLP6U zI>wqyf`8}ji6zA&XLK93o^c-I00@ReyaTVe97~En%`1}HdFL7WV+@?aJ90jj)QR&_ z0Qxsku#gv6-wy!H2OB-N>rn$>AMS%IbJ;@xt`EG-{p48ST1>lC}YSrzTQW_J2kHQV!7de&xQ(^1LLqwAPgtBQ7Ks z<|V1l-fqZZWcPML050gPr1v`ZrtO(d_C2nu=TRV=3>m-I`la3`#B?ClaNa;ayUO?b zugm)9Ho!huTLOaCHO*+pwqBPYU%+cMt}eS002ovPDHLkV1kgYhPeO$ delta 1440 zcmV;R1z-BE2Br&;7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000G8NklcPi0 z&Pakv`#P-naX9IX8Hpfe=c>WS_Kn!-Wr9&V0elS3;UfXC@QOsh^7{4Z%CRuB@~eW6 z?F9ILUZZm)CIA*Zk_gtaaMxr-FthTpe2S>AbgU#_TYk+1z(Oh$Au`F>=sR#{#m`J` zI%nJ*UbIWJ;C~4SZSbULROU(yFuUTpV(9lXN$(v?V{%ae)rlaDhXBtk}B6=qeu$L^7U zbB!KnhxU7G4K6LfQsd?|jB|)fEKf4bN`x-=uHajKXMfqlT1K#+SeM8EoH3QGpvj_i zdPh$%Gx%CiE0`k-wg=z_N%txnMoov53>BdLM>hCc;I*Jf{m|yzOaJUH0K;q4Xd=)+ zdOPPz2B5Z724C_mYrl7%E&9i{9Sx1nP)oE&u#EM}sz`zg+P8x5VS(9T1K)jVtu@IQ zZjG~)bbsNapYiSzJYy|6Rl&Cyj_RBRj(wygIN;y+0jl6h1a3@K^Ap`lRR&+0bZy)$ zxRanwwnnOKZ{VYqo@qGy=PH7)>F0u9xfED-aS37W0xFF1RtH8lkdZ)CSANvy>OLUC zF5Rz>gCI>nwlT|8{U|Y6nZHBurR25bMv~x?27hO=Q&a9Wta^>4475V@H} z9tDpm!HS*=KDHy11k?}C&e_4|?8qho7Z3LrLMoJLnB5)YNs9zuvvWr9sV?sK%A%c? z008%Gd7_8}-&!K?_OF_;rzAjj3pN`#z*-XE@lV)!9QN1msxWOExN7xNcW|2* zNPm*E+KE-Gzk_S=xV3dP>aPM#n#5Nk%F+rH@7N^rFAS^J*=-uqX}1o+njXi4zYx%QpVI{%I*tAFMR;|Bvs zCuWu*JJaGy)$c8&k&{4-j~*an~GvdfNOmagcI zt%L#Ih#9^`mef&r-y5VDz$17USV5?!{}I;of|D=VKg0lk$l;D8p!y_~Fu<;CfUEoN zgzh?L>$YTnJp-(Ay7!d+Yb5xqOkNh)?%jRK;^b&OQu%kUXI0?*z`lG-BAhs=+bI<=x z74mkR05bh!NX+oZ1bgEG;JbbRz4ATp1a{j}X>SH2j2HE{icK?m*^@vjH2O-I27dM3 z0%vbWW>O>mR?SUT?>m7%3Lm)h5qxy6=^UBIQN2Uo2Y3@^`1RC0MSt|Bz7YiQ zp6a)tv0%k^mmBYC2JvS`^oAKgGWzWpIT?(=dk9q(gAfB$D&8H|$!SDRHF+P4C2-+ib-E0000dAv=|A0oPcoFenk)j~jlpaiWG^rrsC1kKrj|R#L zHr9@KNT{2-*raANv-5bE88z?e;rBk@!}Ic)$@zX~+qBS^*nbwhP?}|G^UQL$mU?RzSQ^Cp zlFszE^c|LZJhq-lulb|vx8T6%ZqwCwQpZ$pW8;1?IDcdvf5kg+sQtvMgLK@2je0QL zO6QC*LruWyhO~L|&bx|0fTtDd&O%p`B%4E+?*V`f7$O4q@Sp(E+gYxz72stz0$>hP z%t;>2Bn@h>l7lk^ zu>R>n&3}~{&o2!mrGv>b!{m#mEuMs71YkZYLmxU~0PF)LxVqLj0pLpDk37Qv$DaBk z%0&qlKG*|f`lC-IQCaov-u`~u?$u#-RfO5TQ^QIScQPPL0{YiO`W?3w3W delta 1362 zcmV-Y1+Dsp2H6Ub7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000FGNklF z9LMp!roNYsSzkvZDwjoWN>`(Rb@d|${Br=VF$J$9NXDDh_ele$>* z&Qi*EQrxQ7jLaRM!T7CwJ#s!_d;s{-G4=Upu7DVT>P&;g2wGT}&G?l3BaNRK3Ph@B z-d`91qn8md8?*v=UhhQq%4b(!^1LklVMkCI0OJWpu#TIFQHh@?3AE~uyUxNsC$&N) zco~5^hx=@W+<%4kaW3HjH}4*OP`3MqfKiShC5qJ8PdmYA+P45F&{&62ec**zO1b6$ z*^Xez4=~L?8T+$WyjP!C9_n+JUXJ5{4|mcNtJ-!Nby;KjU9o@EiXSC+cGd8)tX|LH z8dXt_WpRd43a$OlWc<6BPhFK{B|tO0cw*#?Lf9Mfts9U_{>2+DWVe zJWSwmgny`lxc;KfkZpX+u?R*OzrO!uc1{h(t!(dpfTgXc-?q(6#zbT2i~82k?Mfg&amICx7Au71^{u+6k=22N>u8GZ`O`;W0kI zwQ9+T`J>}}3rV)2N#Lv-B2nXG^dx-T9zr(MkOTu5V8+!?jiot(MEx1r{tQqb3XNjc z)sLYu0B*M%&g@A=V&R>Nr4qdQ*}Cbp%jyS!|Mvm3n$%ibw&!+GPQ{MYU-7XdK-L6h zHGieF@=CFPXB+@fEHO}nH}Uhf&4x5zuI$^q<^y9 z8Qcxz-M|)+Tf*4zvsVk0yj&X#ymQS8r;%|lUkt%U%i0;_O35cd$=fTJm-Vvr5FPjD ziy_#M-u(fO05d?k3G|jE_fiJpIB3})XpgUqj5&DrMly949rv3AwkNbwkBa##8=s@k zk#S#=!-L*&zuykF8Xph5tMR#GQhz_VRF-s;#h|_8p6x;J9{=jbuh?M@QFJ{IuoJj> zNle(br#8sidneMh6dP!eHs(CzhMo$hgx(#I{2)r{mg^<`d&YG?6Q~XT7EpOoqzx Un)kq%;{X5v07*qoM6N<$fIwV+LDq zh*+o-q&DOfv?L~@b9)^I{qwtx#~@)zXrwu2=T98+?`q^h?0nUfW9UgJ*z6@9E&Yd8ZwbzB(?+ z^LB(8jm~2NQ-2?vlq!YMd1)nt`xzP9C6&GO`;s!2A2{rM1qZyXRp2L*@>^!Vm&(1v zl2jug;7T|d7V{YT=6GH8vUigtN$#AR?i9`e?_y-IF7qpOcz>#}Jr=+OD{yP?8qMd7%t&)R z%Mk;xnvwoFI;&=^O8_nTCe%j&_MRAEOM6q4z~yu-Jnx18W=k`phX*wx)smSwCGWR~ zk{Zuu`To|5zj#kF&oS2s=7TO-GjuL~Q_D{4DzT|1(T1+#D<3b7Kuj zjgLvnCw~(*9U6FH0qL}Cu^7>FO~zfF2Egp6MLwHCduFTzVDB(F&Kscc&6S2EtvNR~ z&gNfVw!1!$7zQ8bAlRet#SNW*TYl~9YPZD?;x6=tR->GA`o-h3mKXtNa)05E>R=dDyDW2bCX{c!MI?(ZrO z;qBD4Bn|7-&oi=fuIEP01Ds$ZOyKoLj(*KvpVhw0uD79icJ1E?-`dwcYF?;q{A)M2 z!#gex#KLylv%1C!%pOfhQvbs%Tx|r7)nJp6)Pl*>Em2W6n`m?Y0XBiFU_2Z&$N&HU M07*qoM6N<$g6zMRw*UYD delta 1523 zcmV5|(Z43<54|5tW@bjd1O-5ds-Z>HnK21%e3#cdA&xBvjI>jDeMaey|qJjb}M z3y$M>&ncg^d){krWaaW)%ieJOTFBs`2>@`wj{y|)Fa(c)vwta{qL(pnJm|eBA_j1B z3$>VD*Y#e64hyoNx>ar`{SFcKp?o`z|BpMLiss>e6)i*Se%umtqf2VCU1EBE*G z_)+WN_EB6PH2_M)i&{gFjKD*?74BAgHqv?b9*=!TC&>V^LS+nrGXO8WTJ-YxOy16} zHA3f4x&h@F$W`wVL2o-@|L=3^o^%`0f zR;`u4ihtrU%sxOh1EV<-@fuHL>1hlSk5!cq0RA6?vXC~fq*2T)Q#rlJS%8IVW$v!C;KP(Fa85mXE5%r6SmVPmsKK-Ylj zarak*`9@F;W>9{S11l|}d``wfX9sjMfLWA}<$v)S0iDOu+67%Bz|474GXgvYBU=~E zj4lQcRr)AH!5)sUp76h0=r1^XEof%%2l#xSo*D&yzB^u?!iU=o?e~KSMjHwj>MiW* z{Qy621zQDBH22N!{RK4N@2qGEFD(Z~6u;`Gap9kPzAH|x3I^~imKIgsId>S2*65Ms zS%1~QEu7j>i2J@Hp6dMoLIkj`03cph!>V$(f*1iZJ@ZwHKa3|H{V-AyfL=2jH@mUS zE?+C8A^^ZX`SA%#)=*Ug?67&e7;+YDAHW*{qQCgf2&)TP(6cAf$_O)j|8xSQkzi$b zYM9KX-q8!m@=Zkm+9F=r7<1FYp6It5@sS603Tui|O#z%`UKI?|q6omRTvwR}%5{NsT%=S!!6 z9pN$V9u6?F|8i=UCgps5-4Rw4kPKh)M(&RkQR#PlpF6QoS)+W-8h|d03iUK_dw(MB zN5o02z6+-1HBb-E!kk_;&&SVqjsyVwy8_f9FrtpZHPkfabNn(6S;n830ljiLU#b~) z1yurFZ>#E`o;)}wl$2eg1GW>0;XNft3oA5M0GCVgXX&{{C(4^TpA{X-oNOQCC3$kT zKOik;W+RZi+;h^goJQjpkwtSjE`KUSZc~TkMg(($(@Q?$)Xv8CnC{WLQ_5fDFSJAZ{>E&^H&4s z;RW;z?mY!rdD&Z3Y9|kAoTdEZIDY?bptrE&h^?-CT5wt8%4dAdLgGmcu7BL~@RJHf zZp=w1c=OCo$_J?PWbT1m$Pe7isd$ ZihtF{ZW6dV^CSQO002ovPDHLkV1oA~!VCZa diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_49.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_49.png index 0e6845ac244980c1d2fcea4abc84ef0b33b215d9..58993db8b09d36ac78b9eab00bc3d2edc3d79dbe 100644 GIT binary patch delta 986 zcmV<0110>s4&(=r7=Hl(0002`twPcO00XN@L_t(|oHdYtXq0sv$6w#)p2ywX=3Q&o zV2PW{RHiWn9Iq|>=BuYL|mWC*qBOs#lN5=#Ml=3)ncki%cr*WRUmD?V%<`o6(e{?J4M7a z>zq<)Nuey2-GA95l8Ce4=mawIfk_-B!L zu&G%@GFVvL{j0}`geOEqY`ud9m2MlZjb>NQ0hEGSqhCvF-^t0cY5+upoQFP%2U;XV zsiOg*DgD%s@wN95=@i}jhrdz2*u9mDaRA8TiCLcNNPnbe(h(WX05p1Czx#rFRyr2L z84ZZ#WS-s~l;d*u?BT2qcsChSo3@|$8#kZ<1SUWE@{NhY8P~J*#Tu}_X|S~-oK)G= zrJSS|g7;(o!F5$kaN`F{v{;k!*j8>KmKSvx^v0XqE5h~RDpI+Q%fFQk_-~GjoXOd2 zZj_Q^d4GDtk`~MBX2IIunhkj^vQ9g7$sJ3AwN%FL zOm1C_)iS>D@p%>f@tbos)4TwH^Q4KneP9vhhWpYil4*Y;Xq&#lL%OLP00}*OR+-uC zCN26+Cx8lN2gajE8ht9F@&gK-vbQg9OD*qc(to2$1ps8rGM6?#woiX%aqjfF4Vn1C zK7X%%WuPzsKz}-VD3!XVo8IN30MZ2o&(C@@jA}e>i-?npJo4Q!jJIm^L!*HIvE3`7I=ck zK7Q0U2jI+i>7suO>J+Y~x5|N<9n*$Fvu~6G`>&;nv~<_Ve?SAjSMrFkJpcdz07*qo IM6N<$g2+SjL;wH) delta 1848 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 delta 1620 zcmV-a2CMnB2H6ad7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000IHNklM6-GT5pd}Q9cpTmvj>q*l`@<+7$vE z_v=RJMS?r*`+s;!0i(c>9I6Rx$8gC?2ay!;$;u}h3}A)QxKJaZSfeMc9gRRs4;kgZ zViyqA-_crYNIuOn6UoJ%(j;TDi~!kdhmyTWS-B4q#h>Kp8Nf_vv^;WT$YNIdjIZ$` z0XGUX?C*>KXQdyp2-J{K3jb`pj~?1fPg-F(qkL(v)uu*cHB!c z0#1kXR^j1SRxW~{6hLHqZMH+$)h2oszvlTXr_CAI<51HO7wGtA8+)#y6RtzifUg&$N;>E$a4|85t^CjL<8`uYIO3KWhx3S z4M@mDDUX))%+4VX-#_x)lK~*gl=^p#*;%1P4wW$iX`c)tX$(0NqI|ETLh;lFdeb$J zq3Xg*3){2sj3t`_#$nnx@Iq*N^5W^%@twa zYJM(vSvip^&bi0$#ZFl&TG(JV@u$IwC8zaCv5x&w0y0{arw& zpp%L#iI(@C?_>4qR?8|O6Y{maHF}a0jelz+9Sg#Pv=53u24EF*(neNTli*dwnqrYc z4e{)X)T6;OTCI&nVMW(;r`6i;H-g4ZMxrxClI5YE7kG5gHB~@U07_%L=V4W9J-%t{ z->IJ!Fxp}vgQO~+X5iI6)^iTNzgZTBo2XU`Iz~Mu6KGYLTgVRu9wM2!Ir9XXfNrfHqf&)D5eUiU3}%a2vrl zv{^t0GV|CH0mjX(DHc+!5Y-G@UKNo6+RS9IDn&dxAN}`L(~K`{O-?Z|zy>s_{GHP{{c!oaqr+OcXN; zL}`BTQ&xLw^_7>`h*l}_7Qi&>Li-0?h|vet&Hu{&BM zjuo#D77#rbvEvRL$F9TUUY=i{53@Pel@POodO-VM<#sT$pMUB#&H+q`=-g;L&Htwt zCqz9ERRkdK>?9XwSu=7kpqFI{Q%&Ge>gZn#0Z{>KCIq4kX8(g%{BCG!Ih$QJQ(ApXcSjd)>A!4n8hE+sbxMY-GeGWiKIG}pi`7{vB!CoQ~gfcCYI#$6{ z7He`5`K68kQGZwiiqLwxmPirI?L?FbXvlm!iRifWR3;I5VI zO64+$dWpA;*&69$^UJua000n!*{zyOBx&!uM&ykGK!2k}_q)~pPO+xK8|47F5#QNt zr*FvD_eqQcU;(O*Iz+$(fCE6I;@G7l;fD-!v3+SAfXb|pr zxwAMy7&-F zOHcRC0YE|rq#ylG+lAc=TMLPZ{1RW=FxmI@-$N>j0DvUE`{|*~{$CD7)cJU70QyN@ zp7v!-SAY6tYHwEK#wjgra|Jm`UI&tjoU!-`aL@ z!FBv{C9{?qzCW{F#*q6pYfbmbe3p1U@!;LR3Y1f0f6niYI&=94pXbuI5hvLD)0@U; zqW;DHZx^j*d%yW!i!g;4fCwg}-F-F(QR00000NkvXXt^-0~ Ef^^jCN&o-= delta 2131 zcmV-Z2(0&$2-Fae7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000OENkl2?T*_p40DRU|0`!dw%k;f)R*nF!w4L5b!x^`u**V!yJAVQpW8k+rAF(SKm<}AP zq7ncPw$VuGd7eL;P+1>2S&e^#^R0a|c4nC%gKOW>wY=8>44@RdLL5ej%EGrfpV@y` z8JJ~&P6>Ep0CoT~jDT!l4cL(>E3h;3t$f7nUNdW7>i=F705Iv?35x04N=+g8<7<*ZCR8-`UJE(DFM-08|a_27+>SbeKDsV5jpx?RdmX(Ay@k z(}m8I2DaYo{#TcU6}11aIsd}TW1w=JdbCk%6|x1{Ljw65WWYPRxnu>P}Z)p@JZ))&WNF-cY6R_iaPM>Yo#oBkD4noKikMM ztZHVvdY>~dF%YX`iET=i4IH0o@Vd_b7qRSb0T-e=?#<8WtTu|DaDFx$cRb2g^)7D$ z88AETIIH0mnHT6wjzn2lQS+7FY5=Ty4F9?S7=MF1cP0Sr8jC0ps?KM!RBuvohBqJA zzBo+uGhMymSHf0eN4-3b?yKMxP=>OoR%@d1ihet$ zXn!Bqp}h*#XK^LhtNCnfM(@)*gbUqFWJY>)<^=`L_vX#6VKOp@yQ79r$%;SAmBlIwLgnYG9j2Qw2uV=j7w z$16z;+Zg~2#~Rr^1h&3|4&$&okM?9UewOi6FtCzhZNXrt*WdU18K0pzHtxw=$rP2W z&Xh6hWaZ#hj`zTlkFgs|$Yl(`;2qN4B_PVisy%joNK$ZdUFj#Ql zoKHa=h;0yO)`8?}92nEO0#;9@AMFcRC*Js3zAm z19+5jL3OAZV^=jzs*Y#%SW0K>K9ThvDt5dvz!H*4Y9Si!eDpCS7+ zmwFFi5oNwtFVz9sHEKK?;mRhDsXTO@@73MiKwo(06ut?xf~*2`hE>FVX9i~HsW}0l!MzI}?c2}kZv^4}Yz<|` zAfiUi>o=?&cKo{6%{0&X8M)D3b_aq=G7N@?>aH_gBnr2OgU<1~cz6ZG zt%({)53J;ku@?}P0AWq*Y=1A%K{jY2=O4%Mw**u(RT-5n7uG=R8@xbK&Q^NxiUDDNGEht~ zgNh8#p>_^CYc}VB3sl{$AYuZ0kM#|9PUL)5GNRzKws~~v!3!LZN!b~D43uFg&u3l_ z6@DK8H^T&G;4zD$XQX+xv5NDfvX((rp52?;1J3iDUTHkpTz`8mt#1T*!GVg9Vp%jQ zdbV@em?|e3dlfn?pvDz*p&kr^j7*D&v2i~o2IvL_(l~P%8l@;&Q5dUpl`^2OL!fOsDX$peC!#sbph@9@$*X6z`DL=Is3r11R~Z z!()I<@I^@w)%DDN(hQ)Ci#BP0&rlm0kvT+MqYigf4@?m0$Nfk9^B6>(vlldqVbwm= zzNY`5zzQwe`;jx$;du^G>%2qG+KHK(O^yr$sQXpM^7f(j^$Rfs$yII3c9j4C002ov JPDHLkV1iY+{}2EG diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_51.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_51.png index 38184aa75e307e689cff898bae3a09765ef43093..4d732c3926daf472ae4ed5a45313fb048db18f87 100644 GIT binary patch delta 1066 zcmV+_1l9Y}5wi%87=Hl(0002`twPcO00a6-L_t(|oCU!TOq6vT2jI`|ckgj0Aa^7u zr04KmhG5v2UrQ{EU2K0FJcxim4EBp0Srnw9&g$%Oc|wq z$q0nqB9OjwfNLyu$k`1TolY5pwGfcw=ot$DVG+}2_`(bp@3Spl1$r4KR+`to48@>F zqFqEGSvIuM^fdEXDSOF03DXtyhl)@mk44VG4FCe-Tj~gFNd&<%*-b>En5WyR)eok! zNUe*=E4TWHf`2-Yg{JMLL~hZti-_!i4*QN6q8j-PI}v$cA}PxAJCVDjv5APnP@!V{ zp-Yz?K_Vhe=tLO{9QWinBdZnyU<`PmRlKNG;3Qw2=P@pZY zE1^>~{!4p=1F!ROg- z>sKI%2j^AdN+Y}dXaXCdTEW@@bV{t*yg;4(oofs_%Q2t`*+#P=i7 zOyOYM(|^KyO~%4)BQdnu+KkKbJ8N{NIW-~Bza&Czx+Wy%KuXAFt8SGlJajz~HtB+7u zeAH+L+jo*}35X-PA@-}^Fx(I{u;)L#RqfC0Y=6Z2r4eH+qGl(n31aDRuFh|iMLYDg zC@ads?$UwmUSxa_w#`CPW^$a}UGDBJMNN;fE4uBKN6Cix$;i)_Wg)w#$H420RN(aT z(W!<};fE7_j;G&{0>jAFr13Lx!X{-fWYpihWtx>g2f=ff`S(+wtqI9_OR?V@zLJv^pr z;!Cbw_0ikf=EI7R2A7u6&&02W<{it|9$2(i_!fq5^P!JDcN4FC{;yq&6NazH7E(j* z5taz;PzCJho*yaV_t*b)>3-D(7il%Z0e|oAB!kqOHaS#doeS(j8&{V`KRDW-@nq{6 z59u=Rro*u@f8QQh@?u5pA&lkmEGnq7nKMW|LI*xcIk%IkDWbXlM6>f8`E0obC;d#x zxjWET{84qnbn+Qx$lM2U&@%;9S$T+vmYlI__xN58y;R#^yE?Y!U~4~gCp{! ka{s5TH9PzXJb=9a0cMu%7-lchxc~qF07*qoM6N<$g3Of)8~^|S literal 2258 zcmV;@2rc)CP)yrx@}qw{e!5KH$c($X zwqqT@0LpNxBw>WAE&R3QGylKU26h=>r3HL206TykMnE=*4%|^GC*;n`kNQz|V|Dia z=>OL>o?Ycx6-LFl7N2zvxw3m&zDf5EvvpXwtNV$GaSgdZz;(=?1BP$PH!2=!I^M_k zj&$?*w*3MNT?Lhc&V0a_eLDl7yw*-yK+~>uk`KJSUY+?+RaEl2D0hBBOOPSjc>MrZzTU40C#7I>$>Xi z0hprGKu|p@?!S8`xHI{GVIEL6x4sBE0R#mAW#cpmu>Gti-%0#8hgl}H{SE?vuA{3! zP|2~;Zg>SOqy1Hc$O zxjO)ed!kf8=q8`(QnN`X8QFT=`y*juo>{e9{z}+MxuaiR*Y%NL1}r?lmE_+oD+RDC zUuA$X@{df4T04hQRf9Vl;J&%H8j@W~&pwr)F8o>TU$Ohu86X;7*|)m4+ZL3LyN0?7 zaL&xJYB&8V_=G4&8LHKu>VC(5yyqS;`m3b-Sv=F*nL~E$KC?q$#+8HBzPUc5vkVlt zK3liDhv{$*_jC_;3Sn2C&H%IYbgrEkV>}pd_Q{3C#MXZ>03w(nI+LvOPxdZHxSvqMzR z?iK_>^a9de10nV4yc%@mZWSb-5;LodZT7&ofX5T>0iEpH;f+=iILV`(RYpWdKG|Y|U>8JCJ$ZZ4byK6$m<& zAN49W$QYTiA7y|p2$XU)6J+o25;Z$8;AT29e;E+s&n!8svz4;H(kA2#&~XwK#%l~Z zOF-t}j;Q3L?#fQ2U>68;J*#wl-${OCg!pp7g7Rj76(`X#d`$z{HIp4Cag*-~##8}; zwHG((7&qnv{h4-DQDyC6?xnvG)JeWVB|6uoD|Hy^{j|68%=M=Ng1Wa#`>Ox5_e@a# zj3df}Dd;4hF#v)9opHpSDeyiX3|8W4O1Obyp}vr__3dSQN$_Oiw5Iof$+4t8_N^ zWHW+O*(i=qJX`h*&*OoK&Wtf7Sz@LUHn5<>_+m4Jy1L1aS65iVS={QL(pmY@DZuDk z<^wB+2Qz|6aulNCDlsw9?4>|d%>-^d4iMsgOn$~DyG+wfKKje%G3DRK_W)TRTj~9{ zKHjgurI?h)V z27;<8vv#F`&f17W`>O++Vj~5{6&om+t7-Qc-!S9M5p}3hs^q#3GX{u0s9w#k(RP){ zPD{&ZUB!{Lq!S6pSeWhWy1c&|7&lIZE@+|?uC40ulwX;ixsLf#&o2RXNps5Sc=?lISz8bA42^NEP?WpqJ^3eou+MKinjuutTfb zLMN%+%5{^^{8Q{S6N2r9#ZnECDsDE5tO7yp%i{g`eSnT(1%hm_spz(96>49W@XY_X zo=J?O0us}Y`?Gl1ImTCJhs`3&=8qX*HTg_gb;aPEzRK1`LFRJW2h-63rPDSMT#i4g zl_NE#VAf&RHAJDm;qJ?j?Uq*Ltw)XzEDT(b1}#) zxy)atyVI7YzIg4Nk6IV)M*F*hcB4N_|4yJwYiNue!b~6oBJOeRu=mk#1j5b?po(XO g0lK~1l`O9R0h`z=xZ>{7K>z>%07*qoM6N<$f}HGIiU0rr diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_52.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_52.png index 1259a591a4b81d5bf1d12cf1d6dc739f94e88a16..b2a87c442134ee04a905f6251ad8060629a4fde4 100644 GIT binary patch delta 798 zcmV+(1L6G745FOzqT}X=dJWF%xutyZhbWIrrSdxflK~r+=cR2gD+xJ*2r$de-b| z_X2tPb8n8MJ4g-Cj%uV^&vFnX=@m z;r*YMY0kNax=EXJ_rLmuvGv*GUC`2GW*;}sRLjJu{^^8Kb*#?g7YPy7Ae;K+;-_~X zn&dl|uSH2Vb$`u$fAi7r&sgW!$47_1-OQ_I8f&a7@#%k5Rh3{^r>0b;^43fw zcRoWV2c)^8Ah&8Kfr^eObz6Xq}YoGxbnyEaX z*|D(G&Xsy<3&6{O6v24EJ{k&fqE|EBCaCI(C2~Tp>wf?~bGawvI(;(0b3u+oR2U?p z0IIrEc1RO}OfqT!yf#)Mpv{H>zR!}*nh<~*s(N)lc&QY*-BT`?z&qZo-h(j=un~lC zgDhFD2dL`H3kdsx!EVSAy1?xg_9hrcyH_zWBs?r-Z~#mVP8`9N5aI~nnyPM%u9Dg9V9mgnUsa=))T+lZHz#5!=T-Cd_Q^tW} z8B^UjYxm9vg_*z!;Sx6Z?LjkJON`Ib8AfyGihTWW@#5((M&e@;!1DUUE7>6_fwXTI zN!Wq64!^w>#HKKEE1rd;v}D4!(^3N3%afrm3x6jk$_*C?&fR$s9rl=(34hujdL0;V zPCoJN8(-?p0H2dEgg)`bZ`FVFs@dvJXeSp-X{@iGZ{G}nGYH}%eyhHeD8crcs1(x3 z^Od=mg2gBgpmXJh-CkJf<6Z9u^h)V!W6xjGH+yOxVgt}PHGd22e^1vMKpUdFYKZoJ c1s4GS0zwo-z;Py zk5SjJbkEZHynk<%dGHI_P9pfv#-E7l*E0U=_4;5CYV>*EVwpV$(8h9$t|CLgZTxq5 zSv)UCf#_MPFFD(u14tdRoIvy3Xoo#inWxj)A_*9p9D8&6OgprkmPGF7d@n$YX3GgI ztjzY?rb2-sti$+-v9#REVp46jPik|Xi(LTEl zzy%=V)qfdNz3wD4lHhtk#&WCOh(n?M*%^HR4j^@+vqKfxE1-?J8D#Yq4We`sI6w!m zI@Rr=8FV>G7wvcUg*#*?!-n1n(u8+p`BijG4YS6tpfVlqK z_y&DEGnC>{pEM<;Wmm2aW`IP#wX~YWS#>F%V}D?ts42jsFl&8aT3flg_N_kf_{(sRMM9Uq3kM%3Zdr2l*e)j3VK^+1*4Wwc&NRXb=g(jt0=Dh_Tck(6$-{>RNj`FZ z72{8Eou7fn(Vg%%Q>66)sUCOMs~Ml-Oh?T759^G5*S0Z1kW3_)JWLfP&D@8JYDT*`3@EAc`G0f~DMw#VG$POdVs1m)XwU#6` zNZxDhck@jo1m0Ttm6@QD)9lkg&k;1k(_KAjTH{4Fzs5I@=r!wTL28f7M9)!VH)k@a zwEgizk(vN0Pw=*Qt$D8J7(BwgBY$s$_k|C0TKyGFAO+XAFwC9+>V+msLM=&S4E_+Vh_QaVc1vhezm8qiL%h%V|9Nmm(J_pJjsTupqJOk&ACr z-h*DC5l_8Vilm4TDFUtX^PC^O$fn2H_ego`9AO>~%}FFytt4^?G(EaM5r5+~DvkU6 z?`Q(2C1R1puTrlQRt_W$dGmbM)$|+5DJ=betOIzBp+JpqMXuKltyg6Xlo_H-fF!$_ z=;yY|=waK)4@7iC7`=uFN136koL2q_phM>vIR>D0BYJ*#kx~JYz#);^RZc5E&sQE- zfIDwS&yNT_S01Lq1T+Fx)_M*#WeJ}E2sw3 z?v%sG0jx-oIzg{}!^35t%j*|<-#bU^Yx?bY?zfe|P6nt98yQ;5JV%rPymD6LN9!Z{ z%{uu914J9;<)w}x?L~1GGerCEMY2}ETfd0BF@7Cj|Ga*$sz+W<`a{rrUVE#KXUp&E zcb9&(&l>}vcmWZNl(`|}Nd2b%cQ7hA(e#aRtbS7raO3ab2fy_zXMr_xCjbBd07*qo IM6N<$f{Nx0rT_o{ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_6.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_6.png index cd916c4040627d74ad485e83a77231607c884129..713e66f22a3c17457b43743e16f23f4bf10059a1 100644 GIT binary patch delta 791 zcmV+y1L*v>459{*7=Hl(0002`twPcO00QYrL_t(|oQ0E5Xk1kkhrfH@OD1V4FTpV? z3}y`IBHg5lG-`APv{KMTA(>{tMQ5d8K%;_)pz|V%V4>|IQK?{R7d1?j8O5E8z93i^ z+DsNfT+NgS!K9dp)yZW3yq}9V6^skN-TAoZz~TN5W&VvlP=DikIv{q<|Fry9>_|$3 zr--!u%ov-4eq)R=#^wlsvd8i0L0EQELN6YAWha_oKDL1QvBhk6=Cd{pJl{6eu6V#+ z03PbML08;C9e<*?*sBmA>D4*h;SJ~1kp}QK>ER9jQZ+P%i?I+$NgWoXo%Z^erz&|# zpl4%y) zlSv?10sD9dU^okS6~LBi0L(i+0|316c?sel)d9l<*tNA%0+Kzs+hTJ%x9Rh%T@0|j z4X}NG1|6T8%+*=9ISXWCH5fLq*bf8SpNG(FlpMy}+djw4Mv zh|}Tk-9#$%dx_iixo5iJX+jh1Q2Ja~^jN^5uqsLFND2eE$1X1c&<0u|oWQvuh-pK4 zU7HTa@JAbOLpDq-5SzhKud~vT8I+8LO_he^g zjIG0sSaAu88OZLgWTxWtXKwP8I+;wy6tnwwX=~`=ZwI*ZXaMe&`jf%()w#;g7Y1rm zfGH4W4}CD?9gFV4HyPMo@!osz+;&epjsjBvczyJnF8~O$(W2=jx3ST+>K{1B-$1Ns VnGkV@1yBG0002ovPDHLkV1h1Ue_;Rs delta 1586 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 M07*qoM6N<$g7E1sl>h($ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_8.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_8.png index 3621243f71f10b63c819eca3ae8474717db41550..567ac58acba78c5e86ff50b97751006c00f106ea 100644 GIT binary patch delta 813 zcmV+|1JeA=47di67=Hl(0002`twPcO00RF>L_t(|oQ0H6XdGo2#(&>8vpZARbk=H3 zFpC@P!M1`8)W9m5T}#19BG`aal?utJlw8{4MG?BQ?ZNca92BD-Gztw)6)fgbTFA7Q z_Rx?*5Gz`kqO_HYoy4%&*?+Hx-SnF0^z!oX^6>uN?}M$RWPeM`){=EVI$8(d8Bjit zOU-}8y6adW*2uleY`WX1R%X*CJ)vcF=cPi+LXtVVzw2nt+5H-0a3;4IdvGR)5l+R& z{i4*+#8dGkRy;&lmIzWwG(@P1;aAS>Q_1tc*>5b(2+47@ zDk33hkqD7BGQD3Hb&-zt{K%~R+UM4T1kC4i%2pS0YwSRvg)D%@-bXBN~>nZ z5S`e7BN3W&O+ZgK0XVeXRF4<$f}SO7geVt{;RCfHKWm1Yj!`UqkCH{7a?yEclaR^0 zew_yZlPK3B-B9UVfgTtAjRQ$2?Mgj&BU%8>DySlcrhmXd$><~<)-`>Q6F>{iZq!`M zhEarhEs03E3JBc~yhF;OnMeUzt)cYPM^PEft~%jt>8v58Lpqyc#Q zpjs4ZNm%Ynqg>3xOoSygd3&M$3V`=Shy7ym*C~_>LGWXTbi11Ol?z^Jtjqr6Ph#a_ zdZ{c?O7i*cfGg~q zE&{Vk${ma@O3rf!@U?EU@0qaf5RNJ-cQCr6@96x2Ob~R~H&p~`6Gl#w3(CxKH|G=4 zlf!q|H{AtPgCHyWj?N#b1OX~{j34hyZD1w{_-EcCzRrIJ8U(ZUHH*MZaiQfbOKD9` zF10Js|n3%egzxE<7faMVtKGk~zk7+V?jAW{m80 z2i7a1Tvex8c{71h-T4u$?f|u~8H|}WFj7#PG^?CPVcwVs9RZHa!N+#jGH4L+xx)gI zSPF<7VZrN1HRoMX@O9JwRfTF~zpQ-^B6=Z#t|Ca2^?xqaerG@+ty;GZh<)W}+W1FR zsi;uo29eY_3~kz);!3#X#5KUTnWTb ztAZpe7p?ZI^H{b(+Gg*52{iz^gs;GkY97&{>d1FH<$Mt34Rdt?mjTbqnS&F4ue{z- zC%p?E)qh>cWiNnZS`}6xtX*hv$4P5NDY23Z{4vz2BEF zXVZ&Ue8~eFDPNwTdCw-iem`?9gKl4?yMP_}O@BMa?Cw;eRN(FW=z*1XJ;Nf}b@X5- zi*yaJlO?!u%*UBUhVW8BHs`OT{n+Z~%1XAjEK4IUMLorS=3b>JF^=yx%*qqzJSo(jF_$FhNJ#wBmSm z=6~78Obt@OwjxmOcUby$TQ z4q5Z@VsyvpVkZvz|CO+;Q!{jp=HyOf=Zv}y!T=S2nPIyqzs4v3}>T+9G#5 zU(*M@NBbFP2IEJ&he&6+nO1cNTn4Bz!GG1x&!Wl}R%-CtNo{-;%NbyX2|mU7M78!) zGqhG55|PRrT+Wq%7$Ax&EdsAz*e+;mm7jTmqRB(i!2pj+)o&?tM_6{@4zZk~-G_Ef zZ3jWtPS^T@!?6Ne(70`3rL7cB_10FawXyJmG;o==c^jpIB|p8@28QDll9IsQ|Ef$J=7 z#BG=@%A}0wy2b_>8~%PRoWFKCUrQfakDN&}e-+VMvvmXtl>vsp4(D5PWWlLLZ#DJo zfJN#2I#C?ZQEIScSghmCrPXvV=YIg&Kz@U^NN=H)J~isAuSQe^TF9OkSoff^kvU(! z6pB>-Xlvs+4e36#Jo*lSpg9`Jzj6&)*I?bF%_aS&=@GF)_{X8hZuBZx3);Cu6a?B_ zSD`Y$)h&2MINC8-4v&2D5&%f<=mKg8%^=x8SiOb{vTN7w9q;+)TsQ4=j(?{Bh;}YY z{U|aF5JfgZy(?hleKaU!U|X-=z18bPtP7|@s~-?~ndq-D!b+!WYmvwlgBGk>XvSx9 zZuMCJLP3^LRIzBMXM-Vf{O+2;nh#~!s37iI5Bz-quk}F|CV}kiOb~FnR~LvDEXQTj z;CS!Zd|c;0+L#swsL;_Y{eNc|Aw#)DeQY7^BAK#leHzfTlzJK{g~{qO8weG;uNV*2 zW2_^KY})Av@*&@Hw6*qh4Zsza3$PZ08b}+{#Q+GZx=MKSY4W<5PLnVFr0K`+NizWI zd@mTZd^T%@C}=eUbk_>2(^?0^$#ow@{(l-Jb4`?c#+Ya)RZ<2DFF<(5b@|yRK@0XO z+WxihC!wH13#NAUSUuk^piBqJqJRND6%qY^I>2V{H10|8m6O-_}2Ia-rb zWl^fQw^W)anP#$eZFBGH%W&I*KthskBbComX#0<-o zVbq_ z=h$;^{%vjpL0CWR}Vl!4JlfmsRDq1axGf* zRwl9S0e{7^2_hzU|Bwgz>+n`I!@FPE%W<$zn5*9b&?%(Z0)1Ydcm)8pWQd_Cb~Y~s zA|mAr^Ae)bwUNOK5dm3J`kOn>7sml&*8_Q#6t9i%x5q?88iz&xR6cvw5BC2oA|gv| zbbnE)7sB*!2Mo~0Ztcq}oRK-}vC+28&8K3m%YT3~;-}t~n#?^{mzMAA0*?RrvHY^s zegN@(KjAVp*>Gx`>UT6p&);J%g~GWE=@r)2C!sciYy@E l&LB}rS<3RiS5T4-_zwYEYgX=fxS;?5002ovPDHLkV1m!thui=F delta 1570 zcmV+-2Hp9x2B!>=7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000HqNklmmcYAT4Q4j_!vmpcN0+xJWY zqe}7!LpR0Oc>?HOSF`VnM@v`EnoQ@=dDY7O7f^?jPksv_j_VH2szLkNIAfTV2boONDcc4LVm3_@lpp>|1N=wl?LSdqk$@x)O z>!DeE)IJsVMSpC-<+!b2OG$KI7FEv8>N4tlOOF}$jZ_eS%0OwN7pYunkCvi$TNIjn zxH+O2wd&++bE@nc!FD(jB0<2%Nt<*PN=CGXw4o+mLt39;w)0yHz74b%mo~8yM(JNW z`PKXL>^IB4XDfK5nJ|wS6zi z0nocLD}S4#x?Nq-kXj9w1c220=ATEvWk`-ZjstS=s17rnAIU+g@D>1>zCDTxd6Ens z2sEqL0t9)(#y_Xes+sK$M%i1N_a)6yxmm+{fndq?+P)g&pgKk8&63j*?gU0qL9Z1p z&>jdQ*|=oz5nYgqq9UP;+H0vskc3Erra8Gk<9}=r$@o`0B%VAp5S9-B4bjsrjgP$P z%Tyb8po{^ujiYqRja-%KW?%2pAjrsqpr^bBvZ_c=G!`M&43J@Wud{QYlhzM;lHfS4|Yw$5vR=}UX572>7TC`l!##G3>8d_6GN(xuhzhk#vrcjI| zbSOryj0%i8N1Dg)YKak6#K`~}RnzBJM1ONMKal35dS;!kopzM+GuKuXP6j}KT8Jc4 z5sco^GeP$%*(Op_-`P0Yvrg}j6wlV#D}pm-G=D*_+^ZlmfTSpzrCSvK>4D%?F9-u_ z2P@Kgj*RzUGC*G_S`%|QnI_XJKoURed8Hnecu6Nestk27XOKJk(J^$UxDWsP1Cj~+jTB9fm z$zCHexPR0ffCF_BT2gkId}FHy0T12|E32;xZ0#By(Vzd^exKmfnX(Tz^?g$%P%N78@Nek6VAXHt+v zb>YsZ>t}wdeE^FItj$I+>zc3(i3Bnor!k1-R7s!gHLG1WmoUJr`z*=~$apT78_d&( zJD)S4#Z>%vjiD%;NYAv-B7gQm?UZ5w3W*IySV5YfWdzUp9=&>cdU{Lq=(^J9md#N= zX?jt>44`eA8;oy2IzisgYDUmNPrT-QL{Cre{+zF)=|gSJSz%w10o-TY#uc&4{HGi_#zH|6&qxb$*VN{0NM(x U$Y@R|VE_OC07*qoM6N<$g3w~^4gdfE diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_0.png b/assets/dolphin/external/L2_Soldering_128x64/frame_0.png index bd20ae84369ed42105e0a1a546d1f1d654f9be80..db687725927834ad03e883cd585787ec16a4b930 100644 GIT binary patch delta 726 zcmV;{0xA9S4dMlm7=Hl(0002`twPcO00OB=L_t(|oL!PXh#X}Y#(&>Cb32n9+1nV! z<)WD_?5|OjT(N^#Sc+N*79MCX5|k^{88v}mqlJZyc&(OJDFV)cBnm-95w198HXOPV zqO;l6o6XM7V==Qz@>Vau@8SLPe6It7lK;a9a<~WVe#*U}tABwcsc01*gC_G^;B&H- z4(q1If1p)__mwmV?*sKJ9r>+d6&qzFQK~rTfN}X0X}7A}Kfb{OUcb0IWR9 zT2SszVlduWDW;DHZ>7%Xa0O1?n17hvG_kTLyu6WN{$@_ha;=7a!vPG6K+}4tza>dB z@&XRsbI3X8oPTR%1DT*d%@YGRVga`9lZ&hkcN!2aNP+<-GrTr(h}?icWj z>)z3t?}$c`t^l5vy^HH4`ju!*^z|%K6=~>0%>eJ4Lw`mN95#C7ZGg?pHGcTqg*f!z zb8_w9c7QOPG<~1SNpyg8?p87b$N7;#*?}(#=wK-!&Ti#qhX$JPeq_RYNy&5Wkjeoz{fu;w zaRT=4hJTMb-+2sPpb38{ph}Uh&M?AGIiTpr5N(f?Jb{7aw|B z1)Nsqb@H>StmyPnJ^TvYeqe70Z2QQgcz-`53s1iM9GpSSPV~_y%an72rSpN!Qr~_1 zW5Ovob*G#H;)5Fl=3_dcR${b5&8xtHBYOy0JS?9>nVS2&*C@|87a|TQlOM*62E^Wnaa=|;hIJb5lLjv%f z3Y#Mrybmf>r3Pae3kAwVh)@T^Fet-Bl%5o8Q3I))3yNVe0wLTj6CyHPjN%9ej$8uH zp+#@NHH2cs9k-JUvRT%QLr_6Mfv5l#F_tU{!7vPh#gJGm$TGIQ!*F=Cl#n113RH$5aj{r9UTO9Hp4R3Y{m?VQ4s=$ zrWk2GQ(z5q_UL`e1Z6SiQ+kDkF@f)jj2k}^fP~aa3}UTTNMRC0s25A5LQ;$Bgs2vU zWl}=~sv{A>2wwkxiwAK*LC#6}&*Y3AapUM*exL%k`9LO$<``t*sN&Uu)^ju)uTD&k z zmbo)ErEuD_=X2({f`@UA<}=QaXCeF!}`d57tXdH@CDlD@XrBxiKTwiSKNk=i%ND@f$A$W4^ly+x?ys-SQM_RVp^Wgw9=T-rOu4dma9BXzI#owWsQQiM@$TV*RAc zz!!0vsxD;sv}W%qDOp#oytOHGKTWu7VhEHM=F!;`9t8IUA6b{` zeo@W*5i?kkmU^jVP~_iO)L!j5Be(qips4Cn_-A8!nf&0on>`v}pvJp-+5E}8y@2i| zwam44jZ59}*&#q?)44TnZL^zx@VM=8rT5i!KKLg34YqOH)nfrqOOUXB`tnlu)@k>* zx7(k4G|aB=b5ohJv>9J!+1(G#d2Q#H+-8r#*Yz7pn_QQ?iY|u^Ta{;yrtKuA{GGn# zc(TI1e_&dU>0sABL#d_zL9MyDe~^HHg?ICpu57&RogH%WP5O4}3y62U_tx8#p~>Cx aMLb~qz$CN(>RyZUFQkl1A`Zu7miz~5 z5M#PQ58@>v3L!a6>nTTx9t00Y`~yTp*@K}wqOd54M=#=D^^{`{g1w;e5`ySKkyU%b zpd%8UaVJjCPItc^x<^UsR6O-kU)B4S1G)wOhtbX94zT?ZcYlUH?@E%Ut->Q}GQR~r zo2_(MH$DCXts=Oqr9p5PsMqPpZx!n}R)kV+qTY6w75 zvvD{=80g(g<62K;Bc|1-TLn;T@!N;Ug z#yzlm7=JwEd;{o@Q!i#R*?cZ9?dU5mUtA&kkY)7SH(S`?8k{kB#7Qc87}zo|GB)L$ zYp(owqW62MZ%bOKv_u(v`}#NqsGLut?~?kKe$*QRFE8z@lS<|BJyb7sCtL9Reb1!4FCWD07*qo IM6N<$g1h8bb^rhX literal 1768 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 diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_2.png b/assets/dolphin/external/L2_Soldering_128x64/frame_2.png index 514241266b9dedb21dc9a4e5a72b77d7038a77c7..c0adab3468557f3b1315cdfa2922db8d0975ca81 100644 GIT binary patch delta 726 zcmV;{0xA9T4dMlm7=Hl(0002`twPcO00OB=L_t(|oL!PlXdHDI#((d-lieX{lhpXJ zq|zDCdp#(W_OOe1@F>-T=)r>CCHO%O%1l5Zc=G7YUiGB69s*89szNQ|L2`&XTY|2H z*jcl6C(Z0U9%ff*-_y(Q|M32w_rrir$^YSWa<~s{e!~5soqvubshBBR#7!2=K)~Wm z+N+xy|ACnze4wO5_yDNq=^&UX=CM*nQtqUAI!7b3l;w?Ujj?g;k(9e#p1(&GfS3E( z43wLrJ~;2s6-Q5Z-c2oFZw^l1JpL%V?P5NjaC;@ggY}#~(}fzYI|dLJ9Uav@-IXNC z$qU%C7m%5mS$`udc)qcsp3`>7X7l>9HNc~yQ%i>$151A1>j*?spD8%E`_vGEq^9rH z&WSWh#z5%j9SW-HD$rB?*mO2A4a+{jUmCfjvOIaXX=i#fa^QMA88%?;nHvsd)ZGGp zvE{$D5E#)Q(lwx^>FNhdB>I(TNc7b>QWdEeKut{Rn}0n928ItFe-B_ivt}Lv_n;pJ zTPB1ECC z!vm}buimm&UIi(H^}Y6^a2e+ep6Kc+L4`>l_Lp%WCIJKq;KPeth%@#fZM?qn^A~rD zu68tz%72x-`K1WQX{*n0xcFjT`RUhQb;O+esU}{0Lx$ib7TPbEsdBt;Qe^Om;e5rS;*E$EIikBXF zRuw!UTJ8L-Dlghyq_sDs!-uY30l&20qS`v#K2M?Z`KMqGeRiX-<6Cepo>~B`C%y0U zr+S(c$y*ZAx2b;L_)VHfZ%Rm#j&w(wNRiYSTd*!1n_Yo_0m>grH3Jx(>i_@%07*qo IM6N<$f@KqE@Bjb+ literal 1779 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 Y0nq;p%b?ZI6?y(bDn+WiRhnP<56?u6S^xk5 diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_4.png b/assets/dolphin/external/L2_Soldering_128x64/frame_4.png index ca696e4cf425d7108426461b313fc8619bad15d7..3249388656a2480257f945a9e52158edc1387bfd 100644 GIT binary patch delta 726 zcmV;{0xA9Y4dMlm7=Hl(0002`twPcO00OB=L_t(|oL!PXh#X}Y#(&>Cb34ObvUf55 zSuWxXXderOkQ6(Jg{4Fb(ZYcC5`vOKojFiAtWw&UQmnK~ao_~xRER+=g!=Woj zyjgGK&gEw3v6xvUd8?P-_watt`^N!6#s6Uh1v~(*e#(QPt$#q0RCWrFxXt_y_$+tQ zVbj+54|Iy~p^^sSL!eotBfnEDVzr8-!pMqjfhNvn^e^9NjZI^Vq{7_A#d}l(ShbgT zpt?Fq!1!RHID9U6FLOS-3vlw*(I@#G6N~YLo2xnIuNNfDmm0WfIDohebl41aPm&~~ zC}G#VjGS}Mxqntx@=|L>L!)Pqck}ww8(~oyG}2v7ffYMzO$4H?&m4?92@QlGsqK3$ zIF@GV6bS9CK}kJd1BPmzn0FJ?xJm&2(!?ZH)$yZkJM&wS0XO5>xCN)5-!>qp8I;J7K-w}->-2gnz*FIVy)vrWjqOYfs>PSN$8e+U}c7GW;aM{F3#D5to8c(&tD#t zgM%$iqkn3(Xn!fg=`}B5JYIgKsO{uij{P0-YaGRY{CEl*Y*TC*JmVx)eGF_~)H%y? z&b3#5I@J$-HTNVPtF}}*jIQiu0CVTJoBQs=*+zzQD@DzVXMR#srC;gY`psZ}QuFF# zFQ|s6h1V<2sJ5~@Bjb+07*qo IM6N<$g2we``Tzg` literal 1784 zcmbVNYfuwc6utp@h&+pJ5k;4v^3Wu^n?N2Ac_cxi1SkZFij>V}11TgMl8ppxEzog% z6;W`2Dq5;olqyB5Gq#kfbyN^Us-hw?>WE6UidBj@R_O-8_J`w-?(FWl=ic+3_t{;a zl(5jv#n%M@;3kigCeyTtexjW1>GvJyG6hYhQ8E>kLTage%tU}_4XGv|xgN_Rk_k*x zkk>{;0ARmTr&LiYMZ5?n^=!;0!?x;;G#Y@2NUIUUa|jAj6InWgm^s*dj0x#9VrE*X z0#+C$M7A!j&_tvZCMfa399*bjMlOINtRh;0o}e(us?Rl;MOHC$Os|Mu+qOAOXiS94 z5i?&qrBWn864FFKd^WM;aiTModjwC^3_E_H`6`qeAgUvB5l^D>`c&D`w;%Y?!0h+d>-v5}ahhOj=AhT@r1;1ei|WyA9a{X>UY{CLLWDELTe67Cm90;Rui4{pq1V)i2B}wK^G(u7~Ns;Dk(g>kkHUb5u z=?oe&-yCeK(d&?lQuLdZi{8k85t!qi-x#Z_}* zewbFk#W93Aj@SI({>B8T7QF~59vKrv9f3Qw4bp!bVF|Y2F5_f z@T;n8j~9bZhm4oAi*nXfe!T1H<#zF1A?Q6gdj3&h$wIJmGg{idopE*4@%S%JARIid zIA&kFyY3Q{K4;`bK(BMH;E28P(~^o}g}*BGmiO7=+3B90Py0B-CEg$%#wwOgM@C+B z`^n>G1q81y&MTQ@+*w+NWXfV!hd4Esw1fR_y>|_94c+>ajnSCVYxRBqPZn3U^>swe zg`RJ1D+mPrc`hm2ywmz6%W9C!N8ys-uPjyfy*e1K-&xuuf(5?yA;2dCgX~)M4SkU* zAg2y@k7Dewga5#5JA14B#6^d$Yc zaZ}g%TwdF^+07@Yiv?OYjdXZ;0%Ntz+wHSC$jD4bDY5z4;TNFsW~w%|GRjmQcsUfD z_-m8&qWo&&{TVBKqsm9RZhL?w*Qe`6^M0;NdS1M7?n7R4--Yt2IS1^ViX`bJ2aijD zEU<;WCD{5!MjGaRq-OmhFndG1IArvqA2+u*y~a6g*W|nlYaMoXu2SA^dap#FPYi)OujB+BxvxrJK&s0jBs()wW`W#o2EPUT=F*s z2DxKvKDzhNT36I+M4CE2Ls(0F!BTWl!|0208LE0FTS@I7&)0UY4 diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_5.png b/assets/dolphin/external/L2_Soldering_128x64/frame_5.png index aa7fc8ea0f4d658610ee89aaf2c68514807c758d..43cb2a283dc22f381873bd03fb40afd4aa2188c7 100644 GIT binary patch delta 733 zcmV<30wVqP4e14t7=Hl(0002`twPcO00OW{L_t(|oL!Q!iyUwF*w#Va z(?60VIr$K_?SEBdW@gsNhV?7WDC#*ahpcS;`ZE~d@vvQMw5Ks}!Y_CogV;9!Dsb*6 z)DVHBX78o;k?u_TV<7Si4nxW+0eY&Rs%DNUEfRpgG;&Eradf>|r@9+Eu-TogHQ@A% zw;jl+*N5<{b@sIo8u1|3Eg(>}bo~T<{YJb?{KGg_8Gox6LQR+8$881%h7Znt1aKy^ z#*dIgNTTqX$!34s0-|Wtyn8XHuPvnW5Bg&;E)5(C;F}?|@RSHxLYn@o@k$n?;3)(t z3+r(CP0j8jjIbWO^^*m88Kw}Ghpi{!3eGa#*9J9|nDj}~!GW#>2>O8UUgEhVWd~9j z;0Irkc7HRD!Ny_qw1p0^w37x2ySv9<%S%7`j^&e^WH*?0|M+BYhz0NTv6c!M*qQvjnIt3;}fG)L!-mMv$N5<+Jxx4Yj3T%D3AO zMkTL5@sbKyRu;7KvnqYqT0wR1JG6IdV-@`JPF6ti@n%NW{`PAyhlHE)=U-GQ=ew1K ze$B2{`LoY=C$N+psYbdJ==asFMNOo4B_v4)`dgYvvDBQ@f~~;RY!w~?iG@ZF`*O94 P00000NkvXXu0mjf$xdd} literal 1782 zcmbVNc~BE)6kiBOkkgS-Lo$$TNEQfqL8KzI zR7$PZskfHOQAf);qJpBWsMXPmc+sIKtyU{mm_h78HypNqIR4R{-F@Hp?fbp=d)I8G zEPa*toWMB%0C=Y)OXRdHrJr~vgMJS)x2Mr!AthB(Ye^kdgj)zetR>Y1m}10p2swdk zi}QPlSO8!Y8Wc)OnU*TlkVY=<(BayQW*Q9uv2ivtuE`}RP)+0*Od{4uXBP`JXhp2d zs5CguoJi;m$t4zIZArR9Qi6X~}^Qfj|JkD1@RMT7zRPHc_~ZW3q2}+e*oae`&l? z+o~uw6Of#+k_8qGT@qdRESOH;+Z{O+X*R+Pi-E2So+lwS1xCU|rAS09`U_WU&oMvNs>e)CJEysh%`|k#l(q{ zBry-6S5eW(EH=etrErsmnDuR-ea~Rww_=5f76PY8i-IKcW*b4KCn?gZC(R&=aS@Q6 zX)tNYBI`0ojiy7E5Eerrp-r-oMsO<0Lc<#f@NhLxhpN>aLcl{fT9g;f!PS_CgQ+o? zAFYeQG&mi=G+z6ElLyhHAV;VCr*meH=yr50UylO4c|A;oiJl+}Ju1n*I6;q@n=Dl! zrRC)0wWb>8J?z zWB6^TisIm1-oVMd=XZR2PTCPPG?$v|H=14}*Bz5DdF3SbRVlwt@iqOy-qUbxrCPmD z+RfO8O8fT@yE`9PKJErEvRuKfgBO?&3xXOByVSIGj@Z2cc)NXjIwL-(sfL+k9`)Yw zOR>-3uZ*&eb&;V#?&To>vU_oHbE?;kcA9%kl$1l|O zVC&G8lTVkGN<7&>L)boWLl(bJ76c!aj01Movk50xK={2xQf&a|Zpd&+&e4b1d{j#y ztg*%QkbkzaABgE+A^6Ps=+c6!3KS?CO8ndWVa}H5;a0`R75zJJ8s;~CViqrFx^zpq zSCuN?_<|N7e>wUnq^-wm!S&s2SHI*)-ax~$)`Q!W%8B)b;Kvqv9%1TDAYlYUatoZ@97tVeFK!6Q1FW@#Zk7ve9G2UhluD z?RNj1THoD0s)N5pID@?|A!)-{aCO2^@)>Tz@w4ugc7H7RwpgzVl~265=b_!5@X3YA(c$#7$(D cZg%zp_}|T2>vB(g)$u1vk)}(IC8+HG0C{VIwEzGB diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_6.png b/assets/dolphin/external/L2_Soldering_128x64/frame_6.png index 85d1e30c9bd90b8aa7ccdc2355c1c33e9d183356..29d09c423d5b6850c966e8ff59b0f2e93482a61e 100644 GIT binary patch delta 736 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 S(Df4l0000Gz6kW=T zh6aKaPzpXzK#6IBpd|+Qpg|F$A|j9qqK~FVgo-7)ZoF83`1nWn+}-#0^8I|@Kf7cx zt32KP-2njb6h{f=l(bS`n5z@@zvY@QrNo=0D1nS6)T9|R;6S*FP~f0gi>2Ul98+!D z(1x!70H=+bxCAmmx|*jXv~oOMw*hVqJ^#mS6FzI0WD5qphcUmGx98a+Js#mwYDEKXyAkj znZ~D029+R{fdaySgKRniDPb4}*<3oV!cYZMjVYIcD2yTugnHQ!!sek&9>N8u9vbD) zpi=YX!pJFi)Q(R}B}qMx!7!W6bTgAq7*ZGrm&;|qC<8?yN&_-((vg@2(isD%EeLU= z(xB0k8bSx!En*77MDl4=u#;J6^-}2z!#d+st*ELoESR2w&|!vFYfo)L+epgsf5UjG zwlQv#9%smLBVjTqsg|e%r@>VDUhT-PNJYb2W6)52!P13<(xk<8q*%zOQ8#pzM#Wpk zMK~;+&4g4i%7K&!3x~KU%7i%T5R|E4!3d1ArtQ28kBVTF&E*O?kxVv%hy)xqQzS$X zM8HLvTmc)I#)@@D64NR1Y2O;k_Y_v}N-R%cz%i0A#1TaL^dQJm36e0T5_%A2(h)E? zUZYbHX5-uT9!;h!#0{E_xGK^>Xu*jh^E59BfQ2boYE+?sa4rjhR46M1!W2v;#8fb0 zc8Hq8RAN*DlX%ttEgpjkieaCW|4h#G5jBqX>DFi~%Z<}Gej>oJ)o09>b2&0z9aVgjgSmu@A zcWiLCE(RX58y#d_=lsgu#fQRspeJnx2axShSQP?X4}ej<`wcm~c3?(D(V%Z~G5q2A z=I?Ds0k|!Tb-LbQU3(+3wE0Ln}2z3%u`o?zfxMi<~uzjFXj zd3I-TWx%JB0LLv)!=6g|mxn~;wI*7N+vN@K1$A%P^OsB%^$_~4*JNXj3L_4B`vcEe zNqx0hUJV-r8`Oy#{lF6EhErEPMjQt&WpF&}9Ck=ZFYlnik^mXdsR;8uJ!xw$^k*?KH3efTBNW@K%t54DWbQiJ1_Lki70sjMwzG3AC>O;TvWSdJh z>Dv)Nu3S?wURtyFU~7z9*rJv@Yoo5YAH55Yipa$h;P^txMKU&ay-2=o0dp+kalJ=! za@Qk%jVa+;_TDCcJOggqAN6{9{K95a!lPr6C6(6v<|U5N&v$#j|5P=*-9y@&Bjk=o zwgcngT|Nahfb<&fRKMj(op1otoQG8#uh%#OHx%wj2w{FJlOr<=b_lrh(XB@^oRlhd&Z90%jfop zQq=($N6wl$+KS`T#CwZI-yMOE@`^p)-bfQi2U`Wb= r6Z_659q(V>{>!>yFXv(7GoNJOS+GxZ<r diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_8.png b/assets/dolphin/external/L2_Soldering_128x64/frame_8.png index 12bed1b4a04012af0eeefb7566680314c52ba787..f74c6415ddba714419207e9c02436b75c026e2d3 100644 GIT binary patch delta 735 zcmV<50wDc{4(kPw7=Hl(0002`twPcO00Oc}L_t(|oL!Q?iyc)I$3OSX?3;1dyxlea zcx)syg?$=>At~M<7M2n%L<YmR%+;h(N9)LiqQ!NBR5lHnimVa^KQ=sO7v>iy5RCb|x z#DD{T0en`09x!YH3|4tq7V=*ig#QEW@;LSv8B48KkyIF2kuA~Gxs3ih*8)k>EVf80 z%$;4{M>T*|yZHiC7p4gqA1pKWpAFv2oX^e@9JzJyaemuGwE*Ge^&IoJ3KE)?7Ooo( zAT9&#w?qBCbbqWUVaL6MoO8~(F0JInt`!Z9orZctMP<-RcQgam?1Z%ui0*wF zFm5Nb5Q3y`?v3D3nx``$v=as;b+Z8s)jriM9Mhyq0RGa{BvsYnvW<%DrB3OtqE00aEl8y7So8b68+!c0KA#FOwUV5H#7bI_Gn#m=`9IK(!TCWb19O###Y<_4xBp&{{k_qViS{Y Rm=XX0002ovPDHLkV1h|%XB+?k literal 1798 zcmbVNc~BE)6#qg7K~7OYyw`=Qs7ZFSfgBP<2?9b80U;J0-6R_lA=#K+NTePSM+CK1 zE2YR$#fm_+f_6k&5Adpj3KX>t3W&Cdj#zJn z;@27pUMxY8X(km@5{=I=m`UG<9oZBaHj>3A9a9%PRYt1P^n`(qkV#?Y3s&C zNI(cNjvC>MI4V>?aKwB*#t~@(_?S|Fpa>xtw(~wbCJ>-9kys{LhzU_NG(?Pwu~5D+ zKqwL|2*CXPhp`a`ipC8pV%WEi@jZkM`5;yjVj^&wG{uu->Tn~(Xi1u+w4@Q@V_X!P znW!_UNi*eVtI^w#WrRtWPN)}}NIf)|WQp!Q1O&KJpy4Z(96~HWIcmNjfP*VB6$evd zh%i7S!c;g458>7SH+ejU6wlTv|LL6JBc>f~%Xg!|Y~BqMVPGc6#EgpfrSJe|%tpjS z#fLI-U|^uMbzeI(lVc-f^W!adu6?{c`Xb^&y%{LmU6WKONN@RUGU6M|P7u1^y$-&) zdUNUPo*t#MfmL;xwOsgjdy_+5zebuF0%|sHx!eOfPd?3gv2rK5y3PrhGg}^ZT>w3` ztg2eJbq07fW5Crq%lGrmNK)^uZg;y;r`$ltzERrFlCeF%|)5`A3pJGLg%!;_KZHm#Ds7J^tAQ@2p+- zlk!sQ!K^WLvYup*E3ELK(pHjfHH782EU!5@rR6%;&g(1|-f(l)QlCdGm&5*#@zx-x zvPHmq!{|+(!Fd&?*OTlNR9*!O+0OwND39i}Qwd?N!PS4=u@?gCx^n?w-?0U-jZUWd$YBOt8eDM9PrrX-kxrt z>CatO%Bk|6wxha@T~*VuM0?utNknm+!5&(&u3;*-FSWTrmz(>`{S$J@_0=cn$ld;> z{gDKg1<(DtE3$9y@!Yx*XMEBXov>s~DVXH9?a*ES(%rtrr(-A*U+>(O=;rL_vE|c~ zL6_K706a#{yHCH9qXipe50-D8_EVEGSLamYlHlR}d|Y<(fsLl8o}qiHr{U4<*`vWH zG3gE9qXQzM?pDDOXNyxFaPf&O?mz3*W8PG0Eid}D99cH9@MZN=yW|}$ty$8P#_tW$ zrHSx?GF)`edBdU%*ls$AvfuvIocxz=bsgnJc2J@>im^{pk8LkD?ug5|eU5jtyg6ZUKAm^%&~uj=y$Mt5Z--_FzS`fdovjgN zZ;m0R9$dGkpl`1GGEKp*FM?gzQQm2_MN|DQo-7!3-o*rMwzQY8;LZK=+PI01jinpQ xOY-T-lfO=XL_t(|oL!PniyQ?I#eY@Z^T&kD%!QPm^R|a$n?!)P1@Bp##IS)eLc7G&Ed7}szEvv90LJl?3 zalM>zk7yL#hekSdA0q05avC;@1N4hX%A6!i4yc(~Lhqe#mWRzp9!Z(ose^u00(fyd zg=q{F8?zXk4}d4n0z1!i-b*ax52&hr;KLRY!WNam<(D+|kS>6&!?BU5${G?zZxd z=3~`sYB`X$Zk(UPb?e<#%gshfy_P!!%BznKGtmteKYy#zJW?5H970X^X@xaY10$S1 z@jS3oVrruN58w;#`_Trfyh-@EjEOdpw9p)k6H|vGjA0YnctRH#bR%i3`7jL<@C3R! zvlvdks^&k!f&uXQPZngQC$L(Q0H;>P3QTk%GEFaOSNh~Tl@2iB*Z{!<@U0W9#|g(F zkpaB++kXXRW0jgmML%0^N$)@qv$b{T<*f80Z<$Vy;2e9Szpky|!z=8k=is+$3~Tf!0Jpt z6wmHxkx$;0kiPHh&yCH#7Sh`ilB6ANOA9HImM_(^A?%s0!~e3CRZe9F#;*VX002ov JPDHLkV1ifGU0nbG literal 1778 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�?vbazMY@}04#AnHVzaAb2BWSL{!54 zmQe~L1~Rk(Ktnq$5Qq08P$2FEFP{KSDE(yv6yoEd3AM+VBg_N!3En;?;bg*@a0?rJ zxF25K1FEeB(Fnsb3=jzv93+hB9}t8M(}ezI7t2`xCc~kSzeFg0n$W*NIhb2P^hsm_ zL{$j|!y^y~h^o30(p?3EQ&o3ID?(5R6bg<|fg_b+C=?cfWW11n9w@^h*~1fSZD90| zJH}2E>P?{pV&U-6&`_mNWhD~X3yxG*SBE1|a1;v0kbnhI11PvKSU`~U9}5PAAUxS8 zkm5rMfc&XtO@@Q zO&@T#6F7>wEgs4cLp>BmPZ^0ps_FjGH4O-&-~#Z3KfZk!zW>oR{GYm5eKG+@A(3rJ zB>z8!VC7Askb=BPfe@6k5(Xk~j>G!|{H7@UKBd2dHXx9FLI@s4WD*hbSDLXt{{;e? zfKgW`AaO9f8V&(Nt0FyM>Sz=OhV)d%s}pbtPrND$`j5WHf28m4N@Y+OVFdm`gT<&2 z)KySuJj_##fP|@H(2Qi_acG#QI!+b!n}bnNgTfgQ;lC^AKPu@DiBX=vm;bf~WAkrw z5ds(;MP{^)oW-F8M%y8*%xnx9^RHjOc6N5Qx3}5Z*%{llwKc}Lva+(VvBAvD%)-K= zqN1|9yE`>CwZFfwaVS+609X;G2D&z3Lko`J#9_pNkM9jXzx?%Uar&_g53eKGN|4Rh zO*OtYhGUV`j7=FxN7)fxQD+?f{!nP>+ZOO}Se@%piKatSp1)iX8DKBuqkH(S1av)7$w zIU~UZ`rsBst`~;1RntRp_(#~O(E8$a@Jl^n%5fk79wVsdHp$EB79z37ast@wE8ckh zTEQ1cUdfiz0vE9s2b8*ftpsWd+i6${NJ}SmC6&ozkWb$@jkn-nX*7?#vD@ce320vb zl8)E`;SZ3bU7$}2z*BeHfZ{26JjaWdx8%ngqt`)+!ws$ua?*NZvHmZY!ha%f5MOf^@#XrS6ovESv96cPu$5$Bs++0tQ`=+s5KVMGT+9=wQpHpj!pMB6N|du`Z%mId*?o!ydZ zd2>QL?{U?HteCv~Y%I+}VXJjjB{skGNhFh7v^JB5U78Jtz!eZv4OA!7$z-~(htQqE zV;;{TbiY2q^lP|ypC!*h@eTb%7U)LLQezig+}Se5W>jWnrV%5$9BcZ9GJ%kL+|)BN z65NPQI*LLAu`S;h&S{=s_LpLdmfjrUjqa5NjKD3Q>n&cu!qGNuJcahrcdv(Xcc(CU zm@LUvX${#bycYmxWvj8zPPe^FAe4)7`paDSSc5Mjw*-9;k~x1g{f5q`OyLVbY_-Wx zawE}6M6+>c3?;o_=XkC3vvBz~vK)<8hYB55{9%`Q$h$GWl@Iiwuc^V8xg?)Xzt zwL<9m;Oma3iUXg4;=I%1MWY=Kl+TXgd#7_{8|=QU2ia|egg99WK^pSDZ%fAB)835cW6Efdbl#|l z){F3N{1K2VV!v{AfUmHOV_Ytu=B&sZS<3&y_N~BowN%mf_jl9ZKDFyld4KJ~tBK%~ zuI<%5UR`8$Dc!!X!HQ{FAom=_>*O7blZ1|UoC=_0zslKUQf&VtO;Da6;9|{6jEsf= z*CMozI0eyJ(H~(PZ7`B#d&cy&t3^}nSPt;n#I@5?%yPN$=TAxtn8zd+L3-E{aB7y3 z;~GspF1J=R7u*%NV0c$9<`Dx(uhHfnWT~ZjTmqOf@D>tbXY&J0<>N|@+HpE;=5e<_ z$F@i9d*?AX$U)fdiwSzWb9QCki>W)_P)GwAYAV>8tDOQ5rrj$S_LuV1x40zsK?g9<&j=>G$&h-8TX diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_1.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_1.png index 0b99a32ff9c04baa54b66b8e0504ec39ff75ace7..6b614c773b42ecd52ef989e429c8b62ac9915308 100644 GIT binary patch delta 814 zcmV+}1JV4hCAkKW7=Hl(0002`twPcO00RI?L_t(|oUM}0YaL}2hoAS%WHL=IapDI_ zAvGh2N@?j8ghouvNJX-eECoell^8b?iW{*uua-hx2x(T?SQ8XcbWz1cij=%D^%Dvg zDYlf-Oi1yzA>K?4G&g2uj*F(?AK-8IJe;#QhadcZ8BG66A%Bl+UcE~(NsWW5XCNd* z0Gn|g&Jaa_0L&N%6+-R^10Cn=vS%Ok0Ut2KON*~J#&&IdNpwTVGl)>c6wzI%!c0dJ&91>@A-AORP);jKKm-rpz@9CD1hh0*M_ z4BB3G7_-`4cz@?wo6(!W55fKmK#27|>6=LF*9bfE4j(+2I$h=C-wF1%-xMgEcVL#S zi@zdYY()?n7bLy3x-Rxu0H4^mMswPUcg}a9#s_bDM~v_M?%g}0BnD4Q_~7o!T*y1e z+cRtx5R^!MZh3E`w?eWrah1+JUh7$BMgX*!xYl^)uz$!CUEeRMs))DiKrAs_;kVg` z#7L=^R%dUXD2k2gy}DE?iJu&LIX)^Td-M;V#25E={przDA@n>usxHs*Y{ccMP&htx zh1j#Q+rA)&pQEIh3T$3va^C9+Uiz+eecpUCme%cQ@cquuf9mUXD=+SgNQ_ao%?a;9 zTD^Vbk$+A=$1=a;ve1|zhKYBTipRF`46vOM#rSdtRVd;}#CDgY5Was(a&)F)sqX4@*<6L=sz z&;(X77N0{7;cwD}>i}V-4&e=&@C$0e<{83gILjo95QN?^Ld|7pOku&THSrl*`j#?b sAt%Q3QwLj@8VlOga$;SJ-ShqWFBa!KHY7J5BLDyZ07*qoM6N<$f_lb%u>b%7 literal 4782 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 diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_11.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_11.png index 8d54da6c61b0b1ba2b876bef8fe1d023ec958909..a90b2f6c00d38252189acabf2a5b9639aa36ee9d 100644 GIT binary patch delta 798 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 VFrQLE34ShsqrHn=g^k~-{{y`aaz_9F diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_12.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_12.png index 84046a46c8fd13e533bd2181f088fb726946fa98..69605e7a20c499d9677c1379947530ffbc116d4e 100644 GIT binary patch delta 731 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 diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_4.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_4.png old mode 100755 new mode 100644 index ff0b1fb289159caa83b6b6e1c32044a261999363..8ee956c4bdd53353efcd4eec0013d7ea346ae41f GIT binary patch delta 794 zcmV+#1LgdW45bE;7=Hl(0002`twPcO00QhuL_t(|oK=%iXj^p{#ee@VcS$C(je?NP zS?h}r?qP8-TZPdmC{rrk*g7XDtwUtWP(i1A*tk~(U#6%aW8fq~WRz{tA*heJTLm|K zNX0n|icQ%{D?TJ$+Vv*h+~Y$B*7I`Ua5!){93GXVD>bQoF@IQ)L|KwzNzD^Iz9jc# z9?-Rb_FJOFI;7KU{C!nYcc(P>pg&TT>~sa_z6cv0ukNdW_f#6N?V#boldk}=Bxylv zJza|>k@%9-lA;^$Ccfmk5FicSBM-O`jB$Vz*u4iC2crnkiEz(9Oc9Jq04%=^gQtQ5 zcpBIQY`hGXCw~X#J`RA~Vb~v$2GkA#$TSaa@t2QlUAf9p{r#ALdvZz>q&1gMYVceniqI1|_%!8r*vTH~{z; zhJJ)RJ$odz08P%8A?s2PNooU{d3`J(^N#z~mtt`G?%T!(ArS}5Qer^+3_D7|Zx_IM zK$s_c|4Z=87k~i`vdjg8{Bs^K43z*rrL+IG<3^nrLbUa^a9>?hIN)Re;57N%k^%?p z7?O-}GJmBn19zz(=End`GdaKd-c8`nXMKU`dP|`#1L-rqAmy)0<@dJ%slAesE=8zr zr4W))=ji)uR_e+d3xTTuxdo}E>}&w+k_TdFspuNQ#Pb#DORwTAs)=q&yV YvlEedk6GSlGynhq07*qoM6N<$f|6cyeE7QBK7zxzq<=MFa;06G=?;8fL>jHXjH?U5e zew{jN@-fD9?in2;&AS@cec$(q2Dh+FXKGALNPI0Bf49LY9)DEXq15R=2X^QT@MpA) z@$p^uAq0YCU*xpt51KLt;YwbUhX_jY6GB)QQQI@8lbrCChWE{&ANbBfa%Y%z!Sn1P@55Om00KGa7!*E2?|vcvu6z zsiYa`(3u*9Gd>s7$5^j!tJh)@phJmDSSO}(4b;H+WP6gs6G&hZpmRfKv8$xjz6od~ z;I1th)w-($__iLw3FYCCq2&lOa|6_pAe;nR*C%47j(<|3$H}G1UskWm^_T?kDsYMy zsDRbFmBw2hQQEJF39Jf(jx*SJDEug~qng`~_NpMvGUf>K^`&l(l^yjRO zwDk+Xe=4Tq@z|{K$9O7dw!(P*LI`ED^^*#Vj5n1^%-do z3|)wXgH#!)3FflV?EBJ~m9S2~<`E<>L9vR+R&~IQdsc2}2lFEt?kYLnq;j@Ii-69H zbZ^3)O($p|z!2(bs#qsTn!6HODeLiO+B~O`V2S`)w}Fi<((*g?F*$Ujcduc6fqT0)I$G%CcU|o-0mLha28af^-OoHcL2Huhq$x zY#K{7`7`KF5WB;H`@e=&u#l2KA_fI6=Ww|<8<%P6NS|rf)yR;bf*9#WP&6a=GFoby zc;}X$YqGepyOL9_I?$eH(MA9OpHZ`2v8s~N>y=g_LIQl9!4v_ol5T+uk{W9xq<>bi z)S9*4?SPjAvj`JFb4RAIV&i)^gG)X+Z=~sWVmPS4TNx<1LwqeM>M?G$@x7$0oUapB ziC7{75*}bEhp(l3)riXY*3*wcy>28ywlMuQkSen(fr`}roNhxuY20b2pF*mRX3N8p zZvoaR%Yv)_Bkx-GD?`XiNM27eet%^Dr&_^S&~!a2Wa^c3X&dI9XBRj9%zi(tQ*c^|gewCNFn=LEYogCi zTKhm{&J`*HyFZd(V@HgR-yiUJgOk1mcu>(Hd;+XlWJNWwGN)LXuy*tpXo#E20X)KX zBH9Fs%t@O~74Uegsx@(~?1;VGjiB8m0I<7{+wccQBUxy0-}O5F}VU* zE+vFk3eM-3S34fmV!$b9EY2O(veIxfJncDbM`Utco90_S3eI~eQmyzjSnFIzCefo+N7PZ3|Tq%X&-yC wDDeP4d@sBoh&WOl^Jn6IsDV@sNcaB%Tj%;%Zz#%R00000NkvXXt^-0~g8F^fI{*Lx diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_40.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_40.png old mode 100755 new mode 100644 index d413cf0ede7649a87df21726f796cabe144cc090..24de01dabc88b9eb9f4d5f925eeea0af2c259fb5 GIT binary patch delta 1018 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 Ef?OFE^8f$< diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_41.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_41.png old mode 100755 new mode 100644 index 2770772652d5d4af0f454ff21659edf08139f0ca..beac49ed878b9aba5eb00f9991b226e7d3427e16 GIT binary patch delta 778 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 diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_42.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_42.png old mode 100755 new mode 100644 index baf3c7c79d561f7be0ce0f6ea3c06befebe5d16e..2a095979a876227cca3cac0275c131651aee73b4 GIT binary patch delta 738 zcmV<80v-Lg3+@Gw7=Hl(0002`twPcO00Om1L_t(|oV}94Yg}a%#n1P>kqIG~=|U2$ zW`Y~V5u579O5g=tbR}5KP?uQ>3c9Nc@r@KLr6A&}8%bT+PKuL43u4uoSRtacQ;K3x zSgTtFGNq;|I$BY^D!>s;&R1$}+JN=gcXj2A0UUKzt2%7iSftX*b{t&EQz8k<6 zgD;!I1NC3|cA_iyhNy_&050NzJ5@h}s4uoLN62VWHV3h_>eY=rPh^9ZPUUOTu`F(+ zZY^LILO=sA4m+;6$O(u69U>-#byj!47lh7-oDh1rhJVV0xjXAS)}fbIt7_6rtJTYg zNIX*N4Fxo_XTR=_;{sC11p%#jR>^!)7+6X2pVJGummMn@$x`kC~%RCw(`aMHhz3b_u`9+H4UFm$JTd@`-pG2}taa-?0ZBC7?W|B0X$w0|GJ+ZIyrk2qB zH{FHp-g&j(e`k4a*QtM_pxc9qISqz&{qem&DZY8XuhM2(6Nz4qBx$sMdep1wKlK>< UfkyzU`~Uy|07*qoM6N<$f)>PVRsaA1 delta 1457 zcmV;i1y1_z1-A>37=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000GPNklFSk$t(a0^f;Mw{z}KsilikQjqNnH!Q^vtB)wFm*3<#8iNen_ zR=j1^?5@FcB-0!N-rW_p!*pWFq9Fh_Ntn`M6NGIouz!%sJH|>_NZ{Q;H01cYXCZ)Q zf*rFQvO9jTz~gkQ^SQA#!FCz}X2TmhoIn^#2d{Ir{kfHY$+!anED1Q>xu{F?KQ>yOEqiOjS*l6k2KU_GB!LL2Z< zeKD*`9e=sZrt6Wt?SJT?Awb4}89^L`l=4JiGGg#-@8FI$44xJLCI5f>oF`k-xy!Y| z`jlcLRrc;A22cs-d6(mnk&$};Vp~s^gRnl?D++UdR!ySY2Gb|Y`QtcNSt&amw*0v> zi5r}aHWd@J8dZCKN1X+?*I9AUj`-?20y5I0jDI|LCZcom_O*<$oB*x0=7}D^1UZ!7 zS(vfvyUID4<7g_3Kivua=IT6{8*|icy!OA3f2@#>II6vOylhamf&Qd2w(C0X01;)p zt0`LWfCkaX?Z}7;DD1GO)n=t6q=6oVd!G?jXOj~WoU<}bjL2OP54G0frQqzs3kGlT ziGPwmL*Hy-%_P8R!(;w&sHWh9#R4ArnQ7tpop%>p832DRq{t4iC2dJGS~P8?5KW&W zl|imPgI(POSnd3i&s&TPD}z9f?0$6}0V|!qW1F;sT6NSt4zq3BW%sL@04ob3rPzWz zOwhgp4t7@)MYRJ+%4eonS!eQTD-IT@PJ!z8 z0W7SIM%Ixt)3V)W2W}Q{^IT1k)ZYh~;e2hnW$nLn6;f5q9Z30ofQ-TlR;ZC=&aTPN z24=VA>2)W-2}PXsu|@<$Qsvb zTi6f2NOQ><(?CfOm#;@K%BB>(D}TIINlBJe$;4tV^hFj(fT;1gLA^yC?JAzJ+AS+j z(^krWu%MX=q^aXm>-_5okS2zK8qBjbN$seDk#>wx&+Hv$Rv=3`kXz+knvKb>wSJd^ zxvHF&S=3}^ZtIyr+lu3dI`+7f*;228-;p|C1i*;UJ4k{l0$IzQr^Wy)gMYsaQbW5# zy?$V7MzKsvQMf)M8M+eEA1$c#O-k=9S17AvtaHHcweq?7ct}L~5-#k^H&_rzO@c%O^`u+Q*&EV$sJS`RGa-w{$Q0Na+r+kd=20+Qp}i8%s5 zP(uESGj@Y>YAO2XDwfR5{VJbES)rN89Y~~!-ZfXPe6C$b#BTopZImhcbcVmO00000 LNkvXXu0mjfwQ0-a diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_43.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_43.png old mode 100755 new mode 100644 index b4cb1179f388fbf1cad5040e10a9dc10728725d4..32e35f4ba32ebd18457157b8ccc927683e1e8978 GIT binary patch delta 784 zcmV+r1MmEl44Vd!7=Hl(0002`twPcO00QDkL_t(|oUM~jXdHDE$3MT>Niv$PS%hE_ z$u4-X2;vIjp|$Mcg6p-x?rq@hAdvbZu^9Vtd~Yd6Rj02p%rf(vX(Tau(u>xXVg)TLOGG^NhUj%2m= zS|?p<`^UjLKu{ie>c!$1SSP$6UmbadU$9ufp7@NxDPZF%@5He91J=HuOWoKfIeoj? zTxxup8hv!_tABp^QZL(deS2uXU_`D9+^q$lzv&E?Ym63ATbI1SPa=toyP&#_zhzhCtJtty)Yha0%wZDW9HALWq{D_CKL5&284f8_C*71*qa(2-&Rv)4nyE-iV}D83um=H~qr?Fgt}2ogN=jl4 zJUR;s2cBYSD-+)@m24vVZ&@$B_6^&E!6T(x@LNJt-?Ti2QuflqDKZNYhKKhN4-RfEIZm8Cu~ zn*+X0Jb!OTN*AOpuOg8o-sbMGqFDOF^CT<9&yVGE02F9p#|Jje;>Cj)$VPXh#>MRc5taiE0m~G!;1r?V8NMs&j@qiXL&>7cCxAna7B-;Km1Y#+ z<|9D3Odn*Ta~h|9@%SVuw*d2TekHBu-OJ6ahyiA86v+D}B6tCtKav1mQ^deFnq|Azd+%3o%xd?bgvygB#ZcoR(K3px z9tU~k7~I0B_eY|weEO>*d}{4D2JpzEfNdJV;j;jat=7%eT9{+S&9@MfI}j0@P;#)m zZ9DG?2H0~Xg9lOcS(KrQH-p`Egfktq_4 zb6APTJ%7V;v=i_3NRRnS7~Y7A&GwLi^FrfE#d_h^I^Wn|!%hGxs2SUD26(see#Gr8 zGDHH&DCx#EYS@E7DtZKAo?s;tY+*SZX2z{oZa%dp?m6yD^^4eL|1=P9en^;sAQlzz{s3eHAiP65=6>tUqw$1ku zq}D&`IU-{<7g*^jJTk7@yb7GY6-=?O>WZL{m1QAg_MV)9D^IzEThc&CcdjzR82$f3 zHlu+{B`JKglU;rKVZ4;8coyKrOcIQFJbn-VWP{{Ly@2ZP`ooZ_&DRu-ekK9u!z+{0C95Bo1?&Wf#sH%*u1`dH z=^Baze3mgYNx*@dlOsVjb^>^FQt8?l;Wes-R1rhWPH!#n&UXbN_rDCnsGN8t%J`%8 zm7vM7>cySBYJfex@@MG-AS;316RTYT-mx4Bq(Bw-`6g5qkwBJfTt_3gbdVBmRew4Y zpiw$m33rD`*TP}43g%1q zy!VQUEOak+B;y3@c&RLX1tK;&eIH=<9hxa(MCZ$Higo<#sGZVdBza_B^=si#;JY}x zfmvYV%{ryr{XWwxWNc*qMo^R>vwsU29%MX0bZj*JtJZ^q`_IFF1<|W0I+yhdnW+Z_ z)dN&2Zk2;u_tM8B@7?|%LNtM6|2re$5mY^cN~5@E zW1mP`=*MEF31tx<}mJ1xr!NBa5=YNP}f%v6R z5Q1B-U*vRgbK!B;YGRf=QKM38$7|Buf3()Y>B${fc-9*8-@>CV%RA1psTMb;>6Y;@ zR#HcZr@4Im8tWf9`6pSJ02~V~thx)c>KD`;Gg3L}?)JtUUYP$!5T$Tsou8X)HCUte z3c1nR3+3rJ(xvJEcL#1<0Dq~ue^1LHGoQ2`2~yBVZMJ28l>m{b*MqyG{yU&uqtV!k zn@jQpY9WX!EO4)JoPb*j+KIqFn!Im-wWtG`1ZPi6i^rc{M`8f1@Jf07w<40Ac&;-J z<`09o(`cy`a3>hQzdAA}acn7gPrA0*TI~k#52yWqTFStussI2000>D%PDHLkV1f&d B@=5>z diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_44.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_44.png old mode 100755 new mode 100644 index 09dfc28e8b22b177fc837c0353f25be284370ecd..4dfef4ff656b759967c175d73e0c9788c550fea0 GIT binary patch delta 921 zcmV;K17`fX4xiu$@t@zu(-V&+(6L_HIoegL_=V%^G}dq6fcZmc2S0yrR@-5M#7AH z*#!)&!PIM)|Lz^uc)5a_zC?eU_#yM6LGzvnzB&k^9P1Apx8`)bc_>c1-mJvM~I zJF>ju^1Gk^S|w<{{YWt3w~u*N=o7_rX~oi#Su}r9^>)|n{p9ERCz^$D`2g%Q_JY{* zx5i%+mR`LO@GkLoylr%Bxh7mS0N7hM#ynRKUYE*$DqwBAv~%OBM=e*@eycQv4JRR- zhtdUQAGNKWR)6|R1E^rEI60E*e){xk;r4+eNNi8HKfnEukx|?#fHd+4Thh@t$8AC- z+hwfsou7s`oV_f{0sweNo{4$>zF9CY>YQ1zt3R-BZs60yB9uMimHD28t^9UFVM|su~9HPJa|xTw9}63DMfy0$|@$nn~&7 zKiY+qL;&wU?XlE!*XFR0knn^3tK>te*;kdlLLwu8*W<9xwr#THu|vwVs;b*#bE%vS z(QQ$sK}Jx)OS;Q=f3(r9gnrWj>^q$=czcH48&XuB11K?=c_sZ6$IY8M^kC|0CX%z? zoTbD^%70o|pSq}ovxS`NBMeH@iWTeFktE3-t(EUG=H6GGeoFan*w)U)$B@r^9ONVsE%L@ zj^K`?z!z5@KTPNcIT;$5{Jm33>8hSA6Dpz1R&Z!Ka?OaVMp50ePleb?$ka9jRCAW8 zp%ix%f7oj7N5PAdf0y=WlIDBlehkUHFs0_S&p!qTHPdQlSdWALpg(oO6ixu~^|`c} z;eV+Er#yJ0+3d1@85lW=W|*P@AaP(EGs6Z@F?woY*UL1GYwmdEOZSDf@f_*u-P>-j zQBEfT${MT1qB}32mlu?y5kNEzT#zynZ>x6*IT`>UuDN}hZ(38xekl^#JvFMbPILyc vB(7Pv2zhHzSw)G8(;%VEw*&(E>;D6pO%h?DMF_f*00000NkvXXu0mjf5v$T; delta 1847 zcmV-72gvxN2f7ZB7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000K;Nkl2+j8qT46{A`|6kTV^r*|C056haJ27WE@y^$XZD{1JOSBK(u~T z(WnAb`Cv@AhgxsntGMkw#`^2|mQVl%F20ZEBS0gzS^;d#75{cU7Fjhe+&>c!&K*?> zsQ{S{#P_(FN>+6u62sIfK7LVs4UQHMwBhI6c6R{=)IoRQ~OjS3V5T;<8;MYy5=sDssB7&B82JD26d z-gh4dn><1)CV8ikfuVrQcB&`e$}&Zy$n7zy&PKlM8m|Zrbmlp^%V+`0jy6A*Gs`<` zcsya@vE$3`p^8?i1&dGdrSk4};9};a(rIUqJ!)*d2Y;$Ej}TS_5xE|o%r84OviPCz z!#ZaqMnSGP1~AA985L8VfE|nTy-s2|D4F)GQUvHT!<&lV{S0u{F`$B5ZHxp)7S2Z; zm@gJT;;6dcURR0$eR#a7_-J(G^GL+{8ao$C75>|86j8{9;hCHh@UDDWm)nthe{DJ z>+gOkz^4{NLD}dLH49G}9B0snv#-P+f z5zdMgIMLcNoWL5imb}JXB|A zlYe*zWniGIJo-KRshH|Q^*-uadtE64m1BSQRmzGak$HcIqVVEHfR#n(>8yEOo6WOd z+k53_+Y)~jJY!Z?D@mNK09iwTM=`;MQ1Oi(cc=tx&whU(Nh|Fx#{VaKXHam2ioFWlQzfT$R*CUd0%R3txRtZVx|NKSMd zc+FT*GW1bWfKM5_sSc|E$qb8)Ni<%2`!K&u32;7ke-uYa0p59JU@_n;o#pxQlz)X4 zrzhQ!5>$$c?fKYm0~z4zc|>Z)Dn4eE4!a-swa;2>&-{A;j|>Z-y|0puVB6=>+D=Y2 zKQAAA_HzVWP0ksk2Zje+MqaCHGla1M@)S*Ve`cRYDL@vSQBWDk=qsy2OuFqD#htZB zDF6axfAC%JVkAZR!##0c6pOM*g@5cjb?vR&TWjqOB)wVzuppQ+SkN=z*|}K~S$BIe zWfdsepUrKpeHQ@R^wY-($gJE)^P{6AimMtATWbxA@z2-6cOd61vYBN&4(Dh5W#(Ip zWIQs~`FKnm_NI?_AZ>hSs((&r&#Q!X zAFB)DRr51VZ2kUH0Q>MAMhlJti6zaRduBT~Duz{sk~uC^hgZmNt>u0T@PhE>U8w*O zsF^j9FSJpqwgh=(Wqg##-}mo-CvX+WqrsiIKYMqzF_p^ZpJ_hp8~v5P4Xhf3JCQtdeAxG|EClPnHT{R8ndTd9!l};y?>I7xz7?O}frq--V8tAA`o(PtF!F$z%a zz^iRG-)+kk_9H$6WR>7f=E-?h{yp3G@6R}oPyh?YRmFha8JX(nRYl&_@DU1tpuU4C zQY+-!<4=truK*0ZyPAy|$-+5o#C6fUM<@W=-4tNo|NolVlHaeR&Q|$GP0{bCzYBPm z(IY?sz1lJb>BSwXSAV4leu}8I&-<(3RpfLKSNT)EkTlO{_87}5!yg4;o4v#MD$9V) z%p;qTQ<)zfb2f(Xm}m}qSCcwRx|*K_akj831YC3!s|JyN|OryYH&_v&yh- zg?}aNYI5$ND3M)BevhBsvp9dQw|}1ju1NlF<0?Cgd|a>M@G$JKlhl|^dM25X3cs5I lbhG$n_FI96#{)jM_8&d055CZ{%WVJv002ovPDHLkV1iaFfW`m- diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_45.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_45.png old mode 100755 new mode 100644 index 94b26fe061cf389574e00424a7e8da152d4cb242..de4d7cacc96c776eee06d743450a5733354ed262 GIT binary patch delta 1043 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 Hu0mjf4YwYd diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_46.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_46.png old mode 100755 new mode 100644 index 28f47d714d4aa620cf8aafb83768f38dda2399e9..bb57197952b48856e13444df728fd32682321698 GIT binary patch delta 1052 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 QDF6Tf07*qoM6N<$f@^Il)Bpeg diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_47.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_47.png old mode 100755 new mode 100644 index a9cc34ca206c1a8d8e9520981c1826a571b6a2d0..8aaceac98de4430e26c206045e84bb4a0f9432e6 GIT binary patch delta 1049 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 diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_48.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_48.png old mode 100755 new mode 100644 index cc9a89dad38360000ac94d965adc77513adc63b3..11e017674d4e8fad372b9448c125797bd29484f0 GIT binary patch delta 1054 zcmV+(1mXLG5vK@{7=Hl(0002`twPcO00ZtxL_t(|oF&a`Oj~6Dhw=Y=dfZxIYgwt2 zL8QQ$nl{{q1pVMz8gU>lBgz3?0_$R80-FJ+(=3BfmYI2(v1T!Gjs(PA*m>!wV`Bys zk26tljLQ-r8{K-yAZ0fxXG>j%C+zdQuc6$8-JH`@A2u74~uf(|tZgD|`$d;H^* z13L&R7Pqyp+BH+@Y0ACKP?YB?W2*3wD6|$GJ$|k1g$hEFtN@@1Xp+5K4tm}vT&H3L zAS4J)ANia1%#fra0Dz`ympA>+*RzcOPXzEx`RM*#ms7c0g+KD|P`?fmbk1n9>DYn7 z1>W_N10vv0bAJzSGUW8+5`z_pYlrtpt6g93^v8IE2ms8l|D!TGQR`6?5$l(!yhB$9 z-{>1BCIm-}NPjNwIFd_|Or*J=FjC4@6og0=t=baxm+XpQnHndl#B7!d+mt zQ(3$S(sJTw2*Vx!G(CPY{UT4HNqOpVXb!)Er*$oVpMNHj*q6QapjDX8%NX*-GOIZk zE(J*$b(;I5GghigkKSn9duG>m{X>1Caqeb>`}&^KU*n|0!Xx8;?BOD$HFg z?R{0vZRYF%7JSs1f1~GsV0NW&Z!sr+C1Qg-XPvw-S#BU=dfh%_>t0R$z;*S!?UU=g z$ZOjYA%6wGhhBE(LFq;>NTZd&sL#xH6ZG1U1m!ob5&RgbG(dEdBYlQG3>DY~ibIS=C_j(U? zM2k4;<`pKZoZ)JHC#)rdL?Wu+ov+hb&z@+HA%8J<5i9RqsPcKTYO0p5uC-}d455p+ zRB8AB9jRMNS;8m_VPfy&2pfG;Gx5PU5on_#c_^1AK+aJ-nb@(Wc_4G~zcd2!qB9H0 z*mxp^LJBvt2=k7xGyZ1Q<}h*8j-U^U6W9zmB9o9VvtSzQ9$|$sCbd0m=V|KhjS6n& zV1I~fo|JpTM2b}btZ8ZdC!_WZ5F_GNy#s6B+x5!bxg@JK!i)TOKu|HxLN``w6xVpV ztsEFLk|=89CJU$$Qn!yW1m#2XpnG*8l(j07*qoM6N<$g0Ud*SpWb4 delta 2178 zcmV-|2z~db2!j!j7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000OzNklLk|1al0TzJq}Qle}p>zRNeU1Q6XL{Zt$b6&@BT*oH6uIqTcUh?x# zxJHYg4czf(+>bHhUW^s}WNYHR?0l7P2RFlW>T>=BgvrCtF@Grb`Ao5P7M&$Aex4;U z`cb4&1XJ-KCOkv!kM|Ys_%mYt@%dpWfJ!djuhwINW^A_tM9dxkaX*r*iwnH)= zmaL9HRxmXJW`C5B5w_~^O5Jcx^qVTcOfgsF`L3%<3MO2|$<|eQL;qC=tFsU@Q;xWn z#l!9oA17NpQ&bG{lddcoDsgV7X7a7fA(1NXz@$1G>lOE8BskGo=HyeZF+uJ%#>Zl2 zal3}&35mzXS3Eksmii~FcMV7&GO0ova#Xj z4}G7}IV)lXa>p1zkey<5OmzZwEUwQwiN&B~IMNV1v>dt_|FcQfAz`=f~3fjniUZ9rwF3VEgr_u zApx^-?}q~XRWekCz#?ODRPt25n9u9VpWd@#D(nhx$IppO`R!sotpLn0VJdlUvQdVk zAEg$m;E_lf-b?}F{qu?B&s?8W09LH3`)6dgYkyhyXLu1usv_5QU7yl<7+l=Hii0Jg zTF1!KDR8A6Y`szvH8z;q;CrPG$8qde00a|d3*`$xAFr`5uDeqKRJXHuR=S&!D_&Lc z(FePqDFO2{>~xaIlELIUf@JebeU8S6aHkSEioxz>%BBj0dz|r6k-Ji_EKaEa(Q#&& z7=Kk@r|@Wz2r;m`6hM(6`lyN(*JsL6Nj$?lO9JL+Tu;^6jlaj2x? z*ur&=B1AuxTr+G6XGH?$Cw^9bDYO&Nowh;(#H)N)W63=~p0#UcyKz=3f@EDHKm;~> zU+rP9Xm=<;T$7QzI)|C+aP;e((AStZ?Ba5D)T9pLn8G!k5;&sRq_c$cTB%ArFaJU4Ib$I)?fo}0LrZGT{ zl0>lq-M+m+fWe9AIkl?rz1_(K6)Cm6hXzsp>oZgJI~isa6N zo3m!du;|X%ut{)T^}h>XfbJ~%@H>KW*E?P1C_=T@neow9^W%=w%zspUzq+!qYHsp& zjR=(LyA27pYL$;lvG8ZSw*C@`j#p+gdtKN2KOX5=)qOJsS(WvU!mw-SS&Hqe$p8BP z-rVp1Pjpmet24WbVMiBNqp8Y&^fU9Ir~Dm9LjfY#oyl1-b$(QnNCdWisE@K$Rf=aQ zg>ss2SMlGP;Akj-8h-^(D*-z@4N~AnTP-qcj_h3aK>DNtTvziuff@LxOm%TqJQV}; zQz^pC8Q95@6!E;Li+>yo3V;EknK3HpZUuCXSinNm-(u&tja!qKCJ)bj(B$Y`H_=DJOil1*?kuL z-8RmB3n(FFC%&Cy@RJna?dQv=R>dr~o+V+%RN_}iwtLcXv-VpgsPu6!{-^c7hp6W7i7A%Jq)oubi`D?s;*2 zg+Gf6&qX_(B01)gVYOrL^#7Ei4O>+JbwAdF)hAy61IdapcKfg8hyVZp07*qoM6N<$ Eg6umwdjJ3c diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_49.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_49.png old mode 100755 new mode 100644 index ef68cf86614c97098e4bc877527deead0c8b577a..c667c9f81ae0599068db0e9664d7e16e73f2b3ae GIT binary patch delta 1054 zcmV+(1mXMC5T^)`7=Hl(0002`twPcO00ZtxL_t(|oF$WgOq68+$G^|R3*3w79Y4;b z7##6x#z_O56V{Z2NrMbRu)9leyjb9e<0Q;GzZqr2gpVhTi-1 zS_VPMLmdEdBq`B-H~DcupynV2Af3;7zpiWdrV>J8O#mP+lf;SWx5p0<+Tu0vb-WR%u zNQ!l}(!cdy(%+MDD#_CU0K|8!Yc`IKeRP({tBS;LzMk2e+UgaQRUkG55ahXMQUwMu zZim$0^k$xScI+8J0d>_EK|GS_TX=Bdw?=_M=$n7&kbhiNVWoG18B2sgI`l-fTRhrV zc4h1M_hACV4j;+$O2a1aS{o^Bri$WoBU!Pft$XXzi=Im-$n=dxgUREN?spaZn5Eg< zD(K}1LsoLW*ih>~G#?c(Qka3c|5%mdzRA@*0=?i;8f{lg6|wSgvu0{)<3B{!ZQ5rz z*Di6~)PH$(Vl!c+aV{#dOx)48t$XLsQT0R)F@AX}j5>Sc>yCV0<<}90{X91e`$rO< zc28~ats`;>wKtJg>3nvMqdzMlO;ExF9Ts;V)GAx-`oWoWfsr3T?^S#ec`MYMeld_k zmG(Iks?OQeD=~vUQ+_Yn)IF#Dd~`s*yu5PF$$!1zYHNj>J^Pwvp=;$EEf3=QO0#8h z+&ECV@YDjFoWrtmD=Ux8bGe5MP(^troEAAPCw|&wS;+qGjN_lt)ywGh%974Hn zgt9#+0f)zXXCT5#P90`cY1biORc*ys2Y&jti^x&G9Gi*n*+nvcC#ub`1h$v^5_#tZ z4u8}<(z9YBhZg~`&JBHQ(2h9}6qJ}Efb)-yiT+7Q1tgf46S0dIoA>JyZ> zA;1@k0LU8GHpMTn&?I2cQ-HLAj>6fpOt8vH&M~%x(BqZ>Y9=AKshr=aUIuMxd#uq; zQpEva=Qteva*Mh)T|><#07%lh`ClcS`hRkRVBhc(0QC_=xC~>*JS{c(0f3ich_PYw zheC@X9{|V}aD^L{9(pzh0N`0~CCog`j*$_~W*-8JsaGo;j1&9>uKKch$aQtP2`O@l zoC41GIl!4^xET5pwo4#f0fU0rnP6$e1&X7B)n!;6LdCKjez#yWW!n)u0|eW72^Yoa Y|Jd-k2_`qgoB#j-07*qoM6N<$g1>|M?EnA( delta 2131 zcmV-Z2(0&~2-Fae7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000OENkl`{k70p6rIX*rW|VoMYVl8}<^*~b`Tjzc!*9FNCC-v5NF zHG6O2wx4l6#)xwsxVb&W4>^G73+o0JSV^Pit(|Sk<5yGTiz^Z9)C8;+2XQmt4>$Stn9+cQPREf z6%s#10g%*=e5+)sBEaz#g_(2ynCtn$JfZK)I%i2#pMM#V7F?yM-l+glvQ#lypBSr> zY0oM}fIfHf=AHqfq%vd0gkWBsY=zU4ZzML`naU6HXvb7K*ee3`!FXVwt-tRA=yVRV zcXfEwVNo0vC9(c8+eE})XWQ9PLc8weIYV$3$h$i|iwl#i5)hHfl3@KZl2Nkl+)C1v z3RL(}_5y^REmJvdiJCMf3+B*L|~FJIf^{R7xOu1 z?ercMm4~zPWZR|Lw>diF8}K!BB( zBI{KOpvYozM1>F~5#v&ciME|;5h&a*Q2+~e-LtP{cz?ZYA)HWzC^>9ABRHc1QI|$t z$<~O9ySjZn#rgmEb4h2xNB5Pn@uzWOf*HBHxV?m__tCg)(RzNyIHUkJaNF^W>@0~3 zIDeDzS1SNhpNx6(Z~a7a&9Et)krH@*#yD^Wzy&-B>)LJ+*m<6R4n~$&c1m^Syc5wb=X&e@vnAn)-JEoqvk&*yF*!HP{!*SLxi! ze3dlx>#gq>9fY z(3OAHxtR{e^)bGPKg)p{yPn~5ssI*j1-u8gQv{tZs49THzuN?MjK^El{eR4tQb1fk zGAx2GT(oKt;nr`q2%>I_a8x?5a?nzV*p+MLV^=+yA?~Mt8(6VSr!$hGLl8b!+lZAk z_KYRni?h4$+O5a>iN>?0z?i(P?}W`c^x_+zA}pFZG|`%uX8qj2}Gc{hn?QDvNFxohn)?)xt>Cd5zD)MUTGX=3XeLV zTCD0U!LCPt2RNPh?x9Q-t)~Fq^NOtoIQ6Xn@q2mk;$R9eM)9wLPk&e>Q=QYVI*TxJ zx_GmPJG9QaiuX>lM)7}DoifRt&L4I{9-Jz6E%| z@3wVLKrA?>bAYtIPk)--i)~TZ_3lpo<5Bn)paNRJ@3OnrI#CG7n@z$h1p8X++N;HL zq6pAmO95;^Sk138&p(pZ>Hf^R-S}9CGqZeV{ir0fD;D1vg}(^$j8*U{%M?}?C(fzj z@UCp^df(wQ!pMrfQ}kO3z<^iASA42x?68$3qN@^$pR81G34nAywP?wLXD$reMV2)w-=W2!c3qz>|z zKm+fk*!E3PZotDKC0}N~ps;p+jOY zb1)NvdJD-43Nt!e`(}JI-wsotelK6X-@_Na@L{(k-K z{boItL_d(Ewv_xe-w!0;MF1J_cfRZ*FpdFuU@sl#7#NcP-2``Z2a{k_Ltym`Onn}X zg0Ed$fOS8E6@SQsxl19CpM%2*89O@B&{GFeF-nG}L^ zZuH_<3hflA1PQP{cj&Bi=d2IVY!z@}cNe_yCD076w12=qaPOd`PYoVLQ4U6?W{&_z zfaV{~1bAimT}f?lcTcXRedd4hUX|1V_x*QkDI~aG11UA=eB}e6OGPlluFbFtz;D;U zfmfO6)!`K6zm^2v{#(822p~Hv$>2p4v9$!PG1rng%#jpqxgB-B@6Na0CMyb~V z$esX3RwTClSOnNmkq;Z;#^bbFBFU}IV1&TyK6*tMiLDCW$P-D|=VJi7D)RtHDFC=7 zEJq3q4cP2AumMGJV*u0~<`RI`AZrv$&I2s{$J>4I;;fVw#}m8=ZVJ-Ew1~zBcgyne z*Y9(uN?rqiRSf<~vITl20P;MikDK;v(Y^mKP0?SqZlaR#00000NkvXXu0mjf>MmxM delta 1484 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 R10MhY002ovPDHLkV1j_4D?$JO diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_51.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_51.png old mode 100755 new mode 100644 index ba00473ddd16115e1bfbace6df50d3da336372f8..3d7005fb690ee4e7872b421adc51d8841e2a5194 GIT binary patch delta 1056 zcmV+*1mFAh5UB`|7=Hl(0002`twPcO00ZzzL_t(|oF$EYOq6v1$G^Xa-*NYxD38b$ z2$Lfo4NtK{=aezO5Pcditt?b^6L-&{cNAlhX9fjfLOk-pri1oDSu9I!UOY0Dw3{(#8|s9NA8UCZ8369M{{s z(*EJbahjl@3xHVSt$p8SI>w361OSkquO3eo>ehTonE6!?0I}rT4O!JiYifwF^qOA< zt>*|9Lw(M4S=;Kzz$RXYtVRM~8@aR+0IYSJrlBwP;kC1!7$UQC{$Q7G(hA z&5*l~zvk5L4nIy62m`gxLfo@fe{gH>rNfkgcHO_H%6|hDv86YnE2jyAyz9|QpZIRq zwo|J{zK^90>vZDOa`W&B-Vf>#D=M?$3`b6Hp9H{=+KNn~s6TL0IU3a@g~8sUnuY-DsMaSo|09N=sg} z9%+*~u760HBsLO84o}XH+a|8-THTR*aegiF#w=^7j}>}4Q)~8oRuPs6Lm4lKMcLq@ z$9xk>`aI%|5t@&a7WrsizS^C$$WE15Dq(8!D0$Ex{3VZ%3u-hN z2pr3;NW#lAE+7>p!Ty-Ezk5dctxv zYJcQYY^#AXBaA-$Hi_Jzdk4cAu-7@~(fw0Z{NJ?ej1l4$es?2im`TyJ8|fDjrAl%i zpc|mWw{)(8bCemfefdZnOV18v#Id5hB&`aISpHVtIy1< z1VsgqJ3`<;&?L<;&|(Sz>GAG*clr-sn|~W7-5wGaS^J#uy!2=&uLmjM9&Bs^rgDf$u_G-c|DOl7q%w>UHj0h$@U=TMF3Mkn!* z0Z|YRSDAws3;UNDHffTd60U$jL1JK_y2)q7G^rY}`ew5#1CO*4uO+V;i2-2RWf^l> ab<_VTmr5D delta 2164 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 diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_53.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_53.png old mode 100755 new mode 100644 index 18337cd63c7b7021f0f14c0c2f4b510736127926..f443ae5c30244583ebe72de59d1b53f8b049e3e0 GIT binary patch delta 1049 zcmV+!1m^qa5TXc>7=Hl(0002`twPcO00ZesL_t(|oF&bFOq68+2k`In+;ey@UHS%| zo<(xxs{y6s#}JvVJ78CuqgwEA%#pBJw(JLBqgLv=IZ7=zZ*y*9xEM8{djQ#j*lg)L zOQ#D3$`gz;kD5YotRsHiaoj!q;s2lQLjctYK&d%YbYVx&oPQ)}F#&+qpR{G@gA*5X z2+C$u0LpM$YT(ZeOEE^v;}n3_RCutVZ`YnpvfC=Zo9U*E5rnpC;s!hm18l) zWznh4jAPXn<7uw-H^1c!O^-g!1d=w9UCm1Uw(#tOPk*j95-;)sj?qDFbnBDX$KxAb zX9Dv!Bn#z3efL1PF3A9M(b zwEKNKe<(1$)&*G}uvbO-o(FmRZe1OY_!ufyef=1?rr)o-{d3_{7IwQW^Yj-~C^dC$ zriqD-e}55gazqv-bZQbe)R3yQQPCV}W%3!%%|;?3;`>v?OM1+n`BekgQX1+{)-J0| zBp5*Ny`MI`-tIMs@Jhx>O9^Vv%{AEz_5OnOSyXhhfYc2hgP7`=AG}EzCx)M-L)4mo zGnQw!fKbsD2?oyz_qb;JB9~Gn zqdHa?5Q^7Y@y3!41nC)a2+-$L&+Gx^k_`$ig^HLPq3&^qApk_Es781kBWgO

+*@ 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 XzNOlU;>0Dd00000NkvXXu0mjf)Rh)~ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_55.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_55.png old mode 100755 new mode 100644 index fd8269bb4d5af2a4b30bbbc4213b4cbe43fc41e4..da7a84aea874415cdec64cbf32d0eda0779fe090 GIT binary patch delta 991 zcmV<510ejM59tSx7=Hl(0002`twPcO00Xc|L_t(|oIQ|lOj~6b#m{rOU3xnr9a0@; zgCchdRSdAWvFPNMh#4VH;`&lUG}J9(jDK)bB#MTPuz+TXM3ZG2Mi|jR?k$5EHWD7khL2OMFq?ir=> zs?S$k_{j?)F{m3%>V%DZTI#)zs{XHOKS2(=2Negj2B#ph+6U>wI`tSvM&q7 zyQcDF_v_`6f94+DQZ$sr{`>2rYhP`7%W}vtmzMVYL8>{DWWkgKpLVn* zn;NR7$A5RVHhlhW+?-UHx?a7N^>A=$XY9VDf@yMRsogtyAgeG*dnqcVX^(p>zLlb_ zJyL%$R2TIuk*Jx@xBy6v{dQlzlH;a<%Aq&_d7d8@uI6Ot5Z7HX0MbV1SlQK+-Z8qO zguMXeo^Q?bAGW*W;#noE0YY2H;)ztB9Wn99rhlISmdIe1k}{M4zsn-DZA3FOH+C;y zyVoNUTB(Nk=D>`o0o^V@I^P*6p_x+(sVGnL0CG`rSK-EY(Pc2!%>9flaBmu4WmOiD z!2mzA08g)Conb`O0AIk=9YV^y@`Z*?kpWeM2EZCjsmf%SA_fRuE_F3K(p~mY4dSGd z1Ap9Os4(@L|GrTojuL|kR14o49LqaZM?OIv;QWrN#$mG!cx^gIE$6&}Idxc=bIsu3 z#FH$%p_bR)W{tOrb)TIJ32cQp-7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000M4NklaU00<>Hd)o6jj&>}H*4lBNr@a4$ zs||av*KJ?peB2|>#l2!4Z;XBBt*`LT)XnO-G@YLXA$WKnH-E+M?AnbGiw%_djkOT&Lwu2RM3`bQv z-cw_2Ue^ICWPgr;_yz|+;707bIv+_ug1nlUbJ($LKkRwWak0T8q*lOtn*$&)v-XW- zWyNFjC}FD3M!s-;wbu)ic}aftiu+@GMldV(ZE>@hdH7k9v*NOAt4>$Wtm4AS5$WFe z3W#rU00ec!z7<(Y1USCpFs-$(xn3UR33FdIIU`ZMW`981;wqxr=>QQ~N=!Br-6BgE_<}1Rjki2?52e8kt-Q>K%0T@}C?)UOV zkrAWU{a(FDzL)3PP0kw}K-qQ#UKDJu5~o*Re}AS3^+cfZ^k;t^zyS+8U0Esu96eLw zv~@(sPE`b|?!OLje7_N61Z2opgxJ?nSF$xCaeE?&)_KeUY@u&;03`yit65~k!#Y)o z$E!2z1ZwSD9e^z!ZRQOQfWT!s-^*|JY{x0PX0@q0BN2Fcj^kzru*I;=J>?9z9;+j= zcz?{r_NU0GbgJsw>^>tG!SUBh@R3Y*^o|Ot0hy8J&CilH<8+?*Y=7?l z^G`T{0vSoPS0)+-dbVS|&aKQ>q+#BQ1FB%-?Akx!03LajPRlw-RRq~OA}3Sb8j-EK zKeNZ5Z~!HSD%ea!473sQ5ZJ1NAkj+jUYzImpN>VfmL0$r&8}|{$&3SxkZ1R)|`(s_!p7Hex^4W3tr~|yk5h9{za%Q?bvzFc49r)Yzr``kH9e;P#mFf1Xqg6$X zYhi6GnhS-=>YR3fyW_1QKr*9lj!2qW-&@o186*ci$IX3y#cSc<2`T4Q;>pegPJXOq&7$sr!_*0~; zSikZf4CmRas>j~{`fVUfo?SEp;z*~m`Ck4k*i1B;upPwe8x=v1yWUf<^)5!Loy<0A z!;cY(NS-IdqT*kS*X)3SArBk{kE zJ&rYJEW2i72l+E1-evzbSYBISk1HbM&P~{2R2{p>$9+}f3HxXB*!nKMt>u3kxEh3N ko@)L(uGQF8Ul(@#zd1%IC?1!Q2LJ#707*qoM6N<$f}~o&;{X5v diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_56.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_56.png old mode 100755 new mode 100644 index 300cbd9eca4faeedb0e8705a4bfbd6cbd91da2d7..7d0b0732ad2876c00af6253fda01f3db46ef90f8 GIT binary patch delta 948 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 N002ovPDHLkV1kFRqM85z diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_6.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_6.png old mode 100755 new mode 100644 index 56f37fbd8943ee285f8451c64269c2045acf4cb7..645953060340dd3b0da29933ce360a64917c1e13 GIT binary patch delta 777 zcmV+k1NQv543q|t7=Hl(0002`twPcO00P@dL_t(|oK@0Kh?I342Jp}O+t=CAba#xT z%`CSLUFxuP&@C#bL!wcvkt-`9YKVkL2q_w6^LnX6h+c{gW(#=`P4H%y*olHHgIx-= z5Ml*Iq1aq^b^p!Gx5Gx+b9pWg&%^WZcse5DhvA5sZ;I;?;eYdph(<)*{HUWA5!s6s z#KpqQ+o9?%luGk_ZYUy}&qZ8$tkyRak&X?bxrGHU3~d}FUt2yAlbvWpM8x%o ziS@&ch|sDO602^$?7EAppEq48@7@3!0fba^OJf=1`AB?rT5dK zi#%38fQ9Et6@QCK+2I0DgabM2LqmUJ|t66#iD}N`NW8~|u^+m*yM0c9&W@Ybd z0~o-Xv8gdCI$n*4iJa>A`xls6dh0io5{#Xo{8{UCL0iJ;>lOSQhr3CML6eKVf=g$~ zlI(oFSv_yM@XG*_(!CtjF~i)KNG#CS<5te>CM4y#YJP_@@i-{&AHH~*GIrG>a?$nZ zk#qCQTz^wx{q3nBo!OA?n-8pKMUCvF z)TM#8pEyKoM5=<{zgA=oc1wGvp|iUXx#*I-180xUTiuY1R%lwF0;|}w!kSP$7(LJ* zdfP_Him_++!1~Z(n&-3cv(bMPuxzwF`>=prfB8RlT>2Y9FhDhr)oxk<0000{5AMe`5nZb)-`-DFFu$W^Agx0N@4yxbGVVuImDNZ#S?_ zoP8^8*2c#e-*ey5Hd4RcxbFMDPjtA2T{cr^VnX6;$@#k-PJi*B#tx%S{~Xw1Gr*72 zGS0_+9Wn3ly9IpVhZWjAq5l*-Io8sU#NFGCVUrX_J8Y(_hmLO%Lh4g{58S2$4{E>| zP%`iYV4Jwr)@?Hl|B`d8NFcq(%6EBi`xrL*H0J~G!V6%n&BHMq5j5K{xc6B7F4ry4 z_XLF+#R{7_XMamu!HnWxHUA<3RvJ->l_a3!NUN5%If(=+0ah7NjnyO=kfH*$+anH7Ac0AMl@mIPT`8@0 zCZLgkySB!twp}H_r_~5fNDs#tnnsxE8=#g1VG(FupMQu>8zrH~jZ4K})~?F;F$v%` z;FKs(0jqQ?wYMUoG+z-HSQ!RwXZ8o*!=NxE#qT`}sBpd(fw^`PTv>n@SOIgN)%`_3 zqis2RBuykm2I`os^GAC+&TNM9`auX~vh_&^^R#0P5cV@F+-5(yiHzEAO==`ls@5ZE zJ@NC*+<&BM-+K+Rh@g!Vu{YY5+JF&p_^Bw50Qi2&AYtEHIjJ5Jc%#DUXc2+4;Y|}S zUUfS&_JFjPW+THYM51ph4b%p%=*}WQC#==4MFc5IP;`;l$`06euqX`-ixXulh^X8s zH1UYP*PhX~!$^u2K{iEvmRSJ0ld~#yCp`N+c7Hbh^5&)w$)3>{;|Heju0>6+`qQ-E3xY*Xo3zzifJP~p;< z0e_7Cxohk&PE1j7!pq7QRsqlRk_cciopZjnJ!p|)79CYcsh+S~8(h~_69I6lG24$7 zR;5Y9EAuqaXfW<|li9*_9e`V*^nP@olP1IyWh&66F}N*(+YVOif)oKH1GNfN7S*f6 z(R+~usx3Z;BO0E`&R=(baCpP?O5V5vOUZXt(nRA|$}q8I))MvGd0LtAhaC7`w1a6Qs`q zqSd|3b5@_T1n@?wT|}@*Pyw+JWQn~R1t$$F3+wCTA1X_wp5%Ec?5_lR3{*jB6X&BGSJH zkXGIteIa^jdqkr{PJs(_= zC$5_N5(CXGvcvX00PtS~hs`EMjMdsu6dw{4G(9Ydg!NYc`W5Rd zJq+ph0v^(;KMFmG2$^v_&i0bWGu|%D)B~n}5mX851u|jY<6zq6Q!E@mz|{k|Ib`P) l4kEx8IdCVLbQ_RJ@ejv&@gTdu5 diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_7.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_7.png old mode 100755 new mode 100644 index 0e4fb27a62b18e47dd86366de6503314d39c0c09..4be5ea9ac612390b492295e3428f80e9883718ee GIT binary patch delta 781 zcmV+o1M>WV444Lx7=Hl(0002`twPcO00Q4hL_t(|oK2EVXk2v^#ee@h&o{4h$V|1u zv}!tWp$kFMmbS5KGcF9R2vKy@E+oN)xadX{8*1u%xDsr2p%jJE4lewtMY|JSI8#ta zS5xp?7j2*=K`ohNn)!V5j*HiTcXQ#Md*SfAhleETQbX!pjDMCSaaNLINzHdhLP_rN z0-#?bdasEx|0~~5`!_X7!$+mX`@-p(WT&gZ@I|=ovD&j$@TPpgc7dLpIQ23ROOlqP z)}cl$i6oSymejp=Gzlfo)d76)_Kvwa7_$Hwu)AJj7L0L#eiwImC*xpLBjD!iF!51T z1W)_60h<=U3V-Cl+{p;Y9f9Y%_<(wK0J6 zZ#8VfrW0cW>ED4l_hUo=ZhrSM`1_ax)xA9dn~(SRO@Fbx3sB>cHh2fGPfL0qoZ3ro zz#Y-VXOfn{srT_$5ZpWRw4|0{*!7*DbL)SkEHmm4X8_zUp%fcH42+MXg86#y7U2EY-FR4c+{go-dqM^YwAt$rX|4GOU8Ip9Iq3)zch ziRoLH72&!-aNt%%4++SUPSXt!g3gv#H&T3O(_pQ?HoKAP{_=l@gKY~b2-Ud&0000< LMFvhpu0mjf?l)@& delta 1531 zcmVOE0c1hLj$v6g^6>g6D0Kf|X@V+k~p63C2Z5pdi zoPM1;Yw}m%@7!;6j5P0QJn#FyHyYf+l+M(cDJh5Yn95I@U2K@I@6s zfs%qZVAY9x+D_|C-M?fU%M(cJ=v>Pe7spnmZ!Wqfrh@k1Vf?G%TTAo*+ z?+qDh6dgKq#($PV!A{2Cwf`akI+dtICkdz=>8Yh-ZX$t7fG#Df(MzD5q~FjloCBoE=~TjdR4B+B!E|e zTf9I8tk$hG-tvgjenm`RRTy-fIUh6~2Dy~EETl+~GJfw_K!x!&56q2|;Hm<=STo@D znsTK|U0oaNA%WK`+>Wv& zu#yN`^5V^IcVr`^Seo?=U5MBrRR(ebxe{k*>M1W^J^h+Tkh}!NDH2=N0Xq%~Jb)Do zGmEvnz$s|SFCE|7&7%iJ5V1J2(|EAq2fUksI*SCJIWo5QRi|VT7 zDKrU2Y0ZZZl|?7C@_dT`yRO}nJ8)x85kNAOM~*c9780y_ z{iZ846M$31^PP*EU9Ob7ZdC}YexBT*3*Yt@k_4#A@VzBpXH}rd@p>PQ%u-*a8>>z~ z+JB`JMJ(e_Y?5YNFX2#c$%{>{59L13Q+pUxg~{$38m+=8QufV}pnJ`@z7zpYl`?Ay zSS4dMsHddUzGtzLK+9_;NN|k@pe_@j?qF&CHwEeq@Y*y9(gdjV0=scA@{~`5dV^^a zq^ba|PIn7-Btg~~OLk@>PnVgTtjVTPn129TXD%ez(GZg4MmA{D?Rzjyf^7l-)RDlF zq5W>j@xs&K$;@lX#QC~OP(lEJJrY=R?;vXY=si`KB0*UdkWC74Vbu#HaCa;eViF zpSR0Eb@I+~Mvz4fDjE7zcQcEwoS@}2@H7!PH|WXaCp&N+SR|-G>-zxJu~{QllmMRl zCvchsq2pjGc;YD2Bipk%mhQKB1}X7F?C$@!GLZJwsQ`M-yFpcCvC6w?gPnrZFxxE; zLm@zmvsPJjyrpR@I@7|wiAbS5K4l{)xQ)nc%%>55Ck(KSAb|ZN%_(Tr$Fy#hkaB@2ej~u2wmCaq>{IrFwu$j? zFT!Qur#(eo=NDEd^aR$mWW#{^MvyeoO%0gL=AJOfbiR}g1K-X9JTFv4`|g$SEYS0A z05>ip%L^`Bub7`JVI$=%dvq8SIbXM!w@U`E!KFoK$U6NrMGfC~%d1mF~-@ESB4 h&;M3<5$MNs`&$ye`ZL)&b^;z0 z4+&UIMQIZ>tk}bD-IUBEv-9&XTgd}mt(y$g>WYQEC||Fr^O&w<{kUH$+_ zB}px*dw4#TL>5R=SBn2WlLeCRB7g$;`<`+U7*hZq*c0zD1;!}AdW<{1mr*bpA+UNH zYFEMv_}V`VY=8L)tV{{aoezQ1NjMf$0F*=k6gwY28LWP)O_yt&)%}+Q?D!;^n0S3= zms?i%s@!bm4(@y={A0eiEqAk9Hersx3Vz z6eT4xsU9WUovVDYD}`=q&Oy5aZuEUbX>2kEe|+Vrqzgd% zZaW4qtX-GX0(a-5wG_$>zAdS1aCaOae){3>K*3;bj}K@z`!)p6u$yI8A$dXPt6&Dg z?g6lP6C8L)j`YSNfYNnI1_MjVhqiG80Pn{Ajj<)*toue1xbGKRe^!GCxShkV-pF5h z&51zraeu>!w@?M(m#tt>^yok_gq2AE?_(**OSZik$cj;!UYHLvIS!W8p+%n2`z{1b z>4@?aHv=#y>Cubc2G}Ag>%+KY_`rG}hNm%H2ys1!`E?9eg@w@^mVX3>S`xJ!D%S)< z8`9jZ9JWo$05}-uu=W0kk(B z062-IwHW9GU&3do0<~IOQuS1R@Ff|G73ej3p98QDUUuP_U@328LhJ_Uq}17G`APP@4i9{>OV07*qoM6N<$g8Fu5hX4Qo delta 1454 zcmV;f1yTBn2DA&17=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000GMNkl8Me%e8x4|1NlPs--T8d$t;lljKHcaHhM5j&BJ<>QkEsZZiW9N}vrW z5!?Zo6Sv!DbEfWJGLGd5qn@I0B~6@jvM~_kHHi zXj^W6QcNUy25OjIU%rnWF+^7hmZSnXN5rglFG!M{zX9pQDKJKFm9uauG!tO{70%r;!vma}W z2I(yA^$b;r90y%#ARSDLID3q?a#vZqU-Jl(m!Oy>WGg%1+C6u2VIJjH@zo+}Z%{d! zqD4Ua#T>NphtoiuKJ^+06J6~-F+6)J(IR#iK{`XC#;SQj^oI^4de#s0p}iRs<>Oqr~w<; z@|u-MsRLlpJebRod-~LB1XmG)H#VpiLHhdu+yr{hxgCo`qoCekwFsW09axhXF?^(- zl^F&X>u9hUwi>jCB4r0zSx>457$y@42&KQf3#wv*^ccWBFk`gLzJKlj zO9UA(1)!yKJGke&8oyz-2*Ms<4#16cR@5~|*0 z(U5%%^^EU9FGsw_qs5_r0=RN8)%bGnCCq?!JzKGM(uGlE1HK7h_0G)%zBOx~XN=)_ zHUm;D5XCD7u!;;<6bDV0=p5QJ`tM4R-plZU4FWaeYn`t=|D~}lzEXiDQ-2JzgvQka zqW!wkK+T=5-Z9c8i3LwVD+?9JLhmu~ssws>xu+goAqwslDGAoxB+s!roA7|nKUx`N z1%Nw@4DM+g#i#+UoYilybY}I2GOWJ+UF-39w)%Q8{m$Gq5m58#UAhkf|4kH07tfpx9XOtPyhe`07*qo IM6N<$f-VNB^Z)<= diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_9.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_9.png old mode 100755 new mode 100644 index 5bcf7e588cf19d1e70c5a1a39fd9553b9f2151c0..9cc334e0ab9aceab2fc9122539a19572d9c39a35 GIT binary patch delta 762 zcmVCF%RB)PKGf)Ftt$B*l`N@Aj1> zx##-<-3n;GCi478sg$4JR3vqukyalo9jQomu?%#N!voJ%rpu5#lmcu&=!KDwP6Dwc zsV=n+S7S-^N|Mx)qI+k1B`N7bfD|MTJmNwyiU0|)eJ@i4BL}b*;f_5?4vcaD{P8-B zd=d;oQU~_{JAbZ&^^*m27lOqM+0$?|A_c~Gi|zZ)&1LRSUZ!&%z}0&Isq(xwo)(b4 zqYn#{OMBg_S{LO$?`;m}Z`5vAvy~GIEaxap4^^~Qn7p(Y0gx>8c7~(-;M+>ZgQLvS z*v#Ud~0tEtr)0{&qnZIX8MeD>wk=cMq^+{hMniO4jy8CKe(S> z*^D7Mv35k#dj`Ku0PGr>ngM3OeRaDNL*~)Gmn5|yaeSlGg!B)ICnU8Egx!JmQ@t+& zNEkGVycz!2f8DQCw}4$8 z>DpBf21aE7JiC20ebOiWM}LMG#Q%cL7youRKXa^%`BpUi@8Tjhb%707*qoM6N<$f<-=Kz5oCK delta 1484 zcmV;-1vC1F2GR?V7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000GqNklW-x zn{htwtHrv*za!umepsR16Z*U0564;>lDN-KW7s5x(H%C^-9yK>2qE>U%>%dDffqGk z3@91c0oW#Px9zr>hJVR9RwR(-Q8||vcaCAByEz|#7hV9hHV?;eM9^%*;O0?1m+Kbj z+d-j5QDHOZY=7w}SW)~{>n{?Z(uhn{l7NmQ?ONKV6A4rTR2h+tY7z`cQGwdhi3BgJ z!IM&&feM?cLpbMiXZmRCwQcuYOafFGkqK+ZWX^#)81HP4IP5?IlK_kqx5p+lo#~7MMSm_%emjq!EX#KAB;eW-h3f>MOB?&!lTq^!%?aG{w zNdT__nv<=Ck@`P{D48|&FZHVtM}w7N&~|2ju<UfINM35jUe(zmChV!)u%(au? z$^xRm>X;f8nJ{gS752=}Xj{o1P7_IyfjVZ^`J+7@XEnq4d?AD~+4{*1riJv?^NI?& zS$iXW;D7em1__ZPt&7gNKEAWQsM_Ee1Q`8{ac1p}w#DN{=KB;ZM*x8DZ^C>TV8Z#Q z7tlijZ&c`x6cLz30B=gUBb}o*3_C2<&ta#19z>3VsWcD|#HmlMjnof-)8L{)4z|am z2Q-03v5Ul3cEGlS#RxzN;AzJhGZQIxz@u}#qJI)U$F@i3>%nY_n4SiX)QA4#784sA zNnNTy(>SROO$D`i?V6{RB2p1NuoMBL@UI!d{U5`-Gb*A0_q(;baT_hOsDxH~NQnTP zW4RsBahGFobNIGni2ZbT(TE_0>%lA!p|%_I3Xt0RjPq)`m=kWnF&gS8qeq$+0gp*jz^C| ztGHH)G46F;xmf@``#6O>(a6HP?0!3J1r3J z`~I&1qM_9)Zg`3i61){H?t9%~X#?D*0)H+M=*{mv%HJdKJoN$2mM0JZK;IPABuFm= zdDSxaJd*lVh(RxAZP5fG*Y6In1n^AAv*WqGXrJCmdfGoF0$`jb!BQPS%Js+dEOR_*WZd;q;zgrDy~dK#Dood5p>%#a|17+c;7p2cu_G?F}d_kUwV zNWk4KOpOW28o)iUAS|=`dNRD4AVVXhrGcmLZq6U55{6*{oT^xHn8~-f&u9DH4T}UB z_(A}!(#9D@zf*-S4ywRz5==#a&o7^-T`NT?3*H^?*$9=OQ8!XOwXj5h&rS-6pgE$O z!?K|rVNx;9ok2kY0r0?9n<%2^e1GISPl8qtn7MHsNG}9sixjOMkX?1`49)TMNQkWe z)>pzZ@zaVz60n2uZpS-5vME|s0)L@{9IpWnU3#z{%2Osx_=<+YS{h9 zqPxR;(PKS(8mJZ+|Mx;AfL8YH2x{-?>fktbb`dT^3rrP)xR81({BxHiUGz-l__N2r z=idnOUjKSfK?Kj+FkKzJn#pk~3SvDss0Ur%?0_SzWt mt^mf;Tfx8R0gn)rNbwgPm21lz6%sQ50000egUU?HS2m8n81!EO!s0sI7-P9;sMkS?c9?9wQTg1cyu6oK4vr`hv% z_F2T4+4Cc0nuQ<#dGGz-tP$hKa-x9!54gGU5%o4m6c5^2(SNz~Rd6X)_A>&jM;ZMK z6^+6rdR;~p>wq_=6KySMp2Y}q&>HOs2H-Nf5oBOL(2SrCZiYO9PLIM;kKl5h-=@0U zt&#`ZNk0a=Tk1xe$x0tuU97~wnvv$m3tHAUrK709wfED&yAVyEXP+qj)7bHiC7atf zb(pCiuH=p9(0_V15p7R38UAS30$>VK7c?z^o|+dvt8Fu&-{H<6PB>n|QPf!ddc6w= zA^P{trJkgg^TE=G4M~ND|3FRmt^h|<;V)U4lce1kT?+tRg6;ivKppn|mC;*CL+O=w zai5fGPilFM?o}q)LZRnU8s>>|-)RjveKu!w#=8hi4o4qDACHf}Ujn#&-2GbEc2|;A z#D}^Fz^^c1rvWGeFr@(~!}ivMh`!V2IH25Px# literal 1442 zcmaJ>dr%a09RHyrpqLujRF1eVp`q;U>t4Hhz`c-bJRm%kXc}*C_jj8Vf?N-vMX-;kdKAzu)h>-_Q5^ z`M&nq(&FVaradqX05HQ<Yh9UmjN)jQTCK;|?HhgEV>y$V;>7kk9|YLS!h{5)(~ghvJfP!q67pe7jRBNlwjE|2zcF^OYi zDq6J#A177rF2(GM3Ne$8CPa#&FcYVPlEC;_zaZvf48_nSjcyY`n|OxhX%3sXaO6;x z{Ct_CaKarrS@0@N3-KgbTU)EEWp#>LNzxq0krYER41qL=a9vOnB1ABpm9XG|VNsPs znydt|xJALItkWzwB0C;MAmn!6G#m_1?p2?*zhH)jOrrPI23VR00uRe!-AtPI!TszQ=y%6{<=A8%r@S--ZH3F(_`@Oc(?sL(rn0BRB)Y5q>{yV)UFz6wE$+0x#W?y74YW z5)?)#!G;$Ne$FhiBEd?mpAh|eKf##=17Vg}PJpZ)Le7knh$0#9np?UkAwsPg-`*Sx zbhtTKFo>o}jgL+JPrK2`O)XvFamHdXv|V+gKMFunhs$C0L@xZk>#MetSgMnY#rl`N zvT*7>6*~%gW)59w`8zb{ZBC4ceA+ZLRCbvg-f85cx#Y%?xpvEE2ai_f zr#Rj?+B|Zu`L|iuHVt>~zfs;O}^x$1)wE!(})H9=vn(=@+t6s``UMt zD|%}|3G>~gJy%)>pRw;v-ZjVl#oX#Ha3!fC2zCFQX9B};1mCoiABI9;BfeqVQXjh?z_O(B@$}4wttkyh-t75Ry&LRX^!A=J<|*?J9=BZXT>qR0)VLk1 z{81MucAoh;4dZSyw%2gdaO+yDRo diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_1.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_1.png index 7af08829b8c67bb7e5625d6e367612c3077c1374..67d77257f22241335e81d3d11a273e8bf8e7f6df 100644 GIT binary patch delta 490 zcmVYDMSQC2T7SCVjkVcQ$-tX1R+9Z#9|Q**^dxs zF>{Z_?A$x?CwQ9+59dAaXCRJ0!+!30u|?xu`R zS3HjLSg)*iF*&dibbVR_T4u$A475(fjP?1t6Fh^fjv)LtRtTj^qgKUxMZe0BqRpsz}@cAcz9c`l2xnMs!R&O#p>z(S$e-Ml}L`n9dH(&TniQaXKh0_s{k53CRO%WhYf zBq`i3n=`rtH&z^A g-2rS*lH0xX7wEuNycG_C;{X5v07*qoM6N<$f^hcb&Hw-a literal 1478 zcmaJ>eM}Q)7;mA|`Zd1XWRB_Wn1)5K_tnzgg^HzDl#j9w%f}KGj_X^wLGQZjVGA=@ z(M0DaqR!1N*@kl@Ml#fGE{a4zaZX((&d=ZU8{Kzv__MW8S?W&6;P21uu7Dy=$}VB zQAG4u(GruBaQf|_Qe0Z6fMsKWh+S3yVm6SNKoA6CW(>f?Qx&wA7ZxHEL6JBKZ!<=kS&C*!1{uFl z=uq)^*+MRR+#Nhw(MnbIvp60M1`R>lAS6|bu1;%p)vxbLwKTaA5+~4PLJAn8aCa+SZowwH#=pIAc}W0KzasQIj?H=|mbEK@S7pU5%hk~)a8=5x9H^B22t^wRB+bbSq7;$59;wh+ zz#LG-)xeXj$UbB=#jN-g3IsvHxJe6U;?pUN6pReUm?#GGdPy^7WXu9@sX)i^o+nZ_ z)}>Ga!|+Ghu!70USOi+YXb5kW`d?*UQ}fp`rA^(5F5A({IQF&N@LzlHcWj^kz6M*@x53r9t!7f%VDIYP>Xez< zi(JFB&BY78)L$-6JCvLd-$i1Z+g^A+`8)m;aaG&8ueANzt4SqI54*!{3(38WYVcM; z>TtcQL7m<>vuKuiLpWv1puFPtTm6SF?l)?$r}QQC0_D!m;*M5b?m>O;)~Sa23~k=c z_%++|A1CaZV;w%*axgV~Eb05qmme34*;}65TOaR(G@!S4M^1s1_ z{lL-t3)Yl{PM7_B`J=pnBdzT{J)f;8YPq!KTd5~j_gI&#xpW}r>=$dvYmq-|j-!BU I%PMd959gs4Y5)KL diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_10.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_10.png index 0ef6d471df6c00a27ae6135757b3fd98337e4f84..7bca8d134b519d608dbe7e08119baa6e898c4c12 100644 GIT binary patch delta 592 zcmV-W0Z(3wY5BCv~{jz1vIG19i(f(b)}2h8c?IBX@9;B)Rx>0Fw{uBC9pt; zCe^V3+=`-`V5=KeCDH^b8CIgbUmIfYA{mq*U?W2(J9>OI@mE^!B+Vu!`RF@i+LGLs zrpap$YKbHrt4OCFY;H>$j^q}3Pm=7$85Ers=A{V%>|F;bfH9GGT93J;36Xi@!6Kv& zVB*XJoe;0WVt@Jb$y*G0@12H$q*NLmJ(47={v99y*axsz(d{x6Ew9nsW$r~L7O>`d zm%`T^)nl;s;lNL_X+Hdmz*0MmYQEyL1+4p_e#3)rCI+ilrNy8H5mmgVe#JTQkf06Xv?GQM-DUfEzO#mx}_h zmjjYA@+<`E9oQ*>PRTLjYA7VBB+aGc>aAas<5pvXIrGy-?6a3$8kqHp20^E&LRhj* zAcZfbu}S6x;3p7zV7g@Rl%=Q-mw)ZK^mr|tBFLg;mp=Rr(W)(Qy$_RkO(VRg#nI{` e%MGm3!h`>5^R;5&26(gp0000c~BE)6kiBfbfmU+P)c=Jmtwt=-Q3xgG$h%?KnW%oDvqP=X0w5nBpZ`O0#%#A z18`8hT5YM8dg0Kb=-@TZh^QSE3srlJrHmuB*j8Im${>hJzW}lR;kdKA-}k+JzxRIc z+Hy9bMhM*Kpz)R8j3=i9xT-KvTx=%MEFzZkw z3*~0a?A0@Qtf|p33-D@9@> zhm*)6jic_sNsZ+3yq7@H!oosPp;W~Aa#1mk<0vLUB@!Xf5c-QeJQWan{7GR8B;%)j zte0mw4;->c*|`EnN_%u?DfG;8k>mZayy;vv3 zWKxA(D;68{TB%AwYH_(vu9xWzN=4Yli?FyJ;EXDr(x5eluqwS#r&1a*Osv8&rA`vY zrg{84<)N9dUl#Zs#cE%QCGp_rE8LR>Dvg-)kfDUsnyno`-3QM}{1 z)Qxm0kbp3}VKxLUcj78qN(-e9sZ&ThWlkZkqU1uALyA+3RK_s43PAxyG}JZEbx~LZ zS~IkLHWuLUY_J#)m?j?>8*^~E5scgzONPxbG&BUZ+2?*(4MCCbrIA`&pzXqEi?*JJ z$CE`58+(7;u3vA^wcL3yZ&uvJYkQ+Nk`r4#x%>6t!J+2z{7YB0?Qq`AiYi0<;;1iE zFB=10$GSy--C7$cO|5c0jCf@2A(}S-se!VN>7K5uzTVN7et$~GTLV|q5B{^ia#{87 zC*sS0iHKRayI}6crKSC=HvM5}{dn879@D2YdM1=t5~s7L-I=4`qILRzUVUkUHTPak zTetDve0b-UuS`QhSkYt@ELm^A)kQ|h$Hp~91~0cX%dUq!1i`o7wm4*#SLt2W_- zlOvjMRMZ@auw<7GLgpf@;ioeRc+~xhL8~UxR58JL;bucpG?} z*&A--qb9*^^{dh%s!?if8k3Bk!_SX_R%n#2wrKM^QSsF`%xkckV!_q}OB27(@z|{= z8~VQS){Q-KVqY|5ta@;0e+<;Wzol+(mG$wrT`ObH_RbZ}LpNUP`*qhEWWd{bul?`u z4pi4|JN{%Flra>wFe?6w2k^c@IC!m;&z;=2`$}?N&jb l;q4O_7imw4KF~ytht5O^>Z^8?#f5(EX@*SlknY2h{{TjCTkrq? diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_11.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_11.png index e6f397eb8e756f678dcffb65395c194e23b20cc0..be63ef5c408606fca38ac288e2ff43497ec3c39a 100644 GIT binary patch delta 730 zcmV<00ww*T4(0`r7=Hl(0002`twPcO00ON^L_t(|oL!MYh#O@XhM)hRNiv$i?t;)3 zSIr{gO|tf|DcE+PdhsCc-O74UFM=LR(ax0iP*3&NLY1!Ip?Fd7BIxeSdQcDIE+SSC z%?Mizg*E9m+f0&~c|9a%jo4-w&o!Nlr_$hadysKYyTLhuL{>RniRD{vSC1 z=Bz2^XgXsGaW-qZ{NbQAl{g_J&tB?IB{g7l?3?R{xl`cy#>!N(Fc-s}*1K5h0LK4|9Caa!i(OPQgBvHSE$ZmJonF_#ACc5~pASwPE>eWN{Kx1Nqco zH^#*@_R}(~|9^Z7Gx`)u<=1h6Z*6tu0nW9a9Rl0Z99M3)tm}_|`!Z}Lb{tG0Je0uP zb7?#V4?_juyZ6CnagSb^R{)O1E>PWpGB+hfI(4IE8LSeXcYdz}tO7Vc0`90IMf&1K z%aWe~j$|G{*~iXbcr5g&0mPV3uw4gInv>i4Smoi98Gmb&p6Xz=T5~Q2{f-Lht4?Gy z&OSZ36T02Wj)nb2=Xh$?5Pa?70`KsWM|`+pVjck~cERmk{;+( zXCxHgoqz-V(HRISmkLSR)8DNba9;%KpBK_6 za5{xF#4GLT2X05gT~VMO*hh<|xhzrrO@Z33bFpm_Qwn4m&eyq>nP?@in@R%JpZb3l zuf^5%C2+l#ERMV2EUkr{49UDjaGx6GMQNwH9#i>vulHrO4i*L<$KdUP&3ysL2NqsD z2iSx6Tw4!K;Nz6v78q}Xtr!#d*vBP{+8>PtU|$`V^*jKZAq=E{0EHV{$U9+-BLDyZ M07*qoM6N<$g6F7QIsgCw literal 1826 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 diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_13.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_13.png index e43b1edb862f1f9b0385570683d28d64f80f3f73..c385a5ec45529fe854405d541ced0c0f0359e2b2 100644 GIT binary patch delta 581 zcmV-L0=oT=4blXV7=Hl(0002`twPcO00J3FL_t(|oXwKIYZGA@$3OR8OezL?ijWTd z2@ZDA3>`YO<@di-274Vq&rra)NHY6`?9wSSVeu^^iQ1piFYb46)I z^Pe8ADPBk^fbMiI=!0<}ZxvGt?hbxW0qf&XzHi!4tOxaON@0BLB#5HqYt>LgkFQ5b zMU87vPJGViR1IhD5I6$1A}AiV#2(r0u770uI+D8CfnGI?ArpeVzl8^o1zo)_MN9+3 zWG6A~4S?0Yh=1kfR(8N>wgu#=Fns)0-u4a7GO+7gi=O?gJzgfFAjOeYaVhLXRflZ~ zQXJ3g1qJO_9+@Au2Us;U+M?slnA;f_;4DmZ_!fW`*QKzH-k0prDQy^BfJU25CO|!$`Gf)&EBi}+62M#QU|}-7%g^Y`)R9M3nmwlNehU!6iJtFYY+L$6 Tg<&HF00000NkvXXu0mjf<7yFX literal 1679 zcmaJ?Yfuwc6y78lsR-f|0j=x$7(kNUY@Qn)O0q<;BqBtOPRFv@?3#edhGda|f)Sbe zKr9wI6kr4ByL<0Fd%knN zbM862N74-IgJ(s|0stU5Wdokh&0g+a7bxJKgMshqxhb4YHnABD&E^p<3P`drW(rKP z6T7H%im>G8v{LZ^ASkvOO{__uswNq`nDFU{J$5ID27vgr9w$L&Q!HqvcG(;W(CD{U zAkbz>fVRo?h~BBCthNmWE-ItIU?dB&Nz4MRO$6gTYR-V2VhPY=-|cX#JqggHT{XA% ziD3wwRAI9dpea%&eHy4`TokAjOGG4sAfOTxQx*a>OKF0P1yKZ*z!GjKMG~bNm8vBe zIDJ8!LzjhCr{lV5cib)kva+mG4a0ePdEz{&m~ribB^ZXm2nwU9h|>_c^BpYV5jor| z{1$M^O}cDO*2XwMpGCsVekz=FY_e!My{1Do z0zo+(s?lh5er$@v%@Pih^82-Mey6eMYq4sriy~OYWn`G${vt@TGA!e^GENYciV-kM zPmnf;PZI4rp{amz%4OR_S#&PO4o;?6ZF>a;1VOpDB`T4eP@p0SDZ@mV9K}R5Em5K} zOi2;_Uy#O@TuIgGT=^ZPQ{1gHofa% zry+v;h=x;5yo0jiuE+-e&|A$nu^g4&*P9auIsPc) z?~9EecWK&2Zhtp!ZW-WzVmR>d*8P@%eq7gJ>ed|HOr!P9(O}l0(?9ah-$~t)=ky#c zz8F>?AyF^I#Uaj}gQ4RWmzF#M<`2m0hR*O;p>gjLi&Ay6e0lT{rZc8+jF*TMf_S;Z*SByecoW+LBd^$iq_wXusXl6N3_M z6B#H1<=9qaY;7izdjD3+fOnftDC0YSDh7OCD@vnb{jHlDJGo7;CkOW}1KNk7L#$x{ zO9NH`Hhe;Wb`97*_Gy=ElW919_%1<8BOTq)s{!$_34d6x069b?kkwGC^3zVkG$Il> zi;--|>Nq%PKuu+p2Uu?QF^EW5t;+KSDbAtDXaL)0bQ!RodXbJV79Qb;luK0&ptKv_ zoAef-7}tmn7T2yT`RJi^tQZ}*Iy8r$MSMggl-_Vpz7FPHI2X_IN=;!s0jM_@GME5Z zw}D6p40zJ{`iJt(N`1L$vpdpN#BAXeX?VrykOcgW=H1!Lp9}~%(}8lWdQ&l9A@bTh z18O)I_uim<14{6=F9#zAEaCU$?i}`~fdZWHQ|80xCCEoomxjm^fX-6!gl6a)JR`tL Zz&~1h3VB{;Br5;_002ovPDHLkV1j$>BmV#Z literal 1714 zcmaJ?Yfuwc6uuFVhXPeB6{xz6g4U8`vq?xc5FjMH6exyJDRzWqvw;ZN4atTCY;D8` zQWUT=DpFs?%4iwt3mvA^f{LhhXhB;`6<-KeTP@IvQc&pziS>u$&hFlO&z|p`@4RM9 zlapdSJ^VcY0G{!2N)@x(m?zTBiFx(psSC))Xau-8X0@3 zC=pIHD2N1QfZ0Fkb*K2keJKo;4lnBVw6j0FeFQ$#qeMVfe}8B&)i}TUo1rgQa%bzTx`an zQKOZrlraK+k7u!1xE2AIGG_DmD2no6gohv;MuTH2Bx%gbAx(1~7L)eDMjcZZEKf<{W<5dD@k$w+`NGxcG*WSl zf*&P-g@O=~oX?L|$OV!Rr5qJSi4;Obv^d0J<5gI>T#TZKFiIRPj~U0pN|6#l#0pdt zBT+`f4s1MWqA?OD9Da3--wCYzwOFabNMJN&R8v%*qY098D4H_mPzDGQaA9acB8KZo zyX0Mag`NkjB#gQOLK9=8^w4;UrMg#8fMJA*n=j#run>g9$Au^d6(J}`tL2LkAu7f( zNfvtouX!nT&%2b7Fku)RY^1nIi%M_-&Jkz?S`MxiYB{I`6LBOO0g4dglr0+pYhf!l!S}QQvO<4D=22 z*oMDKt8U5`5A=ik*B*mdtoZ7DP;%*TOc&U(yi%m}+Vg2^KA^$C6ktWcvw7gUYfDDE z?SVSB+UJkd;h}(CWce(x^GikhZ>6V#pWWQkap&lwnHz33emyn{w>);Ku#I%O{PJC= z33RSF@#GTLqy(0}7X9(oi{_pWhI~fJ4@b04-wrmh`DH!nyH^5XNOpH;{Pgykxa(*A zDtE2f+X9`bSe>4E%kZj zo3aDp1#Y@S%bX7ksMgiIwR>9RG5^YAv)e|_MNV12QC-LKW2G*7I{dZ@Vzu?T0+Z`S zDeItO;Vi*jF$;1&x#S(6oFj_{yL>Vg@Ywn#F4ZHDf54 zM#en4R)6yE$hNNXZg1z`T|Fi@L+=H2_LuZ_t(p3h_hOICW*$p9%kNZUFDSrs`j5I+ zW!&3UCA<37M>XjWe@seKL$iH2Ug`Z#e;WH)IXE;Y{7A=U-@R3nwxlmRoqphM?Z#=v z$i+Y~^pFnn{dF+mpt`%f!>OY_KiyD&_4fINo_?cbmy6;4X+dmD+zfd~V1qB2Tj~#r zj(_jFStmP#t9VX7tgBwdxiZy1<*An~>=U$LhW5hcT5;cSrC!}?z9A4M?e_%rjZ@1G zTf&3SmMp(@Z{=n86=i$Et3#%PEuPm`UFfQyDryF9M@-HP_d1t=l|e-*JI`e7{?{FJ puQtyf3$~4hkm9KMNvx0EV8AZ*&aK-~XR`lA;-iz4-$Z2={|7Lff7Jj0 diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_15.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_15.png index 96b19669673d0eb6642adeb63c53d5c4546b010d..228c294823cb9afd901a9a7655c144fd2928e35d 100644 GIT binary patch delta 721 zcmV;?0xtcH4&4Qi7=Hl(0002`twPcO00N{*L_t(|oL!PViyLPYg`asfNaJJ|jZMIE zh|#!7inuUojibR3aF-M*((U{J2Maeg7@{{W@=*lx3nG5Mu|d z$+FoMHnv8_AG6ZTds2*qo!ss|oO>^vbMd5mD&<&~;eTa-kbmO8048q$LBRmWS1Z)p zo)su<$O7O)E+3CJ@oL8ifP`oTz5`{z$<>a2)|8OSl_KFxHJ1ROj-Ga;eW}bUFw}iX zxm3<9V2HR2)B%V9O|>COJNWHL5En z0Js2oH)0JR9Dl$jOh^r&c}-F|F7<&W19bRG(&AxJ+#$%oU@`#jdgEm0=gP4FD4=-p z^&kWTDL~};>Ye!!41_>FAn-0%n}6>hY+iN2&cKjiNWv%rIAJlQ z}x%I&J@j$)9Yzs(KPf1Gg;G{NpZmXUWfyQKV!ZlCcTrLH9*np3 zN*#SxbYrA*x<8es>MN!T(gWRWN@M+ASZE>r)0e#<~J-kU&5^DwZ*1Zloe zoRyQFv;7SisO>B^aZv9<08)9}jWv_zc>_Rl-%3k5kji|Si+9_?4dAM+6x!&^wWX49 zncVqZc2mI5mY`gCX94fa)yP9-A4+nw*Fg6qxeVZ63S519^r(5z00000NkvXXu0mjf DfALm; literal 1805 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 CQA6wi diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_17.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_17.png index 49aa979d745313982d58025ced17c4219ed36138..f5871e49c1ee85fb60d5391c3cdb971fe7fea8e7 100644 GIT binary patch delta 583 zcmV-N0=WH{4AcaW7=Hl(0002`twPcO00J9HL_t(|oL!Q?YZGA@$3ORatr1ESih`5L z;2={025n4!rVW2;3;MJhUyfTpcTuf>sI03gegoF* z$Huy+sjz_p07X7l8m6JrBBL!Im^+e^9R{EV&axZnfz18luTMY&Do~WO&9RDYNzzD? z`jV_U4nV*kfH}Z3O8|@z_z|m^Iakh$FmaxMnv#@DZK*EFFAp$)M_8~wokEh7*?%vk Vi5!D;Y}o(+002ovPDHLkV1ilG2ZjIu literal 1560 zcmaJ>c~BE)6kkk4M7+j&!ldgmSQIw9o6WUbgCv_oqC{v26{b#cv%7&9vKx~X0=1ra zqIk4ZwX|qwI@TGF!ReqKv5Hpg_=ipvr>#~Qnc~rU;5}9==@%f@KOA><_xrxL@AuyC zUAwMu&dlM-lae6_8t%xmy1=>&Jh@2<@V=h3$qAN;vaLielDu*?8xkNhFL?ym5n#&& zm%#Eh3(pACAxN>p=Pr>;ocS~-1=MUzM;!?S0UCm)&xizB&M(NYM=1A+CZwnJI0E~4 z6Eaul#GOG#sPN_0hJ>QpIc~1j&rv)wBL|)yp@D&bAhU2JP$`D#hzaSlOM`t(j3IEJ zitINb{iI5qg)k$91lXV^P!7j&*g&ZTp4E6rFUw`a8eBtQ1h@?-VW2f6O;GT_g#d>k z-b=fz_5pX`WI`%rIY?tzb#=A6np8`na*UuT3d1#+MuP$kG+ZOfYy=g<>2V8IAkrv4&1d#2IA`o;sUl|s|1GxfO!y;@DBh)w+2*g6`(+Wo!n0+{T-*7Ohpo=nQs)&1{chEsWh_(c0~L3!%5$twbE_ z5W_Mnazfm%5BMFx+TMz#nUKKBQphbymGLGhtdL|WTpqzyd}tu`u6li$NPYWGu}W9*F~5HceB?$1Zg)@IpNUqQR}CVodDg7tf-IlJ-H75rRx zT}s-atz2%^(BhQ=m+d+;BsF(sY0tEs9=&2;`iHvHt9EqVADJeO`}olZge%e)`TV^+_mCxuzp?9{huCY1OvY)opU))kDM((HYTl? zd32T8le+0~(zBj2_j+y4^VFT#`Ppl^J4j_wSvq{Lw<&r{ zb-xR)?OK(8L$`5$`;((vE?j{2{qo7`B^Prh+&g$h6n<-%kbJBb9ow#YdHb7rPnF$M zmS6qsz~^5a&!~KuH<5WiX>s&H4z=yrj3q1U{_*b~zkF)**7iG0+blMtb?Bwcx;%IX mesgvHhPv*JCBMHMJs(n}4LZ}juem7puXfnxSPxj{ulNsC?K+$Q diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_18.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_18.png index 7739e294ac6ec6d9d6daebb993b38f8c2e693474..d2a276eea0a314165b9ccbc5f4b52757eae45299 100644 GIT binary patch delta 535 zcmV+y0_gqJ3#0^)7=Hl(0002`twPcO00HYsL_t(|oRyO?YZO5khM$?78X;&13Rd0~ z7Gfb5Vx#63u@O=PECd@eaTF3aDAZwG}fFZ4>GaloPWWPg{slB7bCq~I|BXxs9} z{~`6ll(qvFw-nf30qVabE}1lvgmzbT?06}36$_nC)cGpEtnPG3PXYxXAa}7gia0nN z@XWLWhXpOOQZ>eApcawOzz)E5suU5n1NO}%PcYbda3{z@(RQEQG9QF9^ZYc^-+#H_ z=60M0uxo`bMt{ss1*G*Aj{#US)^hn+Oi=FYlag_$!TFs9;B|$D-Y-5-@~gf(aS(5A zUsAWD)E~*}kD$4BIJBK+s?j^gEL+IuTu7rVR#s(N0}dU{7$2#+2uucVeI9qq z{eu^-l-alZ==LN@c^K3w0DgqoE&z~w!4w9duz(C;O%z_P`Ri9hEgKw ZH^N6&co5LLA;ACu002ovPDHLkV1mqn`(pqA literal 1492 zcmaJ>eQeZZ81ER6-ExEBrhI6ibQ4Fk*RQ+lweDcI`(Ov$Ty6&roUpEaZ!7GsrR})e zLY8BIY%0zP5fn_w$TY|Vf(}2B@G&9IXfU7{QA2<%0mS)%AJc*7d)p5AgV3~n-}mYB zd!FC()%J?=1v%L>vJnKy@t1jma81CcBr6lX2eLW>aG7p+tBgt|Y{Uc&ATCL%1*ktF z)PW!nq^33fpcp|iTjfxdQ59Isi%P^Iq;xFthzijNQanGd3gT*DptYb*jykcQj~v5L zS#n}e+X7@jb%T1jtXTt<&E+And9}z%*!+2Dah!(+BES&Pc%&h!^KmCOVwZ>el$gNK z5fx*#6B{K}6{tYniUv^DLg6Awk|@hrfF#hhOjr<~KxvYu2nyaTPO&`A@DzuRT^Mwz zNnt+d@r}8ICnr{K7%EQ?u~^I!V=RhRM^GHc5hP8}G!8Xzy(wx4aXhLQq%C-WE^4xB z$VwDVSrlrOM#G6gvZGN%)Ii{l;ix{AE0{GRE~o@$A&E#N721flZUn*qH14UbhniGC z1c9zJY9cI2xF8LN>ASz9lpp2~ zQIyy1VjOmli?fy5+*Y@jwWn>|3tQ?SefCn?$9i495iDtC-JF&4xx6e%mwMA!e^fVw zs0h-2W$1Sd>%A|QcWXc}6fLAE4e2JRs8-RcJI|576Yb zK=Nry1RY5+FW-X#NzyQG%7NPiJB?GKmBTq3&EerN#nM)e6$M8vHinn(O5JFeLJ15* zO|#)eTbOf*jEFN56UN1`HH>o(!G=2|h7$l|1%Pv41f)o$y5_DfN{e7?rnYy+0v_%R z7Kp-W(%{(a0o`UeauX{ShrG#T5^k5AJlBFC8Rz{TS15kr#%n)L+CXM)8a|p_L{K|l zedv+kj`n5A>yFKRU+?ct_Rs$%Ki)F5&sw?nH~m1e|Mbi<&>upYv$huFK#2ajfrDJCYgB z$$Z_LFj0Fg=A8u@`NhkHtu;NulO&B*th%{#s{akC9f*u7!O>B)Tl!o!Fu{?FMP(UO$?Eg{18?s8yzhs<6Q-r~%VKhE%Z_J+7lT))=k`kvWPSNDn_HP*6%I%>@Tfp{SUt87d`+0 diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_2.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_2.png index c36e54b2fa31dfe36c236ecb570729dbe8a0d267..c5e8a2a5b9b2f89fd0a338b9cf468470840e1598 100644 GIT binary patch delta 487 zcmVOC=x1CKm$^I5k)GH9ir$C z@7+(~Td&O{u+`|>*_mJS&l)j*EdLd-|A1nBK1HK9bQBKS-G9_lV-{Q-DE$$DRV(H9 z`I#E7=;%cms@MW}X?mfp1#Qp{AOmd^2XF#K$}oTw>>kSjL{OX~>qj2+MmS5<`r^T* zh*Lw+zTn?nFS+-=Gt$@#TPt-f=FH4I)NK=gN)|mZV{L$LgaJL)cO9@_uWHn|`r!)F z?dcO%pKftV9Dn8ZIe<+D-9C<~cuUrN#y&}0&wSg3Wwu2!&EPERl?JkQ1z?P`aGU|y zm=k`H)nMni$|!ipaFKj#X9Bw4R#MUkRwmjG-aZ;h$*rlCgZoWM!S9;xT!tV6HrFLN zGh_Axz{wb|^zLgQPs0$$uOxjeS@Kp~KRHQp(eYYq|=U(jd!% zE30+20wXz`Z~L$c{&=uj1>Su=SH+rMdbI{c+h^pHi$l%mkfiChTN4B1PlEd`N$Q8+ dP#(<>=r5DmV%SN4xJCc~002ovPDHLkV1mX}-irVL literal 1472 zcmaJ>eNYr-7~hj9AZ^OZveLF?D420?zwT>yIN`XxlN&i;0F$PY_IBTu3-%w3^@;uZNN;))89m9VUZXr{qI0}9Xu)KDrz5zcU8lXf|{j)@5j zom9~)oY)kpQhy=pRyBay%@i(@B#GKtGmr#2z{rBQ0HsNqA}BcQIA!N(hND zO_I4H-aG9M?wnY;u7^2-sI9Fv*D_{RTTW0c%Mv6_&@>J;@JL-q7YsZUNsU|JK}6Jo zVLhmZ(3nLbpjPWn43eFSLJ9l*Hw}j()476KBMc!-P-c=)lvrq!+7Z17{7>Vy+L4mF zFd&LRM6K3DcqMXb91PQUXGbwb$c8J>g7991N?sMK6%f*Wyc2^bW+^CfcCVYtVMq&O zv$`nC<90C)8}DMRIaasD?Xlb9Hg1Qtxos5GC+!}WH->dsToj+fdvbCdHpXSQ#<9Lo zL>EFLi2Dsfzf)Md_l{W3tpPz-wGvgWj2A&+xvHy?ay5+7jG08!{el<_#UvTA8=4B3 z2U@TONM21<(8&~Y!P`(ENgBpYIdH3Bqj5^KusCa_SzMMWJ8fa@qTmQ%(|GBY)J;_> zl)x~;aWg_$9*}UqD{a3`^w+?4nPE@czjgAcB z*qemE?}cNT$)^VNfB$Up)h|L4nMI}pv$H+l7iJeD_qFg18A#POVkEIMG5SD5w|Qvj zK!Oovq}3bK9_buDhd1v{T-TFs`l@ej-SM_dFZ1(KK5E>zWAm@&BW=|tIWfIs!?#K6 z^HPz6Z&*eu)uWfJhvs{qIr*u1<k>fG0XvX|NI`0z-IF<$o2d(RJCew?Xaxuq;Qd-Q$p?wPBeYs^hUT7PGjbvNI2 z0pEHt?+`me&RpWP5 zUhYE9_07&O40a{g`4-iZAL_PCV_>4OmS+vRtIvwZp$F&QEC5@6G<~>yPw}7nwv8T3 zl39(rThzWMXMeqltv`U~>Y+JX$R22rer;8J1@jQQ2H5r#fbK_+s_a<+(_+N1$E6YL zd(#TX6WFh$57#H4`)RQcKVfmQ;g{EU29lbth%&xWmy{`;f{L!52KMLuFIicVq#YHW z8QlcvGb$#%_7YH!AH|dL3rVT;v`}&H6>C>&7CriBs9dsvywACm+Kz1DX$3fV*fO3g zR0NTQcRrWfll!9w7bo7Y`Ji?rNm&T$1OUH6whI7c9z=Nrko)aTeM}Q)7(YHHl_?IF&1l4&rwc6E^}Z#XD87ZD*NR*clX95!oYC6p#_3GaSXDvlj*( zs-mAOcerNV!IK3GXqv(iL^K-JM;X1W)({lSvII#JG>tkt@*-=svvf;L<608ef>yU-I5D04}4hsgq=tW87j4nH6W5`0L z$Y7-?r`^h!iX2wfU^CbY?M`D+%Er7{nld<@Bx`h9T}iBsrWupVZgd&!CWp=8N?}XF z5seQEAmvv|`kld=o`~h_D&RF)^~!Q>stG&+S(76HSwU$=Pof2GUXa2`$&1Mf%>?WK zs`MrhU8)>Hr&G*H^H3m38pchTa06dNr5mPa9h!LWjBJPoh@-#y|L?e-`ml;m()4gsnPr1 zt6jNEmA1woHa+OnOpG3=+O_rd^agcWH53^=QEoN7Ddw>W~BE0^%pKq01PSHvYoXbyWH>scRfA2+WX6C z;ZOEaE^_$UA^P^>-_EOF+kD@qmu|S}TQ;?3DF04FvuudIPZt)uA-lryar3E(anYf(UdVDljx$)@W!mZ!kY;PFeyZ`$p@~2bY)i)T>(Q}VE{P1Ld mj%~Lt_FOz-y^!%B*N2?=EM2YG{9|VFZ(8CkbDXmI8vg^(c@A;_ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_4.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_4.png index 2c096689a8a945696d57da9e0f3ada1f10cb5b16..41575e79f9a4f21761c5c9965889d7f7dd8ddc36 100644 GIT binary patch delta 512 zcmV+b0{{K#3yuVk7=Hl(0002`twPcO00GrWL_t(|oZXW#ixWW@hM$=WUIe);qF`lG zSXjvwcAmP3jc`T4La<3Ht>o?xND{EfZ?H;nprVD9*qLadR$g&}s9g5&AeEAw$FXZ> z_qE8*ZQ@UGs^OWL_j~!?Z;V)6mj4Rae?Ypvctw+!v{Wqget$zNm3eS}sOU!ltQrx& z&(3MMw52Cmp<+|usp%JGEvQbj05PaXSb#%FBgO@Yzy(sp7SDCGH$F@>NE*Iw#y!vsp_DsMS~vbn|9e=_8MGz zdm3qT_GBN++JD0?M}$FQA2aG=+r!QP2Q>gw7^3f3v{a)f+5jh2D#58l z{nS9*e6b(RVw>VD9K-}2XG0G8MO=cdgL-?6g_PHf%Ou?`R|~OpzOF_@0j!q40PMcH zKatwkkE0yksY)vHF6rh)$ZY_yu`bD(xv=j7PR95K-FbQrBvH}C=`%_1GFE(*^s|Oq z*7%wSKc$hYXfN|1lai?7sxAj6Gsv>!vV2^vz(@|~%iha3e>_;rH#^?Pr(CS+t>8ACh!D?bd_<$!3v$Ly`u?Z^%ZA4f+eId~)GziMtB`0000Yi!e26gH(mno&SQtbky+X0X9<{7T~3G^I(LG!ae7LIx3&*c`{9fhIP#OHv>O zK^f1M@`Hk4(gtgV&;}EO!gz=x*cfP=3abRwV5}6z8&Ntj7-DocZNvD1um4bs~@e0ASl=4=KNq@4!$B?e=z>3+vo+;D9stvW=at)!7CzU3risp_Qd#k zqF?00l?%^`1rXGKMKlo9g5DBVkYWZttz$^WWPpaCf@w*a7Z!*b91`b6<5uLs(PjjW zhONkKlNa~O4zVoiUaW{S7ncTv#R~)`j7%$p3z94_5EC^XPR7dPDx0(-J$6~JPKz-F z?orVeSdm^*L9Y*XNQwy41_Bju9EWMfAclD|L`8UE3QXc8ff3-PQG#YkiX|Ah??He= zB^+V>oU6|r*jbS>O_Ny+OC%D81Z9wvc^JVk42F{!NuodlRV(8fpG4#8_>2WkR0Sm} zYf&iVVK}b#Gx+mm{>C}ScSG!h|b(#X&PZwVoN`0z`q>#b5C z0b$4)HmqQZFcyIlP%2DCP$6QBpp1n#p_VYk@FHatMaF_)fFhQznwP35BLbzFUcP7x zuzAr~VjOgn0@|j!bkh*fasz!O0cUr2H&}jnvb73=`rY+#wm|Z?dt1-fpMrJV;qLC% zB}cY%oZA@MKlEzj&4xWxZF>=SC3&re21E0JWe?$FOV3pfdA_oy7CW{6_vfd1>y}t* zMwNc;<|l7<{M7GQ?aAZ#t|xa^ukRe2HS%ZE;JP(XZijwgb++6YTqEVcrH>k?7nKwp z?7F+Dy%5WtKjOs7%hNB+t-o9d4VZcV%X2$672W={MQzBESAE^MZ}-(P`a{&PyQiD? z22;g#rq)%qrmSFI7w&(5_*cAV%IwIcZ%dXOoHa5vi9UWWHPM`FoOO%zHLkvHMt`i| zIN>Avqnd?z)1D4`inQsMx8)Tq{de&9#IIiV51n(FN1fQ-)RMn@c-F9~4;KyzO}KR; z@x`|KLyr!wgN_W{qubD4oIPiJj&6-HyDtCPoiXQcd{F4p$$8Dlur~9S;`RgY?7I2! z)p0pj3Tt$}i`j1acvXD#fSu)jarKeGlO6Z2G!r@R{&SLQdpzU*pfkGX4dW2&Ul&*G z*sQe79eQK>-`|W{I<~o?s%3jlhdU&%ebBn~?JWle?z;52$-VWWucAG%?K{Vu!;8qS z&hp5H&en++_E%!_Q~p7-PInci!k>FP&Q88=dscmI$!FcqnhN%DHv-xl)}xb>`c$xb pgtYheTl_EU)u-GU$z7E_68d3k|D9O=nEdq5*W)bZ_S!#L@gKt+D2M<6 diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_5.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_5.png index 792719974b8f9fd47ea7180e8d635612b9df10ce..f7965d9f7c1bcaf3dd18bac4452d127da2d49e84 100644 GIT binary patch delta 520 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 literal 1442 zcmaJ>dr%a09RK-1PQ}#7rgFq}2@G{_Uw7Q?$|=V^N-WrFG zivSNTqdmrC$}(qS8XN3E6w_D`di@SK@(;$H-TnQ3-~E2R z-_Q58&lVM|nll zRr2#5yK~GPI$7{?O$+fPSyfe~uVVFzT1L_w$B`66G7Nz24GNg*)2HwqL*ZeH#u!|9!nY6 zY@?N?9X2a#&bC`QW1i7wusKZG2^$k(%}%S+N*S|F4y$tnOBtLt8*4H+;x?>I0_zHf zH6bX%gkKr?9m5*$h~;f66f{NkDoSOd35v=UO$nDPA&g=56!wr?5anQ8k`=GeXux); z%1=SbsVV_%B*nZu0R@U;P~5bcFbdfWL5l{C;EW7M`2DnrF>oePF#GT^ymVXYM!OVA zP#B>E8(uW}IkU)$1S_$ALi8K_1ZNhEgjr%a0kQ@NIWtZoie$WNZtJ3i2(@N>J3bcZ zFg{o?h^9$JW5fNvw*ZaYw4&8sM=TaY+qGx9qX0~5cG<1o$d%s?ezor`rgLzySoiW* zGN;{BvOl+d_P~{fzeDpr-uX`Pd%knK=EaD}r*#7Zo?dS7KsFy;Ms6LNZ?k-Mtg~!o zvi*(D`k_npzs|X_ZLsCYt>Wf>a8dqd4mKCm`I06r0u5=~hAiMm?}iVPy1@I58{SPS z>8JvQ%y*NUuJ7r4#&#&_;5_#i^DA1x^+_eEXNH|$rcxe Uat0f1lj46(m!rVmmRDN)9}k%S>;M1& diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_8.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_8.png index e9246c0b7ef0569d13ce7cd90ad126c82351a2e4..2cd571dff7b471a8a858b552437c7b15ff9db19d 100644 GIT binary patch delta 456 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 GZ1@jf+6?gk diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_0.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_0.png index 6fb7de66c4f56b8ef4aa593bd7d3541b7072938f..0c47516c25ee00d805fd82eb613e66753e01ea38 100644 GIT binary patch delta 574 zcmV-E0>S;u49f(N7=Hl(0002`twPcO00I(8L_t(|oaK_gOO$aO$6ufC^K_nOc}-;~ z9%Rs<=+cl5cS3L(4Msy-IkXD4IS4*;Aec0`L=hAXLC_#x4)+{EOW3a=1P3jLAdrO0 zyL-Inc{kkEU4KKL@%?#!e!M@QH~d#2Nm3o4k^lq%IKWFAKz~V+6an44Nwtw`Mn`d? z2VB|A%+kQ=FFUtG{1)SE@S!k^`#3qcJUO@wT(gjswjTB%8!*%k6rRqKYM;_Q1YR59 zt)#$$HU=J$ZvjU}U4Tuuv~-m;ms7^i3E(gVFmjz!%@PYZ8d5z6?yH%ZZG-^57rEj( zB}r%Iuq8^5gn#QaGqb6;octVAGo)ApV7wR%>-hFTJ@WSf*jtPeZUJ8N9^UxCy6)@} z`^~Xhc!2@f-_<`&$wAaoy9c&ZX=5BbG}8NiixEWx6F0!m0FdEWo*=tfZ!vz{r+8^I z4bLS>-{`tK-%-ug#1jDC1m~}MB`KEcl_U*^_iFPY=zq`mtA)|WiKP01t69I9<$o=w z)VQvfv(>Gcppbu-0OVa<2B4@-0L!vI)(2b&?Pf(%O@91(Kya918X!uXmyOLV4^+zm zKhvzyzq&Q^5=uKc>0Ru+Y*S2mB!u_)@lM}m*nsVQAZyOcy^<6HPz6|{4;X_HB|X{} zCB==VCpQuX^j$5(#EvXLN%cmFB}f(d;59at?}6WLOS<77^D_&M-@a$w{bg}64FCWD M07*qoM6N<$g3nP1HUIzs literal 1611 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 diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_10.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_10.png index 1e3890a7bcaa73004aa9f340d1f62736a89900aa..60556a9dd76e09ca304de8e12cec056ecbff22e2 100644 GIT binary patch delta 599 zcmV-d0;v7!4CDlm7=Hl(0002`twPcO00JvXL_t(|oZXVoOH^?b#XtA^UejojMvD{- z2Qp}(Ihz(KE{XX5Kq3MxBBB3p&g5J@?*o?)SpqNCBCD@c#iMNvZ-AV}F1E00($U1IS5|%0SDf zxKw-E!sW%GR&aSUGfRR^ek@!G8+)9M&*aj$x5M4D!`-vMISZL<=wb7zfSyJo`*55@ ziigKCY35?5KdP`E`(CPA3zHw&faRlpROnnjOh2q{04a0c z;F6>efKU>^0-ZoV^eJxDs>mt2u{8D!_QiDRdwoGfjub#n)mn+gNJaVJ)tt)rz{juO lT#Ett`Jvj4B}?N5jz7vb=kqtOhZz6>002ovPDHLkV1oG~Bennl literal 1642 zcmaJ>c~BE)6yGFrNXjutJ*emsY>Sp8yV)F@NGu@w3G8ZcAC+yxx2zylRsd*m-^Lw@&Y<#b~VGIZ(2uy$wT?mOeUgmhx8N{gpA5 zmoGf~_sP^zYm_xlSDc^jp5NR6>%*Bv5%DLg_gK=ynZK&12}ie$^9lX$`eWPXpyI+Y zAaLWubTN=(zP&dBs9ltkaddO{v6y+eJIrg(G?W&hvi3>9(RkOTI5psJe4ZMOW=xHf zR-6|0=QPTC#Cfs)Tg%sXof>#Pw&Jp2WzFeYQP&JE0RP%3=(zi_uw%D%e8wR8_vSBd z)Fd?=LCn7ie(xfnz8vLsk%%eEOlm0Ky`hoy-yYBtO^QxItuX-*AM6oquWJTc!qz_Y zZxh)P4+-Xq`+>{TI+h<5Grdi_QtM+j29Ak4WMMLYq9AqqEhH&25iU1w>C0L@hZ62P z?&zEyU=A0FTiWU}K1mzDXxX_dnVPEwPvfiV3N{{i!W^EvF_7Hlxzzhd(|zh-cw76N z&g50~f5rp?mD49Ixu>+J4dl=Jb%3&4DktB76*KI5W{keXrKXW^l#;fCQ)!NJ~_v>0hC;;bW?NRe^(4V^(Q-Pd|W&oIG z9=>B~p7gW=`$A5vXi}^4qi5}cN`fJx0_E6w>B!7-KApj+SDO!OZ=vKT{3nH)R;_UEaXo_jq(#C>_ z9BF{Os%sRBkyhk`x29CS2Y&5a(g^=NKO^Ay4L5Z2fP9l+p#T5?07*qoM6N<$f|F|} AqW}N^ literal 1660 zcmaJ?Yfuwc6uwD_I3QKPCu-TQpisKm-E7`9Vn{-bV=w|@97bi6Y#>6iG1(ZPP=nPG zY7wk;v=(v7SO=A&)wbH!VtgUBv_7bcS_j8bYq7qt;{&Ma28i{CkkumD$D9p57Kn8UL#dar)24H$>v6D0xQVe9G@@)z5G|Me;>I`Ulv4S;Vrx+3{wih|viee=^U{}HJgJKkh z22_|rB|J#Vs5d}r+C@Q90gjk441=U{feEw9Oq3jZ2NGgJ9L0qwE=Gj7LMT??Vrb}r zS${5zRgtMlAM(bYlyCvVI29=B^?C(fLO{FnQCu#UqnHpC3K3QVahEt4vKVo=r-UqM zD7V>Vb22vC0R=6RCfdU&VV3J)5O$|t|H81tJ(MaoX=pL&L~#Lz+U>!}2DIHwCiOp! zS8BVnOPmy%Nx5l{%gk29Iwb^Vv-f&OK}D90Vy?@^mW3?R&}NUFaxglL5@v4%7Mn#O zm55}7SgIx@G8K+%)ha?J(WvC&G_hKw)=DKI8?VBORFqE=Ytp+rpo=b$INh zl`+q1&j~t91t)7_m>p(t(aYUbR^`rI$NA=I%+!kTy}UZGm+$Aa4?oSl!A$~8<$mx< zQ`@0;LGATi?r{fvy3g;Co)uL`^)8=UlZ*34c^ZYZIJ^`pMxT)bQ+yyDCGFzn3RU#z*c;@<;EZF6HIXz43F)!+UA%u-$Ivevh7 z(!qwM4ZcSw>$u~7ujwTEZs zXTWpwE3lE8#EMl27+Y3;i^n9lCIFWdUi>W4_xW1#4`|q;`m4A3BHnC6QTf^v*Q*@` z^ZTatEXHk*ZZ7qhy@F=t?o>1?cTdg}&~&M{r1Grt&uVw`K3()KUGMq3rv4Fmy|Hzk z%^kzCI-tVK^U7*RVmWyc;CO6!@)OY5k0*nLdew9Nm~C6tUn;NMJ2Ga;`WP@Ht}bym zccNAn))sk;)PB0(pD@`<901sb=(cZXj_KqZ+sWSoljE=THQZdZu`BWYc;miSJ!t2= zY4FAFEq~aVaP^t$VMFKSD>~_x3o^d18+-hQzk2k+f@2dZ+ h2=EDM_nzlr%*y{$J1 z?+V3psU$pXd>U5j7HpM*vUIfQRy^<8k^+=M2!hc&f9fEeQU(ILk#?nlE#%rqTS+4*YdC4xoRu@|- z6bdZAeAyXcJ_LooFEXWascjL>NiG!|)KU3e9)O0R`B{Ds%T)<7Y!@m;w*eXM`T>DO z-hh;7Y?#es5}aaQomVKT%V)T{Do)QMS()&BKMf4H1et~Xu4=cB_8X8fyENDb#V7)g zsmN6ZWSmr~tpGMjUIEsra3zOf7_8H)?3jbH3wmrWOkf0#;slColmt!_8XDKY6AuFX zd3gt2XwIGR22KXVDa#%jMQdwoRkfr_@>Zg_Uavq>rsR0FTB*15Y9))?d6wicN>A_z3Mit%u6e49LL$(b z!R?c&0EZ`YCAh&bdBN1|y3+a)n7F8dMT}*1bQElhdoHbnps=M@vyt&%ySM%N;T|}_ zQu}!Hz|OC7hLW69-?{s+*|4>3Xi0zI@uQyjk+9Sy%LS$yT|KNM*f(=ND6>ze*7 zkEJi+fk6qrQ-5{GNj%_~nHH-KEa{5~Bm`2j+eYRFUJOJ8ny7fFWc|rw;n4Z-UxlyR zM(R^Lcb%GIdn2l5-icfLs4%DmnUmNbmA!X~Gb=tk_R#IMLk32{&nB9Thov?OWKZ(isSL!%5BHPmL&{a^h|F)7Knk*g?-ji zt9Wbfn#r#n3~wiIMh-Mhimf;bF)f2f=uP_^9qW8I(px^!DHzqKH5*d;{YNjv69)zi zr7tJ_c&PJ2;=XsYkki)4E!y4rt?^yHmIvql{-&ck^UHR{X?yGaO}W3^)1A*en`XSa z5k4oEcML1ctB_*)r1-&FG0t&q^NKiCZ|VCP&}PH3>~Eu++cN3MnBwGzH~9y9eCfw3 z%MG3DXJ3Tir5hNlBXUZEC#Em@1Z&<~2JgtXlO<5fVBT%+6{ccx^MGl1bSIrO+<3O@ z_3sv5u4!hbB`cgSj0D1PV+T4T*;=!5Q+=KzeY?D;V}B9!aq6idsJb(|Y`P=jXT?zJ uo4&&K1$Xv9KXp)ljW(2N?(WVEOMo7&ed*U;O-k@L0$DBj=JuS5hW`M3kwzi_ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_13.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_13.png index b5e75921a2adc58f63359a7f8ae900a642554c41..d92aeb984e0d97617e1dd3e26cd68107d36e26a7 100644 GIT binary patch delta 622 zcmV-!0+IcS4f_O;7=Hl(0002`twPcO00KfuL_t(|oaK_=YmIRn$6ufC^Ef-3jk&Th z?ZilHV=ffi#W^b)u$UQIqRk z3U1WQ%#y&0smY@u{sLod@Um|J_iAU`@XoejV7G-_snW1(seq1ZpzqEAiRv!(9pF^~ z-jxJcP{qIlG7G?>E*D_?7j~)3YcQ=wKP`Y?34o1zXqqpvfW;w&_2534nc4FYpm`g+ zT&*N&%^-G>Cx17Et2HyT{xO!n3kr=S$O6!l3p%yr&9Ty)KXdEq)W-1Zg}Io6%HTOW z*nD`_yq^7CIzK&LhPwxxtq$7h->cH=hsD_GM$_q!_h6!5&cZnyBkL}g2H^|X@NvxX zrtVP7TZpb3$r&H+Y+Ba#w4t3v+jTPA6KQ^qZroX^HGi7b-+Oo`$nBU&!UIXtXX;K3 z)fCc2F#^D|U~{jRm&$U@lBCY?k`0BRKi@C(b={67l}@^%tunLBkBbQ*z5Wa#+4@l$T0ywu@sL|Ex^{0eUVPx#07*qo IM6N<$f~hn%qW}N^ literal 1674 zcmaJ?Yfuwc6yAgh3hHz!2=&on8?4H}W*>Pk1PMuaSVAL)7AsXYn+-%rcG)Zts9;1Y z+R=)Sf>J;nb*MVEbZE<{SVd9PX>BdFSha$tPEmZ&+A3BCx)Edj;kYxq_ug~Qcg}ZS zv+GRh$y0)71OostB{fB#!LJ_vO_&(Ke{W3OXyljaoFR)_MBBI$f~5ehm9|h|s)NX- zGAP1YT6l(v1Au^4c5@b&WlY0K+94r)Iuf^o;n4sPH{Z<=WIn}#7An{7)QImLJ}L(7 zR*m>wxe+lkIx5eeQpQq?%F@kbSw5+@is#3Jac-P9;Gj4HbUO;1F5ImVKe3DRd!HB< zgHKere2sXVRF=^M>S&e%l@b&p5d;C1YKaB0sVtNli2*SLLtzwyQ8|R6I3~wYIr#Ju z^ZrQ2*0- zp|;Ch%203y<)VvNlCOv@(hugd_i{%*MV<}*Hf!h0LKNs}vdBR>xm3MI%-=|?b}Oz_ z$W&6fQYTfYv?yxOX{9QKUaOWT%5^fGL8Sfm6gB~d9vDOCt0qvRMwC{O~D+Yl*#P^c-2 z4}TnQeJ*w5P0CC7Fc?1@TqaWyl#M_jL?uNa(khcdYKv6{5vavVNUexUjakJoPZ9QY z&2wGk7xAs>+di8L{_t$BC?`KmEI%~{W-iT7T%akWlttlhXByXGW{8CCj*Lxk3_G_pBgIIF=67jex_!jtVYqWRc*#yBiQ_r_mX9A7-YozIq zQ|ZD5)5`2E!*_0uTm%%87FGt>gHP3OIlUej=)EFbyX$+Ar@ZIE98P*3s9(7#FzE5j zneg4!?`S*Cx?4y74QkG;+#lWAH(e&%U^2JWP8JT|q@(UP?gX3>doixO;*CsN@=MW-Ov9`ecR@>IaCaOVrc}?xd z8IKa`zZ19be_-4E@~r6A zqfqkuy*F5{wjem>J#T2jk-T44pO}$S+7hw64(P=<9}FA#sVpQ1tyYhftZ0r8hj#26 ziTbto*l*$vVgIatfoOTr{$fH4*(HdZ7t|!|ALzaq3n(*c+Cg39wty86 u$*<)%Dl+4PTQ7zsk1j)8yGCy%dj!BxNXV-0K%n0DcStp)>klO6RQ?BP`e-fy diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_2.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_2.png index 6a239a1b69fc34ee2487214ce05396be87d8a1a9..a4da82eaba21adc303c524932ffa2638a9d98cbd 100644 GIT binary patch delta 581 zcmV-L0=oUr4AKOU7=Hl(0002`twPcO00J3FL_t(|oaK_gYg2I)#XtA^o@x36TPJO4 zNx%vYE$!l93nm32RvZcrZrZ`oLLEehLZ5?+Ae7+HMHE4C5Cn(P*dZ?zT%`UQq|l+& z4uT*S{E;-xd&ePZ6aNP9c)sV}d(Qb@_^(Qmq#8gu1_%IffPa@XfTAR+3UqD9mHJbo z+6oih;7Vp@mIV5~Y+VoWn~W2|hukdgN)HK^0T?d?!#ceAr&jfM0Qi2-#asovMjqaH zYDIUqiTuV|&A-F|Y+rif)07-k58Uou16wFJ8M^t%NbdN}Jo>5x6PKZ(V+?mkN|k@= zfYJGY!nyS%ypSY)qvQ5mTP3qAo&xYDI5puFrAV$mZoAWZOl0pC~0L%0P zV=$t)TRxkjsHi^lNK8sUngJ0x(f~!(>Ma%{mF0t1S1R8Fzx6EXf`5*mS#bOX2+H5R Tgx7(*00000NkvXXu0mjfJNXA3 literal 1615 zcmaJ>c~BEq7=I9M>R`cXr82k#q+ZGHW^-;6CFIbcfiy+@lBZDf! zVx4%1RI$~D7&x9qR8m|*V;F|0G*Ty4s&=v(Y$77VWH^e;P+TFA;iODK;tJ%+BZmHX zrj)cB%}>0+lTPdw1V4$QRaI5eDniQfE)>^jG$3t>d`Q?L<>V>^ofvW*3c~BRTAv#B1)ih|CJhZzeiWBtsMi~gY*0HO*xCPSJXbs5 zsP?m{oegjmJPj*SnjHbd?7i4gSP`-zi+B$#3sq+1=n60E6D&rZ7~V)34@0Vyay6k) z83?6XkK-nTo=_`|dW|AqVUQb4DrLmR^RPHBlPffGEFae^!&tSEkQq!kh7)EPZd9ux zSc@+pP(GTC`1L@)Ls-K6LM&5ms-y2q!MiHr-(w7#M)tnV+3s20*mkV$?f=J-@F%)9^X+ zlJV%kz>Xc`)AQU>wIA{2jWOmym4#O-Agx9iMKn&mM{E{dd&m*wIIF%ZD{zt{-2QndkG1@^V8dNToWtBn<)Xxz}Pt9@EXMv4CEf zYTK3g&EK{6zyEdnxSkT!rM~{I4s;Z5oo~>BUhVCkHQ(k%PmFCbr{vZ}g&g9F^tDI! zr-lyW=XMR>*l&2WbJ3WBgjp$XT0N_h?lz_Ax5wqpKN#D*Z8s6>`$`&rd5rmkd#6&{ zHKCqS1xc;via#qYL{w zkoNa{ale^oEX-0}u+{vrIpM+9x)op7@3^r1PR2%UXMaVCNH{D&7?n`R$6sQq*^c>nPVQDe%4C0(tV$bqbV$LAdArm}m; zb#&I=D~EpirFMBvM)dFnMAE&ti1;r6J*7eUYJ0pAG~gY7{%}XsKX2`(w&oN|#>)Ly zuK4$@4unLRy@|)VM&7y~T{b3u1KH?mxrJoJlsv>L<4dw*`VvxS#@q(onX@`u=5?Rl n0?r)x_`yKk997%q{+N+qtUT?VEs4uUhJW!EQ=xHBeo5VbJq$&j diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_3.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_3.png index 8cec74395ec549931d1436a739d5ed4f7aaebe3f..c5ba8af0ef2ffad0cf4195c8f782afbc8799704d 100644 GIT binary patch delta 578 zcmV-I0=@m#49^6R7=Hl(0002`twPcO00I_CL_t(|oaK_eYf}Lf#ees`XPSQ5I@L;R z16FWoX%|7;At?xH#i8KfXorp#;#7x<&s7jg5$qu7q9_P%CD9=-2<;&CYYKE|tb-zm zg(^+cymuUu^5Wm%9nU@YHzx@fDeEJxJd&jN`I1SK-br(+DJ8{tuWOC zPRY#7lEA5*%FO^TW}NjuWpg;6XNFg1hF5^A7O>jV!yc!6Mp}XF^BjrRDP1GrwgB#G z0?cn=-~yQ#I5zJ1*j%ioqo`YH^?GRm93}w9u5q$iVykopRL_C)&CJX;UjX!9;)>HQ zNjkHLEtB67PJg?Zna#dW^?mX8awNzDFj??Nb$nyJUh{SV_<6q;F`w+iZBB6~=f`yq z!lMJ};e}2Eu%p$#muKZvE45hd4X{TWF@wb?M)$H8Gio*b>C@o#0?N}-&7Nz!QWz<-tk(9!p++3}~5r1~A_zy{4M z^Jh7s#&zAat!*v%+04rbAmfB301A`=EXA9N0pMc5^?gYP^1}5Y!C`_qfLi3ZsnEA)f*)iA??cpx3Q@_7ra(m(gpvRpBy;+1(gll)XwvM Q)Bpeg07*qoM6N<$g8SAOumAu6 literal 1622 zcmaJ>c}x^n7=N%(EtaD-Eoj6{M@vARopaB+bzyfAD67kI6wfldGr$&hXPF(!f{H6% zsHsP58m}4}D^+U$IMX6Ganv@u&VoBFFrY-Ttm<0Zt#mpEKH)Zf;QA`VW6 zexxuHX19Sab!60td~VH>JbO)EO&XdUL87aR}1$+F^(eR zDpHvaogh_cwjc&UL0(Uxtk&SD6BrE?vjhAYB z@~YiDZsk2frD%s0DV`Go!|c7W3&N(=(O3A2c zg~~uH)u|+DGNjUKr7=~bNK+UXgGr?f*?1Y2Bq>IrVVE>BRT;#pjWlI2kpxMnQ>0O? z3Sl!{9*K3?`H)`+^gD^AUy0QkM4pudF;5W6Lp@+A6(qq^D!37fmJ>*_nYBAyK}kxm zLK6WSdC~DH&!vlk6B$pj*6|VwHk!55c9O<;m72g9UO{23l4LPOF+szFQp58w{0Thw zLh2@(6iQ$i?hqR-!>C!lm?bbmO%s@%V;D?h;~0!3Z5&H;gjz#!C=My&!LE6si$WsU zn!)Y!sep&)bH%&hFo|$#&h{kif)n?eB|Fa)2n66Zzw>G>0O89rjj4Iwo1^=0iCsvX z;b$f`&wSrb_tG{_) ztDfzT2VEoWRajHT1GlUpJ8&@P5mMB8C4B84Sr>0*#btYE59J zWuWn3FM6giE!MKPImYtcmOJ(qKs`0nFmUUO6IfaA|1^S)*9y}lJ#TK+4FAg*6qIyU(W3sZW~m9J&TJIMYVqMCRu*p z;h#rcCH}s!`n4xg4z%AJ*^!eVuI%hc&K`;d8IQZe4hi!sS6+*XJB>YDf0|j;mVV|3 ztf#K&_=0o!MX8%s0hBs&_nAs@Wy<~d&mS#+`1TF3Z}e+_U}vmv)teX3H@6;nlJNc- z<><;DvSUM3cf`QCgr}Fo%S|#Y@iskBJ3S_xSd-8uYaR%1kL)do=mD2!7wnMzern#X n@ND^x`2jrPT+Y*xrM@tbv~K!w`oXN+;GaIzw8YqyR#f*NKJQSk diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_4.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_4.png index d034b0a533f7961426d579bb00213ed0803e56a3..23166c1a6505b42fc85634ad8ab5b879c2a16526 100644 GIT binary patch delta 612 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 diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_6.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_6.png index db53a0bb41fea9c0862ba15807136063f3844e20..fe9a996a17a5318c09cb48ee4acd4b14a405c2bc 100644 GIT binary patch delta 576 zcmV-G0>Ayq49x_P7=Hl(0002`twPcO00IXlWNgEs_+3SaB#gxM>I1Lfkr3`WzL6QXIM|g5n_PR2qxqWfP=YodO+hm)K*h>M7U!}kO#X=57)J}o>YG!5|5x~F&F1v0? z(usL&iQ*&Sx_`~gZ00S;K84$PQmg?mSqR5;Xlu1m_jdr;zE^K@qY>b>{qQD-*L8P` z*l)Mh;tLGG{*GRrk@G9{#KIq7cfOrZ7}bZy(Ir3eqh2SRx(0q90DZ(+!l2wp7~U-k z7t3jQE=l@M&+Ub-T4q-~0pLw|dde$GvD|S@Dgmm#~mOr-^*0Af7@CbTwIDYfuwc6y5;gA)w_^5p|q3T8oa!zVg^)2oSQN#1b1ZC}In4vKxpYyK%FafZ7IH ztBh@ZRIP1guv+m^>BEXfZGE;QGPI?F*1^$XsQhrs)OJd1%UIJJFxDTAJF|Q5J@jxQ@d7ji<>m*xw8PDcu$`@TaeCR^(`RL{ zi_y!Lsw}9*Yh-I&#SH?xxM88q(cpGy8CiZFoEy*q10GhS;ee->^XUS5*_d4&*hj>O z3?5Sv-Fn$Lsd9@IHu3@sYZRE=fubm^(JJhyleDv1bUuuuIEG+2f~n*7C~_Y$K^mn?yKiSIw0qKv!WI# z*5?phUeU#KaKs{Q=j%kh3~(I}!sE4A9vS9*4^st_h6HFYf+*MPL2dId1Rul}f_jE@QMZiY)lHdYmp=&ALQRiVf(M;)O;6}l?7@bC~ zBng$qNT^8zhM9~8f>cumt*TIER2oehb=1a_u!I3EEFuc=Ld>9!U`dL=jV27mh$0-L zNKF)L=6oW}IoPOQ7x0Ut6scBeOi#t?i~>uGykO(`+Gr10Yj~0O)$m>zCln~0W1$@` zE+Uy5snB@96f3w^vrLh|d*HDY>s(KuU?*q?;lKzvt07Ujl2zeyT8+_il@levL9Jz3 z5dJuxc`S9~O$sC+3~!W;PN^hm)=8sslq68OgHbBwT05hZ)0my12?iy#I3q&FXJe0iEyNP5Bwi}y zE}yNi?y8rdDX-n^2<_c>F)5h-AZyWWcm=s7X6@Yt-+0pFB==(14jno*S>Ll!EZ&~n zcI(dHOPadGl!4Jy+vN={?~?J>!HXp^sc-@*fs^6*XJ!pcf0On|YK*(3LAPn}h6Kv0 zO7A(9^w+({U%1-dOpoMg?LNbDUm1RI?R(GlWzte^cXk{-vK}oc86c;r`XCYG3QnCBXMPyNweQLUS(|%DQ%6 zIl_JEAA*jxH=oHqGxY1Gt=YnSx+jN}7W6+qaYbHx-|Dm+bU|Z&^}IZO+K*R`PS2>b zT;29z%;jrj9K6@rcQX9#)KEewYuiXi!H#RDATx2@gQcSdUm*+b9v)FF`{~@uv|AEy z%IAj0U2uQa&ks&lzS!p8bMo~ya~fLTcpDnlzx9fwytuKdX~Y?K3Ho8ik`rca)sE$o lZM}n?Vd*~3mcK4;3Y0#WaUi*Sv^(;1H=7nxpBAoY`VZU3L#_Y- diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_7.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_7.png index f2015a77d1776b3a6bf21928ba8b0df916b7b0dd..06e38fddc650f3753669ac2c669923d4c91b23a7 100644 GIT binary patch delta 695 zcmV;o0!aPa4Z{VH7=Hl(0002`twPcO00N3hL_t(|oMnlnAc`5kxVxk`kS4 zQA9t6){Nuads?WIPG|Q$yyy3O;r|F10vqD1Kq;jDy$qBWf`2*0D^#qm;b6sADL|b9 zurd~FBvyeRgI2;v^zGa0m$X&-}XFg>%E^UJyg!160OX*Iq z@}M89F9hN)1AiB=fcO&dVNKMyNaEivC8OFI({eke01F|2rejntrHIQ~k4yuY&mto7 z#sjEo<*+GMRn;w>NDt39E2daPM2@^=<45;+u_ z+827TjI>vsnH8%g5!Gwq86U&(q4Sexwd)B&rW|3=RDXAex9_0gK@cP>W&^{()?2ww zyl)`A7ZAfl$?3=>PP$*%khHORlzKnZT0=IAd!QSZ=4jq#uBg_gXLb2N>#a+S92^hB zV^vlCO3CGmMVZ*VG62A9ch^2^RMl5grK+lp-c7mafiC}krY(9uP}N+QnU@+7iT~~i z>Ed;*n14L2Jmt2<9|iz%fJ#ofFbJt)`apyruTz8=OV2=YW0@*`N%wYfk002ovPDHLkV1k19J~sdW literal 1755 zcmaJ?c~BEq7=Iz+5kM&(94anR@l3LtJCOh(2Sy2`973@wo9qG+k`2ky1PUeMID^{a zMXU9uI98puibvI2QH!lmsMdN>)HEPe3tDSO5Gys^2w4Ac+?n0?-uJ%W_x-+WcC{`s zK7bL%000DN<|~t_)k(dvBk9z)bL2WLwS$P8_Q)IgZns8@&WFj*)x08udx3u?&2Nl1_97|k-~!&7INkP(wH(*;^s zYf<32#`(ooJf%1>)li&gkYLQ1Xei1dr3{#G5``S5e6vmJkTGA_l~Q}Jn8So#sE~Ow z<^ZV-tqxKURvZ$s5tadlVMrul>)~v%9+$v#Auh~CI0%=62v}T1$`wcv0W|n9DSuWh zTbis?4|=0cGG;DGTBIC~-EL>wd2GU(!$Bkx2?yqKxLg*c!Lk*ZNz}nI+old#P~tX& z)o3A&gcz8`%qO8<~v%Pvf=P zw$vgE&Pm2?M4{C{RU~`r5SYr|n;m%-DK^q1tC1=Tny(}bg(logYLqf2b;HJtm{cU> zi+KW(f+rNq5k#es^Ta}>Tq1}QDEJDMNH}EUby%Jpj#KmEgmH*m=*5baJg!28zz9#x zMU-OE5LRQhk*L{#5BW7xeh0CFH)5p6i;oMqEL4b~EI~HRqYgp| zj#J?e;IUUyH_)V%gbKql#74^Ji%~oqg;}te2eS+qpU;x$F+K}L^cc#+V6lXYF*y`P zj<;)G>7pSK)tcVz%c-CaFXsw3Q^RDXriPPtY$Y{u!*vO%Dv!rQZPUKH@&N!oE{#&2 z>S%4wSZk(7_#g3jJ{K8fmhf12YxeI8i($*{A4+6tW@1=x^pIx1h-L|T}6b*Hi z`fVb120HP+GfSE#(!*V}vz(GuWvZ%4d;YH5;e*NOLB~_pSIc~V7LDy4^L5{ezSww7 z(O!&p$6w!d;mJ6Df}I8}doX_2ZcTKFwp|PKjDvj^RTgb#`8;4XWzagnuyYc?zO#5( zv)|JYFb4!?Zs@lkWGsI)o_2bh``@MDOWjA?`dr5v7N3UbPS@%v!TA8N@+9krDUGqT z{OOz#!J`?nhn89TKA6M`R(R>-Nd}om6f2tBaF~g z2GX`jl8yHy{GYCb?H&Op$N13q#(eYr!6gw1$G6UfYO~bCtpP39vnIejtbm&f&ixwE zx~1yz_AeME)xG?+&6DOt`-aQg6?dWox4&~wxICw+x+gQxn5!_if+YTyb+y!g!g6_&($Fd80Uf)|; ZpmuW5!+&}%Zub6eG^#}9S8-Y8{{f+jhG_r* diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_8.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_8.png index 39b8d5f8f57d1bdc48e5c4a35ccd6ff8c51e67a2..7240e048b50a03b7d358588351f46acc4d5542d2 100644 GIT binary patch delta 707 zcmV;!0zCcN4bKIT7=Hl(0002`twPcO00NdtL_t(|oQ;!DXk1ko#ed&@*O!S+b*Nxc zjm)4GiY7XOf~Lq!L>vn)1_Z@b4G6A;xXYrn4+=#pN+<=ps|ZSqUAPf4)-o^XLXg(+ z4;WnN*j6kGWkQn9WHNJ)3)7iQ-S{ofJ?HS9d(Q+gPU6KwnJgE(x`&-KYIg%uG0a^hd>3c^R1E@)oI>6Y~&>q;2aCoFT zdpEdcGc(IfTs?l@mB!mCew)#`Cp?^dU!KSPaB$zrgZoa7zr)Lxa=PzPf8WmJ6Q%|` zuUq--Jn_yDV}DZ+?Es?FF<7!QW(1V_K;e#pOR(1mS?;W9p{T4c3ScV}fX82DVq0QI z*p<@W5AIJhGrN=m?0ue>+^8h!p#^M_i&umjH8ZoyWyXI`HnPMl0dSz2OzW<%U+H#y z^SPUIn_vF&UMKK|Dny<%e3NZHdLVZ}Cw~61=RIMuet+$fj#hRV?Iy;#iq9C2u>aE# zetKaoIKE<`{u*{3?9`i>)9%TSo;*uD{-H7YnaA0+sW|rpojrR<%D=+)9y1*IT*|f9 z)W44prm4QTlEJqG@b|qNXSUv5Eq?)@0Pt<{)NE9fdUAUuNz>^mJDh@Uy?(n~_&7-F z9(9}cfPa~lHWp(cz(slDmARx`Iv)^}T(1E@l@+*&<++fb1fEGb)Y5m_6iehJbv(6J zC~B?cqT)p}D|MlLEM-08ddsuN?|&;HVKu<@;G?Ji03fB(g!*GFF$v7TAxWwQ9~B#d ztr(!40oPmZnOVuGqY3inM--~N&t2ARMJ`8nP&}yzpLPF!y_&kf48^&C)RKotuoeHd p>Lc*|YIEZ+#$Zr>*1ODu;~yhD3(8m!>Zh+Bzs|aj+v$?SNusDubw?SP`{QrCO_imTm;BKOA>v_uhN%`Of*yYqnII zu+ZBp$O{1At&UUa*tLLtqdZ;N?>)~g8g>a}Vp5rf zsz!1?0Ir2pQYw?GiN_7JiBC9n_zshWMFTKD(qSPC*(3w$$qdRI!FybDjt5c32wsX< zgJ>*DGLwqSvyw~m5|Rvg*#^0h7r6kM@4#6DCXyi_hiRqRhC3p7ukGUO-YFLFpw}u) zb_8#jRH{Y`DQPPSN%<&jKoA6y%K3UEU8X1H$UI1h2vGql6rf^Qh~h#qj*6j?hsXM} z8q;x|Dt5#hdy3#?GK>Wm2<&z{-;VKVYlZ-o%jE(@C=d!^Rs*)>ni;|Yn{CraEvQJF z!Ae;eiZ(+|i-exeVIp`e*Wn;c7LDeOVY6){Rcz7(4#FZp`G~+|az^%A+s5d~|7pBa z+m@7TAq6_pM(0=!Y(>(ikAm6kz2A{jk!6D?S}C?H#7Y%y$T5*-My-nAu{V4pWyGZt zkqi?{m6$}PK+zbb0+UHp3b{C1tQ09@q>@n^@4{jVBsvz0Rz#x;i4!YRVM1jLilA7m z5LL;fqgb`s#t>!$IqH{U{f=Pe@5SOuD@ic4HHoHIj`n~ylV)gJCT)R)7$1RVYX}2n zc1q?rD>NLiinLOzNn@;)HbJjbj8pHRpvMRUWD<1V3ij}3u1GUGOjdSkJh&wt?8Lci*9v^w9vv+Lz*@b40kAK1A+ccb9uG_dci?=%m`qAiIPFV?$R{wxnJ_mh4!QF^d@ zTzX6K+=Kwif8ndLaIeUA*JiZllb>G>)|`ikYCo6K$7s{z`ziN&SJ#Z4Q1l!ObPo8n z_1^9Cz_*D@@0L{f7k33GiA!@IgUHRBYQ= zU#=GX9lDnr6&Lfw6b!UCQd|bIHoQ93`AoEcs&7iUoEDtLDFF|5HPn<;bG9Cvh7Il* zH*v)rUpTLv+q|eNp=h}@*=1`UC;q@IiQB>`ZtBDX0Ul@9IxZi-dB`Iw+&-pur^EnW zT}-Q>vh*HX%Mavu%P#&f6BM-cXsD{Xu250KAGcgH3w}-RE^S@T>*?5*Q;;;&8miu; z1tC|0c8BzLJ&GEf)E^SI3_~MNy9G@t)Nd)iVQypKeG|OCuT1o{ zZ4QPmmHPS&+Eb-#KmdFwFy^b9H8vFpCfhm}`CNQZDDl)**JeZ~bUj-#weR!ro11Em z`WM%I4I(&O)3~Q|Gp_Ib_%K&JDeKGQk=s7p-971vUVJiJ=sv@s?Y?BrA#%nq-MePp z-k{TulCObpr=H1exC3VKLJsQ;i>`H){UZmJr1x(3HHx0=d(??F`bgP#Pin`2hxU-# zf!wPvWp@g3x4(A(wjlRtUAt>lc-WD(KgyR~;ov^;2Y<=m;@Q8hIdgnjkmssvDXq#g ztNYGxF}Ap9Qg?#wnN9ci9X)q$!iI<2C!{ncyDsMKaqA4|JmG;r4Xqc7!e*?PIkxWE zi^=;>EpEKkHyggqEok93^?sVjnYXdI_e?S8AmgxA;n#~V^cQ!ffvSxs>dRf)UaT)n f*xYFBn_dfC1Nuh{S(fwqjR diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_9.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_9.png index 8b5e6f5ee7d9cc21490a0b7f4a481114ffd1a64f..c074f6881856f42612f9fdd06b9895522e7af5f3 100644 GIT binary patch delta 645 zcmV;00($+b4Uz?r7=Hl(0002`twPcO00LP_L_t(|oW+t)Y)oMk#eesE&-As1j+F{x zf`x_3ED)_!Uq#YLL?)52WWkQ4b`}j!Y(zq&5wTW7L5h9Ha^e^u3~0p0d&56J9WH_zwn^@$n9r?L%8R=*N^O8KSFl% zJ}YyjsZl$9H6O9DNhC9aw}!~H5c%vz@LIn0u4KTX)+KvD*d!JeT!bBJdO26piGJmp zUOGy;IiU@|T7N8Jahd7{a39Rf>~R@j#V+=^c1hB@6WB!_tQD@^%*={USpFuOE0SRh zfbHXFyS4Pi{(8+#zu((4d*RFZv6RDc5zkq{%PxE9Z9i1dx$0DcV_J1eIyH(B(4eHT81T|R(0!+bvn@in7k)W>O}?|<9ZKIo_s?Ro{j=ICX|d1*~N ztA%~MKF;_+R{(b;NuTJL8E#WNFKz(vDB3dMm83*&g(RuFe94B(px@W84i>JblIo}2 zysb8~@cYG#5a7K2N;G+t!SHs9AaqG31Q=%$=CC~Xx2*zt${dU}p?NXJn#LJQaoVrh z*m?blnSO;p^-P&>flDfEU3nB>CWViw@AbZIn5h(};pryESOxULK}jm5zL%HaMkG literal 1706 zcmaJ?c~BE)6yFd)4kJ?z5wvAls^Hipd*m(=LJ}2fAOk_8RhrFa0|Ana$pV1_2HF7` zoffUOo*iU77(3Wj#nPc_O07qsD&kbdqqX&_Rnbxvsx;jIvHinwcXq$;d;5Ox{oXa( zq|Khs35yQ{0DzOZK$Xj^Zsti3VKeU=As=d(C5~3>={(9zSKtm3P?#tq31(XHLNb@c zO_eK7lBoc|uCwU$v|h7NMo?BB?$hD9tab(s0I6v%J5H34G-xCXEjBqc*mVQ~Ehag% zSg3(Db|qP4Sy1I5^Qy9SL{$kPH9=`}!Bm%wF<>QW9CTSrZBCg>4vpEBF?*kw4}oJU zbcq}qC#BbDK_%rNK`{^E5-<#dVkyrEnY1~GTe!mvR?*vxxQmjnrAaR;<=qRex-vinril&@JlpRDd9t@^vaKd8q zNoM;hG#;>ubXdws(>w=d1;v%G+U5yJ_LKrk*TmcU#ADMY!r2*J5RGmJ3@k(4Bv z@W=6{|D|rcNf`+fhTYFbCJ;z)(u~7gSc1V^!XyxIrACv0iz7x8j+tPI6g5G7h9ckB zHUH}(zldo~-}d=bFo)-JMcSBQaxhb~wJ)-QnYdu>LY>;{^)lQ1?*3W;2x!k#DRi!Z zyZY6(-{8qfUhnRR3&t%~!%HSjo5E=@T9>Zgm6A2(Ht&mfar@wKch!1vcj0HPLpQe# zPw%N^JqZ8BcSiu8l_xzHI}XCJwe|}}gmYxzhsnKV0WingRWhP(Y!n0QALOV`D(bHl zhYi?5n=Yj+2q*~DLeF6Bx2e@FiS^SfKTRkdCA(5C2_MRXV)~Z@(G5*mS~c*_N1dFO z;%|;N&It%lkL?Uh{{#y-!8#FE!BVkk;K0nQL2iTk&-+0@;$f&|a8~CZ?6$6lyJm}u zF2(JAdqpttV^gZ|=p+EWd3IPHm*Q?$ox6+2xXYm@NLvk&%$gmZKaf~kmK~J1@p<_&Dbl zeDCX#p|kr&EoBkz&F$^V?AU3m?5$b%zM}iB;H9`Q^I7B2R(fA%J6mVds6mOLh4w)yQfdTuiq2TRswg_`{QTi*YzCk^Gx$> zoR1dQp~(qseJ|eYZHl;ltMx|S2Kmgz!5^qsg#xEo%M9TB=54E!XU+7qy}EpEZ=Rvp zru(UylRk*w4RzNfJV-j8uHDMk$0S}pGsU^+_dA=;1Fq@7U!4c_QxoJ#8UGxO#Ke2N bqfrLn%e<(hX6udDe1DHjb+&46hN1pnA>wj5 diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_0.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_0.png old mode 100755 new mode 100644 index b937cc086069ecb5f7f451e4ae7af655d78cc8af..3b179a0d46e725e31200b948cba25a729c72f689 GIT binary patch delta 862 zcmV-k1EKu<4e17u7=Hl(0002`twPcO00S^dL_t(|oHdhAXk1kk#((#|H+hdVW}cEt z&>zTiE>g+DjiMyFiC8FBL5l=(LmE>R z{~(DPOvy_MWk^EurY7-aGV_j$=X}fWd>qd2a1KB{%{U<$fPZ#Ps%l4SP&2Zl?5`y{ zp_%r>_JdmDGXvbUXS^GrOQVMGqn&b54FL*pc!(}$)B=EGK=XpJ%n$;2Xk08P%TUdz zBT!ae<}yGdng&8K1M6G^I03YS5?PNt14Lj#vLaGMMc`SqjCc_&wyw+jaBl&?6EUsH z$v7(#r*Kszp?@6l7V}&N7q&e~fhSZ7m#qM55?T#_=@bzWSr-xczom#sMTv+cz&isX zB9TrjF=WO?#HcS6SrL)QwPi%32p0`2eRM1QG?P5hB3IM@_tOjZ)mvGso| zQ&$&NU*AB3?&0%d6RS~xcX|Q>ZFgT<+m|eX3VKGs*HIij`mST@NlJrXf{Xh3;YOFj z!B~;?A*W&Q)|EV0Q8S-XyT!K8`1(Ssb5=gsV~2p z;D=T0bGMzmX#+KN?6}*0yr{HMgY1acHQjRBArE@#U=>i16_s*d+f7R<~GSzyU-UWRNnh0=!qhskeEiRNqM3NO* oma8K38miP(26Ud1sTqsFe{d>&A1e+vk^lez07*qoM6N<$f*9VL_5c6? delta 1784 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 delta 1677 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 diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_13.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_13.png old mode 100755 new mode 100644 index 9cdea5002fb0862a1786f91e60e3f05517763689..4f4a2623c334fd7cb2f113aadc6a9b5b41127ef2 GIT binary patch delta 842 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 M07*qoM6N<$f+gx@rvLx| delta 1410 zcmV-|1%3MF1&Irg7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000F$NklTO ztM72{wP>IB&$Q=#-_#tbKCcANH@-Xram0K2K%YJ2>!^lj`F~cE07i(nSU1{MYI8U8 zy?_J|Vet|y){V^J&V*aNfG7ZscvKjg^+%%j5O)>>0#*QRAeRY`dq?}dEBO{L@FRd| zcW({evI5HoG`<92vHFa~jw1ig)^EjL%Kzd?u8jbMxrQf5c#im<5zVFY1W(TiQy*KZpS-fQ-V=DDhPL$J%8e z>7behdg{wPMluVu?c@G^a2*Ck!$bT-b_|vZz)F1fnZz9tCV)0I^c>iX5HF4UcnTRI z0vM?vdWfgu6b{HcR{(mPUQyRWJq<*vgVE$8t{x5gEPrA-3nDyS?PJP~ph)8DbL$6R z;etq{h*=MSE>I--qk^&^BCVZ`Oz-9L0MX<}oc$x?_hX(x1ljY1E`)d{pv4H@l+F@+ zX!Ad^2&`-GT}RaeWbF5p)mwu~%Lh|LYo5pBm7>HHy$wrkw?h10fcNl6YbT|3{mr3B zuc6J4>VMZmrX*@hA6mQ6Gn%3ZAd-Ab3?O-l$ZKPn7gnu;(8$lIfWD}Ot`mu>=vm2^ zAc?}WjbsLd7O_cl$Si%o>SQPpXvmE6H4$nTLAbU(>9YbsO`s9vqqUB<&rc9&CCa=(ReV^u@_eB z_Z)s92DMwsr=D}`VvU7_Ba)>-i|&u|O{@S=@~Jk~ zbbk`98eSPItiKdS09wH!iu{p4(qctNvbdvx{k?!vZ1sHVeH5Mw*;#S4t?#E0R56SE z(YBtkjwY&=+udgiSY`QF-0P1bGGu*!Vt|>JkASN?TphCn^!W!OO0l2)&n)@gRS4PG zy$30y!J6fc09T1bY7LKQWPE}^#Pvs!&wrsEv;F^ePxahec);UT$~gI>L65Yh^v{q( zDWu<{gZtiS{QMI!Qsfv_vEwXV>eJ(W&PaTZY#~4wLa4zbQaDQ-(9fm4)g$#^-#sJx zZLohfg4&YWE;3D`tPNPw|~Sw z=$NGlw}LhIIcj;D2WUZg0dMdb5wy-kR_68D0z46aCZquLOr&x1MFrTuljZ?Dc zaReOMb_T4*6?GI&-UmP;Yvf%N-hc*KG;5Y|B+QuOmjJ95GMoI?J84N2pF%A)CZ z_BVWG0hR$r(?Bn{V9~mTMAb27Ab)fF`eXrhAap`)I}bdIUl(HJ^s?VVMu1u|Hzz5( zp~mufXsyj_1^FI~rmB&|OZ`wW3OC*i5ojO}gEXv)rlkerFk7&k=sf*!BIw8QV%s+P z?*(uZn~gpnMiya}r)t4fQu}wbngIpPqe(Max|UQ#1bv$*u)i0e zVO1S~n#XMNBfU*eI&xMpT8(Yn{}h4{WGq1K*CMD@L_t(|oK2G7YaDeH#XsLWv%Ax>n~Z&N z!H}J*C_WifP(jn#T1p-TpM@ZT?;;Y*l6XBH zfg$FSY#(Z#sU+BYxIkm`P+OCuU?uX`8B3Q74m7S}K$MyDGO2@F@ zqw%g^tXA|?l7BR~HKg$lYt2CClB5?BmA5HYYr2#qJ(7%}D-ycn#yL=34Yru0BS}ML z0o80i{G`tEkd`h>2wgURtzJLNzta)J5m4i^q}yb^rLuLJ16_)?#n0w;rQ_!wY}pm5 zf}`^cE>`^;1M=W^bFc53q}_EcON;AmmIhf5$jZQ+6@T*~#0XHQ4wf%Q{0S={PYjlQ zbOTx*K!d~q`4g)y>o2JsONIk@d1ouy_=0dR07xy}0tl@H~o#9=*!VwSf3)=X(Vavop= zSns7Lx_>zum!x1(8+whv1Gqg##y9YTo6 z%ZK0gA=ufxi#y&N6=3@zxM+P18rT`K?Fho#qfiW7+#YTGX9*BhJ_asM62BF({{Bsp zji-_x3{P_~FGzd=8U#N#!6^Os1DBpVHD9BAZ-=y$bS^!U^gotbDxaz{1nmF-002ov JPDHLkV1iwET6h2e delta 1385 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 TI}Q%S00000NkvXXu0mjf&6A1~ delta 1569 zcmV++2HyFg2Br*<7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000HpNkl`CRiTxI|}>1CwVN==L}0~oNoyS3K#=3w9TSGH{{Z=*f8 z`q;MZrO*B|>G=wvbEyKmhFfzKKwGp*;>Whg;5{<0Kz=`#m49H?@$LzcAPGhYv49R5 zA@WM(xAr&Y)k=WkCVgmGJwtxgr1yP){CKzm;b-GmcVr!2JOD#x#@!=ei5$tlk}_P? z3p^=+v{)J9S+~w;u7@j;e+G{Edy4l^fNJt1$Po7Jghz32?OgJsq>cSu)%Ewd;x=%X za_14Va{35K(tkG5_ifUpUQl@DsQ+DX zXRJPhYT|#W0aOQI7d%phv)sHkhM%?j@Zx|}9iXag%l5Cy`6&bsH4SWSzN@udeT8!U z;Nw;u=rJx|s_$#(4TtO>@jRePp!ebd%l$JhpHV#Yq<`@jC)kkI+)M*A!X;>zHW-=X zQLpsgSQtXb_sNhdr~AJDDL{t&8CIV?_LZuHS5SnRF%=s}9nZu%K&DfvqYC1q<=)X- zd_uMmox6mWD`ChUk1irgK6{&};s9y25}a{A!otG?%o<3Be9c{J#SGM=^zB!Af-{fF zJ((c|uz%p4){O&@+FG(bx!zb-D#1#tk5+481z2VEOkXI*aUtjO5%MIDQzc76M!~2p zpo)A%j`dDvK{aca(n@a}ntW}(Y_W}vi86Q!0wW87rg+huUV2uQxl{$0JtB1tbPO}n zNYeu#x_`R`%p#u+^ekA!_byoq{Kntakm8JS z9M)V8Fyu?h=VeIZtzg6rMO}XXJX5=u`nML*Qi56N`?Lbj4Ef$VXfi@|fHR`}qh>vR z=8a1m`x%wMNPm$)QJR~#4T@h4(*{&g)k8duwSPuE#3*;QA~4qP#VjcKUO%mY3Q$Ep z+JBcOFEa5Ft4XiyFDpxGZ{7%M4c}8(ax9CExcDoh!ulDG7`)sFvIJ{ZA1Rt>U}Qxn zepQ8vkk4Y2rEUQz`BekaKAVxFuRwH9X5Y)MkEj4q^3j|XC0|3I<5zi;nP9RWwp|u4 z3gD4%MWHC9x;fJ})Aw1ZCKELR4^Ik!kbj>Ad(NPZXH>*@P=W)FWx9W^%dIwY)3Bv2kH-ly^;@A(O1PAHX;m{|#dF14^ zO3qUjz?NgPU}cP{4tvSu+ac8r;0qx=*i$QuXf`fjGK^304v{PkHHe1-Sk{GfkiC>) zDV22|@d=jCxculd4YzRs(L5i8MSt81i5r_HwYq{$^q2nn1`v6{N3^do?yFQluu}wCG%$_<*#A%9|y1tRCY}GgzPoVXO zR&O6M(dYrR1}G3Yk_EHrAtG}XB5M~Zv(GS0(F3el#A@=-Bt9C?NYA{KPm>o#X%L87 z0x}Uaaz2Cn4DphTF;np7gqF^c_VB-stwzKJN;1wMKjY#xd6E*eh8nF$W)1!U@wz1F TY{P`000000NkvXXu0mjfy&&&X diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_19.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_19.png old mode 100755 new mode 100644 index 213fb76369bc1c7aaa3f47f313df9fd93ab36330..23e10f5536442f3640afe31a20d7caf0eebd9d23 GIT binary patch delta 656 zcmV;B0&o4J3Y-Oy7=Hl(0002`twPcO00Lu4L_t(|oMqELXk=9s2Jqj#^X89`&BQ|3 zA~J(0ENHQfkVQ?NjfJ(Ojw}QlC8dQpFK8tqB33r0Q?yBA%JmTx0v1~AhQNmK7MoN$ zRy#3o=32a&)x-~Oald=+x!*b8Jt|iaqHFj+v3H%Qu7_06Pk$+;5`xMor5S9b2`yDf zm5@?ODa~kQq94;j1X&!<)69|VcW3Dd3d`~6>Z8lCu*k3*a#phpQd2>7+ghB-ry&ZU z7k1(_?bS%lTCTFmsF9EuX^lf1=S}tr_qY&?F?hSrscCOfet7z#bpD@yvp?2IgpcV?C&F8;N^Y>JPqhgF~5fO@_G(Wq7IHhxAq8AzV4DL-QQTi4X z&DHbB5YfC*d$b=+^fJZDje}p$65Z;-MDN`njvv0Ge}7ifN}JPzhnZ@nr+-$-)<|#m z`0|rK-e)NL6wJJ_-D5_)Gi)T?eYskwJFaEHXW#AXpO9%c^u_m=oRc-%RDAGFXTK@# z5;Nt8FYYrSc2fc4_A@yOSq zKYE3q@_$&gVO{>Xv&D2c*YOpzdPp&Dbhxj~vdSYz3^r>z^4smaU%DAv6|dEoh0mus zG9hi&*y*BQT8gXKc-7Z`!7A=n$2H{WpIM5}zQ9IJV{P>}?SCT%XE!^v51Nl?l+tOZ qLuYx$sF}GkbTVNa7DJ{?#Xqvw@wE%AWnTaQ00{s|MNUMnLSTX}<3aoY delta 1308 zcmV+%1>^dh1)~a(7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000ElNklY-5B7k<$ z)(i9M4Q5f-wSx%51kfnIF63JcwhE<`B_x1$_@sd~7_`P4Wco$U`G){n<4fDFBGr>% ztv@{8g^lzY?0W%iTaT7yY2cG~zr{JdT33|uQ(}U^Rl$cfBFHF3Z^O)F2AuIzVhB)$ zkxVuk;d?M%6n~;aXk^AVq5AzH0AylsGT2t*^1Ud1XTfEc4BUL&JU4EH2jEEX4QKog z575%n%-mL+?L&Z;pb=dq2a4br)@!A7yHcN;v2V#v#;!gZT0xLSdkL&{XeHO@d4TBd zoI+3Gt>aBPh6WxtkLU=9h80Hh;sGt^FQxQ@z$nD1yMI{|uV|DBiJ&z?OMfe5m4Lk+ z9L3-e*!WT-jTlo)vf9TB{@e?o8hH}92WWKa_Z1i&zupyvubrTX%RUd#tMKhmv;>;k z1=V+U-UyzcWuxw6;W_7S6n&Bilo6!z%*t%x308ud1M5rtL{N(ar@)>4lAQ^UjEa#R zy2}%2vwsk&T}&PdJq?ZVTZ;6O>a`$UpJa?bX<#H^Mbzt_r^0`S=@P#;GVkXIIB|~}o=wtgs_(1}71RwP z>VIw;*Y*TvGq4Lr@AY+hQM1sj0qiRh@8@B4ARQmTYY+E6pjVTh z8M9a8XhqPYGI%>CQ=)D99|2AlgMWH8dCEgbA&G`Z$KHt*_POD}Jw>$&9<$Iyv)1!? zbkjXp$xIf4Qfe!FMQ*Dd%hF)cj1Qsp3h;hN&iUt?LOtN599}%Y$cCc4wq`9R-w)s= z6&%H^@lUM1<+U|LnEJ0_R9RH249i^?nS2^(3qKMaZ~ec4*8QJ?nN+k#f)#(*NWz}h S_e0nK0000!KmyCB4u7CkQ=4jg4X_E~Cu!MC zq#;4;UhlKb#0djDy7Sy?06iLYyp2{$i)t89fJGNQOslH^mI2MH#$y^Ez(Hft$i_(#k%|%#iGag7 z5s_eH6GGiN5iwSaHgOS=Kzks{@PyAw3W)PVE>Htl%>^JQQr7Bm_s_~;?e*_Ni98IQ zk@B|d07};M6pE<~89bmPR!tV}DoFZ??HZ6Z@tVPK zAl-|Nu75oF>HQD>4LI+rmlHOTRkzK;r=C66v)X84{U<^Kn}p?^TD6QO98Q4=>1mhK zBN|OZX@3B&Wsr``4|tmL(|HJ8V142Bi`Z;EHO5i$K)G$EF{3FT{5tx6=d-}V<Dxhf_PZ;iBfCAF;_Y3n#GrVoW#rII#?HWOtlD!@$A{+f>x+&JM+$fUH-*YZ%^&?c zen+kO#i3{ZI{(gNvkx!C$T}1!qQan(pKngRDIzzHss0ytcb$cm@^8H}S)v8{e;@c& zL|iVFb6<#v9Mg&Nk&jDM`vTe_iZT?g${#<!*ey{MZ_1v@XRURw2XWu``g}gWKcjQk zTH$#bEs74hn|5}OQ;=kLonYn-K#HM8kyYFqm9OEiGXUiIYk&PxI8|6Q+R*WDQ@*yB zHUrQE+eyFTnUU}JI@Y@U`?o3ILfHVcuzBD2D+J;V?Q|UXXv@Gm>yu7ce0^4-2=r_k zjfv*TF7KynYHLf;V1lhr+Jk3!@UFqrL1gYUvU^%9&;^{>bho#8j4;xbMCMGP%FE>~!ZO4ydZ$p`2kH{K zXnWAvjeLI5t9u2-DJ54^Mm9xEpMp-VQ91~cFcG>Z)_+B(ckUd04ibgrz2||r_i1Pev)FdDPW3^6ZqWsegDlKOL6+S1;Vs( zzzFa*Axz-EVDufv0V4o<$>FEqR3H8(lurVA1$;U*R-QZXH+3RUAv3Rc{WRmaPCssa z0$eFnsej$4c&E<@EN~vgHc%3hh0Hqw==81AFj1fHozrQg-Zzk@LFJ*I19W&tG>xEf zPaL(L#FJ5jr@@Qgv>3`R%ITtcs@f%`NeYP8G@hCR8IN?3)`4lcU)(FAKyy*C$6vevJzx7JKO*81z= znvgApYI!}fzO~*H-A#8}w=rP|VFU2CLzGGGDN@y3+0bN|mw*f@bND3{w!G%zDX>Fs z?c0CEn;Ih5BCx3!*1L-h?atc6J$$MmO1RK%5UK;1w_+(|> z0j-;&W2Cuse8dor{*9n&j+Ts$gBP0J6?J#JyWveQmJ@0y{ecLN0@2U>p0*JQQk0R# zP8WU=L=J>J<55cW99XSYFaS%Ko^C)p=&=wDcb&@5L=ev$kK(OPYmf07eb@jz#ea&G z*U|N!mkrO}4Ob#TgttsLV9oQUF;sXp?pU$pf6>t&ddDE!ZC|YX( zRE)wvbA=*+$I{UpBoK=^sklMc8Gj%e5?y+q z?i1x~8q!fD>@Wgu2$i((F9Xo>qhwv28A?kFbCQq|Kd9cI^f(`gAHEN?mISVNzJI9@ z<3D#s0Iw0aQh+2Z3w)E(qTKT(BdF%-i9F9Cr5R+5d`#q1k|T0JkI^7}>7tY1;mDIN zEP9&2wRxWXN@HjQ(xN3w4}XYH?YiRe;Ruk0#26aK$Mf&FkhB6zNJ$2C|{A3(h&(HdZ`EyDg3ynYjaWc&uLkTK!5qx%DomX%c!)y zaGvP*e0+p<*L5ZWl>WZ}$q2Z>_}mka(hP-Eb65o-9~aqYS0v!qTI8kp(j2^&ZM~@S z-t&27j_C0mCan?iB8>)Dyfr5SDc?`Rqo)nC20+!Wgs7E!$9Wl^rom}xbfob6M5MFU z@bVCT7LeT>_j;+5KvQc**64!ADKws+N_SPGPrVP2g-7X9|9lFk*O$i2t*^2lK=n!07*qoM6N<$f;HtgP zi)d0PtexN%Sq1YHYs=ITEo_vO7Ghq+(jr*cno_K`G21No1dDXqY!Fvw-?|_H5uXV1 zV&2TPcr(hzzdZNwpZ`DqxoVFgL|5?t!tvEYeYK^ANlGbI5P#GTQd+=HY8j|Qs)dwN zN@>9$6MdalBFJL1q*)@lJzAuHQCg3uj}Kjsr4_?rDA>p{NWFvl1>13rLzW#KpEaefF}N%9o-qF47cRS~2T;bTVgb`(6S6*g}VE+bqB z*S6V~k7MsU#Oyuw>)iM++eflUdEn zX}6PSBh%buM*O4~HY%rB5N~buxs*#!nTL1i(lc*YO{*gsLVAgYa~Pg=vT&~4H|Y(Y zb>iUXL#@dJ;wY8K)`uZOsm~?JK3z_U+x_XJ{`g)I$B>SG-%A}rncWI!`0@EFypL~- zeyp2M7Jre+gR)-k^q0^2?UqN;CH(nimEob&XtTt{8^sM!$3e|bb$Qd#(rie(9rj0< zRK{@wFMi lxhkw>LK9Y>OqI%i0QC&=tlg&D)Bpeg07*qoLX9X1*i&;7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000EqNklJ!#519&Y(A5Co?W`&i@raOTM)2ETwu9 zyw?wp_rWB+gxwdA+j_K23j?3D`#sL-*=t3SpAzE)&T>Ayae|Ce^frtoGT_KhiBW(m zjO1aX9)1M!PJdB!2#w5`6RO`I1%R5^dl+o1G5JvzeYG4b;(Lw*?wJ>Ega_c1;0|Z} zN(+D;ZR>NrHrrPLT7;fxDmhRJj2evh%GnN7(=zs5%V1UgCM5Iqc(@M7eluuv zA#guT%t#5F^eVR}n*~*7jfMD@guVC;Prs(6h}JQ2gfW666~Ob%m0ovC#);q%YOTPL z3Lt?rqR?D~-4VA{fRx%X_%0cGpL;->pD_CXb$<}}Z#Fb(;gnKWHpy60E5Nmzp@?2r z$-`kFt`Qh14U2$PDdg4GhsxAaGPoQ8(JF>!+z6hg*bprXcxxX(f>|+nebv0z7OqI- z==Ed27eJv7245rW3hwx69Z~QzY$myWwQa8rewDuWgmm2I_X03D2Zw7b{hjtblm(kN zihmI5ed}y&5!54hCr0G>Du7q6S_AD4;mFlu$6RN@D*r_-Xauuvf#kxc*N*BJNm;yP zxu}6!&dAB2c77yMcR&>dP>G+_N->(0;T%29^{H1oD?Fbu6b5P*ZzrJV4nLbk)NJx+ zWLrZPgm?ifC`Ep6K`m8BCt%0|>^?sw$A3UCmm#rYTJn42Spo0=t#tquszeZlD9IoQ zNi|T5SZSy!tvZ?s>$8siUVugMIFk*_s!mt~4{S{Y&4A~%?MWD&&!=|Y8QP7a73y*A z@y`~2hU*hWktBY?MV%p<3G7xDN@2P1uYN||AB;eH=e`2?xp-r+*TJLLjQAlt(SN!x zfMmmk&{z%%*rAN(H(+_VIo_rofV-}Rub!7lQONGe(NlsW^8g$uC7@nw8{AKVo#a!g zcxk^1tOTk|pr#&R7pgoh@@u;aO~NOd(o4bd#45mQQnenuq%CFswRZuh6Hfuozxn?I ztW<)TmoqpV>P0;fy!siSIQ^vnJAWsRcN$j;Rxx4`;JDKEkuZaw3l7{{DC(hJR-&~l zJqh9F5S4TeUNV!3pp^QTCEiCw>-KIoL8p-qp|uLwNhV9ecAzE4Y#F0ifRPPFS#8Z+ zTna*>g@RgG$=@;emetlMg6Xe@QRlRDF+6wO$;zjJHt{1_vMs X+hR1CF&}yr00000NkvXXu0mjfN<3oR diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_21.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_21.png old mode 100755 new mode 100644 index dc90311fedc0a9c14a749f6f297d5f7177f4ca23..64b38cbff52754f84f0ba9472d216dc5cdf27d0d GIT binary patch delta 674 zcmV;T0$u&n3a$l^7=Hl(0002`twPcO00MPML_t(|oMqF$i(FL{2k_6m^JaIH&CbNi zVr2$F*ur89Aqisg3Jb9|))7IpQ2YaweG3*A79v(6WGh({lx?zYo)X9wiWX*B*f@Ej zU?7FhDlg8DYw>1HvVNNb_nz~;-|s!=s62)coxuMOwoe{ZCx25a=%CL62AWG2J82GE3x$*UigP#7llAR^J+B!}PoxRKL6m@<+_`ge+|{Zln@j-rkx&?qzf zWaQyTV-MwimZZoCZOG_-R&e?2tt_(|=P#cHiB~zy2U#30!7zgcY6aWAK07*qo IM6N<$f@y(7VgLXD delta 1356 zcmV-S1+)6D1=9+U7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000FANkl+ioK<2taW(|NqOg54)}?3m7oIW#&jx(!_T#2AsC#zV93UQA&ZA=WyRQd{z(Q zWi77)Je&*QHT_TKQ%ZsRz5%%cFAw56P4K&p_f#u-Wi+x%D1SRGdgdC;m{%QdmjZYv zojtK#twAq!UNaOStN@* ziR|^G?R}__UV(itShn?O85RaUY4>NG)1%jl6Fz|81deh(vN>UlR$3dTCo+(P4Wj3T>;W z?W}SAd>`O+bI#FHTJ3nVwqYex_?i4l1@D5@3DxRX;eTcbt~Z^%A*=Io?R3 zto7auxD6$KE4XFyMuae2n-*n^US{>4#g@M4*f@(Y8m+Ga0H#r3ZphH! zwO2U08d+nxxP~-mfCUvaQGG z0W4^Wnq?tQC8Pke)0$lWtwonYQ?6XAjf{RWs7WLI=*5)?;@Bk_glQ#uEcF5G)*;$Y z2EBc;7T^TW*qUUjVBttP4}6ahy(Qc&Tx_v45i|0~9+qH}i?S{o5K2XLihOvi>_OXK=P2E1Dy zK(hq+St2qIy7Mjl%!K+e(j31g4>0rS+R4mYGNKi3eU8inNJN#ud*rP&^Yme@SE1|U zx(m=8u3d;+8GEvQyD7aDNlu~y%zqZD7SrR;t?{|HPHSAJ3Z4Tiyr=-Pcedv&^S0T_ zacCa&Hwm7T=`RIXIdLwTLdOyvpT!%N%J0Mo`CPc+)9@|42> O0000 zyRazY)5fQndDr6Qhr5283x{*Q_j}Iw9Hoa4qDS!mz|NzA@_*5k5(X)yG=`wGl~Mz% zsivb0sT5L5DW!%^CfZLYBFJKOOmmFn#(a}bQRv5mhd=Gd!U@B6$XU)ZNNoq@%T{6| zpM@xZUf77Uv@=D*Ir?R+w^$+Id7UbcRn8mqYhLGX-n;oz-LNqr4R=r54^KWlZi%xt z&@CRTPz$jd^M8q$mabd%ofvEE>4p1myN!i7#eqdjU-%8ZINOF%y8n)+upX_gBM(bo z7Au5LnV;2y&M&+9=I}=6=)|aJU)*&`Zy{!_u5|vbi#aZwdb_q%qC3`dWYXis;^y${ zqvKHt#g(x=&fMRBh6Ca(lNNuKHIt9BnqV5G>u~RCTYvf>GD5UlfgQScYQ0Rk_{6Pm zCyDv;PTlW)c=Pb94-6(#I_cu<+Pj%zvu7|V#TC-dOSl9h@d{`*+K2e+2z*wYZNTAl zn1yMvxoGeMQJ3Fg4-bxe`4h#P|0xmG+eQX=iSwy|kGr6dO(D6uU{pd}Y3u%Km+v)k z0a7trmwzJ^3Wrm2g5|;8%i~ydp_B*bnT=XsRK#ZOdqou;L2aDjX9v-+KqJ2Z%GfDc z9Um1ww~s7qa64ChlbfK5%XnqewLiFL8Sj^eQ^+xxScuQPz-rF8<@|^4S;la3ZjSD) yX)A6kr61?!nCmxewKq2obD2pLm1*Qs+7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000EoNkl48wfw9W z;)}KT65!>yOZmF~H{<8Ju2O3)T`2Iyi*TQ2_+8~a)r;N{oqwz{%1%m;)WM8-HF;eG zuueL9V!L_+FWS6j5Mh`A7Uj2zJk?-XsI{h$ptr*(4Q#<+G`>ORzPPUIF9EE^*S5_f z)teBlKiJ<7G}6~#&qZ(BwzZ_Cfp1#<5&Lwut}x@5LIi?Dni&HXaWsLxN9K2#XfMd=uK5S2UfG85|;$eTC1z?R<2-{ZQ zEaPMEH#sB{^zAkM_S*-1o(W7xeLOMN4VBf%;}7@ty*Wc>bFk|UzfWlcx5b_ux@dJ3dK z(`tO{nAliWSjooqQR~4!8a5K~V_!q#ju?N3Sjd{4w6@0*zyfX+!sn=!p9z>zc*u7o z0jx~tz|{d@8>t^lK`ZmH%c7ej37~~W8CY6}ZGQ_MaH-&GJemLvnpK$X_PvEJ3$*nK zcMQ-^YNyFz?Wk1<4}7rpS}!m&81$sTLv;YG6Bszb=iMNseq6iLpq*F97T~SJN5dk| zNvYl_IPd(57=S~@%BK!~q-Uw*J|c(o9{F#O1C~-y3u+C^RnItrV2Y#iXpPdL?AD5y)CQAlv_I=uZ9Mo{MC|hM04stZn1*5K z6)G7%1JSkoXn19~F@>HQ>@>g=x~E0>r3Bsz#yaBM+i8%FVxK~YQJAs-tnd>>3T@3i zq9}s}ie9-|Uo!|5ImS>Lh#jRyVAq=YE`M@mR9m;Z5Hef2nhao8nR^9>JOGyG&V*$f zkiO6L6P-?a(Vzc&?*TNJ3PBilFOiPq%Cl2V54^-aGSw`OV7=Lt33t;L>jrW-Q05bzuukoetTOi3Hk>JQW0EJN!SdF>5 z64?LKzSjWtW2yvl=k>c_)nfT82^p0e@BsNL>$$SUuJnN7mfE{btzbQwV~cYL%XKA0X?} z#>#X2NJPnu7J^FQm5$x2^+LJ~nQ5TYjNilR6`DSqPSGo2E5OMy4_Uk$_dX{|CMSKZ0vv%p&T(dc;U-wlj@|1B6@C>Waf=?}-G Vo_Rc7EH?lE002ovPDHLkV1lL^Zt(yB diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_23.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_23.png old mode 100755 new mode 100644 index 7a048dbaeedf3e989157baf407d2c3afa212d170..fefe0d834ba18d9c25edc9e8d72faaa0c4db7fbf GIT binary patch delta 671 zcmV;Q0$}}w3#$c?7=Hl(0002`twPcO00MGJL_t(|oK=*+YZO5g$3HVW>uoNgcbMV| z&8;FBtYT-SE2NMJ{y+sTJ+F3kADF$kYq(r1O7`I0=*)r zK)V>C7J#Gxv}L|Ls}; zl8DXa)oO7-GJl#*g#bEojd_WEI0G6S5Rnfznt`UWgx8gojRuKs5NM*X zswy(`@$-}-2KFVB1f>nD7F41`0=R>_Wujl0cq@_)eo<}eF*L}RZFNa1GvY{7kO)6b;!arSYZ(*0u zVlYZD{(o_@T!DXAlZncj>EdHVMAp$5r7-@IngMzb&}5P|vNT?q1vXEiF)AnZq>;n` z4T7=)hOK<7i*)Y*djLwgG?j?_z_@+cHWpE!(Ch%r?huQJbOvkMm3t!6zfVvXN_KmW z-L-IP3rb delta 1405 zcmV-@1%mpk1%wNb7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000FxNkl!jz?IT|KjDQZ=l!(|pl$YQ zHju!TzjI!qK?A4|FK6J%|9-zehA@kWXYW=%(VzjG5Ofwz2@&Jn!3L+O|1&@RqIUr^ z8$F^Zug^*9Z+}>p15^tWv+`uKK?UU#Ei!-+x?PDZIU>1%<^88=pJQ1F$V#Fz=a7o0GY|T{LfGq5y*+{a-KdXSxNnjPq&cZ3> z_j_1X@eNS#=G>JSKiXF*?J06U;jJQ4;fo&+{|ZXE)4DBp_h z7TqH`!G9@mng8&zJ>-m*Y-}V#i!0NYr?cKlj{O(Nfqu}1EBbC8SUw>^p38Tp>dc-TW%UnlvKeMZ||Ed7A zQ)Ezd9OUIm{}Vx9;f%z1%hS=T2K3l@B@?JQfVLP<36?QFGCz{6F5CWIu6ch8j; zwSV%cmura}Z>z~GU9Isv^hu^AxAkns(9CZIk0{miFy7t^D;^6)nZ(QH`}T-JwXhHY zHw5c>4}=N4J$fOH5J(N|F!qWc~>TTYr z@;wVjV_?Lit+u-jAp%df9|ka!-D_=DY>s9;BUx~!OsgT4d(v7XvRp*5zYfmKs8?Y& zK}FgkYd>j(XdbY%3OI!-hIvvBxKg7a0}$oBKF&nc7&Bsjw7S@Zs9uH{pmqXAHb0ZS zswtl+Rss?g`@@hCc!xeS#yWaX)#lcoS+M#^&-yb8UivOO2e>mTdhJOJPw%!vGIl+?oLzR=k}IkjO=A&_An0O9Mk=K!Z2~29RcQAvY(Wr(<{|2$E?RJ*3n3#?2#E!u|FVeXS*l%h zk?ErUHueckB2FdGj!7qZ_r24_n;9o(b>>F_nU zJ`hnQ=m2fs0C)g?hV6j7ED5L})7St@LqGzkWLgCoPczZ5bC9H#Zu4J0BkgT(AKx<_ zVY0~r)J!$+>R<6F=J|p2&QOhF(Y=f10#4F#4vNH|v=X4;Pr85%rl540TsRkJDXQPP=U5o>yq{|n-Kx34`Vr7(^*=WC*@`eC(kLY8wpkJ2DJdbY13HTs489U!2YfWyccm0Q zBfSHr%fKe8FAfy1AtDm>fKhb@XkY39!B5jb>u4{QsXQ1LdHh{3mOu!FMg9kj=nU%# STBEH100004GtMe1T;5)mr_LVs_!3yvg! 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 delta 1471 zcmV;w1wi`Z2E_}I7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000GdNkl!9ED=V%-KtbHdz8jC|3N0KqpZq4VRk7@Nq)}EQ)8W-I=34eD;ib_j>R>;f{UXIJ9A zd8@3&uB20hV}AhD>_@VJJ}%N8B_5GOYWI}DvI4VWfEiE~fNq?%8InSLn|P_O7ie1P zY}Oh?h+j!M#qu<8CGj1INw;bt5k)wGbP7`eP%D5SQ^3i(5u~o5jbq8j$4A%1@h#$| zeF<3rssyuqd<34-T-Oy=TCc9qaU$swTm_K)yARG7ND}& zgOVjJ0y*(k{|w$pIz^}sFp~OJ60a!&mt#frZaqI6(V$d%9#Vk5nLPL9L82vOhIpxe zMS3RT1k%yBhO_|{F_Mc&<=+-4s;g~5lSPTN6^-11kt>n&J`K&1ky(U z2Z2_bR)0XDeLY_kfkdwMog|Yd$Ihfz-BWa=DuLSOQ&^i{y$C+1HZOmM%d{F*E(`5z z27#FXgMtTVo(n())F7Ssw~$_GExk3~nW$PT1R<6{OY^EKftrj|*42m}uF?2NnqSQV zs?D+I8u&9=yoL0R8L2HY-dz!Wqu+V(lyUc)wttn;I||nYcmq@{3K>JQ7H=TE(x;<9 z=M3KlQXugICpJ?<@cOPKenvHJ6k7U=z*GQFV0sIvnQwH_Zy>!RT8+yh6JPN@x7BD3 zUO~XyNZ-x8OV4xMR-;x%%`Eh7=6yzxiz0f;Eqqu2v~C_nG#%WHbgRIHV5AS~+p~Li zXMfDPv3C zL^}P>bOBM}q&}nB!3d(}J<>0N$omtSzSdaKT>zgD$y;Y=YX!1(_v||fR=;ckXg28- zcke(=UL+m-HnP!pwy!jQ#eK(!Y0vcUxPKAS`6=O1F&Y$BArr_&`b80`c2ZRM^HGQ~ zfMg!4Cyrvogw9sTK8J^urX7Wu26}hI1xwbn zzX|`YgE>Y_An%*qylo;{MlDj;`A+1$zTa$e3;f85!Rk zz)@slGx()Y3$p^jnE_mM{M}IYMi4UiO8l928MCslk4j($+9gqR+-yP0dVlWkg!>5p zJ^+VShOH7fW7Ye!*18zC@No7?>J)({f80syPZ$}TL_Qbv7l>C{aie4+mZMa36Hp%D)L)v Z?Fatg^ML_`mU93A002ovPDHLkV1njj%0K`B diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_27.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_27.png old mode 100755 new mode 100644 index 4b003d034901d8b626a9115d3861c2c7bf8ac514..c7f848cb793e8027b7022c247b78cbba78681c8d GIT binary patch delta 861 zcmV-j1ET!!3+M)r7=Hl(0002`twPcO00S>cL_t(|oJGw~XdGo2z~SG#Gw!UQ+4Ue4 zvLU=>36*@1AQ}>)md|flNf{jDHb;&BnDC%RN4&_BjqA z_+EEm^jk^XrVkgM_T4Dj+zwK1Sh9@~RQf=_@0&2@>ZKeA0p-Ru%`wbd^#B|kOL@It z)Z~@fWGVzF@p^IX&wcM3#ff!5fPUYp+ug`^VBm@-g>G+3v*A@^nZSyI9kv!K+yeua&HrEo&)L#LDcA7yoKBJ!FU1HH%&<&o}^?OV*>XO z)z>0J>Yx>l8e@3G7H0Zayu=LE0~i1fdj4)Y+52EBgnAkT=bsJeepm$KWywpBzFp6o z+=7OV3tEDx;A=B|4*23Rg?94vR}1zr8)8)eB`RDan}55Ypb4M>R5ltl#^4tgGiQVm z-Rd{X(6;mNlEO0OR>?NTs1${-bw);-SeJ4Tt30GUUv3w}!Y zwvQK)iJe#O7olw*BzV};O_J&5f-y!vbapJ8&zNEE#^0|Pldyhv%*TZLayYVpj$JmV zj<{?g!GD(kSsQ9zF|Jf)XZu+gSOKhBdbg(J@@b%+(h!U=-h)WrSV?$q?8(0|t*9_8 z8ut`|caS8kIp%1(2g}TYn0cY&G8jz<00000NkvXXu0mjfV~Ub< delta 1514 zcmV3Ns{Cs48#%s|Cc={cgQL&DIqXs@>XRQK?-fSyN>I+uH!h`bzSW^j@DXh*LAfU z^t-zqeMUdi_6VeTwC9pM61?XbIk`MmUvJ**{MNYW-bpw^Qhy8rT|kyt{+w@$MIJ)z z{rtMF$6-N`Q8q3cIwnf|jj#epr@j}6c1MZl7OUr!@cBF?(3H<>SKS_gr~oL*l3PH4 zwC^F_l65qY{fH>z2+}EB3lQBntNk0qdvnooM!JHPNT+~Zzz9DkjX#5UZ{8|vu`1~l z;TRxd_E#Vtk$+Ws?kRy~1xCdHBcLh(-8j#z^G$x6c&V=!XiDiU>Jl_Wh@VM1#q>0A zCh<2AlWx^QB8u<@(kV;@K&=3ROaTXVHC7EEvdPwbl0`t*#PJsK(!PW&09Ar4Inn3Q zu{lvurS<9xH@--^1Xlqh|1JeNQknREW(ih7d{ssu&3{2Z??O5SWC0?@o{_bB8+`_YI7rBZuH0q)J@xi1eAEg>_+OZ_X-GYMZH9bIq4 z6%V@%>LotXE_>p4BK?MTIJ9w~yMTyL8u2`Wwmu_>=Jj;0$ar5My$5g*Xg$*kD73HV ziz1N7)qlQ|Wb))#ne?iAiW{j)ptkuG*5+3)g3qbV%iD07W~0hwp?%FDFcV-<@ZijI z0jPi)q!Ygj>6O;fTjQCDscrC#1EX< zObx;7JCpbk)wo`0=`R9P0X%`}Eudz;(M9h-`i*EcE{jZj#rvGrLu>E~0(K*PHS;dD z=Qyp0S{XI7(A~`Yh#(h5^psn8SOBzc9z`@AT#aY@vXxB?5S7G_$LUoXp4MXi3>0?=sEDNGlj4L&pF z@sN$ivwfxcEABgbOuN_L%D}`dfcikK+J7e%fxMuw3Rw#@N@*k2PKpYDju4NMnJeG(qJ6SexRF8JTeT1gKW_v{!C!0r<$us9 z5E8sLh|JkKz{~({ZW}>l!Il#ADo~GHeEzDay&8XY0L!P+januDZ|!*> zk?D(Ilxeqe^O^Wd1GUsi%l&D)H-WmOh>6dVzUnEr@RtTk!ddkJsc1B#2qZyMU=$-w zdsLR$__+)4N}DLjvx-JDg1C%nkAKeb7XIo0+C`9M1?ck`xRr`qoJfBZJDqY1KbJwA zaL=^PN(nhe2XT=AZe{Yl^*@3@vK`3w#W*oq$LzJA#P0h%-QverHUUaYAH-CagUAQ0^ z8NfxypNWjpX4j(rV8mPaUrqa47etRYf-=yqkE7#8wf+lrb_pXCya(a`55QsFBUIqc zmnEu@akI0OS9Aer>So=s_Yjgv)mFkv_x&EyzZXy~bcFQP@Fl`Ie%=T|gd273*;9y` zi7yl0+Ec#rETAH$SPeT7-ecNRzSNIK?T#-K9t|kF{znip`4pF07*qoM6N<$g0K+Z%m4rY diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_28.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_28.png old mode 100755 new mode 100644 index df2008d932da4f7bddb66eec62034958222b519b..adcae64da4f93d04562ebef1910c2e5482f75bdf GIT binary patch delta 805 zcmV+=1KRw~3$O-|7=Hl(0002`twPcO00Q?(L_t(|oF$OKiyKuOfWP;fArm1aa}ZPr z>rje<2MKz~VI{A1PYV7AN)Ew#k;b0lvUFdihn#GV6%+zJ^x`3UD;Ry1h$EEU#e=Y} zrqdE=J-9o~29nv%en_ z?kA=4^&kQ6yy>mT_Z}ssVATQy!&7hBb*q9u?g2u=uySbW;6920!7ohX3g+^9`>F&vj=^yUP~ zfVtuc2kp5x)<~ZKdI!g720Ie~wi}J&Yx~4YgB%cFeT7N@!ro25M}U!nBKWclNZ-$4 z0ghfD2>hHC0DqqYU&whh=v5!6m3_h#Dj~JZ0I8fy!%uvtfY+S}MFOq7_6$&ywJ$u< jxE^}B8v^fL%*!tTz35P{)Grw<00000NkvXXu0mjfCq8)h delta 1480 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 Hu0mjf9IM(B diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_3.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_3.png old mode 100755 new mode 100644 index 97c138235cec8852dc19894ebb53cb3e7ceb36a7..d8155c7e2d4dd31635be4b924416ed7fcbc75c6b GIT binary patch delta 857 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 diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_32.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_32.png old mode 100755 new mode 100644 index 856c8455712a3bdfd45b85ef4d37baa8edcfda8f..dcc5cfdde81e17a434fc2b16b0a9497d7c55c997 GIT binary patch delta 684 zcmV;d0#p5+3%CW47=Hl(0002`twPcO00MtWL_t(|oK=#)YZO5g$3OFSOjZouf(Y?v zrj!(V3K10XCgLApYat|7HiC*o5u$^n5EMyaVPSDrX@ek$C@$xf7HVU#+LM4+7+q0x zFWKF(xV=mKHp6`R&UbU}jtvJ$3h^=s zf=>odk}e>)s)*(ufcAW=6fOf&0T1YekZ-^HwF_5CUqYA(kO24ywN9REU>QRALI*Mg zO9sSs--qDHA;NAM*s}!!6fwr3`p}qKdh|a{$aVTA3kz{lht;$`*bc^%hC!C21s{mBJVFbRWoX*baXAXC-fAjq&0 zS1Wi<%Ia?>R~*#j5=l1 zDUCjzU)21)HLE)fXn?pwswrWYVcT3(47`sAll@rp-hcko+zj1zz^oAX5|sy5(rpd` zngGgypd3n$*g^?ve>o#b;5^R2nFxIj1k8quy(I&X(ARZrr+4-y3IL|A@c19Y-3{%) SanV2k0000h zOTnYj3OHqw|EONPx>t|Dss^>fT86qEaSKwpkfC{mxu?*EZFNejfXWn`g? z1C+9NG|si|nNrjxT19ZVmtk-O&-K?p_wSNEMAV+;=VSP!(VmXheqF)6t@` zTOvl!F+ZTZUNcG>X{dK`99sq9J=QK7eVe-&ApshmbAJTN345*nZ-8kFXbliCdJFij zwPgI|5izJ8pp60}N;yr*D0RIu@Kgt@`cYK@@Mg=X&`MPcPc_O6sE&iH!D09xVTjsC z=j6iP`9TNL0jSFf@Q`QbYNX`L2FA1Mfzl602Nx7J4#i)?S0iTyngejF3p4o4>*ICo z3>matN`FY#j^9=>aFIm$Lr8ozd~OjSqR5%uz0ob}tno%xI^unTZ$YP`#Xu>n&)&;^u=?>^nLPlE_pbCUEqfmzszA#4SOn;Wj5%ODccq84 zw>|)TS;_~js0OLLrMzG!RyU@V9)F`HFN9zQz!-30yft>EkqmD^q-6B)UdfnNdUB!t z{f@t9<_X);P)|hw?7YHSX+ZSoGO)DPa_WuTQD{p3EhK2e}dA`*NTz?(hZUv(pLP~hD$l-qL_t(|oJEt*Y7eXK=E(EGYjos zanV6D&8MBv&3~EV>c(g7rwuRZzb(4G7FBjDFxuVaeJOib1fUr&OWH20U|KGQE&-gB zUkBKk_FhVoGi%1134F{a+h%4C6a%bh3LftHWPk?aDtH`RCZW#VWlO_J1-uNBP)Fm1P8xStFa(C}rNK z!>s+~yi#L+#|NhIxRaUSj*mmp$lGdFu4DTUJ9j-bY-7>P%nSq0N~PX;vkIudSm@V<35WswCL{j^R=Kxi04}eA zl*XS1*8g)7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000EmNkl+N>cs8XC3;S_;VpnaxbleCb$f*5*(FXwRen8*1qTOT* z`E5VVdZgr9g<$loS+G3}&h!`&XeG8^6W6D0%YS{BMe}=vL;+qaFe2aUba{lT zpT8fc)o9M4%}hQJ5Cv#s<7RzP~} zWhWm95P%3PKz&bPcBM>do;O3twW)Kp|15K!ggF&VVV1i6nz)PgXQABaLTA?Ad*3jc ze}-EGK!2PEm_5*l&{yD0!)yI|x;XXhM&WoqoO8tOnXb6&qxwUO}!GB+x2#WN|S0S4Gwr$pDZm~=NsAz!8 zpmFyBt2F4hlMgKN0f2wgyp%&I-P9FMHYpuMcwY4)=t%m>h3(OSd8_PhGG zWPe@SE9VGgj{hs%d4Nc5<)VWTG%48~Iebm-BLj}V94aA~BTlMayDxBVARllFfG0-h ziaxl{E#`C=`I$}q2+Q6M)@m$8Fm-;<9L?F7TsseLGyN4N0f;!;0bO2wCR9AxQy;b`A}^zR78rEPsGC4xfR_8)*APuE#p&E#w0R0no(K*{?zY zU)Jts(_f(y0PRC&-IST8N|IG0XZ1Gx+8>Ja94~JnA5aKDR&8Dl&M�d_X7wZzJF8 zo4k#DKyV#=`vXRx3e2cx@n*0V;07;#H{PQ870VMr7VN00(-xP^>J>BYqXeu4*ng@0 zH*MgXtRh(taKiL!@9m|K)Dvjt;x4UjM9L!|8Y_+zs?xdseG|wd;AV;LG0W;j-E7{9 zF9B!^C*Oz_g{HUT2RKjsi7V;o@ubDB+3<5}!OuhgtlG-?fd5vY$JU}yX@$;ep_rAM zd*{DNDE@|lt3p3*S=J8nXLCt~pnv!LZz8_p6S;UxJgw~)iD*l3W9r;p7T#i3pO=C3 zo}`Gkk8Z{X&}+Yj)C{Ee&5fp-`w^n`&|A2)yCI~`AFzX*MjbA}e@B`S{2w4jS8#zG`t1JXeu(?Z&xxHj} zAB&ld)yzCI&-1>|GcORCgb*fS4zPe?0venD0bpDNf!q1zY=85+-yyxP2KrP)m!$q6}8Gm^%QS@Xy&*0fzV~hc~`E>MJdbXDNDtd26lG=lm&ajmf?@sQ$ee+l>L5a9d6TeNPykrLm4ujnPUJMi z)Z5iay{j1SR=f+teKPiZm8$6Nm#w9g_#mL>Zfj%=JAVKMLXO?iV`Ir8rxA8;Y_IHA zm~2LpmHLhQ6Az~g?3({dg8p!6F0W??;u8#{jAq?>{2QQ|Iv@}RfX%tq7C_)~hE6zb z9K{0!^KMlE45UG^p*nS+Oahc9FbCm(F?C`vgwWquLcDI~fervgz;pgnpn`2*HU+b$ zqSV)ANq?e&10L(Mqm1#R$ZS`V>@+Y9=3`PgjR?@HG_$(yC~u%yrmz^f`m{jnl3on{ zyp|-}p&ecVF8N69bxv<(z==a1DahK(l7?zK3Z|Dw0P(N~K;ED|kd(L8l_c^O-I1iC r;bzL_E#d&Mr6024JSrtAap!+xcr0n6F{FzC015yANkvXXu0mjfwMsdN delta 1339 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 diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_36.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_36.png old mode 100755 new mode 100644 index ae6fca1cdc7dc429f0b227663dc72d75ce560d17..28aa1539cdccdb36b504467dcb6ee363bd2e4bc6 GIT binary patch delta 631 zcmV--0*L*M3WNoa7=Hl(0002`twPcO00K)%L_t(|oL!SYYZOrw#eerX$xcvqCn}gC zx&x*a#Ks7LOeBS!g_VtLYnMW>Fp`Pb2fsn|3-}2nvjqH8xnLndVK*3zNF)=HWV6}b zV=-@B$tw@%oO|AR_W{W`#88I@;5cajOGNgJgtx2g=lYitHA!H-TSV{~!<)QQx z(7Q4MTta|aXlcZV=$`Wov+ba1Ps7a2ZJSvDaWk>22X{XF^T@-=7tup{I}kaBSuy3lZNIlPu+?SC3@f$cjgvuA^;1HGiyV!r@8gq% z3oW0nt1xv8B7ZJ2`FR;2Fvfc~7+^>J2`ex6n$K7Z*GEM+|>@g8R;vp5+f9R}XR zsS!noWW^MuZe&M!Rj?~b&Mcz3SKAkCc}d9i%M6DYzV%l8W+&R~0>(WH^_=Wtwss>6GyXtY|kU%V--pLe#W+C zW@dqoLva71H5J#NDqUVABhwB6Ku;2iu#60V<1LEuDhq(dTS(UMIX!@i=&i{pzIc;j98rK~ zvhVx;`W-EM2HL%7;(K|gl*6y*cLrZI4Ri6M;*?MBmZ8SN14yLyTc{v9-Wdd+tb%)L}f0 zQq7>5LVt_bx1)C6$O=T=UL|Z%fN1(<5pL}`>Ha?Wo6QKk%GF-^k5|SiY_kBU`ng7a zd*!~J|2|TL2u1`(ERQyi(@1dvR^%)#q&MOw`hRElr1zF$7Tkwx@<3P<94YL%CSYWOMh@3nd zs0^Z7OmOUb0oBQmHlW%o&j9#!$a)6?X+dDb{A-oKjD_PFgy&l6Z&iqvkY)i!N>C9I z6CEM<$7TTylK<1(K_nYMU>EsZW+khTavoq*r0L72(U<^H=jYf-z85Df1hgG2LGtAu z|9^^T?Rv+TLH>`+0;FhI`db8upfH2{DrAoUZwEJc`uW~ntX(&238DchdY!7o0Y?vn zMDk**XAo)5?C1z)%0XgF3}EHP-fJTkBce#!duzN=Xk)DaxC_|T{w4a39kjZ<2iXlA z-c76mXd1W@lv#a$>GRqCeg^rKcDe-ksefPz(H$!ljoN2YCgHIl+2mJC{d&MGKxEOP zyM1)85;Vj?@emsiVhLW`NpR_(H=KJ90=#keuc9e|)sd{K z7$yEijD?H?l~FekJ+)kQlXUS$jw;56|W5&v#^PjLhPDZr@# zw}2_jq@rCxLv_MAJ}29>-V-{zl>+^pgOU8IxbFMDrBgIJ1|B_@l|jDsEUyyqW>96~ v8@|3BjBabr7MU_5Yww}b$VuWSwTJ%#6q|bPq9JX<00000NkvXXu0mjfY8_gp diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_37.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_37.png old mode 100755 new mode 100644 index 2567cf087dc21d20cfaba449cb21bf00f59188c3..95ac16500c361d6a26ca7765e52cb2a9bf004174 GIT binary patch delta 429 zcmV;e0aE^m2fG817=Hl(0002`twPcO00DwYL_t(|oXwKGF9bmt#(%TsWFtOScavfm`Ww-g0!;N1As_Idr+ECJ;l7Hpldl>*|70^@Pfkv#- zLe`Z3AOjfv3eUf+8%8$)jB-*jb_S3ygA3E2wct_2ib@3F&96k&r^A=BVqrkH7Y5>x zRM=5i4Cm6GuaaShZiEbS+`SKPiMabg37{RU+_fxKJDNIPDhtb!)t&Eo zAIY}oZP~at5q~QkQ~6agh3GUuTy#E2^W27x8-t8h%7SLnmrifD-T9Z3R_WFulQna5 zTMnlvf!>t_Xr5X&c}XB5*nYd-;S?&5T<-z!wD@jhD8?+p3Hn|KoVTkl-RFql3wmo$-VwkD XoYH2yt3E;`00000NkvXXu0mjfNN&du delta 893 zcmV-@1A_d!1BeHZ7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0009zNklyG0f424a#@Bhl|j}fz8*EW|xz}TM@(WFgE;^Tu!Gm`)yL*SOr?hXWd2?01K z1mK(yfOA3s&ItiHCj{V}5Wqrmes+uH>HaMwh#Nt!`Er0aRDTzo!VzzBLhq047n!U28KFQ2@P4wx;|QvJ zfjMV$8M+!*0)Gg;i5kE;Apqz6+1-I2c8=j(;dMhj5j8-C5_m4yHx!ko9N=Ixu_!>C-tzMUI2e4{& z8rZ^ngKr(z_W|hmjU54Fd5o{&S^yaObFLQfTe2U(xqkrg_)V++)~vTa3vev}ie&vb z<8R7-0LS+MdZ&9_k!U^p0m1?PqZZ7YGQV)80BE4Nbt&7ujQxcx1@Lvh`(cn~AMYfN z5~*FhOSo)_KJNo@Vl_<8j;ZQlL{m zydA%;Ie&}=C%E1LB`*>24Rq*ooTt7Iphd(U3Lg522rZ8F&{IFgDMp`@Z31vtaK7Xk(P5^xeT*d2uE}|Cer$E4RAs*XdqT0)jZn!y|kRi?%F4% z^fL`SDL8M?oBbo_{r2@570st+BQ>iF&OnQsCV~&Q)9p~ZY@vL2h;j_4g-RBM zkJ49YE_;_HB8pY42ohIoNYug=8cGt;o%Z$;6442(q7o!RB0@n#qBsqA*|VeA*}I!V zh{`lO^UM3c_jY!Hf42z8mt6jWDL_uG{l;ARL!p90Em#rTdExzK*PBL zOV8SXq@g{LSgyW|dp-2*g$c{np2n6;?12%;O^X0fF*L2=H3|}d;l;J}#KBUa^Q{2j zN|Dt-w~A2^ljk1YR}KQsHc4>Mv6<uw$eXb7ytkO07*qoM6N<$g3mA1D*ylh delta 946 zcmV;j15NzY1H1>27=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000ASNklIOL0!Uj?mGw*h-$CJ1biO$)=C2?8YVmki3~TTzX_)eWdYk5NJh zRY4lP4_EdEf|!T_FmfcK=e6r^PziGc(0~n^JYE|>RpNPQ@%E| z>|}fZzCB090Ik3V!Y`nx;iyMrBHTJ7s3yQ}vQ~o9_J8I)nyVL=IqkUsG!Wp#PL?1i z_uTb2sDj4;r{mhUgr~qn5Qw2I-AeBUq`VuH;1vbv_2g0Y zart;lplbp+AMfWB<^(0UUI8TO)~0*f*FQG|ei%i66E}*s za%BDX9~u>aE~Sq8_06nQx)0Y54w8D%bEn|}Xk!@n0%ew`)_Afe_gp^RQeAlC`i{?y ziVbRGhTda<1_jVOXQl_gkpi^M^J&>Plx!5(bpUOQl9;~Qcrza^rxbYOlwc-FM=C*x zF@MGzJ-VhJ9Jy&78l-w!+w-;}#Q15w*)(k!IKO7Y>U5k&O9prjt3cyQv4(WPa4&$v@K#LJ@Y$6?hV}KouK@BkrQp}^BuSH2eR>wXe zgwHf^C*!<k?9;pynWEnZg7aQvqFqT5}&!W2aO!Xv@a0dOhSDCP9oH(jvVG2+?ErXL=;h zJKn2};D9vuS$})m$J6_npeirFF;Wle^z; zFQ$YRwsx-6zmN$G5<2a}zfQbP86UW|P*x6rv^-jkTYrA}-B8of24UL-(+}==7BC=o zeloq@C3q#>m4|~-AdvlY_n>n3!rJ*NAO@rPfzC?cUCr-bu^*!aR@bB(Ky-1~|1mg*i7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000D)Nkl3G140MkA|G!KhZmqh$wy{}aNEoR~If1auc!A^sfC2}v#V30J2e~)`csY&$ zUXCMxm*WWF_-fqh0e@Drl2PMXZC()^573EH z3S8HfJ&b0Y9N-5#TX7FU0(k2pX~?wxQpylMz9N-(c6FnXWenKwC@w+*IQWY@4PrF$ zh^+;X<$~|*cNX!8^dzvym1dEDS3f8;I?vJlrwc$LarI<#rtmc4BYj8KFYO$FyHTkO zFlVtn3uFm%=6{&(_G-%?1obYAx4kAnY&(mfEaDOANnkCZ!h6xgt9M~%d!uaP5$OW( zE`ZkxXS?ZI-yTl`kWV}!T>ueKZ$Qh48QU}7mqlQfFngfx0-~AtotZmk$h6Np$fy5% z=PPCPy=ygct(Q*%YZzr&l7MQ@)$d&O30iZX~$bV=dp+#7$x_Jxf2SKBNB9Ppp z$7S+x5<%_oW@T)Z1affemJ&6dD@3qcM&E+1LqKF(ru{Fq0g!hX96J+_*fs=sVml2B z+*5c%h1Oo$h3trJ1z>^Z0+cLHl188;92(>4Ju3{XCJNDu!GDI|?SudJG;FsEh>&5C?CC@6tLJcOHEewn zScCP25C2W7?;(2U_z&=K0RZSpB;Nw^E7tLB8Gm=iV+GK%d$6{MlGoVX`T;h~0czkU zezornz3&L{{?qUn0Z7Dav0iie^j-~5uzr9|kAf+zM9$lmi$E&#`da_3W68o&Ie>Kh z>dnlx_^l;*T0*Gx%lpv8U_Ez5Z07-bEFRly?mKb<81*!(ir|(Up!V{``*Mb#(pfQH zDt}8?Y0Ia5NhBqW(v|nS^44*A4#`<{MU>)eh1Jb-3>BjB-gdQUru z;q9%f6t_7n@}>6;wdd751Fx5f35zGTIU53%g*ouTE25#*RKZ{ zY56TN-?DgbthGFVwhQ13L*svqtjIV#?SG^Fc%P%a&;sc20G35Wo`Hj@k=1+U~dHRFupGh;A!TfA2c7C9P9`Arn1XYo3k2q;F)t0rd6yV3IX?>f)zW|Hq&lp3V= zmT9uRv13UqAE|P_EXvER>R=c}| z-6R^x13VqQ0^seeerk2@faw8B_UMve#b}O5j=|flj&JtKhQcWXLBIe2002ovPDHLk FV1huXS}Fhl diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_4.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_4.png old mode 100755 new mode 100644 index 0f81cd5dcdb6e26f764f43bd0520fd409db3d9d9..bf55efc7dbcef6ec97e8dca663642af46fdc92f6 GIT binary patch delta 861 zcmV-j1ET!q4d@1t7=Hl(0002`twPcO00S>cL_t(|oK=%sXdGo2hM)i6e|OfHWG1qy z3kG*-3$3YzcmP`(yIZtUP*5+t$c;n=Ed>u3q7h3oHDZbtt>6i%7`)J8upS_^LQ5vv z#t3c6MOqUzc7lRSl5Qq3iF=y)yx0Wld-=RCAH00L01c#x`G3R#Iy7~Kopr!Eu)m;v zJ&}Vn9Xq}E))Sw(z#W^0_XBim)Tg`Xpi)rB00qR@OE(khDnQHy&6BRzcm*H8LSyh~ zQy$0GL4s84nSTy22G9(o*>Hm11?yIT9-sr1$U@NX0s*)_wulti6M*GmWWWkwX3Ij$ z+pr@KV2QYy=zrOgEmEqN3zhhCuQiip3=EVlsTUqm^>TI%P(MP(1#ojBA|eYSB5Nl_ zL~2SzBm&;(6%h&6oD#%`MZ~@FetPV>bADJNp6WOL7BV6tjP?fV`{l&zzT?v?Qq^jY z^PHJadQ>_&3>5|-`#866F2rM?WJQmIQzWqpp&tvA34fi0LW+5u(A{xREv8t3#F2=G zl6EbLfNLJMt=v>0)~#e5^b4Gp74gzel#v77INEDHw>n+(3qbI7k)#evL3~4u08DeS z&o*Y6NnJ_?AYsedaAsb^R=@>V9QxDA8~mnyWH%DaSAlTn#y<>^c|M~4`=5TfbPH>f zY_>ynaq_n2Z|=Idq#IX%K3aiM=h|z(4Nh(Ibe0#n#K<8oMD1S=y`MLEXz3ZreL(Do z$$?os18@EMt&LRN?OTtyb9bs0zx?K@2apf%e)yT>%+39j&qpF6(VSltnVvmv+%CB< zrB+WsW{#fuoBrmNsaK~(B&teLMC3T{PFS5H63xl1NErTZ9*IiB^(`CFpb6HtO>J$+ nO=P%E8gUc<1KC=>?RxMZf@gg-BrO3S00000NkvXXu0mjfL5Y;Z delta 1762 zcmV<81|9k62IdWr7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000JX!+|B7}>yL4Q_DzfMFZn<)_>d!jo7!Ki{~`_=hTW^gjHscf16E1N1!YUDnf%QN5e zzCNYwx`$68L8Xq7iUC%X@0ok#pQDP8Dh0_9EeOfJrv-kQpj9KB1w66n?$Z{DIZ!H# zu33HV#HuW>>$r?BMNMUGvrWeWjT%;u+~N{*+{ z?gBnZu~iqaOO7YtW&snQq}VE+er|!Vn;g&roVE!&@F$SIgB;KTpdUGW3ZBZtPr`B~ zP)EQ|n}5b^#(-o;PxdlnM&fZD`84wPYKanvd<0@tdc>G%dqQ# z*nEHMi=IF$ld`c<)ve;E(X)R!e>C#9+9494Ie)uc>uz$q^>gl>u|RZl=jWC2k#elS zup5zh!9qm26_@fWNFLy6;I55f%I!KW-Z~Hgs*hH)@ra(^l6w^ytMNvgR#{v|uuO`U zsjWwXuoKeRE*UDi`IQFhn<(rv zD}M?v(vO_zY-Zv4$0!(a^~)Or1(EW4W{n=u7(ZD+bO7WcSiX)BDXK(HNH)s%{QfRP z;w!dZw8qucTwD}5DK>>%6ddIrmmB5{(1GyzsB zQ(o?U2YF5;jAh2PW$m_fOBR3yR!?oPw>e!KhlsjTxwG0?L2^X4b_<{p5sLMTo_G`- z$?p+VmEUQVDkO;(#k@JU#{dyQm^njWCNC2a&+D^aR^BHNO?|uMTlxbL+4_Ok#((;r zMRx`BZg{Dsm;SLaG|B|<{1A#_WxtM^f;BIaG3y`iL`0#oT{Pdf?vGI*07^$Jzr{>- zBx7J>WE8jCl&{t@p5@x#nMWj-(}IGJ4LfLCVw-RwrCaQ%eBtJkEKlS&{)?cJQ>pjuqMqiSR=z^ zxtVM{Zw(n}#b;7jsdOoCM(Guj%y}%7|3nN@CJOKvbJ@7^J!*P8O}~Xo9$z){-R}&g z7{FrOY!ekmXAF7_eVws8b0Q;cS#aw`-&XYgl=3YSl(PV)eAz~Bh^2gQ41XqkMv)ck zz(^30L9V~ktY_VAs|7%dV$dYWC||beKqj_`_GRt~ZG4yVwZ-coK`IEe6e3MF>$BTO zTbLVWZN`eF(e0U~SW!M&!>R@NMSwX00yF*Wq_d6iPCp~l3g(!WTk+P7Vw5OpwpH>)ul6q&2}U4LeNRGuUh?Cg4%&}*9WTfUwV-iiUx{D17b7ql|>5Ov3| z3*2SOl8cM@`ARHsCp@L$B?VbIxpzTZr`5Ox zwe>84jyc%D3|oNje%M?w#(6$Ja_t1`;00W(-+=bJ zfxemU89-)i_bI)5x&S2FYBYEjpaI~KwpYAXY0jrgfvmcd-`e)m755E|j%o$woS`0XoPX~5- z4cgAdQtRW5sh-f#di}&zSAa%Cm%p4d^xu6s2Z_ti|9@%<>ON+~SyWd`A~LEsesk1A|fKW>O#sw#;fLHV7ayeh)=E}5tJl4zYS1mE?2}6t3;+I zZ4&4SQ-O#_Mz(tV2+N&&HAf^sNy`?j_UIq!YatfNs<%r%S*73KSJIpXN2&zo_L*0Y zZzND2G=J@cZ+Wy9&9A-@2__)Zh>E)9vvK+~q^4m52Q4na=KeUM9Zj#90Tu3R4*3xz z%F4ynlY_}x;79UZ-W)(>JDEYCysA22YPhd04DhEu~NV$CC zTf7|uBo!bs(f${asBn}D07W1r5@o(qs)e8;pf4oSO8ud-9+Iqy1rd?tj`lV}^7|Q& cS1oe>0rYPR4puS>oB#j-07*qoM6N<$g2iM*fdBvi delta 1405 zcmV-@1%mp*1%wNb7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000FxNklzvO{^Qy8X zg#eO%*l7{1IOnsAE~;F^@)QtV#8m{^#rf5ED}kHCvH_0c_-IFwm%G1A1WMJbCxTjw z8SC>?Jpea}lYfQh{ilRn4y)#0N&sA_pa6+*M-o^=bVa|TeM6KHz~WH2`_DXj*LE84G_scR_8;D8oEnD_?5R0vqu zw*{2LO{8fF8h~>?KI?mpdnzG}wMF1&Ou9%}#q#1F( zbPYa7U7z*`AuDq+wF9uip0VSp>nAeQK8ys^Jyio(9=J20(`U^M??4Kcdzw?Volf=B zd#58nWPw(zZ|NH@!mP;Cn$P*1MzI3V4~u%-AAcDED5iW{G^mE=eCsP+tA^2bIyEjE z0W8pRn%4eXzbSC159$*Ix6@BM$|At8j)~Bg4Jxef@GY$iUL)%qE%!J(BtN(bz~xeE zKpdW+5i6Z!Mb!Bjpw<`P_o#l1Pz2D}c@08^9tZm~otljZ2`u(o`W+$PMXbgg1GT}t zX@7wuLFEo!1uhzLwsVmZKc|s^Ys2;18bJVUfrpu<2$Q=yTZ48C!)-0%%|Zmq26D{i zhyWvk#+nMg$>|iV;!x5}@OqZsIJ#rSBZGR6CsAYyvIEl2cOYyToZq=-R1OBIQ{xj#B-3#dF>QOr3pVlO5^ z=*&+%ccp;QjDBl@HqH`Shq1sdcu0<5q^%DPcXg1Tm%#HMOXK2wiQZ>bC{wJa?qllaU zG*syZuJ24}!uh&Y7Y(BmB&$x=5pLdTQg1vgbG2H zV<7yE2gmm)V=1F8eOloq!m2`%M|4y7SOTvXjR5lB=~q2;2G2di%3m=||0q%MqG2UiM(rl2I!By%+ZL8Nrkjhl*s#A#{Wh@0Yjn-)O? zcNSW3G?q?Fm`u!{dCt6f$Hg1t-@Cc@e&;*iIp?0kh4(G@y?-cxdUY%U`dvmo|2mom z5Bp8V-+6TLbX^6@8+)o z%Ds!%?75Bs1_QMOP+y@EIeWX7goq=u#Xo3#N(4c)nmXe_UcoQ$_G$j-5*UdcW!GYY~1D% z^b!zH`>DBaaNX@EneSxsrxb3Jl40^E;>qVbFFx$GUSas4voerBX#*t#5BF5pqG;gs z<)rU$!mzI~xcl&!Vx)cr$ZYU?|Ch&3UbkWE7?7SZWq%jt+Zt{(O4aJsQq`aEIumzc zB=vcqCXfDb6b4<-g3{9P|JCX*cdC3=PcsX+*|o_^?90dNE2*4;ib=J9mDrbmx-HcN zh@G<{u`l8LSp!-`x06Y8KHOEt!YFABON6ON`1L5U4n-ZhW}GLS$LagIaGpi1zgEAO zwSa;&oquKujs0nBSvDV_q)R5Nr?LNA%+h#(6sh$?^xeR{;ja8x11pZQSxw)Lou`yJ z7(n;jf_bi4MZP%a4c(l9E0iHJyPtX#HkTuC{8dNK8OR01gFxF&gJ$4vF#ek(A*7~T z4vVDw7Vb=0(gYc5S@s4||D`Rr3n*@30PBwf0b=B8C|Uk?K}pxnG?V&kg=f_|IMN9K zP-_w{FL6A4Ipvl}wEql#CjzE`oJdq?Q&|r|MLNEJ00000NkvXXu0mjf_DN-b delta 1490 zcmV;@1ugpZ1=tIa7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000GwNkly9fS2-cIn|0{cbY-}jy4m!^6e92~-s(^yrrrTRC~D<1JN00vij#GS@hVgSGC zw&1<&-rH_|B?chfmb)1T-pk!{BklZ`hk)z>US&X6@YQ%)Dgiv+dl%^*p95TV19$UX zX>ihBjyHe@YkzTs0gN$jmn&4ly7v`c=~Yfq0JqV(u{ple{o=T~d%YE_cx*EO%Rxay zsMzoh<(#N|nD}XDz`hQyJUk06eEWCZtPCH`bzA95bT}H3SHIL+)&uNTJ{1N|zQNvo zNpq@Y^Uz)TgAk7bsT%k6CX6JbRer6Ox5`1mLT76dD1QOp_|uioA(O~vLPqqwQU*|Q z1FlA8!r5BA;&H66u9Q*+U{${Lw`_MX7z!C9(tg_q=T)2&rd=KaIOXFc58|$huS`^> zzI{~rma|@x1X71`YDl`AKAy~@{&0@9$?;HKM$2RPw( za4VkD-zxr?E=E-O_{M8AsP!LnnNV&tlaw&jR$_g_A%Cs9^h`bAA-9r)qi#TWG4h0;r5g#~alpz5=OP|slnj{rzRUyM)g!Ffhjeq{xCG4`9p?d{VAOMd z##T;Qy+o(_iTP#ux7NrTjrWQBBKXe(=uNC1faA5q18^}Heuoth?PS42@ILWABI_$* z@qZ*9cW>e4_5hZfLs}X*WJ=&@Y>zxW`_Slk&yDjE79~nKhQ^!X)qAgf7hu^06~7>) zOub4On17ZAlo!&K=5vbFya49Ijd3!5jWvS-XonMZKUy7IscZ_>bftQmc?K^p3%q$t1-N}%ykRula&q*aIr);zDo7-g&4w9jZbeB~Wf<0kPsHvnsVw$!~+*Gmf%6g>+xK3A2VSwr{cHE@pWT>vJS zJut~z%rPxP_9zb4)N`Gs88p|y^?#Ls`;8zYm-|11s&9$c!ZUQ>JUm|tbr`F>1$7}b zS{pw7~p z9IJ_7btA}924X=h*{YU+;_obSMo_K%NP?#&<(@=vNh?@t1bqphboR6mm4B5t(@V(0 z+ZVuVxU=!}1JbX9IY>fiJpj07cU-oVojZ7G{H0Ra69(8mfJYb)EN(1A|1@~wu?3cp z;4**~@BkG_RCU-n5mMg5jay)8{7|8SYIwbKfJkfg0gn|8BM3|GM2&qJ!>j_l2}wos zrV5cNU=>y?ej*c2pb?N&fJ=q(&SZ(h2{LGMtVF~JQXati@};7T%*s$HkA$m~Kan*8 svjlNT6mXF;EW%_9*z#D1sFQ>#fC*OvphC z+C(C)*wCFc0X0T4X@s3*-<`jQ?eF;fF3;s57y$|iL~b>P8h?Hnyf%;sCfLVOP`BOdMT63vdSWyS?;pfj_v4ZeQ?ltFRK6e=+~ zPUis7U_5GQ))ztqpg(ONSsH)_yu=4IGUWrQ;K8LMi_YO)zo~Lm&;T!9h^^RrjXh13V58*rt$*!P&bi}_znYG>2NYdnC6)9T zySd(JO=u4qi;tgnj;a%8y+57>1>7JxnB+IEj4w{u;0*Bf%Y_%5?&M0zyQa_?bW|E| zwj>_g`t+tkAL_v!`f}}^weL?3Kk=#!&2P{Xv%CNJ<+F|*cUj{(UCXCmvb;|&CgjqG zLHlQWFMr>jn(xdQ-CIGc0lVvq?@szMs42fyD*}p*>f$R)v8o1v73+tNH3)-8PR*J- zzMl;H`k!n2Vi(8H<^~4N)NME+3H$1;x2LOfTR#JIQp}d?S>xRq)7yZeE{4m_$K6@5 z5m^_&x%Z9RHJiOIzV7JT~ZBSs8GiGRxBQ~Fkg@&`wr4-I$eo{gW?mrKh( z9QP-E8}akh9F6Me`>N&+Hel6_!=^?O{`+X}h6Anf{an}JlWym-g&~-<5dHg4fT1-p z4r{ndzfqIv{`}6`IiMK^N|$^&`eEtsCoKcH2+@}UW;>_8HGM;{y}$}R(0g_rBtglK zQ)macBoXrw6k?RDEbZ5ys~Pz>fK8t|yOm-l3-3p$HYGi9m)Bd_ePD^0LoGd+Wk3aZ z05FQ`Rtm}hRgtV9%>0>>-;xkSMDiIjpHLQwQ6eIi{13w(b{C5J#+Lv9002ovPDHLk FV1lbBpmYEL delta 1863 zcmV-N2e|n92FebQ7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000L3Nkl>oEIW(-b#Ov0W zQ_yVL=(cI=L*+_q>Djz-Vm+xnl5JmGv1O!Y7&WAgd+?LhcLHewjG>49eUIbBL{Em)i0rq9e$TEF0e?2Ex*%#$_4%%`i0m6JA5vpz z_mMM+76NP|PNaj5?*~pJdn$SBsMxaM&k2Q`weE?vC*t5t%25f>z2oQvC?Sw9Kll$E zo`gp-^tS_*@ttzjAB3EQ_u~ofY>7CQYzgSXTJpONdpdqh)0KX%6M*jg2npy|L4Q~knGh3QoegS{EyL>`+w0W##3h})><_JWWtu_aO&jhB18)ro!&q-A~G`Z3A!vE|dn*SN& zQVn2L_w+M`bg%mDoHt&J5*h(AyHXHUX$N_`P8xfna@H0-({3RhL&o`$l%TB_PrF~* zpi|(*9+Gpjk-&4dmV?n;Zt3Map3Xn&e7@tQdlpf(=r!lO8v(L9#>m$MXx^6QlFhME zXL!!Hu5r?N>tsfNE<|#*_ev)ejRcx)e1F$y5dfVZqPtq~QQMJ}sp+NbS&9HRcE6_+ z3H4s}?(Gz9oMc1P`ShOWRBxwCa**iI76Gi?(Dl0CdpR4eWg;ZD`u&LWdDR}RyEv)& zj<)i>WLsMVxE&Fs3G>3z+Ua~pSi4^;Sou8;uK<x`tq2f03PzobIDdf} zCK)fu(O&nn)_v4I{=D>@XSX!hE?9HZu1ofRzaJMOfRwAH5Jn+|HYCsS_tIxcuV;rh z4+)XYg4{!+TLdNnyd9?zz zB1T9+pSOxbPj+NYq{`cR4lPPg<0A!Blt;}QTduqFDhhpQ+N)y?0@NkSp-_U zujKZZyGD@9-xlz;Wv9l&ALGjuI9 zT^;8FnqApKa3e~h?=Il`LSq}4=`2uYM+-u$(~3_EKsY9ZuZfkAO^8+yr@ERbCYSDt88JtF>b2zEX)9;Z0O`{(N zK^b&Z<)>S%rx0-p0`!nfs^`oIka1$QW%=8or7`P10yM{aX?M=~GXg|&QpbVK--=Ub z1siBlZH-SyfVVmSWR)JpX~%DLrIR0RU_|lFVoAdrZ1C(ji9i+-L?Qs%Ep(h4RBh8sa&iVf@f>1@LoPT2>pKjw$04WG9`~&J5q~%?Ue~178002ovPDHLkV1n=% Bldu2) diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_43.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_43.png old mode 100755 new mode 100644 index 32d4eb4f1a2867fa0581e96208f223087a910713..95e61d24fd4520d1124dc2663ace989f4e6f40fc GIT binary patch delta 733 zcmV<30wVp^3+V-r7=Hl(0002`twPcO00OW{L_t(|oHdZYiyU&> zDG;}idskn46$~O;131Sp5E=AX0TAj<-+2`dAmSZx29%-#&$OO1Frc6Uhz%GbDKM(Z zn+x{XF)<*b0l3ifxXJ*70wB4~fCzBB3$UR{m0|$(P6kbQp<50VZ32{od;d2w$QTvR zeAW$wWEFY#JAVcS5KmmfOUEsI>#PE3rcfKy-^um>Hfb5$^)Q*@B8MDt&9w}0;c2oy+K z+6MbT0=DRBDJ^Ou=?B9-dwo?Iv^C%xV2h1h(g~p17qEV#j6aw3d%t8c1K48io}{A( z@O};MI`n6fj({NmqCb~(Qg@J_$J!-8RCL%$SJ*;Q8#;Xrr}_;^N&#a0({Cj2fe&eb zEFL|LSmH8Td_{BCH;woq+{L2VL+BM1uhmtW8DB$9aOOP z=w delta 1488 zcmV;>1uy#P1=b6Y7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000GuNkl2Q$R;Rtl1`;-K}rsbSlzAn-eCi+wVlVm(5ewN-bo#> zT+Q>FW>M?-XKNJLS9CzDaMXCGP}%qZ0R#Z}r*MQ}GQGP3s(%?DAcz11r@YfM&gn=c zjY(ab&$ZURKPx@v>)gE@LJ0tHp24@}ddHUxi^-t9Zbdi&0M3x0YArDIvg+4+|1m6v zblo!6KnelIAUn$5_E;|{y`^_KX?(0t8UY3}J+*oi(B6xUt06=LdhhuJ7z24wEfsj8 z68DV9&~wq}eSh~kIv*jx7}SHer2=hnb|ZRGY55odRtjjK$)Rrq<;Bv{&jW7Wj}l-Y zg9H^|@&1+ZqxF&I`U(L6;=T4QQGn9Z+r;6<(9Xv-0s!cY7S-^`hDOhE&+Pr&J9(Cd zR!6u>005b-+78-~l?5&NqKtnE*9kD-SqkmSiGnm{<$v__xvjvAQ5;p2uQ4Je8>fa! z-VacW004R;artp2V`tK((Ee7GBLIN@BMPZVqKM#)0xMaZjw{_Fy?@NXszWG^^*PaV z-hmW0SNcb$6VDt)Zrn)k!WGJr9v|xir!l{Lgi$pUs?iC{it(7cP!)ky zqJlJuTqLl_q2vxZp3bE9K5EIBv0QwN1BwWs5_G7T)J%-VYp4)zc@AIqhUUyxw??O} zWgwosQ(v**96X=1v|_PL?U=J1kKr}?TH#F%Uk z>w=U<(8-zsM*!~p%JZ}l0RPS{_b{mkj-0C$0z`Pi?h9rTijsZG_#SWt>(&=RRPLpIUmZDot5oO2 zzSa0U;PhB_PoYo*kizNh6mi4&mUre-20lN|nIeGX$x;N6&{}&aOLf|Ad7H)fo``4F z#dGhN-^V#96anUEITqh29Hp_iUc@de9)E2GO8}{A&w_>or@<9cr;tIg?FgXlq*-N3 zt=1dh#;#HbTJa!2w1-O}Q+jq41#T9D+E(yeV2%Kus?>w3QDD{q;Qd5s0MN5?dn8$K z!E>7c1J=!_3V6(AM;hN!IHGq@0Tl_sMX3h?ZnITO0&4kFjR*rL31O|ddhh=Upnu&- zI??%x-uJEq%MKrhsMSd8y?5(2V)RCjcT(O;f*I2G?#@bzlleWuVil0FzUSmdkzmNW z)hwD}X@O@n*EBMZ|C1=~HLVf3?+{McG_$^Q*G{VowfCVJ%c|deEb|W{DD09TyJbyb zHXCrAY8ZIUH$PYc>Bo+ z%^j5@BHoK46pjFF3Ro$-qmbtszGpsCo`fg85=kt@b%x$EDO7!c3}|}`mK^@ZC84(c z&D|%>5tWAKH1Jv7m@ogH!|!@4R}+kL(ZwvT0gnA)hy_;TXNOG+8Gmbb>fB7| z3=;fo28|nT!SkXg!~AN=Ij&{tvT7D-=8H=MWD$5PZ(6#4^Utl+MOF7%xf0i%hM=RcD_<@ufzzS|zwYvZ2 qgj?!`>bP11WNdzT#=N0NCHw{G&J$Kp1>jZy0000+ZHQoz z;$gL=rR5;lr;#+Gmi`8d_&|#l|HO6%tCWJ0jF=yhMlyCmAv=K}C6;;#^u))$@aW2(I0C&eSd~*^(Dpy*8^rL+7+kA zM}3Kx%ICm@gRqM(Ys$S7%^9KglaK@Hc^XvxTk6SCk)Ipp>p8>0KO(dZkoB0m25&M( zVIkGI(+eoy3HXkoA0fs}@)@8Ms5{_3z+Hi}+}E?E1{+<03)enaNuZ2XKU}5h}fF!)^ zjD`9Dcq?r1bAAj|##3rc_nWvxoLqNw59@g(u22stR_&00000NkvXXu0mjfklpL3 delta 953 zcmV;q14jIZ1j7fA7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000AZNkl+bA+Lu#zEZ%8nHhKdtWvrV;JIH3U?Wry;2H^sLJS1ae7}xM;+fJePPLBW{H+N!+prp4<*SmsM z1MCcIke5Y1Sc<{3hkgil3eXzD%JX*$;)HSj2z#wF;K@#Lqk~a(Xqx!p{s! zWKtD@9)FR*vPIgGaST0!JKT#F%6*-v03f48-#`SCwr=S2UFighyy_GnxdBR->g;pw zESwh<(PKi`?Ks#AB>xEjGs;PYkQW*uVEbtW!a06g14#PMwfoJW-bkb%J-pg$ltq3w zP!evj(5^`r)bnJBOpqWr@A2(O5u|qmv*g{(V1GiFe7Dc;QG{wOAbN!>TBMk#k0T~Z zdpI{TK-WMO$Wj2OjA>_Nh*s1uevEu?;CEg7rgy!_UK?QST5JQ~4!$P^PUj8xaI>pO z4DSc$xYBh$A(T-I$oZ$H*)S7@Z!31p=tpz|QzkjTe zobyD(k6;nOB?4goL{q3>^@S$)os{dXut;y903c(m8VsaJ4F4sAkN1ihp7Tt^!$9sh zn>&|H{l8zv;+eEgIQs4(FLHv}XSJOqfHLB}Y?%r^X)OLVwg|wo&8)B`&070SROk3L5%iHw9CP3s?T> zWZQ~NE2OWE}x%c}%IOjV@=^4~Khgy7&A%a#)DSs8?hm_KvA%u`pk1SKO z)2SseMapD8OQ-rq>`MRl9mKMcPO3nz*E~)q;BsUz{tpG0Rn4Q6`opJ%W!>0M#nX_9 z_*!1;#>3R940UfZQ)Z8b7IDBO_4_e)hb>&_@fVLpUCyy{ksm$H#S-V$F8y2h2qBi3 zbw=uC{32OCE#Ta6j*Tx+`&S2_On9W!1->WI@gr~kSo^obvIIM2Ibcf2%rn61*U>8qTI zXo7uq!y5KRy|mQ6G&hzUaIb&nld#@qp4dF*ffwc`Hit_VEBrmU@ajuCL&++*a_u@; zlTAbVaDS@|h2eFCjf&si5-qlF*NbQZZY&ki5{Kh?{Jbs;yHaY8Bxeh`s#REx-r&>a zqrGA=tf7qck}qx^Y=(B4LnG_s+RokXE03+C>&jrGLaT??Ez|LvJG|eue;qQI+^9xT zXl<8M<6IPIr&Ua@j2J1UTT@d}*vuH-m%9ge<{;+6smB;m6;6tT{{ZyP^xE#ih64Zq N002ovPDHLkV1jbpRIva6 delta 1390 zcmV-!1(Eu*1@#J$7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000FiNkl=v_*L9UI-h+R%m*-3T zyK&cAf3)F?_u*MR0Sk6j)RV1fSOHd%vXjs=WiVr1aK3H@uzxN(dttj;gDBd%W+=jS zT|Nb{2)`}lQwbY|TI&!cz&zZg{3U4wL9O2}`TL z3&<^WEkn}4H|_omKRsGj9QmaX3NR}8$i@kC)I!=Yk<6e+ekp_kw8>}&^G5hPkT*-w z@i>ujE%#zhxPSX@+^F3skqRSx%Yt?wzm&Q2z_J`=@*5vo@=F00fHFfIxu4+UXS=#= zOQ3`axt?(o(13wD<+5qJDU6mESm(M zv*5p(;ABK*0aAsJ+Obi113)kN(ZEhKE_{8}&X+j)WdR_r>k^~rOhteeK!X{@6b{;T zYb&eSpnt3kB`?)!U{48FA%pyA&M#Sltkl+;g;;nw>RrK6^aPom>Sd<3xX<3})_HYZ zz^?E_{Lp2=>kZJIS#}WT3bImL4XlT9uGGZb%&&jsMItwCNXH2GWw50BT{z+JD!=`LYeAt)2Qh@Yw`a#hV!5n0cJHGlY& z9GBbCoXO{QcVq|ey!*9P(_dc~Z#91_LGA9|V=2E$n?e5QQZl8~cx(<^)Bz%({Ji7_ zAUx}ckUv9i*wXdJ+@cN;g;oh#n+Uw*Q_rK&1j}$PWSdfodp4Z;h1aBsWrB6v~X=eqkoMF@Yqtn+VQFTu#8qz6MH<73NYKhTTGd@FG}mZ zyVpyWRtaYUkI#NTz)U5eb_jeOutB5LBh$1< z-=p|>C^M%GT(Yc$CUE5DU;(#=U5hy!GUrVGZeXwT5&3LJVJ2hj)8KK7@Mp}Ul$U)$ z1chBJfM-KdR@=Ikuma2u7_*U?W6wg*YFib-{i|V=+13gpyEyX(XywJ7d2pEayMfvF wzXcgJh#o%TEZ_@2-0umLuuE`tGG@r{57;|!ktiAOcK`qY07*qoM6N<$g2uL($N&HU diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_46.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_46.png old mode 100755 new mode 100644 index cfc81bd3f34bd989da1573353a3ba25cb5d3e227..b19f70c54d4db1921b85af1227b14367b39fda14 GIT binary patch delta 576 zcmV-G0>Ay$2+ahL7=Hl(0002`twPcO00I} zTdI$&ISCBN`j^%ij1|h|y(BOu?=Q>>fKn#gq*_=qlduSipi~Ays&k7icZDll;o!P= zrzPZ31;S(1G=XeT0nSiTNJkZz4NwpGxB?)~--g7*#Khv8C^!CmIG3`*CWM;7+_VBP z)V%wH16^px;eXYhx4$EZpufoE^yKI1#aA}B!wUys52sw@VKNyET~i^41h&+5O7@=6 zdc%N7YKKgR=_~=LQsj6&8v(evaybGUW%Z?zXe6vveYR6 O0000(+4<0YNbOE}h8=Q63_q+r46pF@zAV>k0?^;E(q39OC!J z9b^1>!@+)dtUEw~S4UkriViz~6)B#KE@^`qSX8bKO+(v2C@SY9~nBucq(LA0EQqi=5kh zX;Ik*?lk)))@f~9wa5>l;s9F7hcvwO5hAbG$2{YQ^o;BbAo4?~I6&$Q=4IRrf5xoA z8sDpYO9pGZQh$F-?kO83!QRXAwv>>MX=`nKYk4kOdZGS2d81N6%Lz2scx&TZ%VR*9 zY&|@wVN2=EoWR=n*76dda@E}hl%ZY=*2cG%r$CYiav?|q*2cG%w?d5ZzZ7f*YvX&D z=eF%3_3MU|Yexs~#x4f@j_GrJfX~wyq<9q`MrP=l)5Opdne*Kp) ztE1mhMaP7KWtzOWp=*?fa$j5Q?mp6KLdAT8`?b4q!DC zDSx{jiq2I)c7Qk50WgO^)?=04K_s9HK{dR|308!}@`Wx0X#>0OULm|vY6#ZjaZw1O z?3-)Pscj_A5h%|vpN(K-d2mw*I*2R>0={(!hT zw}KZ2<-S782~Hhg5pWa8oTu7yfOY`NeSZM1zEby2@|wFZh^MLpSkLU$$di`WL>UFD zIe=wx!rJ)O@>*#1>k|R2i$R$8dM8hld@X*S-q)d^mr8oGwehXxDUdwEuKsQyq+H`Z zfVJ_h<+-3ng~VI#K<4)Wtc|ZNk8Q(ol3LWJMuuSr7>Nd6j6Wi8k<>v^o9YPcUqub8 zot|NhLAkew(X|7xgyvjeWTyRYptSrh7_9*I?DqrjRdkUH S4!*+x0000+)LP_mLj!DcT=vUl0+SnS?q zH}kLFyqS6PfAb#_S{87{0=*J}0$LWXqF4kF0xPOM{_8xwsb(L-OvqSpgvB<~FGo=4ax9A}F+^7o@;1F#1Z&hpTYdVRO7kb{RUb*++} z$28tBAd=c4lYTn$09A?{t!D!OH&-qOV1ullRIb=oT_XZ?q7VbvpUgZEL+5?AcxUaP zM7tlGjm*(}L!(Q_7`FrLUK<_TyJ+Gq#`S@3cW)lc!++n=UIF?j1~^$#P!0k9*@CjN z0z-21gfOXPIR*}sS)FoP^N~Nv6jB}1(CHBL#bHCI4usCzd(UfG zzJ3+lhdj=HZWsn^eqLWyNW?@C%#z{?dKx^k@wao=ka=GLN{0EY-{_{^@ Rb)x_P002ovPDHLkV1oHd2%!J~ delta 1104 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 diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_5.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_5.png old mode 100755 new mode 100644 index cb62bb7b35561bb23a3edcffbcd502dc0d23d350..7c0c0539d4ecc1f857107265980c08c4e706619d GIT binary patch delta 801 zcmV++1K#|K4Xg%`7=Hl(0002`twPcO00Q$#L_t(|oIR64Xk2v=#(y*KpX{^7?u%H- zAtwJ4Q>qt3MJ-6pOX{JbhZby9^st3iK|I)#hgkDAV5x%WSrk`@2n8kJMKIV`rKO^n zMLmSju1}KM*rxbeYLbTCHy$?IIsW)&hWYpgkVZTI`mtp;-nz01oFMk0Mv$(N!U*TMn8Ef2 zkqSX$FH*VRu4x2$VNm>maWlzv1)Mrq-UPz*qK-hT=-EnDRNw2;mC3FjinI-U{SjC1 zdzT&8psxi;Inx77CD(zV^DF}mpk%i2BUD}<%zt$W25kdY-b6TeDRR4{oxyYgSU>-y zdv0rE63`>Z-+oAz?~dSh2tjM#@a1=Y=hr7JgY(eMrK4WGZvRRA^8i#Mu$r#&3%mIg z&}QN75O=D3|6fNEP&2EVnc3g+r_H&;3XHcU!P9gP999txt0E#vc#_FSzj0vgci4=l f4;p^(`F;NbvPw7qls{BR00000NkvXXu0mjfvTlN{ delta 1669 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 delta 1242 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 diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_52.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_52.png old mode 100755 new mode 100644 index f7da1b587590cea578793c35e68f8d87d9b2287a..043481281a24ca2a2db9e7e313099142ccba1f22 GIT binary patch delta 796 zcmV+%1LORj45tQ=7=Hl(0002`twPcO00QnwL_t(|oK2F?Yg}a%hM(`7uk$0FBonpT zMWGj0u@Rh&7-(f~Nh@vyL9TY;B7cBND5#4nbIGO!!DQn`7eW_WGA_DsArX=rqBx7R z2`(g{CKpmLgh+0f#7w+*?&~5M%)2@~yyu*k!@*F;Z-h&2B7X?M0uUGc1%RjzxNbf> zDNaH1p1B+WaUb+%T{3yb;T`#@mjJa>5EZx*b^9$5@GtcUpbWM+RfZa$#J!Ul&aT&} zkyJt=H~?GDVB2HH|38N#_gS6Hfiwbdy2>yNhXtTo$AU$$9|9EDvC!oo00&&iu!%J| zlY>I=@}ecm!hfd*3lU`?qinm5`Y-o2#Sq}DZu8N6OXj?ZVB)LX5)%tTGks!kjJJ0I-MQC;IKxtI??awRocK5er{>+uMtyD zpb)~2g+IZAZKwj@Tj-qLn<><6TTs0m!!r~@Qh6455f9)R6c0lSY-5%gC`Hiz^7KCn zpL4x??DaZNu)rv=2alf|{a6FwIY}Ew8fWGWu$Yk>_h7^I9*~Su0|ve`(x+(}F+Tq~ zxEsMOntxfE9>tVy;)9)gXl6QprF#hj^Y<%e#QEpH-Pu@s_n=ZPb%R~EcO`gsaq#^K zaCBO4=k8{$HRhSS*YdJ$ls+Oi_5r^s1Xa3A{v2>22#_SDIW#5r1?F!6avOWCFTzlFV;3;89Q~A>`=({zdR|$F;2m}I#(pZPu~OJtHY*_k3lBBy5Ql}$rsV~ySy`IhpX)`|y a{uKiZ42an6)Zmo>0000bNZ-1c;kDxyBgxP;lS(xUNfk{cY?R z10Ek;=bRK#QwhX;k5&EP>7@VOrT&!S|}< zkSD$s_+kJ%lObz!Gm4Vxd}Pgk1ubRZtiovcsW_#G+m5WUI~kP1aa!Kv|GNN9(3$UN z7^>PBNiV-7G(Cji9QNTa7n2bEr(UQZ_30@_#-+mC{dE)DHL0m9Oy;4No5r z5Q(?dmna=h%NoP!TQcYj z12feY5`QAa5HPEFWR7GU+IY+5MU5*GA0_&yC8x8-XXXGMZBt5{3s*CSXuR`Ihi3#5 zZ>K5VLPS?fu7fj|FBKOq)?74^vThz%+$2U4K6=%S&VdbJbyKIR-I~2Y^e(@4Rs)r5 z!=1p24EVIm7bz6*Ub|Jb&^fF5^v0rq41g~_Q-2C}Y@%viy1qmM8P^4B1Xg7gm78k- zn)0JUjmD-`u=e8R5G%oRBE&Nx2ww)Ra(C5;w687fQat*76ia>i`>}69mAKj1+Y*`MV-5*qKbXCW#^I~U={fej0V>Bdz zGd=vj62;$6W&-8mKIe8L9 znkZHxa{41z*0gG%-(`5CbTqzZs}r#aHj0x#$=zq&R@I$>*ZqsU)81E>jn=&jU4LKl zB2gnze-pYs!iRdQw&jJ~UYrR?Xu^u0w-8<+L~5v6C9kK8YCc#219WDJM% znt>-j%7^sH>1gyne;>pEDo^^1@{vXdA6KDxIzDRvoW~5J8r~Wba65l=z`*B65dwfYUs{N`J*yC3+d2 zXFLHy6XB)R14KMRmzzhDP|rw1S#`ksQLkaW_x5sx2k;<`n^8J?dJw~__B0uqk_U-+ zC)Crn<^bNJR$TRf&gJ7IA@bN=?dhc4z=P)vw7q7Gp~M5s06qB`4}r|-IQ1SsXb40N zLGq^2Tx*OmuKT|4>XVK>dw(0%HksWlI;I1bAs`7cM?^nUIl!A>o&Kmx?t&JQs^&$# zrs)AFQO{MMB3R9Z?&eQJmd}XHEzfY>jLKU*fOf*)x(|xZJ$*BPs)ZsYOa&w>?_6&s zI=z``04aiw;5!vF(^vRcAsRq52Z)Y~j{QL&$~-`}`}Jc4d+{GRNfOEa?LrDr00000 LNkvXXu0mjfMIq_) diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_53.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_53.png old mode 100755 new mode 100644 index d8e390bb59c7b6d61805410e5e8f5eb5c5c3f91e..cb8d0f15f8e1fc2e7c0bc1761ad256e3731e9a75 GIT binary patch delta 790 zcmV+x1L^$3450>)7=Hl(0002`twPcO00QVqL_t(|oIR0GXk29!#ed)TUS=jSf8J;+ zE((3!l^{5xivgqa2LIqv#1{ocgKLFo6$KmfbfJP`x_415F6>043&A3qyb{qYY7Gb? zSoH~|hSHiBY%^~A9|B=>2;?uBBPm3ehQQ#YpU>}cEkM|f`eBYqCij8VV5Sr+xMFV^xlRAHEJ15<0bSJTHtO%fLZwWX5s_KFzfBH zY6|DBV}TU!W7V(2wqfIP_jnKhV_!@9v#Tb{7as@zk@(s7rEmLX#?rk+ zU^`zJX@9ZbPiS5}Jxcx13(v4r_WRw0s-BAc?U^TaCg|RnE+Xz&nREW5!6(y|7cXr- zN66qOod4bD?5<6`{4fOkk^+a~IBjWNgKpWHl4Lq&X-)}fv^f9RXJBHZ6#u%m43?)_H|CQ4p6P4@wehb-lq$y3lV2pii3`D!uTK8gb-}kz%i~IT4yK61; z``&)Ge2hqcTEA1{j_6j6&-NY;0VdEkE_UFQ;U#RHy2u6bdVd0F4x2Dy6*yfx$M6~g zT-U`;0~9<)gYUq8CP^a^xidR`luCODm>AnoT4uoSK*xItmw_jXRqOOB0#HVR&hkbs zG$v(OEVl!esK!~TQlHmM0T^5nXMtx$aZ+*Efnzd&mDM=nwN%f^fLCu6R>4cEjx2Bl z0lW^(L_H)S%yWQDk_Z5|w)h}}RRMGERN(O+=pekoBqN2buD}Pg+R5)h(sL;+vdAJ6IHx+Ifng>VgT&dW!jCX0U2l?Ibd=~%QS8vUUF&k zHa2YaQnwnGu}ClxprhEKoXU~GJKt&1p^c|wk7E)ZdySk1Mh;&p4qUYKXOS&!Aa#E& zm z_x20>r({^(>qd3(jP3(eJGKH6skItn65j6ytnJ(c=-#XEB8gS!r?;0etol%!X4E}K zC)TC#n33W#jaRu+L=nzN+8)1n+=DoFMiQ#F8gG)%p>?<jcj~xxo$-ygH@A7ihgZlNRo-$M>C4GsKb3&3q6q(%kWjOBs6lx1AmeF z$bxgG#5TGK`F`~}rjAKP6!oB3E-Z}IZi%~MHg}w=- z=5#E?64`joA9X%ljzO6c;O-aYs7yV=wXK@6@bc4g)%-!-{}|JsXYn~5Gme|9@H5R2 z9HjKfwbd$X>iuZu$bibEUHAL?Nq;FGo!d2LS`6TMha-dbTNkWF8E&(Yv3vAN)&P}P zI5?{zBEa%1%I~MX3eQwj&wfzw>>FW&sZ{ z3Anzq_aB+Lek-b_f67>IbUcLQ-0Q0O-^Qids_K3u17zk>*w60k2~avvV}IbDc`-H4 zR0h!Isw`k6?SE6)eN#GM;^PRz$kq%{zVvS78qNS#XGbysCRit`3Ox(yy_ujYh+1j@ zsnDZp1dF0L+A4q}nTqVKC(bmUNa`$jGZEfe15iq0w(V!y+!%>C3oKDtnQ5vsL3b7m z?E`!_b~+Ug+%q_9+b7a2rGJB$1X56O?`eLqT-6NF0c+$(GK6L{_+DppdF4yQrLro1 z9>r%g(jmNq}RLT(7jao|?V6r;TK+|)2l_5FJLWIsb z<`)4t!Q9^`!cvV-j=@?$OXwnj_)+M|PPXES`Jd83>eISZ?g06}gf~&^`tLd8@aR7k wnv=6Ojgp8Y09FQXmYfc$$ULDilzyMa7kaN-XPC_c8vpufW0RR91 diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_54.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_54.png old mode 100755 new mode 100644 index 8dfe5defe07510256ba1b870a23f9b915aa25664..66179fcd1a6641ee8e24659a89eb90444c842cd4 GIT binary patch delta 818 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 diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_6.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_6.png old mode 100755 new mode 100644 index 2d111a7a17b8286c98a599df7dd949a088b48617..15034fad322eb919e0a1b653455813c648e7d8de GIT binary patch delta 801 zcmV++1K#|T4Xg%`7=Hl(0002`twPcO00Q$#L_t(|oIR6IXdHDE$3O4=er89F?nFrO z5Sx*3Ui;F~%;z7}iw%DoQA}S;Y z!O+HaLW9}15oc?Rn{;=cht2kT{P2D6@%{l)PjQ1WlKVR(QGdF64xs3~Inx7kG35xL z2VO>H!9e^r_;ghXp}3vnX`T!L=sC`zU^b0{65&ts9hA*Fm|5M-U@{u(f%$1GKp#wd zAOT=u?I`Mok{f%4QwCY{exJD*&1z&d)c)2?L03YSu9ysvsxB*HAFcToeDWL0cNhBfqIiw1(=K=({)h}M3kc(!f z0QX>VsazrMjc{))>1K7_L`2wg0U@MRy)TEKB=Lar>#mZyfH>7efp)9isZu}$qWusC zQqI_F0S*lyZ&@>9AV=OnwGZOEh>0p0z0IXNl9Yi1F@NBOJdpU0qSZda+)nS_?|}p; z@xbVh*gG%kO+j9N|)hk

Z4<4C|ssqBc_s`2l?a=7#di|~6 zMrQYY-2OH9@n`22UyvyZ&cEbZ3!z`&dED8GYmp((JoT^!i0I>o$@wq$Uq?e4Vs>lr zFt9cOX@A={Ao1_rULxISv6R8iI-t0veyHrQ8`|KASA~@=;AWER7@v2F{_U#@(j}iZrsex0?SgRO z32Jp11h?p*66eF*TYnV=cg4Z+Wit)=fTCpWPJaqA4tf=atp$zO5Iq(({fKmLFkJ-y z&F|hnyInDH^z%<`pRC*+!e#)jv;Wb#@e#c~#j*r7a8$W<<}sFlBh;X8=C6~1M!Lo? zjB*yxb`jW@+*aSg<>MKsna!A)*`M-NklTWl%(*n?U zwD46HAQ}Tmw32y0HKwre6$-!w&!0uGL*Ul*4BxJ=BPvgbSR7420&x#OFT%gv@ygpEXAYJk`gW1*oo%XMfOGw7U+SBsY*fwIml<*Md*np!B;i|iiSa)4dAS121St6{$*iK| zWFTq*E6V3uoWWfXk4+|s;9*OQWaCOQse%n0GWl1 z=zp$_9-r=bb}S8I2RX~~b%s)s?d$x-Gb?cV2T`wF;XSY>O8eg)EQU&%h` zSUGL#^i1<-!{y|iFl zYDX;3mct-q0nqerv{hID39B1}D*_!43EBpo^mk4_`}+W$f6MO!c;>JodMP{bjvobA zNH3(Fi;U%=L%``uvw)ScksP>^SARNR#hj?+;%-Fi7gfyCEPx|o39PotoiF)bB;Q_{ z!=lp)P6JY*NpoLxtduOkn~$UUu+>%}d^Ad*@mB>Y==CU(#B<770B0r=`D-*3tA6;? zfdqgOsPMTWr2J0cY>ZhtBE6Ut`F^Y5TfO!6_?VjLnq>7-{ZauSb`-dSBAl0XpF*$ane{`kQ82z6G9&4O0{ z*OUM$m|1wyL1@tRuLyUBXn&j%Mbwha1V1Y^^Vn?M-+n5Vcjn4*f?|API+(F;+!CPU z^FCC*w=__)2IGEJ2`U69El73X<{5uh!}o%p4bbOwPDxoLzSS&1@ywAx;FE`IoMbeG>L*!uNuj-s%DyACoGo zCH(8UYCj1>{n+UNpGRP#pEY*lDqogxr7Q1OY5{g={%&aL@{FF-M$D%PDHLkV1j)eIC=m8 diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_7.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_7.png old mode 100755 new mode 100644 index 4c8a9d2e5d6dc050b1e7f33372a813743c131146..d5d30c8ed9f5aaca632751645fa0410f9783826c GIT binary patch delta 788 zcmV+v1MB>Z4W9;(7=Hl(0002`twPcO00QPoL_t(|oIR7xYaDeL$3M?A{hT=5Cq$khXJF9QmEodtadg^)PKN};!^5mFM?i6oghS|p$+0; z32{56smURs)0n2)xVw*s-Ocy-;d$ZtKF~S-U8@#=W0W6DWc>6 zhTse;%Ld{Pzz^$62)+Fpuk%U>z%ZhLg4qQW6o)^{6)2f?F|(GLLDiLq;Q9sYfj*fI zK>|SaP+l_Y`T~q^06lU5HaR9jkN(F2!iq9YIn zVvfBwfcOCeAI5UP>uCX^hly};hJ1o5kUpNIj8&rjy?-SBw{E>an1lC(4scRmBkiJg4gsQ zcBMOdf^*4jzyokM%S^R^qFM7-h%07#3l3TvHh(@qP|#<@GJv!RjJvyhbfbTTcpQjb z2mLSv9*6*C?k{>=d&x3bgaUuZ!OEk;lmgX$i1%uDbn29fXiyUoNrHL2BR?xx{~h+CFPZ%2;{U!OI)F1X StPREh00003+p^m#424Yo|Cc!rr|c@S?npp))=bB>4MIjjH)z^hYoirmjK8FN?;rR0S?|4M zY)E&E@iQiM%?AEn%#YMhYG>u!GPf_4n_qx2#$&Rogq{Ivv42qSrFItKk1^VNjn#hx zoE3og8NjqKT}h~?@D&O`xuR8}TWC-&&x%Ud)Y@PEzrqFd-hU<%PU>zqu+sv-Zwh~$p_^;LgS_3gawGb;O zD9YoFLfgqx@BM!T@CZC3BEAKcE0?mYUP%0DTf$aX+ElX-zt0yq*W$u`C9kvPr_6OxLx?GIeG+E_hGFVo|@l>0$8^Zy|~o`PDp~{Hj}7R zMqXG>_f+CT0dQKQ9ZRaf$&^Y9s9NK{o0}`kp^>XBz)55r)|4jHv;S}D2YFl(;z{>< zg#zG7#D9C;k)qU!6|n|_%TX?v^Egn4*Mx{v7W|3v3%qk{4^a<}JXa^{8gpYZG zikvB2ZCt6J*6xS`NV%~k?$Fvm0ayj%-TUB7e#D$heX8BV5f>0W#^h;}JX#eW#%=>jTEPUh!LyLb z7{D4dc^UGw&9nroG%WK`A$(5BGHM62@0K9YS~7)gJ&}Lbt!AXPN68^FaV_#WP4z8?yZ z8GkiLS8a6rbk{DQ0KD}I zE!K$kmuS7TKxYNf3RmPEHigpFB1j0UMWlSLr@b`3FM zTtA#WXjd!$p8Wyb9{S)_!0+b#Ied@*aDQ}O7VVKto%PD4ckns2N-g~`PZ_W(3g;g2 zbNFpuJ}m(zr5NxJrKr7wABczse$f>d^_|goRz&AuX9~z=Ngiu8QCbSN`anwn=AjqG ziULvQo^l5(w4snG^Uj%n9MnUQn?YIdrc++4;eB5X$=q`7J+viPU|k%TzYhh-%76c@ zjBzV}3)@hEA8faK^=BwSW)^_6qg7fHTQ-BF z{1^+L%N{)RGqEZ_tO$@^gsv1kpY;N+l26n3Uit%Y#;)`aj&*|~U_?sh z807B*M2TtG897HF6<8`1Va3X2&E-cH;7xIE7pN7{fOR)0CG-}lFz;{J5e8kqMYtMP zQrHM0mP9I)X+<{;kDrR2M1Q5o{4{R##~N1WjVqbM_jo)@9Q8;8DQhtASCybbaMX&b z4%|HSwG7Dv$`aslU|Wh;e9vY9R4tr)w+d}v;AU7;H1Fc!l+2TAW8Ns5k1W7D`I?4# z>3CNORg^hVsKL-Gb6Q_1==9W8q(wc(cou?IgQ6XK36}o51n*rmyMGl@s~&FoKZC4Q ztlNQW>Kv#b+M}e_aV+D*d+K`RNEr9*Hvzh!NP&&p1DSL&4Q%SUeHDBy{V!uU!DqOQ zo$x3tB^YTndik)fZ0?Htm0E!6(((y#>9W=yxAmrlP-s+2E(sf6A-&dG`wwPu^fp9S S=iUGS002ovPDHLkU;%>Hxg28v diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_8.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_8.png old mode 100755 new mode 100644 index aa0d1e6a77a0c418968ce80c94524774da64403d..dab8497c8f49ad2185a5c2b9066633127b1241a9 GIT binary patch delta 788 zcmV+v1MB>d4W9;(7=Hl(0002`twPcO00QPoL_t(|oIR33XdHDE#((e4Kf6O&orze; zAtobjB`88@KzgZ}Y+FdhgMt(V4_k-|#f#pg)XY{}^(tCKDlQTcdQs@bL$Ol@i&SV1 zK|(3(ga#XHN~bZJHSEmuFxkH2kN4ik_udCcH^ti>Be@%rM1QI3MS!w6-5!92m>>ce zfD@=J8i?BgU*A?jC?D)N%CjK=gN_R*n9ZZ0M7TMAfWWN4%(`X<&1iA}uFqQu`gl43 z2>{JKd0flo)X3?7>R zyivD-JoQP)mMi<%sl5mFAME1cJcs%Xun)(ygFH9qKe-TfhK0-f>pF@3_VMS(Ubgu+ zQf@_#XSx?o*Zk01X6A0I5nOeP90Ph@j|^T|dd2w&UW31LwsQK5p@x|C^Bh>8=GvFv zyERDMd4Fz=VykRMqnbl<{_fB6mcAX4T>yhOyUFME$miNaCM`sf!9$C1pGQfL-Ul`XA=?Id5jD Sp$#?w0000iqQLS*VlEueCFR> z*Htn$?YH;-Gp6*K4gS1b9_v1<9V$06w+~mEe*nGrx5=tfdVdC_#Ufp|+9AsCy|?F@ zsGkAN3((IQ;C=CaEv4RtuP^{96s;;9=|c*6C@Mo!Yrpb;MF_aA>t`bAr0xy_J3Rn> zMhjo%0cJUX)K+rur*aAlUts`T@%+0P>`=JX|G0*^aMXbi>A2P`_;zWuutopI zffDIVKz|0wyED8VaUOt9GF^qMg_hZ4RVd-3WAOJ{Ki)XIajOTAR*$t=G#g_x+Dbc_ zTqes~tU%jX^5$cBFblUBfaNw3-hmhbcjK7_E-P-&7-{4luK*Oq_7LC+jyzOWn^{zl zHiUpy;Kc(}SFI4&61M z^xkC-khNlHf8*6Nf|(RBtFmWZtJ);1K*W=8A%VQwB^d!1IzsreCSPLP$d263qF7et zaNJvN08;5xG6KyrpoWm`v8vhpDJVApsl4pf(XCp5H%OuQ=Z&{2^UCgBW{RlwC4~X*Y3X&Vr2XI>kIpg*4N^UxmwLT$Aob^sR{I2!4b9zyC98OxJ_-s=^okol2ZZlt|7wwE$X zhG-F2+V(*&WLvGY(z)Wj6j93(yzIeyMStb@3`3fHetmUby?7oC*)KA;_V-L6k0I83 zE*SDE3E^4k%zfxYXwRaJ>-D9{YK@^S3Pf&Xh4ZncHsZ1H2xeEDx3aRYp_u8zGV}}} zc|T$pl1@rX!Lu>&t}I|hfs(tI!a)YKG&vHk23~dpt2jXP`iWTp0?JPi&VkBnrGLzP zT&oYMpSLtHdlF|>E&5&LIs&OsG6RkLc?=!tbI8eo&JXtl5Bks*xhuMAHP?v}q}_(= zfv&ijzR>$-LW{`(Du6x+Z9Bt^E3mpSxFOK~EUqIJma=%nOBS#rZbozO*?TH6n<5TG zi%(WRRDnpUY00wnKuDx-q-~|F1AjbbXEJ#!XQxFTYAl-J@Qg!xKR~^TcqFU}*{iy8 z<@3I&AylSwd_2@spfd4xO+Yct%Ga zp0qQm2K}!is?1g8Bc8-_`F~oaFS6${@b*)&e2|LGh*g|I%pzFbP~!9Nc>%Mb^pEh*Pn|04}T0&97bHQR_@k9 z%IvC+V9Wm*gj(e3u#`n1k?5In`K-dZL293SSAHNO8yN+QPXl+&{946$1Dr5wpRenx zJrZWcF^ba(UqoSIoK;p|)^lqlT6*Q}OFh62%ij$xUH01ZwzC-lC(GK(*4puY{s6at W;{WA~lS%*p002ovP6b4+LSTXb6DRcm diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_9.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_9.png old mode 100755 new mode 100644 index 9f2d03b7ef748fffe01b04df3165b52b1881f3f6..e445ae752b7557a266e14969d6c4d07634e40a40 GIT binary patch delta 786 zcmV+t1MU3v44np$7=Hl(0002`twPcO00QJmL_t(|oIR6IXdHDE$3O4QFUd5f-HA}i zp*Fu#)Kn0cTD?f^Wa}Z~Nzi)fVGgYa5v+JLnn{sVZ(j6Nbt&;uXf1g0Q0hb>{;8NC z9zrPF2`NpGlulxsY{Kq551Z{fet7@C?*Y=t2=>QF;d&%hI)C;CK-oS&*#*-v6%Wt_ z@1inqAZ{0Yx1vN)KFaYLuS5WJJuahQHi3fTac8&z6|**G)-W@u`Dz!;O;`zfDC>e0 zfZE}rV%By746Ons1psTjw_E6NUNLL)4$_ILoy;p{ZC$i-M#M^hb&4`4s4ANuY3oQa6=)OCbw`&R0Y7w|_%hM<3X!{uq4LKt4jX7vlb_F+R!ZDwjQRI%9CO(|?5n(w-mvN-t4iAKNz$NXftG z940k7$Hht0;iA6Fl$- z+$yB*B7e&Vuse_)(gMci#sQ_ab zu@5z3yeJLIe=u(4=qfmMaAybj{<%-I%BSseVE3vv(n2%FtybLyVRnnz2JDAmA%MhJ z?&}!ur}uyWz%Nxf*Z}&>7Jh+b)J&IQ*qX3<4u3&GpBBpjvIStsuk+#U&J_}{H}Ng> zg9z9b0jg}xzO4U_u_WOv1k_m{Kcf477yl*zlM!~|m|Nq|V?*IS* delta 1648 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 Gzx+Q_EN*xJ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_1.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_1.png index dedff602416aedff47635b5ad14871cab7575e36..2c4b1023436e32ba8e23d8056679e12bc5531445 100644 GIT binary patch delta 648 zcmV;30(bqS4U`3t7=Hl(0000d)~pTy00LV{L_t(|oK=y}OH^SLhM(`7Yom}qASesV zOSGtwg=31+EZrZeI{)?cD`HD!Wh!!ncr3=^5BFH2gM^44Mw!lsR5KiJ62RL{#2!Yx?=H+1A6hpJqOq$-4I)cH&E<% z%wQQH0KmAC1Alltta4r1BvD(H`a;FxGjJ3SL)>)m-L{~snf$=GM%Doy0okdj`U?MT z9>9(Ot)XWy9s-=_opg{+?a5%D z)M5dX_nCmwB9Vb7QYtCRtp!HqR5s%Ps6(zuXq+_x2ABiJ0POe-fXYEi(g~e_l$vAF zJG^oZjC-9rKHO!Iz~dws6UEn82Hyj)QOikEP5m3&sZ_S~yZ~6w`GXz(4UI}te{_5A zOCs&s6@Oj=$)y48*8}h@Tm<%)pNC|IpvOWt@J(-ECV~v3N+k8AlZ9$0bX1Ad=!+v& z3zEcDB~skiY$}pEuT(&0e`kmNj!S@f1Z%Ui9a*@icr2%1XNI*ZN%Fui11IGG literal 1700 zcmaJ?Yfuwc6y6XJ1#!etB+B5rFg`kNvb)KWWKHCe1kFH@hB%;A>n7QR6!Yk2g#=`b z)-u9?fP=+4R7HHXwkV?&)T*&ywboJ}?NlrxRkYNKT3bMKID%-LopQbYM({zUX9D~#d#V-P7E`l{+r5F-)S=ZW}gi8*M*d^G#Pb`4I z5fvs!4vmt^(xih5J57ONJ_;KU1OdfTz8*12^pq4?0AdJ+3Q$ad;xL917*3!#IQBrS zKiX&_w94c$Z|q49WiyO}5D4<}^7wf|zMVD;P^nZZKrjJ@!K?=CblVux1>2l4ehW&< zX`n3*#$vaDK8vK@zK)SYEZ5N>tPYLlm0_E6ELCjM1TNAcK>3KkYV}1nqU~g~)PFSI zsO{9b9h5*zIqmCc16vVOj33Nq@Bbb76j?UJQrg0ng3drA@+uEv=|AA z2sao-aR^MAgc4XJ5}ROBZ<4}sdZQE|@9lOb&e%J194`X0lI{ufIqXo_U)w9al{>+gf~Y&&CjX4@SgCgfw_ zJPm2E*nE=tzAB9dt)ys6E@e!n?N)Fk&4lF*6yh*3MTsR67&VH7uqaL>f~8W7goTJ6 z$MvX)m5QJ-yz#a4jW#MPVZ(6v*$_fpC^X@y5Ee^BVi-k5CRj>R2#kx2VpM7}8F7gL z60j5nzRr2All&sKJ$>6(lffQd%@$>22a0AVXSO^3EIW1M(o=ORb{!rb-ru(SHUI?F zsg;R3*R7Tv#kK%+qVnSK@Qq~`ih9v|lF%uKR6U#SPB*U)I7=TLvZl7n83x8?peLXS7P>oQ2lr``VdY!hw>HlQemJ%~>aZ-Wr1Hz?rbjzd&mAdA zEjbhOd|#9qXe&Kw{e1KJl}l%Ao9$gu#RVgd>!KRq$mSxWA-+%rFq)qFxjJAG_k3pm zyCALmhPmjIg_)}c_#V6Gq4MnB2=l4~w|N6ofonkt^Ou*+o6MPbQM&&U!Zj9OI+@?w=UTHXJK^S? zfWHIj73Hf!^szOZtb)3hTeXh>bCh}(RHU_R>>ZDvTHk);BoTc%+*7+ayL}24F{e+_ z$g8e__SKYPig=Ezu_NZMKV#|Uq~J)bqgq*-s3aN&erefO+xHXiO2<~v)U@|Z1=RR* z!W|^{LHGw#o+qet11oF|34>J+`re)ttnj?kzeST6{!FrS;ES62*6@Uh`)*Wz%Dr0n z5O${z@0NN!2in59Gn4MeR4)vkQ~}Vv;*Br9uH?>%UX%A**sQHldw?x---`|DkCJ+a b0waM78B>4O7C#yE{WsLAG-Z9#noa)#m>PJ? diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_10.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_10.png index 1a53ab75d5114b56cfad205e3bca9502735a84b2..02a91f9baa8f0fba3947bdc37c4934ba86718c3c 100644 GIT binary patch delta 599 zcmV-d0;v7y4CDlm7=Hl(0000d)~pTy00JvXL_t(|oK2IzYZOrwg}?W9vRT2nD~d#j zWVEr>w9%c-j&f?_kVnVhEF^BG-*M%0SNDo zIKTn~fLtYZfCt+e24uVx07o@L%F`&YsMwRgZd|DA2F8TF95)z zK5q8(V^?8atMlFX15oU1K~Jb^n7hWg3kA%CB`EJN}PN7@c4% zcwT@Crpfy^hmsx5|IYLd>4nrAmxW67lfriMB_X{+y5Mo=t`0LYt7JVC8*k)kOni=~)X zeegM!R8W<&fkij&01=ctY5*&fZ_QxqYfuwc6uu-V%A zWND_f=p>r}fV9G4$riFrv$ZzfDWm;5GOyDmq5()q^tx!ZZ@kd!(uC2Y9kpqaVC`D)rtn3tUyCvXCdd&dUf!iU9GtHi%}RF zR1ucy;2~1kCNpH<-7KV*;fM{xFi1_xte9P6Wl1a^l4Eil#pNijMC7iYM5m5v2lyU;?ML5r-fCY;6 z*xU}6;NUsPZ;`h0#exnNxef*4beT-g40E30REbGLy|fF(Wf7gG z?Xi@)STvLM@WpPMSP}cA09ef4|2y(4ifpuRyB%U#=t7FO6+2l@Fj6{Lypb^uMynx| zHil4P2y0hp5Q0$K5!z}e5tWr8l?037G)4#Pyavxw7|P9JYN{-19Jf{@SXzR1<4gMIW)~g z+Z>!<@}|E^LqSul+p&ygQr)~08ceg+@d64exte9w8V!OogaRQ{1c8vGoJJIwRjIV% zgeWE8VLbC(`i2@+l!#%t0&KJjr9xp>;tE8qA=C(t6Ly58SqxDUj2b8Hc1EeO!Kg?P z^>@y5ofHs>?djh>n+);rY_?cV94NOqIaM{kYs9G=X`XFK5!Zo%f%*%zmjICD8>wWA zxBKX(Fm5dtPW||>MVK2jaoGU4G?Bx@`2Aw5pz|b-M7F*88U& zt-c5SAML8u+MFp-fHXm5`Kx|PYGu8udR?Kb?mQ!>;2c*V=kIq9kMrn|np@ye=ME4C4{ zvcu!aC5hv&gUc(D&)G6MQ<7mxZ1JWoJ!1{wzA5j=JE!0GNu!IpTPJ6HxMTW~Bb!~S zV`PqRE_pD*JpV*67&i|xg)GdKovm1Ps^X|*a%4+LQqDOlh$^3!{!K}!>-9U0=Q}HB zfMea?MPa87#jUxk$NPU?2p%rD_|6{aR$PChwZ3wFQ^V;4sr82|t8-KDpmE&wUBOq7 z+;ul)jlZ0GGA5`n&ewTUedh488c9-jLDQHZ{n?8BZS7OW_xD|j%Hy}3m?@3!4{o?r zwes;H@NRt9BV*WxUEt%ki57*mDRU)X7xQ%+jZTy_H=~R(2HuD4@NFWYYP|mpI^H?w8?(At37(}XJHdQxz==M zafr9KDJE&(Td}8a8GPAwqX%rht5smb*3QfKwoAT9YwYa_0SR-SzHzJyNCAC)EL1si R?>+y&-~yanO)t%Uks;0e`?+jduK|ZGn#fv~G?# zzykPy7AjF6>?j1ZJqOhBx|5?>7s$iqfik7o5fM~-O8KpymIJidH9!-O984W_kKvwT zh?y`oA_uT#vA`v@fc5(hYGrec+Pb)tRY- zAFlV5CSLf40N1HzA$tYbo5p+Z*d(M% zfN!ZXyojFpgUCiANpVAK>g3Y4?eDzc7o{P<@@Np?393CMA5UkbG?F44034XoD=3|V z;hwUDZcG3nlz5UzDd*K1jJ=#m3O;LaEXKiX@jh4*AC7jz`eq5Z_+MgZp8hZCgY*<& hj!N44D=8|b`~#5^E7VeaSsnlY002ovPDHLkV1m$M6e9ot literal 1656 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 G+VmgBHA?>g diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_13.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_13.png index c46dc3babf7be71b3a3f35921a861035b33582bd..daa7667cc1f86a5d9f424b2dbbeb2ed1eba65d12 100644 GIT binary patch delta 633 zcmV-<0*3vW4Tc4f7=Hl(0000d)~pTy00K=(L_t(|oK2Cxi&S?M#XsNszK)|{90-cY z%Df~+EF`Q=BBIVyEG+dun9{-`T|yGvFKJSywR42DfsGdaKzH8StO&|lC6FRdNl;<4 zGqba}Z)e_nC&j#3a?20*aL&0GN!pZ3Ng6^#0FFwfvZbvhNq^QjcH_$wpdT~HR|W<= z2Ozt8C;$eq2q-kiH7J$}KzINMIOS3~RjJLLCz}Qh^1v7v2d3EKpG~SB`eEV#FcdTT z8YrnRtBuz3_yqm>hEf}^P$qlH%~SV-z1GVM8qfn)@aVs_=XPu z7{I^-DZpv~Jbx`-^Y#ix)%k+%D+BANk1yjWb_4ujlbF@p=>!+@{dHS+{^t-wybScP z#YEYK7`T`Lob&*va-bb>%}W@R0ptO8o%1YflK-xMO4VcQpujYt9$!GKm9stv=3$sH zcrXWSX!`B_sxy*)lB%|>!1m?i6to4?XSg>fs`PIAw|_^C$~kiH4P5l=s0Wn`TS+&@(#IQX1Io zRAqT7d2;GLfH#PN_fgvEM+8F)&tNjw?g5ZbI!vMwz{O=slK{F3wZe5 zO#QuHE-9Gyx5u;3!DlVHXK5~P*X8*4Z`!8#*t{*D90#|xc<|jEWY?j)PM!Hbudf~~ TK3~5}00000NkvXXu0mjf0?sZ` literal 1689 zcmaJ?Yfuwc6utpOiW6EYiilH}&@w#S>?0eJtVE-PK$K7lQQ`yYCfPs+l1-C^gji9m zjzVQrT3Z!cTB%d4sG}82b*L%WinT*kpgyraa5`42=m==hrW+vEAC5b-d+$B>eCK@U zHCvUPmCg^H8VUg5t22~2+`5W;lS2ZzuhcXkCe}&WX)wpg=xIo8p$h37 znlhHZcaly4AaJc&t7CPVOwzzugp^N5=(5;2Gyo~HT{g;4OtX-lE;L)^f_q1g2_Umk zF31yWP>n5>E;47h?R2g?OKWf!8)Qbo>{(EXi{uPgXqJLpmJ+LjbjbxHc1dpU6C(m> zM1?Ju3r0!lG}%xpW2YgB5Q7aUib4{ZP>-6VdRm6gfN&JY5DZ5!F^pp*E+#QCH1-HM ze|DpZ%u%Ywym2SFponE{B!W1dPN7pIWbB0qCX>k!6i09z<}_eOxs|0{u+;}V*dNTo1lBt$TgOc1b4hEuQz)r-Y? zjNqh%U<_}3E`6ho%1O8|Y<@PRNGuYW#Fz+{NC^pyVT1{mQ8WsR38Ms)nM_8p)F41O ziiodsp6evPh-**Z_Ss}`hi9`zTe*RU#kQ*s4~} z(Yh`k+E!_8M?;j;z22^_!*M@vZEw-UTDI516+fNey>a-MYeiLhO=QRIA$|$cFy7YM z)r+35I1;(udw1od;VogF=8u;=7-vgIAFFs*S9b%&y;FrilEzn*4LuEMX`O~Qf(&Me zhnEMJZvoxcQ^t3k&G;&B92DE{bw(;qzkl$DUElQ%>*JRGb_HY%MmO^(fbZk8fFdyw zI|Nqo-C+dEYnr*;RkL0J`V;QVS_IEc;!O@P>08I;g9DYdp7nJR%JVgfjzgiV_CHc& zmWF~O;G-JJUgEvK%BG*2oF52=d*D%IAc(0#`rR&RbQynnK1M%(E)7hki-y`Mx* zXu$FT{Icd`Q|V&98g7e*l9D$Bwd)+47tSy1Tl2c-lbaEWp6-QmDga&N4uwLUXPkfS zlkRTbpd^-@xp;it%dM(fcDP_*NjTIOy%D%BeVd(k?m+x~Q&0Ra z2{2E0>FR~?S~xRv-Q^8^xes(#Vy5t>)SmvkvXS4D%R@EkRDRjhDgiY8)|$`nC#+5! z+z6gT&p%ifv8~~#Rt+T{&TkL2Oj!4gredO}@#yxf`hsIX{Cim5+F(#8yEbiE(cWuK zmG>6`L(-bgP5nGiR(0cm?4A6xXFgaE)OX`?%iej8NGLO?e8ui=D9Lf+Q(eIy^5qZ9 zbZo=B0U;+FJDpRTtI~#dG_9=v@|Efpr3F0Fq{s-{`Q{hB_0s}>t#yPq&e*Av@-i+` zx~~TtiVJPG%41@x9dQo>H+}YD%!7*Ba{=H=bJm{$wGoK-_G_JY^<9He9=X)u7R=NB z+Zo&!9^ZDgc*wo@M-d=rFMM?ed~GR@3|K&i&TPw)-yDebfa5)rV(;wPR^$6wsME5P J`{piN{U76AYVQC5 diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_2.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_2.png index 01f07c68df29a7319cb3d143560f99c85dd57beb..34650daa637ccba50b513048feacb55c94051795 100644 GIT binary patch delta 639 zcmV-_0)YLi4U7el7=Hl(0000d)~pTy00L7A%_EYONoN9>X; zzyd)C=zK@51^S-@s+-Yfp;bQCb0)OTPw);#m12c5*#KY{J+ji{00z0;o516}Ay8}FY+9$*66oscH0DBZ@ z^xcM`005pz^>lhGk)%yY77*nH4`ACE&&&3PVt^ijUFH9=5h(o^bbu+c^p|{;8cUV1 zQ<{|0ep!HH!TL{cV5S$e&o#*z~ zjC+te@|P*&d+Y&Y!g#p);xGVfwW1`|w7>Qxl`59}J%H8XKwDOSO@orOE9{BiCeo%| z;XaTY>3DX$tAl6Z5b$&PPDHK`@)kOP_j&>|A>k;eF-fu> zfJf5lll4BKxG34rks?Ww^)VCh=FwM7>xH`H(>wK;s0GaA1dX#(RLShH$Nk}R7Ysok Zz;8pJHZmFPL+1bh002ovPDHLkV1m*1D--|# literal 1707 zcmaJ?Yfuwc6u!I!Q2|9!t7g`qMbu4plU*~+2;kjA*Iq}E6=kcP@JSY+Iu`bI8f(8;)& zxC&8O7ErKABh~Q}uy;wsL$YMx<2v9yM;G;M!KqUfPg5uEV!)5*1 zb$UsvTsi8EJ;}Ja3}cn>`A(;k=M?g2dk!BZ2!f9Y_yPgUYQTNcBB`PC7#Wx4`YH&sRi%1u*y0#X6`M4^i?s4l9>O=9J&}!QJD61Je;RMq zcBJQ9DSj&Dp!4inwj%oQF)*9GcRTVZvTP(Nb^}`$(j=#~d1lJOB+6x6_J*f3=pz#EIoXL7W0b zP@z(Q%Eh8FY@)@%kQOa9=G(yf9>t2^iIv3JDUzY>=`?K`>jQNz&Crfq+6oDTJOQ*o zMQRNek0jDlrB^}ADZ606gZ7KLFjK?q1#h-h$J zgJP@{o#sG-;8titZhumE}SWI zKR?*L{qlyq=`GLuHf?TiSO>dX_X!8QW^kr99tUO8rJPTz!Q6BlWKJA<5L4h@T@v^Tc>2JqRZ{^^B+a~u5s748r^%l z3{x^V0n~zjKXVQp3qCGLa&$blfdZS^T{l@}9`bT?u&Ol0+26y1cO;jrkGbcH>=e?zSPPo&$JF1kmfq$=<|J$`K-S=*Wm2WgIs&*v0D{6aPty*Q%;jF>FYM^|$ zybU~k{Ql17d(pcGUFwLQ2wRn)tGlHdgzWbDb4|mqciQ(g1s17-@qm?)@O#&Lyy+?Jv}^q;0eg6SP)4Z4cgYs*?RZl7i~p11B`j+XFW7Ec~#}C+NC}> zADi3XA5lld)Rcx4)=Y1e`px*Io{Fwa@+k~kK4AKOzcT4_?p039oa%Al_IO@>+4?IP z+xwsOD8JRoQ;u}{eIra!Lnl)^bIRvjU(_4lF9eUq=Ot8# fJAFIi-CkgF=G2C5SL>#Eejka7WcjIO*+u^WnIm@> diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_3.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_3.png index 148fe46405f933f4c4afb993733866a6c4742d4a..7da00632d5d952b058d780e7bc21e86eeb3b0196 100644 GIT binary patch delta 638 zcmV-^0)hRI4T}Yk7=Hl(0000d)~pTy00L4;L_t(|oK=xcOH^SPhOhTMM;$@SRUcwF z)FKN4BghuQ9Qy_SgZu$4f)*Kl%v(g#2jrrKJ6*JB6S$N}XEX>aLaj{{G~+6e7>|xP z+4f^sFMk#R3RyPm3!4_$hyco? z-43uoIR@l1)dQjbH6TI&aG<)BHkGPUo3B_12qUUM)zQQbeg{_3?S=usqF&4#kkXps z$M9!NmZ}5Vu$X($sWPy5*8wi@Y9@+nyI#L;%vUU-aX>c#TMn@88Az-nY}euY4lF%H z`zx~O03PKzUUiRhS!x2MR?j=>Ce z5NPy0g^@DA0JGArpWaF(X;YE~M6nP8>=_fb-ZYW`92M9#{x4ex`G18Bm>f%gm367H zREoQ$3CZ`%0$eJu?x1aGF2j4Nd1oQFrPNEcrYvBC%YTbc_+cD%i+uxTx}cNpRn&?B z%vhFD>Wf8U1CJ#yDbAfL8kM|k-~g!Ma|O!ASrcJ^IWi0b*pV3kl_I%xA36%2s>8Gn zU-=^W{If)-lk3W>U^x!P#7UI2@GI4vBvqBwPcM}$os$5ca!F5%p&>~+9Ouq|Or_0m zdGI-qo_Fghl-CBj2rZlicHTZJ4hDVDX(0oA)-24#5HO@v(jh;tcYn@@J^VPCyd>EW zASCU?yH6VlX=hy3bU63UG Y1_@h5;bb4#aOuaL7|CxWTfY6Qg*9ESx2%mv*%6@cAb;)n$u z&Dp$+hi6zf7`8}RSs$;31g=9txI9MVGsA9fI8{Q@kO1XDFgc32T;a$D(Hx&g|4-wE zXwDq;&`2K5u|BU&sE8wRL|Mq*%N>P*0vnCV%Lrwmigm2b=c3(wmQD)^Z{&8yt|1Af z%}ykvFzrx~FhQssFlBY9;bf~_tt4m^qflzZ&WrR7XtDt(^~7u}O@(3lbW*3l)AbmN zDGWHKBUK~1S#FM}+%|f|HzWAg>6L~w)R6vCT}`@|rg+wCX4&GAKFBR(d6p|=Js_@- zdzaTQIgND{{EgaRg#2?AEDaSB$T zR;AL45rUL}hV|{wrEjQF1&I)bXM~MLp;RawN=yN(NJ0f;7~z1`6pg}4!mh&94u@Sy z+8{)rh=e=mxlS4p3GEr)KAQ~T@NBkdw=hs%VRAaXQpdy2YyI7{XX<>e#O=ij>68#*xgPVCR7hqVt%AD0{# zou1PoF1T-2MUofpMO@nYch$i1E@1!m)^+2W)`ESrqRH|VkWTtPWU}aPP(%2>@H3}HJ36|Au4n&0d=a)mm_hHC7?jcrZKb6L!AIG-Pdpx+K|vRwsuNB6C#*vvZp&Jv*o9;K-Fjk2hgQ5lw`EIvVb-<$4R4eA5_Vn;ZR~cSOB%n=6eWi{0z51gfeseD7TxKSx&G znB6$zVLVW`h@5DOPi^DXnQ5Nd?a^RGqqwe>NR&Le711*xh7q?$cDZkgdv~l7g*GI; zbAEJV+okWe?Ty`8KWoX#>P1BCf*Ihk!&fBw0{7CkNgWNw{w?y-eP=_a<4HhU$>B1S z^zzps16#Us_8Nl$G9UMpZL=5noOKU!A`dl-+Og}4W0p53t@){^r>|^x5+z9l{1x@{ znooE=ae({g$;zso8Gk|^@>k2G(S2q7Tq7R3QPaLTrsEZp=v?APBFNuK&$gYZ0WAB9 zB#(D@1p&<%i}OxN?=LHU`zNxpB4Z0)8?zaBItm5iAH{e73w}H`{Ex`e=jgtfZ7KZ^ D-1uoN diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_4.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_4.png index 0d402b0dbfe4d4021bc076b83bf0098e9ec4ebe1..9a5d688cfbe729724882bd9381ba6e44519783bb 100644 GIT binary patch delta 642 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 TK3~5}00000NkvXXu0mjf0?sZ` literal 1689 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 YV`bz=*E`=i=KmEKQ!)(SFU{TlAI@}Lp#T5? diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_8.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_8.png index 0f681e6abbffe2f8c4bad77476392253f324f0f0..7fc99ca893a7106aaf1d4eb67d45d7ac3609d1cc 100644 GIT binary patch delta 589 zcmV-T04B7;c7=Hl(0000d)~pTy00JRNL_t(|oK2I@OB7)ohoAS|Q8&okD8j&S z?UJ_)qAr3H2zBVtJ&5h*F`;9%FBNnN^gn2;OD8d~Tjl5_3rdet(2l2)qMcmB+1;7_ zbeMJYdwlpj-ygiZNYWoEm81v?IN+3&Dy;5QCE5PX%B28cxqnO}e&4XbCji15gAT9& zKA_oRvj?^m0jf^}6}J#dtwu<13R;vTr(m|bSrPV4`=mv=OhvUxd-h0nI-#OoT z%`VqxPaZlXeh2_ysCJ6Rz^?)Rl|~BqFX^Q!`Q=3}Babt(7S2a`7?4i0CI-?vDJx@O zD7s|s4@@cmf~EG{JT6a{r7*KjAr;gS`kihb4M6H7znd}_GaO`Mtag_YzH{IR4B2TV zJX4~>bZ#|cvrj4YFvimCTytr$Sx&=~CPJxx1#iH~a1`WsI$U0bUkUfxRq*?u7=@u; z6|Ptb_mRre=^-`iVIY|hN6Z+8K{C0}gjq-vBgax85hlV>T!i8hM1(6u5(O@S`X8A0 z=b#?G^TrNj35h@ZPyawVeadDI%ae0$M7Br04 z?6JE!JL`gi7AX@uk5j@t*S;W}Zk_IlVVAc*ReaJ=KjlVoA%;4g!N_{Gy_|vhpT;w_ zy}2cB1~o8VcAm$~SHzMO0`u8>zN4Tb&qk5svGZl292(X<&&jwrtwss+H$vJ@D@a0O zrU@yAFcvY15QNNvP$r8Uk(y|^gkUh7!l;m)XW=n1CY2Eyxe8AwaXdp!YQ!RS29Dw4 zOcAajWg)EA<>e@snF;x}^S=AB_mb3?m~+1g8lxLP!Y$k;_FCBF0P-i3ulo zDFOH6>8H}y*QmUN55pZ|qYz8PVv7V9BQlbZAvjK05IMzQh=ibJxZGl)C8QZfd5UPT zbDrv?kce;3;P%O6@P{X}#klx^^6-;W$LXZ})D6^UAC*P z2R|F^ISNH*th>GFM)oLFWjk7TuTE>uIj!!>ho+RfA4TkokBMB_I$ocsifJp`v>(!+ zxjo?Fn${k6|D8+WG$`0RS=%B2 z2?6cuZx$NCHav26Gx+n>j!^|wJL8MahF|WkJaKn(6P9tTtl(Ul4U8=u2Cg66k=d~I z0ko#!({2^;mU zPneSuxF`5%DYa$s>di3$qoY%^QPK>67DO6UYgbgIfEvq*(xN>-zn(dAR=w`{`RF~3 z_?eRrKr2&Wra`+KP*!4{exP z5Qe=quBP62I4kx7JNoGK{K427V_nWmn%n1Y3dNr^zB9}EDVnSB;TPMdc5hvN>hA3D zN3T>j-cT1-)!rQ!eljbqxOPrT%L3nQkUw^4Cmhi3=kCjY+;IM1|Bk4Di+Xt<2!@DD)E!uWp;qJisWb4B_5#Wga@wkSSKmfir V#DeNB?Tz3MK%0@R*{&*j`#(KRS^)q6 diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_9.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_9.png index 0f391b75e5977c5395829f3035b5f40916ab6bf2..6b237672e46965f347f9966c8c79f1f366934ca4 100644 GIT binary patch delta 594 zcmV-Y08jWHi zy4u(&1<{6Nr?jx}CtycmA)N(rZ)|K#sajW;9EX9=e+m4xk%EHluJ?s6&!F$$`!VbTas*b`tjWWV1K;sCFzspk$X0P_m~8-u4e zAP+aO6wTW#?0;Ce;`i_{WTy^xZQ^&^dn6dwA0Ku(zqmvL8f{<|+IqiN=pa|v(oyf@ z5pAs~30H?-y7Ubjb04__J-J!FM`}LjS*gn&<=;?F`YM6jHsEh!I zTKio%Wzq|&xGoE|sF42|9YeYa``W!1ur;r|kb0>&(0@;wn#+``rEV^}%7rxGZJB9j zupVTP;S(7wWWbZWR8$<02hgWMXq?^mYtSPp6^~X4dCf@)xKBNg=#-!{hxf&?O+=jl z-%@8{8NKmGlC4yd`Yo-iS4cnXu=A2%hDHGIrh))ZP#;)|nQUIlVkx!(z_F=(fXY>v z7+6-&14|%+3a?Tr>^;! gLc01ZDK5AC1E)7L$s)cCBLDyZ07*qoM6N<$g6_5v{Qv*} literal 1655 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 diff --git a/assets/dolphin/internal/L1_NoSd_128x49/frame_0.png b/assets/dolphin/internal/L1_NoSd_128x49/frame_0.png index 9a48d15f7a61949a492799c5098957738b9fe837..0ba376d653ee511cd9c365328b5270cf36a3f752 100644 GIT binary patch delta 402 zcmV;D0d4++3!np#7=Hl(0000w)10;d00C!7L_t(|oNbc5iW6ZJhMzezk|_d7xq@tB zyOot#IjOx0ZLBP9tTNcxSjaY8Y+>mQ2$q>f*eeKuh)KXAl^HPL1ZTe2Vtz7{?CH+K zIq&&JEpv<%(6T@Jg|)#?9zr`Mk|J_oT1iM+Sq>y+hJaxJuYX3f5;%j6 zZ*DId;GSVzfB4vd(8pNBapkV@7Z_yw26%G}Ue~%4{6~<^qqk9W7AJ$pH&qkBE(y5G zzf?61ekTU+!+#Rwz%sUgPiZw7@C~+}b5S;uw30qcwgrd2j{&r%ynOWc-%eU-BdK0c z2=Khwm;oFP>q!kBgkH>GaA*KoFJPG6QHvJEDjysi((zCIO%J~jMK2jB?jJ$YfKzf6rO>yEl_;4Qd_`w9E{MWv-8;59cE-(c6WHn0^%ATQe_@@VFSCf&J65A zupyY1U`>mZAR%eQ7!8_;qP4M7BbHbb+Zv)VC6zR!KQv7njQr3x#jJOM#r`0j%$t%a<w?oAusGLD7O% zN!4UvjRwO|8$k*WN5hiR224x_ErE~||8x3V91EyUyw2{WykQS$4U~23;KlALpVHl? z@G5@zP)1r|RDcLUU`kjt*d8*3s1siW7T`L*P2$+9irMDGU2%_Cy|)JQXga_+D@`aA zMPVFo1**izHov4C#2AX9NgBQ!L309Q6KEb=e{kp#!wPlPFVu=9>mH%x#9K`>ERbX* z60t^XR!wgqX`bgviXj<>fEt9+6*8qL5i)YuK-OVIU?_SZYzDLt7KfE&t;2NUFzB^x zf?=Sz2{4 z9BohFY-TT(*j<#PfOQnOIhro^xI~xR!-_mtLi4T?H=VF84;iKuQb59Y0Qz3HwLR2U z@aRA?HQlFa?FmBEv}&eiv}$3Du~}&>zb+6`wTQ7laZ&K9)-o4?9_R#WiLM2))mjUI zP2x}~JHrD%L&(6!5fsD1^a}t73!&O*2di+5oyFJf)dy<0Mq9W8a|tIx5?F`LZ@2M) zVC*~u;#mhFvjr4Evyxv0GFQMT5{{9p#Dsy8aS}a1sx`u{?n1`K8;0EIn7Fjjbsz*= zO@}=-)wp*ScKgfaqRUtI!}lYpJ7%$M#rL?o3$f3SO$=n+9;v)MU$rZGZ}C93rQ`iO zjoXhcUE(JHzWHg})!<;(o72OU((6d}SM|PVHad5+fgkwdR$uS7CZyEnB(tw`hUSZdAIXX-*pyN^tLFmqzUi=IaA9~f*tH#EO9 zmiuAme1z=HlPhPI$L^#g4?fv@wz+gWlK0)O6)B%NDqJTnx4#gXdE@+JXupR`={f&s z?>PF+zaQV&8SU`YEIoA{^(FP7SI}YV>yCyQ{)yQ2B`(4-JjjzW@LL diff --git a/assets/dolphin/internal/L1_NoSd_128x49/frame_1.png b/assets/dolphin/internal/L1_NoSd_128x49/frame_1.png index b58936d817d4967a344cef335547992207d239a6..4764b4888f8fa28d1c7ec15eb55a8ca08f1dfd1d 100644 GIT binary patch delta 396 zcmV;70dxL>3z`Fv7=Hl(0000w)10;d00Ci1L_t(|oNbaVPXj>|MbEw+k`+x_Lx6;^ z#iCFI#a8nxz@U&A6dMc%K`;mel0QI#>`El6X;MN9si=ZYXu@u?>_hAa)0Q!lIl1rN zH*W^DR*tU*Yklb$vB4{AV3!1{0U2;sTBzz!G9W4{6lfVZ^nber$OSxM(AX(GGr-s> z2{0QAhz;WZ6b=ax6n%76HD6H7gBgzqT63m95A$GSA$ATViexjyAXEFSFUVxZU>}K( zZ&z!O?;>1ZT-LyI5&B_R9!I!+1d?eDoE`#4m2U@k9pYYa64cL*#z(z8Md`Rhd8zX&XRC6fYm>_t@8=zNu<8pp|D} z&z_h^nvOa(5TMyi|G<*xgstQWsJ>-ljA%z|h05r3SzOx`_nn3X^nhl#Z7U)OA{KuT q(gr%U2#l`)PUcpMVspZ(eM}o=7=K$n1RP43b_>X=C zon=d$_{UuQ182}Mr&%!Bh+?8i5Ty%Hzm zJL^kJ>QX#Hh(lArQt>|3;8Pxa1(-+c%r=Q*D=KEM2lr+?VjbZK=F<`obK7Y`q9_V; zb9N{TjOd67(hiKF7@DNf>n3P7&p3FR!?F*KJYrZ~LXPom{-&%)Bzf>2)6{vAOeT}| zq{FTyx=EVjIFe#Wh9Qs!VGO9IkRnuL>ncbV#t#iCq3EWfsaOV95Vd~OgQK8Vvx)2B z@EW>mWQ&H%N2Uawr0o z(eS$y3c4Vn&#y`Saj2RhzXwMrc3F{m8A>b*Ws%^Vl1RuR>m)caMiU$>$}BCr7&q(kt?QPyye|O- zQ%giOtuIH2NRMV}MvtarjKfZ2)q53H){;g|?xN6Dt!D0r3FRP^n-W?aTd6g#tP_V! zIT;Sd7(#>&H$gEhO1~DmQ6Xdp?P4W2<7Dxyy?j#*S80oOP%e5dB%XCSVonDK3C77G zAdYnrB3nxlG%LhpD7tGINx(63g_tN%GDD)9NVQ7Xm0iTxOv8|C9g~sPx(=$S)e@+u zn6T|E>h`XX-y02nFf&qI{ytU|xKcRw&%sGd+S+jL^)&*ICrvK!XwO&=Cm_74xG8XkQ0Qo-j-_v{}1 zX!5YN=DU}{6PNMy&0zE0Q2AbB+O^tdrR zP>3xaKRfYzcsuA0?n}?U`$X|5m{OL_rHV^0+_xDVB!7JDtK=w{zN_JyMQCLwE8C+4;=mv&OgyK diff --git a/assets/dolphin/internal/L1_NoSd_128x49/frame_2.png b/assets/dolphin/internal/L1_NoSd_128x49/frame_2.png index 5b474fff262306ecccbdc2a0ace273bd26e55219..554fe0156909101e78b58b257a9646c2c56d6151 100644 GIT binary patch delta 404 zcmV;F0c-w<3!(#%7=Hl(0000w)10;d00C)9L_t(|oQ0CTN&`_4M$gV(aD|`|EVPhB z5Z^#cBjR)T(+Gl~Z;(|B8!MX>HsV8Qr)zCzVI#x@MXYqefQjDhSZuO;qXBPum^m}| zV^HTMl+@t74}C^lP-hz4mWpZx3sidwRecl-L}`ZtMFX3q>wgp^0)g;QSnN41VB9Hf zU~nuTE{KO!c(j2^y2rJuCVwh^g8@f0O!^;C^9y{{5j!x{Ls~BQtRt@j##JQVIi1Qt zvW9SSbew^}hv@!%uJ^fhwZ00p``!k=MPRG%U4~D*_+@+HHUdx&-tGiuYrVZe-y&k{ zNGknS?Or?@IDZJz3TsF%M`Vs1qTb&Xkks`Z9%J!wtF2Z_E^7H3v4>Z?1F$SIYRI yDFXd1J0X=&0aH%1^MRWyz?3v=T7n_x@BZA=?w9KQmaP*#Iu#5snZH%*x1dcEuQP zJpcdi|ML9)_o~06)nwdcL=eQ}ZQ}xPPQgJI6~gbe;q%pSGH8L;Mr3?$^G{GH>ht(K z2r_ZF^ftc+%4_}Y!RB;24VOD-=3jtQiPH9zh9LLOWQL)ldV2~%3f~F`yY+5gJ1fc& zGcU;kFvlYb)JBlHhPc9u13*Uw&=-!nup5&XF*Gc>ur8a=;!~PHf4D8Fg3e?|P)rVp zjD$7Rn~ZgF79vD|&ZF_jU{qt{E-VYo!gXewz|gFUKH$PU8INeU&yP0ADnK1(5*IBN z3+iCZK;kLE8sfzol(JAHLBiL8lMa@$vLu7%9t?U!(K=NMu>r0n=MhRStY6m^mLOuW zm^o%O%W5A%G7LjlD1xGJsDW#VsLsdnsJ3MpBnQI*O;p2*9+snM29_7(A>D<+pqI0W zC_di`dQ{654VI6H^9n(lEkq=eNinOf=>hP6EURj3!Gr>c0MO(iRRmCdOWqik@$QZ? ziZB}X2{jBah#%x+aVP?!x|efd@Wd>IB~}6=O#?~58Jj5Jl0e&VMhKBOLkkj3N_NUY z+VVK7*|%6pr>&7`wmTagB-z}=a8#p*@>m&;Avvb0DR1kIYC0bkLEd*5`p(&MceQ1k zRKV-98kFV1JR$u3vMy`=vVu}pGl^Drg`<)j)3)X>3SQN6<{VJN&jP7Ml_O}j)@*o{ zI3$aWVnB$(1z>gH7K(=HJAnfhLb8%}T69o08q3*Bchqp1wr~gLqU1wjX}dLKvoZju zYzzcqXge;@P76-bd`JRt^*#=&*394wfa zQF_#_Pb29|^G~O5*6dA;Y#M&@_~-tch*`P%?wMOf)33dA{gK^o6dE3gBkp)**`rm+ zU-i@U((Hj>>(QxyYmsyXGWxyAeXMl%4~uKvYrY%1*7DMco%7yQ`Pkb5V|#4cgxY!Bg19KQpSlFB|~DLUW}BUEU8BJAeQ0I zH$Mv|`6w!oGCmR()zIS#avN z3mrAJu|JZJR}o{AoGsO0+)>*zb?W}#FZg$*<_@){_SDtPI!Cu{HtgH_#q}Rc-Ok4z bbQeGLd>3K=>hGz{9~SX8cW~p4y)XX(7=Hl(0000w)10;d00C=BL_t(|oQ0CHO2beThQFLdj3BmdI!G({ z04_S(41#ZAaS;ST-@xkP;^gAsB0hwUW)xh+!9}Poigc(@zC4CH3)1Dy#e%bqL;0un-D-9=-vs;pQQH&?S@2{ zaVz~){knMc;D5lk3FDDmPS9gYZQ@l`KX;_(L~0WeoVmNwfg~G8%c)AFl5NpbBb!*e z0kAR}p-wj#3|avU8da$?nvsk=E_cEas-UO-ws$D zIe^msS`7A=*R&s{3!_rCvvbpLcon5kzt-U!;5)Y)4i8W7qW}N^07*qoM6N<$f@fL4 AEC2ui literal 1415 zcmaJ>YfKbZ6rP1$3M|m1!Io$rG}Q*Aw$-#D_0`righz~p)@o8>+W3Ipg*$r8aLI}KTXh5}7)?H=RmGbV2$K1c9BeUK0(G3I zMr^#K3cwbRM4>f;l$OP#yx0j0Q~({a;=%5m8OBgq@?g!502zpSL0IBz1$&4WOHi7mDT0Ex3#VKhZRaQ!O1ts70?|6EqI)`L5ufM^1`+O3HIny*VcLmD3+ zC}{|@;Tkj<9uVKfoi2ZLX1k}Po&5E%wY0?s-_0ha{EfwMx0!dXU;7)o-| zF3OR{S;@cJ?W^!QNxRcs>7uAAZzan(p{ly7%IozxDyXz?t)d&eB7$^m8OBce(vS7! zyc*yQRST+WSGpk@!>Xa`VKs`M7%b&4J;LEq+d>VjC7Mo&W1RMo!_ESn zcCZi#@_`GCo5U%G4@p39xoMHdP-3w$VWLE`i5_XHrG{P9!j4T246!^hNojfNfC5KN zgEO`B?W1*Y+PBsEDuVv+#}Bt2{07bQ&8```z3cjcU(Xf&aA?B|-UH{|)0g~c_7fIi z&(zS3fp@RWzjN%={9mp2{w5uHpV99hy=7{f9Nfa+%}K0k7_Ys$o-j+3R%G;-MDeU8 zF_BrfO9I5&ry0M*q{7G7o0m z8rv{7{^2uynsp|N%xqdWD=f$dN%X`hA&UN3szID`$ z#W&E=iufMtA_#)ML8A^XPA(l>dVT4XFDJN`Oo3M z7qu#-t_G{V^cAteGYepkG*z1Yitx%6rQCoyR}lQZ9;)C3{na>JCB`x%-FTvcDHn~yKR@PZG+m*<8C``cV;p( zWtXD3L4)Fp20@~KB!)&brN&sJf=M4~B8rwqNYsc1B_Sb}EK#FIO6uLVTlvv2nLGEM zd(ZjK<9=rjHHCH*TFa~mf)oboePK8!;h?g!;P=YG&nw_$F~U1)kdf(i*P)Qz{`vWNxNMocxF1gWT7A2LAooqChoz)qXA(iO-j*Y6W?Qg<6V;fF zmsA1R5-|;GBS>XcLgU3=V4?!(k`)h@Iy;7;vgE;99YHdv)q-xhen1Di20{^WpjTui ztm@H1Yh{9i2r*#tXd>397+k`GEdX2gx0D$KwUNp7fF&t zU91gAJT2Ixy!bFmlQcz8@O9yoi=*uv#iC0O20fx^r7lIeu&-{(Ba}Q?w`pn|LB!*6 zTik9_^)7;9S(YGaf~Ik(fg5`jlTYA^v1t)x3C0HuQI|DSRuwc2%L{71>A_&oi`m4q zU~m~-F_wx3%SR-5ji78K5sRf$T+lYmF!(=~6}64XUJVdoV5t4N2%!3=j4>?Z-5sSB zVKiK$F2f7r`+Ta{9|MXR@OdzJVv}TvlYq!DKoW4)Aqu!8FbX+kj%2ydr{(ZyEYtvUS|mmaEkP zZ>oAkRr@l8XzEr?)#z3=l(yR_w4zm3BsFeq&0G|`s>RHGK$rIbsZLj8=t8YId4)J6 z(m}HzO5*~syKs_bVES(0f`yRml#>x%w1dHx?4>(uxJX;L19Q4qVeJ0>kHcO6h*tLd<( zwq33E!)|X5_`H$&FK)cidt?f|=lL6JnZL(ob06&JEglWu>V5OlD_@Rx74$UZH!XN{*U z?{9so?qtgH*FPy_F7L7>VXYW(w_JIBPjOM!spDr~Qpy7-I?fDDAw9#fi^elZuI2X6 zL-_C3$EON92gmcZC)L`v`Bvms3%YFrxpvc?-4G9*OAcEaQ`@J1Iel;YXPfJURo~w~ z^>WXeqlK27>$|A<#*LPecgAkEA9I~cA~X5HWY$B-cv~pnR(^Q$=~bU*b#mJ;z4gtH zU#+h`KRNx=wX)JJgL%p5Q2B=0@3eI@N8Wwz!edprGfy-oFF(s1DjhsC{K?P*Ipzze za$jtn82#w<@ww{#jYo@4{BgCkb9VK4I+QATEje*)U)P^GXskVZ@Y~h-|JvdQ0=L(v O|8@a?$Tw2cdEh_m_R@*~ diff --git a/assets/dolphin/internal/L1_NoSd_128x49/frame_5.png b/assets/dolphin/internal/L1_NoSd_128x49/frame_5.png index d7f8c6402a27c5a2eb565d12b595a3a438ed94ee..657cbf815ac3c1d164be3ec9a72a3f32a9eee53f 100644 GIT binary patch delta 399 zcmV;A0dW3=3!MXy7=Hl(0000w)10;d00Cr4L_t(|oNbaJPs3mkhM!$OQ9;5;5F-IL z41ym(P;?mYP}KT8KVT?C?04k{f44*qnTIExT=ykjqamP7?suCpb8ufVVt z-(@oeJ_CVMH-7~&(DTJ`8D^IO4=}7GNh;b`y;YSVB>8OvkWeN6MelxY(3=miS~#Y2 zKI3uCvT(P_jJs!h+F<^uRR9;@`nv#g4Z(??3*Zcvs<2&v*gbjM`f+VhX3tC&_}g;q tD%PDHLkV1l|Oq!IuC literal 1412 zcmaJ>eM}o=7{5Y6#+TX5+!*L?H~(N}*Xv!cJ?_>DwAVqE0>LhTBeU1Lw{R)FYwnIw z(71*v(P3uHf;h|sKcbjL5cULiX=$*GC0X_l#L@>h-#L%EmjY+*Ks$^|><` zoJRwKp=tqD?amUSxl1)vy-SUul+8k-m94TOslEEX>_x$=TF;yZntT*U2Q@W{rfbc~ zo5Uem?Gy{b6dnRL2Def)Ouq^+un>}sbkHJ0*=a0eFWphYb=txmm`f}h5=T31VY`h5 zIAv!c5KBAo5M5=(Nm>X?AjDKrqJW`9nwT(9B1NJ*NVQJb^e$vUiVb+e1H{KK5(m=OgYNm#>cY!8O>bKA%qGXf&B1f0zTbUp ztB~hVa^vWndH-Z^dvT2ek>^jwO@V>4!&`z2hYL7k%KxKjrmbiPTIL)~ymq7b;;y7| zw&L4*UlxT@2>>MiwkDa!Npt}*?G%*eCWOC z?n^7NduEN+iG5>DBL@;A&zK)K zy!~bWnZLK?86y+<&$sT8iOY@uEPTTv#?hsm7q1HKb1NNJ3U)Sp(p&c=BAxXjSoO2r V#OII6-|b2L_$A6-q)3sg18^untB9l~?+#2l*9GS%m-u zk{nE`u|2R6nthkFlBPCVy|oVvNdde9!h5}U;bT-z$FdV?*2u+;L(9pTmXgYaq{bQG zc4+aR1<+b*OMgkr*%sj|oOjZHXPXVCEr9Z&+NGp+_Hi+3Tu5GdK#&Y?RP!g0CO{;) zg`~4DAPXEzdNG!!=N{gRq~am5Cf)pgBsUaeCyRGE(p<{rWIf_A(rZa-WxdjqW`5VfvaVC2}ENRuXLz41jPtv7t0HjGYkxr$0 zxm{2SIk>+W8^KGk7BldTKCOjsVD7{!fSdeU!=pnC^@kKzQIIGIC}0q)NR!BC`$EqA moCl+=6@!11?0p&h*Z2df4l1@c^}Zwk0000oFh0X$~lbDR%OGfw@tkv!v!1(_0Ha7NWUZSa@ z+Yk(M`i?MB;lZHl9Se~6u&+HF2fnmAf{^?*ZUI&+AOfyy z-}=>Fqy>07Gk++6-#F7_#d4WZoK!Qd3Q+7&*mQj<0?d(CDt(DY&FVSrv6b$V8Wg?* z@VRWC$IJ!v&JqCDI9O6XEJ-iKoug<99;{0x1(gw`z3axYUqA3WemJbuL5LKZi;=Is8f~MX2+TW*Z+e0>u3kLf0N882d8spmu~@Xw}}2jZeoxE zz>|DlJeCS2s1mv4QxRDkSvf#f|HTD~mqH8xasYsDz9Rq}1Yqw!Li_Oc!Ps{{7r@;x z22nU3K}I&>ti*=^&PzC+2vhn92e|g-*G{TFsMIGJ?Sirb-FK#Eg7DCL%l`n-&4MEU bKLQK@@H_^gvWeS)00000NkvXXu0mjffT;=+ diff --git a/assets/dolphin/internal/L1_Tv_128x47/frame_1.png b/assets/dolphin/internal/L1_Tv_128x47/frame_1.png index b0ead79941c8c379f99e604b4f3409bf7da6b1ab..81f12ca091bc6e15cbfc5dbea471ab91bdb7ddae 100644 GIT binary patch delta 505 zcmVIhBzijt3A%(|;FVG&6p_yg!kgUPK8ib=z;rV^ z``*l($3mK_i*h7cuEpdl*gnjYB1x4rU4LU71Jp3aTD1NWz(J!% zsuz;9kQTCr2&Vv)(C=8D{H3y{sA)W`;VpnDshYyeC0O!64P2QqrtCTbo^zgYnRGyz z3OFeD!Z4(0J`W>h(ln&iF!U^LcI34KB#+G9Rk&C#z3;{M*sbaHy%KF16YpVH@*O@d$}qA6fXU`Suuyx@Wsv47VQ^KyrNEV!AB=sR|KEnz=1WUaBsm zHO80%Q-BAqHkQia5aK#>>0C0>@-*5(TkF#Zet^B7$pbg}Mb6U)SgOxCT&BixXeeQj v$>%O@y?vr+&z5Gq*?RD=liRxt{ww?ed(02v^Q!$i00000NkvXXu0mjfxqRr& delta 592 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 delta 588 zcmV-S0<-=91K9+S7=H)@0000Ssxra=000?uMObuGZ)S9NVRB^vL1b@YWgtmyVP|Dh zWnpA_ami&o00006P)t-s|Ns900033O(|!N|0qIFZK~#9!%$VDbgD?z4eg6NaS1P3> z@jZoVQ6EY`@nk%{AtHiUm%X}maa{iMM*&=xeGEKjf3XQa27kad-Bi!iwD0WP06>GB zhPbE`PzUghH9J7*Kp?zd`{~I6nhmS|pY}ezM~s0HpL7|1`iV0=oX04^Hl= zCV{liIMZaEecjq2pJ$R~2)pmB0Z?oWJq|MesC5j|0C4Hq z(qk)8l8*pk@J)&=e-%jpRQXpfD0~$103bI22qyRd05<~gXLu5B<|!(blncOawR{yG zTNnVG5k*L+DxHe`D(*m23RwVfjs-)G>NG0-PG)vNn}OYLruT^Ortg;j0l;n)+ydZF afB^txc?PZ*Zo7#90000WWD(}M04duNYDn&_$l2l3a4S&Z8Kn-K8MVlu995iaA zx{#zoDr5~2&HyN(->K~Wm9i$UX*_J`Er2Mgn%v7JSZ0A5xH4l**=+4-Ar zuwPEYFr;X?3?pUIJfzhy^ek?1?6m_VPt5(~9x6Ue6(lWd#jKuK`X3kk1l)R~lEVA$ zSO8rurIDodQh!oCvEX0~B&$^oSbo3azyoNs3s_FxH9iNdD-T*{v)=kpQY^Gqxdk%^ zq*A=lTF0M30oarDa$0HbTkT#d`3b4^%NE#96-Qze6%qlg?r`B*%&(o@N%dNi8im%{ zxAp409eo49xFmbCC#g~E=`DJvU!MX|4{Y}r!|lg85OQC%oNfz1szOAP7H&(Dm#WKX zjWH(2qyPu2;!!5=~6P%>MYtpi}h&)-@!i2#GO6*BM00000NkvXXu0mjfG_Uav delta 585 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 V2Po@6t}Orn002ovPDHLkV1hJ*0oDKj diff --git a/assets/icons/About/Certification1_103x56.png b/assets/icons/About/Certification1_103x56.png index 6e11bbbb222cc54a3e6883f81522af25fd847e52..ae6b4abe0bf15bc3f7d6dd54e212f68312d6667a 100644 GIT binary patch delta 474 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 cuJ&5K1ntnAA0Foz>%07*qoM6N<$f}(K9)&Kwi literal 5314 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 AQ2+n{ delta 415 zcmV;Q0bu^51FZv)7=H)@0000M+FsQF000J1OjJex|Nj6009C@%egFUgVo5|nRCwC# zSlhCLAPn67|DQgs#bkp7`(Si>hSZ@Tm(2~>5ddHEF7cLD-JVYe_67>X;J7sm-1ISJ zYOr7BIXJ{W*Mc|a^D%I2zd3lB+d6cgrDw#~cVF)3frBOw(6pd7MjmbS9^n%de7q z8gmH*eN7^$NxuPF6@EXoi8>^*7SDDC7pUIr0)NgFyvqiP=DpEl%h?Z1+@8l=v)u}fc?>ehXiz-Z9Fy6O;gi?FVl_*a zEcs^~7ei*j33<7aU^6hSG4m|}@2|KC^Szp6?m%?9kTKtiJ8ZzR#>}@2+%3TDLP&)jlTWTkQ$(xb+g|dza-y=6la4goOEiCm4SM3;=?20_{ul8NvVn002ov JPDHLkV1hr!!;1g_ diff --git a/assets/icons/About/CertificationMexico_98x41.png b/assets/icons/About/CertificationMexico_98x41.png index 9b1e45e6f248644a4f20e4620216d57553a9fcc7..a49433d7be52e6934a857c318537ffced523911a 100644 GIT binary patch delta 315 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 diff --git a/assets/icons/About/CertificationTaiwan_33x32.png b/assets/icons/About/CertificationTaiwan_33x32.png index bf2bfa21a7b7a7045a87bb2c521e50490f3fcfe9..393db57c8df8b70965511dd2763c437345ff006b 100644 GIT binary patch delta 189 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 diff --git a/assets/icons/Animations/Levelup1_128x64/frame_01.png b/assets/icons/Animations/Levelup1_128x64/frame_01.png index 39c910d3a41314c985e4ce79337cbbf30d1ae79e..1429d994e5164b3d75947d4e95daf922e30ceb91 100644 GIT binary patch delta 563 zcmV-30?hrr48R1C7=Hl(0002`twPcO00IX|L_t(|oYj&&YZOrwhM#+9vKf;lGiVk< z2+0I21Qph93&DwvAP8Id0}^a3gBFUSdqq^V5Wyc{et?Cg;>V0a>ZCB0!K}ezVNr&x z;O@?5kHviDFL=81a(K`4o_pcHFLSi1*hd--nh}6sDi*D%7=O}Zz*4tIxuAe26TM59 zn;WH%+mnH5XM1dzVYfc9rOL(Xc_ye`j)VArQV0Yf5eCS5}$S{b10`A!6A ze>gz^9FH4bX8Mf)h^_VP?dt9Y5s{CsNwZX|>GwK#v6c>;SXvB4MD{|11L*nnT>z5v z73~08H7o#X_Deekw7T^vHG6&Kak}>D832x5ZKUBk=NbT5s-1}002ovPDHLkV1kaG B5v~9L literal 1597 zcmaJ>eM}Q)7{5}5%D^dpRi@)O7`W*5?s^B;R;rYKC`z%G8Y+Q}>)l)EN_*Y)Sc`6o z=qAjeQ#WD)}yh;LPt4dw`DnG9mu!RfIf~Wx+2mqNwqk+0$*bp^hBX$i?jvW&i zI-(-`jo2tDx7~r7MG2s+hQfK0BvDqc0RpG>&|Z$8hiXYJMNsf&af&r)X#=H4$1V&y zlmxHAX|avDgF7QuE6X7RK|~@EO@!8nQVl`r^?HKT5?U<|HSlmlQ0Ag|Fq{>)U;$xX z@`Yrd7(`SmTZhvAp7#_;NdvV zgY$V5g=+!BA+9YtBqdTWuzYR#wf^hH)} zk%^3Bi-TdA3-TcD+XsD*VNK7)8q5;lWKnX7VqLru9JQh>hHJ$Ts--m~I;Y$h6vRmQ z)mV*2L$(0P_ZARrk{Ccol5Frjg8)b8=hIpi;2zlNIO7qZBzSZ<%g~&cVR(k}zyL<^ z!c)l`?NfLHg9ydB7)T0u^LR2J2Y}JzJj+nHhbFbSmt$F)CMg}muowX;60yE{s*mDF zusLJmlfi(SC!+;|aGoSMIBLq(1&1!tQR1?~b$EDq|K+_`5G27^Y%#f_f823bZBb^b zgnx(k{&b_X%C@ij%eKlR1xz4AxW=oeHrzdS@wL@=Po(b|Y|8y{=6&U!_b23JK6qSl z=Ul(3U+Z>w81&36ROoa>Vw};AiR+k0+1z%t8NFY0jwL6AiTw!i~cvHBP6VAaH(t%~zvICA{Agl`I%Vxu z68zSrmC0!dz3ofM=AK;@KX*2Lw5i2p+ufM1m_OK}@82}P>xjFuZtgeW@!@ny9%#*) zwmG$JIs3-vs-E7n-E*90d}+P&5)voBGI-Sa>GrGlauUsV&W&$Ps>}&tmW&aP|S$*a?s)anPWU)!;^ zL#VILC2LNl&CYCZzS55@y|-=+x*uu2(bC40EMboCNF}Cqe)a1irm04ewgSz*9By^% z53in~QmPX@4W{I>O!-`%ZUS=a#>U^Lq$RausA>A~+>cfMi{lcGP4_BNmUXd;&QI)Z z==qd;({~>{d1mb{bt%%QGTu(SaN34cx>QKxEJgeM{Y=w%WCnXCBX!LKlhR`U;qFB diff --git a/assets/icons/Animations/Levelup1_128x64/frame_02.png b/assets/icons/Animations/Levelup1_128x64/frame_02.png index 4975adf8627b62a22d002bfc1d7be423dcc5e83b..4b3bf5f83e073dd7834902e16d5a4a8e39456089 100644 GIT binary patch delta 713 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 literal 1828 zcmaJ?dsNeA6psZNpyCkU;tYj3n5KEOkTz0_&{lEs<_M@LX_7*fHnk13Fb={*k0JvU z6<<5*acnphaZW|?QNg3QIp;Rz024uk4K^7*jwqtCRKWR%$DAbJ{l47ay}$c9*%%o< ze~jx?R{#LUgf37<^J@d9m#njz_o z)mNE70C33D#l~~-VT%Zg)r&~Gj>xJv@@N1ER9KB9wTj_D4U?=h$b~)C7lfdWmJ8$j z!;mmz2$P~)kZEFKGQ(r3%vF?(7Aod~fmVVypl3J|wCYn0X2L2LzP3y7vi%qqg0EG$ zRdV4Vsrax+FoZQRATB~73PBJMmx&mf#57_pNzDc^1Vdqzzi|k~2~13&GH~b;@(xY3 zmWWoWhurZyxiE#}j06l@EEbVPEMiT`Fe;PDU<89P4B|B)bB2Kugd(LhNr`dku$_0|Wini*7Go+LQ%O-&6(UmwD^;ohvA--> zg$2(;hOwarGe;UIX4tom_dSGFz86b`m>7~{O|dMSI@}16DJ;jDQ&=O2iA4zL8>chS zti|kSuhC%0O2(v1XK1yF)q}5-Oz7T0fD{J=h%uajG<>H+5)I8uv_=Zy5;3WjNGJ)a z;R6`N({Ckjuuu6DJ_zG57Xm>Utv`hXKnx?1K@=`QA&nTpAT5dGVljeBB@$c+^Aurw z-@MgF!$*8`+Qm16!EfG-7GvP&$;1!Nn#4Z)*f~WmidFIJz`#IRsv7#R+qh3KqUKV$YLpsF+-C>Ad1 zW5>=dVf}1sI?^UO=z_-BRDvKiqR!gx~J?s>wfxY|O9R z=3<%TTyv!--`al0bHepClGHZaLthvA+^UGKm8UDa^XhJ&LO!34xwW?BwHEl^*cY-~ z<8`=PGTBGH@UQB_-Fu367GaZe+zy?sU%%opS!1ew<>HilXz7!K%hYRTwIl^?#-}*f z1@ul;6k?`QBD!{0eq6!w)V()%oo;Mv&+BX<;EJruyw*DRnNDc~;QgB4(jyyYOl#V4 zKjtX6d&H=T8#b$@NiiP<{E*-MHL}KC;E)jSZWDr^Y&Z%6BZIC-Z|b#-?HQLFTsSJS z@$Q#_w%gOBZtV~6c9!ORQ`9$FQ0rII=XiRz?nsY&dH2H2<^3{|#OCdI(@=P&b)sPW zyMOp7w6(KXWo40nJ zY|eY}PX@?#b!4yazvau+ju3P#d)l$6(`iE4%ZY-9f5|pwy$K*30`J*m9hcRstx#3CvLZO?i~j&Y CQO3gn diff --git a/assets/icons/Animations/Levelup1_128x64/frame_04.png b/assets/icons/Animations/Levelup1_128x64/frame_04.png index e6c88df92b73b89f1ad31810be1a653c3fea5d6f..3d97117312105ca80bd36fdf2884aa197d449d60 100644 GIT binary patch delta 719 zcmV;=0x(L_t(|oQ>1ZYaDeL$MN?wGjS$MmTbY4 z_=D_-2w^<52rV9hUGxtSLMEGA7X=Y|(L-y!xDzjy_0S>+;>CE|&e4;%ZZA^fd2J}w z%(jY^Dw(uNoi)4r@vv?pz1ZjY;q`p^K0Mzq{D1kK$AX~t1bXFu$N5fV;fWa;GjH+cCt$Z$YbYDR|F$U{pKD zDqt%_jZo7cT5UVK-vMHPVfYKo?l%Csu_O%w3$KMof`5LEX?1G=aV$ysl6RV@l>yxZ zfY*_R6VYu-GQszEp!jJl0(N&b7EN_OkP^$N{zv@!JiP;T0P5RkZ%PU9YV(GZwwAv4Bwez`+}$>SyL@i$<56Tpm+!RFsFf~`B1t0%kN!h9 zj*GIra*-^2RARhdaw>?|A?K002ovPDHLkV1i=c BVy*xH literal 1686 zcmaJ=c~BE)6we_o2w0(7EJ|I2w$PgFkwB7#KnMwk5ag0$7>>iMhk9}@h1G@VD8w4dC-Ij zQz+w2lFCpgLXotYg2V!pPa+5ciKPNcOJEwIjvyC97=ocN3SKcE72}u?N2Soz!vg`$ zS{ z2o0YMLQy_OiAX-7(Fyq)2|^MQEkO#!5~rUR;iXcsG)gGM#F$EgqN+%#N}*J#f`vg+ zg$h$dAWm$o(ZUc$l5)n@gVBBu}%3uuP66woFJ6ABP0AYE_N z(pF2L=2MhN$|uDll&=vY7+*(-#X=#1N<<gi@&~&dP#;2;lXt&#&t~K0bu{c{|l@Y17 z>-RHn7{7%);{LVo+jqBhkqhwFC4EtW3*T<$zCId!FiEzI1fFWbckNm0!wC`F3?{`-k_IuBzxtei%cnRJ}L)M0R{}2G+6F zZG*9Y7OSOh-!=B>@A8IMxp8A|xO=x=!2Y(+gJ-d;8f8QB1>^h2=QL`k^?dIQyM-j| zc4sTxD_T;{yi;1W<)2XO1@7zLRZQU{WAjPZ3s_`D;x8k!Rx(r zKja`3H`3xc5OAPI-m|UaXIjwS9Q;g z|NJ!wnLSd#RzRm}F3x!OXko;eggHLEjEeb+)zxy`<>_YMQx@?^U1w9t;}c1K@m{7o zOMYbiaeBb(0uyc-z1&v+X;R|B+QqeBmLg>`K?T>>PuurH!->W=`<=?xPu9n?my3`3 z&mOS$&p(%)uDO_#>eK7qD+r0I9N;9mtXS)}Fnc&`tj4{o`pL{(#jZ!9gTHL`??_vJ zfKzP`85l_E${B5GU~kg*br<+>+p_$N<2uSbpn2@F!~NZyb)lDw!Z{wSWiB%sx(wTa PLRqX>Rf6(}B5%!qVpw+j diff --git a/assets/icons/Animations/Levelup1_128x64/frame_05.png b/assets/icons/Animations/Levelup1_128x64/frame_05.png index e7bae4d6c8e7b60de8cb5d4751ae8d9259a39338..639d7fc17978cbfdba742e90fc0f690b2c39ac76 100644 GIT binary patch delta 710 zcmV;%0y+JN4blaW7=Hl(0002`twPcO00NmwL_t(|oaK_uYg}a*#edJ8m&x>+*r>gw zg=sTjm0>mpOJS*)s3KTDl!4lID&Cu zg7`siO2JNO>1{FzH}>W}E+!-RH~1_M=Nz8HIq*Nb@f-kg6@LH&u{fP_%Rm1zWO(FU z^}nJ~KR-e-A8kvJkIs)hfBUnuB>+JhYsVuN-rV=Va}EqLb>vcqUd{WPWZ>|GR+^P- zXk04-0=XNPVeLk`TpI0zCyrO`p~aJ0Rzwi@=jnX<+*3UK<22 z>rGAY3JC1{Fna@f4byv_=~PKJC^??Ra6E zhN{*8-Z;87Z7_1eHZ&3k$%J+bVaso*W}I>_3M0u(YEo1FwLF`DDEom%*9+TzLshS5 zAmoZ)IRMI@)92<5?vHf~EIJ^o&Wl9e>N_Sicpty(Hs_~>(`S3pkU@V;km!pJu<}hk z31LBw{D07Uf4`R$E)IIae0g>3$F9WVrH$88ul?X9dYU!EQZsx;S5-9<^U(d4cGusY zKCpEEv1Y5Ktem^m3@gpBoK;jaW_fBlur>&+m1BSER-BW^uMm|sdt<807*qoM6N<$f_HaZ-T(jq literal 1672 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 diff --git a/assets/icons/Animations/Levelup1_128x64/frame_07.png b/assets/icons/Animations/Levelup1_128x64/frame_07.png index 32e864e9827420142930083d480d331024d033f9..d59622993855db1376bcd8c5b4e516e7c67a3deb 100644 GIT binary patch delta 508 zcmVPYY3EBb!w2N{PZGyK zCc(QRuONN!HQ2toa#R@2Jg$dXvs)P9=ElX=x$@kw{Nil#+i80r#ubBOK;~nd+ZuX0 zH_jLJFpr z!(mWF!iEKG2;kcg*ji74Ykff1Jz$*_)Br$N`2diB!~~!r1F(1oEa=Yb2q4xz=m=;e zycH3N)~MGEQ2D0XA|fI1Bm@8G%!D=0Hs=9=~&RTr_)v`!!2Xb17`Ej=(CIaW5>_R yr|_GHv;FtQ?aRwU=kt9j9VDO7qXG;}H-|stA)(|ngP7C+0000lpcNfsA0gc z;4`?ar4Pfwol#va%OL|nM59qW%HUGiPf&Wjo*-$0rZK32MH)nzi(z6UKk2~=B78Uy zk^_>6COmRpsZKVkA=u$8f+2_Fkz+CPuvV~YM2rg&6iyPsU?R04?TG9G|HF8qcBHZ) z1PB+1NOfTzw#1j8G=}ASdZ2_NL}Mrq2Vh^gTC2p@1%W8rtwuGx!G(Ze&~d=aahw<9 z3n>btfriI8uaCjJI+Evf0>?9~F6rk<_9djw!f16imbU3A%4X5qN~|`UmMPSi*ys{7 znY6Ww5t$Qtkc=IGvCV7=tEKhkr`j4UVZg~!xKfg8lSHVfmSibXErn2;!AW##RX`M^ zXynC2kA_pWf^eW72&G{uhz=Fm5O@Lrj?rovngy5_G9A-+1tgoGE;=1Mw!5dLIL>q&-FN=xw&*uC4Znihe$~NUAEd-L-0kus zvktd4b)`E?wVS_whgh+2EWSyhisJ_sDkr2?m?x%AIPEvRi)_AFgWT)A-;$?9Zk`oV zLVYi%ps58@;_dEc&+@jWF$=~m*faKDX(zHZXH?WP`ciFt`c{|Fvuq@?>tuWXt{Vb! z&3Wz*d$02K6q9mm8tck5QLDT1*md>GvZ{VYZ1vUYuDk-xr(((|(;@q++&ZNF1LPs~qy>5Nmh?FjI;C+jq@u}~$RyFRM)b3xp;ltj4 zUf7$r<(&U% zE4lk;thumebThty%=r6+vRkAVy);)DQv5hN>$`!&x?{7-dKcfxHhtdGbotBIkc-zp zt~M^wT)%m*{C>Ksr98cC%PMNJYx@)?@A-Qd8ZCi=E6$PI?~k0V=*Uv$A3kUNA@v~h zY7sUVMW+zEytcAL|>t;DnRKT5(UD*ylh diff --git a/assets/icons/Animations/Levelup1_128x64/frame_08.png b/assets/icons/Animations/Levelup1_128x64/frame_08.png index c692f48952c106373b56ecafd4bce7ba1295f5da..23b9a9bd0d1078681dab2f5e42bd02bc32fb19e4 100644 GIT binary patch delta 513 zcmV+c0{;D#437km7=Hl(0002`twPcO00GuXL_t(|oXwIyZxcZf#ecimGZ)FkwxDo> zauNj%g(aHMkZoyzk6=1FLXTi0J^@`iT+w2Qf&vL&C=wS)rc4uM)1`2TiI8%#eK!>M zCl^FR$5f-Yv+vEk8Tij5Dii(hU;ZAgxqJ>0R!@nz@1{N9J7cM;78dyDHs4UR^L zAHq3fa+M^y<$t=s`_iBZ0Plb+JOLHgfqEbL1?``KfpP)xYxWk6&Hx$!_<9&k29SG5?9tE!z-Yim6{&ie zIfyJ8x&>xwwjCPN15h!R`yDXt{$l{$FHF<37kSc)nSoenh=@o!1)EQMBd5HE_nd2ka|7=JXS#89*jgNP!m+d9ax$sTDpS(;usXn;T{(Nd zzTbE48t1HOBQ$Sl001NG#g-DZE=Ny+T7}*n>U9pZj8Uv*%3Rr}MENiTgNH=xd5nEiLNrG%rTP_l7>HN@+n_tNGvR(k32{1IG#b@L8Lb?y)KNyGQAg4`nkJA25vh?BK1N89%%lYij0j;d zq=>SFB`oqDxmq#di0nWV!H~o8)UXs8%oWO-F2;v+l$O*5gNe}kwIfOi{GY~iwIi;Y z5Y&~xh+G{OP)U55Nia&^iyb8t5gTrHSVVQ<7g}VYItV4jZZYBLi`FZ8IRg(pJkNUw zA)BHI8tMgt_xKpXV;}|I;N=B|H6-mk4_`zY%uJ4vW@)Q|qO4}4wa8+%<}lgDA}d`~ zNG7p%DWdR_0F%B&&{G~1zyRL+ zO!5Z$6rG?TLP;(hNkLz>K;{q->WzfJ>M6p*kTl`rS(af)%AnV?xDHX&CHm%>K1v>; z=1hoB2Lo-Mjuw>AJcZHVd_T8g6B@cS=S-Ist?_t#_wU>O03c^_Er#$s`}2At6RG*kH%iwIIOcLFlAe36?42` zd`H8NV|%w=Ik>{cJos)yU)9OG6WtnTd|p~cdKc)+S^(;2&%4_4jr#TWo~>!v`$I_3 zvoG$iyP*Gc$nt#$mMrTc?^4j2(rjCMyj&wy2`SEwopXM!ZT;kwq%d6%v)^Xy1k%`}eLa8Mr}TBFU}|SM{nDF;MJcVm>CKkZ6<_sg3WvFCvsz!Sm}nk; z;m#rV%4Nqss3XP{gY-=s0@>?ZeiF@xx#8B{Yx# diff --git a/assets/icons/Animations/Levelup1_128x64/frame_09.png b/assets/icons/Animations/Levelup1_128x64/frame_09.png index fb1c8bb9042d28b4e0ace883ea20e23cccf7ea52..1fdedbc1901b27246ed9f1fbf27aa2e8044ba817 100644 GIT binary patch delta 514 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 aR#*bwkfy%NiRRUj|9VblzU`o;xcWa;e@A@) diff --git a/assets/icons/Animations/Levelup2_128x64/frame_00.png b/assets/icons/Animations/Levelup2_128x64/frame_00.png index 77b531076df19b7a04056d7ec88284c29ee33421..0bf23b5c58f72c3813e7b88cb3d804b163170b4b 100644 GIT binary patch delta 347 zcmV-h0i^!e3hDxo7=Hl(0002`twPcO00A*cL_t(|oaNFnPJ~bp2H<~q$g*bLtkq(o zW@CfpCN_3ZdIXQ*4WzKJ^Z*td!5i$WtnF+uG0_+kDX@@T7z>CL| zk<>b24~LXFp!at9nTf>Kq@CWUYw!W{=2wrgb&2sd%3KbO=z3MCTPWpM3167#O*uW% z5Z>%ukpvvmiDyM45rBd;2R}TP35^t>Ky<8002ovPDHLkV1k^{nkfJP literal 1368 zcmaJ>e@q*76hAD#$1f9?fm_&lB#eb!?^nyUCza7&8Fec(r5V)($M^2Or4{b3UJqLc zZb;M#aT|#yBN`n{mY8g!G25IP1I8?7@sF8kV&-&dVsviKFwG<;1najzaet6q?(TiR z@80LV&wJnZZamPjue|ipQVhe&eeGfp$x-y|Ew-TdFU2SPNYt3#u-T2u6bpsTu>XJ{>#7xGZLBFZj?fs^+>(j|xgVOi1p8u|i&*?@ zp1@;@i|DrdX@A@Uqp|j319lB}gyi9V*{KjMPvFfd0Xa~i3GkFUpe2Nqi&*t5pmkPF z5%{W!+3zCONQM0Y+@l*1=dBDW(=?6qPAgOZD{&DZ@4;D`Whe&SJjw6^%L$AVU%voPA5gP6w8vxf=mo)CPtWPK1Wy zkP5qKPqAm}rP&0j^i$GtjN=y+P07?J=iInXO zL$c5&lR%1aq~xGw;81|f@s6CI&G2?xYpdJMb3EJTU>L8*>2-@F(V=&NW zW3-@#=E*>VGq;QbG<1c510gSxnM~%)wNpP~SYFsCwuVwa+?l#w@g-j7`8kuh_wejG&>WbN^GdD&mUcXv1T{-jDQ_Ucsz|W3J%eAv7 zUio*a)_%DEcG1HNOEo$sR^gpTJT0T?$qVC{R`SSPLp^r&^O=$HylFDMeEof&fAXs< zooye~7dZBu;^x2pbVn4cSWI$li}GQK5L_Kipn zbp{91D*^TB%iEV~LglS5lzy1LSk*UFd24@B$s1Uc%d)iCMQ`gpUut&T$d(ZxN%2swiG*YNp{(1MF m{QbNoef)R=n>%@V-)J7T*jVI!`&-GA{nz=t9paq3ckDkK+0xqp diff --git a/assets/icons/Animations/Levelup2_128x64/frame_01.png b/assets/icons/Animations/Levelup2_128x64/frame_01.png index b53437265966c6367911b3c54d172284822e39c5..b9990b406a410d06549ee3d6b9062fd3fc56972e 100644 GIT binary patch delta 580 zcmV-K0=xa-4ABIT7=Hl(0002`twPcO00J0EL_t(|oYj)gOB7)k$3O2olTNxgL%ARY zHbKXN?Y2nZ*u5WzPF=LRbd)0c1^EgU*ujMUfw~7>h0q-X&wA+)iH@6)w3LGeyE^MU z9cE`||ApS$^YDE?&-eR2FZ}n%^cH<~PoY862JnlH#Z1^0>3O;pSoa@UU28?%K#&3{Uyrn+AIU~94|n}s*eNw=EP$bD#Hk*Gz<1l_Sm@d^+` zU8t9gyOMk%rn-&>x1RChxsQ`EvH>f6Mo z3R*d4d+){KSbtc}eWSkc%e=^SrShf zHsblAJlxkqH4+(jz}Ft2&(Ag`xVydhXE(MhfL$Ngt%d$Qc}qkH*aUs0`wV^f-EuO9 zaOm5pXgFV#^e1RAjTV)xG4sk%2FmMn-s9P4ln;%Nzkj(8o2yXH8F&YpQD_9TeL&N` zqyWmn2wCH3P#K`%`A!IE|L6n(a4N2P9q4xgAhxDEtEsr-A|gw!0l+SmvhTIOa3>R- zJ~vtu5!tF496+C$-T)xE(x)9jtEvS+*?woofL4!}GuX##ud}gp7XdhVtD1$|y`1gP zQc)*de?7;K81R5Wk(!9ej2ycrv)(;#0PF|dI=wdxXjLfMHx1|&lh?`Wl!1TH8^C(Q ST1f!_0000dr%W+5I;yntOYgyG!7bD-jbCAVLr!BdJp4%iRS|NG>D?iBKvc z(~_a%V{|I@NvE~GT5DT;*HK5OVzo-^qoPGeDivxi{-KtNN-sdHe>mRU-G1NR{&s)6 z-|qQxveP5O;=&*ZiZo{Eb46JzK664P;=3z!l}Qv61%pM%<86WmxL8Qb@KzQ!+Ced! z%K~O;`587Df+Y2v*&SrpCNWx#JE^V*#v8iJBjyiP!uvI1;ni#dk|={<4`fjLHl zRIs~I$gNR>b498F^z*+$S zR+LV}ag<<{GzzRX1!`4cG*B^sR*Yjn5;;Go$+Y)*_lj7@qamP&Q8K;T_wo-YeDLQV-U@a_`c2@?t#1}Efm4uISK5$a zJo7^FhWb?0h)FmDTqq1@ZHY9NgtDwsjnbqNN39BsKy82|6$%VjiNO%LNKx+Zn-}^h zpc0$YzkEIz;^z5iu?}&bT;kv)|AvH$Ll=^hWj2U%U|?Wd`_>K!3NAA0wPx?NzbrwH zdMu)GV4%l1vZZo^E;am@X;jZC++Ke1YW9*xU-30}7u|gPb$GA-#KxcNo(Az<(${A6 zY5u-@*_}|_oKg68ea*@Kbkp%?pQL>8;MuCCw)C*-+mc4fI4CUYhn8c@cEqjx@_O%f z-{P&+T@C%0W`;gel|OlUJ(sAPvSi)l+Q{pQO}AHf^vOmxwǘR?xI&JHpJ@9)bR zC=9#b5S$>1$?R%X=%k>wXJt=jYkl?VwkK;%_Lj%*_wJmIKpuBz%)`}37M3>WpMKW3 zsKJ#zcJ0%sv{6N1f8>X4%+c3tyDh)3*sS}!#H5}enc!O^jZsw2Y8u(rQ1h^`A$&tH zyuR?8>IMJqoiYZRcIE7~Q_Yd(HMNp4r%uO572Ut1?eJ}hZPe~Q+jLRelsVgdBP0A! zUYXB__pV8~75(eCmn0=Eb2{IA??=)jyL&@=W=sEgZ{|R^_fY)USX^ECaQle0Ymy3z zL+cis{#g-UP_-Od-bXWy#^h}=Co8dp`jBgv57{c3w@Z&k6yz^B{6_fqCmv6#A+6!_mmw`DBJSs`kGG6H@+k;izOVnn=yUTI-J4#wJL2FU z+`^Ufd{gG7H-$xcQ|AU@S9}|ZS(|rw>hQ^%Vx#wT9{4Fex;ASjhkSf~mq(7hHKI9l z-?_-RgWZ2(Nu#0jDLc0AEr-?xO)}rQy7QwFyr6zb0v#RO!cpxvgW5Fh4+y4pOvrbW z#&>r{g`XS;6;01SEa^C{gBF@&A*fmkUC895(u2S&; diff --git a/assets/icons/Animations/Levelup2_128x64/frame_02.png b/assets/icons/Animations/Levelup2_128x64/frame_02.png index 9623af7d87422a4d538f5b2359bf5a59d7651444..a57641e449d81717dbdd312379154d3378fab341 100644 GIT binary patch delta 740 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 JPDHLkV1kR9zxDtC literal 1860 zcmaJ?dsNeA6b}!fGFuM<^D&hy?1-RgleSn=Ezg#RPkyXXB^Jy(>#u*9-Bxwx=hU@VpDwe{@ ztn~BL900Iet&59igl`?G#Wl%Npe(k=bk(nk7P-NfMzLhKUfdNGygq3)qxpU~vm z(HU7CZ2+wvaSffpDj<&RP!@WlTK(Fw!8BYeu4*C+ZWN(HM5NbSQ+s7?Vq>ZQX}s0i z6qjYBM6r~K&R_`cNVFa!V6J@c4rDdt*vO+89d|Bxnvy0m^pt@OS1KUxi;&cja$lU% z;5e><2_F=N#gvqQagA02YkUy`_a$*cBJ&;b^ENz&A;DrSaF$FQ;)|lHU`!RHRHlSmNMmkS1o zIEo@`-@MUBBPy;rt;^Sg!EIiT7G>b(iQxuE;8cBy8#;&R$T$@z2L}gtUn}k4CR7=& z42-i}Ke4zl^G*P7%fR4X^N|X@AU$$(#h(c&o|!fuPC#u2ru?%!r+%4ZS9)&qJ#pvr z9Cvs4Nv1hhF?lkwuw!uFfG2xg zfNu-i2BI7~YiO^=bEL7+FV;nKFYkN%Nu-^mW_JFA9X}Db1DbXp>+j*s(I+rq;H{Kj zm&LqnsqQ}_0Jk?R?zw2Utl^SoZ*|t}>VwUdzL%foN8E|3?_Oz0xK=wo^3t7r{`i#0 z%6cF`2FvT|-W0QdDY12bQOq+|_m-S58HT zjcfVK*fK~%o$heUZ|tW}#x-lVZ4=x0wBB7+F%GIR;1}iOl*Z1{ zrzTbftP*4u7OX9MmiWsAuPwdD4o3uO2MG5bMWQj|OjB{CYqS5JnPa;;6O9oabN4bo ztVr^Q5|OX(e>KLQT(Vp}wLZ7^R7yrzz7L#Gm7V@iS;CAPY3Zh*`$vSuusX-r6pg8%GDlOjhBMz^Pr@^+i*e0k3ahuMO=eYdYf1e6o!gqF+vAH7a@ zfApdXy1HIol2eq8j@E3sg$$4jAR|S>JfUZ@jHO{iE%9Wa~likJ*BK z#akCWJg!S^(#KZa;OCS(b*07c3$*XaYRLE2NJ2*+dOYp!0{2^ve+S&W(vrO-H*vaX~ZIv3mb)MRRIZ~Bhr6{U7&e&{z}CY8mwwLPqBY0m?`m~1H@ z)8$v%+g;%BU2EZu*$*cEt}alwp>3y}-fz!}uh3yB9d5mAv5PKe4-2mBa&+Qf2=XLu z!l@ylE)mx^ZNF#RoK$?j&YxcPbmWTB(s@sU?1&2>R n9JgUVP!$!~=cxWGG|vXOdeS+u=;;Qj^}iObnx{Mvl$ie?YfjKf diff --git a/assets/icons/Animations/Levelup2_128x64/frame_04.png b/assets/icons/Animations/Levelup2_128x64/frame_04.png index 677a3367e8d4ec943c88097d48abf95fcd29510f..4b7367a37f186dd6158e776f761ed8b17c87822f 100644 GIT binary patch delta 725 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 diff --git a/assets/icons/Animations/Levelup2_128x64/frame_05.png b/assets/icons/Animations/Levelup2_128x64/frame_05.png index fb58fed1e0fbbe7bed41ff7ab0e676ae7067edaa..a033448f7776a23778654b4598a2591cb3839cf8 100644 GIT binary patch delta 729 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 diff --git a/assets/icons/Animations/Levelup2_128x64/frame_07.png b/assets/icons/Animations/Levelup2_128x64/frame_07.png index 4f3dfc8c4a875a8b9eda2c87337cb46d984a93b9..cd4324f0d1d55145cd36ebdb8696fae25e1c4b3f 100644 GIT binary patch delta 536 zcmV+z0_Xj<45b8+7=Hl(0002`twPcO00HbtL_t(|oYj&sZ_`i|g}-;>HZFw53{;V* zs3(*ODzS6|3w{8wu^_UMjUpJT4Dc#d6&nnUpq7~>Vqrouh@l(#2YnStc8Fa!X#l!2&f(o^)P;eTp3Yzc4=w|<@SXsx)p z3Bd!*?z+Zh#%IO2Q#*`Q@01y{IovBV&J5KxOLMp|)TP%_LKbYUKTZY%;r!iPo&ZWVd3D2q@F-RQ zlW=g$TBHXn01+8GY$7off5+#zGdqXZ+zHZRvBTPfE9VacC{E)2oY_kEkRx|;p`P8& a;SWo;s}U;;{|Q(C0000eNYou5Pt+eKt#b>N3r60Vv*|Q?vlVIXCj0oV5-3sV~uvKUhXcCf!xL9AOW=? z#j!Hh@3AOV)M~Y@1E{q_>lfN~uyrh08B1-8jOZ|m)~eY0Rp|>5>mQCccen5D?Qi$D z`*v@&H7hfENZb$rK(u*=F&oNK_@qUI!}qm_brvYbNG7{9M|4Vl#>)deCpvh<>}GQK zY@XqYmi)kL0SGU5+3b?tGK*$Kx10&u$OCQKL_IvvplXz0MrOAHcl=LQnW%zlNzM|LSaBJ z=cKcZ8U5klPKV}7l844|zuzzSE9Ig$2PZWe4NfRXn6F5Xm;fgDCWbs1c^~U_ zc_f!8AVH6eLoASVC?wmLh1+AXJaa7g`fCNNh6flAPRa?~?GC2aYweS=`TuFW(AsA! z^6+>z?-L8WEIbnD#1I&k@8yAlhL8 zU~Do;VhUcxVvNJ7#2jjZWz-zQDk*iy&x`Pe6eFcJ7*Z%jhMFWz28}7*XfmZJlQrok zMY^5{VabaO%(G(jbP0cCDE5FdJu(DP9T%# zxdcx1`;vlZ)R(f6_qqysF2gIjk=`QHt``t+vMLot@hXg=92BNv8JIl9DKW;$kQ#;B zNsuZh+K=a+D_&opLJds96XHS>B=1aSi4=_IRT_+?R3zq55(>=8P?SXxtnYKZb62{rk^X?YV!p^-x&gm!oa>Yy8WPJy1M398q^5547C4 z(=`pGR&3LMcXjcZs!O%&TUU0T9UD9OwB@P3et@<7$a@poKcu7XkC(Omybc7eJ={95 zeVAT`oY3Wg%ij#!8CQz7e+E?1k2v+d-@09!H^lt)TH2jsceBLCC1C47eZ~&3zv!t} z_&4Eh`Hhd>SvsNsSpR8Dyuz-ccFIjNa2a%(+3mscgKUD)(#(t zw8@O~>&LHHfBxd!(XU?lRI{OFd+U~6#H8u9DWd+|)cGYU`CDfXm+#1=%jz6d{CZe-=ON2ixnVKdliTcNt1Fg*&2?Ebx{I5+ zgpH|Do0=|$7h61qiQNx3j(i0l9JO7py?yRc`IK?OnrzMDL2(Y~0!7l1CXt2ypeH8>Q% zb;N+`8eso=**r(niYY6c;q3Ck&G#}t!8=PTXR2$!mp9!Qduq?dd+#O#l~Z%5`#E*!qQWH533d`rguo=FX$ X{(3~&sLLIZ!9Tg#lx3_*UtIPdOIt_2 diff --git a/assets/icons/Animations/Levelup2_128x64/frame_08.png b/assets/icons/Animations/Levelup2_128x64/frame_08.png index 3a5a28805a856668c4d05c0824cb8253f9dcc732..fea362808502f86392df0d3cc21f0782f4c5bf73 100644 GIT binary patch delta 534 zcmV+x0_pv}45I{)7=Hl(0002`twPcO00HVrL_t(|oXwHDZWBQihQA%pI=19wZH2-O zWGUzgZhl+rWSR{CT1N{p9b@8~*`%+glDb;B362UVq3m+=1*4vL`u$eSp&4 z7c~^H2A4xX#Wvljip~GVQZwX2KyuqP6xgQl#TJ1132+nuVzosnM1FZyU zJ>DKux^sThfDchPD`fh7-N2Zo%0 z0!y_J+bZycg@3S-1=gs80-;C0VPMF~bVmXFuJ2^7!c~Sn1)i>qR^WFNr2%>1$4Q213))tp{c=cTGRpt zAO`YLv?nq>1(Uj6Pa#(bLvYY+rH!IgJR#QX9mGFGBo=xpsPkziql?ji5{sn97*By; YgoU!1Q4c#vrvLx|07*qoM6N<$f-*Gdr~m)} literal 1598 zcmaJ>eNYou5Wghyr80hi)uN+k)Pm?GcbC8=R|142NRZG>Oe<&|xm;c(1G$U2qlst{ zg&DPek2;Oj7O=G++G*`bty2`y>Qt~++WJMO&QPpcuo}l1Ypr1V0>t`<?RQM*LO_6fcXW5^(|V68(%1AbKb70I1o+ zECV*cI9Duh2U!Rrt9RQ=#1cyp&GH@v6R}YQJYI-KkgS}5mtiY_h&sSBH>Z<_T29DO zw^Juym|?*!UIQq17gYPeg6d*BTV26wo${P)G%G+u2Oc0YXuwm+33NawAM{JZbwsU{ zqk|@5g-$+1s>EVN4ZIJal!Cxm9LG^gs{l@hbf{bmI~OH!l28)xrZ9q{Nfk|K(cw!D z1NxjU+Gflj4hMHSdATThX{FNd_bdD=1@Bv?B(z$s5+{`;i9riYSiy-*0ON!iQ4dBS zus*j}bn_e<@yIy%Dp4ngWQVfwcrBKvjyYktR3S8;&L{b~H7DOBPpT={o z1^WswP}+dNSNT|YB(51zFf8AT14RrW8~Qb$8=ebOY2?`|58yoD8d?G*Lg#!y7VMjOFe&WpTI&U;Z(rNGg&g>KHt z`-Rz&Ga5?S2z>6hfHU96d(gom)9&XGaItDNMFBO&P!0-HvkXk0a;h-K#SmIjZJp~YUy*edrd-mqm19gXFNgFzmz6J_Ojw54`LgeQ8`Hz=h&riUQ zeIhwqg&da#&Zi~VGJlX*XT9H*b9};YNgd5E)&668*zwGD!Iw&Nb^`))|R<#+{L8v+j=E&C@}2K>3MYP zQJci7HLb)h)i>V%>Q4XeCl>w8&D}+&ZVp*J>9$aIPMkaK?O+EV)5%;v7y4=4f|^g0 zuYNwpAC?@P+AAFEq4q78xgNA1UN;J>QS@Gz)7Dwv)W7P~rh6y%CVaTqJ1w`!8v8ZU zxW#!kRO%8(m#yUN-8H3gmGa15eNuDEJ;zw{z^vL*;@!H=V*U13t)x^_c(eaaF)>%S z>vYqP`&xy$dt$8N^u577^I~_n3L6H@PwofvTf(UldZS7gKDvW{W&J$i@ZVL3T1QMm YrcO_Iys{zVX5^1AGk|J(*OVf diff --git a/assets/icons/Animations/Levelup2_128x64/frame_09.png b/assets/icons/Animations/Levelup2_128x64/frame_09.png index 76267a2a8d6689a04241f432e55501ae91231b2d..fd4a3de1d47408f91a3a3a692072e3b597f13bd6 100644 GIT binary patch delta 560 zcmV-00?+-#47~)97=Hl(0002`twPcO00IO_L_t(|oZXVKYZFl%$3O4gnZ|Ny&Pl~U zPE_b*gNRhndV*s?N5{H32s()%CJ(YWbZEgvs8~Uq3l2I+d!lFu2RAz?rnI1xNRBiZ zlX&-YxOh4HC-|G*`@Z-6y$|2tga5Ab=}PZC(g3wED<~{gI)9T2HiD8*Co(3*VOhHW zPY;K!0KmEVyn+U%#aso@kx6b`6V9b1n(-$A0+B!hko`soBUE-rkxM{{wf zT9M3OFzMtbyQq6_UaQoy;f2cf!v+*ZV!(Z|CSr=qP=5i1CbWa$hbW6g26!bRA|5;z z5nqGl1JQB@Yys%{!24E`$8q2xKqp*81N$L*06-%^1D4O*q(RU~GQEPA2)>sHlN_o5 z;Q4=3A2R@sYtXRGOZWwF_5f(;lP!(fB!m(Wg7~0n)vqGkfDa1LvbrX+19+g(KzV2v ykvrz^e8$1W?&&SlDq8J!(jv=B}X=z#+_E6{MjUE<;O0RuAZR}a=9 zwF-fUO@v|tGD0ffk^`GK9}AO89Az*JgGrr|wbO)6?Vya^sAMeZ2xZLP!R+QEKt7GBhUfV!^ed^ zP%O{*TwcM&dEk&o+QzLB3Wo?u9O)IA)ET^#~c10RbmUyUVWE z(yWc9X&cHU;y6mM8V03p4mE1iVhpXd(~O$bhW$JaZ%U#_t;u92i8L*an@u`%DrGh& zsS|anW+K&yg|QhPUZ6b;8;tJI2etFBv}nglQt67Ff>S>w5w6tLE}0? z>%ef00~y8JA1U5Qp8^d?!W-tI$8gq>$Y4n*%W8BeLuzo;rp5@=L6f9fjp14l3{e4! zs!-oN(nnzxXwJ~`;b4Hx!_i_rV4i$naBABQE(Svvk&~5c26AXNb1T^#gXkl)z)r?=GDGjbhag<;X+I^Ym6=HYV95f`oAcqZx2a(kL`jA zr>s0$L{0pyV0JGRm@8{^D*hcDh-o7WYI0u`+Yr<;XkD>Bc%qXNp|hDh*D`Ll^weakq7Hv%jfw#W(x{ z=>21dVzb(Jb&K-P`lF*|_1(Sw2F1rMeMe`;O7=9r1CxGOXl`#sJ>e>%0zNo z{oWJK{^YpC8Xi()+wY(6oPTMVVdBL7FY3A`96tB%M(4hThr65ka}VURX5_fG22Zb! zcq^M47(6xZcJrzFd!+pM4pEviX5EQh*}FXl4(^5Isfc=M7VK`2DB^yND1>?ggrqn2 zLQJ|$tT-#tMy-|?>SV$AowIgI^S@8AXPU*T`EN9Lbx!TG47NX={%ZU{f_Tqb{pHHo z*@Xqy$CN3mFIgKZtNdrl?MA6~-iAGQ?Z}O496dg+|aOkG? j&5o)3_*?4sMo0#=U6ZG6`PBUh=qxD1oJ|E&3oHKv!xl}j diff --git a/assets/icons/Animations/Levelup2_128x64/frame_10.png b/assets/icons/Animations/Levelup2_128x64/frame_10.png index bda1bf44ce0a0cab9a03d15fd284b709590f3b4d..fae53599787b66557f8f3b33f9ad92428d7f5b97 100644 GIT binary patch delta 563 zcmV-30?hr)48R1C7=Hl(0002`twPcO00IX|L_t(|oZZqfi=0&y#_`{K=gnr7+1(L@ z7_zVfT8Kq5sD*;YH@#rKKp=J&0j(4a$=;AAMT!J$gos;NFIc!m$c`wQLeMJOgq@Ip zvTWF4vzWN!yvJfDlbNsJsqT5W&wbAQbNK(){N$8iwQojf6o1Pv&Im>PzBBW{(YSGC z=0?-~4f8ZV{r0q%BGT#Ne~?72M#)UlM$;+v<$cm#{yA{{!-Z+0(a_T2vW zlQdXwrbqepH{q9&<@v*(-W|5u;BgPf|Nfv6vZY(C!NYa(iSwIVQA{yDadS25G!6M> z4rYWFf0fgg-Cc~BE)6yI=2qGGYkSZLK*mQuBJv%5)PlP!USBxuxN3{-Kf%4YYAte9-vT}r@q z07osJIOy08Whx#_J*u_UX%#K!sJ-lXRA;0Y?dWI~j}}`UmC`RjtbaJ}?0)C_z4v?9 zu5ss2jUV~qNCZLRozv_dI9J2ZqK<~+6?L5pPRWX+NGT9~N;xY5#LA0afI9u`V&DNR zU$N|KkcA-8D}}-$rN}jt;Y7cd4a;al{vbpnNLEfL$a1AXLA_wH5HMr6kF{Z_z?-qT z87|Tlw1E;~TBQUED)S4u%2Lk6V>#JqR)~QL{6JyRkbh}FWh1MvVxuL4wkfgx?=_ZBSZPJm7yCPnDJnD}sRV z09h=PIG7S&Y6J|!_iRI9LCA)gB?&Mu>{7ePmH9zHaoWuoywUOk&lp+YWm(pXa~Twc z>wtm7S+7rzdyOQ=8hMt})5eINr{PV8JcrSdLDG3NNl^}))#|Y4*^MTf&2BY19QFv- z8ITn=z=4Qu0ooqI8uFfrWo!~)6;Ub_#ifx#aF>XRD3^#qRHxUH=;XOVfEUZ&-y0-Xp(xG*FId>I^>i34CT;T&zCaIc=!;XamzW=P6tFwhtQDH7qjd7_RYN3b}< z%g2oYH;-Ej1Ykc&uyN|D@^`|f8{wW==z#OUz(Dh*Z9gMO)J&({S{Ul?Ez)f4BGoGg zsw$gzeSWkf(6}URzWLmo_{1b%5c!_D@$n%zjjp3!yE2Vq!)Av$d{+5rR!L=3i)*VDMSr|DmPI(qrLg% zbd@mTSlqeMhu^*06+@(@T$sIAq>$o6h4Jku-hL#%!+du?8SVZfHz_x!IFxHl**QD) z*8UXDnjVvFEPf(;!irny#qOiFo`Qs!-{=jea{qdC=h#V^+PKH|ilMG$>;t4_OUIp4 z3xrJvKDw@L>-?tmBEEAT61+5t-gh=H?ZbhBG) d`<>&pI=m5)bWZjP>yH&963)5S4_<9hOs!iI<>&pI=m5)b(dHL6nbwD9yPZ!4!j_b)k${QZ;XFmLn zjqNsD+YPq1J8W%_*aXBie!OR3*tC!PwU_7Q9H4U564!{5l*E!$tK_0oAjM#0U}UIk zV5)0q5@Kj%Wo%$&Y@uynU}a#izM}XGiiX_$l+3hBs0L%8o)7~QD^p9LQiz6svOM}g O4Gf;HelF{r5}E+GUQp8j diff --git a/assets/icons/Archive/back_10px.png b/assets/icons/Archive/back_10px.png index f9c615a99e69c0100b03a9ae7b2df903da4ecd66..b7ffd4efbdbec553767c6d955c6c3289747728a5 100644 GIT binary patch delta 77 zcmbQmm@q-oodF1zdVUfBQtF;Ajv*CulK<3Cc*)LuS(as~Ut6IC((38z=d#Wzp$Pyfj~$8t delta 136 zcmYe8#W+E-o|%DxVf&xhe?W?{ILO_JVcj{Imp~3nx}&cn1H;CC?mvmFKt5Z5Pl)UP z|Nnu^&_kE&fD~teM`SSr1Gg{;GcwGYBLNhY^>lFzk+_`9z{JPKCdtNT&DK_Bz})df e+M%P7kwL11DWYLp+bN(z22WQ%mvv4|2~7a^@FXn& diff --git a/assets/icons/Archive/badusb_10px.png b/assets/icons/Archive/badusb_10px.png index 037474aa3bc9c2e1aca79a68483e69980432bcf5..2b5a3bf97382a13e951505546ed51b9d66da0899 100644 GIT binary patch delta 78 zcmX@Wk}yHSgOLFUmU?~?08;9nE{-7;bCUnmPk5=we3+44&5=z_k8Rm<9v>c_p7rYt eJBXd6xINKS!UMvl!qLiD#K%R*5%=r#Gtx=Y8TZE6OVIIq|qj7bJe< zy5jO1=Yqom&kURC)I4#RSS)m~(!s1~YQ$5-5mnPEU&y$ua^B*sm20eZPyWJCPG4E( zI?WLzu!to{e-NRdh7!uCB1)@HiiH&I$36VRj$a~|Laq`RITlcX2HEk0|H1EWt^DMK zn-q!zT`#u%F$x5Cfo9#dzmILZc>?&Kfh)c3uQY&}PtxmcEph}5Yy%h9ZB5w&E_Z;T zCqp)6NAlAY@_FF>jJ_!g4Bi60Yi@6?eVjf3Y3eF@e*+vG0%HZrUiWx+PiJrco@w>> z11Jx2iD%?txBvhE24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007 zbV*G`2j&6<4mK2EGyVzy002EnL_t&-(~VF;3IH$&O6mV!cBetK8hQysQ-UOgfvg0; zBe-|?EECl|C-=m;MRn8Ku~%W3;1<~@+&|jU2gXe!0|UhaI{*Lx07*qoM6N<$f*l_4 AO8@`> diff --git a/assets/icons/Archive/dir_10px.png b/assets/icons/Archive/dir_10px.png index a4cdf453e32fc40a206e4225fcf477a64a1f6f99..1b64022c2ca090cf0c85d64a90414bd68c0a8a6c 100644 GIT binary patch delta 72 zcmdna6g5G@iID*amU?~?08)ycE{-7;bCUnmPv~rIT-ntK1RLi~>}+K0lHfP^XV1al Wvzpc4VA4$wkS0%8KbLh*2~7ZTP#CKK literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2hGm!icqpk;}SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YhSC&cyte;|tiNFKbc z^$EygED7=pW^j0RBMrn!@^*J&=wOxg0CLz%Jbhi+pR)4v$gv!Fu~!r*B=T3-0%kIwEBzxs9jH>Z#5JNMC9x#cD!C{XNHG{0 z7#ZpsnCcpuh8P-I8ChDHnra&uSQ!}1Hm=h^(U6;;l9^VCslmhoqQPBw`6-|V22WQ% Jmvv4FO#mLQPFnx~ diff --git a/assets/icons/Archive/ibutt_10px.png b/assets/icons/Archive/ibutt_10px.png index 2fdaf123a657c00c9c84632ca3c151674e451ae1..f73af065f427ec8fde39168d406f997665b8a842 100644 GIT binary patch delta 66 zcmdnMlrTZXM%~lJF{ENn@{i*Oer%ulQl9zpeCD27H=p;CGtL<>&pI=m5)bWC*+s&X`qmbr;B3<$Ms~3f`-KX%+5*7 zhxan`%;z`w!#>%c-@wM^z<~n{3>VXQv+hhNs0FH5Epd$~Nl7e8wMs5Z1yT$~21bUu z2Bx}(CLxAKR>lTa#unNJ237_J>nn=CplHa=PsvQHglaGb>IpG01*)?$HiBr_e$xf$ PHwFezS3j3^P6` VROYU>p1}7YEuOA^F6*2UngG(26<`1W literal 3635 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 diff --git a/assets/icons/Archive/keyboard_10px.png b/assets/icons/Archive/keyboard_10px.png index 74a10e6db2e784486a6781c0db8346373b9c7409..dc3e3cee21d3da29158eb77e94720c4d22f9fb9b 100644 GIT binary patch delta 77 zcmbQtm@q-oodF1zdVUfBQtF;Ajv*CulK<3CXl!iUIB()hDdx!<%$Kv-)O6XFHS+*L c&wqXYz$e7@|Ns9$X6T{IbwG-zopr05+&7&;S4c diff --git a/assets/icons/Archive/loading_10px.png b/assets/icons/Archive/loading_10px.png index 4f626b3d58c1800c375ebbfd358db6c72374dbcf..a6065b6c0b07f5f7ec2e6af07ca6bc7305718bf4 100644 GIT binary patch delta 77 zcmeyX7(YS6osj_umU?~?08(n6E{-7;bCNSG4x}7E@TH~k97Szr>Co*%Q~loCIC6K97g~E literal 4349 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 delta 123 zcmYf3W1Jva%FMvPu>DW$KOn^x;1lBdzYEA>*!6Xn0g&P>@Q5sCVBi)8VMc~ob0mO* z>?NMQuI$fP#RZrYWM&2j1BIkLT^vI=t|up?CnV%2BqTO0l45JKPY5~4z`~&Qn7RGx SAFne&WelFKelF{r5}E+bFd_y3 diff --git a/assets/icons/Archive/sub1_10px.png b/assets/icons/Archive/sub1_10px.png index 5a25fdf4ef1c6cf53634aa74675001a3e8c85b7b..70940ad77935c769ca4df4b73621723e6b812316 100644 GIT binary patch delta 65 zcmZ3@6hA@5TFukNF{ENn@{RWgW@w-JGO_U`H?uG^^JG2d$tM|)oll=BAu&Tjf+1%M VTbRvDTP6k|@O1TaS?83{1OP@`7iRzf literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2xkYHHq`AGmsv7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpafHrx4R1i<>&pI=m5)cB{fFDGZlI8yr;B3<$MxhJ?+;A4eL&#) z0Ra}bue?07WhLz78x$BO|L3mq-MMxdP^D^#YeY#(Vo9o1a#1RfVlXl=GSoFN)ipE; zF*LF=Hn1|b&^9ozGB8+QQTzo(LvDUbW?CgwgE3G~h=Hk=Gf#{`fVe+UKu0050L&%FQu0fcEoLr_UWLm+T+Z)Rz1WdHyuk$sUpNW(xJ z#b48EMXC;V5OK&*oh%d;anvdlp+cw?T6HkF^b49aBrPtEf@{ISkHxBki?gl{u7V)= z0pjT7r060g{x2!Ci1FaKAMfrx?%n}Hqs%lb5Cb&5YNir#e=(C?6@#x35I{d-=$4sf z%t=xbp5yBtKEB>Xd6xINKS!UMvl!qLiD#K%R*5%=r#Gtx=Y8TZE6OVIIq|qj7bJe< zy5jO1=Yqom&kURC)I4#RSS)m~(!s1~YQ$5-5mnPEU&y$ua^B*sm20eZPyWJCPG4E( zI?WLzu!to{e-NRdh7!uCB1)@HiiH&I$36VRj$a~|Laq`RITlcX2HEk0|H1EWt^DMK zn-q!zT`#u%F$x5Cfo9#dzmILZc>?&Kfh)c3uQY&}PtxmcEph}5Yy%h9ZB5w&E_Z;T zCqp)6NAlAY@_FF>jJ_!g4Bi60Yi@6?eVjf3Y3eF@e*+vG0%HZrUiWx+PiJrco@w>> z11Jx2iD%?txBvhE24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007 zbV*G`2j&6<4+Si}m`RfW002ZuL_t&-(~Xe14FE6*1MP_YSH2VxC=CcVG=4FF76?hQ zJ(2+VGu_$Lww$bV?L-xwgs#TvI;F4-w$bY`0j%B=Q{0aW)?_jMUQ$)>00000NkvXX Hu0mjfRdn(| diff --git a/assets/icons/Archive/unknown_10px.png b/assets/icons/Archive/unknown_10px.png index 18d31c67cafd7cb56aed8598ac6b2ed20424a029..2d2668e8531646523b08a5014804bf8c75081902 100644 GIT binary patch delta 77 zcmdnN6hA@2osj_umU?~?08(n6E{-7;bCPQ+=D##$o-DvTS%&#?JlnE(9v>ba9~&N@ dc!?Pj5)4IiSf3e4KKl&P>FMg{vd$@?2>?=X7M=hA literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2hGm!icqpk;}SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YhSC&cyte;|tiNFKbc z^$EygED7=pW^j0RBMrn!@^*J&=wOxg0CLz%Jbhi+pR)3E$QubdY!n0v$$PpuhHzX@ zPT)yQNJvdhNJva!FlvZk>0n+kgYg_2gKP=oK5i+EYe1!{C9V-ADTyViR>?)FK#IZ0 zz{pV7z*N`JG{nHd%Gl7##6sJ^z{V!Z delta 138 zcma!_!#F{*o|%DxVf&xhe?W?{ILO_JVcj{Imp~3nx}&cn1H;CC?mvmFKt5Z5Pl)UP z|Nnu^&_kE&fD~teM`SSr1K(i~W;~w1A_XWY@9E+gB5^r+MSem?LBfxE2A6LZ24{*B hZt$luT>Q_>FfEhIUc2YQSD;b`Pgg$|mUT`EO#r1TEYAP{ diff --git a/assets/icons/BLE/BLE_HID/Ble_connected_15x15.png b/assets/icons/BLE/BLE_HID/Ble_connected_15x15.png index 64dab9b5307410bb10fd7a6634cc35ed88af4671..1301399da974836ee21daad8a7274102df8940e6 100644 GIT binary patch delta 93 zcmdlalRrTsoRI+tgx9Wk4y4RHT^vIy<|O|}JpQ4f|K&seV{UG0eat;;F8TZyneork v!05KoCNJZy8is!h5-d&}Q#pU|!(l!KyQ8D>*If=u#s^>bP0l+XkK$n+)4 literal 3634 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 literal 3609 zcmaJ@c{r49`+jVNvSba(81Yt?8Cx+K+gL`~8rw)>jKN@*W(G4tN=nI=Eo(wa4Q%8vkx{u?zYHw>PBq%Eg0DzDc z(hS9!#kL=Q9?lyh8i4}IOAwh8Gn{vj+=2WcHX}wv6 z{-S5$q3oHN^-t@S6WJ3RZH#u2$UR~zN#ptcfIceP0M?_BV27-0s*2>6L=N(TM8}(7 z`|{NTz#I>Q9zlC#w88a|1aJf7E{y|X4MV@8D(qEU08kPz2o{^z#g&Kx8Z{gnC4k1g zz$1sJ-hx0100c6^Ou@i?Az=E4l_4L{Q=Hr{4fN#iE9M8{xPXj4 zwXcCZrZHH9x3-ik()GEPC3j>M9}pamP82cr1R^s`)mi|M9yfs4FW$-nvgXNycGe6Q zdyu19NG_nZIkh$YM5nd{EA_o>$im#H=N(jFoW#zri2 zzHaq}&H-mLjWbGW3!*m9Vu-<|sQ8IyUQrUuD^Y zZ5kLaP)TNrO{v3TljpVO71A~Zl0$?5=4HED+vhu;fXTOrK ztd-`*>@YLleW2Dr)O5#aVKIBW;(Net{L&fmykHDc=SE~9Xfj6PB)GnjQpjCw>YwC} zR9aA{Na)9%HeO5YYXoUs+qhO~shM)&$w{7%+(E`K?kUJ#dz(k?py`OXN2cWmbjX(N zhetloFX}k)Erp$Yef^5L=T)?gtyCsf!S5mvbxHH}AK>JBc4f+;Vyks@FWBQm zv;|XTR&l>#uJV~bgvC9Qkq3mEZj9OrDk>*xS?#h4K=vWk3mpm#J4Nx?)+$qpgr={f z{7)j8p!B5jM3F?h8|zJPM$08&^)bWN0{I6}g(+gkb#X>xymxMCnP%kOKiOKG`;q^C z4D8k^D?(ndJ;dQkvA9l9rgCeR6r#CMy`bxTCf*mn;s=?eRS0~E+HaozKD{&G+s?^} z$*3P8yM-F2nbx$W4+H`tb7MFv+BM zVyUoH=hTSQiTjRDR41b@#{FH651d3EoN*4nYvJ_Nexz97qtt`0VtJ>R#YalpP$8%U z`}UI_1=Sv#7uT>tPcBDWD+@7pXTL<&4 z%LPNuSvw%8_kEZ?Nj^E_XIr_1-##9k)Bl`(yiKu9sO_9OkGhfi<8J>FpOT1@qrIWM z)xBOblo_d+sa|#vImb9hEoTWvfUN`xR2-=|SrJ{)7u5dU@B?;=F)6V0Zb^9ZONZqW z;YY!e^mleQyF=k9REPgaqD-Ks9(JxJ5&JFRCZ5$XcWLO}o@T#_q&mNX4y%GcSSqtu zd`EQY(uO`v(mpSy&R1N2fC0t}uhmyrS6DwQhyL`(& zG5PLev}0iuT2M=HAh~j?a7gD(ab5A7Nf%!^-`mujMP2E;ClZ^*(u32b9SB9&iio#D zn^VVRXDd3NeOM~UdYRQ<@|p1QOAEX{{K2}7MwVQY`x`jhf8pan$LN{4B@!7wn-ktw}#xeLT_EEzFQ3*fLAL; zbVp=F?A*v*KepDqneek_h_N6wZ_DS&^@?kZtLlR6g{M3LJPN!Symxl$^2PDJ+yU8b zC~3M|K*&{rl1!?VUXWYGYWMr9Wp+ruL) z{+L0_z!;VSUM53&HC*D*VXgZb-%pk~(9Y6U)Vi6YuIs*4@$(7A*Iyj#^M6hW_GS79 zq5`qgS*%Fbebxo~m7nJG>0&hT0|GNwN9%g(;8#be+!KMB+S#L-j%hS(=~#dM3+eI6 zw&vUr16N(w#4x?+n_}rtjK-osruLA%c4I|E8+q}COIgu&=GFOe`6nNjvyL0w7|(G| zUDo?@EF7`sciGM&=&iPZ9ZHpvBy;11(xQ#CS@&0F`{%Qt)%8=dQ?d(CLin^Y)lbm! zgXMNUs;bFCql|IFJGta5?^Z^YR;i19l7Z3I9R+2mQhQ-3YsfuSy4zkiIty8aJoQm~ zz-R0Gs?x5DQejnzkL+2Gp7yZluJeQ78uOP@O0f>oAsU+Qs0wd7ey%gT*{}IY+NS+5 z8s)U$&*)!>M@4nsxr0!>=%SNaoYK@xEd6on1y&N1>g~k#Pw#SbK7Uv`)q_c9-Yfn2 z$bvOK>|*QD6}H46^!9!|UjA-o3OQ9cMP#nH);v63nqiQIhLn4AaU_*dHP zQ2(X)*0R=jtvtFI-5Ix*=ghu^+eZqPLvzl%H#={ZJSeaJtkT5nouAA$Ik-3Fq#d+qrDcp7N)W0{b7<)I1R& zppL}tN5aTsS&^jPteMP^XXI0dgjgRTXXGub%YQ|%HAk>P4Y~;~xp_GU;q$Ab7n4Vdyo+*kY>nU_ zGx`}T)*BfC?kC-=d=c%rM$)ud>vE5krp2!l3GQ>1E|a6_gjoA_Sa-zzYeJtgQrJupeGtwb~ zv)29Yp$YVd8`Zs=-*>Kwd_P~d^%z%682ss3>)HOsRfH`pa3yyu<=2NRL!Fi_mR(8~ zN^uD}3JP*UvQ-P-ZOKDLPm09b-$gk8VoXsVObl!eub*f~Z}iOVT8(Y5DP-hN@s|B!#~QYw=)K*F;Y8Th24v;Z;(DaM z@*d7#r3}p+O>-dm&_Xa29AM&2^1^|v2pC@+3WxD#oNdAx0055)-Vseh+gQV}B!UKJ z+ed>=Aal?FU|>WiW3T}@8psRhizmXt?3XoQ5Z)UOcG0zg+K>@AKRhy&f^!J9b;O1S zVD-JhMus2*I*da=z|k-uIw6oqh0)>QKY3xC^|l!T2L0(m3xI?F5{0(02O&rl9O$Tq zraBf1g@TUiYj|V4Fjy}yHINomOA`XsfoSTeL!mHjeVC38=&Lss+)~Qs;Q6QyD}WhOSPeD*a|K!%?vmJeh_k z5kcFG7%x%~4G!i={VN9o`5#&$_3v}yoEU_TAwx7ZpxZh9cC@ki|6K`$f4r$Q6z;!z z|CN~P$ROh&C>)g(M8R?@=cBY8iVQ=&_Npv z7Ej!^9QqStV*|4yQfU|>7H4G!2Xja?@OW<+RM*_}sEH{;SI0tMQ_~z_s%xQZenj8Y z#MBIGc2r;QH`a`V4IPoKl5_wQQ%!g~LUmcOwk{}T)0h=FX^_W#uSw~5n0+sl7im$Uh&`Ef)}$5S}1 zy?{b{ajwM@~ diff --git a/assets/icons/BLE/BLE_HID/Circles_47x47.png b/assets/icons/BLE/BLE_HID/Circles_47x47.png index 6a16ebf7bbe999fa143c683bef713a6e2f466cbb..bf72412f5590fd172de7d5c67d4c6ac1591e20aa 100644 GIT binary patch delta 206 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 biU<_Yn+9Io=xs3K`2!qm58ISjpSt)z2v?8| diff --git a/assets/icons/BLE/BLE_HID/Left_mouse_icon_9x9.png b/assets/icons/BLE/BLE_HID/Left_mouse_icon_9x9.png index c533d85729f9b778cba33227141c90dea298f5e3..5bd2d395f5e86d799ef4746d0f1ed57853a2d93b 100644 GIT binary patch delta 74 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 diff --git a/assets/icons/BLE/BLE_HID/Ok_btn_9x9.png b/assets/icons/BLE/BLE_HID/Ok_btn_9x9.png index 9a1539da2049f12f7b25f96b11a9c40cd8227302..ceff4e8a880932f33253e78b69656ab440ff3e13 100644 GIT binary patch delta 74 zcmbO#6Ei`=g^>XWPQ0?-3#61iT^vIy<|NzfnEz6r+1ZHsvMrk$8yKmwP0NT>OJidQ W-_DY|k%50TNSmjtpUXO@geCy|UlbPr literal 3605 zcmaJ@c{r5q+kR|?vSeS9G2*Q(Gqz$f_GQ#q8r!JE7=ytqjlqnNNGaK}Wlbolp-q`& zs|bxHiiEP0&{#s&zVZIv-rx7f*Y_O9^W67+-RF5;*L_{ra~$^-2RmyaK{-JH0EBE1 z7AVdru>JD$aK0bym%#uaXpT2Gcd#)x2azcxAABGV0BC)Aj-lw(6)B^^6`Y8RS?}DV z%)ko(See1!Eb3M$dL6)A6csaRjExg?k&xVzi*Rm;?iNJk#f=mkVEUR~jXN3dd|Lmz z;y}sMh%ol-?E1&`>dD;6jdps6NYoxN)s%@sf4~40YY6LAOtMEbwA4g#OCpANL823^ zSH66W05Hcxr$tg98gFntAOYL}xm$C;Skv&Ym?{TVR{)d(41vWacX1`7fM!jnW(lBK z26*WB#9I(Z1Ast!xEUC@Cj`v=urcBTdP`FWq=DYTy`}s>0vC{VzHdNRvxNFy}ir1|g=xDsrFP&l1P<-Sv zXLqYVYz{b^ZIV@1Ulg->7DEgvM*Min&Y8{8QW! z$_pA434?^wCTq$4%^>Zo8&|8XwbCv;KEd;WJJ{s;T}8R8Zwi7ssk$QWQ5l5+opKfX z;8D*COFEB#4W^*FIrRU%PDSc?B(}+9ZV?N9(yH>0uSnM?xg!>+>;e z{{7tXQQ|ZFXD*7q3XD!pwnih-=66+Qlqtl9;N-D|PHoI&B5d8>^V#i{mE>V0gQgu3+(DG%B z|8W!pl$lbQERt-0eZA%NSfvE4F>VAYP`DpeoF;Zm4`)2id;6xgSysWl6K$pWANcRZ z!ETRXKIU9G=@9lEB?<{ivj7!8FE9WN;qoo2Lr0#c@DmcF=JzU<73PmM3 zbe!-gs`c26Uc(AKz7%U!a0yZ5gsprdo1i51MjJPeHtV6d@Jy=*+_3dJ^>}p#8N#kPK_4t?hltq>u=?m+t z?em(Y%u3Bp_pyV?c_w-4c}p+?Y$aHr>TuPGs@SUj;Er!b@3GVLDS@T8OTts1JFS-p zKZ=&5zp;DRor*`Gy8MTeWdpVJv2(4-*slRM@XXG+i^F&Ku>7i08vKenZHoS4s(!!h zJE}*MHu7PR_IfdNzu*P}3^87K?f&A1;>NMsgKcR6**;aB74NC7tR(NB?{dHT-9QhXa*KoG!kGU1}$l2D>ypo)fSBuG$ zkTW4?+|I1m?6ZH8tD4^fB{cUpoEoZOo%4hl!EtNtQ#?j*jJR)x-Mn0TrxrX2uT_rh ziOh=Jxsktqbd9x{^s{c5z92Pk$LGoQl53o+=7QXXCp-Z>io998w|DCCCGfr20oiRN zX|`KH$W4)wN~)J$kYB~>4EU;NcS^qH&yzeUzXokpMegg_lX$6ve^4}%bY~Sg)%uJ- zZpb$p4x^GS5d{XJP=STbfpHV`58UBH& zKFg&BgS6bV+#-|^KBGeIBee2B zrM-`uTB^_(eS+{-KK1h3l`-Yjpv8X4z*uBwQ3a~pL0Ae2xvNGyC3A|#MARToe$W~8 z+4{DsyenENye9df1M}gNUM9_Leh6G=`9exL-cdSKQ_CGyEdZ3W5uoR!Lb^D)9!bd=7h@R=M%=|JqX9XP;Z6# zFD15Bw7qTP(ZlG?o@#x@=wG;XxM(>n@4P$9WwY#lW$h=`zMi_zq30HbV-zHheqpE0 zR6kXtxdzl&Ml2D#zDIvflJkb*e zIAI?GMjp?JBK76WW`{l{pFAY|%5?nYUxRnT&y6~Kz19AD;C0(z*7?dM{%HhVtqWEc z%+M$z6u@uQu)kg_%2PO_U|n1JE0V1>iVbekOLEOG$U6X^Umc519WC)L$t%`#Di0$ zY1|5H*440_`onhmXeayq`8EIg?x2r9KWe()q}QayqCMEC?c4meb4}#i`HHPaxO&3SPtSVKj@ND?Y+-@R`CDnf-d`T>vTn8RR<=@3 zNXk=Gloyh#S@3R89WHrXBHr;f(&ZO@I_Uo7;O5Bs@ecGx@7%7{_>Q`Adg&sCeZTYp ztVy{^vAUfOpTDzF*4`h%X0odWn`#uZ4s4igIV^UrVVg?c*{>K)hHq^^RxU2CM;WN> z;oK@^sg`J}BguyvilN{DQ*V+N4rD{X_~KAFj5qyk3(gP#cvSIDXe!zk3B!^InwV{j zCXGPmumQl(m`28618`K37tR+?goD{H>cAkpHyrG$XA89@o8$cOh%gGyG0e^h8y0{y z@CF+jfedLdjsO8i#eispKw=P#1_%GG3**eU%@8o?ZwNI24*pM2Xj=!6If;S;9nsX% zz(S!=&=CVoZ;TfP>*b{m(uQhlL7=)2EnN*L6sBVU)71t2^ME<-DBeCWl!etl&NwSL z*pEsj!yu5*&``}#9ZeF&7oufgU;u$?L$tLuI0%g(I+2Q@X%K^ye=Atvg0K`knTjV7 zLEDNLFH$fS4(5dVpED51|H=}B{>c+3V-OmK4AIhrZlCEl(AM_T0=zuK- zizjYd4*pHCwT0ObgQyrH7H4At2XjO;@px~TsgAA%R9|05PuEIcOUu&SOwUTs^00xK zshI`T;)sF%Z>|Li8%)3vslU12|K;lbk-Oav1Tx371&)Fb!FgLzNCeQ|r-tGG9E;W; z_5R^{|2Y=zKXM_QU?AJI{a>~IZQ?Z0_VnM@<@Wt~$(69B!!7?J=0 literal 3625 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 diff --git a/assets/icons/BLE/BLE_HID/Pressed_Button_13x13.png b/assets/icons/BLE/BLE_HID/Pressed_Button_13x13.png index 823926b842b8f9868fd70d6f1434dff071c04d5d..d0e2c3a3735944e80ec2300afd68f40aa5f90ce2 100644 GIT binary patch delta 71 zcmbOx6FEV`k&yuiq9)wD2&5D|T^vIy<|O|JI9TA&^zs0^8XM1r0|$>BIPgT_z=wrQ Y3=U`9wuDcQ1RO(?0Mk|NnE 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 Y;J1h6-qpw3w}P~Jy85}Sb4q9e01*-vP5=M^ literal 3622 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 diff --git a/assets/icons/BLE/BLE_HID/Voldwn_6x6.png b/assets/icons/BLE/BLE_HID/Voldwn_6x6.png index d7a82a2df8262667a9a03419f437ff9b350e645f..d6d7e286a3bd7a5d5e11d1032bbdaf3466b01807 100644 GIT binary patch delta 59 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 literal 3595 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 literal 2307 zcmbVO4Nwzj8csqH!AcR^;-I$60s@0cc0(X!Ar(w8LGgNGFX7@NWA_5Fl{{xFJ*vX=x>q zLB{5ph;@1KiCA7HCda{LuK|%}gd;EzEDD$ndLx6F72qT!kIDckl#cziMcc(UP~}kwh1F* zws30t+O44xrHMdU%9Kb^`k9wXm{A#!NJODP;0Dr&Q#nk~GZzRI$`T6D{%S%~jQ7RKml#bMM2h3XaazGQK41?uiVM2)ro>W(>MKnf+MU5Dt zQ7J&qIUp{ zIp?wE!;2e(vR=`fGE00N(|8`_fMVLvgK}tE0)h zkVk2$NWzcKs9*Egvh>2TrrMjHq;zSzjeDiNPac?k+;Nj{%X|jg9Ay0y5tk@Htw3ATT`ta`*~H% zYe_H9zW>k1Ri}IQZ>);(2=qDpM%n&Sb0+Kq=eaeOtnjIekp77l^*k)AYTAt5>ALjg z+2T)qXky}Q!=soY-Mq&se4l^;{W38Ba{gd^uX_}D|75jW(}jfQPe!BKY)66FoASnv z75Sa(h8vC!EQE!v_vQ0D`5&k|^Q|o}ba=i}w#g-K$dE6u|Ln7SJEgVM(wZdWa7p$o zLE*JoRaK>`t~q_KYQKt&0eyc#I;-i(dpkztJ;~?sUp}dqR@R@pxF*DSw^hGn57pD~ zYLipcf$_+l9cLykomn#1*J^dXe0!kWgFkFr;M5k;)v$W+-x`jMkM_@trF1SyPre>E z9gO-$+zq2k%*zgP5c;N!u^=w_-D`mTR z#mt!ZsvlaOL|fjt6)d>!8+8;|IsB&67oP_=6uq=cyzA);t>r^|)q2}=SGuhweuIeK l-D+9gIS9B;cu3u!2$I*mZhd=eoz4E6qKS!DH7-xx_AmDMVyyrG diff --git a/assets/icons/BadUsb/Clock_18x18.png b/assets/icons/BadUsb/Clock_18x18.png index ab06d008eeba32030ecbf0168f5bed327343f340..71ba0274fba0df3044b6a99963e5ef012be5f6e6 100644 GIT binary patch delta 115 zcmdnZ(ZV=EB8QOy2ZLy&c>dHY7!G+>XrAmhmrpW7uiB0yz6DVk6*7o2cu3?B)ufD}ahRLkB^#*BF zW(+6r1en?gi5F5d!xYDp5IRekuuZ(^`X=}D=?ji^k;%=g6;KIFxb04_MR;y)w(hJg zIXdFTFR;bLpadQ!kWIXf9~+6u^?41tPp?Ie?VFG#lN*R?RH|$#h%l=O67K*2SWOoY zY(l5mJkQENmPDY4lEMREdK@474sq7K^@ouJQ&cpTmLrE2q%}4K)8rlOC^e*NjLVTrs{%V#;4FLC zC$?pB^pAjCWaN;hs}59oNrgFH$!nM|I5OsSpkPOmF>o*%^6ZOOHK6O|ypof1l2k5D z6iP}#E0is5(vovJ7-DTdCeU~A(6^iV9$?i2u|_GvkOWaZ2s*MpIGXvHdg~?miN9E#E=_7kHFcWtsy;;hPX5UXe8_3#zDq zXb1y5`rq`4RFs(Z%0Im`yrK=6Zudrk9`=R_`*eaLIw~^@<_9`vhpRL7GF^MU-sbj$ zk923-)AZh6%COnY%az{dohuhNinsKw?88Ir*M#iW8F~86kI!WN-olal-?vXQ tH&1*4&tJE{{+|EzEA!;>$7pBdE|X#GcTBi({Mk23%Gl*u>(S)GjXwlaS&0Au diff --git a/assets/icons/BadUsb/Error_18x18.png b/assets/icons/BadUsb/Error_18x18.png index 16a5a74d96686c9ff2d9d96984a285f3885cffbe..28de03da893bf1b68581c5bc67bfc9e924f6975d 100644 GIT binary patch delta 107 zcmdnZQ9D5*m5~7m>b7qF1*BX&T^vIy=GdNCDA-^iz;N)fz>G5!m;|OY`ZV&GE*0^r z5IkvP5vF(kmMpXK$GV3)zS=tMXBs6r{*>pQ<#|!^opW^rm;9TZ0#jqpFOUM6>*?y} Jvd$@?2>=8$CoTX0 literal 1083 zcmbVLO=#0l91nDeA53H@GKcca5EPcrrb`o6$JVsAu+G{QR&T!My{=(RUY5MA>A)Sl zdD4@f#M8iCym|7VCs7c=gNnj#9z6JU@F>)meoPNz2Ls9f|6cyT-~an|dGX5V(KAOm zjvFl&tO}E3@q0MIzVO5rW@4P?YIKP-Xd4EYn?t0ILD7XPxPl?-ti8fB9GBQ|sx?|G zEtocOMHt(Nk?S)w$IZ+}KD1Xc1$DgQcp3i3(`P(zP=;SlmE@A2#Z9NM8Q`VO#j3rz zY8!~3y$og|lM%R>LJ+wvFEpbJ-{Uoz9$!m5=$X*f4Bro`Rw{!m2{6z_MX+UA2D%|4 zSci7KJ_S@+RU}!H6itw2GijKb1_lq$+y$s%R;>KM89Qb8CZ)b9N$qx9Y$rt$tVoJs z7?P|?swyxGA?$b*MuHbk4jC*Q+JWO!hj<`ngmtn`Gdv5mpM&d{N_)g!IH(k>nG``^ zQbbvD-8iwHbx14tZy5Vpht-acr3wzodSJ7LG$w~&R=k59#fB^z^J?I*uE3T>>~$A= zv}k2`_D4hxGLuL*QZ`HpN(v?gZCb}d+E%e($Qrg470Wh8L!SNcdRo!)nwHX%a#B%p z*|~I9OY7;JrO#Vx(vXMPq8C!=*?8#NVZH}g?Le%V4KSo6s1ni|jzPIeC<&Xy2dXNj zz{L`@9WTDQ6nCkgw1op_1EYLET+l1C>Fg7Np-(rEjMD;|PN}R0nkLjCM1rR3EG3vi zX~a_KYA3hc1AOxR-^6tGo!e{*7ot=XaSLN&)^x7*$R z_;8nL#iBJ=jXt&Rz8&Mh$jFComtIimxkqQi diff --git a/assets/icons/BadUsb/EviSmile1_18x21.png b/assets/icons/BadUsb/EviSmile1_18x21.png index 987af32587ca7fbada8810abd0cabf788c9c04f9..1ba168c618c6398c46fb3d0c0ffc009e43612adc 100644 GIT binary patch delta 111 zcmdlh)4(`EB7>0u2$DB6I{_(oPZ!6KiaD;QHu5$Y@VFj4KAl@!ET!4QXVS$REujHo z38MTBI#xS=?U>)anQgB^)A@q}3Jq#c+RjXrI`ymH@^s8)tChL#f_svu^E6-j;>80p N+SAp~Wt~$(69B%BD!Bjv literal 3645 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 V0A_Pz|1^geur#waEi!h!{2vr@XiES9 diff --git a/assets/icons/BadUsb/EviSmile2_18x21.png b/assets/icons/BadUsb/EviSmile2_18x21.png index 7e28c9f018a0f2cb572e5f5ce1db2e5c71511dd9..0318d425aa2f7f53a3b003eb0d91be385bfcc9cf 100644 GIT binary patch delta 113 zcmX>o)5JJIB8!m$2$DB6I{_(APZ!6KiaD;Q4EY=!L|iYvc6IsKbusfu*uP6U4o1;R zQQb46QeIem&6F$qBzs0Q$BtXkfg!p5mYn9op#PiaEj(Q?#rJZgTe~DWM4fKR7E) literal 3649 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 NjisGMnc1oH{{vTjXlVcd diff --git a/assets/icons/BadUsb/EviWaiting1_18x21.png b/assets/icons/BadUsb/EviWaiting1_18x21.png index d39d2173329d5317fc2cdfb18738922a5eeec6fe..82fc0f3302e2ae2deaa750e4571c8dc2275968ef 100644 GIT binary patch delta 104 zcmcbUT0KEBi2(?bH#9o|DJM@C$B>FSp{F)-HW-L7T>R{zx_^R5X6clkXKL#{nHMN> zt`ynx?qH$)NmHxe4IKOYb~UVj&DFIuA$xzjimlk4BOGcnCpmr9Tk`Wjrh2;ixvX?K@kVKDD&NJqhXVir?y9ON=pw&~ zk#8~-G~}lnI#(G0KvCzbZ;a3dd(peXVYUuVPYXMWuui|;dj7Iu_=m|}) zKfd2B`cT=~j>Q*o?QbIH!9EF#<*ubxm~tsikMg*FHl%EXP?W=a0D-2;lX7mUx>G)jke>E zEvrjV)a^>otnN2y9Pyh#*T2?Hh-0|>tq#2Sao8Ssc>>LGCtV+&yO@nispP4Mhf;li z6#%EeciX6OXgKv)_o4ugB513{c;3>U$e<^p}ZhFcIUstx^$`XB0UXO`Jl?o{4wMC<^` zy29|dDrz3VyIv3cD#kQ(9q2vW>#^*!Z`XR=?)c_W-Q5}4emN%`IgD{w`M%?_*dRi< z5BJ?vT6@;l-Fuq*cAfr+=C49>OOCNsCPOBdT+*6+QKKW_EXN;EQ`79;WhYzgdP1_O zYu;5>9VkOk(i|2U*yTIr@B6kE9YTgBPO+pkU-aWaJCk1Acc@y^pYIDsk=~TSjp-b$%?;Csc*`J1t=oS?4Bi>+!@AwNf1|!>KH`xYGTLYQ(W_= z5Jl3oDiff3U^OApug_=DQ`5al5y!9Ge>SY+$fd}`pDT<%&H~T$a=Y@CL1cc8^yjB7 zjNMy4{3<++EUQ=(Dc$R8=o!-`B%Ei%S1z$xx(7uVs9};KYe$>A=(iDdc}JZnH*2@A zI!-UAZ>~>d7&XhCCL&UvSaTowGO*%_DCGq?A82vMjmxE#*Yo#pLwd%i*@~=|RBi z+oA520ElG2%$M9*k91|%=B zWe7RAr%hk(rm17rUxh$fXSZ#;Nc7}Uxz4d}86Wm)- z%&u_mYqObRe!iX@qf9R{ewaV?DvaDXw*XJ|qeR&{Ar-&AG%l+!Pom+=ucZBniQ{|G zC#2U?5V8-PW{c;aOmtMJm$M&;pjPr=3WPnrasr>Fc&ePgxWkzt16NBqW8)+;3wa)w?E38-wZ8*}g)KVeT$jeH~%^p(3#Lv5XX z9p|f-*4#ZNutG4lOPVlTY$44L>31DD&5O?y;Mi5hHfQ-VsF*NwmoMx``Z$WaDb6rS zUwk^#N3_Xg8BRQmoND!PWmS=9cD(|c`b{AjKa_f-OGl(0Idv1%kt^#?(h#K8$BHqUwabtVLA>j!pg|5rVnybxU2oMbtbK-ZdP)Qhgv>Z!79cwuhON1 z*C_^@2vxRts+8Du*EoLIKW;A2K&aNik zE88qA6QO##+v6WELuu{h~wLUQ_?>i49j8) zSCiwnFSkW}SqaQ#sO#NBd4a})^2N%QbjJ@~S|DVl$`zT$GNUGS8Fsga{aX;$i-LB- z`E<|&df({k6)1G#0Oazz#iPNB^t-@R;RUWL3-O4Vqd)86hyL;dcAo7~?gOfJle;WK zN#^N(>MV%(ketF~QZ;mwMo@t>gE)hbyvsJORM1cfb_w|vs!%wl_k@fnahhx4QQ}~d#Vo!}6HnO2iZbBo38zr`=6*PtQu$U50wmnRJ~)h@ zNuM|Mhx*7lOzUH+wPL_<77AE8^tz8RmN)Cc7Oy}! zL53aVkc35o4#j%^L^wvk%^i=_a7qCks#8`5|3cPUO!K&c+dF8-hCZDP)V6prxt&wC z=!k)%(h$d7CAm*KOEPbJR%C0N7Y64Ps6u}z230J`iS3aR|ZRH zFY946<%nJ=$y)w+U$sfowcZ~1#!mgA8eu%-764}vo=yeL4=QVs zQKx7khN0}X%$cS5_|)5!<{{~ZL!r%zy(rW!Pu9u>ymfhvsKrXVAuDBc$;Ed>=FCfL z8YW*9vWZ7sMJ6TPLKWGmS#}#th~_u6x(x<9N*+lCO&U$egs5c)zZntiMSM7Y7qdE2 zS51)YpBF|+HxNwuTo;vZ;EMKbyuaO3-`%G~jIM)3)Up`huhx|My62s4HamseW@E|V7}Z*3SHUeR zDq-fRl5c-xv*IePj)(%+tiKaqj*x(LpQ}J*`%XCMLkQno?7hs&;=@)1(u!`YQhSaDz!XGjjOluTY7Ktu`xi?%W$Y1ub z^SOy#ym`kuNjBMU*ji7ux(jAC&KuUr;eMl|c){~A|2d0E5Y9eHWsp&E?t8-zcf|n? zgXlKo-?93xs{LGMil&NI(<)xuF@25%tKf-;uk=W!z2P87iOxAGO*&ly2IrtWPsJlr4=3qZ&9xg_6KfkLUZHk56dGtDNM@F*A~5c}AFK=NRRX>`BA438lR5 z1eC5JSr90;00A<5^=nIWXM(5pn)UPS%-)TS`Nr&@HOkZm$3C?S_~t#-ytP67${@B* z-D>3LaUVfU`?S6&sD3h^y{tF1cLVE}wv_Y=+fw2Kdm7UiLCl+U`+OtZWy+<+0(aj$A2n%dd^x$Hf6${c9qLKe8bg}4 z<{Es@a;=|$Kw9lFCPmFO77b&(kJ00JLE}plC;ie+T&$z7mKzLio;P!ju#oyxX}QR6 zI?*tl$BkgENOid z-5S;QdBSWO@z@f@YMYwo3Hd0^Cueql;pD-YIAWVq`N7J{gBtVwt*6^~5Az=->~>Z= z@sx^p> z2v6227*`WEnj%!%h@(Rl3t(8!pyFRXN!->?EFqUXrrut9;30eW9-}+Ne3b9#zBa0S z*D~#R!$vWcEs>m{YPrJuiPn_k1flE{puhh3OOe z;!uZ~E%42!r_5IA=u3-pECQme9C)an47D;olSE%~WWYstzbQZU_aDg~;9j53pOxySm0`l*4IA_D0z!qlNT$sLW$#Z0N& z#_v$`Y1&cctxnllgQj`#>0)?oAB z76evGq%3rWb@TQ2Yj#~8zkCv_-zWGW%QYw9J_EIsQ9;_(2ga@f!|GH~AuD{<<2-zY zHPSsWDyBb#g;j0kGBQAKwq-pT5_dkIoH_7z+AgICyU@^D_P&%#zTM9Jj&&Z2A> zFR{L`?9qgD3SVH~poL9Md>HO-VO%wmQJ;#`)x*oPm>r@JetWt-m#!-!93D~JYr|#V z{XSP%Lqy7|e<+lO>3+c(dvVjs~u z7ptCPHS^Hs>9Ko%QaKFHmg53Pe`sqn~>x-$7xO0JwljTg6?K;Vf#eGk)gGNt`@l#2aTru=^ z%BaVzUTUfp+g7zmW}~`2m%i}L-^mgP9QT4Qee8UWA7N!?a#8WtBdH@HM}vWVY@w5D zRRfO*BB>XSJN4R4p}#!0@bU6ctFqhb5c&66nF?$w%|7|@ms(VcfF&YH=2ZvgIlL&; z@mXft$ewseEV_kpBkd(t!GmX6^o(KK*`J=1vY>Qfj1gYb-YkCjUPq0E$`l&!efG_$ zCmZAsHUSxajuTfu+ty8&9u5U;e$LP^Po657m;PZMJVeyBRW?bE{$7EzBoZb`Xb4{Z z#u!8+*+j1rs!s6kj(EwsK922k>zK>p8!f3*LPmMM>1!sE{$`2H9)Fh&o$@M&3GO|M zRXrM|DAjSiQCTa3eEW=I8*_Yhrg-fPN=|@?Ti}fRWl8unp$%w%Itfw3vsS>OIo5F( z?4c$XLMqy3mAA@GW%@v>wun};X-C9w_$q4i`YTy#NJqT>QvPM;q@-fQ(Sm+R0y?-C z2ShwtpRd{K7a!2O-^PxeKC2@205zLyj$9)KI=TE(SfY7g!S%!1R{3R-*89nzV5h~8 z=@^C&Xm6-}byPm?J|Q$DRX-bK+nhZWVMD&+0}O}EQwr8_eRDZ zKjzAfWd921>c81!U{=Do+rycreq|td)#}~M9V`6OeQjPwd&WmId5Z~x3*G%A+#1@3i6b_`jHaFMG-0UKyDzM z+-M~LM`y_u*JciGA646I=x4I_5(NQNNIqC#ZssZ^I)YWXYyu%@Rs@O9Ng@SZ>2}CtMe!*uSYSp9GH2gG!&hM~Q$2?YFzSJbCrLZlD zF@4LDy)nypwP}54tZFPn_(wB#F)E#t*#0+$y3-D$3C(N z=)ic|xYvUYtYZZOo5ngVZ|pJa2_SU7a+@|KLhleiM2%Gs7&f=OD#cXi4uPUkJvmSD z)G^N<&?S6l*X#4(!u2|vBSO&BOd@11vN$zs!UG8s*RknUrerBDzany4yq@}QriD;u z4X#aLdZ1kFtfcr_zfWM>zklx&Q}&}ABHPbB)NNXsyPHE=n=9pXJlCVEiTze5sc_zApd?<_zP$0ef1;cp$4V0xAfGq$G%-7ZjX#CO zVDkA}J!_eWL%fr&)wU~~yW%pSu=n;l*+hZKlB@TuSbE*^dv+g_Cp95 zefI{|;FhYqSxy{5Q#&I=RRLf012SYEH>COTivztdg*&X;#HvrQk9+*q2HwKTTl( zTjCG2+06J*YKbz4>5C5Bo(W<-qYA5l9NmaQ%z<$bWd(scVx8gL zj4M-AAU!})25npB{w5m9$2%WB64e0+R?tvo*&^?_S@ExgkjA4Z&{L2G)#Oknhm>1A zD8}%}Ap(X9yHX;8AuB*pOrGEYt2>J*x_tOqLG0gf24x7t!g~qHbR!V-^1amW!;Rzb ze?dc+C(@=)#$u6|Q$Zz@*~!r@rY?QDool;kw#kOL*8sRHUz?+2PkcerkU%1TQVD=v(pt?!$FC>>8o?Z*^XG(W=qFs+UkD@4XP(!oVUL4-u0ycj+r@^&S; z1aD?+B8E5d#097hGV}4Y1$6b%DhWlsW~3O3iu~H@$+-P=WZ|oMskw%^!uh2-nA(}e zQj-RgY>#nHh%}TO^M=NTHvtGP5LIRjkCIW&%Tb!ms!gI}(F-z+&|Jtf{y54&b!t|! zD%2{fs{0dhV&PQX&%lM1#$}*s>YeDjUGR6-PW&Hmo)A7Eeu6F@=O4>YwSGQAf9vUZwSd8#l9;}jyiXN8<~#aVWm2xL$W{5zI?-&GY<6rA{jgFk zs9yb~$E4D>$+qZSdBH;TQC)}E)iC?eYId^d=uEY0wJf#Rem639n%w(iXq#Kd0vF&5 zj|*`FZUZfYmTlH4;VI72imCNtpW?$QwaNJ@rOBld!AbwgiOJd$uae~n8HY57Fvl;C zcgIBE93t?Y;|8erUnPn~Y%ETP2@L_6fJXNF6V#)xrpKqhPxOzMj)U?~^k2T+%grop zmcI-;Ex6 z;wUHVCSqbcZUrAAh4c$(2!3+*ox>BZ5_!n~hX1}m#1PFO`g-F~1otSpCb?V;M$CP6 z;)$g64ku`w={R>NH!gQ0SGEb2ahI8M)pqTLy)!J+<&(XC&r@p>dp-LJ$kChfbnclC z-KX>B-_4in-)wk}_`BG-^wcguye6_9(^|!$3F6pRZbsb#B}38 zoNY6`&&QNtf7yZ@blE9cf{>vQ z#WqO>R~4(?)A+`tyBoM0Ug065L8E)QXYJ2AQp5e};;;#DE3gA8!6Z6_W353AR(&C< z=oO63j021Z3h4@}dA|8%`6PKS^B?ti_ayhIK+3I+x-Fw8B1t+udLV20YcE%eC@#1b z>s=+XO&h;zIX@@vVtK`)Ogt9FAH^MYAeQ?IWB7PH=ylD*qB^I2 zo_&%mOc*9C@t~h~LyNhdHRXY%ny1E6mPGn$mTtm#{g34OxLHLPMbocaG;uW+vQOD1 zS(_!%UL>Ts>8lVGVqXf>2p$PUR1H=|R}~Drda-9N%z{HK1eKqQdEeLtoEw=8>Qs1d zDUh+2s+V-cDgruF$%1F`!K~`%zH1CT`0jtyY8hFYPX zMmrTerjjk)u%Y0Zuo?%)K(=ZgE?&QS9$O2o1jDh6yvmb+9kUp+XvHoO;X0?{g~)lf zSL%yvS!x;Hbqy5wT#V%=ul|)Vhhb|iGRr5=#w>kno z2W$mLqWKTS4GnQ;a6`*o-xPR!w`y-2SoRK__|)z623A!2f)+J`If6Fu<@w%8hit@? z=kMaG{q4>zoH1+i3rM!jm&B%0###2_c4(#Uc~{r=ye?XMGH`H4Hz8^0ZvNGK4!b=n zk0e`jJ^PhZipTcW)|UxL^F!Z*S5cDg<-AR>Z%(6gM;m@4nOkSO(mqQkSCzQK6mga| z7P}2!TuaKg?q>OwlU3%M6mv#@_V6B z#1V?1w}#p|xJWV{G`2F*JJ?7v8VPCeX}HQm?HyEn;ZQwaO?`;3BSg%GQCbQ|!W)Dn zaE2nl^xn=+F76<2NycBiAmsJWZeB+EUl4?&B%`s0HoZIy4y6b30D1Vh6}=ri1sJ7p z=q2Dbwjf;vrQa!#ElEau1i}@>%j@Ok#p5N&1B2V~@{5Uy@$w1q3J7o`5!~)RE(owU zw~IT|Pm13-6rk=9xPvRg0p>#glM`$W^FT;4G9t(6ewMUL>X#8RA;{LmeNIiMI!LGdgJbb*)&i`cLj!^Xc zbH2Z|aMwpZhr_E2b%%MtAy7q6s0)JWuamkXbfJH0@;{(J!vBfD)yc#CuZ#9@hyLvP z<+ziLEiclmUrYb%q{^xq+JD&m+y^@cXV+gAKhb|h+Ccumxq85zeqn4Nyig~oGtv`x zBs2d%;gR-#82qg>zsP?n4N`zXJbtpMDo8RSdw6UdY(Pq)3c`X)qM|@SSy6s|MR`#^ zetubDIWbWY1rb>wpU_{-RbAW>U>6AVALb57b0E;h7L1H0ZV1pC$_?ZfwdNMH7U1I+ z;IkIx7Zl)w@&O@#q0oXmAoBt2^mi)}vV{ongCPRkg4RMp+(2u7L2fZH#FiT>Dq;(? z5w)=u6BYPH^;1lcthTBoqW}-zpFP@6V1z9U?kvfu?%?9#{pWzbgELeQ0sbizzp$W) zC=e)$bWB)Oh+p(ikRcTAjtupmocw$|zmM2JKuSnPFf!yEoWXWbURM{pUnWTPK=N=X z7y*Op!(dL5j6c^z|I_qW0?|wSo*E!^7zF$?g?@pdHb1lL_xzFr+wuNtO7Q+G@c+Z4 zXAkpo`JeIp3H^gb7LM?O!5y{WTGo%D5X8Uc`8)6*OuER*=8k~-sQx!j{a-kV-$GFZ zX$yn<{AGSUsM~L?-^!1Z!!N1m>3^j>2n_kDq9mg`*b{2=YYUJ%{x$@$2fNrok+t>r zy!c1I!{3CfAdnAYD+(0l78VhJa3cf3mfKoX%!V5%DgY4@;X~FbVc~yfcZb;`yufg% ztQ|6Oko%0x+h6-k&-N?I*#8;rWe-Izl9Nvm#K*_@+xF5+@ct~H|8P&@XMNDn0R2^f z-!)Ny!X1#_DZydRzkL5ysX#XWbwf%0DogpcYr`$ z++qJ}>3@a%wq1X@`yto-TOabSio8kl{&AQ7JzRfg^#9`P_cZuloB>JwpGp2Leg7lZ zf8_eN6!^Em|B0^u$n|e2@Na?t6J7t`SN77L~l0$9an+)c;9a+DZRZZS8{^eP~v1|B4dJsqoRU?V`GD5l`ss3 nQ0VFS$rk^gGaUX?&&TuWzl20Zg~WpejRzY$8yg!r zkBJK=CH!Q5xcQHB=;4BfhYXXMl$j?p2r~=w^D{HVc5=(_v);r8GSbu4&t;ucLK6U~ CK_oB$ literal 12913 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 literal 3624 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 diff --git a/assets/icons/BadUsb/Smile_18x18.png b/assets/icons/BadUsb/Smile_18x18.png index d2aae0dc37f4fd3453e3254e4a9cd33e753019b9..c0ff50c0bb319405e55120a8502e30f55de30424 100644 GIT binary patch delta 105 zcmdnNQ9VH-nUMhq>b7qF1*DujT^vIy=IEZ-$lIVG;&AXe_fvlrJ%>9j7bSen6Pc17 zGq1F1_ov&+Fuxc7&EBgO%#xYRu_QZgaaNk8_x3k4j&jsBzu--g{b92QWU8mDpUXO@ GgeCyHxF&-D literal 1080 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 literal 3842 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 literal 1440 zcmbVMO>5LZ7>3B0UTd{6LeL$!>SMgR$1#+OC>f>WbBi&Q4}`hi)=4nY!B^ zRS++F@uGMUJb3aT=s^*^`ByxtKS0pQengRK)xc!Fo_XHy_wM4t+~~;u5yLP>tMip5 zJ#SCPj;;EC7QMf%r=8LK<-{;{ji+Oa@#yhB!`QZ0)RxtQGk2+A_%pkO15A>@E!$;O3zzJQJa2RR6$Nr)W_ z7YND|Tm*y9)Y4+VL6$0~2eS0eHCswW1j0_IV|Q}4jGGXbN+pOK=s1=}Sjk$bXx9pp z14D)iPgpD>C1eOvMp~Dv$~Cp7eG`HxqYaaRo3z7VmqrlVC^e}E^jU_BR^xV0xX&PO z^MHpc(O8^ewU<0EgKtP11Q|L}vp2Lx1KT!4C$+VR!zG@`)tK?w8(QLlp<+=>Dw(w8 zZ|umfGixGJjyY8_u1VP*25NE00vv2R;P538`m&Q8Nu>-P@CsGjHFeamg|L;wH8e#W zO!E1o7!ic}P*3N9PZj+;u=GV^ZBwYvNJGW})m{<-ZE_fe&7L&RBh@fbG-SM5aZRnN zErd@BC0xw0I=6BS)Uc*#9$8bxdfj3UYD_xCJf@Ru_`V|9Y8t`ed;cHbpO1yEAlm+a zo-9J7EZZ{nq_4f4Gr^DZYPq}^%Z6y{i)3l;6sXRY3%FD$SdNX;MDHaWnHPzU>e`@m zF7WGvRa<~wjuFbzGH^|n#-ID<;8^^(3;VR47T2VI$csKKkqyJgp_fv5X;ksj_%dA!DP1fvqs5@M&TiMq)XFS~oQMEEt+wm~CH#1^@v8^9I ze!KeW*2}SvVq)w;aB`3F^wYBk_vc38mDg{_-`&1AJ@Mku!7q1qAAXYd(CX|$<@u>= GH@^cCN4$jq diff --git a/assets/icons/Common/ButtonDown_7x4.png b/assets/icons/Common/ButtonDown_7x4.png index 2954bb6a67d1c23c0bb5d765e8d2aa04b9b5adec..0cda838e058b7cc79dffcefc04125f8008d556a7 100644 GIT binary patch delta 54 zcmYfEoFHMy$N&UcdnGOaDFIIx$B>FS$q5M=NfyUG@G-DnVlsDexYqvd$@? F2>_C653T?J delta 83 zcmeZFn;_xG!N$PA;B-v27D(xMx;TbNgqNOj{yjUfWX-fE0bCa+Md lj7UvBS!;1QL0)Q=zORYsj~s^J?Ld7Dp00i_>zopr7yt~28Xy1w diff --git a/assets/icons/Common/ButtonLeftSmall_3x5.png b/assets/icons/Common/ButtonLeftSmall_3x5.png index 51411acaf8d921da05d3eb2c9dc54af6253d0c5a..0fb7fb3139a8fba08f03da748a46cbe41e85bb4c 100644 GIT binary patch delta 57 zcmX@h>peljn2`YpR&ZtW11TX-7srr_Ims3WN*Wp)7dAd*VBm{lI;^hqtqY{e)78&q Iol`;+0KKaayZ`_I literal 1741 zcmcIlO>f*p7&ahKo2qaqhfpq-djZk$%y|8=w(3@C9LP#IMCnQmH^wvLT`OykYkRYs zoT^?B;uo|6iC@4U;DCBW;=gbKi5tA$wYLSeAr~xpJ>z}md7t-vAJ2Sqc<|Zvt(#k# zrd=QHM@R5{3+}hCya~VW-FW^7Jg%1eU)Gv-?M8dQp*{ONVOnfB!?F;G2Nuyqc}b zBRG~bnFDtXSh~_z2D_DHjjF~<&H6?i_7Qc9nwI|2!>kZ$QGeVj>K4d|H8M1yYZMV^ z*>FsqfcgO$enLq=$Ql}h4+Lx2<-kg0>DgtVaU6__x?u&EqbM{$l$m8BV7}+tuE$a0 zSq@@}Em1=3A@YVvlBUw7iI6K@us%|J-d3VrzqYMV95^=B4BW&`9Yz?k9m-HjY=#mp zIHKIL++;u<+p&ALFRBc_95#EIwN)j6(XkWHXZ{dLo4UxhZ3_)KOnG8C7G)_(9LvyO z#NAahRmDm`bq9tnc#x_pXW*YKXA_CbV$!-9*ddGktcKQ|b>GJW`KTMsGJR#bfbrJr zp~2fGOJQ`cvsYB_ayr+vi>U-vE z8hTQo0do@}q+|1ew~jl@dIf7Dd~w8;)|a-&elhI1?QpZ%!(?+@$O2NW;4p~JZ~p=Z y$%mt8XME);|MRca^}+V`_7CrGJ^q$H_qAWYe)sq9x5o4Kz!~iwL_gmD>dD{nYamVl diff --git a/assets/icons/Common/ButtonLeft_4x7.png b/assets/icons/Common/ButtonLeft_4x7.png index 0b4655d43247083aa705620e9836ac415b42ca46..7c43f3b04d49a12cd2e9e02c259d0dabe251dff3 100644 GIT binary patch delta 61 zcmZqY_MaeO&d2}+>~a@tfs~l1i(^Q|oaBlFUm9LAFf%(dA7*T0XHcBQvUK|rFFTM* MPgg&ebxsLQ0P}VcPXGV_ literal 1415 zcmbVM+iKK67*5rq)>aU2M7$VM1Vxif;vTv~W2u`S7ED{V3s&&L*<`XiG|9wd+THd> z5CnY!sdyuJtrvQyAo>KpiLcV|{Tkc)riAbluXfwSZCApL`ztB&p zx6LGKvks4K_4~)qD&oGa-YdJlW)hAKMNJd7<=t?6c^RI1>c$ifyjaM>^|&8!ey zB4!nh9u>5uen6Ve@<H5rru6h<2Ef#GQdQ*CmZOlQi~N!?9H`Rp;C% zU}CB21#?;r`&0|6C0}b-=jODa5|nEJ#ntxQ&{~jpgtwDta4hftr~G=#p@V36e4Zjh zq%J~{y26Jjn=1Nw-l*3%QW5YFE*v4z3gt0$&(*xf2en34c?JpH8+FYldo+Alvg8af-pG4(=!fyUi-Wsg z`g#n9VUcf(DFr{poMSNzw-lz>w+HV+n1ELr&SLA#LHUb0p(xWQ(1*vJ-i+1!`swxZ Z!O7;c$;lT_->m1Ovaz)0yuI`A$q$F8u*d)a diff --git a/assets/icons/Common/ButtonRightSmall_3x5.png b/assets/icons/Common/ButtonRightSmall_3x5.png index b9d5f87db1ca55141449cfcc3bf054417eaa84e1..c25ba7261ba7802169ee792091a6be7c73130204 100644 GIT binary patch delta 57 zcmX@b>peljn2`YpR&ZtW11TX-7srr_ImsRg0SO5}T*Sb@@{Zy0z0)smfmC_A`njxg HN@xNAw3rb? literal 1738 zcmcIl%Wm676lEHu%>zLLWYHwZf?zfc+Tjd`l=wgx!?E02K7gZd!)A>b-AnNYDb z=UD-0O?$90FBm_PwI0iHnuo^kzrHc_RD{NpUPPi|OHR_A(^5V@-5v4MBkl`h`li))oId$h zr-Twrdf1}K>IcLLELU%T22?9W66_DYYiq$%XiVz52r!<_X6DQ`RXN6%@B5fgOeq2c zsup?8<|wc3bqoVp@iHyyRONcZ$YOO|hXyEJO(84Rw0YIq1cu=`E3jpfW=b6}iq3{+ z*&1Ed+b2+^)%#K6YP2XM-j|g+F1g%3k$HWuD^^TYt*VLogtqnH|4=CSx?pi!PM7uw zj^$Klz+C~>TIwr;tx~dDl_RC5T~K>nMV(qE)xUm{=0eS?`;DS@fE=(|h6bc&Ap((k zBdZr!eqejwSR^211&yE&1gqKkz)Gaa;ylnO3Wj-Avz*J}AT&UfnWiG(Hm6?C6^L<1 zqL@1bP64XW zqKrwxT^V~c?$~}TQ}}Y&^h4H0l>o-Xk=)_jK{NqDuJ0r$_IQFAaV$sJiQn_7p}()Y zrKYNklmK^aLl-wVr`&ul_BH)&R_4UgD(ZOFr}nOx%X#N!gVeJ4h)=Wyh? zQXrf4V!h1m}&`|!B-3a0&FC= whJ($~<(FI>9{%<2-NwbcKNmOR7sY+;Hox}g7dMW6Yj&IA_U_=9M~Bb;1{rl65&!@I diff --git a/assets/icons/Common/ButtonRight_4x7.png b/assets/icons/Common/ButtonRight_4x7.png index 8e1c74c1c0038ea55172f19ac875003fc80c2d06..31de21c0e2d383947ec4ff7c00ba44e9a9f5a475 100644 GIT binary patch delta 61 zcmZ3_=RZNhoRI+t*yS$P0x2<17srr_ImsFc1_=TQ2|yf_P{hE%8O5mTc2;W-NTsK% KpUXO@geCyKoey6C literal 1839 zcmcIlO>f*p7#Yw)M6zw!O+@VZ{?d|D~WYi~8rHRY?X-&T}Yen`g$^+EJ;z+|RV zE@PoDvZ9%#+_}3bC_5Cj8jDGq541mi{7F+&KF}W65sr$Xn5H|YrMQ2(J7%Yc%;(zO z57ax000=TsQ+1Ke@+w#iw3au3cGGQWY740k2ijH>P(6tD)S)be>gX6Tj7`<`b>di- zgWp$8Y+?i31~CzF0&E4uRlA=C(Mp~K`{74jEchB|)4DDK!ZVhSwdFyw0YIZ1cDh0S{OvfO-U_~ zvmRF*m9sWDXNH)GOyqS1Skhxbr6}s*7t&@~kFM(NW5}qh?Lu@lJ}HE;FDiLdGO>LO z5pS*%E2grR)l^;|?O5b_?u0me&c1U}%jrk8*%=Wk%i)8yp2P|kuxmKg<=(u_`oQRI_0 zS`-DNysBx=#3&qSkgA@hJP>~D+ZM(s5jI6Owp`?yE=3e`YGUqkVOp#Cp=3wR3O4hX zX6BLsN3UBzV(vI5;|SZHgOb=HD0VFjpTyfFW}GnQuh>2*Q`k>*cAmA#iUT7EXSpo# zkPm5~#I-o^cpgfe#P$=4-Pi*SpT!-@nJgp8L347xe>5EKl`=_ZFc8XGy+_j=_R_7! z@vZZMowS1GJ?Zw)eetks%~G{BTR>T}9|jt0j3Btyb*C3-`C?fwY3EY`q*oYZ39DpM z&uJ;PCZPLs4QO1Jd_|A1PF)azZJ)RZ`^-VMWr6e#XUOA%3eLG_Ch@BDOHzMk*MF0G zCo7xMd?Mg*HMIXw%nNz?%60fZiZPlqb?GqUpXO`F&Yi!okZl(n>P@r1P2i)yk3DgRwbHeNn6e|;J^SK4TM LH~i+q&mR8;k>NTA diff --git a/assets/icons/Common/ButtonUp_7x4.png b/assets/icons/Common/ButtonUp_7x4.png index 1be79328b40a93297a5609756328406565c437c0..48d0f9f018c427711451652e88e697b4ca19a094 100644 GIT binary patch delta 54 zcmYfEoFHMy$N&UcdnGOaDFIIx$B>FS$rZ;-nlt&CnHhMwnA-OxGVcVb@pScbS?83{ F1OR#94r2fS delta 83 zcmeZFn;_xG!N$PA;B-v27D(xMx;TbNg!}e5@-Y~29D4Cz{_G8*+0QLPZ;y mCvnJ|Wh8!?z4yAUT$r!ukIjxv?|}LkJYD@<);T3KF#rG+2^$0e diff --git a/assets/icons/Common/DFU_128x50.png b/assets/icons/Common/DFU_128x50.png index 951cdc198dc0247e34557f2c249466478456981d..256a61b6bfcdb5aa62a11bb0716c5c2fdd5f3775 100644 GIT binary patch delta 604 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 Ys4p)n?jO73|7?&gp00i_>zopr0MUUj#{d8T literal 3649 zcmaJ@c{r3^8-FYniewGR7?BDy24yB=8_Oum7~4q77=ytqjlm2hDWzn~mNi>R4Q+~K zs}!Vu|T0fG&^kldAlcBl>S5JG204rZ&Cc^O@cJQ3w^Qg>RR zx8UiyV9wOk>ZjF;v5c{`7FO%duw7y*@uRsu02~{khv-s>wL#Z5REF_NqWk$lqN9zk zytcdnfEhj(GnDbrV2$Si72pME9UA+@>IQyYEXSxg0ibxGA1pSuohJ?p)N9z+O91t| zfroZaJcNKm0Ptg-H3kFsgn`K)7W!L&uEK;~X`m~2PoV%1%>$&Wn(yN^d;z#QT)?XF z*1Q6;*@j>Z{+eQ*Fz075bKbDZEkIxlE^eox8xWRitkwj8ba?^PUh!r=kR@L>w7t5& z@H8!=49x@7G$u8t9BC`)=T8#Fi5Kd3nP%I}deUiyHjr{FL+BPCr)96iQo*|Gxw zWS84sZs;1sjg1ZujCzjwaelnX-SC~Eg7p<=`!*`B^YR0t)~%fG(<39De6%{AhXK{T zg)Tt1BjDY)?5foxn0-R%eeiM=OLxt1Z&nVbUQd3H(Dv<9%I-Op(4i>(Us?my{;1GJ z?(RlU@Cl;(z*(Pd0m3+JI=uOHEzjv3{|W7ba-Z zTiteNz1m%IS&-kTUO*hLh=|>6`(r_iNryc~mwsx(;Tr=^)V_UwDya9&K?<&Y%dzv6_Jb4d+LR~!ZNE zNW`rZ7Ub+e48-nAp}2NHnsRfx6sj>_J+I?^8p(^a z6H7uQIVOcBjoq_%@OLoiVBOnpf8Sx}{Zo$T?wC0|!3-4&ew4c3Q7G^5qVRBW3pNNF zi)pnzomX{wJ$!{A{P=Q&S@vago;{)TtxU9{)LR&F7H8Z^cjTK;^Sx>1?(%qf(lT(% zs$3u>#L^Dsf6tTc8Sj}ndZw92F=CQPMg9JsJ6i2I2k`pUBXOL9O0YqO;TCg%%y?5yBfXA<7>V1+AQ++m#Iu& z@fy-$O6z;Fse9bn+FyyizIu3f609e`Hvi3V)q&Q(#uliikvlbn3+ce|Nv8cmQb;;eyXB)R9TO}{CZ#wEbvK$v2Kd~)3Pfn;!kUO3H zFmg`mJJJ#9jnD2Dr5Du(rjz?51|?z-v>#ZoqjYOdu1yL}rcG|0f-mA1l^4m2t@2HK z#N<1VGLD|5GXk0d{b&^v`2*Uo3u_Bsk2`tEdFA+L&g)3uIUd(2mJ*mEZAUJ+RzSHG z+?X^XJ6+!X^ut14`iu15qR-@yUz(6_&fQ#;wp2Uv4bv({VOcwX|1@Kj!qz3_z3mrsE|mH+lOoh{K@UTlTz z(3dpcAt>yuKu@67NYBYF6SR80)Y94{-w9+&o{(FCHmO+d?c5b}xmBP~G?aR0*>b$; znLuQ}xnE?N0!b!Sdik8hfrGGn8sBY8>=M!t2kE_V_%b2YRu6 z{IGt6$@H?YvU_D0m{)$9&ZdYl#PWw&h?FJd?jfejZWm@5x)Ocj zqgJ2i#`k5V?cq{qE8`ww${s%HDq}j&_JgZUUq~rM*+~a!Xu4v{J(#4K_H&KijgOPp zF@rd)!<-MRcP<8dvHkXK)S+-E?WDrQhDJ*9j}y-clK3PK2aZolhl}I+gVIT-*);au z;-3%A%0>sBtWS5GU0{*ByT2YQeK$3Mp2(k|u$P>x9~`UnG3t1Kc}BQMZZ>*E?lk$> zS4K{-&q7RdN%OmAJ{`QyluOeycF$bS;k?D*%=4~|j_XDDORGMsbaz&N2@07PxhOAr z^eZQEvf}9>rju`_>A3|;`*ir1SXp{-d09!qeoQ=$>xS13nwh!9Yx6YG?fovDhPT^Z^Wi45*rTV(sx>kCjTC)tK8Pk@fr;6aM$d`ql?mkGJC1x@NX7N3~WLvkK?w zoco0j5Oqp*3KcCZoH9;%UtOg_s_L5I24=o(g-}=U-eyUE?Ci!GWa-lU zY8YI37x%AHhGB|h*ik(hL3lb5F!G?f6G0YaycZEm#Cx#LG!XRwfKQcVk7MAhED;1M zSp&c6qroK8xM%>-Ghov21YaTp+3>pFg2?`3*2-4D^(!C&>a5x+Sg+X92b*_iHKa0Y^Gu0{nO1~LQi2ejR ziN+vNDWFY8ygN03fdq4t{r4%zw0~$R{(o1BTQdj~PlIS`KsQhI+tJGE|GSdO|9JZ| zu*Co5`#*{O?O8M;1WWX%2G9xI-gzo*hN2-*bRwQXrQ1`fe!mNe@uo7U{@zp?2&Sc> z1yZ%b6G)Uz%YnZjR#pfLia!HSArLK0kYFx}28rZ>(AGYzWd?^Do9aN1Xlk0GjEr@( zOwCY7bYYq>xRw_DH`ato2p|(FjNe#~|6oyn#BK_LOyfp2A<{{KL=Q7Ml??jp)Ckg_ zbAkVn?{BQfpK~$#BNoC<2C~`P|LXN`6IVc+(|^RvUHl_|B897YI#=9}_AkY9FUD4k zrM>B|@Xb4NEn;?-J6Kzo7}+zs^RX^M07#%``usTPM&dJQT7TW0pZvvcreZ!fk89eR zxb$l$y&OrR&%MN0k$&Et1-(znrXGup@9h&S%{ikQa$ LTALIbyM_M?u*zuP diff --git a/assets/icons/Common/Loading_24/frame_03.png b/assets/icons/Common/Loading_24/frame_03.png index 7bb66fca0a9bf781969f7a3c156c2ef829f994d1..01c99c56e78411720ace7fa7e54265c2ade714d2 100644 GIT binary patch delta 120 zcmX>o)5$nNqL7gR2u|=YgaWAmPZ!6KiaENc7V}2q_PH@hN&o};i6$rff5HKk=Gey!) X`?ZAS!Bgo9AUix={an^LB{Ts5>=iBq literal 3649 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 XG<+`+menTQ39`h~)z4*}Q$iB};HN85 literal 3645 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 JmfHB7`5%CoVEzCA diff --git a/assets/icons/Common/Loading_24/frame_05.png b/assets/icons/Common/Loading_24/frame_05.png index 80bf88e9650a845804162d12403a8bb2f7631b9f..c144a72ede4818ba8fa7d3003e48d5a8b627205b 100644 GIT binary patch delta 133 zcmX>mGmUYAL>(go5S-v)2nABHo-U3d6?0e*ZWL^C5OFwIe*esk6HkJyl(vX#ZDc(D z!O17Xu}h($rE#L=yxkGJe3R0r+q5mPn|xY*0p||Z7-l`jskY~Hs-M}O+IwR4)clDn lr*1uwKke6q&ElJH{AS-`raM*D)9gRULQhvemvv4FO#ngQHZK4G literal 3654 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 W0n(a=Iq%{Q0Jc^RmZcV+k^ckPJzkpt diff --git a/assets/icons/Common/Loading_24/frame_07.png b/assets/icons/Common/Loading_24/frame_07.png index 190d2edf343954929ea48f993e59e6c2357c5d85..a7843a35bfcf1ebcd5d9e239932afe06e928be86 100644 GIT binary patch delta 126 zcmX>u)6Y0TqMVTd2u|=YgaWBBPZ!6KiaD$Y5Ar%VFt}XISJ`B`BPa6K<%T0?Cw5D{ zXl%KBOW;^_g-PEtY2EDw^4Ej|m~w@qqE@h9Hhp$#qD=pxbX5)3^$MJ22eq8yf6R2X de3X#s!JYD@<);T3K0RWvPFn9m} literal 3655 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 Qb0?0anT=_&v0M260R4Sy)&Kwi diff --git a/assets/icons/Common/More_data_placeholder_5x7.png b/assets/icons/Common/More_data_placeholder_5x7.png index 85025d9f0acc7275b44e8fdc45ea8e2c9293e68e..bbfdae047b3654a4c5cfb3910f7c423db92f8f88 100644 GIT binary patch delta 53 zcma#?m>^-m$N&T{?(A{~Qv9ASjv*Cul7AdL!qCja$iVBy7@X2!SP4?%>FVdQ&MBb@ E0F%cLBLDyZ delta 73 zcmeZ>nIPf9!OXzG@V&D94v=CC@CkAK|NlRb8G7h)9gq_Aba4!+xRsQkz+}**;LyOx Yz+lY4vhuc66i|}E)78&qol`;+03kLN8~^|S diff --git a/assets/icons/Common/Round_loader_8x8/frame_01.png b/assets/icons/Common/Round_loader_8x8/frame_01.png index a5dc239d85e8a02c44786475069a9b683bda5aba..b8db2a4b5eef6edf734886f7446bbdfe7a8cd6a9 100644 GIT binary patch delta 62 zcmbPZ88|`Gf&mELlr*aWDG5&($B>FS$rfk6biY&(W(L8@w!+d3iffrJxwwBR1*!FP L^>bP0l+XkKF6R;! literal 7324 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 TxH*)9T8IUCC+Rm6uZaH!P{_=Z diff --git a/assets/icons/Common/Round_loader_8x8/frame_02.png b/assets/icons/Common/Round_loader_8x8/frame_02.png index 162d8a8f42a9492ace7717662ec13d525ee90f95..aa0f22a4c9dc55f59a391ebd6a2794c130f4fc47 100644 GIT binary patch delta 63 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 W0R@kPHAx&eU}I@-QEKLS@qYkZZBH2h diff --git a/assets/icons/Common/Round_loader_8x8/frame_03.png b/assets/icons/Common/Round_loader_8x8/frame_03.png index 5483e47345687cbb9bdca56f6c9a946ebed1b542..cba466ef68f43cbe43a96618e082252875bde7d0 100644 GIT binary patch delta 63 zcmbO%6F5P_l92%j-jp<}0VxSj7srr_Ims4hzVv0<3p0b@WaY^M42rx=mlRTxr-9UZ My85}Sb4q9e01+S%*8l(j literal 3603 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 MS=gADnz>*8AMz7TL;wH) diff --git a/assets/icons/Common/Warning_30x23.png b/assets/icons/Common/Warning_30x23.png index 5f7e02dd857e172635a87dd5a1493609d8b95c3d..f307436f506d24ec1dc7b33c12920456d0990f41 100644 GIT binary patch delta 97 zcmV-n0G|Kb0)LPsTSiGlK~#90HOa9Jz#t3-(bIPZXEcw3!~!l|I5-95x~HS7OVmK5 zBLEQ-vErvEv{@ZC8*TdDf}sRI449fPap*>ZaU1Y_pA8(iKnHx*00000NkvXXu0mjf Dc9JF? literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^azHH32qYLxTn-%vQY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIU-u|8QZ1q1V3bmoi89ep|OVeVylC|H+AqrXO_` za@X$aW$-@D&A#aKgSs<^wA?1|{?Pz5S+&G9q9i4;B-JXpC>2OC7#SED>Ka(+8XATe wnpqiGSQ(jX8yHv_7)(lGI*FnoH$NpatrE9}$CkTFff^V*UHx3vIVCg!01Vw{tN;K2 diff --git a/assets/icons/Common/arrow_nano_down.png b/assets/icons/Common/arrow_nano_down.png index da66350bd1c0adf134a018454717a354eb88befc..244b022a5545ac3b5c379b9186d0107f4ab67712 100644 GIT binary patch delta 51 zcmZn{a-ATd%g6u(Tlu5611TO)7srr_ImrnL5kTG&hJ{I{x-UTTp00i_>zopr06K0B AD*ylh literal 2311 zcmah~4OkQR8NU#Q5D{35GBa0VQUsBFlJJp+&_Ix-U4W*1SQ&pjo^?!EWk-|zkS z|KIoi6crJ^jzlH_0I*K-Td@p(67gkYZ-?JYv1Bp;*g8R>p;4)!;h}IEjJ&H;D8X=0 z3nGwG79Iis0fmJz3F=KTuEM|8Rc(9y+uY8wvLYul?=RJ9vW~plqh_#5)9X{5RxLW% zGJdBN+TuGj`z5qh=qhq)_-dedU_QRVbMx-<2L<#K)lnyGbG>HTpN1d*mz%>_oo`ir zac%0A*502+N+z@K_n{MgYY*1?#2@bSu<;?Equ={(uJ)bgmE-IXme`kMpMZit!APAV(U%!yB&sOxT*`X_G#=-PP zS_x(Fm1{LX+^@cHet4nn=$|?H@-QE-vj@zkp8PfUX-{_Au0bF6d?Mg|^|!6m*02`8 z^3Nk^-(AUlmUA)ePO7OVH}caemcg~3So`FNH*)yyM=r*g;a)8NJOiq_?lKS7K@L+i zAff*9euOk7G$~^~xV&i;J9E~*V)uz*ET|i+m;uhJO5I>}jDX z?#vfQLgwW3ORh~GK_Biaam1Qg>9dcY?ujcsYCl*M=(d)8z=IiEGZoUD6IbK;rHlL` zmh^Ti zA3dc$KJ)#+cz@&8pUl9e=-uY#vC$4zNZCB?Vf)#}Np%eEvSW6px;(wzAz4T3WJ{Qm zqTHEH)Z$^*#?2=wMV>A1st%|+_-{G!ZXBkfsz-GlotXrh%;;ZmxnMLy)MQRkeKt_t zcKt1*ze{&pcU$VsLtWZke1kTwpniL-vHlkN1NM3fc{d$vzTH`hw9Pll?{`(o@B8m` zG_T1f=8W~kUgC{${~1d%d=1B&!XE`isD!8JF=>jblPBKe#XhxhZv_l>`g;2myZG7R z>6YN4)RyTY_boX?eZ#`L-=apu_ zYYf@hO&55n_6IdyYgD}*IlBJCJO>4H?;ij1R}0+|>g{e+!m4sZ#Xh$)=(x6`>ek)h z=?po9(_P})|FlJ&*t_T9uYhHf!bs9#CZ?>+Uv?&t@waIz#Wog zsTA92yDOx*KWoa=OYNP#hl#te<*@~Ok9J5)(5RVZTWeX>8CZEi}=aMTFy#w1J{T*KkYZwX(Cqu8%SquPy zo{x(f5K~a}nlvrS*9TFp7JOW`sF_rX)dWioqVAAJQ9@w^r1&vd3>H;LqEILTM3u~! ziMKDn@wXtV8pCvaCNm==gOTCOfRPj?J1{Vi$>K0M96D}6M>DmULQmJCwC5x*c*G#8 zL?9go!CH!iSCIs#V?k7^#nIxm5T`~bl`gu{q6>N988Y<>9h1#qF*O?IYDg55flEQI zibSI`bs$p)qHsE*1aWiPYD9S9{(k_gfiNifCC)8htZ^^a1W#FjJCREHVpy530kxP! zEW{NI6{O;`MLd5Vhvmm(`-#}>u&@9znyYur$A89Qqmymi<&Oa(UPWhQ~1!zczikBKyj!z zl*baYR!?&UbSa)CX4Ojz$bEUH&zYA&mzWo;yOgT69iE?3OL_UB2&lkdBpQa(gg@8F zR=WQ|EOTW!82m^C!uMZcX$>J;z+9nQuoo~beY32Oo;Rsgi+8DzgnN3?@j{X=a?TAO w0vjY^QMCPUl&ZwU8D~@C)&I-~=dC+Ic+<&l&ZGLhe9N4WghhzYg(Uv*zqIRhbpQYW diff --git a/assets/icons/Common/arrow_nano_up.png b/assets/icons/Common/arrow_nano_up.png index 4a1d5be85cf83a3a1767d3b422054285f978c9eb..ccaf88b6e54ca43315fc8b27463eeeee56e937f3 100644 GIT binary patch delta 51 zcmdnW?m9t2myrPow(>`B2U0wqE{-7;bCM$t9AIEze8RBMb3#=BNZ!-c&t;ucLK6U3 C84gAO literal 949 zcmaJ=J#W)M7`9pos!AP@SYSH2OOS}qpGj=RR3VqPk?JT)Es-%7`;u6xea5~JClg|W zAHd4Q(gBH?ftjCBBz^;b04bdFRfYsh_Ir1JpXYt<-sj%8TNfwCPmcvbIB8y@4v&ZY zJvhq0x3?b)JUn5IF1w}!HpK}MYCi1~&3AHzo}9$uNj)@%OjyA_#n2d}TPY6W7ToxSS{Cdfsxq`Pegk@$3btW)>$1 z3Bw=@Z=%%7Y;nnJ@o~NkMX*d^V_RH_>N;&urwIY3q!c|_RzTU5aK+clhNhd(fhwyS zlr^YoMMbk@!_p0~eneg{@ds81ov+LBnJtbOi!BJJ)2TGoB$^DNVwxtDRj8^(o>5F^ z5yM$AN>4Woh@@T;#4Ml@$Qf~;PM9rnv8!E#@s>79*C)l#3}!fniX`W|+9W#8|5L+o zo1L-_x!1dsICW<+fgO_4N#gO|4Nmh?u~kn9W;Agrz1bXOdqf#cM>GbiE|oyR!CnyM zE6PsIp-wrJABN8Wp6-sAAM~T{ktPsT(Y!-XtUu z+hF~BY-ukxH$)io%7`Sv8{(fQGz80CTfq)3nyQ-yb00DM=Dav;R zfV4N%e7sc)sXx_pc2Fw=j81b1#%aC+R)BGZ^ANyboj05SnF4fD_c*OpN2!+mz~Ka7 z3Km-T0Br1Ck$;>G7%hzpm;o#>(B0oZWZLtC6fbZ2bdv!0Ex!*$+{b7B$=c#IzgMj! ztOXzjdxYl~&?=}DRlS$)`c#T48)<%E%dW^9z}N*=&Mo5uxEvkQD5|fYim%L_^?(QP z+}!6EKs$FmW4A{R1HNYLZm|v<>=+L($ROj3(S94c04qnv>PsvDn?`FN3gFs6Nq^G- c+zoL32S{wWDTQ(aX#fBK07*qoM6N<$g4`LtCjbBd literal 1664 zcmbVNc~BE)6wheY2!uKFLY*phgJAoI;~(9b-S2(h_kQpF-Zi@^ zF+PgtHqDL0;qcVaN)5Xvvag&wj{R2ntG{IzUnWw^ETRmI4WkK8n4Z!RfZBv*5gG#1 zJ63#0gm5_H9b}T0(Z(&5iMAyfDpT!HDDqb46vJwW~kNcFY38LI^aOT(OO4TNw@UFO4^9 zTaz3X0@M&zDwoFDnivAcz-<2B?#QLcvXLjyBwHBFsHE^*6Jci5N(G<25$Z|3oFF79 zt{0&K1d|yAVyOrc=nxShkm0BVg>_OwC(@1Cc@tix3X)1BkVqB;1;KD+Br265;Soxe zN-Rdg!lmdKR&BO2m>DO=e3Pv2Q7rOStUQ7yFovR&D9Sk235nShLs_#a3xG(35HLFq z!%4I2WR9y!uYy(*G?_=}RWxM+M$#-N-#`HpAu80Tmd;G97`! zdI?Mr{87CA|E3RQNrA3j`A_eR9kC7R5?@aPyLmlNgqa;8nw^%VblFu7XWV|ZGAzm7 z-ns8C-3V|CWLx`RUVV5?e=~JLXGNd*gA2VSy}M^liFW=t^rC%5`mI^MKJ^z*yC+9$ zK8y8opgw0i#OZbK-@bIOr+sL3X*0ny?F_5$?^u;L5LsJ%K{s=fe|&Jv>M52PH5+{E zciwC+?Q1wXec-Dn?aE=B+ip?UBV`Bm*T(s!wWZ~plEuod;*9$(j?$d6^(EcKbW!X< z&nIP6%$5Z)#Sc{zYqC;eHfJr#r`xJt{34$f<9D)}sVN9J6SzfMQhTpr?kB2_2ge#4 zPMiznH%5_{H{8XZyCE8Z^qt3(nNamZCKd_dTt1 zybD4vFW|RcM-rOAUY>VP`H4R@hUX>mS_}#FURP5QO}9;kzD&7Mf0X!18#*Cy#s=lb zoGCF8teZgFA$ z+RoI3!Q}^!2oJhss<8vOJLqi_j*V;@D?$qOzS!qAdI~fh>f!$Rlk&;`Vf`4<% z;twaDuf~1bzjhOXb@_XjZ49oi7zcZBs XY(V!OcIS4x{t4>Hc;)f%%(edjvT}hx diff --git a/assets/icons/Dolphin/DolphinMafia_119x62.png b/assets/icons/Dolphin/DolphinMafia_119x62.png index 1bbbec84ad7c1ddc9c58e5bfdbe577a07fed89f2..4d47ed5b110fc9cfb875a3b4ad2f9035fcadfdca 100644 GIT binary patch delta 656 zcmV;B0&o3*3Y-Oy7=Hl(0000v6}f`|00Lu4L_t(|oK2EDY!p`%hQB*IODuv|Bnk?O z*&;~Dsh~|^H&md=#SW}UB)cT3+|gyGLqaLiSfR5kWX%%ADIy_7(XMDgm=sou6c`EN zB9S}>lb!M0IX}hh!>74A_dEB$=Y=HYEltbU z#jZy<&!_A`tCFAQ<8DFSUOt%d=8PI1A_%sLXLg7%Z+8MPp%eJ|%AT>!ub`+WY0Vs!K#*uayr2y{9o zS@PeHq^w-ZIVUBmr4yj5f=FeeN_rQ-m9>yAMcLI?AD#l4j6|bErDVX3Rqv$hQY9HF z4^@@&rq3iAqyh;#EmYwSR2f_?a{`RjS8LzXxkj;b;4? zDD56-SJk0pNbw!zk(T`ZiN7dGUe(VJn*I8+4~(II-2A^NNxQ17Zsvcv53Cd50OYra zl8;o^N@M}Aw{whk@@0*?QEe3YJF0G5D& zw;%65aDQDmX_iboE?(8aKN=^MWauitO4T1a99EJAT;=f^?;-Dc0NbJ?z5G*~hli2{ z+Ts5`f353Pm;?ANwx#Izdh9nPqg-+ECF}h5p;9DSP_DT6g%#1?&lmw=Yo|5HzVPnm qch8o)5PV!|$JtZsY+UP(fKO%;$VC4Uv6lb<00{s|MNUMnLSTX|I7CJO delta 1272 zcmVl8 zcA&LaLZzh5J`c$}`U&M?b$STuy^n`r8YSdPLoJ3z#Sg*n2!9XD6p>?$J_+Ei(SAH= z?N5Y}-usxZNff+h6FY5r?c5D6aw$T0L{isj3tk`iVa~a*TD1@w9g3gu{tlONJ;ZW~ zwJP`t&F?TN*F$J#5k=X}uGFs#bF~~raP$UfMr?L26|vy<3r_!IIo+Vt0Kd{$M+} z&o>dw=G;hPCAoCv$9ze~`sN&qK`J+zSc_6QA9fo-;(yQH>wDl$xe>%hDAnu3x1;wy ze()P!qdP*q%9Hfn<=x%APgnPx(+_^bgNg?WRDX@{k^*bCsUjJUhtKC)A7KAJ#z-aB zYuDlj{M}P6XP=R^1VVrChL~;O{Sb1cgi3R+*B5BVOHLNSnH%Sqi`H6*x;SDj6R;8- zwOCY`jDN5T?PqP6*8ZwGLYq_FIyR)SaBqDMuwd*BEHxDW*ad$yQg=DXCrA1dnRM?GU zd6IUObMo)wM@vrR&S#zw9o>%V2j`G61~;a3+%C}PTJVP{Z&QOd6px3-uJsL^9?TEiA}YeYc|1Y=UjNdwRh!aOllHZ zL1cyUya-jUhUiEI?+Cq0-miv7qbVqqJta;XXK$mUR4iEG-Q zD!xPyF(4@#C%p>R0&c+F9IRvEz7|_m(PLXsQN@$gxJJ1VlO6vaRB$Q7YoD@nN`I9S zh^l2wkY)gi;Q2mv^+1w3Jhr(Fq8YC;=P$!DM~nwq6Qe@%u4t3`vI_Sao7KhK@{{$^ zIdR&RTrDirYa$EEl4&q9Jw*t66wBhGyQY{7U(Ag5Z~GSxUqTT4Gm|hU3k4+UUXA ii}V+64(i@1<^BaY>0lxz$?l;50000PeHif-4*Z;+Y9(2Vf&4Hy>kclgdRbcH)}o{J??M>ht?a0?Rs;Wo`|I=r?n|NV-?!;a00000NkvXXu0mjfK=qIf literal 1177 zcmeAS@N?(olHy`uVBq!ia0vp^)DSr z1<%~X^wgl##FWaylc_cg49qH-ArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB+XP}#GU|^lpi<;HsXMd|v6mX? zCgqow*eU^?3h_g30o>TUVrV!4LrlLSu|VHY&j92nm_lD){7Q3k;i`*Ef>IIg#cFVI zNM%8)eo$(0erZuMFy_*fK~@!5ITxiSmgEfrKz*2sj;DkpMZknD6wv4b%oJ<^ zJ|V9E|NjRvLl0f915!UdT^vIyZe6(^E!Jef<9czm0A z3tiQZTzK79dS605C-KUauQq03?HktYO@Gah6}dWL!K=tEQF6i?wpZ6>D42{4Kw06Cgbx4xeweJDDGS}F({`j)7X?o}J zyX`DecdFHnf1Yl!OLgg{#J>1HY(M3>ay__X{YpODaR^Nc-<&V5lUuWQxzBn#x3aK( p%=f=fPd;t;X_5T?htnCD8BU8cnRk73T?7mS22WQ%mvv4FO#oZ0m5TrX diff --git a/assets/icons/Dolphin/DolphinSaved_92x58.png b/assets/icons/Dolphin/DolphinSaved_92x58.png index e8704295c6ea182ffdc880ba160182c22531d708..4d8195b805f26db22c46aff9ab6e243f866d7db1 100644 GIT binary patch delta 461 zcmV;;0W$uD2ipUX7=Hl(0000LIRml)00E*&L_t(|oL!N>YZOrwg}--aWHu_~Ar=Zk zR`p@r-q7M9yvIGtjXG}f8Y!ot!*aD$P6A!ZVPWM-L}V=*(U z__~jC?>UG2kR+*KE)@mGg z{p%nH;{OyRsg>%jX5Edmcf(E$^<~#Vvx1{by`m_f(xtuIf=^F+rRK)Jp&Qicu;Zi9 z42t$y6a%yyOj;2zU=*e7Jp*DF)i5S~4_NXY;~rcCjF(-xQD=}k&Qto{&805w8_XcM zPy$%x!Q?q6KpRA$`<%YtmU{*xrO1O6h^x-j6y zYsNsbgQW764kWEIBq`AsNmVd_f(CFiB1+j7Jp2*u9+|1YNxEi^4skS*AN|H?~nak33n%^wa3Hum4thdG4lgpdw)}}BRq<1FP~o)Mxu~G zHo%XdNG!B$C*a>PEA&YMsKh8McrsAnI}k@H1T3~ zYQqcnBA*H?Cx4J+EakHl3*vjVj>=t;ZduOv2oEXJN3|!ce}5awD}02N;%BcTkea1v za$&9FqlreOW+@iAFo*aolHbMYY8k6nwstq*)Hi2d3XkC&FauJK9X zCB2}iETJb|lihH9xb|=WfHiSh?ctDIly|FEGXa~1lz&wU7Ci}hRi2{{FWUeHFJ!gq}(4YZ_l&abdsH!Xa!Vl%$>IKKkf00kBx5PgWS zXl|{(&qf)-0raG!4eN1PqHMSD#tHERZwlwGTH6n2?x(V9x#MF`nqI5jl+W829ePX& z=U&)s!hhm)+D03zRL`odkO>oo&%UF`u^?_7<8DFNy9aY>-$da%8z}MSzpez7bwA4U>=?o!RvB&d&GCV;SkcpH5$A8Zw#(ko2Q7@$u=@o!CcU1O_BXRRe zv*I$IBefx^h&`KPyKn+vv=PWEUUKYceR@=(eVbxMzDav_RL*!D2ekWL1fJjJxqj>x z#UA;(!Q+DySrsx_;M_Z-~5WQm1Ip3Qymc@@Ez|ipkk(Un#uoz7z>oSx`pWxtch?0cB(yr^LPX QuK)l507*qoM6N<$f-6X(j{pDw diff --git a/assets/icons/Dolphin/DolphinSuccess_91x55.png b/assets/icons/Dolphin/DolphinSuccess_91x55.png index 80caeb203c69add5e5786f576daeb3b018b1c859..1dc514db64453962bfe371a43dbd9487a50345f2 100644 GIT binary patch delta 501 zcmVdkYl+00GKLL_t(|oIR31Yg1tq#((cg0>usuia6Tc zf*BkO4T4i0?%)TgpTG|w(hIt{IQRwZEQMrfv7q%v)KSb}K@gL-+E|Ea(mshbnjlQbx7Jz%Mr z_6aB#JvSt!h3!_p4Zw7l|7Gm)q!8s0X^I0n=FGKqCoXKNg^w*DR6AJK<|!`55inPq z;{o@49aCEq0OBRg)tI$7tMk6T!&v9`LMxw7lg<{S#yQvL+mq?r2cEG~xA9Y{l2_ic zCSo1X4pxe61Ah-c&?=)w*zQUtCGw0FBweIRCf>3pz#u=g6gl948H#fv&tKdsJt@^x z6SY=6{f1JVY9M9a(g@>#p>SBGiF@SPQs+3PC+V?*^u6opHza8)9S*#GivU8tw6Y8E z6>e9t*IxjJd;qMn24pd_EXE%00VnWoQin?~C6R`#=7qc`vmmboEj+p!b600000NkvXXu0mjfV;Sf` delta 920 zcmV;J184k$1fmC!7=H)`0001E05-S)000SaNLh0L01FcU01FcV0GgZ_000A2Nkla80tk`0v%FYt{QS^;XijtOsVUD?#;+`c<*fIT3&TD?M&)R06pD<=<1yq5Nwf~f2r zMN`RW@xLABntwfCTY_ptrAMf{iq3Q;JF&UDl~uOa zg?P(CMRjAsIiXlOBC^3oZY;&8ZO13;~r#7 zijH&*kq4yZqAgaF8^eiAD<3!>sccTskv46YXsfF57=P&+@Li_Gh2toG9^~VuCW2Tv zS0WRt+p^Xw!Iu0Y#^dYd#$HqQTxVrWwdRMj$Q($rcWbugmcj{3u`FvwKF<}D8m@D!-h}kt$IN~H+|CIiRoSO5cBNdM zj912IM}MFy$rITAejJdiR>q6n*gK?TKPZ!8Ka?#g`nIxnmA8}s>O8W2zoBd{8ENdy z>%@9HbENqXH-eQsC&AwlnDM!o^E2o!JnO(1tMlNTM}wlgZteMG@Y+*97>`SIH~z`8 zVTn_sW=F@&a4A|W3qOBk!%}fd*%`Qfh)ZzQ?0<@#q_;L(K*hAa2hqnE>{mV&?4AV? zIYvM6qu{F96*eI9?jk+0;R}QLx7otB*2Mo*dJDlBjSja7cs(mOYRx|7yE#C=O?`f{ z(cwHl_R}0xpMA@nWNxI#8b;jNAS*wDkE-xrrS6q3lyGWY)}VrF-jo7F1;)Ny5<}P;))= zxtP(aZVg#KYv&lf5x7C{&aI9T%C3YgRkvoS+4Ft)`#*eE_JeG#Q~Y+NW06JUkL+8W uVijph(S0000DW*S8T!o1*Cy3B;32(d(R-Y0@O_A zn@I-SX=rEcQlG5N(q+e4@PinEU?1*+Aj1_1JD}*ZFc2UL5Pwrd2LM{j7}5Thj1Y@{ z3<><{*U-L}MP5C?dkBu7{!>nfGI}^TK{a3!Qvvh|1UD`;>v=5ZyeCS0 zyZM#d*9D%@A42iZ#=lDzEGp)p0x$tu+nxKY6{eve0dqiqi0On5eTPW2a8%p&hpeOh zv#VDtIP9OH*K3BI0Ssn=Q~HQTq|+~KqWfGrzQ`?WKgJ8F9rhA=$*3yT-051Nnw QPyhe`07*qoM6N<$f{tLR7ytkO literal 1539 zcmbVMeM}Q)7_TxvVkTomCL+^Y*#zgVcfEdG@1$sHsg_w_rI~d&$Mx=QX`pxI?w~DG zro}ki=He9N&_Ti`78?x@D=!CanvlS37m0^u7O6DJd#U+#XghA8u=x zLmoyiU#_vDR-X|Rc$Sv&Ah#^bPL~zZ1S4OR2Bii_Nr4xL6cq3lu>u*;%SZK+k{mup zssZ>Mb zk6g0IGcM9*GLPGnc6xb%DEdeQ@%#M>ze>UJZbV5C1cG7+hQSg77J{ru1z=W4ifAwa zf#y9v(ZjJ&SR>`+N<_U}@^&l?ug_|IqL>xNlO?4M2~a*nsX!60Hyqn2S`cmEUpJnL z7VJSEKx{zZN_bkTi7P2Wmh$&(Lt&ug4Vle*q{2`|CXO!g0#>w`^m6G&!FU)F01ZJi zDgwqR+y$$(Din5NDgfg&p&^t`EpV!w5j{`is|~mcSE4!`H={~rMh2n9v2>%!Y*wo= zL%NoTa4oDLQY;N3wmp*VajsOmXK+a)4=9o2?HpGW>4cmDPUM6F&Ie%{1q!8DDcZw^ zPv(cKG#0c8@Sak@n0d|%ji#COJjDeJCkRT(;4r1cl&~6OG_Vus)G&iF1gZlX7e!0q zkMWuRn?6Kx3JLehe|jf!BsFAMd@>Ev=E*z(RvIE+nwHy%w~xzY6CsPqU=Lh4yJDcZ z6Po&U^y9~;h!=VtW^kh+xhHRS#n8kB1;N^zTOU-}jt^9|rp!z^xht{srQ)bM)0q#e zk7XJYs}HTYad7eWrjx~6qgb}NbTISa$Ok|3gAR9UWnYJ8T_dt?-;{SRM=k&TY~QI` zxM$?Z)bgaRydCqi&?B{1Hx=0P`#ZN>SakCW8$*W%^6qrp&s7bbn}^zx8n#bjV(w+T z=B(O(%O4Y~>WFP?FjcLMHs4CX@7yi9^68}**^hB>>!Z(e5-Y0JulH^F)Y;Qlo&y4!5XJy&P2X^f>R%j~fugQDrUhJKFb&o3!JHFXY<^gwY|2tX4{xoBiF>$rUelbShQFVSm%Y{Es8*(jTEf3&OGcKdF+D%@4+0EB A-~a#s diff --git a/assets/icons/Dolphin/WarningDolphinFlip_45x42.png b/assets/icons/Dolphin/WarningDolphinFlip_45x42.png index 2ba54afce0249303787fb3d94a78cc167a81a253..a2554eaa6a39e1f6484ae145856b04c0600f7e17 100644 GIT binary patch delta 246 zcmVAXYC^5Hw%FW(aRg z1gVDTBi>CLg9;r3Q$z=#H+alwx8?`*+Qz;RPw@;KewXWFEN_OQVmhBdLi08)fbPN% z+^~7+-IP0Jkc}}nY!k|?>>Q(?NokBVSC${~G(uCiPxMSc(03BnW w2}ozPfSC}G*CbDP`uM*9k0^0DQZ-Kf2O42j+piJdTmS$707*qoM6N<$f-Rk8KL7v# literal 1437 zcmeAS@N?(olHy`uVBq!ia0vp^x+tIX_n~5u`@1BDVmjn}NZ`zM>#8IXksPAt^OIGtXA( z{qFrr3YjUkO5vuy2EGN(sTr9bRYj@6RemAKRoTgwDN6Qs3N{s1Km&49OA-|-a&z*E zttxDlz~)*3*&tzkB?YjOl5ATgh@&EW0~DO|i&7QL^$c~B4Gatv%q{g&Qxc7mjMEa6 zbrg&Yj12V+fyi9f(A>(%*vimS0Sc6W78a$XSp~VcL9GMwY?U%fN(!v>^~=l4^~#O) z@{7{-4J|D#^$m>ljf`}GDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaozEwNPs zIu_!K+yY-;xWReF(69oAntnxMfxe-hfqrf-$ZKHL#U(+h2xnkbT^v$bkg6Y)TAW{6 zlnjiLG-a4(VDRC$2&53`8Y`Fl?$S+VZGS)Lx(C|%6&ddXeXo5l)>e$qx%(B!Jx1#)91#s|KWnyuHfvcmlo299R znSrq(*!kwBrk1WoW~Q!gE(Qk1mP$~)DOkJ?)oY1UuRhQ*`k=T)iffn@Wcz` zz>|M!9x%-p0TcJDoOQE-Iq{~ai(^QH`_*ZU>zWmKTucA|KmWe+?mErbXs(XSlV`YU zyj{3y=hyt?pBvV_R?6ew^D+M8uNu3qtmT_y-D0L)TyCc0dsA%UJkv=5Rzh;RJXOUd zb2IbOTqF$GpKcbJdrqLVzGd1T*X2+9*4{lY#C9V4>K2V9OE2i`>{wIr%jf)?BJJZd zuUTJdQogkH&a9}lvA4LA6npx)qIWK?x%%_%t!Ix}6uLep6h2dsS$*~Ev(@QR+>tKg z{Rx5VCNfp6n;I+CU0M0%6tiXxoBrH_wi@r8w!N3b)U#YQ?77X3J+inwuOh!a;>s!M zv#A>UI^rh96)w2m$Hn}af3o_`pcBH`g5Q$P&bQHDxm}W5pZ!?$r-&Js9`F?M>z7Y^ zY$~^~+n{bs1@D!OSqrT8+&A~yr*>6)e(dx~*IxLhbfzrnPjRGZ^@Z|QqP|R zTf{vU*uQ$uw_jB|PcZzAILGiaHBNU)cG13w&3AXCSuJ$kaL2{#H7|p$nykgUeK8Iy zEju&pn3Sd&9GD@pm18L<>(i^uuF=;{N93ug){1WBn;h+#e&AT0TJLc_#>&d$ZvF9E zzJWrXr!3AsoxANwWh&>=#qMTJV%skmUV2;@?^2MR`M%R;)nyx{?bH9g`?l#1bH%|O Uzg^}hzX270p00i_>zopr0LnWHWB>pF diff --git a/assets/icons/Dolphin/WarningDolphin_45x42.png b/assets/icons/Dolphin/WarningDolphin_45x42.png index d766ffbb444db1739f2ccd030e506e8bada11ee8..310be0f70f6b29946be012157507f1121b77dfbf 100644 GIT binary patch delta 242 zcmV!lPJPrd%(fDa9(qN`5xUe-^=N+L;Lk`VRqsAZ#lli@!k(Tt~#r2Jn}? zOQM6PRHjMa~2-;gV@-0_Z}cK6D1-i*0YhHEm{q9{3SMR=xfL^#v! znX-LIOty=}WY2vi7KY15rfEmfD}iTL-J~AiP4NYmE_SClUi``j%7~7k2|c0((0=W! sO8_~x0QcD*k{%3^{{{1kW<>(v4?%%ijr%{U<^TWy07*qoM6N<$f<7>Ai~s-t literal 1139 zcmaJ=TWAz#6rQ4%BpO*okt7zz3Bkm=bK9L=XV}qhW_HceY#KHzP4Z$UGyf(-b}pUy z<8ESW=_MtCk6tj|`k)VrCbo(SMH0n`eW+KIU`wG5O`$IeMg)Vzf7adDhv+af=lqBB zo%5Z`zqhqzdu2s+1%_dji6%LPq#u2o%9fzN?;7Dlq6)^^VVjkKImH23RI|DPo-mXi zkOGP}@Wrnnf?-SQ^>jOIPc{pxWsr*JL*@+|p)oA7EpIDoAAoo_=+RA)c=F3Qf$N$` ze9k55q%DD7y=l+^ZG$aob+Aw6HDcRVJdzhs00Te;&l_3O74jlch$|r7GgAa!aDjay z@rG1;vK5ys2jF3n@vAgV<6)izn!k6Qhd>D(EhD7l zcrhJ1i9|1iwm?z2T#n2INXzM=7@p@Tnx$CQk39VDfC-hn-*jtB5oF-1j&4KUGI1}W z(rxuakw9eMRAJc3%8 zlBq3$QTyJX$a6$&1ldyi4Pe5AEE32Sg@vDzY~7qR?1u@oXh zd9(fBtV<@eK%Tm=yy&p7{=h^#@1W)WFFSe!U5pP~o71uR`FW)7xc*=d5_b}EG@XBZ z@<7MRp-;+|o}SzJvMyfx>37Y4etBizf%0H*zaIF?2ObZt?$D;{o|esJ z*PgAOIO^*8tL%z2)|}k$DP5kN5}8qo*wNa8y?R2=%wO{gCD(`sHt}TzWQuK zMDIJap(nb2=7*ns*oDcRBbC23yy`kvKYV`ovU`a=EmxNv-90;;5r6+l8hQTp^u`Hn XX6*+%8gHC`h)Tl}u@-r>vFqE{F~5F& diff --git a/assets/icons/ErasePin/Erase_pin_128x64.png b/assets/icons/ErasePin/Erase_pin_128x64.png index 92ca5f91cbb528563ced1b4f585c40ca3e8c27c6..847146b789c59e370fe0d953026f026934986ff7 100644 GIT binary patch delta 638 zcmV-^0)hSHD2oM<7=Hl(0002`twPcO00L4;L_t(|oL!Q?PZUuUg}=Eo!3l9;i4;p> zvSVUlMM!ACUyQ_p!UX>UU3v=}6HF8aj0P($EG#gRU~O$;u}eaX9a@Mc77mce6u=I$ zad+9-xfZ+2K0M9KJGt-XJNI2wLt71@nos5pLuiJ!2ix%QUVn*jPpHBaWWe?T91<7= zHeP=lZccsA2r&p8?LN4+rss-*5P}80Un6@V0E7})0W!V}0pMr=_*j{xS6J4K45_MW z(cn-3j}r-XziHgD8cB4%LbmHPR8`AbENZIrs)y3{{r1_Us;XMm)uE;BKcl%%bHbXl zCD8k3bhdfNsRekceGqJ?QE5TKl zLl+!swX-z<-CTBEV88mSS^are_1UH-c~udoV9n-Z7=JGuE_xtXC2IsgSNa!xpscET zJgvI8*;<&gs%mY=Bn8St1}T+@fn6h!Cep7^RsP>WE>`_u&*6VH&1%zgtQ% zB&RA!Vs{eiR$D>^qO_Y=ki?DEk8iq@K-L$U;(cMcQ{V|Y>#PvL+S8HWqnEM{48MQp zdyLQIa;pQkA_=r$mw?Ye&ki+#fS}!=z8}Ob4lbZ?gD9OQ1jhQn3JuaQHHYs&)H>Sw Y2TK`T4zE$dtN;K207*qoM6N<$f)mdn9smFU literal 5220 zcmbVP2T)U6w?1^FO1+{8ktT?w5=t~m6_Ac}1PMumKpIJ;2^c}7ND&bgQK>&g5EKvr zDJop4A}ZZNN06>GrM+PL-<`Sl&7GH-le5p>-}?6Y)>?bbInh=YMuL31`2YYAG%+@? zVcnUmONW=8_3v6Xq0G8*dg_|%0>Fa={&fr&0PrCR`ubLM8zViCiJ`s*Oj|=k4Gx9@ zfN|sPYyP&jJ(7_xYy5*UUO-<<1to!@%tbJ0FQ@gc)7-mSfO-LQVpN`vfrtp3;pKED zTULf~VU)){(3reD+_CQC!GVEuV`D3gH3R*gbM%$IvuO{(fP$qg7{Yap z9h94N~9@p>(OV$w1< ze9Q86p=~VyG@WV~Ct9FP8@|d}w1{WN%pl})o-4#i9g9wZ9JgwqdBnSn{wFO&vd_A0 z8Ykn@FnsGoUo#Q55*2Xv;$?Y{2BQWpsgo8tQIt!L2$LIa5(_TAM0jM15D=qK&aYJ% zAd(t&qd{1RA+kUNsM!?|t#N)yY6<7Cer0y{=`WSO3+z>3(*&|N=|%ck8azph{d~sJ zq~xa2(n+vNbH16I25`x9^PrS3X);sJ<)*WX^X{8cDWTSRTUD!?inB9vHGHe@5K-ML zku$~XHlG0ZwixfyDPfnkPykiV4)Wg;P95I|C>VzL)GhoO=rtS|{RgiNDK-v)K*Uu@ zUrVe=ubVoDS{DpiK+7-q)m@LAZHdP7C2=x*-#e<9sOTL*qm!G5I|R25H*9Im7k_cw z-4s1GuYK6sAkV9%qFT%PaUijXnffe?9=Mesy#<}NbiU=2sJxU0AX|8i->0*Wemug= z+{q>yX!UMsU~N2Hm}@xoj~vtkt(7#cjkO|b^lD;z+?w=9(OqVqJHAR?@)`Eo(ZK{1 z*d&@bB+}U!=l4N5?4L+#v1{IEUp?=>Q>dF=GK!~}DGb*I_X_aoi1czThaI=#_@pcE z#kOCEM@taQY#l^Z?3iWpxO2vae{|=rX8W>}6SEI)aDH^3oiRV0*#_dq30LYKu>y$; z8S4A)6c*L1?2ydkJrHpq!#PjnnF20#DryL30RjaTiWu*L>$*A=}2T9ur{)u$&=|+>s0pU zUfN-POf^HWL&FQQcz_{|5_4sOjWpBWc3ki9?--fT+$C`F;;W~Qn8UE48=P$@GuSwg zBSDuzFs16-JRUd(7P55TCtCwD9#v)kfq{ z`!Kh!SVds9xEntue5Jm0p>I_*7+uSMj^k*2+J0j(2Cv@*cRh9tA|tFrufia}IKWUr zv@5#10g$_15$&jZ*rHlbTCrBX`SPL(INSKj<+3Ek1;!ml!eWe>l26j!W)U1);Qq?Q z;KcPC>-J%C7=-Fq z`#}GJ5^;VBOXUv^Vabch?8)6Kd+k4+xM^o^y=-M+_n|o0I?y>HXE^Ulx=jwv9)CPJ z)4RCEPVEFb_ggI3)IW3oE7b|~q7+gQX^G5mzUN%mUtJX+6cuzQsNkEtU>LW)ynU8g zmJ9aS3A;BA2!~RqFSU|xmog-ZA6gbT_*l3Y9Wpzc>KD139e*qSx<$N2X}i8_Nl`fY zCi(U(2^}k=53!zOelQPl9MC)JR(E{sA{)`2@C2#l4!tj4(;1{fA-sQ$(Z7?* z9m*4V(bTB?GOvCj;z5q@g$446+lZx-q>_o!l9I3)-pt{~c#2=jrgskIIlKV=m}H^h zuQ}lLfv`zSc?xeY32&WswmKNBR_?@b2`(!u8FeXlv~VIg8@kxJ2qN+X&K-k|#31|o z`+~BT2vhzV*EHBu#Wd=AclRsxYxG%wdz{*x-0FhcEZ)Zx9DFoAEFUG5AH^LVP9J~5 z$fE}g=M6Ra5vjMRuj$9BsPV;TeGMsd@5T>*^cX4mFjlQP{AtK}qJK_lL~_`Ea=F*_ zJ-WT7FXVasGwkigK+Ce+M<2;AF%UfDnnPAk8()FMl*3{`QgwK>YE9be#M*pFRWN2i zqV{aCY*D9kvrFF)&wBOx@+$gs&w}Nbts{Wgpsba|yn2T^RP(-Ol&H8wr}&~$uXcsP zs%{iH3YvY$7OoC2gE7Eu$U=1@E_vbZQbAFq>IHiJA^H0v86turr3LTp=UmY;1QDm5 z+GWQ)&AV?F_(*gs-9w8hO8ps&l8TELx&pJAw;C3O^E!{G`st zU>jA&%o_Uty!PDUdEcKi(Wx>1QILeR@hYlnB}DA7n78P-=!R&50$3qJ@uAYlm8>Mo z1zbRM^&Ro#tA$t3+lF_BbtbB(memjt!IV&a)YV$0niDz_8)i#8&P2FGWJxVc*-23l z`UuO@CY}o=-%6HB{c)C~6(56ZgdWB}EIQ<%=1-rU2+Cc0xF=l@wx>$do7gs>Rojex z^XkQg7tyKbnh?#ZFV5B|5=|XyX`4Cg5AMmhr1C59t#Z}BB|hpR8j(Jd=LRsf*sXZW zi0NlOhDwHGhO#kEfA-YEH|`D>MBILGXwCGXsnG1R>EW5({WJI1yz&_Yi^*P@0rU)h zvE*4v&)KYHH?>ptZlwwLEh{M5&vG;Ab>o|^Ye#LLJABBe6?xyYzx%-&?avHxpHClo zdTsaE&CHuCkrk1%-9eq@J%pZQ+2_*jTI*#;%4%19p7+EF@(CIW$|lUm$4Uzx?tkOe z)!UohY5Q70lRq^#-caW8*SIOo+iDlp9^NbK&Kw!6m|rcWWYz6O4TWT`DU9G+{hbHw z9$EMEz0FvjUQUT$jZbW!Z$E!R)#8kQpWnj}%Hl@i8}HnL_NF^3+NN5m=lq6FwpaFj z$^V!OX>i>&75^!e>f80_TQnPb<9ap3wQ@T2t4HyPxk^<(2a8h=D}z4m9&v6w(>gU1 zA{jzD>bTy~P3ap5t^aiFqxn>-D@Q9&yAVpitzs-_>NBbMZO>d`H3BLQXZUN;0!G1W zv!gZHXCZT*@6yiQpWOEiGbEpHG?tJo)3cGcf}M&QYf7>1c~!e#*HR|-!Sg#?S2y28 zF0AK{=8lQo6^lzcos^sVE|+}7WrMgL`02~n$*{EloGS{=SQ~zPO8VSnsuL2id1Z?> z)HCexxj4SsZMo`f_qpYT)KSeZ^a#q>fJ{hZK+oEd>5Ycqah~bOn1mqN$43Is1yx+G zzCXWb<-(UWR7LFx)(a&FYiwf<06|Kum(2?R@QpRaoB)6`PyqPk4gjbd0PqL(R+aT( z*1`^|u@fBt_{Fv_HsI#1T>!w1RPq<0cj33r|RRq2*yD){D~k7TWpXIRvRaG^a$v10E$IG!ZR?S z01}Z*M+KnezVo735QQ-~BAD{!pnBDTw(rEc3_JdNOo z#~q_lNTBcKh$8$=1b!;e`)36|Y;pgrUjH9$A-|n5CeT?m6ZrE~pTPV691#gD-&oa- z!eF;gC|Zt=VfifgbMo&T{&y++LF(^?XHovDxW6f*A22%QG{YZ5!|Qso()+hH4gYIR z|1iUPVaT3%R^NokZ3~5Lcb6Z^AU`tjU(w&!{#PgZ1!uLl?cwj<%6jy6GxAFBL0fXkPa}0-q@I=Q=|9 z^@|Ao-DI98uQocmt8(%u?$nj16b9K(2lM1qZkY;~pftK)*o@a^ zPs1r)3BD)1Q;jaOySYG#p;tCdd|HYc1$dzC-<~daMLG{>$Fl+RL?G*)?4;pdjwb;- zc{&6qT+{gD*!;QY*8`uJJtlG=WF8L~^c1dW;ZBdW*0Q=OL&|R%7HGRx1Lcd;&$BrB zhVm7mbWVh6>TIlOoP0_}yYJqvTZZf=u9q+H6iP9~%<~}~kT1n|54}$E=mM+QnE~0+ zyNXSqiVM{ctwU?;eA&92BJn*f>{RkQ9^fT51bCu$No-d8X=4L(1$cDf39pREik{O> zVbHT^Ti#%x9~vi%Yj$9|z3}R6+cmfXn6x6D26zV7Xu;$8G>*&Hf}e)ICja00Z&k zr`~5|W-a0d?Z#Sxw$8|f1Iy~SlY8{S!ZXEy%Htz>a4BY)F5Aobu2E>&i)J3CgHR!` zYokFVj0(w_l`bf4KWJQX6)A`(m-O$v@oprvR zx`GK~AoTTeule(A0m0xGRSK;a4g=Cdg`BbNfo7M|&OfRPMlzSTQf1Ak>P1g9O;hfK zT+Y1$98fc*$6^?gQh4zY4PCY(5)#RQJbCeuB{8Kw>bbXF|;r! I(sK{{A0@`iOaK4? diff --git a/assets/icons/GPIO/ArrowUpEmpty_14x15.png b/assets/icons/GPIO/ArrowUpEmpty_14x15.png index 261c6d89e3c9a75d61803c83569b989345cca06e..01209712e1584ef20e549704aaecac44eae5c9b5 100644 GIT binary patch delta 83 zcmZ1=lR81dmyrPo{^TFN38Zv9T^vIy<|O|)eBjgmi7)$^AOGI&BhNBJuE0PxA@PCz kfgk^Lg_)U+k}4FK8RFmZFlMXI(gf-EboFyt=akR{05#qoLjV8( literal 3616 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 diff --git a/assets/icons/GPIO/ArrowUpFilled_14x15.png b/assets/icons/GPIO/ArrowUpFilled_14x15.png index fa35eb2f827bbf3b125673521e94c40ace83f035..2c6dfd9cc6cfb8281f5fbcebba854bec6233cd69 100644 GIT binary patch delta 95 zcmZ1@Q#e5)l92%j{^TFN38XAMT^vIy<}m6qT>8)Whk@mPBjcA7OkWl-y|}=1;RR#m ue?~4dru#BXj0{Zw89?Me2FCYq86L>2$Psv;#<*4rWR|C^pUXO@geCwu@E~&l literal 3628 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 diff --git a/assets/icons/Infrared/InfraredArrowDown_4x8.png b/assets/icons/Infrared/InfraredArrowDown_4x8.png index 2ac7bcdbef24ccececa268c20e92946b4f8eed15..086fa43fb68782a318c7f1f7b09572e553adaf51 100644 GIT binary patch delta 55 zcmZpb@th!G$jAT$v$r|N0x1Dc7srr_ImrnL87UTLKFBbz?q$-6&kM-`squ96b6Mw< G&;$UMst;-a literal 3589 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 Gp$Pz%Ko5@q literal 3592 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 Kv@WysIr~3bh)e$f diff --git a/assets/icons/Infrared/InfraredLearnShort_128x31.png b/assets/icons/Infrared/InfraredLearnShort_128x31.png index 783ad0877c4281ffc9373ab39c2db754eae3083f..cd71a69dbe18a892beba5d5e11f943b8cb158987 100644 GIT binary patch delta 353 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 diff --git a/assets/icons/Infrared/back_btn_10x8.png b/assets/icons/Infrared/back_btn_10x8.png index 10d7beb30837b8651875221e35fd59a90a33fb44..64b25db5af66dbbab86ea2e32165fe6f2efb3651 100644 GIT binary patch delta 72 zcmeBWjG7?f#K-^yFB*fTfs~@Bi(^Q|oa8U%E83Iz~DdQ=R+XHS>O>_%)r1c48n{Iv*t(u1?@du978x}mi9Sv9WdZI zylBJ!`bg^?J(o)CEIF**)@ms{3uyNh_}g@Km0InT=du1DmNwp7{qFL+#SXRKs{N`N YYjPD?Hcu<|0UE{N>FVdQ&MBb@0D=xIumAu6 diff --git a/assets/icons/Infrared/celsius_24x23.png b/assets/icons/Infrared/celsius_24x23.png index 64d7a1db15f32f41a18192266d2547b05924bd0a..9a6c30c759e0e4a29d6adbf99a346bc9ca43287a 100644 GIT binary patch delta 138 zcmZo)%Vx_N369=LfI`#_L>FRvUZ9QU!-6ay3_MWvTF5i r2OF{4KcGhhMUm0F)r{J3ZvW5)?7EFE0nS7a00000NkvXXu0mjf?^b0G diff --git a/assets/icons/Infrared/celsius_hover_24x23.png b/assets/icons/Infrared/celsius_hover_24x23.png index 0488b40f571b62a87a8dc73d23c6b0163a82e2fb..f5eb3f4bd7fb48ad3d8f44a9f7f429e0b0388d0d 100644 GIT binary patch delta 120 zcmX@Z*vU9SqL7gR2rQ#EH2|pqPZ!6KiaEBY7V7u|MM&Pwc$FVdQ&MBb@02MDs#sB~S diff --git a/assets/icons/Infrared/ch_down_24x21.png b/assets/icons/Infrared/ch_down_24x21.png index 8c3f81c3d097649fda8180ca4fcb973afa0ebd8b..a3803c745c4188bf9d9eda63d05a99e16d65416f 100644 GIT binary patch delta 125 zcmew?*2g$OqKuIN2udaicLS+VPZ!6KiaEB2H*z)@h`3&y?Y^OifqlcKB8G!HN;j-r z=lC4qlsRB`PC@PdIcD~T4A%qp!Y(ein#!*)tktZ`+x&iZdy1#&b}hd+>DWkFvl%l4 bWFt25_dk@pZI|mM3bM%4)z4*}Q$iB}-IFaV literal 2931 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 literal 2925 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 Xor6nd?Fm+G00000NkvXXu0mjfZsv+Q diff --git a/assets/icons/Infrared/ch_up_24x21.png b/assets/icons/Infrared/ch_up_24x21.png index fa4074d12b421fc45efb83424908166f49529b0a..356d124f6ab062c6063252c66a24cc52073572ac 100644 GIT binary patch delta 118 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 LNkvXXu0mjf(wcu| diff --git a/assets/icons/Infrared/ch_up_hover_24x21.png b/assets/icons/Infrared/ch_up_hover_24x21.png index 944a973f4a44c288b7e119dfba09f0f52c88a138..bef0ab0cce22b8f3b64a43d2a0f08c962e8eefdd 100644 GIT binary patch delta 111 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 literal 3742 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 diff --git a/assets/icons/Infrared/dry_19x20.png b/assets/icons/Infrared/dry_19x20.png index c689c067585eee19cd671210de06ed1c4cf400e3..aab1e650fc64f10a80a249924efe3fd399527fbd 100644 GIT binary patch delta 104 zcmaFDUNu1?iID*a-1V$)0x3sN7srr_Ims3WCLH+ke?RkOMmAP8Ha0d8US?k{F=NIQ zi3fk`zbho&*A_^cBg^9>BP;NYv5i@$uZPQrkB5(8b{F5tyUyERfDH9?^>bP0l+XkK D)LbGD literal 996 zcmaJ=y>HV%6gMhGRcWR2F#rQPxfLoB@%bxFY}IX(I-!>8C`wZ`8@bq*#%k>|_LaCD z7%GMq7}yz+U}IoqK;lD)nTB$?D9LG&t zYi5nvE9|{GF~+`)C%?kjb+l;#MDA2Kw@EiNY^a&|BUExhdo2LJQzJ05th!Ea@4(GFK}$6Gsy@Ww%rv?>xselcy;EdVaS7C3f(dI)214B6|9m715J=JjwnhXrwJ(U zs=2J9YIlGv$_f+}C@UFB(Z#H;Wov37FUL*>-=Q?rA?$X$LRS$;v<)Rq z)1W9rSZ=h(ltgtxb_W+(?GQ@h z4hey*3OO)uBgYHU$n74)wsk9rDGD5HnFh~D1kZEz1t}|KO)ame1x=DlrJ|OXOIo2^ zEXqn=74rkENt`_&2XugS&#>A^Y$^ypWR*=Ec@MB#j))I>Q|sR7UKU33^|9{gUUDO` zkTnC--Tt-fL5K+`b%)|*hoSs&z%(B*aUUz=OYFzEP+hN=PEJmkyZQd>LuOVivrtdI zwVKVQIX<<*-Fn8&zMNTmG$)nkrnWvG9a@(^v~E70F{d_E tCMM3t=E%51g4vzDORSBJja7}Ejh%s`k2Q*0BHbTkl&7no%Q~loCIH4O7vcZ_ literal 978 zcmaJ=zi-n(6m}I+p-P=V2$+s*hawuEe@&ivpVd6_SgtVL@2qmOF-SnebOS>J-z>l>Wetd5feY;XhGQ7O+xGp2?Jfy_W}d{c>e(c&o$s--j?jJLIz%K9Fc=@qwS1`j^@JM zyI?2LIe||Y28n+h#Cl@DDX-4`G>jmarm&#_&ztJlO;Di`0h%ah9Z8ZwK@)M&%@y)$ zPTK~Gq^L+zk)md0RhRO5E)Ql8|#^-4rAqfwjE2S84es$Hx0;1M9*{el4hwDwW_JPk|xWRRo04%rIo7XvZ5Aq zQgMzosdM6!fX%V)1-7&ln+n1Yd1aGC-UH%RBkF_c)VjC4m%>uM8P;9iOK~X{@n%rE z+rM@_4{-sd?n1o$u#i6qxaK1+?%!v%9{({`oBM5x+sS0|`s=Ij+!O0&shxc59=Yz` zrM(q)YjqoLW~!Sn4qw*fcTdl*eH3etetovyJ~8$lt_Y9{cZQwoUpP{zTMhF~`RMT< Dw7e|g diff --git a/assets/icons/Infrared/dry_text_15x5.png b/assets/icons/Infrared/dry_text_15x5.png index 7696e1fc8a48c39e06ea76f22917b449ce0cf960..49e2d4ab535654ec87e2e48c65fcba8ac8ac2c2b 100644 GIT binary patch delta 62 zcmX@X9xy?|f{_6THkoxd0x5A%7srr_Imr`t9G>xazT#u)WHa;2Y-|h~=UJW~T~OTv OQtIjI=d#Wzp$PzPA{6of literal 968 zcmaJ=%Wl&^6tz?pRTUL1DMD!EB2gsb@gr$sD<(=}hgzzukOq+ji%vX~#A@v^_LMkT zAk-bKD)9*{SiuhvzrlryJ{c*9Ae?aCWU0 zx3~Day0*f_&Am@OQ^CIT-J^z44K!W3loC zlv9HX1cV`w2FGDyq^3C4HMpOJp$MiBc4Uf|MRnXJsMDALT~czMEGwX>OQ?kN#e$aC z9|KiZH7ILP)pCkv$OR)`0JBHr31i$dT2^D0j-O0%z*uBJI2;b8p(fF|4;5Y4p{znx z&2dC78HEg`xiHz9D_A7)Vn1R&4MC=ey7YvZA}{u`iy&IahRJMFd}c635mY2O>uL^k z-Ty;_V1Z6pi(J)vt#HyFMFh4;LQi6k-(7DjOBEUQm>@>uHl@e&K{f}J(PTg)pys6_ z*mjZUhgsy&l;XOE6DACW9&s#FGf{16fNbJ8RxDnF;OuIJxYiik13QED!t4sA}T)e!N{8BFD z#lY-t|GDdVh%Zp)E|!-c7VA$!zVk6(?u$>~hWy94(cEj>lgWg;&wu=W!_5Q7suqMnff2rQ#EH2|qNPZ!6KiaD$YH*z*J2sm7PuixZ4VamA)r!FZyP-#-$ z;V7fJ*uqJ{+2s=J8khGq{0-@CEJY9g7jOR6duiX9B7?L$uTO3|IJ4lvhQ!TjUr#-1 mHLosn^07*qoM6N<$g7fWe>i_@% diff --git a/assets/icons/Infrared/fahren_hover_24x23.png b/assets/icons/Infrared/fahren_hover_24x23.png index db922c5576f8748eafd7bc4100935fe07c5358fd..9a1f73a087b1c1feeea269c5ff8796bb8bffebaf 100644 GIT binary patch delta 118 zcmX@h*v>dXBA<}~2rQ#EH2^6;PZ!6KiaEBY77DgF2rwMH$ynIO-N>@SX`hXI)CA6* z6FB&~kLbS2y!%1@(nEv0f~WgeEdTiC)`BzllT>qFc;qjQSn;jLOWE_LLchxT8peek VeEG{g?{=z9Kg#&p5Xxtjl(!+~yL@O1TaS?83{1OV&}NQVFb diff --git a/assets/icons/Infrared/heat_30x51.png b/assets/icons/Infrared/heat_30x51.png index aca27c7c8962465c5d09d33938882fc1e4c5c824..f702816d6edd26ebc6d138426069c92eb7c189ad 100644 GIT binary patch delta 151 zcmZ21yPR=?L_H$|5Ui+deGa7ZJY5_^D(0*`w~+Tx0E6qr!``eM0v0ly%@+bCT3YxH zFj*W@SfZTpVXB6cfym|lq~=-L{_Aoz*I)5rR!&)PDOL2e-hRZ| zmp!#~-$Z+Z7{8>#^!+oxUwu*`nlIz^^7t&5s9*BB9n#kXbdMbA1v$af)z4*}Q$iB} D1W-I< literal 3747 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 H9ufZsEpUri diff --git a/assets/icons/Infrared/hourglass0_24x24.png b/assets/icons/Infrared/hourglass0_24x24.png index a382d84e215b74175071fb421eb62abd6c51c294..ce627b002ffb71e2430bd7c25bccb52dd009d419 100644 GIT binary patch delta 121 zcmaFP*u^+OqKJ_J2u|=YgaWBRPZ!6KiaDmI778{P2(Vt<``9G2VdfR5%q>oW8981Z z3)*?KnjR`MY80p|gb7=H)?0001Q6{@cQ000SaNLh0L01FcU01FcV0GgZ_0001)Nkl%4FE)i&Jt? zJra-^F>7x?MzN_A7Ty9F%HI0PXpyh4hW!KR*kKE9cKy^QH+$>;57nvP(F42taudja R2&4c2002ovPDHLkV1kQeT5kXV diff --git a/assets/icons/Infrared/hourglass1_24x24.png b/assets/icons/Infrared/hourglass1_24x24.png index b4cc7b4623ca4e3062db549e759befc43cf16b76..ef048a7bdab260080ce7c6458fc4c9a3a946a57d 100644 GIT binary patch delta 126 zcmeyy*v~jYqMVTd2u|=YgaWBBPZ!6KiaDw$HwwB2h`3&?T_=6HL2|2xulD|q`9h1B z8|8XBBtQ2Z@S4sOV-oq(V`cC~5eEZ-FH7ol|4F~+%i3qnX*MY}aOd*`Rf)ihN1UgB dJLsx>nERQm%+xEvZ+?Jm@^tlcS?83{1OPrdFw+14 delta 230 zcmV3m5b%rM>6;&NK;tlsA!izmbGz!}wLQ2Up5-JD_ zqv-{>%H4-a&O}iopE)mfq=+bM!28xlsycDJa$a}kYl(svc3&A?*VeXE;#O|DW?a~1 zZ^XyO$UqG3kCC}p)qz*vg{CNH?GI0Tkd6!eBHki@pA=CB=~gJBqbYoCuoW|#AGMpA geKh}<>eg}e0a;CWAO((dp#T5?07*qoM6N<$f;-Y&+5i9m diff --git a/assets/icons/Infrared/hourglass2_24x24.png b/assets/icons/Infrared/hourglass2_24x24.png index d2c3709f7044a68fbdab07f7a33e35a9535f6b73..918bd79d869be1a4d5a2c6689cc237033ba408ca 100644 GIT binary patch delta 120 zcmaFM*vU9SqL7gR2u|=YgaWAmPZ!6KiaEL`HVQffh`3zbeZD*MK+io<#ng^EP9|H4 zi3k3O3e0(O;(+h;-t$w~LUkEy!h(|f)gK>r{Qci`!{jN8c3n+SV+hr?;mMqTr^IN_ XrD*BXY1*YkMQ0wO`KKkqfsOo8#Gat4%!n$p2SW*YD^9 X^I3HomLwGW00000NkvXXu0mjfdHP#Y diff --git a/assets/icons/Infrared/hourglass3_24x24.png b/assets/icons/Infrared/hourglass3_24x24.png index e7be1e99557d8984bb5bb0a3d7ff053d730198e1..dccaf46cd75ba3bb40913879a1bac092c41dc550 100644 GIT binary patch delta 119 zcmcc5*ugkKqJWVB2u|=YgaRplPZ!6KiaDmIHu5$Yh#U#HuWqW-Fy*O4%Si>H;0>-W zQ<G#olRIdy^I(u1a+k+G@`_LZ#pd`1U<{B$i)(%<~+V)NhH-CX9DH>Vy`Im~R+ VEb%YBEqyP@3Qt!*mvv4FO#u7DEzSS{ delta 207 zcmV;=05JcE0p9_T7=H)?0001Q6{@cQ000SaNLh0L01FcU01FcV0GgZ_0001yNklp4^BYJ0S63Nj3obT` zsZ82?lQ(fsyZGabeMdiWly92H7P~-r3$x*D&Dk+Zs>>d17R}dx!Q%X3qRZayGQK*q ez_mLh_Wxs);nLzh^KbbHkX4?pelF{r5}E*&Ofb>_ delta 223 zcmV<503iR60q+5j7=H)?0001Q6{@cQ000SaNLh0L01FcU01FcV0GgZ_0001?Nkl<`NNkvcDoZM)2Wio-!$f=jaXa;L|NCDPgVPywSlb|%vH{ZHlUx4MSm>Cji6uw6JK3jn4EH);rlZc1@_i5h0CV+Td)>&)CRhM` z=zEp$wX%ge?*ZasK22>hR5rU6+ePP~iWO5zB`shnMQ=fjh(pJk8`7N;OG`j!Yq|ml zK-}PzB|+_&m~{qc$DAF!B(TM?dXibmf}%8~(WII=A_~?*x~*N2)pe9Q`}Rce+f=Niy@^CbWWi>w;wt fvS+qSxj(*Ye~wAx0K+sZe~?|Cu6{1-oD!MNklEc9w)m{tPfH%u#6{_$N|Cs$Ke`#gkN`lo8Du2)~{>Wzh}W)1$OHmEdr zEwZ`2#@itamF+ZwQ7D|C9Q2Fz_0gp@HKb`Fnby#1feI1X>$aVRLNv58Xt_h%`wKkL Y13@02EsYpGrT_o{07*qoM6N<$f?{P?$p8QV diff --git a/assets/icons/Infrared/max_24x23.png b/assets/icons/Infrared/max_24x23.png index d4163a65f888ac23b84d1e0d072330b34e9390a4..b7836abbf0860038a1d6ed0b83dd02c9c57b78a0 100644 GIT binary patch delta 129 zcmaFBIEitBL=__g5LiZSY5-D^o-U3d6?1eCZscupkZ8Er->05AWN0pJ0U7=H)?0001(q}vHW1xeW!01+u;qf|(eRPGQ`Mf=iPLRRTm zITV%BN}!dpw>-30Hr5B~C@X71eI>QVnG&sWtT?N6{mTMSJV}v$`BRHM0NbZw551r5 zpZ3wtjfAy&NTW7nCrSf3Bw_bDk#*~vUDi8Gv@SpXJL>;}6nOw_O?WZ5x_Zw50000< KMNUMnLSTYT+ER7^ diff --git a/assets/icons/Infrared/max_hover_24x23.png b/assets/icons/Infrared/max_hover_24x23.png index 65f97b0ce3a52af81042eef38574f0ece8cbf1a0..f3e87a5817f49a0fab2959f55163b64cc1028c02 100644 GIT binary patch delta 117 zcmcb>*v2?PB9D;)2rQ#EH2^7JPZ!6KiaD_d7xFe32((>%Ul;1!l;UI7pv%G88&p-w03af?ZFCfy>_Bd~wo)h@E36nQ z2C`BB(c=gkJVceOZPewyHL}82YiuiikY3qN96^2!yWyLwsyWTW<^Y;yo2)KTT$2^; uQd|i)?{7r@N9&X3#Q|{tE59#JeQOUQmuu-+#jW1}0000k diff --git a/assets/icons/Infrared/mute_19x20.png b/assets/icons/Infrared/mute_19x20.png index 410e88ac2ed248413b3c80bfa62563f3b2fdd227..d767e2f9c049b6ce6d6d0d9a91574f5e25c3a59b 100644 GIT binary patch delta 108 zcmaDRRyRQ+jgbKe-1V$)0x4Hd7srr_Ijjd43N|?KFdY0X&Bnvl{VT{xeafe$OQm$! znAP4)niJOQDL&zVRK$bQ$Ga4aKRx{XXkQ}pZ3iL7$#eRy@jha|`HcVMgEGUHAcH+! L{an^LB{Ts5F!d@N literal 2918 zcmV-s3z_tZP)StO&>uS)ve<0AYj>5AR{$W90N^4L=L-RlQUJ&DC0@ZjPh;=*jPLSYvv5M~MFBAl0-BNIsH z15C~g000{K(ZT*WKal6<?_01!^k@7iDG<<3=fuAC~28EsPoqkpK{9G%|Vj005J}`Hw&=0RYXHq~ibpyyzHQsFW8>#s~laM4*8xut5h5 z!4#~(4xGUqyucR%VFpA%3?#rj5JCpzfE)^;7?wd9RKPme1hudO8lVxH;SjXJF*pt9 z;1XPc>u?taU>Kgl7`%oF1VP9M6Ja4bh!J9r*dopd7nzO(B4J20l7OTj>4+3jBE`sZ zqynizYLQ(?Bl0bB6giDtK>Co|$RIL`{EECsF_eL_Q3KQhbwIhO9~z3rpmWi5G!I>X zmZEFX8nhlgfVQHi(M#xcbO3#dj$?q)F%D*o*1Pf{>6$SWH+$s3q(pv=X`qR|$iJF~TPzlc-O$C3+J1 z#CT#lv5;6stS0Uu9wDA3UMCI{Uz12A4#|?_P6{CkNG+sOq(0IRX`DyT~9-sA|ffUF>wk++Z!kWZ5P$;0Hg6gtI-;!FvmBvPc55=u2?Kjj3apE5$3psG>L zsh-pbs)#zDT1jo7c2F-(3)vyY4>O^>2$gY-Gd%Qm(Z8e zYv>2*=jns=cMJ`N4THx>VkjAF8G9M07`GWOnM|ey)0dgZR4~^v8<}UA514ONSSt1^ zd=-((5|uiYR+WC0=c-gyb5%dpd8!Lkt5pxHURHgkMpd&=fR^vEcAI*_=wwAG2sV%zY%w@v@XU~7=xdm1xY6*0;iwVIXu6TaXrs|dqbIl~ z?uTdNHFy_3W~^@g_pF#!K2~{F^;XxcN!DEJEbDF7 zS8PxlSDOr*I-AS3sI8l=#CDr)-xT5$k15hA^;2%zG3@;83hbKf2JJcaVfH2VZT8O{ z%p4LO);n}Nd~$Sk%yw*Wyz8XlG{dRHsl(}4XB%gsbDi@w7p6;)%MzD%mlsoQr;4X; zpL)xc%+^yMd)ZNTI#eJ*$O)i@o$z8)e??LqN_gLa_%;TM>o2SC_ zkmoO6c3xRt`@J4dvz#WL)-Y|z+r(Soy~}%GIzByR`p)SCKE^%*pL(B%zNWq+-#xw~ ze%5}Oeh2)X`#bu}{g3#+;d$~F@lFL`0l@*~0lk45fwKc^10MvL1f>Tx1&sx}1}_Xg z6+#RN4Ot&@lW)Km@*DYMGu&q^n$Z=?2%QyL8~QNJCQKgI5srq>2;UHXZ>IT7>CCnW zh~P(Th`1kV8JQRPeH1AwGO8}>QM6NZadh`A)~w`N`)9q5@sFvDxjWlxwsLl7tZHmh zY-8-3xPZ8-xPf?w_(k!T5_A(J3GIpG#Ms0=iQ{tu=WLoYoaCBRmULsT<=mpV7v|~C z%bs^USv6UZd^m-e5|^?+<%1wXP%juy<)>~<9TW0|n}ttBzM_qyQL(qUN<5P0omQ3h zINdvaL;7fjPeygdGYL;pD|wL_lDQ-EO;$wK-mK5raoH_7l$?~Dqf!lNmb5F^Ft;eT zPi8AClMUo~=55LwlZVRpxOiFd;3B_8yA~shQx|tGF!j;$toK>JuS&gYLDkTP@C~gS@r~shUu{a>bfJ1` z^^VQ7&C1OKHDNXFTgC{M|V%fo{xK_dk6MK@9S!GZ*1JJzrV5xZBjOk z9!NTH<(q(S+MDf~ceQX@Dh|Ry<-sT4rhI$jQ0Sq~!`#Eo-%($2E^vo}is5J@NVEf|KK?WT&2;PCq@=ncR8z zO#GQ^T~S@VXG71PKNocFOt)Y6$@AXlk6rM*aP%VgV%sIRORYVwJx6|U{ozQjTW{-S z_si{9Jg#)~P3t?+@6&(!YQWWV*Z9{iU7vZq@5byKw{9lg9JnRA_4s!7?H6|n?o8ZW zdXIRo{Jz@#>IeD{>VLHUv1Pz*;P_y`V9&!@5AO~Mho1hF|I>%z(nrik)gwkDjgOrl z9~%uCz4Bzvli{bbrxVZ0epdf^>vOB;-~HnIOV3#R*zgPai_gEVd8zYq@2jb=I>#f& zAH2?aJ@KaetM@8)yT={zCLfxRRi1#GN&w5OaT*K8yOgrL@J1&5#(d0+iJ z>KZ)Oo9NjB+{TiEYuFEVQtet;s=QAJZo7k%H)INChKW%l2cJ_^J%HtZ0cej`A(+SM Q#{d8T07*qoM6N<$f=M%l5&!@I diff --git a/assets/icons/Infrared/mute_hover_19x20.png b/assets/icons/Infrared/mute_hover_19x20.png index e9a5b35102782da59c7ba4993bf8c60f355d4bdb..cf899b8835188cb1df914de2836bdd44a5c7916b 100644 GIT binary patch delta 103 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 diff --git a/assets/icons/Infrared/next_19x20.png b/assets/icons/Infrared/next_19x20.png index 512b68745ac452eccaab049c59fe7133db57df1a..6d48639b88dc502af088680ba1c47dc9050553ce 100644 GIT binary patch delta 106 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 E0Cw^t1poj5 literal 2873 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 E00he=jQ{`u delta 176 zcmbjf#HGqL}ehwS>O>_%)r1c48n{Iv*t(u1&cjh978O6uTDP5b-;kb z+4trD|C_8?cKKdT+^cJ@=%2lzpxl@_AyshZkq8l2`>=jxMv3KTF5TH$GwoAg)0ynk z3Xigvp1fQ9L;sWV6Q1wFzYH~vmlRbLE^A4B_DIM`D`xM)xuz@T3%qj9YujyNr@r!H c!^`~)uL3jf#HGqL}ehwS>O>_%)r1c48n{Iv*t(u1%o_Y978O6lmGnxZ_muk ztgNiee34-htJ_456PH~L54^KAIW8d0HKR`9RQL`N!3#a{QohqVHy9T*ELpvk&FgSKuX-x#WAE}PV$_OO)obwUf$2{1c&%d*$Y>+wmD NQcqVumvv4FO#lpC5;Fh* delta 112 zcmWG&Vw@n6#lghD!0=CERt1paEbxddW?-`9RnAl+Y+*OirF>&~ptenEQ^S9MQR;jdrvbIa9B@86ze{Ix*&$0NDfYk~S1 NJYD@<);T3K0RRV?CZzxX diff --git a/assets/icons/Infrared/pause_19x20.png b/assets/icons/Infrared/pause_19x20.png index 99196d23b5a8c092a84b47cbfb995ae3c7af0796..f3fda0fc458f99d15c90815129935cfa9b4d9c69 100644 GIT binary patch delta 87 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 diff --git a/assets/icons/Infrared/pause_text_23x5.png b/assets/icons/Infrared/pause_text_23x5.png index 72c7b04036f195a8362e8fd69e1a284a5c2eb9d0..fd991be3b9de4137b95bc2fbc31a8685b81837cd 100644 GIT binary patch delta 67 zcmZ1>7CJ$~mXQGn+Wfud0x20!7srr_Imr`t>K>RN`?WXl&`+yiqr*aKZ0|G}tpBs7 TCAJC~gVcMv`njxgN@xNA!jTnp literal 2856 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 Au>b%7 literal 2869 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 TyN&*k00000NkvXXu0mjf0h(^r diff --git a/assets/icons/Infrared/play_text_19x5.png b/assets/icons/Infrared/play_text_19x5.png index c5f067bcf4fc6fa5518d744b829510728896fbc9..375f8155e438a32aa1012941494d7c2236f71d92 100644 GIT binary patch delta 68 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 Ct2{>l diff --git a/assets/icons/Infrared/power_hover_19x20.png b/assets/icons/Infrared/power_hover_19x20.png index 3a41249ff30c4e1fad3738add47af077be33a49e..c8e30cafa89a409e3e493e31ac55c16115abe1f6 100644 GIT binary patch delta 97 zcmaFDUOYh}nvnqr-1V$)0x2s`7srr_Iibf51rI2QupT@s&6VPEYI@TY59c5j10Swc yFa-v`L-NNOcvZk%+`VFZQLeTKio4N}Rxe z*iac5*^rPbF(ENCuplIs?jZ3uz{G~iIZaXqf+hRCJH79Fzdk>&ZQWa#zdjEDSg3AT zb#AZn_uA|f|2B_)Rk&GXem(&S%dk0@g0f4C`uhC>pd(&{J zFXA*tO#G0e0Vu2{A$Il%gDtY_1*Y)h!$$#nt|{El*^(Wula9C1kH~g^tKszb9NiUG z@4`Z2Z~~t&3=@Aph>gS)2D}FM(`zKaK?vJ3g|niXb`7r6h(KMGvyLRma77n!-qlue zs-`bPMN(8GsYp??vT8^cEzqL(r6dSx~?Nh zL5h;)5!tvGFq~wAI5T3fNbE#j$UGXrlo7Y+Au|PD>{%CnIHnEa;iUM?P=Z4wi&EOv zDA2b5AL{$#=$O^XdA?F~fmFs+K8m64CQqJGmBhA{Oyt zP`cZ{c0Ib{0!rPnc==&0e-d!bM_k;WAO3#Ae~g*hW~0pQ>FMe5*Vo^wA9zO+B XAX5OhdzX(+I2Wjvx2$)ioo9al1p3a#)+@eXre<#L$0oT97Cx*B TTtB2fg4BDu`njxgN@xNAmLwFC literal 981 zcmaJ=O>5LZ7#^*aQm6-^pq_>lv4WeKe5|_(jitLu?ZT!k+o*feW|L_*w8_L|>ZW^8 z@T8!4@}}Y+P=A16!J8*RFCrf5FYw?GSSQ=vtq0dY^1d^?&+|U-M;ou5CRadVzoEw(|oSl3MmSn+9_z*^{TlO}Qf{kxyY5&%<+fzx6w zyRLgQ6x}>V%)*$X0a#kjV%OUt47SO35E;U+_Xh$Dd_%ZZw6PsmNhetAC1j(w?s&Z& zPxFQ4Yj7#kIYCI63$t)HO7+YT2E01=^J^r)K?vJ1gd{Oxmh7f7e)*wNxdY9SwJJ0GrDcM#|(jsJ*py%$Fxy8>=f@A%G?-9 zBF?KC1={xiL&I-YLb-hB_5yM)2X*t6BleJu( zh(%ls%4hr6tVdUTfpT}ey!rRy{!?nUMhq-1V$)0x2g?7srr_IjYAL1sfbhSPwkqZFUlPxJbsg!)c3rD+h@4g0k){pSG@k=PKTl3p-ECf=u;v^>bP0 Hl+XkKQWYk% literal 2893 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 diff --git a/assets/icons/Infrared/prev_hover_19x20.png b/assets/icons/Infrared/prev_hover_19x20.png index be9dce7004e32a96e301563d942082c904172265..51f5779f06dd8e2153b97a5542103abd6e7c7297 100644 GIT binary patch delta 98 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 b0k8TAgTe~DWM4f*+dnH literal 2844 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 N002ovPDHLkV1i0;gn0k} diff --git a/assets/icons/Infrared/vol_tv_text_29x34.png b/assets/icons/Infrared/vol_tv_text_29x34.png index caef54c25841658a5fa3c9412deeb69de7f45546..166cbdce6d778b0179a1826d9e0896fe1c853e6f 100644 GIT binary patch delta 116 zcmaDM*2*|RBA1Z?2)d8FzXhaxJY5_^D&{25`2YVuvl=TK8>1Q<5KQ7Y_MeBxex?Kn zocgrR+Td^b58Z<)2M_#d>}+iGZ1@=WTGX#aNaYa&^I`r=In@Uad|+gFUoEWra@XZM PAoD$4{an^LB{Ts5!0Ih{ literal 2920 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 diff --git a/assets/icons/Infrared/voldown_hover_24x21.png b/assets/icons/Infrared/voldown_hover_24x21.png index 6bc57c70eb593c37d5074810bc3c5f828f21e181..b9ac48b4e0d2622a8bf8a85bbaf8de2bc68da348 100644 GIT binary patch delta 94 zcmX>iRxm*#f{_6TN+t<+11WP)7srr_Ikm?WMHv(sSP!PkGkLNs65!n=*e3D+N~9aF v%@m#g`dz}ZA=YQzwi`|H?8rI6x$`H(ZWC_f(ktt9K}LDH`njxgN@xNAE=e9W literal 2884 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 diff --git a/assets/icons/Infrared/volup_24x21.png b/assets/icons/Infrared/volup_24x21.png index 688552751ce0f8f12172e1ac1b0cee0366f9e11b..ebc3f3e42b478a3565221161088e181f52cfb8f5 100644 GIT binary patch delta 114 zcmca7*339TBAbx`2udaicLOOePZ!6KiaD-_4fz}bL|iUfPmb3pz0o^YP&-*wh_}^g z;SbJ_CPM0#Tn5t5j_AzbocBUz%dT&4W?!0li2Y=-afOR#cIt!pWINj`#;XlN0zA6< QMj+EYUHx3vIVCg!0G=l&%m4rY literal 2910 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 IM6N<$f(6Wjg#Z8m diff --git a/assets/icons/Infrared/volup_hover_24x21.png b/assets/icons/Infrared/volup_hover_24x21.png index 5d790e7966f5b842fd74d692beae068c1b8766ee..1d35173d1a2d8a3b193a7d107a4d62afe1b86056 100644 GIT binary patch delta 105 zcmX>vRy{!?nUMhqN+t<+11Tp@7srr_IiZIa@-{dKFdY1Ax}{-B(2r9bUm6cI)>JnA zdFU}C#jEMgiN-Y(ROTK%7nUT&GpqN*lfwOJ+MLRVzAq1oQ&tncmr>-f24t$ItDnm{ Hr-UW|ykaYz literal 2895 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 V$$3O*)*=7^002ovPDHLkV1l??v5o)$ literal 564 zcmeAS@N?(olHy`uVBq!ia0vp^Za{3##0(_Q*j*_GQY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIEak-ak_VsVc!u29#>zM zpe>@TFN4o(&Pl3vi+VSCalkpl<1-|z7e;zZcA9_tzMb)a%YyZXbT9S%slVv8B4(m! zQB<4odqHhcAcx1J*v z3=wN2`Z?28g|9oToszWvZ1Q%gU-3CQ&KexiQY$8Ov6r}C)7kWdtBQTr){lx(Ec=bC zJ~Q&3s$W>TMdNE9^TewT`{taq@-NsUbT#V5YvZir8#@}yYWbQ@gq^dQV=c1uO85p% zu7&!iM0PFS&CylzUF;;Uq{{b<33t9ZYoGO4a?5z)chwiB7d+mdKXNQ! zC8<`)MX5lF!N|bKP}jgj*T_7?z}(8z#LC1#+rYrez#wW)@(&aZx%nxXX_e?2jIB&e WAR26gp6CHJFnGH9xvXt#F1YT;QfcX8cna&Us6h z{5Z^ITEXPpK*8e1px3&0I@gos?21M+z4q@qX?2Fh3iT6qP)9hi9;qdn8!Qx7GlM-f zV#r{rmb6W#++(_?o%Zs>NMZZcv-`caK0SD|$GaqVle8LP3fm8{KcLU5ciF{px-?yq zaaL&+GEx2ZEy+Q1n(w!hXvObeSE(IsY`W|FCX-F?v~7OlKQWfX95?S-RsaA107*qo IM6N<$g7zA;cK`qY literal 570 zcmeAS@N?(olHy`uVBq!ia0vp^Za{3##0(_Q*j*_GQY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIIqW5#zOL*~S)|zwMEwOP0bRhT=jq}YVsW~6vh}*d3IeXN zN31)4cfL?;Xp|4q@cp7B0AV+D3);<=5C+e>7`V7w%P2TFhy5iBW=eV*l|y0v``5 z7c}!;@?t5zz%zM8QuBkHi+-}31P=zw=en49-z^IZJ@Z9q)`F9UPbWS1RzI#F$spI2 z;icic(P-C974aXl^rIX@_2%)r-MJP0RY5XW^wsR|9a_Obu2*mWV~~Fy8TzMR-x3&@ zswJ)wB`Jv|saDBFsX&Us$iT=@*T6*A$UMZr+{(n<%G6TZz`)ADKvUeQ3`Ik3eoAIq bC8h=w6NrYd=Ch{&H86O(`njxgN@xNAhg#0O diff --git a/assets/icons/Interface/SmallArrowDown_3x5.png b/assets/icons/Interface/SmallArrowDown_3x5.png index 1912e5d246268d75a20984bdc8b996d503f3d166..e795d67087cf7c36ed1d29af4abbc70569c68cdc 100644 GIT binary patch delta 53 zcmeB>ai1We&&U7-#lAm6ffS#oi(^Q|oaBUr7YREU8JNl#6T|dEe}GhYy85}Sb4q9e E0Cx}$)&Kwi literal 3592 zcmaJ^c|26>|35C-x5^UI9YaXWW@{#6nHgKQFf!6&%x2Oo#?)9!BwM;9Wo@KIb`_J-tPDJ$FJ{sopYY&`JB)D{aK&a>p5|Uoo!_#RV4uckg>PJ zxe3N?f=5_fSnxjm$+!goB(3RK>|uK>7R2VTsPxkm00?nD~hiA(w8Os#U?fGBt+hg zz1*@k9(vcmw`%2M+s2bV^XZ~Rep!cDjkt7*ouR97xO6^d&-V9`O%09XlMu@YNi8-Y zFJ4C02wc|`0#?J!%=Uw8#9jbGLETc~K#fyo4QzMJrrc*t`Z1yKOF}i=qyrA(;R=9d zNCM_QU}+;1&QH^J2eL%~pH`CZ1aQ~@@X@*Ou^R~Iucn6z0p8a&6os;r0MJfKEDrEH z2o!Z3xoiy(V1NSEp#cf>8vrnSPpTd8@F`H!E-zIIh)V-7*Vw3ifJi9d)2yi(1YAl7 z6l@ke&HmV5B0sGs$W(f%S%ntTI>KArAVAF16S7CQ-ClXWf(h{#VumH8E;wBU5n&|v ze(?Sn!b0U5xq_WSf#8XS&Zm{>QAm}Mf zxb6r@z-3%nMC5?uFxU3I+S|2B{xGJ$CTu=t3_Lt#E)<$%kawIU{MA86p1`g7umS)J zm8{x#y5hp&ev#uHyv=!wb=&N{KseR@S^xl?z-dA7EoBx>;sAilj?jB(rM6VNOTR{R zckQ;}TB+|oCYLZ;4RsiKj3haHH^*mR(M61IblXF9Js;>hOLe0fSHI|Fwk)L1i+`6(J#F)hxb~s4*BT2kQkYsEJce{)S zdDy8hpgF%FV~*K8PdeBPATEB7uCj$+k0^CTzmtA~t;jP~y<~Go>MfZI&q!3t&V0*x ztct#3a(nu1p`YAfqB*t+R`Y3>m|??d7^JZt^XP!SL^7%M5x7XYuu=8lks{&BxMfnu zBc8~P2N;MBHO#M{p!K_uJ)xc54}JACxea5WeJErvpyTb9k)%eEXjbyL=Jw z7=oR?X77%~olyDESZsr-){ZzVLZ{;DFZPe_;k$Np*>o}8G-velGmY$2HIrWtlKo4? zkk|D=`{ZuPVt=^-Ku`dek=3`pSaJrkKEYfoch+Yt98cq zQ|c$-C7!fQv|?maEKOG>bC=jInhI~%gEYtcD&6raO?a3o{7c$&x?DQTgP>QgcTO>> zMe@d>8`?M2^q~0sg8K!d1yUZ19AHz3Lt7U9k6Dvmc$DsA>dBkyOfp^fmlt3Zu_N7&mA?Y8yCrRwV(R#%q>4_nyFE6)*~nd?Hy)eNnqV|C8t-b0YHMgaIDK}S z%W!k5xWDiILC1rRO>J-5?zHu$8)u^7eTeDI>CC>&v8O&qgO2K#=aoOB*q2Toz3(+w zUd4<$iuB4McpN=mW>d^B-rHMQT$#H)x57EuxiG7jR{!vi^4I10PgNdH^@|RblrzfD z6KTH6w5P91>gSTHlg~dt|JyoROeSVPwov`3dRX9NjsofkYBZz$=A6a(S4$}~P#U2_ zzN6o8qI_rTz6LtqJ+s@ErcA2{j9iS3k8`-#3Q0AGWU4ieG*?d^;w}dq9}nqT=4X~= z*3IS(J(x3@qtC?*-+E(oYhRX^Vc^^PX6$>{sZI;2TQ^|-V?|*uSeFRelW9#T37X_t z-1qQl4zFN^IInE})tqx{!hFKabQCe_b@GjA&C}+mtuFPftdmh=*bADQ@N544YO%)3bXt2- zJ6$&FaM-8bw_?PP#Q6F!X`QH;D9>n%1a>SzwG*Cd%{wZ|N4YAk$Wmk)~c^OESWA1;#AJy&C6Dy@rJgG0+;#!a?g<1RC zX5W;x3|%$7Ie%+&c1PWg@oVKd(GH#l>V%KgMW>LZW&y!Nk`s#C_D3HPEi!v{xm=IY z<5D>5nOYK7tsUazA913#d>l2%@|I00Nd1^9%aj=yd@M6|!_pfKwY3k5Z zn2d!Cn@snNHE&<<=Pqx|J9|HmhJ3dj`c>|xk(pQUp+)>_`rypP?qu3R#})n!{`oM- zpTj;wcgjPjN$q2&Iu2dfUYA6t0FT__!z+UfbsGvfj3B;zypv)M*+ zw@Xvy&B~0Dievs2b0O7FLa8e=YFVc3BTLo6e<*GC_GBT^Bh`x`td&0qjUjkA?TfaR2=9g;O=W?8VMu+ZEBM$c~Mq$1%v)l;rgS&|8a`obQpwX zaVQ{D2;6`KgTX+iNC<^YMEDv~i6ngx0)~J?;ey-L0B(vx7^2`v(BBtWV30$mqTFyc zf14Am&|p6zoJIbf9{LX zPx=1Fl7H@t@lUZ(fiuvp+Wwzf{}2fpXlwdU^9mOKv_FL@=y{Hyx%oF${u^n* BDRuw= diff --git a/assets/icons/Interface/SmallArrowDown_4x7.png b/assets/icons/Interface/SmallArrowDown_4x7.png index 5c5252b167d2f9f9a1ce5e7b9f9c99123879c1b4..0cda838e058b7cc79dffcefc04125f8008d556a7 100644 GIT binary patch delta 54 zcmbQ@=s7{sfB^`y_DWm;QUabXjv*Cuk`od#k}QsW;A3FD#ANQ`aIXoZ#?#f$Wt~$( F69A||5F7vi literal 8340 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 F2>_v_4<-Nr literal 8552 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 diff --git a/assets/icons/Keyboard/KeyBackspaceSelected_16x9.png b/assets/icons/Keyboard/KeyBackspaceSelected_16x9.png index 7cc0759a8ca6acdb9b9c2e3dc00edde2f0e93a67..1df3f7fc99dde84e8d74305b6c254d7ebc1696a2 100644 GIT binary patch delta 72 zcmbQj7d1h`iID*agaaqe2U3cjE{-7;b65{5GBOx&Fl=aaio4V>i^aWWGo$MKIhRFl Y{7{HxN-~kpUk1|T>FVdQ&MBb@0L&s4eE()N{W z-JN@vFI~T+Y1-v}FWiIo6?k5J;aT|qw)dv2CwcE-scA1=t)FMK&%d~)Y0rO}4EC%2 z=aK4R$F?2(hE6fX7H(UFBH{$t4v4EaKLer_Vi@d&Z#A)C)-lFal?RqJo6XEw%T&e4 zBEIiim|Bz~ut4QeR$2KDgeVQ)Gl9#&Q7)}LS*mHl<@TY>s++4|`B+t|9IGdATYvr+ zL&4Vp^Jy_zlt*w&PGkz$CD@V$zdYy`l2xi0C^cC%YIhY;r^KZCtp`aa)U15HX4E*y zkX5o{K-UPu6k#$T&@w-;?b`$g7%xpD(1BnTyO^;O$?)hRrco61v$A3tm;JC~04Xy` zM9{K5&YYn{cI-;z+O~({*abcDHnS;pNXu(4c!7VY__VG>?Z1?*P#iGU)eM+zGa?B_ zvgI?>CU%T`*JH?wZ6SP@IW~7zXzvsW>>M^Zjasu3fJoi8ARJ`vf+uoa+eOUrBobcB zw>cJ!4w<1pj@wleRYXcabz7&```zwtp@zu>K9qa+w)FmX*CD>+AZijr7d#lMB4r@7 zBxNIM<=Lo~JFR)Z8qvz(k!=8Gk?gq@8g zfS#k0rCF(l)r=K#a|A8Qr4h!%R?w1c= z{pq*skHW8}pZxgsP>68$^3NZ9>0PQ& Cw>kg- diff --git a/assets/icons/Keyboard/KeyBackspace_16x9.png b/assets/icons/Keyboard/KeyBackspace_16x9.png index 9946232d953ef1cbfbf0e6754be6645e5ea2747b..895124807c8a8cad72fa0646814ff485c273f5e4 100644 GIT binary patch delta 74 zcmZ3=7c)V^g^>XWgaaqe2U5zOE{-7;bCNR>QhxoP{*s;fGCSL{**ZS2>SwS>%&?G{ aAu*G&%$;pghFZ81NSmjtpUXO@geCx1Bo{IO literal 1829 zcmcIl&u`pB6gEEvMG+BPN`-{wNT>+Lo*8@XwOcpZ?1t{5I;81J4Y!WR<6SFjkFlNX zCgRjnK|!3jpo$Y0E}Xb=;LeTzpnm{T)f-4i;dy_hpfu#tmAsxAzxTcGz4y(`m)l!6 zS1w(-q$tWtuiM#y_bNQEzxE>h|J=PM>Pg=HtW=aY-mae)lh*~S0I8^$I!Q-a=}mlXitE9+UN$s!YEtd_TB{DI?graxTNXmKb&NR1RCQdP z*p_AEk5q~&HgLlr6cO9QmPZ_Q{?i~@5yjq4=i_-SnEBeUs&daT#^bR*Hg#DH4C1=3 zfvG_$0t-|gW)+*DtXx|lbVSLEB(D;gsWl=C<$mRBz;u>EnlE9qa$Y7Vm@#3wL3CWF zv@i^U^G(xqX_e|ijf0zqnN0f5E;9~PYWYyXtSU!}MEQj(L+?JpJ#W3Q_ zfcbtgnwBTxh8T$yuuHHdQ+~PEE(EJ&(U)?xXw>#1qDqNQ)vI@tERy5$gPPIYL3CIp zd=0ur5T*!|K7p3G9x*>8*u!{c8h{QWRntB?yEl08lWCYa({L}SbyS-h=I2pl*a_8oT+S_c~#IXiq#zs}!z^4spCcOR_0+*o_q`N6;X{rjK1`QsBs`Gcx|z4v#k QTVG_o&8^N)8~5)21Ktij=l}o! diff --git a/assets/icons/Keyboard/KeySaveSelected_24x11.png b/assets/icons/Keyboard/KeySaveSelected_24x11.png index eeb3569d3accc5a5c56829b12c85079172b56729..25bc446e485413a6c282c94a7037bd6c4657f33e 100644 GIT binary patch delta 76 zcmdnX7dJt|jgbKeeEkX%fRw7Ii(^Q|oaBrI2Znjm*?O9UKKa;7@XYvUFehO`MH<8O c?1TgshVHFweJ^;rdq5gJUHx3vIVCg!0ANWN4FCWD literal 1853 zcmcIlPiW*+7#}^zw%YZuf+B)3d$6*;fxiXAXK-X$#&ks`?Z1FR>QX z26aVbT~%`&N5w=X1OWo&yGcQZD9KMx7+O3JvM4Pgkw_&Y^~HA4kU?pcLYz)%lYCqz zD405=sj4ZsOlbo2yrZFUJVocl(hfu!>phe>@9d^rUFW&j&H}!)!;|9lBv{%Lg~)s2 z4%()#|Dlit(}3xA)*qFJ1uF0J7`Su5Y9oEA+srsEMAi|aKWWt3B%(w#g-G)oQNqL^ zf1*@0Ucg(l;0+nNrXfra);gN*63r#X84bG_S5Oapz-U2_2No;}caH=0Jhz?X1x*6p zZZ%{Or9=^P?a(oNj2+}NPLO5lb>xS(hK#yzQ(Fto(z;~|u)ZaN?XnW(`pULU1i&$^ zrW-ON3~kFtm|7MJL)}ES1tUU3N-T@l>$)*vdoGLM%c1>)tfeXjj8tQ`U&jXGx~+pC zJw&zve}0HDBg6^Jz?Y@lahswqGEXq5ZvEhVyV+dJL>TqqMZUhgD7BZGrskL?B8nzU zEO0}S#T1Md#k9-SH0hSMuhLzKa_I5y_(QtDUmB14ku-9rOM~*GXvjh71`cJarlUj3 ze7uCJ^@AP<(j#0_!EzB61Df%LF0|x7U8vqkd`@?cmVP{k{EyPdWes{X>2la%Rk=(? zE%&0TDeAxbb=w#db1i`F%Wmf5GAz>Wv>@jW_p)ho-#0CeC9cGbyZ*s9Cn^o)Rq=_$h#NIZix%+wt GFa8a7)lmol diff --git a/assets/icons/Keyboard/KeySave_24x11.png b/assets/icons/Keyboard/KeySave_24x11.png index e7dba987a04dad7dd96001913c55566dbde96c8e..328b726a54215de710c5247a6bdb64ac47fe213b 100644 GIT binary patch delta 92 zcmX@kmp4HojFABdeEkX%fRw4Hi(^Q|oaBszgoK~}|Jw^QGc#Wn|H$pLpMOunql6s? tjvPuj_~lw;gX^Q4^=fQvY+`P1ZVZlGJXx9D1^FO@JYD@<);T3K0RYzSAe#UH literal 1863 zcmcIlO^6&t6dpxnjjSF75f9pQJZy|LUDdzSZ6$n-*6-2D5s-9_fx~uK( zotfQBVDX?Q(UXLzXF6aX)%U*l z-d9y`w^q+Do_PF3p-@5qOL5h2N9RU z^i-~BIziNECdw*wjUcQeOxncsbnKa>(*%1MPoPck0jC)~9$50g-#!ks+4LGwn$d`f zMy;%ZsA3Rsk2!`#ELuW>2#g3fF>;CFBHMCo-El0(@X1&g%&$qdl~*F4Kd~*B3^?Z1 z^bEmDf}0)Wn??sYC6l9$X;6esLO7#_ZCmDy?ZqU3l|%anS#wn!7%f39-Qp(l9fyJ- z(?=x}n~2%2PcX9#VmYdECvH{tWzv)!s%sn^Z&a(TMEXG=KBQ~smzBm!)h4cOBfSV| zapw6l2`LyY2x(Vnan#Li4>BO#dXPeox2Fr~f_P*4)DM)gJ3Y$sMNw8+?gqit>2PpJ znU9yygm%~yKzf8rCa_fc*^nlp(uJ1%rwg^aiBIX^Xz9mu$p0vPT2|JhQCGkYtEqW1 zTD})enxg%?Uw4c#Ggk#{pLa8zmSLH8=LI=?xR>pc=yYsHAgcQUxz^arx`9fR>e$sw zj@}Uy75!kQXF{tT9e=F+z^*!*3|n>nI6oucWq!(t2og`=40-O!tAE1z^ID@;X)nEd zVK7xqj`wg%Ed2Op{k=a*YZpKHX787$ zzhKuN9(?M5ojmn%xcU1}OP>$^`ZD?cW@lIaTn=x3xBtP#z16o~{qVMZ>hecsD?jQQ ME3387mS5lf8`39Il>h($ diff --git a/assets/icons/Loader/err_01.png b/assets/icons/Loader/err_01.png index 7ffdf761da64afe452664bd98020b59c06b81c32..f8a43d892c03d20c8d5f02ea567d5d15df9dc069 100644 GIT binary patch delta 177 zcmeBTKFByhqMnff2;NNEaSljzc)B=-RLo(lWoY`(z!>bnz*55&qsZVYb&-LI;X4D6 z2xeelvGD0*U|z;J*WXv2T4a-iP30SrtvlIjc$u1B@lfu>Hc1rlffG%#5>h61G{8yIZE Wl;-uHI?oE!!r0fhd+0g3~V7=H)`0002Q>4jqe000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj6A4x<(RCocERf`IQFbu0>-2Z>C2p;3CthiSr~A%hmu>ddy!v{K|FH+l)<2PJ+0PaQ&pMpWpntqs%_AuTtNkrr%8bCt z63GC=Yh#Nl=?LTq5Rl2(B8AftKna2%s5;|tdUdZe3t53FPEc;V$q&^J%CoLQFdfYr zDj(q3t+gERed1Upqq-iRyU8!p^ddRgX{`3*{^lIEl5DQrpfclYIO()PA5{cM^jB7t zv)Q2x;FQDut#oYsLhWI}%(}`?+~2NPUamuI&C0p5cBwkW{&0DdV;RDV*d>~~#)l=d zmyroENL+HVGUdzYNKy03FXf}fbnz*55&qsZVYb&-LI;X4D6 z2xeelvGD0*U|rpLspsC@tK!W#A1CzzWP@r^W1H<;~ WiUD6#154jqe000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj6B1uF+RCocERtXM-FbKq^+5f-Sn7FCC7#wGy zCD9(z;ij6Io$5J{osK?d`|Rm9-p6i8TmP7U^SO_a;#q~$5q}h!*?ts?z>L4yB4q*; zO$ixb(QRl^MLhy30TB>|p+yX*M*v0k5mov`#n ze`5^dT7BDwG!{tZUse~DtD4f%(>Ch{&KLK_=+7-g1+Qu$2+a6yf&bu0?J7$UoW-Rf z7!#m0&H9#Gad!!}U#h*Bnd?|$D5V}Qb9X65m2E5itFePPuaW~Z5!aWyOi-5p%u-cf z<;@rY;~W7qFO)Zv#1!cl#+y31P0U(N5foTXv@dH?_b07*qoM6N<$g2j8FdH?_b diff --git a/assets/icons/Loader/err_03.png b/assets/icons/Loader/err_03.png index bb28c29abef21a7debcf62a87a8ec97c6352a4e3..83b12af0a2ce668621c94e44e22b2d03aeb04b82 100644 GIT binary patch delta 177 zcmZo7a|;jr{fpx%Y0 z42;VjDP3c*v}bH!`0rWBz{Di_l!2)xTpB2QQ;V&Ei9!86ka_hZ17qzOAyo!OD?SFT W4jqe000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj67D+@wRCocERf`J4FbGV8?Ek-a47#nnnvJ5| zLv<&ijar*Hi8oc*;ZV?QgAtk(Anuc<~-yX=P#9& z?M4;UckK$z?Q5(5rA{zZ7mbnz*55&qsZVYb&-LI;X4D6 z2xeelvGD0*U|4jqe000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj67D+@wRCocMRf`J4FbFh3_W$2o3LRk!9Jf1d zC$xEbYND5jh|7J~dB}G6)x7#L*8e<$W#lXN+V1Zb1$7-xGJhyT;bkcT#zxvdR)Ru*O}1@}9}zb{;A=P$z)~rzse*)}Caq*=v|mR@qeb$2XTPZ8%S#@RzI;R|o8bi<-wHKGi9u%6~lOj?>zgkv-mE zRgrQe?aPSZDgk(2Nk$`gD5azQzg|X{ea^8T?sE6jk!aPn*~QrtQL}@RH-I3fGnaeH Q6#xJL07*qoM6N<$f{>G-rT_o{ diff --git a/assets/icons/Loader/err_05.png b/assets/icons/Loader/err_05.png index c606f9a331a9a65719d80e01bdee913be9bfad14..b639ba5d88d10aba526b05337704a3ab24ad341a 100644 GIT binary patch delta 177 zcmeBVKFByhqMnff2;NNEaSljzc)B=-RLo(lWoY`(z!>bnz*55&qsZVYb&-LI;X4D6 z2xeelvGD0*U|_Ah)Yk|buKMhP4ilIQGD;pRt X{!mPqv3TAqkmEdE{an^LB{Ts5S_Ct| delta 378 zcmV-=0fqj-0f_^U7=H)`0002Q>4jqe000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj69!W$&RCocERS6D*FboT*+W+5+keCt&1FUuGZBzV*g#2V421zaxdpOqTpGFGk+MAmDM^LWniU0$4jXU zIC*4b2g9^+M4b!-at08Pjd4T@XCQzQ1VK=B#^H=EuT_NXK#3E?jW_&I^B|th$_q>h z=bKZ4IyuKe*~ghvfQNbRxa8JuJW&enP)E@GQf9|uR#eWoc7vE_TTv|LJhN2&jL%=v z<(i@MwCYnquS?4x_cSXNM-zK+kf@^Ru``HQs+j-?uEqvY|M>qb-BvAfHZgV Y1qC&rCS`+MEdT%j07*qoM6N<$f?I{99RL6T diff --git a/assets/icons/Loader/err_06.png b/assets/icons/Loader/err_06.png index f8c4f11ba0f0f86dcfbbbd9d7e267cb46d2c2c69..8220848d6cdaafdae04a0dfe7696ec1528870ea4 100644 GIT binary patch delta 177 zcmeBUKFByhqMnff2;NNEaSljzc)B=-RLo(lWoY`(z!>bnz*55&qsZVYb&-LI;X4D6 z2xeelvGD0*U|rpLspsCYqfyCNB4NMk}p+KV}8yKF- VE5`m=W_tqUI8RqUmvv4FO#opCGTs0H delta 383 zcmV-_0f7F&0geNZ7=H)`0002Q>4jqe000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj6BS}O-RCocEm5ZvwFbqT867K(h?-=Z|F@rdh z;?~gSWlN3|J5^P$^u3-B+jig0yKmL||9lkXSbx=P-S1XKZGRKaA}E#Jypj^w>7R8| zb_7W-k-Wh)Y~0Z#OMw!B0+Nh7ayUx?oG6HbI-7*Ernv5QNC&n!h1|H4AFf}>v!yY= z5^v7wIISID#vf$`Wtdd1T;($*lk>XQrv#uQIi4wa3c5i!*neuC3ai zoYYVekh;6N)p(9?4?Z2HyM?r2|M>)zR@MTooh{^&D$i zs%hiP=m=T*i9u(^m$AnrRnMn$86Pc@r@H0r+V;}R$i#DJLLRZ!*>QC z5zN5AV&T)rz`z*lz`*eT+W!UyUf+!jjLY?A3NhU?5@cYS^(TmdVXo8^28L}F;tWiu zj=pVRaQ4jqe000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj6CP_p=RCocEmW>X=APj^nA-@0fnk6%+Ea#Ui zWlbiPwby@GM8ugr=kc=Z2C<(N7FIQ{If3VfDPKOL=M0_$r0eo4VWAZ&h#_P`ySk&tvc2cC(VL gWp}NPx#07*qoM6N<$g3JuE&j0`b diff --git a/assets/icons/Loader/err_09.png b/assets/icons/Loader/err_09.png index 5f3b4e57904170c7fc6cce7cdd2063a8eabf49b7..7378aff724e92b684138e815f88e1e7fbc356d1d 100644 GIT binary patch delta 177 zcmeBTKFByhqMnff2;NNEaSljzc)B=-RLo(lWoY`(z*ytJz*O^mJ_E~%PoEf=7#=nN zi5j4)TFLti42+=;3=IFT{%>F~JobWtvF}R2Ii~YE>lqk~)&4Xve5sdUU=%ig0fhd+0g3~V7=H)`0002Q>4jqe000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj6A4x<(RCocERsjyfAPA&}?EmjwmUOcz3%%Zf zB{5EfLk_Cj%xpIy`{!+&zm6GY>d{V#hfxKhfZ3s#&&Z1y3V%F67+8hlwkSaxqoxWv zWmqE!plVc!E3gcTL6JV(XR@pDb9gkX;a%#h`(-nn(f&rNO_?6+6YE=tVybf;19jF= zi9RuJ=MQR~~+6TDJ_kD+IyV!7f=D@MyrX;@U_p*>A7X&3lpE z3PnikKm*qI>U83iUpLS;^64@VyE;~Db88SRJafiws%~LMr&ljpzS>!Ra=@xq?aP>* zS->0^eM9eRLj~Q95}I6OcbggK%f+a4)iei>O4uvfBUv002ovPDHLkV1kh>p85a) diff --git a/assets/icons/MainMenu/125khz_14/frame_01.png b/assets/icons/MainMenu/125khz_14/frame_01.png index 0f46d426227edf32f9a9bef76efac4516878f685..d00392a1b197ab4a1760f22686f221e064086b1b 100644 GIT binary patch delta 77 zcmV-T0J8sSY>*^KGf6~2RCt_Y_$R~o|1HCR6UP5HnI;G@Jz`*tlVVY{WwK&m`pdw? jz`&%;z{GZd;lUpOE?W$HwJMn-00000NkvXXu0mjfc|0Op delta 74 zcmd1FoS@=r;OXKR!f`$Mhx*|U|9KDB3%C6@m-rQLAhIu^V|Buc`-e9a^B*=d*tN6$ eVIA+`W_yPD>>^_QdxT~%0D-5gpUXO@geCyflpg;8 diff --git a/assets/icons/MainMenu/125khz_14/frame_02.png b/assets/icons/MainMenu/125khz_14/frame_02.png index 13c252b14f6d1f735ff0e73ef56e6051c6c46ac5..6ffd7fe166cc2a5c89f1d17c6c8e1241d96e2b44 100644 GIT binary patch delta 77 zcmd1InV{lf?CIhdQZXm_hx*|k|8<3#*@c<8FSD>MbLZ(P4ASY^<`c%_Q!hC~LSn`g h$r(5J3~YWdGn|^rnJ={U*&PNT@O1TaS?83{1OPVy8%Y2F delta 74 zcmd1FoS@=r;OXKR!f`$Mhx*|U|9KDp*XQ|PZ}8=Rg2tbN0^tV(_O~ZKmut&SC@JPY e{8y@ty`EwJc2O~grq(A6K;Y@>=d#Wzp$Py0JRkJ{ diff --git a/assets/icons/MainMenu/125khz_14/frame_03.png b/assets/icons/MainMenu/125khz_14/frame_03.png index cdc882e7e10c6724dc9e81c1d65fe473fae74185..afd20d3476a1b345dd66d2d070f0ac33ddd6a00f 100644 GIT binary patch delta 71 zcmYdHo1o&P>*?YcQZXm_&;RM2jf`Dt1_riC2|bgO1Gl7ZN=o>3`oNI`2bP>UaHOo^ b;X!$ZB`-MQA9V5CGXR07tDnm{r-UW|iijVf delta 66 zcmYdGoS;pyTS!f`$M$NzT5zF+?hME)gqtWI2U|L}%l{=;SlyLPretm8f0Y|rrg Wg_wLz&XJuAK;Y@>=d#Wzp$Py2pdD=h diff --git a/assets/icons/MainMenu/125khz_14/frame_04.png b/assets/icons/MainMenu/125khz_14/frame_04.png index bdbc7adf53aed63e46f7c4a94860c54dbdcc7c24..cf93c63f8131263994f910cec89d864b7f9cde6f 100644 GIT binary patch delta 77 zcmYe#nV{lf?CIhdQZXm_&;RM2jg1fY^FIE++eesXhMb|nv6CA$ZW%=y8vIR7NJ>Zu hN=rzxKJeiIKLhtM?&fPID~~b&fv2mV%Q~loCICfdAgllY delta 72 zcmc~vpP=Hb=jq}Y!f`$M$NzT5mK=$H_Y+^#9}f7@rns(cVIBYBbGAIU54?CL*Y?|# chyNb~!*L5yd09Wb{|rFj>FVdQ&MBb@0ImZbiU0rr diff --git a/assets/icons/MainMenu/BadUsb_14/frame_01.png b/assets/icons/MainMenu/BadUsb_14/frame_01.png index 162753d8aa617f30f544e8b2a2612792d8e19344..b2fb1d6532df7036c7cc4f9bdde5ef4a5b3f2a67 100644 GIT binary patch delta 89 zcmaFBo;^V#n2`Yp%#8(VfRvG^i(^Q|oaBUr#1;P!9XW6y;=rL#54nWhnT55PlMjii pF|wS_{#>TLEE89!k8f^oRDW0x=F6*2UngGn78kPV6 literal 992 zcmaJ=J#5oJ7&S1oRB9!}RHl=Q1O?)Mx3yJMC2>M6;S$^+f>06uxh8I6pKD)<+YwMD z7R129(20cs0UHPeWkX2J2r(cAgcuNv3`oE^O;QGerStvhz4yKEyYFsP7EX`<82eYCSB_BtIytNUU@zi8y)M@q>_r;L zWr-O!yV<{Px_3m{CtLO#mu&j24@1)LF=_0NZ-Nqe6qcdqtLgjOXY*qe7`ER2-fjh# zR<7R}S{gmDdEp`Le7d*#?S*=O>DuETcYhunc{Nv&TGZF-`12;@hmMQJ#WQ;DwN$u?u2FqlQ;Wo~2gza&Ww!tQ&OdL@UNe zhQ|vWjC1M&HSPaU$LXO1QbGHE|0x{kO%L%E6yR0gq&K%T8i(>^#YYCgzK-!qw~Vt5 zOmNV^9uP$?3r;QAu7$(kbeo`Qa@h@t;hLzd=2898E$ff=6)5cExUOzz}#g(#J(4$WeFMUp&KR&p* zwY&Rkq<-|#kJm%30qqORgl~t&l#e@umy_EYhac$g=AEgX8ytKxw|?-$=Ej?s-`#Nj v+tB#et>*UR!0?^>Yn#t1>&e@ER2W`l?&|Pl?(v~p@#`xWXVj+`7O(#SvUfjo diff --git a/assets/icons/MainMenu/BadUsb_14/frame_03.png b/assets/icons/MainMenu/BadUsb_14/frame_03.png index 5dafb2597a971acae1ec6aa6d083be1ff1399f1a..6b720f8a9acc80ab8cdbc379e7f77df6afd2e9bf 100644 GIT binary patch delta 90 zcmaFEo-;urgpmOV%#8(VfRwSPi(^Q|oa7b%4@Dd}^ywj&ur~AMd^WW{wq^f$edh4# r{8`Gwqto;K|E8RKN58yd5N2j(;5Ox%p7^595M+#}tDnm{r-UW|k)$9- literal 1004 zcmaJ=PfXKL9BzadLIMXbf(Lmi9t2tcv9YyM$+m9LXbBk;b`rbxv6a!j+CE%2kwj1u zy(kAgc{0(9(Gv%w2X7{5OpHekCZ0|7ZZ!Bhw&B6qi%Mk^h6y*V|+o#F+w~N6WaXdyq<+s0e{->m`_jx>>un2PY}2>x`8z z;DUBZGLX&aA%+QTm#`^naw>3jqXID~!jk34^p7`hX<(T$y%^It%}v9yHBYL2hn&I1J@VX%Ffcd3l6ZTVrR#a!ge9M;Zi8lT^pYx?@09k!d2qSe7YG@M$5LN-N`BHqP^zw3tZn znOKZZ2#I8tSK=+Mf{ZmAI=IC(kGPqR+^`vJmqb>eXI+P8){Wqk;Xpw^mBkbiYuy;%m@3Achr6g^mL7U zJy?2oXRG`6z>U=E_7gx~e!4(Cn@)Wg>e@WF^xb_m@i}&4Nv)-J>xJVNzwF*)PH(;F y9sBrgedXq@o%Q#lzX$hEKHu0YEo|IB-#tLBY)=0g%0GM*zCSfHtGrBI-TVUz6g^}B diff --git a/assets/icons/MainMenu/BadUsb_14/frame_04.png b/assets/icons/MainMenu/BadUsb_14/frame_04.png index 6ca08f842dd71d57b715ecbb968ed41b2329fd0a..f1931ef5ef703b2df41e33ce7bb5082dabfe0b07 100644 GIT binary patch delta 90 zcmey&o-;urgpmOV%#8(VfRwSPi(^Q|oMfGZ#GeJNol_fMnllT#GhhDCrsl^k_AiKy rP3+k3`bfKS!*kbDt6m&9a)5#1<6Z8Ob<_Pnf{gKW^>bP0l+XkKQDh+Q literal 1011 zcmaJ=O=#0l91l}uROj6tgXyfySRM3u3<}FOkQnPrb7|I z+lGP{J#T{OLA=a^r->gY4?5XR#FK&^24gp0y0-IR4ZOS$e!t)UE=g=EAjiD8(=bPFUp% zsi>D^1KXSyVz|I|DVt$Zqk*d#bBF*P&03Da{(AMA1(vC>QzI%=-3+Q(<4q4uHj8DW zIcG>FJ9-|Z0+|Zfh-e_N=N(@T6t<-+({*^vv!Deba|*kcR7ITt8SEjD_} zNRq@ukr%}%MMV7thiF06@rODJS>zj@;)XxmBB-idaD1XU1}bC~mP&AzWy*;}9>(GsDF*XNLC9sK5h<3> zr4wUG5su{&@eVhOjk=8-(&3u>+;mTFXa?J*k+aCNt|K$=VH>n+maX2oBzx+$xn}QN z&h_N-G#Ng;*}rbOb42YEF1yC1o38bdL;dbiV?X}+e3d>5+P!o+*m|_`HNvD1-dWjM zLaSHqfBUk&`%<{^MrXyCtXD6-uP+@Q+}J!*+DiA~7l)o)Ui*CH$4vCCwej$ix){Gz zkNmz`{0P23m~0LYEPmdZUh7*v$vpj_@tf1z{g8p%iQ(PU@tff@EaZyWXJa$B{{V2u BMArZS diff --git a/assets/icons/MainMenu/BadUsb_14/frame_05.png b/assets/icons/MainMenu/BadUsb_14/frame_05.png index a3b06a0e70e47339f86f86e08e177fb000ac687d..8e32911da77e69f03fee61bdadf1bef7c0f2d4d6 100644 GIT binary patch delta 90 zcmaFEo-;urgpmOV%#8(VfRwSPi(^Q|oMfLJhmKr4@MV8v=jF!M{ZkqnTR;AbpLRaB r=lg#nnF)zW2?s6aPyy2<_#aAasz44P=a`tDnm{r-UW|ZkHs7 literal 1004 zcmaJ=PiWIn9F7ylD9nSngL>FA8{)*~Pn)(THjXXnw!%_sS8P$(mOrm+*pe5MHl~FJ0Stum)bW9Z4%;kYo6y$#ERW ziHxNix@j2KK#EK8EGMwMkmNWiElPp_Iv-8K`Bp=!s56~lWGB;2j6I2E!!TsRG=uyV zmKQ~l>VVi7bAG<%k5-g=ZG6s$1krdN{!f2eEdKcKejfIe84?l- lJjedmOG;G$nG)ajGct&^^KnI7limq3!qe5yWt~$(69BgI9Etz{ literal 999 zcmaJ=PiWIn9FEFlR_4Wv4v|Nu;D*gh(r#VCve6~0E1EIe!shL_i6ZZC7Exzkb64+fvxMVV&1K6;f+<<-#5foWWh&qxVt~+DbOSk5*ru*b*U>R#K@&n26n5WKQJ)1W_7O;NLfqte z9;77BGD?P7DqRF3FA9)PLLnLFc{w4;$s}lfEDh&d^Kwqhw1Ux{!d3|JWC&}u8dpnj z*e^ptk|fBBP!!`75fADvF~YbT473$A6qvs45gWT8QZ!1qN)(n_-Os`CI2I~6%p^no*2PB6M{QgroDAYX!b11-7-=sG;KM;lTWYtFo!F~bb#daBI zE12M*f;}LL+%UK>XS)`z1%pk3uFF|BAckwAtfsJ3g0pQ)P6;V(awM%L_)JO=rqpyY zDQ42z=x9O|M^dWT=4#liI>;q$u64lGx^kmta6B4WL%zL)tc;Hx(9Bu3yL(A@)oXFB z?p`Llav?PXqnrKfrrSrfeWGQjap|Vh`pBjI?$gE|zxDYEeH7QSTDlN^dbV;k*5G?p zb948_;)i4B3A_5`a^dm%(Z=@9yZ2ygFP~W3-SYd^AO3VJx6j;bY~LR$>nESD4uAW4 u{q3)OfAvsf@5jfT<4=FTjNMt2dQLI+#?au|`chBy^s-Yk+Q#IKyMF+pi9z51 diff --git a/assets/icons/MainMenu/BadUsb_14/frame_07.png b/assets/icons/MainMenu/BadUsb_14/frame_07.png index a3b06a0e70e47339f86f86e08e177fb000ac687d..8e32911da77e69f03fee61bdadf1bef7c0f2d4d6 100644 GIT binary patch delta 90 zcmaFEo-;urgpmOV%#8(VfRwSPi(^Q|oMfLJhmKr4@MV8v=jF!M{ZkqnTR;AbpLRaB r=lg#nnF)zW2?s6aPyy2<_#aAasz44P=a`tDnm{r-UW|ZkHs7 literal 1004 zcmaJ=PiWIn9F7ylD9nSngL>FA8{)*~Pn)(THjXXnw!%_sS8P$(mOrm+*pe5MHl~FJ0Stum)bW9Z4%;kYo6y$#ERW ziHxNix@j2KK#EK8EGMwMkmNWiElPp_Iv-8K`Bp=!s56~lWGB;2j6I2E!!TsRG=uyV zmKQ~l>VVi7bAG<%k5-g=ZG6s$1krbP0l+XkKQDh+Q literal 1011 zcmaJ=O=#0l91l}uROj6tgXyfySRM3u3<}FOkQnPrb7|I z+lGP{J#T{OLA=a^r->gY4?5XR#FK&^24gp0y0-IR4ZOS$e!t)UE=g=EAjiD8(=bPFUp% zsi>D^1KXSyVz|I|DVt$Zqk*d#bBF*P&03Da{(AMA1(vC>QzI%=-3+Q(<4q4uHj8DW zIcG>FJ9-|Z0+|Zfh-e_N=N(@T6t<-+({*^vv!Deba|*kcR7ITt8SEjD_} zNRq@ukr%}%MMV7thiF06@rODJS>zj@;)XxmBB-idaD1XU1}bC~mP&AzWy*;}9>(GsDF*XNLC9sK5h<3> zr4wUG5su{&@eVhOjk=8-(&3u>+;mTFXa?J*k+aCNt|K$=VH>n+maX2oBzx+$xn}QN z&h_N-G#Ng;*}rbOb42YEF1yC1o38bdL;dbiV?X}+e3d>5+P!o+*m|_`HNvD1-dWjM zLaSHqfBUk&`%<{^MrXyCtXD6-uP+@Q+}J!*+DiA~7l)o)Ui*CH$4vCCwej$ix){Gz zkNmz`{0P23m~0LYEPmdZUh7*v$vpj_@tf1z{g8p%iQ(PU@tff@EaZyWXJa$B{{V2u BMArZS diff --git a/assets/icons/MainMenu/BadUsb_14/frame_09.png b/assets/icons/MainMenu/BadUsb_14/frame_09.png index 5dafb2597a971acae1ec6aa6d083be1ff1399f1a..6b720f8a9acc80ab8cdbc379e7f77df6afd2e9bf 100644 GIT binary patch delta 90 zcmaFEo-;urgpmOV%#8(VfRwSPi(^Q|oa7b%4@Dd}^ywj&ur~AMd^WW{wq^f$edh4# r{8`Gwqto;K|E8RKN58yd5N2j(;5Ox%p7^595M+#}tDnm{r-UW|k)$9- literal 1004 zcmaJ=PfXKL9BzadLIMXbf(Lmi9t2tcv9YyM$+m9LXbBk;b`rbxv6a!j+CE%2kwj1u zy(kAgc{0(9(Gv%w2X7{5OpHekCZ0|7ZZ!Bhw&B6qi%Mk^h6y*V|+o#F+w~N6WaXdyq<+s0e{->m`_jx>>un2PY}2>x`8z z;DUBZGLX&aA%+QTm#`^naw>3jqXID~!jk34^p7`hX<(T$y%^It%}v9yHBYL2hn&I1J@VX%Ffcd3l6ZTVrR#a!ge9M;Zi8lT^pYx?@09k!d2qSe7YG@M$5LN-N`BHqP^zw3tZn znOKZZ2#I8tSK=+Mf{ZmAI=IC(kGPqR+^`vJmqb>eXI+P8){Wqk;Xpw^mBkbiYuy;%m@3Achr6g^mL7U zJy?2oXRG`6z>U=E_7gx~e!4(Cn@)Wg>e@WF^xb_m@i}&4Nv)-J>xJVNzwF*)PH(;F y9sBrgedXq@o%Q#lzX$hEKHu0YEo|IB-#tLBY)=0g%0GM*zCSfHtGrBI-TVUz6g^}B diff --git a/assets/icons/MainMenu/BadUsb_14/frame_10.png b/assets/icons/MainMenu/BadUsb_14/frame_10.png index 50e12f8baa0573c5cc53ebcd0511d53c31e4236e..4060dc72f03ab1d2539785ab2ab5bf0ee261620b 100644 GIT binary patch delta 90 zcmaFGo-;urgpmOV%#8(VfRwSPi(^Q|oa7b%4;?vh;LGL4gAchUH!)BC!@R7Wi|1Ut r1b0Nl4{u3{2#M#fjciL2k`fpgel&8G-u@|`4Kl{l)z4*}Q$iB};Xfg# literal 1002 zcmaJ=PiWIn91e;y$|~+O-07K3(P5L9w52Aj&YHAa!Hn63t)Pdc$y*z?DwN$u?u2FqlQ;Wo~2gza&Ww!tQ&OdL@UNe zhQ|vWjC1M&HSPaU$LXO1QbGHE|0x{kO%L%E6yR0gq&K%T8i(>^#YYCgzK-!qw~Vt5 zOmNV^9uP$?3r;QAu7$(kbeo`Qa@h@t;hLzd=2898E$ff=6)5cExUOzz}#g(#J(4$WeFMUp&KR&p* zwY&Rkq<-|#kJm%30qqORgl~t&l#e@umy_EYhac$g=AEgX8ytKxw|?-$=Ej?s-`#Nj v+tB#et>*UR!0?^>Yn#t1>&e@ER2W`l?&|Pl?(v~p@#`xWXVj+`7O(#SvUfjo diff --git a/assets/icons/MainMenu/BadUsb_14/frame_11.png b/assets/icons/MainMenu/BadUsb_14/frame_11.png index 162753d8aa617f30f544e8b2a2612792d8e19344..b2fb1d6532df7036c7cc4f9bdde5ef4a5b3f2a67 100644 GIT binary patch delta 89 zcmaFBo;^V#n2`Yp%#8(VfRvG^i(^Q|oaBUr#1;P!9XW6y;=rL#54nWhnT55PlMjii pF|wS_{#>TLEE89!k8f^oRDW0x=F6*2UngGn78kPV6 literal 992 zcmaJ=J#5oJ7&S1oRB9!}RHl=Q1O?)Mx3yJMC2>M6;S$^+f>06uxh8I6pKD)<+YwMD z7R129(20cs0UHPeWkX2J2r(cAgcuNv3`oE^O;QGerStvhz4yKEyYFsP7EX`<82eYCSB_BtIytNUU@zi8y)M@q>_r;L zWr-O!yV<{Px_3m{CtLO#mu&j24@1)LF=_0NZ-Nqe6qcdqtLgjOXY*qe7`ER2-fjh# zR<7R}S{gmDdEp`Le7d*#?S*=O>DuETcYhunc{Nv&TGZF-`12;@hmMQJ#WQ;#zT*T=n}f&{k}nRA1ps&Sx_Ib+ zR~RUIdOnmjH@E(2y?QEpYNMUeAsn$+R3&LLKL9X5Mj66-6%rf}4b3$XoDzs(Zji`i z%PT*gHvllt#h{1N9vW|OJRkv_0J&TJfN0~$_N6LE6*mBs1Pp^krvx|>kwBBWbCWpG zBn>=tdg8+mqyPY(5oQJk?g;|3KWvP6fZmei0V$w2e_shN5XS*z9JD^bY4QR%;}VHf z<*a`NfH5Z91-r%pw^rbH9SCYJStJxW0Rr$K7Ij#Ic4wLH5y~FM%!8=q~X}` z753^@f9O1LHq#`dw7%fd=2otuo-`-b5#40hpI%(0_s|& zBiOEy@f?|Cq1c={Dmr}ux}cD@$(I}=2r#cW)Z0JX{j>#NAO4+#Ggb)I6%3e!FR5LZ z6-WX^{IsErRRBn?TT3uG!U43U7qa`Q`m3}@af+1fTV4RL$csGu&~*2nm*UKNq3oCP z)%8-G=v@{jdk)kaikR&hkJ!h5TRP2D#Ft zc*L{(qR!)AgJ{6{n0QP?r>2na_0MRJ>sKw$TtmsKG)iJ7P&%#&Iv9DBUa*8*eJ+~C zdw?@GLTr}z^ktD(_=|~&)+k$)d9m`WQn_dquN&W`%bKtL04Enalq-jdt~JoTVUH3~ zR!o)eiu)CFl~4a6B<7WjI3Uz~W89u!Q8^K6BVZGV=trm(Iu#mqiQuwrRb~)G3}sC<+dzI^Oi!jg6{X3I6vH~KV+I##W#3qzh(OS^sd0KyQin7 zFZ~GFBX~vdQX|6qpiH35Ihi8q3K>X-?OmP^=^0JV8lRwY8Gbi~Z<1V4hgS}VNhG}! zO@*bpriQ0Z-E(%Kx)^se?g=>GcM-mS+V%WhE0-sZVR^>}U8HkfB! zE*Nso*2$cD&zI?&Io?IEe$W#>kI9x z?em_a%t_A8^s$1-IVL%(Im<8tY&D3lO1J7nRa8}fP{%i;511LoG~e>OWufW8PU~gD zkAh{XZ>%0xr-Gh_Hm`1?3|>$2-7rcIB>jOq-b#|`f& z=a#i63zpULthh9*v>`Z)FeE-Io^Yt^(6SS;Pjhx-mVY*LcGsN23VKC(g|N~g-?~p! zzUL_IXc&bS)EbN@SI-oVXumFLD0w~Y<|pTOo0_wvBX#$9VvA^caJrNep(v(^cq_Ce zbwc)gRoBxG%LQ34vIa^&6Fv^M!rz>~ziy|VCD-iv8qPBPF~5o$J=;2#Q+$rZY_8SUaJ(| z6P^*idn0%K=&zQ|gr9XIj77->d!92KFF7VSY9eJLpKt|oDR5_S-`TCh6UXyn7i5o- zgxMZGL3ag8GO1o_QEm;RHQ=Y3*(vdkH%H>6+%Jt*72Ewid*iQk@D7QDlkTqBPPabe zjUKkfM^`G~WHO}I&Wj&9485oR?L@f~?JR9owTC(GzV25OzmQOJ{rS=UfM=9oKV|?P ziO0-lRYp|atBj;y{b{+7E=m(Sz&CeoyrH)Ner=4(Ifc*E${x>jPNQMUCI<4KOHEF< zx8#Nxy6dG z2P+(Wj~q!B9A``t-pM6jeYZNUv_@U(m%vBab{3Q)%N&IyZ6U=+=%=Jl(JK)(h?5_+ zhJ3fattkmylnkp$eCSyD@JVka-F;ygTxa=0QYqF+Dnwn=6Ita$$IW-0Z}D$=oVMvW zibA?91~3K|R$KYSWSRw_xmgJf~9f`aT9W0gkxW5 zw?hM#wLW9^FW%NISP9L!;MwB3S$e;s_OnV~Pu*b1xh0`X@)AeC zuu^8LpB|yR1=d)eUnX{azc`p6>n&GRHyJ)yX&vJ5CO6^SopZZaELk%FG!lN`L0#Qr zJ_1rVZa)G>p2&(I^<~XvhCC&oJS_CebmHY7LwCc@jX8e3-Tr#ub=y$Jg^Fd~83f}< z7pyLbsa8P9gWs-UeZ5|gBY#@ny0&6FoTWL232M|yaLdihIS5}^8^4%5R^(HZn`3Vb z|ClkrShd~A2=qMRS>tEkk!vhP`)*s|wc5P&Wh%jQzMA|4yz1SrTyeYG?^amTYeVgBQ{}TRop?vERww^Hj^GyAjj@RzOEFr$DxmzjQAFhscS+`nu zD_JSUCFCe5$O+2UEc&!3j}$#F66<&u?z+vGq28Yw+8kX!-htZaoflY(?Wikblq^wL z_e&nY8kHIqs@oaxg}WQ2?fvIjm8`0v#u|l;gBvDWj!T`tFpWj;9afE|!nQUbtCyG7 zBMg-HvQL#VG)olCiR4QQK~u1RsSn8;3$h`g{jf+Z+J|wr8EXgtTxW64C>qMn7KR}a z)X_T_bvl8}W&?nsF`bOY1Y&6*Z>%4V2nVxX)PX@bA2`@e$4xHEAwnrwr%-!m zOlTm+zz1w>1Tv(<*aiq#8X80=;E7Zi9S;7}E{r|i`3wPr{)Es1;o!f5LfJWj%t;h1 zNJm{)4Wp?I1?d^6YwBtkK($ptPz_Bzh=v|SQ%g-l6Q-dH(=q`4eSz8DC_cV0q=nVr zzSuK3*q=rt!yu55kP!6{Ep-yb529&cU;xp8LZDDJHbRZcAkxruH6m5%w*?C<6+^+1 zX*d!Qv||zNO$wsH!R$!?N`XMOv-`&|k@|O`*d>F|(PW6Gx(0+m*vacpG?j+L{!bYH zil#a<$XEyxOC<$SFzo&CRr*b4*Y3YN+5xhofjLmvrw1Y$Z$ZKY5wJv>jRhRcUQzeK z`M|XG&{#bkEL2Uy+gn#n2d(X`=IvvERx|MR)zjD0(uHDlw13!zNM9hft8uL znU$udrJ1R&xwgI)R8QB+(#%TN%JetahDfEMi5To}-#E7KzqywGl?yYcV9_)Z#hFCH z|Ly`ue-e#E^(T=*>_4D`ZaAV3DTI1xXNUeu*aAzz1!H}zC?o>t&l1CM|Kk4tmik|O zpZ{;^Anc$ZJALxM`sVj1b~Ek_|4{*Z@{f+NM7DS+Y?Xu-5JlMv+vRBMY`ML?&9Q5b zz$|inM{_n7rq1*}4|_f#K!f|k_JvS1{4(#c&U?DopL~lRv`5zL$`c3^4conIw~%{e mf7o0fB!=EedwK+4q9#WAE}4x<*s)&C5?YZ(79uO2E%O43}z%LDJ5IBtl3IxXj3Fx zMaULKLRqpTG?tM4H_kbo_x$&f%j`r3Cq&;d~FKe*Ovog64R0b4MFJ@F9)k^z9g3^M}*_k@7ypEgE(KyPu9a#Bq~zg$%f3&4vi>|ydpd@!$=V6%Va`f!q^Ixz^&R|HvrKq@x7G5(=((;7TW@FU(jkrUdBifHnsYza&Ltm|M z1lu(-pQ92j6q{2<#3s+f<`hyl1d>980M=!PI{RlkpSBR{!hdja#|Wdlf&r881@-H) zyAlCWKW!Lu832-MSK>`nxq!B`LQXzaecOBLZnCuP8-4(=$h~m*q3O=uFC|!Y!dWln ztLmh=F*__wb|0uS6gAs18nI6>Z*QupjB_2lm-p#I9@*SI8N;GwFE#arCWgdLU6`Us z@9^52^J;I^WdUB(CVp{@B0PGJcU&*HonJaVju(tUYTt+`1WiUu90xZvQ46_?%>oiV zkV^CFR0)IFQzokk{Y@a)we@RN)|$x|9v|oVz#U}r{H}uRwKuu6PP(>;M?`9VV5e-^ zeniBx{G!fd--77CxodIQh)zvm-|L?+r>rkc~Dz;M3@P^Nmq^K}F>Rn9VMmKx98sz0j%9s7n-|WveokKy3ap z%Ktcm1xiaSPY_9PxUts!dbC^u-Vi-vE0BKxRhTSxR0n4~#(Vn~%q%_k-to5LoDcl> zqT#nr*bsAr9U)Fvip8~qGL+jgrOaCj)eE}cW#Ikr%l?o_dZobU$o-aS@6x&gzwMly zn2h`xvRmk~P-G+0`=Csq%vqVDz2!2HblW?8@6*zooS`3Ka_N3IMQ)N^(1(`}he;;B z6-$AqxTb`sOx$yJp}81$Gw*2-3%qIPee&_jv~4io znp`mCtgVwd?Vc~oH_qB=TSFSf7BCD;#(44qSqJN zSJUS`L!FVDnd)N)QL;_4)v_1iMEG)$K&5Ww@ye*m{-BQUM(?px%t?X8w~NA)pF6D= zi9ZV#rN6U#*qsV`P;GwQ1Q~*+K6bV>0sAfRCcdI`_R{d(JuUu~iS_;koi+u3RH*#8 z;`ddDA#LQ#BJcBNX@9{D1R7$z@v#2F`of0MnnP{Lff>G)on`Oot*uRJ1FT+F^K_g+ zcUE8yrsh*s|9WiHZOg2NqcOTMjj4U9VJ&>AcB#v(o32K#OxH!%k1U&>Q&VbF#2z<- zqnumj?o4=Q%d@*BnI-kXnZ!Yf5sCOiU56H(NPU{q>(heM8Phvv43;oU%1gwh4*Ax7 zV)8vl=tsh+^q|&Y0;OuIa9I0waeeXYNjE<^zdTy@f{yf^V+k!{X~AjIPQ;>XMWkDy zEh%HNKPtPPzF#cJe33a&@`?E2b1S0Z-2F8>jZC>_kJkvc>Cf3^^vIdkuh~VJMXweT zCLpJSPrIL9tKRSMBugcy2TE+}uRl3d-E!6oZiK+CwomdHy)ojx6?*GR&7B(XAfiSo zyeB+8eCK-3+L6_kjrd=+!_0Z9IeR`Yu9sY6T-6t3FFfH1>9&z<6jeCNSp_Mh7;hajxmW~bNKbIb# zY;Va4F?82)PYBbGx+#|S*mx`wWabFj>o8VCvXd8|zmyr}U|EwNn}7UKdBst~8{^ro zDNFjFkDN1K^}p<374$|+zyYPoOq99tTxr41)uQJMtK-v|PwEEAS;<)iC?R}mnd(Pq z`N47rUscs4p;6{I@vU6amAA{IN-MO5en~=-8hPS_ z)}Zg^_Z6jG7p20g6COHNJbcny!Em1&0@qr;kWz|qk`B?(^gvbmFz~Zo=UV(*9;a?N zj-XL4^8w6(`8ZT$*X`Tpsu$g~Q;L(DTS%opPdvv;Vp4ou*a2zXCtc4UmQL|xQCN3N ze?7FS7$0%7_v{W^WD@)Oz8o!oJ2QoxDx4y*mfdR~9IXy8?S6N8R;Wa7E_O`LlX&zC zJuft1F|Mtw?QI*64n}9@Wa~3l|9qZq!BS}Ud5;#?jgtH2HJ?=adTKw1oLvx(l$Sj6 zg`GTI^;DJN7Fcb0ZjsdW4 z3lLGdvHOv5%2;Luxi51jBjhRN#9`rAreiPv7`zj9_N(K!y!O`vuiFOG&zCRqPa&DA zUGUl@Ch*E@gIAvoP z`QRjZ3b))c<7QY&|7kaMq?7&r{Axg5H|^uEj~X7gnAPkz({kk`mCySslq(m11uxA= zhY0?#9qD&0eb5-Q~`LfMNxH{s{FRwbUj@RxYY+->bIh)B_@2?DZS+`nu zD_JSU#%C)i$O*|-&-=6|4HrEw67P5$?z+XCqTQbu+!$Fq)`4E{o!zw((@|T>EMB0p z?-xISH!3wMRJAh^b9dHD+WXJ3E7+BTjnxY22iHwD9Tz%Rv5iIV9F~nH!Zz0-%a<0` zA`F!Ga88vnbW1ediR?=c!BBC4sSnv32eKhz{BS57#)o;P8D|IpJZJFEXgb=?7LFwo zH89&U8Vn+Zg9ZRYV+I9-4aCtw-Z(!z2?1ums0D-YJ_xXzjvdsFVvh62BSWb;r%-!m zY-k|Xzz1w>1Ttj6IRr!;9Rp$z2_zbvfdK!>3+ME=ry*d_pCa@?1o$tb&~}a>b21eN z($UaW$7*WBKzarmnz~Q}n6?@S2G!JqK=mM+TIx_uI8+y|WdQp70durbeSG043#-3% zaYhKRKb=m2Lm(j`AsQiC8f2;;MAN{)00M@j(eT0h zz_s--I6WO4Odaa&t*fqs(e_sN_A$Vy8~FO_>Fa6f!mv8pzj^)*udi(h)7I73Gcz}{ z($usxGc(nPS?EA5bhJ6YV>3O|-&h+GjgBEi$Bw0?y!{I>M1S#Y5#($uP6zC8xp!9BrK~x3;#pc5p5x z03{PT#A(cIEKHpleLi*qf&i5N@YdG1l;G=jYGNs^V)hzg$q(crD{Y)nguEMCVb9O& sI|aOp3`&z-QLQsS*3iY%s}v9L0HCJ;df)pfT@D*yV`*fB!=EedwK+4q9#WAE}4x<*s)&C5?YZ(79u>5aidhmhiqz2Pv6~-ec tm>zI29bjR+ewAT^3Dc1l#`kZTHgHtF5=@hD;S&TI>~=9vc7v literal 3716 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 diff --git a/assets/icons/MainMenu/Debug_14/frame_04.png b/assets/icons/MainMenu/Debug_14/frame_04.png index 5f89c2e1b7ba2f6a23d670a80a0ca5250d2172fb..74c7e7fe8dedbd6f53de483d25f2e095550bd328 100644 GIT binary patch delta 90 zcmZpb&6yw(!pHyw=EedwK+4$D#WAE}PV$|-lRx$`T>j5?EF(_MkNMc!`k58^2AUiO qh6V<;VhKAI9Ny8|nE6?_?WaG3pboFr?ur0AkTIUFelF{r5}E*I0UuZZ literal 3717 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 diff --git a/assets/icons/MainMenu/FileManager_14/frame_01.png b/assets/icons/MainMenu/FileManager_14/frame_01.png index 3403ec8a67445fd7e3b3d094f8ce290088a9b207..aaf107ae24cdc295ceed94f31adf8a9629561307 100644 GIT binary patch delta 77 zcmYexnV{lf?CIhdQZXmlLg8@5fBn_7$}@O1TaS?83{1OVs99nJs% delta 71 zcmc~vo1o&P>*?Yc!f`#>Lg8@1f4;-55(1h6hXv}}6&o5A|FAdP3)CidurD&_`Iavs amBJ7h#=j+CO~6D3An%rusQ8Dy*;I{L9#R ceEQfJPKj}zS#w%5ngIwrUHx3vIVCg!06p~^&Hw-a delta 66 zcmYdKoS;pyTS!f`$M$NzT5K8X~GNAC?-3=CTSCwyREq|fuw;Y-`Wf4t7kJPeDv W1TS6n{B@ZD2s~Z=T-G@yGywpXO&d4> diff --git a/assets/icons/MainMenu/FileManager_14/frame_04.png b/assets/icons/MainMenu/FileManager_14/frame_04.png index edeed16d52e3ec98a7726919264bef4f7c4c6b0e..d2909d00b61e3e9851bdcee8ece1b66d707f663b 100644 GIT binary patch delta 71 zcmYdHo1o&P>*?YcQZXm_&;RM2jf`C^5;Ke>X83I~==`7X>)?SSAKE<|8ap4dUuI@g bb7y8)KaXRl`VVPe1|aZs^>bP0l+XkKM6n#5 delta 66 zcmYdGoS;pyTS!f`$M$NzT5z90V$ru=d#Wzp$P!+S{+>g diff --git a/assets/icons/MainMenu/FileManager_14/frame_05.png b/assets/icons/MainMenu/FileManager_14/frame_05.png index 71e4f76a0d7c3586d3ba2dcf727665ebef3d33c4..bdf66a9b6be9909af67921b67c27f321be749578 100644 GIT binary patch delta 71 zcmYdHo1o&P>*?YcQZXm_&;RM2jf`C^5;Ke>X4Gvm*!VwT*TDlvKD2u_G;pyTS!f`$M$NzT5z90V$ruBqUNKUfow*?YcQZXm_&;RM2jf`C^5;Ke>X4Gvm*!VwT*TDlvKD2u_G;pyTS!f`$M$NzT5z90V$ru*?YcQZXm_&;RM2jf`C^5;Ke>X83I~==`7X>)?SSAKE<|8ap4dUuI@g bb7y8)KaXRl`VVPe1|aZs^>bP0l+XkKM6n#5 delta 66 zcmYdGoS;pyTS!f`$M$NzT5z90V$ru=d#Wzp$P!+S{+>g diff --git a/assets/icons/MainMenu/FileManager_14/frame_09.png b/assets/icons/MainMenu/FileManager_14/frame_09.png index af431370807adcbacfd809f79405c05b8c537387..fa7b04e78e0c7e18847ded7a6933dde00711256a 100644 GIT binary patch delta 72 zcmYdHpP=Hb=jq}YQZXm_&;RM2jf_na5-Ado-W$}0Bqseo_@%kA^CACa24>;I{L9#R ceEQfJPKj}zS#w%5ngIwrUHx3vIVCg!06p~^&Hw-a delta 66 zcmYdKoS;pyTS!f`$M$NzT5K8X~GNAC?-3=CTSCwyREq|fuw;Y-`Wf4t7kJPeDv W1TS6n{B@ZD2s~Z=T-G@yGywpXO&d4> diff --git a/assets/icons/MainMenu/FileManager_14/frame_10.png b/assets/icons/MainMenu/FileManager_14/frame_10.png index 53cbfc54154bb88eed9461de0b7a32f2ea4b10ad..c6faf6c2969874932e954d3f3e275ee8c3651349 100644 GIT binary patch delta 77 zcmYe#nV{lf?CIhdQZXm_&;RM2jg1c*cpm@V-@|0b^Raw}-715P{}X;4JaFVgyJtgV h=R@|(%xr4z%nX{TJclfvi{~={fv2mV%Q~loCIFGnA$0%% delta 72 zcmc~vpP=Hb=jq}Y!f`$M$NzT54!#oxclIAv5I8JQ->%rusQ8Dy*FMGaQZXla&+qx2jg6_M+``PvEQa^~@~8g!fBL|ILlOU`KfPBkwsb$k XzByc9Hnl5UWdH(CS3j3^P61h@5Db0 OK;Y@>=d#Wzp$PzS#}y6$ diff --git a/assets/icons/MainMenu/GPIO_14/frame_02.png b/assets/icons/MainMenu/GPIO_14/frame_02.png index aa171cfaf7f931e2cfdd8df710a0d1def19f9ab9..7e227af421ac42dec5c0e96a3bb8d6f8ff94da31 100644 GIT binary patch delta 66 zcmWGdoS;pyTSQZXla&+qx2jg3H*YRcVm@W_D!9KtCH35h!YPZzzn@4ghzFvo`D Ur+>%>9tI%rboFyt=akR{0J?n}9{>OV delta 54 zcmYccouFbU?!|mY_P$g?O%FQLPFp#ZieP5Y`=N~ Rv~Dl}fv2mV%Q~loCIC@%8Pxy) delta 53 zcmazInV@1I?djqe!f`!$M|C@+Wa$?LfeEJ%91@UXa(b%Duw<#gixpQUXE6YQr>mdK II;Vst01WdJg8%>k diff --git a/assets/icons/MainMenu/GPIO_14/frame_04.png b/assets/icons/MainMenu/GPIO_14/frame_04.png index 52ac41fb8c4c969bead35443ed84984518a7979d..e801c88f53cd6106434763237b4fc9d3bd0040c6 100644 GIT binary patch delta 59 zcmWHJnxJB)=;`7ZQZXla&+qx2jf}h-*Q7NXNJvCTIR7^`G}xf=mz5!{gjIf>LG)|} OAn}%W!f`!$M|C@+aOoEZL1u2}3=WQ|(-|0cJrV4E5w~Iz0}yz+`njxg HN@xNA!j2I- diff --git a/assets/icons/MainMenu/GPIO_14/frame_05.png b/assets/icons/MainMenu/GPIO_14/frame_05.png index 30a25937143277bb66b665f26a28b202c426ad5c..ebdc1382a5d0ee4390c294a0634fa72f0b367a74 100644 GIT binary patch delta 53 zcmeYdnV@1I?djqeQZXla&+qx2jf~n!k!KGbIKY%>JncU#Lu5FM+=VlnBN%|d)78&q Iol`;+05wSzEdT%j delta 48 zcmWIXpP-^G=IP=X!f`!$M|C@+_^TI*2?>phJ_#|LiV^IU6{%!q00K`}KbLh*2~7Z@ C+Yn3u diff --git a/assets/icons/MainMenu/GPIO_14/frame_06.png b/assets/icons/MainMenu/GPIO_14/frame_06.png index be19567f3e5aafe13f2c549fd797dd14fd0af52f..5ebb0953faab063d15d296e5736c3c0da3c4c2d5 100644 GIT binary patch delta 60 zcmWHJo}gl`(}4gTe~DWM4f(eoC4 delta 52 zcmazJo}i*H<>}%W!f`!$M|C@+_Ny0+ifm#6T)c@I`iu;R76|q-rO!)Z00K`}KbLh* G2~7Z?s}Df{ diff --git a/assets/icons/MainMenu/GPIO_14/frame_07.png b/assets/icons/MainMenu/GPIO_14/frame_07.png index 2f7a42368cb3a77d54c63665c6f3cd5080fdb858..7138b727d8489eb707bdd0c0e1935c4702fb70bb 100644 GIT binary patch delta 59 zcmWHJnxJB)=;`7ZQZXla&+qx2jf|2T*Q7OWmXwH)aQ<&>Xs|)!FDpYvJFC2<=!<9u OAn}%W!f`!$M|C?RZ|N5W0cLLJ3=WQ|(-|1nBnrHUoU-gb0}yz+`njxg HN@xNAw#*RD diff --git a/assets/icons/MainMenu/GPIO_14/frame_08.png b/assets/icons/MainMenu/GPIO_14/frame_08.png index aa4ad384d062a489fa867c1344c038a986d5e3b7..a753127a8e972edf29b25f4888d6dfaf86a60ae5 100644 GIT binary patch delta 65 zcmWGdn4n^#?&;zfQZXla&+qx2jf_nZVVe)!>?!|mY-nI$u)$#3|J0q|=exetXP7dB V`JZ8>;{S delta 54 zcmYcYouFbUgnPbQZa{7i{a{jh6gfC`%f@E5MlUW!}$I!FMGa!f`#hLgBE%e@^GW{B8VZJn!Ed{P}5+|dfwkR`uG3zkpm2lI`+{s>SPjreQ4-x b1Oi3|*Im5R1vk%-WdH(CS3j3^P6wBS3j3^P6FMGaQZXmFLgDb1|16i81&{r&pD7_RLGbi>v1Rh?Gwf^v&&v-$X&w#1fH&b JF6*2UngEcI6x#p* delta 52 zcmazDo}i*H<>}%W!f`$M$NzRl@n3<5KOAg(*vP|SXu!arnJtzx+w>A20}yz+`njxg HN@xNA3_%ii diff --git a/assets/icons/MainMenu/Infrared_14/frame_05.png b/assets/icons/MainMenu/Infrared_14/frame_05.png index bc1229a25f7d627c2ed91ffef656c20f707617d9..8a08e093c3f1f86e8f2e0b0d9c34f248f323e666 100644 GIT binary patch delta 62 zcmWHJouFc=;_2cTQZXm_&;RM2jf|2T|Kue8`7eGb;a6e9%frlSY#_jJzK3gixPn#_ P0}yz+`njxgN@xNAGg=p} delta 52 zcmazIo}i*H<>}%W!f`$M$NzRl-oGmx4eV|h*i2wlWMgBHJtg`y^&YgTe~DWM4fBF`J$ delta 60 zcmd0bo}gl`h1|K1|ccFh;L P%>V?Ru6{1-oD!M<M@#&BpKznP+3_7)^L^g7Ez&%!<`QN17&x1j dG;rNxV7Oc-7U{HE$(sQPJYD@<);T3K0RXHq9Y+8F diff --git a/assets/icons/MainMenu/NFC_14/frame_02.png b/assets/icons/MainMenu/NFC_14/frame_02.png index d8da3d730d4d7e696d0dd8e994b8564f0755a90c..7ba638842ba52dad66addd662a49d1c86514e8bd 100644 GIT binary patch delta 74 zcmYewoS@=r;OXKRQZa}1;6Yvn0Re`Cdwbhg9PsA7bzw{2A5WDtN1`XOdirJD?i1za ednCKF=?(wNCmcB}8a2lmfWXt$&t;ucLK6UA4IMQA delta 67 zcmc~ynxJB*>FMGa!f`$M$N#p6|HTb{9o+Dpz4;D5+kSbTOnV8gI)gWV7=>C+?PFy4 W9w#BGD=96>00f?{elF{r5}E+HKN%FVdQ&MBb@0H$3VzyJUM diff --git a/assets/icons/MainMenu/Plugins_14/frame_01.png b/assets/icons/MainMenu/Plugins_14/frame_01.png index a3e192b8394ad37bc7c9836463f558e3f86d34f0..bc7cc779a983e5c8ea62100ba268c36dceeb70e6 100644 GIT binary patch delta 77 zcmV-T0J8sTY>*^KGf6~2RCt_Ykod#o#K4#)#v*CU#K6Gx{{Rz%0E5IE#@n1MT*8ch jf3tl1$i%|I@PP*a$;}G=jfBps00000NkvXXu0mjf`er6I delta 75 zcmd1FnxNul=;`7Z!f`!$!jHoOU)vSewk@pV=eT;+;L2A6k3ESy{J(Bt7=Xaj)z4*}Q$iB}0;V6L diff --git a/assets/icons/MainMenu/Plugins_14/frame_02.png b/assets/icons/MainMenu/Plugins_14/frame_02.png index f025f2309f228d6a53391d9695088c28a2538c7a..c914a3e9fcd7cf2ebc472a955ecf40bcdf15aec6 100644 GIT binary patch delta 79 zcmd1Go1o%l>gnPbQZa{7i{a{j#*ed^SQMBTcQAfuWMW`o`S6!%0SDv8+e~i^7~aJ& jzJJRw--b!Sf$1QF?0(+sll-o*FaUw4tDnm{r-UW|F9sTc delta 75 zcmd1HnxNul=;`7Z!f`$M$Bn}uN_h`&7ioKM@9^TMaN9R?9_ea{XYUd##1DV?$9K3! fy6vwi53ec1>5U>mvu_#KF#v(5tDnm{r-UW|6tW;K diff --git a/assets/icons/MainMenu/Plugins_14/frame_03.png b/assets/icons/MainMenu/Plugins_14/frame_03.png index f82dd553aa71b22145f30bf8b5cb483519c63bca..47a1473ff7dd9c81c99238fec0b3aaf6301c071d 100644 GIT binary patch delta 79 zcmd1Eo1o%l>gnPbQZa{7i{a{j#{Ykr7#NsdFtB{Q%OG`yq1u4K`VYhHKTHf?7_7fA i*zU{Wdm&Sv?xSfv*vb9zopr0GXQ|GXMYp diff --git a/assets/icons/MainMenu/Plugins_14/frame_04.png b/assets/icons/MainMenu/Plugins_14/frame_04.png index bc22d3b00e3c908f4b19746ab1e5eb89e72dea76..0230d16a71d2ebed9c948c1462213271bccfecc2 100644 GIT binary patch delta 74 zcmd1Ho1p1hF^5r$;p%^e&wrSHF|f@4z+}w8&@997I)?Gh1BU)DObQH44{k8Nf6MS# ehDjoU@ee~%lz`;N?LU+mfWXt$&t;ucLK6Tvpc|k7 delta 74 zcmd1Ho1p2+ah*|%;p%^e&wm)+{$c2;Vc1{8&@997I)>rR8HWBZ4C}uz^q*mPe~00* e48!jlhChE+d=V*OEzS&N00K`}KbLh*2~7aU(;svI diff --git a/assets/icons/MainMenu/Plugins_14/frame_05.png b/assets/icons/MainMenu/Plugins_14/frame_05.png index ddbe5f7001e61d7d9b5995617806926e6ead6590..9518161489b21d6ae07689c36a790f4154be1999 100644 GIT binary patch delta 79 zcmd1Io1o%l>gnPbQZa{7i{a{j#=rZSzFc7Z{*~#^50;s4m=qb9*w!%a=VfAGU}7j> jVsKzO%fRsV4-*?h{zE>lpC!w)7=Xaj)z4*}Q$iB}i<%oD delta 74 zcmV-Q0JZ;aX^SjF!WR~tgT?!tirJW3>euk?5|mdKI;Vst090`zI{*Lx diff --git a/assets/icons/MainMenu/Plugins_14/frame_07.png b/assets/icons/MainMenu/Plugins_14/frame_07.png index 91a1125de503f7aab323cd7b0123aaea4a67bdba..0ccf3f271e115fbb5efa7ba53ddbf84acac6c6b7 100644 GIT binary patch delta 77 zcmd1InV{lf?CIhdQZXm_&;RM2iHyRBS=A2f^F-GhbQ&A{S)Z7cknrbod*{T)gAI*| hzvb09*^d3MXVkmKdudv9h#dnEc)I$ztaD0e0s!#vA6@_e delta 74 zcmd1FoS@=r;OXKR!f`$M$N%<+|7F_#Tk^1R@=d#Wzp$PyK_#qPj diff --git a/assets/icons/MainMenu/Plugins_14/frame_08.png b/assets/icons/MainMenu/Plugins_14/frame_08.png index c302db0ab3763564fb5ae2310c21589dbffffe9d..360cae32cebb3263814c6ad147afaf737d36b0d1 100644 GIT binary patch delta 79 zcmd1Io1o%l>gnPbQZa{7i{a{j#{Ykr7%ng|ykJN&VB$E#IP)>%zkN&$3{1ZdF#cj< iNMc~({ljFy090nL#<#`AzH2W75O})!xvXz}t1^@s6 diff --git a/assets/icons/MainMenu/Plugins_14/frame_09.png b/assets/icons/MainMenu/Plugins_14/frame_09.png index 2be3057210db4fc1fa5759bbfe095b9c7c64846e..15c2e0a8e1d045f723a583ae25282a90c4f0efa4 100644 GIT binary patch delta 79 zcmd1Eo1o%l>gnPbQZa{7i{a{j#{YkrQW%&x7#L?VGyKb8V)(-N^FPyn2F7GbCLRWc iIX@Wx{$}{Y092+X!e3^;PvIH^5O})!xvXUZ>uyxR2gZVUquc)I$ztaD0e0szI(8pHqq diff --git a/assets/icons/MainMenu/Settings_14/frame_01.png b/assets/icons/MainMenu/Settings_14/frame_01.png index aad9e35588f1c07576ae24838ee23ec3104869ad..1f8f45ee1810467c88f271ae2ee3119bb858c8e7 100644 GIT binary patch delta 74 zcmV-Q0JZ;aZjdQOc$@($0M-8hKO6ua+yZdm0yy*p8Ug|J0|fq$0+hG{_n-vM?gZ)R g0rjH-_%H$E0XNnVr2amt?EnA(07*qoM6N<$f+)fr7XSbN delta 74 zcmd1Ho1p2+ah*|%;p%?|dl?3~I}Ck$7>;dVcyNN@>ko#{Ee!2840U%Hd~z5}O&Gq; eV0e3i;qj9QQ^Cx&&%dxS0D-5gpUXO@geCwv@f@fC diff --git a/assets/icons/MainMenu/Settings_14/frame_02.png b/assets/icons/MainMenu/Settings_14/frame_02.png index 124ffde21345ef896586a1c00518441458ba7cd4..8127986f3600a4b9616f8443cf7ebc5f88fe0c17 100644 GIT binary patch delta 77 zcmd1HnV{lf?CIhdQZXla!~eq?>c=OoKc7<6;Q5^OGC%XN^F2KGDzmvv4FO#pD?A<_T< delta 79 zcmd1Fo1o%l>gnPb!f~BZi{a{j2Kzq@ayAUTdl(MZFuYA+cshmQ^B0EiJPdqy82;oi j%r;@jp2G0@48!d|k@|vln=_~DF#v(5tDnm{r-UW|oNOI+ diff --git a/assets/icons/MainMenu/Settings_14/frame_03.png b/assets/icons/MainMenu/Settings_14/frame_03.png index e4d72fe6fe32467766ef61085378c952a72544f5..0479bef216ba7e5eb38df321f54031b986108e31 100644 GIT binary patch delta 79 zcmd1Ko1o%l>gnPbQZa{7i{a{j2Kzru4;UC*elUeIFr50s_~;eGXC21xUm4!XFv+WTno__*o#EaLI8mzc57*dQ+Y*pV{_zVtLM he8BnmcfXH33xi=lpGQe+#!dzx@O1TaS?83{1OU?H9;*NV delta 79 zcmV-V0I>gTZjdBOHAzH4R0!7rDgf300N>02Z~Oo^_yC*u0L}aW;`{*G`~cDX0M>i} l*?a)Md;oCd0Po-c-|))x75C%v8Ych%002ovPDHLkV1kQIBh~-_ diff --git a/assets/icons/MainMenu/Settings_14/frame_05.png b/assets/icons/MainMenu/Settings_14/frame_05.png index fadaebc9fc61fe4c97444adcf4aa7839b62266b7..5aaa8301053c5a14b4e71fc691a1294f253c96ad 100644 GIT binary patch delta 74 zcmd1Ho1p1hF^5r$;p%^e`#cPJe;Cb@m{Kk2xyZvN-{m1prV0D-5gpUXO@geCwnK^s~C delta 74 zcmd1Ho1p2+ah*|%;p%^e`)?TH?=aX{F#P_)@GFPm=Ng9pYZ(6JF#MBYu$N)j-@{OU efFb=2!}KS;hC<;&LIKeXK;Y@>=d#Wzp$PzKYa90f diff --git a/assets/icons/MainMenu/Settings_14/frame_07.png b/assets/icons/MainMenu/Settings_14/frame_07.png index 6301512e8f4c38f2d01992d725660757cf699646..424e68a089015fbd0e5354441bbfc793ff5d9afb 100644 GIT binary patch delta 77 zcmd1HnV{lf?CIhdQZXm_PyN)+#@5be>_*R5jF;^h+w9eR h&S?7ZsQK^+G1!Ul${hJ~=Pd&ec)I$ztaD0e0ss<_9_j!9 delta 79 zcmV-V0I>gTZjdBOHAzH4R0!7rDgf300RPkg|JVTkya4BL0O0HZ@7w_Cya4390REf+ l{Hy@{GywmY0RPMY|K#w07f_JTWGMgu002ovPDHLkV1l>|BoP1r diff --git a/assets/icons/MainMenu/Settings_14/frame_08.png b/assets/icons/MainMenu/Settings_14/frame_08.png index ce0611e3460a33cdc38a5037297cb70ad956982a..347b760e9c9e986386481f4f39ef16a0869c2cef 100644 GIT binary patch delta 79 zcmd1Fo1o%l>gnPbQZa{7i{a{j#{X-X7#Nr?urU2N!}#bQ)BitA{~j=0wqg3Ez+@o6 j@Y{sxZwll8vrG&UpF diff --git a/assets/icons/MainMenu/Settings_14/frame_10.png b/assets/icons/MainMenu/Settings_14/frame_10.png index aad9e35588f1c07576ae24838ee23ec3104869ad..1f8f45ee1810467c88f271ae2ee3119bb858c8e7 100644 GIT binary patch delta 74 zcmV-Q0JZ;aZjdQOc$@($0M-8hKO6ua+yZdm0yy*p8Ug|J0|fq$0+hG{_n-vM?gZ)R g0rjH-_%H$E0XNnVr2amt?EnA(07*qoM6N<$f+)fr7XSbN delta 74 zcmd1Ho1p2+ah*|%;p%?|dl?3~I}Ck$7>;dVcyNN@>ko#{Ee!2840U%Hd~z5}O&Gq; eV0e3i;qj9QQ^Cx&&%dxS0D-5gpUXO@geCwv@f@fC diff --git a/assets/icons/MainMenu/Sub1ghz_14/frame_01.png b/assets/icons/MainMenu/Sub1ghz_14/frame_01.png index 52dc4ad21f99013e7fc6c344756ea5232db4ea7d..ba1b89f9fb964de0ab761f6e88449c33e205dde3 100644 GIT binary patch delta 72 zcmYdHpP=Hb=jq}YQZXla&-v3|8k$p^RW7qLE?dt&LqcN44%rzM_6Bc$9$NCD`6EBG cFtZ3F1FHa6;pyTS!f`!$$N#p(|Ke?bq*?YcQZXla&-v3|8k$p^RW7qLF5A!J!^7iqhR0`*yu`Pf#GoGsf3!Dt bGIlY%+Q?a1%|6MC0SG)@{an^LB{Ts5Dg+!( delta 65 zcmYdGn4n^#?&;zf!f`!$$N#p(|Ke?bq_j>8mIsO diff --git a/assets/icons/MainMenu/Sub1ghz_14/frame_03.png b/assets/icons/MainMenu/Sub1ghz_14/frame_03.png index c1e438b01c162c7b9fd7f70142639d5b76b3f689..420e568ce951641a7db96b533a8c5e6a9242f5db 100644 GIT binary patch delta 71 zcmaz_o1o&P>*?YcQZXla&-v3|8k%1+a0@dtUyf%}V`EcGV_UYL$A_kzr=*3 a1|^2W<{S*0E_A(M00K`}KbLh*2~7Z}Tp1z& delta 59 zcmYd`nxJB)=;`7Z!f`!$$N#p(|Ke@G}%WQZXm_&;RM2jf`FYj0_A73=9uTtl(g1Zf6l)pSye|0}yz+`njxg HN@xNA0;&>= delta 45 zcmWIcnV_N}?CIhd!f`$M$NzT5zJCpZa~iuCT!p00c-VE_V8S3j3^P6pP-^G=IP=X!f`$M$NzT5zI|^P6%`)yi?J}6NlOb;pyTSQZXm_&;RM2jg3zaM=#@N(uqHBWN2V;?|JH@zXyJ_H+C|zGBU`; VaL#+i=Ag&`1fH&bF6*2UngF*G8XEur delta 59 zcmYd{nxJB)=;`7Z!f`$M$NzT5j(hhLcl>XAcuGou$>`pl#2=s8c^MhRS4)0KUbc8P P0}yz+`njxgN@xNA3ws!~ diff --git a/assets/icons/MainMenu/U2F_14/frame_01.png b/assets/icons/MainMenu/U2F_14/frame_01.png index 6903a28b8d72866c8422d49007bb6d3f9aaa23be..0dc3edfab8ca939b69111df30ef0cc08f9d3a6c3 100644 GIT binary patch delta 77 zcmd1EnV{lf?CIhdQZXm_&;RM2jg3#!xi8nVAN!s!DHSo}UwtCa&qGHv4jlQ?`0_uC ho48=xFL|FH8;0l`d^g^HjC5xJ0#8>zmvv4FO#qL diff --git a/assets/icons/MainMenu/U2F_14/frame_02.png b/assets/icons/MainMenu/U2F_14/frame_02.png index e4bba739d28c7f545f78527629ac063836758b97..21dc5fa7dac47f09bb33d5c104b78173dbd40282 100644 GIT binary patch delta 77 zcmV-T0J8sQY>*^KGf6~2RCt_Y{QsBbXA9GR2gdhrnHU%t8d#YAe_;&y!o(=R#Posb j{{%)C5r+C7OpH7LX`>F<$Xv9u00000NkvXXu0mjfW?Lcq delta 72 zcmc~vpP=Hb=jq}Y!f`$M$N%<+?!1S;+w#1B-w?pe?fjR&O@P1c0!Lc`f7=FW9z8*Y biELsFlXV3WJ?9$uGXR07tDnm{r-UW|{x2C9 diff --git a/assets/icons/MainMenu/U2F_14/frame_03.png b/assets/icons/MainMenu/U2F_14/frame_03.png index 4c903182c9f94b3e94432356d907431fa60355c7..d516bf7f62bfbcc15b44db9c030c910690e7705f 100644 GIT binary patch delta 77 zcmYexnV{lf?CIhdQZXm_N8sTv_ZvU{jaFl0Yx`b5L#@c*@Bc#*pISQu8#-SyU;fY8 hqo>64)qaLVB}43Ez6-&{xvC66;OXk;vd$@?2>^btA$9-& delta 71 zcmc~vo1o&P>*?Yc!f`$MN8sTPwfu*FTPJ*JU)b2X@E^N#2fK3yi}Mb4=Nr6i(>W%1 bFmp5XUJwW@<~@6h0SG)@{an^LB{Ts59|Ic@ diff --git a/assets/icons/MainMenu/U2F_14/frame_04.png b/assets/icons/MainMenu/U2F_14/frame_04.png index e4bba739d28c7f545f78527629ac063836758b97..21dc5fa7dac47f09bb33d5c104b78173dbd40282 100644 GIT binary patch delta 77 zcmV-T0J8sQY>*^KGf6~2RCt_Y{QsBbXA9GR2gdhrnHU%t8d#YAe_;&y!o(=R#Posb j{{%)C5r+C7OpH7LX`>F<$Xv9u00000NkvXXu0mjfW?Lcq delta 72 zcmc~vpP=Hb=jq}Y!f`$M$N%<+?!1S;+w#1B-w?pe?fjR&O@P1c0!Lc`f7=FW9z8*Y biELsFlXV3WJ?9$uGXR07tDnm{r-UW|{x2C9 diff --git a/assets/icons/MainMenu/iButton_14/frame_01.png b/assets/icons/MainMenu/iButton_14/frame_01.png index d9f10748ea04a13f2cd4de7f135479338e193813..6e7398d8698c3fe5a21af35c99cc484e483ac845 100644 GIT binary patch delta 79 zcmd1Eo1o%l>gnPbQZa{7i{a{j#{Wl|81^tRTwwYi!1QwBS3j3^P6@~ diff --git a/assets/icons/MainMenu/iButton_14/frame_02.png b/assets/icons/MainMenu/iButton_14/frame_02.png index cf3422c03cf2a45e43b69bb16599532e1cf2fbe2..531364566b66f951b7f3ed4d9ddb45035301dc21 100644 GIT binary patch delta 79 zcmd1Fo1o%l>gnPbQZa{7i{a{j#{Ykr7@jaO>|px;fbqv4hQ~fk&pt4nabTLpz##UA i$((^nkAaDY0jR9*^KGf6~2R0!8&`2UCD{{x2qGZ_9=F#Pz!@Ysjpqz%K=8V2ne2C+X3 jzJD01|1h)z)%*bfw_6ktyxb|N00000NkvXXu0mjfuvj9( diff --git a/assets/icons/MainMenu/iButton_14/frame_03.png b/assets/icons/MainMenu/iButton_14/frame_03.png index 1b0ed62e06d2bab77e272552619b9ad09f879c6b..31354eeff27003c5e3f640e0319402642a4d0ce2 100644 GIT binary patch delta 79 zcmd1Eo1o%l>gnPbQZa{7i{a{j#{Ykr7#NrszA!P|VEAvr_=JJw`9+q~&lq(7FzGQc iZ2!ZwgMmT*4^Wx2g@E8LDqc_6{n(U5LlbJ2-8{mL^QEl#@S3~00K`}KbLh*2~7b0^%`0L delta 77 zcmd1GnV{lf?CIhd!f`$M$N%<+|C!tV8%z8PHTY9==tBG9w!M^GzGsD$4q6hLelm;^Zfv2mV%Q~loCIE~AB60u# diff --git a/assets/icons/MainMenu/iButton_14/frame_05.png b/assets/icons/MainMenu/iButton_14/frame_05.png index 79f217b962b55520084f203c6535d34c94b23103..82dbaedeb621f44c1280b7c0ea541aa1d55b1e0c 100644 GIT binary patch delta 72 zcmYdEpP=Hb=jq}YQZXm_PyLk6M1JAJtjqp0`t)x%xMzL*O9AucMiwgnPbQZa{7i{a{j#{Ykr7@jaO{9s~u!1R9)mdKI;Vst0E=N8umAu6 delta 72 zcmV-O0Jr~cXOJXAE=fc|R0!8&`2UCD{{x2qHyHl!VE9+U@Z$}`^B9Ktdl>2=sD`2D e4?{Ch%^v{ZQ5C?s&SvcZ0000hBN%tEu|-~j*F0RK1u{`dg!^Z?IH0JyvWc6P5c0Z{Lg9>4za(^$^ZZW07*qoM6N<$g7Y{a8vp84T&wlU$YQyop2o|p%#iuA2<6?W)00lWOWzlVqa`i zU^&NQHlKo=js=IW;YnK~-YeqV5T|Mt#|7~`yK>L`s4?0 literal 3692 zcmaJ@XH-+!7QP75n@AB6CjFw$O_8Rxwp&v)0o_nfoW{=WU~efC-F#2#_9k`Uc13IKqF zjWy1NH>z!a!u-5{|ENzP0Ek-9u-GFuSS*OiVtCWeQUD-ukn2jtyUxg?S4NjGb}`{e zb_^FeVUP>vTDWY2x|WKFv~7&aodG%Lx?L6)0!l5}G5m3H;n(GywZ*TBz89KMxf^%+ zUd+|jwT~h9eEX|craCsCyfc|DUgVZ{3DpXVr&#Mb8-$A&VD|6&aJjj$>Ei^%EJ9R` z2}lcf^ zFbj^u86V;oQ~q5I(>&Nkxt?I{^Ugro`X? zA7h}n>*!SrfS?P=dfPQ3fcH9pu8q65HSq8$P}?ajRt5-*1G>&Jkp}^R5a4u+s%ju` zB^{8pTyRJIeyCJ>T8mey^fFYX8p0yNQ&`7e$lV>XU$fIj;gGB$aR)KO3{oGIt_Y9N zm-?{S4glE+a=dI8Hv&5)OFKIa<0>Ri>3n%9xCQp|8sD7kDq@-ez(;mi_og%MXJk1*8w%JPR7pVT7YCnBr_RzK9YFWKkp>$)j&#cOyf-fI1+*w(soFSyahtCFB4 zJMJvwABW4hz6j3&$6{_Ce088_i~MO!dyU^@%m8?J#)K~D(sdsxO ziDpWDCkkiPX;w#w2$;7B?xOrx-xT>s4aS>bn{{hH?-9~#JgW<7YQQ`?tSypAYI_7O7B6br`|xNne^u-< zsp}C(KqkVXR>V+%g8>oun_Cm?36Afr^FjO6^mh%47>V#-ajw?@C+6EdR)4OD=svzjrpL0!&qZ}cyC75Fdar8Y>p`+_ znGhmL8+528a)LY2Frhc0G@-KKDa!RS^S{69`bpEJ^^C3Jr1Yfzq#z{?Ztiw3!(}A@ z4t|$G{4q?)oeGx+&e8e1_0MG>IxfrG*yWVmP43<6qu{ebd+?e4eAh_we#g`|?mcZY zR-aQp^DlA4C8FdmH^)#l6*Kn;?V&1i_B=?l&sFTbrr3baM@EGBuI3XP}vuij!iicD+fr7nhD9hIFw`01chuD*RGjB?z! zFeNpGP-I=?Tx9jN#;|lYkDFU#QRT4~A!*)ht8rYziW=X!lRND?;5w2gnkVmoMlP2^ z3Vm~w?o{D8Fa7f7(z0Hh49~J>LV=Aqx6u_qeLusOtJV(P~$36ctXo9?L#s;j8mIec-L z%W!e1%srTEY;SDe+|k}~x1&GZAQKIH2cOQI&U}|S_Vo0zz+>7K`4!J7Hf0mXay{lM zs{JC5Av|&jZpTiPTb6K34)j-*RORi;t8`3sEXwMqHaz^j;&nyAQ^kjq?*)fSE9e!W zM5>np_35k9hPlL=#L(xVziyy~B%%i-i9Ha&6$S2T1uILQVCts zUGMeAD|WXXY@~5rGkdM53e?Jg%ZoABV(l)qK~ha1nMzF~Ej1Ii>}CHGAA@_AxtZme z^|Sdy59SQ#XmioSx7+n^AI$R53wYDeg8kq;*=;IzJ6YFvtT@aG>l8tKGOY?FK@;3d z-aUMp!zo-L&MTOFGhy8xHyKA6jlxGgPPH4=K5cp0=G4H*Iu$vFy{NiH-U{C82J*rW z@KO0=Bg`W_cdV@jUr>1&XNnx6d@CE6HNT!+X)b3Tf2risWL=4hPs?vNN>o;+(>fD6 zX_Apg!an!E5h6|zuQh~;YeYszx<{GDF=GgOyJ4vYobF+4z!>g3E(JH5NrgEf9_ZK_ zXqgm3&Y%X3p6fq1ZGw1vwD%FX1e>#V`w$SVQbWJ9FUHnq7o$IMKZ%WpD5ODKPB4S+ zbk;9L=E)a8WVDefX7(|Thm-zgF0GX>fBnG1Zq9)?(V%+edMX&&ZP*?29(!DCzvF_n zmP7E(-x8_~g4AB=elFv8~qQlY18rbEV2{-&Pg(?n-71S@( zDev=b#gxdh%~yWcoMI99^Mm@V)p+)a= zDw=gqEe)$t4|ed4I9b%ghvrb#TmkL^$mGe zuWXpSelg_6=jPDo-A7roSu0;LEsZUlSxs4^pD1yp`_DG>_wa8BsY+J7t9;w1+=Iru z#P=WiY9-nH%Zp9!JV!^uP{QrkTTP!-nYf^dnH7<-mHiUP!SmNcia!eV{&HTKsti4Y z$yms+%yi9I^Yrq3?$mD5-T!4Yc-?B~7pYtND32i9Mf_{p;LN4oMCwA{)PPowVBxK z)LeC|Dxm* z=n&$z4ooWg5sNl6)y_kQaqY^FxE@t6qXZG%_0OZs4Hnz{FB~Xx70jifgbV zo)qj$LXg3xCLmNGl1D(Nu!*2R`dPmKWFQ*+CohsW-!?8Mc(0KT%m@kBL&6ZCzaKC!AdBpcbirBv z9gep`gMHX+CK3wea5xZ-9)!W7LSYC50;&s#!r?kR51oJ@KQ=K?$1gzj2Lp~0Kw{CD zY#PH4w9QELVw_{6!91~lWkF~DL+cmtccpkWg9Z|rP#8paJF6d#4i5j{l}`W1JAmy% z`H$ZJNgRL=Vp5ocn0I_k3t^tVXzqiJ`5%Zt_OjE zG#!W}n%}nN;GYl&2c(T(0GsGXqS)ZjU>*sCMk6Ej5jcIU0Rjip)768)EO6#H>|qQJ zj=>ti^V-8&V1mUl1&kJ#fa zw!*g0h>*E`32)%o;LP!XgYAhhNdP3wU$b>_unza?ajmA9Z6||P@$Fnim% zU1nD&dKMkhYXJAuPbEk5C{B2fM2IVOZ&H_*jPB?N-?J|{TsF&Uhn__ diff --git a/assets/icons/NFC/Detailed_chip_17x13.png b/assets/icons/NFC/Detailed_chip_17x13.png index 9aaa1c5552a2d115b7042a4bee7a0c636ed00f01..71c56f60c53026b72376618da7aa53a62b72c0f2 100644 GIT binary patch delta 95 zcmcc0UN}J_l92%j(wTN_2T~TEE{-7;b65{<6m>9QU_EeJy>+F=+Qk#EWk?* xTs~d<@nTa+>913ZIhejqdpz;d+26aC_|)awac4_zwPXRA<>~6@vd$@?2>?Q!BRl{A literal 981 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 Eg6y?d%m4rY diff --git a/assets/icons/NFC/Medium-chip-22x21.png b/assets/icons/NFC/Medium-chip-22x21.png index b1f15432d48fd0e956556ea20121101e9f702554..28250ca9c0eae3db9f63f2e842881e971db470aa 100644 GIT binary patch delta 131 zcmbOuJB4wAL=7VY5M)IwTL7tOPZ!6KiaE&^2M!$m^#6Z&8w(rfvifL!gTJ5C5`O-- zpZs$B6z0pn+4*O%+z^>z_qYDQk>d*veCcF#s!ymmpz>nPfg`)#GjJgTe~DWM4f4LLW3 literal 3740 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 diff --git a/assets/icons/NFC/Modern_reader_18x34.png b/assets/icons/NFC/Modern_reader_18x34.png index b19c0f30c9f3928d3129acc9da92d5a9e962d084..aac13396ae38d0372558855c717e0e50581aa319 100644 GIT binary patch delta 137 zcmca6Gm~+GL_H$|5LBJt5)PyiJY5_^D(0k~-pJYPz~FGPKAzLDy@2Up$+W!G>elAF zT9QhNFDh?EaA?}?c_!?bP0#FWqk02-S$;{X5v literal 3670 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 diff --git a/assets/icons/NFC/Move_flipper_26x39.png b/assets/icons/NFC/Move_flipper_26x39.png index ff4af9ff05989e5ff04d3888971b7f7801c59ed4..981c172368f799f62dcc2f08222a130b7aecd901 100644 GIT binary patch delta 171 zcmV;c0960-9J>LK7=Hl(0000v)nyO>004qXL_t(|oMp)|YQkUuhT-S`2x6c^MmODh z1*bOM9D9@AKyovKQ$2!9=?%=#AxPkNYL_lAJiO|>9izT0_10eE)`+i&rBFX=9|%n! z_3oGdGb0mnMMh-!yF*z?Z;@xDtDmwiKf+m<#5bW6UW6yH+a!-+(5SC(QBJ~992U`T ZJODzkAW(w6Owj-U002ovPDHLkV1gS2NZ9}Y literal 3698 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 UmlzLSoB#j-07*qoM6N<$g0{b;J^%m! literal 1591 zcmeAS@N?(olHy`uVBq!ia0vp^#z5@A!3-oDPVO&fU|`hGbaoE#baqxKD9TUE%t>Wn zsJOLu;zqB-0U~YtrCpCM4C8q8pg=t^Am{4A9?$45g^1P8lh%4VPrama=gz8H4)^VR zdhhHSCog`m;0MdT#z$8UDtZ(M9nAlA?)<}o2keWJuFq`?Y;#-_y8ETa_0Lb=2pjt_ zI;fus+I`iEp<}YeBXuUbctM8qv&-&gelUM_I3zQHDW`m~4oe{8FLA4@3db5GzXbC> z;xoAFxtr|~qsG^wdPXnDcli#UJLmB~Vm7E=_q^GVeTL&Z?S_?$y?Fz?FHN+1JvS?I ztB&`ryDA+|K5AUPs4)3=;fxg~fwHotjeqPJ#6BM_yF4*F^z^Oh=kp6~v4q}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO z`Gq7`WhYyvDB0U7*i={n4aiL`NmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTc#AbGt^BsFfdXux715BHZ@62OEx#qQ7|$vGS)XV)HkryH8ip^Ftsu@R)7K} zpoK*#X;wilZcyuhJX@uVl9B=|ef{$Ca=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q z3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2OG|8(fR2UuBDVl;Y+f-mq<~?jUy)d#Z>VPg z@)b;>uP=V3xw&xF#U(+h2=`(&xHzP;AXPsowK%`DC>a=cY04n03ap%qQWHz^i$e1A zb6^1(kda@KU!0L&pkQRGXQH413OGX}19QDxJtGq%GX)b%(z*Q}aq-dQ%X3O>pW3rIp+Qpv^9+MVV!(DQ-pixeDL_vC72l7DJro zLG`BKc8d{Cz4}1M=!2piDH*_ofN2ZFgr{pD2c9!h^MKi*2$=3;z1JuL^9);nPl)UP z|Nnu^&_kE&fCZSXr;B4q#jQQlIQf_qd0c5+MXOX$CUrGc&h{NFs!LOA8_nM2jgySt!IBFjn)|4o^*9%oVS*X zZ0??}n8{i*U;Ri9Uic<}|l_6;w1%IPg#Ybbe;UU!j&K6%UWKMy2+v zd+;yhlYZ_kTP_hFZXj~h;=H7@?t!?7<+Cq)1TE_njXLwt{|dW`N6ZgNp{aEbcu&4{ z?-7XAk9w%%Qq`HH9p(6A`#fReDXS{?wu*1&4cg@tlrG*P{m)}d-osblSZ)cuotM$v zPwW5H$pSs;NycL(D`2Zwc+K;@CAtDnm{r-UW| Dsjf_~ diff --git a/assets/icons/NFC/NFC_manual_60x50.png b/assets/icons/NFC/NFC_manual_60x50.png index 787c0bcfe01755f4dcadcdce004a1a0fcfb06f41..6a7f75499edb28a3e489c43d2a6393098dd4e315 100644 GIT binary patch delta 294 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 IrsqTc1+$%)k^lez diff --git a/assets/icons/NFC/Release_arrow_18x15.png b/assets/icons/NFC/Release_arrow_18x15.png index 187a9034542393c02053be27489a01b57db7e0cc..bd487fdb5e9c4130251f4f3cc119ddf252521858 100644 GIT binary patch delta 108 zcmZ24Q#U~(jgbKe4*p%VA4s`+x;TbZ%t`*U-(g~>V?$$SV>1x9HZFAh&T#qvTpk|2 zGkiWg|7B)K%;4K_Lx1O|4Cy$A?E=f}y94&&%Dq{XfWHPgg&e IbxsLQ05)nV!vFvP literal 3631 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 diff --git a/assets/icons/NFC/check_big_20x17.png b/assets/icons/NFC/check_big_20x17.png index 0e84cfa071cafc0e6804f154b8e22973b2952a95..ddc7d3721c83f19390776afa3c7bc27d1fe68aaa 100644 GIT binary patch delta 95 zcmaFFUN}J_l92%jzS?gT22vKDE{-7;b99ey6m$p>U_J1)PAi~`FJvA2(m9ff#Y~Il wUe)b*eqCz%O8-c{MnkO=cJ=GmGL?saU^>2(_foLgS5J^xp00i_>zopr03l2wb^rhX literal 994 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz2!3-o{&8q2PU|?nl@CkAK|NlQwWE6~sz{m^% zZsqL{fj(y}3GxeOaCmkj4angv@Q5sCVBi)8VMc~ob0mO*x+Sg=CBgY=CFO}lsSM6V zsfi`2DGEuI3Te*yDXB#Y?nQ|O8JWq&3IRp=$*IM~`9<}I-^K$qI(fP{hE&|D?PcU* zP~c#e{qkR5|MY^WmkA2TAI|c8kjwS9^@rnWh5U{)PZ}bQe_N%vLt2j8c+Tb1^+9{G e<`%~jcrt7jKN@*#$ZMzB}>VcEo(xFhBigA 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 TFC+3}9cE|kU{!4CefEC<&8td2 diff --git a/assets/icons/PIN/Pin_pointer_5x3.png b/assets/icons/PIN/Pin_pointer_5x3.png index edf3d41bb59c5defdb613ef66b07de069277a524..4a4dc8a7794887a7a4971cb6541e315ade937037 100644 GIT binary patch delta 53 zcmeB>ai1We&&U7-#lAm6ffS#oi(^Q|oa7w`w=^~~GO&d)c5kttpaN3i>FVdQ&MBb@ E0E1KyDF6Tf literal 3592 zcmaJ^c|4Te+rMpvvSba(81Yn=Sx`*IHkMJg#x^Q3#$Yf@GlLl+C8cD`mNlV7Ln=kG zRSManNGLlAjU^;Y?|6Ps&+q-??Y%$ueV=o#`}_S~*LBWyKA&@6vA4Ap5tbJQ06@eF zZHD2t0^EmBkdONg_@es;0EAIQ6w2NTg#uA&6mMbx0RWhN*$%?|d{D+}$^aG_fmogF=ryT8)MaJ&NvI`G#e77mxqks*S=La{dukrE&;${5E7YhNZV|yf^2TeUpLW9^oB3W>r0J)j&sM41Z}4Q-)%~ zm$_dz`$Oh{Ga1I|CH47{8)tCjpi)fSWDCD3jJz_bve_7QZX@nM=ZMaOQyS7&=do8R z?ZGyUtf!bnGv(%#5s9gD@Oh=w4WXo95rBQkuHN>^_Qx#&_2J)mcwO4SOTEQp)RDaoh>Ta^E^=m-@Fv~rEu*_up&gW9>deN-s ziq-Y9ytr*<#yj`b8;F~38;jT@d~0{AiJW6SqL=@18J~Rau8d*v^5-x;k;x&6Q|G6t zvfDg%=e*cmeMyMlq)AW`r;Lc+QMW%j< zZfKPSO`4Q`>?z})3H?nV_|^5R)t0d2^AC^nz2^-yetK6){_5*odM86i%q=1{&%aZ? zd@nNMNnT;+u`huPAna-!KB5yQ>V54a?$ou*<{nqD@@kDT_;IYRbG$BI5qmgDTA@A% z#}VAe8xtWpBY66v_=|uG2?>^1Yb@%n>WoUcM3tb6P~=6}i@(50ckRkmLnKxkn4X9S z30MoZ+BfCB$~mg1{}PpSPeSh#ZN5HcE3B-V0Jqv<<&W-1YZf>Z7l=EJ& zI2v*DgcT__$R6TwxkyqcFhjL1QwG&ipqbzOHiPIxT=9iWF{*?_>})-pkzUE>d)QR&=Pe9TSX+ zx9>Rao?q*}ap5Ok_=FB&(;eW%%^W?+T8S5Z{ zHH9F^S!)Lrz1W-Wo#>rCai)z&^!0MVc9Xl-rM7-09Zn`h$m zyR-araJ3(+``2TmZkuPlIvR5*rZKfIHMB(_)h2a?eZ$$%ndQ9X{DE!Nb81>+n$+VG zV6Whkxib@y+4AIWNoGkyP$p?mYD6mjK-YmK2XY^5W_?C@CSzvXto|}?S#_DT+@aXI zM?$gZ2;)d7jS<)y6hN(>E*RE%S=3PUa>~U=!RHn|dr?>R&as3RiL{_JSqD<#)k5;k zkd~Bj`EONSkKZljXFkguDEUZw|EU%ED(v2xjaH^Yv)fA~$K?Cm3U=g7>u7diX5ov) zgh|Nhpwq6W*J}3KJ<3wc>4B1(`WsFT)wG=TKo}wkKijAH3||}a-VC{Ux%N&ico12u z65bP@9=?4&XYI((mW}uyb;GO$nR#0Q51!{d<2*Iz<R3gfy%dUn=9XJRt*7|z9+<|e1v7*t#9&=susfnA9FS_>hNWb3`T96Oh zF8~vOpUJF@s4T8L&%FG@d_GNrA-PXz_R3g8Zv*nmD4lmQAVWKAEWzWX%7j;7-?V-_lB*@ervfFOFkZhwUxo|Nv%FettFE;P^gNn+d2G=LD zol}od?7Dp$rGCLhC#5L4xrJQ%{lrteG%m%{{HkEz1 z^hcRR<-~}Kt$TOq5{uN=_xWhWo7rjfbip*4z2aJT|7eY$N%z}Jb0Q@Q^ReR!?xdri z8Mi|Gmg3sV+upSC>Ed)}Pqsc`_b=Q!l)oI3ea@}Ld86cBMeRqmzMi^I!DkmmBNe5O zeC8z2R6kZ{y7PRW}j-snRmo?p03w+1qEgFPn3w{TP&hf%|oJ z4~0mWL$Q0&2RpJsK(=N+DHnOGhV$iGezxLiMa$ZXU*R0sC_b=JH{K;DH+w&Fes%0Z(rBSqVNSNK z5%PWd0Bgm1J>B2!xLb`6sw2lpmhsKH!hNNA@$+Q7+gvsEJ9x#jU$x>`39=Mv8BX08 zM&Cb4nI^2X%(@tqGQQhPAL-=0JNMJCzMKBx#|JI9o2(kn>luX#vf8ITm8w-sKZ2HL zWrKykSr52{#53=&*Y<6E-TqVT>$&pH2ZVak&<~G#kB*nFVjNMS%Q>6LzusLQ?y_vP z>{hW*iH*-zQc@6+uUYVFPZ}P-k#=Q?~!VV+g+6b6F=${MBbx8B_Mqtb= z{&B}0A;G>31{DE;1P2Fe1#4?jXg&~_zP>&L3Wvbqnp}h?okeEgn3`m|%5McT0v%5y zQW-=F8MLK{^P~hakYH}G|H*5O$ zg#X6-e+ttbSyTc9L!eUvX?X71d8=%>q9RZ<0**nUIZ`MAzbDe(m%^aXeJNBBTw4nU z+HZry6Ukea1AkL&Y!FstIs-?>6RgaTV6KQ3k?4g$>7cYt%u%qz+HgG>%p9es1Ban3 zOiiFrb8VEquKsVX83i9mB9IxsxnBR}!vDzKDhLvl>)DJzBL)$?ENB!G=Oh~Xe_NC>e0E565X6qv?=e63R|OV+mP%$Mbu7e(xV|@A;f_?)$#(@ArFM*L_{*^EuaSt<44aW%vOA5U@a* zpxNW@orjl;{a(6JI069tNCFaRYk@?9C{(g1!4D4r^!{wSAWYJ#g#OSfUdYk7Z~k$b zUjzVFWb!r(JLd`C1hAKdMGPCGqWK-g#P?;P92ze5@T0P$M{^HVdKq1hJ{{w5R_D9? zVByoyVAkB+#>b87sjR8Z4o0U?_&yQk#K}A#Ko=dQ2k(=Qw?Q?u)P!@2qlURb!jrA9 zym%S`V4jOX52HOY*yMOf1~>sqkNQE8rjcKfRkq4b04Na{28&GX;YdIO&Fc2eVnDML z@W}3o2S1Pu0Dg=RV=z!G0L=cd(B}dAijoE;fxf)`MZ7>P2atZq{2-^{3&71G0q|Mpou9$XIm2ssfWSCRf{>vb5T0(V+6I7hI057V(RMD7C0DLScinK2 zD?A8>kOnE00v^YOJsxbP>@3Apf^02Tc-#9ocEmKhxHN|Dwu@?Yj z*1BG9>lh?VO^%ODdQSPVel+H7`_7ZW`U(p}+toKXxdCD8PFBC`#6&L_rHSKFK%H;V z8KB=0@E%%o(H!8*J5H%h`P41Gq#yx+dBvvQ`q}QMt$y`k-#IvA1To!#fMM8@+6|dK ziGZ+|7L2h907-Rg@rEiKKzmxj7ywj%l{$MrS<>~E)&DO2kZ5OjdzWQ@8`cGm1-nyUk~r&e)@<@CU;-Ph;aE!sE)wYu*lhn8H(gC zH>sRgQq@=ZxQ&{5MX?I-=zZ>Sec%pW$@DmGFczhCGrRya9W8bW+}KPl;4CusNpwLe zE~-(*bYssNt|tsMgJ9P;uUDHxlOxJbaed$nFnoSrUgr9nT>mbbmXJ$$YMyVGO!)ys z__Msiu9IH_Xh7)oI9zxaRM7LrC+yi9S54inVPuq>BybZLZO3?RoE+v@ptx*(4wl7x zkTWJ+be8wrW#LzTml6`pF_swQeWh8&a*--tC%(wb&{uzflkVG;D+PY9W)DA;my+?roODFJ4&$HEsifKn^4E70#2CS+ME&m<6AzKrvh zg)>2Ei4_S#2{t!3T3(M=h`}49M=kmC4x$T^MNVkr4JNqn-i8^c=N6x8FUtAATO19) zecFPU8)yr$yILfw6_BCSo+*KBEl|tvd6z-(BCL8trfF4tpCb>LroBt+_WinhdTKiI zN6=n@D*};CDEC9szS0+@3#BTgA?cR)c;2U_H`{A`gvq9R-4eP*cEB82IT9kC_*NtZ zp5mAimNHdr@8IuX(8DO+WB<4uOsfYFugtYL9z;N<2%#N{;mh_t*Bj z&r##I1#=Yz*lv&>Qq%!)j&Y!H~sgx8OAi<^4n#>>Cau}%fuh~ z%aY$%y{sVeJJsJo_FjVEG`#x$k&r-rohq*|q}GH*HRJ2D)X9X~QHde6?N&JcT@{A^{N zGWTY}Gh3hCFUc%v2+Sl7iH(ZIAMQT9Y)9&c&Th`~&t}Z-n$umut|+Y#S32d|_KV2% z9;Y1-q0$1{0{tk}GX*1BuZtRrUQauD$$H)K&tB4&ymvC8RU|DiP1257c)gHxJGeDv zLgsr__tW>w`I#>=2TMK?KYVUOG=@Iduu{*IZE<;xU>W_GU&V}`ZyU=l%q)DhlrRN3 z7kJM3+(yj-n2aZ{3RjSvSI1lvuFlapQQ&F~Lz2ArtY0%a==@JDvOPZf%}eo)^0yd-cVQ z_wori%Ttrc^^%LSYdFn8FV&1L@wdF$;-_WTHQJOd5A^PfyVA)!BpgP*w`Mur_KY`r z*xWC=Ql224F1Z#ecK8UaSpD0nay#02+Nx?VbKH5ut0rzCzUapD;{!g=sDWNgA3wAo zZZ@+ryt245f`0X<=|Y+aP4pn&+_mwBz6Qj#F@Me}zYNW+@eKP^8m@F=Fz>nK*pdK?zI9eHHo{sWbFSR1NC%2hAbR z?Qd&}doD?Y)FeEzt$g&PuafS(Fbu9UeIcP3V<#D;4s}6SdC&>--Jz}Ct!1fOwxbxd z!=evka4`-Y*?speQst79R!UKFODn1L$LZ%dacqi*1Is6^=ZxdUBa$huObYXU>CZ=I zm6M}R)~-Dv%M4z$6*gRk3%(l1sl^Uk0cD&6q9 z0H#_#F&A;ChV}JEezx2>IrG|zUtuih7%remJKiZLH~SD`VQu_U(paHKVNSNS0pdgY zAY;{XGu_waluL~lvNOj(lJ?!Q!gaM}>C05S%X~HE2YA(eK&j$n38EBX9!A+3K|MS} zp24rS&N=Co(tcRY9PeVizqsyG-{b%B=SOvy+l(64n_1ZklJe*Ml}c61KLc0hB!l?B zTMoJe$I~Bf*7k3G+r2LI?PB@%V|+bv_@`UFTjy(MA(kND)tv3*U+=Gubep%C_b8ev z#>QvM%gYML)GT^*B#ji76^eGg4Rid(nDKuwHMBLlak3M$**CvuEvB=slu@)qWj!c* z2yaqslCSPyAQtXzmUIk+vMO0sLrpdE>4!EAw{4fY)^SaR?`&4}r$V+jA*+{{Ho|q4 z_ObserD>)ZnjP7b7KEkZ0V5BxJ04^~#CqY;c&rEGd<$L=0Jshj>@hTql_eZUCaPn1 zFzR$7h0O*4Jp(!gi}S_PK<;=i0to?Ty{H3&2p$NqleU$H6$Od+CZK|;c)MV0dt9(D zPS*o$pbyfc!`T8vJPiw?6a7g3a5@6~w=SGL-!VhLpuZtBUj+C+L1CCCs^dMdFn3K)EKU^!(||!CQ1*RH4SEa?(}Y8HLH}G}wnM6iCmd~J_K!RE z3IX<}(I{{TBq%6IJxEiXO!b05b#-+i8ZZb9rp897`7=l~EM1M{ulQTR1n-Zd5-2nR znFQKV#JZCMXb3Pn*#Bffr2H#O^8e?g*k=ZzV<`}*y2egczkya(|38#S{1@#{L*xG& z@Bb<6Z_l9MA!ximIe>~|*UnRM#}x&Rq~ftOGS!|;_WOO1w%%kK+25N?0l_rYp`b%n zSR8@0V>$dc#mWk9LGq_zNjSWP2?ER(Q6~^Q;7Bc`rjaR9`S)2BNHb$2 z4GmLGq^`E^Z>|X$7eK_5Xur80|K%S2BX_4Eh!nPG6Fij=i1#p~l8K~IZDKdj&h+2rWiS41e>{oZ^Hg?oM~n|nus@7lwwCs$ z?D1C^P>lR^nmv=VFfp>H_q)5fd2lQ2GLzyiQ{d*V|Ea<2ASCPtaP|Sxo{WhCHW08d LwKgd=cDwXHDN#*w diff --git a/assets/icons/Passport/passport_bad1_46x49.png b/assets/icons/Passport/passport_bad1_46x49.png index 9b0e7c74ef20cfdf8b046d7597bd857ff786e56d..94bce9c4b12f513624b38ace6f13ae576613f69e 100644 GIT binary patch delta 247 zcmVFW6bn;| zjpB%iRm1lsRFT z&oIufRyZ*1gsHL+YHDEtQ97nXX08NG#J~d#^E0<%&j`U8LU7);#3Z*J!G6z2UuocE z_mf*;x7QEe5vq|#&NFkI}#SgC=5#5n;eI8=xRjqeh*H(WnV(3>rTeLEMM=cDI{+SZLBd@B8%m zJ^-dcM0Sb0$$m zB^snkxjdfo0*Ff#O9F;ra7m_2-OzzyJb-fy$I^^IvjWL53NI^yfX_b!3Ky7`QqVH< z!O%@5%2DJiG+nJ$sVYx-!2r$5vP?4^&2c2MAj7&F={3>~+nOFU7=pm|BinQF*rRTE zLy<}#s*M~RKbKo@?1uA|LN%jnx=*tdLpx5K*qn7372y9g7PStGbsy3N7)XT~bQqGwBT1-Na_yFw$KBo3U*admfv- zDOO1ZP>;Nz=y`+9G02y_$P3G!k8?c5;P>ZrV7swqecYu+(i#lxozTn#o`cVoS+N(P zkT9WP2&maIXK|z;h=7!3QzRub0WBseaJ+@mZ{W=v%Ga1vq(N!;O*RT(B}+_z1gW#o zB3W7B$)o`wsY{HQv_#1ic!r=6MLM3G8z!l#LgN`97Zw9u7FG+oXrBVKIM1~0I)IjL zX?{~NJv%##jt`&v@^K`-&T3u7+P7a#Z(MnvS+?Z!v6=oex#GtcZl8pQavRh;cARaU zI(x2X_xm5cz2&LHJxiv3;wNsK`n$zCjlKNnsh?L{|F%AHdF15UBQLg3UwCc0Z~yVj zTVH5fdGFdc@49;W%E8gFzW2Lw{-4pAPuIWm#)+-_Z|NWZ{`cYu?ckx^cXx~(*?aW$ zefPch;k7-|^$kCSoV@DCcVB((@YBcAOW#uW?F3WnX72oL_>r0=_Zu{cW z(N{Wt`KI)TYi_&#m^FIfOn>Fp&Nbr~N7jv>zjkrgRrRk`+p*18S}Gm&PbN`EWmaglF^BK2t#IX}M(I28@8iGL$u{PwsiCUWC#Tm=i) zmBQD~c}KMK=YXKSPI!4jm?;rn*KH_FH^-UI*X81v&d2Q_v66HCsRB|zKrfaY(2bTm z*v#KK4`ZNF5;&+?ek}{$r{>Oz($xOTeGoH-K{~M&=%uAVHTWB0r7@oLNYcQw}#-;%?Odn!uXXn1NGwwDdducXilkH|T3sRc7oXHN^otex` zx|<+gYM{iXSQ}A_6)Dn|`cV5&MN!i>u~u!cO@*R~lwP10iV7+ejJTf3W@8^h2WHMW z|M|cF|Nh&Ir@FV))vm8a5Tq{A5lzF@4_|7n4}SOE9DEKg4Q?#!_L`bolx%>ssiq9j zL_rz=X&|X1L*IcAg80VtOxDdNyF|q-_$5!rUn*D-jUb`ck|imFz(r*+pc`TA_b*Oj zsIG>wJ}yZntq92J9iukr9qrC2ql1c|Vy&CeP)URa3c!`nQXy|RVkwL**%jg56B8J^ zq~Z>Su?nedGKEG=8=$oDEeAQQ#=HZn?T? zpq@oZHiz9X2B}tJC|JqliebZ9&J@fUQIafz@{>fN;03m%?YL?1KaEwjoy>>@h%|7_ zVOxO((Kb}UFnRZPXBk1k zC6459PE|OC=Y#+$D^)wI;Tb*{V50$=4Ymg|S27e( z^{qqS%UJ5ZSTSM)$u;eaY38eKkjj~^>Euicr5QhoKAn^l-S8wWUX?0AM}e*H0BYPe z3+PgsMST?t0TswH3yUq#8jZ6or{IF1ayYLBfJO#cn$ckR6});+`YL@2B`^%D%0^Tu zUgH8v0GBAB;grBKcu-aVF7YH6)Hq&c84@EPMZ)WxdpfBqg6-*TR|W$fRz?dLaGq>9 zIQw7fc?AyLnp9UNRxX#}_W9`_Uq+CcM-$PuOlkhaJ9G8Z=p&KIa#;^Qu&uV`_(MOx z-gw!?$2OjN()aN#!o((qUVBD;Fx$UpYHfd0XU)a0!nfaYgx#G7 z)b_;)1npxGd;x-QKtzwM2yiuDLTCB3Ifeb%cw~em-m0q$*4%5)Z0`l~9VHCNdJ?as zaM)k@q?Dym1{_WNc~**;-FYfTv^qr~^~;}k4Y7ohvzZs3YCWT8scb;oGWv6OAsRUa q!cqn7 literal 1304 zcmaJ>YfKzf6rOfXRcytG#ws-q!wyIYd^)Aa|e~?ZxbMHO( zobP<+HBWaY+c(tQQG+1JhWO@43a(!GQrCIlclUh%18}+Bjb_{~Gw0?d8z3RolmQyo zr5=z1l3E=68Uzr;Gp?mGZYI$oDyHt0$~xYHZb54V3A7e0N$CeJDuW))2x5z~pJ1q_ z2C;4~K_;v)=+!ol*r019nN~*n6+y*X??VFx5d!GImC%AdU^rqSh%MoYa93L+BC!H&ILn!WIU@>^MNnRn(Dia)OWKZ`0{_!kRoh7yEkLAzV-DF0 zEJ&`gY7CQibw_1I$VPn7)?ihnfrzOL>A-N~kstYg#DHcuBM=At{3xdkwyy^ov($CUN4u)T`SFcE4rB9&*hGA9N zhziB$IG^IfB?{zlN?;k>FDn3-c#`wyI9_EL5+fi*qTD%GbW&9W+q1k~84P$>87*MI zd9vZ)@P{U!fJ3*gvm+fXl}d2?(A=r*2(o5lJQ7M5zJ2AT_}b6V^`7a{=!f+aKwW#{ zK#*+ubL{$0C$8n$k^m}!+ z4aqGxKUFwYO9kHiYvbahk39Cg+BCCo%lQ|M%n6$g@0tAQ^Oob^{JwL>IUGgu*GwPc zUM;p;E48 fV|H=hUc`f(xyf_n$$93k^1mt`O-5$gvSa@Nx4y<4 diff --git a/assets/icons/Passport/passport_bottom_128x18.png b/assets/icons/Passport/passport_bottom_128x18.png index 691ed8b4ad994daeacf0ac0d3966affc2a30fce7..26d2fb53b43358d58c83646e2888d3f02b1df31d 100644 GIT binary patch delta 161 zcmey%v5|3tL_H$|5bS>aS`SE7c)B=-RLn`f@#jAn*e5hFSgL6-t9@wXJl4dh#$3Y4 zTEfU!(#ZdUsb0avXF0>+w*MLr0S{`0;;6z*EV8n+$4FT*MO6k{q^9Z}ohj zaHq}w|EvFh5)3Su#ee*~|L=MIvOnHE1_zElIC1oVRKWqctEmh>nEfvt<~Bb9a*U^| KpUXO@geCy!rbrwB literal 1149 zcmaJ=PiP!f7@ss!N@y;g+S0;f0-}&N^XA{q&X6@GJG*wFo2Hu;bLgRO-n>bs$^3EV z#oYu=q822Iw1@U0cqr|mrO-d8f<4r>f)olZ6-4Vnu@y0*f*$mg_$Hf;J%kL*eD8hp z{l4$_{aYCyd%eH!K%XE8{k6kRgUe<9zPP8Ce=m-`bc2iitTM?aVxP5eN`(EK}^Fc zAeVIgY=<`;O|5DLMK6wyC`zSV)Qzg6jhJOat5&M&Xct?HGKM2UyRicvdlQRx#M(IG*i}!T5B{;%qujfT~Fdyj;g5h;q#in2(&EEfTmZVJ}T;}=JWJBc<;ILb>@_7cp6EUjZGBOHwvTxu|j>QSh@y_ zE};;c$SC@T>FF90WlmAfC+E3I>Zq(geE3FhJnq|(XlSfcVr@ksgvnoLWR=9nafq6;9@F|Qyqq88h>QH@xD&G^V0lg_ibB} zu-ca-EbAqNPv$Jtrb=L3i>7M(Mxgs8*na;b^WpkS2{!#jAFLiWKLan-Cj7lhr3+7c zgw*mQ;NL!s)%9`h^6qgw6Z(8K2&7i%0s*ITX(5W#k}Y3t#6m;N)Q94B?ke)g+mM^7 gU%ivlT9RJ@Zxe-7iPO*tq5uE@07*qoM6N<$g1}^m6#xJL literal 1296 zcmaJ>TWl0n7@o3$UJ?Q+4_XB?PI-XR*}2c`OuAyb(`{GTw%Km&hNQ*0oN34HT$q{C zZ6Q8TQ^1fkv059z0vhqf*nm-M)D$&qFfnR0)`Utz;zQ8{1>vC}F{@a{rYiZhC@mK|dAe$4-atf|t_)=vd_NP9j)I2c94*x7`zGVrY;#IP&rQ3aTU-4&N8Bg zD;&w;oUU=2z==GmYDGKi;W=L91*U;!BMtQw)fkJgTwG@Ag&4=g8{>3C5u336K(RGY z^ld`lt61uxSSjWKC2+j7N!wabnwk_vyvVjgzCV{_?}o(;wDa zlZQTir*r$psSP*X>iJU_zweoT?c<+zz4>qD^{bTQRNT6@=jPUuIiq#zcnzPbyfb_} z^yS~u`T4HJ#L}Z@k9CM!4t7@kzWec+*{)k3{Bxl^^KCm@_f>x6*Zd!Ul}`R#``rot zvzGCA$KfNUf4ckRm5J`Wxnu5j^X!u&$>B$uL_t(|oHfC%PQy?DhT->ooInGFb!vqy zSuddy#hMx{cQ6RSp|L%I`yiV`AqfUjhukCvXo8u7F8p<5>p}56H~`DPRs)Em6$hfX ztO1jI3o>^34bnXSXu*cR`AQreKRz3$bY}1O{h^|#)22woEPv~R8El`dw<9q zA!Qkxz3e46SXS>|<;DJkH^^Lf8zH(ZEaHGVK!j8wN&{D>2qB0a2002ovPDHLkV1jPHeft0a literal 1328 zcmaJ>Yitx%6rNHagjluO2sA~8L5mM&=dm-pJCklnyW7Xw?z-8ow1|+-+_|%zwDWLg z*4=JQ4T2E_{h_2)G0`ZMkTi{u5Qw0Lw#J|dQHh8c!L(6Iq@h|9+oV|Uw%y7P!Xz{I z-gD1)&Uaq3Cmw4kSy8?M!?2P_V>p3U4|IFeIR98utqxMUo{T%Nuc)W*Lg+D25|xTJ#Dc$Ki_)f!x`O zDkj49i_Xv~NOZWaB~nx-lksG{9@9=yj35XU%~C8&A`Q~%He4x78qWHHg)nr0ty!*S z8hGBKB%5hBNFb^UG3Zt_x@6dJ7Bhu%Mr9?7VmvgZ>-oUuwH-GB|EFWHw{0D zm3rIM@%c21+AS#f6e!CaDz?C?EXi>^AO%6;Nx$NQDjnchuZqH7z$-VUZ=p|-1chN0 z*oc7ftGo~RNQr?e$q1a649EbIlAq=SD(_b~FHKO0B9-r)n>wi=LhYH~E)51cER7a4 z&^*~_aK^uDI){etu6T2@Zfd*YjtfxXp%eGRQg&lXYD z>C^k^p0%q=)2sVF6f4_;?|fQ5nD}e+WMi(s`rs$KPR)#LId=cV_R~+^*cMxxJJdgV zw0&8_+g)6A`PQ$~Hy$Y)&plLe;h6CKop*03e)#I^J9|&;h*gA2hyRHmn118qjZ-DT zYs5z{4S%Iqzp~Og+&k7g_(c1f%Bs?t%uxEZ{r1o=vmcyD_N6DLe{8kRrvkelywvq; z`Q^g{dk0@NX5Y;``_suk`^t}iYXe6{)aRPFZu@fLk9C(o@0F3?Ce_;EL2>Mdvm3V0 z_HUjky{>&ex-K?+CR4f6soHSh^7(%sEv3pv->1q>-LVRrpo*u*!||g0KP*xg3lG+| Gzx*E~RoOxS diff --git a/assets/icons/Passport/passport_happy3_46x49.png b/assets/icons/Passport/passport_happy3_46x49.png index 7aef17674336e71cb1cdf323c1fb039e0e627d33..9f5e84571935a11b12322910fe6fa07be325b876 100644 GIT binary patch delta 315 zcmV-B0mS~q3d#bI7=Hl(0001uLZ;LJ009w6L_t(|oHfC*E(37@$MNs~=dW&P^csUk zDo$cBX$ONvde{uo!~=Bj0yYcDCEmaTpo@3}oByVpN(`O!Ch5c_5>B1_n|wYb0G5B9 z5&&l$U|MAx(6|@?v-dxnpbEuJ4O=B&SnaYne*b)oX}QB`=YQJb_sgWNc7JCkf`f7I zWD;ud#3&E7mXW2A^y*?4TLr&~yyCqFZx9#FQph}0SVWgRKpc~W$OTCnqX^s`3R$^) z!v^g3kGw36w3l(_y~zW%y)Rj3`Qys_i8iJ~Kuwdtt*XHHP?ap`*CI||zOpT()Xq;3 zU=oBAAb>WO1T;V%lYpf>r-4d{K?OurG%8#GHiNpbah}dCVNHm^{sE^QUa`!CW%vL9 N002ovPDHLkV1g+ejYj|g literal 1348 zcmaJ>eQXnD7{7&~lejEf6dZ`TCJQE*5i}V=Gtg{i3Pxj)$VR4uj%5Br(2>QcxJ9tO-PXw;3zyuz@B6&Z z?|FXD*S*$I_h|8o)hiGLDGt_15x6?wOBF4H-?y&BYT;6D`y1`erf#QY3m{(2Q~(-` z%S|8xWUYP2H^7Y`%eswdqum$|iK-cQ$T=NHCZ2?71aWW5BxN-QY*YbFM#6(l4~<}` zp?R>UxG)(``arW$(_w+l9d%K)Bc=)(wrL~k&WO-J9N03NiMJ$DV#b5b*%jeFCnhj- zPQ{LSuz6CA;Re)aS^(u86t0paiSmL&lNDK2lnp3N(iB0m1jXVcDKdh{vgpEtL3fs> zixDZX;0&HTShH;>MS@7D(~dObFs&wn5(I%DX@aJ4sDY>26Skbe6RGui3ld1FmXWj# zGlAwT%8J=)doW0KK8AQQ99}e>NG)Uv=8VY5NrG~aL_D4gY)(66N5KCymefu~+mnEZ zfRx#4sjwjW`aBpW@Ai&zija+1ZyB&Ea*JfDt#OdBgOUe>HxA9vM4bc*$0-`F0Gh{H zMo@8?BRQPYR8HkN!AUA=-p*2ZUSj9~!%3{G+DlP>pNr)J66584924*d=;}N+m`K@j zLIru>2K2pv_1zXL`Ya&ZrWG~KmV6sDG@G`WYBrN7%{WN(p|GqPiJYV|SEc!&C14qC zKnqxA9Gy$EXe>d&sR2b{VX*~Tr*W3$R9p}=4(Bx|&`B3dGdc`^9{kf_iiuqr*cMf-r|D(OMvukwvy8`o1`tw&u9$(pU5#95~ z%oTI>8uxp$)MLN!$|u8Ts>&uiuO7ZWBpiL98lP5}6NArIJQJ=spqB+Br+<8N>Vw_S z_Y<{yCf_|@e7Vx~+0Lm4rC5)>;nUic6RxqR?aGg??}}}We<5Oh`o+G7&-IS&?LRe} z-r_uRFyy2dJyS4Wz?o~hpirfB!b{SC`cogKU3Sa;{l$NW9Rh4&#f XzZTxR@26EIx&KWzkJ*w`UYko(>z`MT-G@yGywo~d>y3# literal 1083 zcmaJ=&1=*^6c5`{YN6oOp2ifxLMNGgZ8ouMX*aueq1!Io75CW5WYP_7K1`cmkDlB-hOF=!v8?;5Sw{!P^&I!WElc3#UoyM|F z;!wi5jnoel?#*H5`w1qSlmVA+1W{T1{r;l}0S( zRfXIFW;+qXeHdlaLj;FrBn=W4#1Y65u^Vr*vdF0patM<~;}kf`PAbJ~Ciih7D-x2! zFi-5*I%6&RpT@b?S$ij;a*Jm1c1n0d{OO@HFW$w0azoC>UQGku6};udWILo0t2x;Ccg- zAj&l}d6x!BJ2VaMQLmQ9Avi9x9h^g<=uy|zd9y9mSD~&O1X`A7K+`KyAC+`f^LhFM zfA38B26M_aJdI??#wLpC8%0utSfM^tEM0>omr#gJWR!fv^mGl0GN&l#lXGU0hAKXu z`SEly_~mr9XvFs^<%{$7>7N>3y0PYRyLxnV#E-W>AKvHUM%`Ix_rJUA>+7Qha3B=G z*#5}1pIh%HM!$?7eiFVeO?Ba3Qh5II^{a>9E6OE1hsPo!EeRnwOFFl30@Rw>*txpS!QO5&vC?H tXo#%p4vNeYnxk=GJ<=^W&dg%`^A}x^N0{}HxG4Yt002ovPDHLkV1oZ0ZxjFk literal 1244 zcmaJ=eTWog7$3Ti4$=CfgtU@jq%>&0XLfeRTaUY)U2p03Ze3ShNk+zwl zw#s=f@2Am_-8~kdO=GMcw%0W5z(ElpYfi-twOWdr^Q+-=tY#^4&LkR6 zQFT(~e1S}R0U{NKry<92q@pq=FaR`+XGwt*c$Sk`UZOcp6ID%;$oYrD;R4grih6cF z7`~;bp(ye-maSH+OjTsOV36fiRb@GW6$Bbv(BY^Xfg0_Gs~aA46vDvvBinPy*ds8! zktjuBs`VTkKc8Q4?1uA|!Zl-Sz-M`eV;v_>Y|c82is*kDi&}@JQ6I5I6nY~8#0{}l zH^8`f_YV{sVm4Y|VB@ZUitfP?2f0yBPf_>}W7?)>ambKm!=w!)D6}N1kOnd*)3OO= zsK{!9GhoBdVt7$WCL}%4DJ8p-JfBG?B{{2$ol063vze^W)xhT5Faj<_jo3DhJ&#rI zi`CKr0+AP#Jg?FigTjy(dEt=flY+=_%f@tCN>v;2?^3~@QYj7HVgN+7x#gY>+K?5FH zG_Oh`oire#fx^j2OIA!tf8DB<9c!Bp4m?~u^x&a`cYi-{^R3IP zPPoVV65n0W$8J3}03V&W+H_+b^T@7We|i6jJKg_Srwr=$%B4R#Km9N*^^dcUU%vR^ zl{b6-?3!s#7Ux3KipP+Z}O#J;?kG)wF^K0UD(|>{@Sg# zvv-qQaz}42@A+oi2is>}bl*L5YU5{r{g!N<{OIYUyU+hS-T%N+VrsOhvhSTWpW-}; MT&7n)()IlKe@XVQIsgCw diff --git a/assets/icons/Passport/passport_okay2_46x49.png b/assets/icons/Passport/passport_okay2_46x49.png index 34fd3767b92bc334f15e4e13811020c1e0211078..62f39ba215041204f4f18486e1678594b99bc6ef 100644 GIT binary patch delta 276 zcmV+v0qg#O3Znv$7=Hl(0001uLZ;LJ008PqL_t(|oITJnN+e+vMd7cWHFkl5o!OD8 z7zpJ8#1S_zp`lAKG!YGrq?cgk7L2sT#7x{lnN6THg27*o({F-eyvdEu;c}fr?K{;1 zY*aHf2iqq?wflaFIL#hE{^a63EPttHVHHO~L6~&3p&cW@B!3)rFFytHstG(#)$Z@M zo)uRJ!BS}v%Sn>Ju|b!$AI_xF_Bf%LXla*cr*-bhB^i-nOO{f a{sRtCRp;F#91Y6=0000eP|nH7{9gXN~Cj8-Povj-o(x6YJvi`=jjO?tS0q zeSXjLd%kXOXGd$jZ>*tz1;sM_Qd!4eFl>lMknpC0Ehz)QLuJsfn-T2l$x|4r zs}byJHc2M!D9Gwv^_75cz!GpAYygr=OsBo+n6}plKXx;O?;LNd??=*HtZuz*QXG_H@fc z%N8Zs8uB6-q*{r=u#?F}!=}5CDVQ^&AlU@vCkewS2R5(mdMWTfjU~0+^so(x6mYE} zM}Y;=)>XkUd3SbHR)lPXryLztMaqemGGqYLONbE+-uP8r6*LmaEGw(H3}_B#0=$At zEXm@ms;~;j@5raV{)DohoSTw}2aWT-$McF_+7N=XP*o5hNlBs~I zZyowxz_NG53Q-40p5>%1D_3oU&aCBGZq~9;ARjzSX5S z@A;>FOUxLP5U06J+c1lS4&rqjjy=>tKRJ^ds_R>{c8{$}HYhrX*>`{7SxW0ObGYd=rz{>|;) zcDd&GWRr6A;8aunL+7upZ+znLY-x|L5bAlUr}giN1Mc~myY_rmr*V6W_KxGvY}@kA zrz^ML*p=RQVps7>VtDoM@An>K4i85A-!0{Cta)91@|#yO%V&g!>02KZH?Da5R9nNw zM=qSXxay1X?wu!p9KG=E>G9bk|C)onm&TrzuNNN}x&Gpx4SmR=iQ4_OTeDx5e@cm1 KhdAESxAQ++sKGP< diff --git a/assets/icons/Passport/passport_okay3_46x49.png b/assets/icons/Passport/passport_okay3_46x49.png index e65da5b0e586ab706b40263b637f0fd3647ac5d6..d81f788193f2c0b4f86fa346a7c4d5da35aa9f65 100644 GIT binary patch delta 296 zcmV+@0oVSR3bz7~7=Hl(0001uLZ;LJ0090;L_t(|oITK?Zc||x0MPS)w;MMZ3D>O& zf)WG*K{K@p(mulEF%C2fVSkKa;Ib9S<2vwlDmI3(HitKn?dqbL59Fs?23cK=P)%O< zIUAH8C)Dw%U!;AzzjKpa4C!?-{$s5Re6b8ROB}sA%ba;RpJdMLW@dhfU&v{!tQsQ~ ulYB=f^IK78=OHGjX@d9E>||!=-{)W7TVQ>E(4eRQ0000R)5DzSs8Z{wND1@AE!+ ze$VrJzFzO@Y;Rc8yaqv#hGarc!;^q7T~`agZ(r^0fX6yNmi0H=hF?@%fVAqi3eaRh z=>ch==!5+eAcP>bFPoXHpG|F&G`m136&s>da3C5%LXncAXuZHkRnTKvVQhN*IEI>f z7~9IHsFV{0c{5RV!RB&jMl1JfqK-v2qM?!m9Tb4Cprt~eP5w%}KSaz#yI=z@vg z8^#t%Wm8>f)OGRp)0DQsp_LBLoqZ-aU{**6eY2u#Bu1-gTZjFZb)f4 zz7!1J!dTw-9f>51#UfE;3ES-;YGU z4KZ4(U|7662dWrCHqsNW3A>{7$+k970G6MW!x;QS=%y|i6i|6y)o~Rt0?x6bhATY9 zCt(kQeA6&js6BX*w1Sa(rB7TZJgk#$$1&t%^-rp08LMsKz#7 z>?JIBN30Zef#Tb4#lx?BI(#Kl}VE zr>*Xj7oPuOCYk$s)Y#tsK*%~np8RyS?!L1%zI<}}!MWYx!_m5O^Oebw6XCJ(_ObK- zTzE2ZDn{m<55rd*dxnMr?}ze}_QjcOWc_;&d9i~N9qGpsZ_J!4w`@NTS~`yv?;ke? zhv>V?2d>v2-`~IQ&nd6F)duN|MblK>4PVZ`*vyPb!yT5yrS%35K zA7@kco=YdXx2-A%Zb=_}`+d*RzhdRBuUsVFjp#>D|NZ4t)}y$rkd*-G80G55pQ2+n{ diff --git a/assets/icons/Power/BatteryBody_52x28.png b/assets/icons/Power/BatteryBody_52x28.png index 1fe56834610cb41c959a49f8fc0984829f8e20e0..7f32403daaea3c281024f52ef93af07c6e147283 100644 GIT binary patch delta 145 zcmX@kw3cy#N_~l^i(^Q|oa7(H4UHi1kpDjj*e4`zN!_z>;*a?c&;J4m)E_vq1Ek_1 zLvS&Z%iIO_E-|vL`x{i_r>mdKI;Vst02v!cLI3~& literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^CO|C12qYNT{w$OQQY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fItZejeiaPg*{{Si_^q49 z(b-ZJ2{c-@#5JNMC9x#cD!C{XNHG{07#Zps80#8Zgcw*@85>y{8)_RESQ!{B-o0}o eiiX_$l+3hB+!`)DW7Gv|VDNPHb6Mw<&;$UHx?2bU diff --git a/assets/icons/Power/Battery_16x16.png b/assets/icons/Power/Battery_16x16.png index 49af3c2259a086ca262876e062c1ef2cdc99c285..d59b884faa087d83563f04ad66b7d881f9b90555 100644 GIT binary patch delta 73 zcmbQqls-YlSTU^Kh1fH&bF6*2UngCMiBI^JE literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4qb@eTvkfNuHV+hCfRdP`(kYX@0Ff!CNFxEA+2r;m*GB&g_G0`?Kure?Z hC{)ow(U6;;l9^VCTSKDGoC!b;44$rjF6*2UngG10Ol|-G diff --git a/assets/icons/Power/FaceCharging_29x14.png b/assets/icons/Power/FaceCharging_29x14.png index 106ededbf9d37edd55bf106e4beb8be91b163950..7ee7f74148753520c754152920b62456d8ec0d4d 100644 GIT binary patch delta 91 zcmV-h0Hpu40(p=mRX|BZK~#90UCAL5fFKk_(fi*Jj8>b=AhK;6+n~|hf-pGG?x`nU xaWU+yi3_*aqsBS~@Q;lk3?tDw#NH86`2b3d8u9$)q;&uQ002ovPDHLkV1iQpD31UD literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^vOvto2qYMOuhNNn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9f$?sa@Dd=8 zy~NYkmHjER5QmD8^?DX&ppcEHi(?4K_2eJF|NrM}oB#iRv_Z|k|LdC`{`_xmFTwZc zzapdJ1(kdM|Nm}&`2YWZhe!Wv6+YJ4Pxuk=pP6A|jKLX&Vi_Z#IjSYD5hW>!C8<`) zMX5lF!N|bKP}jg%*U%!wz{1Md*vi;a+rYrez@UEGoD(P-a`RI%(<*Um;5)5S0@T3Z M>FVdQ&MBb@0ME-_z5oCK diff --git a/assets/icons/Power/FaceConfused_29x14.png b/assets/icons/Power/FaceConfused_29x14.png index dcd2e3c6736144ddc292178f4d7fae7fcc962f30..0f07c872519991637204f3fd5c1737d894470fef 100644 GIT binary patch delta 103 zcmV-t0GR*10)zpOBw$NPL_t(|oCU!#4nQyfhS9G-5nJsRqg%R{sl7o*lMuTwDT%i4 zk#cG|rvK7M8nuvvA~-eA?#yaKUstD}O@>zh!gmN45q3k|0|i_h8chKvd({8{002ov JPDHLkV1j7SC!_!X literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^vOvto2qYMOuhNNn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9f$?sa@Dd=8 zy~NYkmHjER5QmDqt6arCppdJli(?4K_2eJl|I4!3*zvvWJ#Sn4_SZTR|Nj5~&+H}hfL)09jl-hRdP`(kYX@0Ff!CNFxEA+2r;m*GB&X?G|)CMure_4`hHX%MMG|WN@iLm WZVlF}Y8L}FFnGH9xvXNn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9f$?sa@Dd=8 zy~NYkmHjER5QmC(%Bmi2ppcoTi(?4K_2eJ_|NrN2v;SZ3)G7bJ{!c>2pa1R63xEE% z=VRNT(^8SZuX64@yAbamgGKx0mADzU|I)V!JIr|=Xo6~qYeY#(Vo9o1a#1RfVlXl= zGSoFN)-|*UF|e>QHnB1>&^9ozGB98gKV6NYAvZrIGp!Q0hGMVc<3J4zp00i_>zopr E04(EH4gdfE diff --git a/assets/icons/Power/FaceNormal_29x14.png b/assets/icons/Power/FaceNormal_29x14.png index 52d78c08698f3cb1c70d1b39d44f950664c1b6c6..84e5d031f388d5a7dfefd7241803530dee653859 100644 GIT binary patch delta 85 zcmV-b0IL6|0&|cgPdZ6NK~#90P06th01y}j;qzBYrFl#)EMf#DiFgVM%@yA{!K7+O rE9_tkngQG-EI7e@)-&J5XVB0%hsF^_?7y|R00000NkvXXu0mjfcOoIt literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^vOvto2qYMOuhNNn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9f$?sa@Dd=8 zy~NYkmHjER5QhrG39(Xdppd?&i(?4K_2eJ_|NrN2JN*B@r@@wg{}&&;@Z&!}yAb0v z2JJ?H_um%_+<)D8r2oG?!(RbCK3(x2*+8wTC9V-ADTyViR>?)FK#IZ0z{pV7z*yJN yBE-PL%GlJ(#8lhBz{nC}Q!>*kacelY!8{JAfx*+&&t;ucLK6VES60IS diff --git a/assets/icons/Power/Health_16x16.png b/assets/icons/Power/Health_16x16.png index af343c520587f373d41b35cdf8c9b50345fc0286..8ef39f64a7793bafaa23c9e71e173cce52cbf93e 100644 GIT binary patch delta 72 zcmbQmlr}-dN!QcGF{EOS>8Xvp2NW2X4b)$qJO6fR%mr=%pNg_=LG!+vc3FNhcE1+A c>*>5AhL;T-&yTLzopr084)!fdBvi literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4$;h+E8 zGgR!7ntpGea5+%5YKdz^NlIc#s#S7PDv)9@GB7gKH89pSvbP0l+XkK`j{LS literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4jS1oakC`m~yNwrEYN(E93Mg~TPx(3F&h87_P7FNcFRz_yp1_o9J j29Aw3O(+_2^HVa@DsgKtxYJ?>)WG2B>gTe~DWM4fXX{Nq diff --git a/assets/icons/Power/Unplug_bg_bottom_128x10.png b/assets/icons/Power/Unplug_bg_bottom_128x10.png index 35d73ba76ea10724f02119ac7c7413c6ec7d6d3f..18fd7bf9c2b884b5cece2fdd12bf829295cddf30 100644 GIT binary patch delta 96 zcmaE@Su{Z+ije^bLh`b204YmP7srr_ImsCb4valMJQ)nJ4vi-nLmfC{TbU0ti`W@k wPiE+9P+>pJAENuoCuao{C(nQW1v5U%GekaSTPbJim<=+_)78&qol`;+0BEZnT>t<8 literal 5355 zcmeHKc~lcu7mtVn0nv(}RVp#iD%HuJkPL)HK#3X%i!3VWWHJdMD@ib66O0>+h>BVf z5L8qU3M!y1qV_|<6^pyLp;8wV#08humTwYV@U-WA$8)~^XU>`A&0T))-ru|LzPxmv z|I88C@mLH7GlJvi6NLVzq7T-5IQpGr8ybhfn06`%;K>r=54XZr4WH9YZMGWU71>&*+nu8nyi+sUR&&B)^ZK2foU zl6Q8~thtiLn$A_nJ;I`} z6rSL5JlW&$!{6Ezg=5$@C-4ZdEA7Y6jVY};u;)@t*jLW70nUr7fkoaT5v}ilQ&ys$cxLF?%V?j5acfjUzR8I#-?9BFqD2uUK~HMH}aa z&99gC(eoqi`-*Q54yBg#TV2Zy~7HOOFCHJ$J4j0n>oZPsMw@% zZ}zUcu)oxaQKQgHI>=yZy{XBpQA2X?=7gSb}8IQc5cey&_v)JU#y$&qVI^e)$J70JDHvIKu$J~8(09GFep1%gW z(w$nK72ZiM+&z7JetFw7*A8upxiUNZfs0u<@K_iVFVNB{!jyV4_}I=K99i+SuXbW=5f5eKQunH-Q_2*WBWCE+8n5( zEHjNMDDk)R@wKnP`j(7}SrPi(9KxUaA4YI8GIw;$Q})99x;pNbmn|#9nJ-CYf-L8H zzx4juSb*=w>}hF8%x=)8@`%*4UE|DXHyOd{wVO{?WJFe)Lzv{WNmHn&H|G>PCAC~( znO3RZi{Suldn5dY&qIP75VHRW07`3ZLM50QwIuHerAsPs$lS$=jP{+m_aY1x!5EJn@ zqlres#)orxIB$gt!O;jb0txWdi5FAw?pU0gN+1M-d}h3dK;PK-XpKe*5{X)^mY}5) z6eTw_9 zlPS5}kMMH!dlpbWh&o6~BojzPnT$BtL#^>$jDoxm=pQ}QA?SHd3_{e3I2DZeE=J@U z$H5Q+_@lovP9-&_BY=sB6p^8(YIIieXH(APaCsj+3>1jOGNsWACHpf=jac}Jtj}UI zXpHF$4g_`oi2IrKhun?Es1=tB`Y7NyLwFn?Hr_BlC{Vy+0cadTLOzv2MQ8xTr|7BUfu6IgA*fP;i16#X$rV7G1~?0tku$(3nCxz#<9A z0H4I5@kw-s3xx~~f(THF(W-=`gQGG)2~a2si%O@!LIwaagj9egAn^efnMDC$ghh3M zUcy?7ipo-a(*#!a^OcEWS@gWAl=aXT8BA^R}Ofn1$Tn4J? zBf454)Mz0U;w3_PM7cuC)5sNWigBTwKaWKljTlw|B@7@jfxi<*e4jAU&@(<{>_+?> zCvHZAK}`nr8<3&R3+;u(kInEsXK1|t=I8xd{F_tYa9=0+B7VQp^_8wKV&IF6zgE{* zy1s~kFEajGUH><_u%E6|h#dVFq(v`F?Ryu+q8F{<{Mj>oj8`tqTknPxbY!9Qi%?@Q zmNtfG2xd$EI8x<`S?WZWr_iqttv6Yg$&cd4(I zGg~J*H#IwP$FfzI1I&{q>hC?}>v?~e;f5-yLH|iSALd>;oc*e{=<= G^#294V-(;3 diff --git a/assets/icons/Power/Unplug_bg_top_128x14.png b/assets/icons/Power/Unplug_bg_top_128x14.png index bafa2c4947082eff8f59d48d119e9ca01ece9729..e9b69710465d196cc82bd6b941a39741b7e7bbd9 100644 GIT binary patch delta 140 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 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Vure^!HUN?acl*3zP&DM`r(~v8;?}U{@}~zt4Gf;HelF{r5}E)Ni&owM diff --git a/assets/icons/RFID/RFIDBigChip_37x36.png b/assets/icons/RFID/RFIDBigChip_37x36.png index a60d51d585e712dc76aa850a394b5bdf16244786..3f927a35e3476e27e5017dfbd23c477a95519e45 100644 GIT binary patch delta 204 zcmV;-05ku@65Iih7=Hl(0000cxy}m!005&&L_t(|oNbLEZURvl2Iv3wB^VB{4#NSk z+yK`tX*oed2;m%@fFLl{5JHMT_X_0(m94@;mVF2O& z@_zmXuXS!JDGDL9xtAZjGKgXXDFVLKvi-+BK5hS`2qQ9IN}OY3W0eCuW(B%5R<3MN$I7>$yOC^N9xy@Ayv8+R8$v=!7D zKrM_`YN@tptF6{zt&We;sT8Sbk&4nnwd1QktB#_gQ>Qx8yCgx|sg8e|na$qa{qFhB zcfND)Ep|+q*fa92NR39*)0SkN4(~(ZH6)@F{4dzR-_>Zs^n%6WNZ>^mK&DTefQ%qb zCgVtrX2hzp(yB={jy{D|{SpsvoDp&Hf`9llho`A}rET_dWac)@>PnlXtZ~Shw6^<$ z`=4d@?R(T^O39L?7kfVpU!L5xFrs?v{dEUhFZqq*iBa><3eh0?hgrMVl_=))<5kp= z9vbD)nBB80WAcr~F;8MHT9vt?Fu_0=`s4ZoOou>RJ~ zE@4GwYthjWcvDkFBq!cWI}=@b=x*owk`MC?fD?G(~SG?0yT#5|Z*HkeoNg$>q)EOguV%91@qyKmadLSR~i$@ySfC z8Ewa9;8=Z)qey#*GS`d-+BwtiKrEsJ5L!!M96?Zs!K5W=osK5PAQV9nIHAW$3L|NT z&@rR|3I0%+P2%0mbnDx}T=2<^W+{rF!SS4&9BodlR+KVvXcZGqP&h?lFanbo_!Kr5 z^T{zG1S^m^N$@Lz=tERQ)+J^uW)w0Fl;HJu!20B%Oi(a9m-XYMmQYIy1={T|4)uCF zqGcs~kt(C$1Yl(qU`Aor zNQ|H{O6Q~~Mn^EDaWqLV1Q7_eLm%+0!oFOv$P4ZTFB59FGd7>Bus#mhtY#FF(h364 z#L{jTWzZ8CsW<2_p4PcAmgNnY-r#24Jmrq1IbAz1INvIA*{Txi{D5tFk%Jf=YBC1k zHkn)mftmCifzd`?EXLBD3!_~ok~Zi}v>vb_w5gH+R}SlW7FA`%LqtIFtV?I$Fdav@ zFp7gXMx%+vj4n6n*1L>sY^)nap60cP9#OK3JXAOK+4nZMElQ$W@W2m&_4IUmL=m22 z+@j=Vq0a;_n+b5gFH?0rWC5#95@guo1;KTc4CVz#9sy}LC&O~;nlPiBY6ifg!Pmln zsQhyE1YmQr00e!3NdjTA=vH!A2_$5~j)bavt_ktyk(b%|FQ)!-2KgVU2W925SYIZ9 z8!V2h#o+2z6leagQbfDawV3h=>FC3tA8NFId3 z6Mm%4n&3<-zLk>Ds|JZ!R?^l+nLirbCv4-Y@`3xi4j)#K{Z9Onhvc1>oTg3T1THe%Z@NvVgI9k@8YP>(Np|J5zUF(2^ z_e=Md%{lP!>Z0x5H_pp_9>&cZT3q`?_qnUzC|hsK`TZ?`&hQ)PX*(`8^tk4|F|Awm z<0B`AA4^_8ttq9vusSuxQt@?BV{OcbyDICG7u`#_o;9|ju5Q^+DUH`s!2{cXsrUO{ zOpq?uq}Fy@(_C7($G1%XOEc&`0WC{Eb#7a?f*(I^=%12SXa3*;7@WTF@Hfs*i}wwz zt~xmAO6#V$%9er7w8eYh8?>mrRqDI0HTzHO&cV_LXCKEOjmJ+8I8t_V>8{$;$)6cc XT$mAK7+<@!3WGwj`RwPpe diff --git a/assets/icons/RFID/RFIDDolphinReceive_97x61.png b/assets/icons/RFID/RFIDDolphinReceive_97x61.png index e1f5f9f8017b49ab1ea78a9394ed8ea7684e3083..06deb0a27a5c3aaad4207e43e09d22ecd9fa663a 100644 GIT binary patch delta 458 zcmV;*0X6=O3)lmY7=Hl(0001$F*v=OaPhf>rD zk4P+KuT+m27y=Vp`wv*zdf5;&5+jTZ3@k{91y@-a3LuaW1ab1zh+ z&VC!GdmzvsA%6*~D_P?#;T(3ewxx&|PF&p}HsjDzv!-2uiSP3qCH6EJH+uuZeD^Zn z@HFMG>r9e#?#+o%PYDotY8`5N3;s_%={4J#;-8o5V6&sSSFWxMK+1!jF0~>iL|Xh~ z$ElTV+H<}H%gGG^(P%#c|wPJNta~QCGKmN=2tYXQuJT#9~Ts`ZWSV?Hvj+t07*qoM6N<$f|R_~ A9RL6T literal 1421 zcmaJ>eQXnD7{Agv#{x2p_yIvKhl^r%z3;AfTbW%yMuEcUiZn{X?&IxtS=&4BZnPU= zlx>i)WI>$aQvw7<5XB`bIuRj@1WD9@Lr2D(5=YPwGc*zsSTf&kEAj{7lDqeL-}m`F zpTFm}Rj;U;Sva>4L6DijCB86RMfkc4?C{(9_MQ1~dCu}jtr{(6r9=ZD9z~M?8cc|F zAPhvM>5U7Z96{_EH4?R=q2+?CB^+W_$B|Cx5RD+^6=_|R8-RsMpiWJ?vC&g!FjQ6C z*cvWGhIB8eSC=#!pr(06L~d@7c?GLjjFzVbXdnSB5ltuJNmEF>u?f2Zl(WYKhEAwh z4Q^~QsA#Af^=bw{oemP0Nz#dy@(x9mL|KwbP@1GEf@BGb#Ys|Nc!6cnsRx7Z3?(Ln zeSs-waOcMAElU>&B9%%xQj9}0>IjPGd4i+~n#Q39ZZ;(?F^wn9g*gj8V9JK7TdI~s zvlc~3YqZ=L40SSxgdPgrH=H!5Dg|psq(z;e93+uQWD}dvHmxxDKa7WJn~^3R5Mf|y zjfM;x5?h!9!{R;KQC1N~Bdj!3*cCDE)8xhkNLoRk8-q6vMO6faWjLq8D>(0>TsY@s zOL2+gT{ut5lFP+&G;q>6I}gJ}uK`3$Ga{N6&(WZ|Ub8f_Uei&p7kz1snpCuuxhUJA$%K8tP}c(` zU}y<+qQrvwF!u}>V`HR<(=n36VBt1B^`_fx&WPzU_AMY;oo7=&mIg2tu^u1f5 z)@y#lGg2HF{icooYxXeey6HJl+%===Q-Yg*f$J(< z+gbGCvVprluc__jmS6m=F>l7JjJ;Cb^sMdho~B4w{1|(u#k_H5R;4;`zs)u0gC*%S zI_>C5rsHbY>U}-r=8b&^Mh7zat>Eaqs$E;p%^t}^&M*C`d_!V*2g<#^ZLQq9;N6x= zv^)OzpYh#+OwHKfQ+kHHZreNi()*6Nw&PX5?kxF@U2EB*+}LH?toC1`{oRjksXb78 zx8u;V!Qv~6!ySjp4u16f-y8F;3}d=*b!=ao^)Gw)nS({6qa!CbyuwrWMvi?_zz4rL rb-KI#{JuTj%qEZPotyLfwj*}ruaRky;O7Gyvp>k7e}(TvWo_$!Vg&g_ diff --git a/assets/icons/RFID/RFIDDolphinSend_97x61.png b/assets/icons/RFID/RFIDDolphinSend_97x61.png index 380a970d9004cba5520560fd9aa24aa42924e2a1..65dff82412118496cd4bac999b3d3eca572cba43 100644 GIT binary patch delta 461 zcmV;;0W$uI3)=&b7=Hl(0001$F*f~vWjqUJU zh0&B509&S#9RNLmk4~kc2V4P(srYmBrZ8MnNuvmWWA2_Jx2b_!MkWZ$0Ni?uyeyr2 zrKBl=La5Z?HeA+z-fVSA}|S6Z2S;~;8O?sjyM6)7>& z@UIGFBV#2^>Y{_-&y*a1ihpC%tnQ?9MSo-dD>_|xuapKnGO2w zcDH}7hx@^!?r}>u_GzgzYD)%f@mSl+uVq|U^55(qmXx<)@ZG^T00000NkvXXu0mjf DltbCz literal 1418 zcmaJ>eQXnD7{6`EHeeAZ8ii;s2g4C}y=!}S>mBQswzrLLl$EYRfoyOe?`_T2-g$Sk z9pb2CPQ(a0XM$+dKhO~O0nx;1L}kUOGdh8Ve-^?LG)CD7lOfXp&bQl&{IPJ!-TS=n z`~05I-*YefH&^B@S+xW~kUZ~3J^)t%zRsL1_&wM?{Wx46Gs{C}t*V$YK?jISRz-k% zBSHfR06}hjW(brZNLC^o44EO{CQec#79pi$iAOYuMv#)SxF$$Vz(hsR5RN*rYhQeg zp<&sHZKHjpPxFAr@WwqlsNJ(UDD7#ISQ#rTMN8rwG!Ox%fW{-uQG<&+v01wulvBq9 zhR&*(O-^hssF2T(dQ=^tjD^G{l4Q_g)*=g{AcBJ%MzrGu-R~^fg7z+Q;6eHV@=uu4-82U zYi3xDqA81lsJ56+42C+FLqzlW?i!97^Ob@%BjSQaSS=(GiKG&n)i%rk_&3wK+`#f1_%uMx&~s9uHc$EgY5An6W<9p}B;4 zpogCYa)qu&(Ag4m;RW0?c3PnnQowBrN#lw@*>TY-L0(ZbMKQG9>QDeSkC*Q$-5f{Z z2~0stN5WYZfssX-#AS)L;{r{IxG2~K90(F6+7!i3SxJn5ArdLp+{2>u5u|2HygL+d zb9byj6wZ} zqrIB@aESUiV~B&zwY0sUci%;mf;cmkA+7cD0^$ih9{f{w;v_DJ`sY;R`f3( z?7BXf_vMbW zuU1_w753GAG_~{axB58aI?KM!#N|b)zyZV)ZU9QaOj9KuN$fX{&>fy=f`f8Io+CbZIMpovDCx1HL z?$&C^=R1DyispWLc%|FSKGs*ccUMOLz=7=zt7r7(!|y7;X08;c-@aJ>V5pwIR`S;) wTk7+73`}?J{<7dJ@~ diff --git a/assets/icons/SDCard/SDQuestion_35x43.png b/assets/icons/SDCard/SDQuestion_35x43.png index 257ab1d852460ad83dffa5989e765902fcb09578..a07a98e4b73c5c85162897728a625595e9f69cc4 100644 GIT binary patch delta 163 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 SztR8z002ovP6b4+LSTY4?SNkZ delta 963 zcmV;!13dhj0?h}I7=H)`0001PnQ^25000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj8Vo5|nRCodHT8nPvAPh{{`~N@Q&DFU&GLx|l zgrqvDBdxLp;|G3VvR$_?EEBP=>;6HuZ0z&-?BfhV>&+qlEPsuNm|Dg4qvN>VK1(Up zyp@rywexF>C)i^7{(8MCrLVy9Z9!%5NH{TpXdrs6H9UHa5tNL;i)}WJG~PVpYsanU zTl7ke$dvP#V@%tpH;=Rut}S|{M%YEIJL9co;dDw;^F6Cx$C{R$Km$;4PdV&`Rz~sBj0Dmh#l2KY1cuek89$`I#UMY-Nk?q2a^PvZ-3x;>G1Oio9tj5I3%I4j` z6J7NwILXT46S3b5tMhIImN-miuQWahySb{PqC|_b4)aMvqK!Nmp%uUjFRzpQ2~^=E zV7Xuky(i)c@8AX=M$FpXo=&wDS;JX*LK-e9tGz%0On;z!BveOoN!PN9xzB$oy|LP> zgfrv*YR`rDl_RkuCZh(hVt`86zkB#HFCK^82vc37VPeO;)0O>w6~!JNBl#e(Jl5c% zuitULM-D^t+m0Rq%qvPW>TN5-b`^UhTuEGSZRQ31-Xjl_TTq?YjImqRV29aw6hf^p z4j3(>>VIO_HGXqvUC7P`R-*Np<(thVEEKpFjXLhwS?n@HnKydFGrB$E9P6+Jg}HG= zIW#Z|57}9Lh3OffbC?Irqs0@>YJ5v#vJ#7m>8%mhAe}XY$vBL_g^VHQ0_$b0U{9eI zS}W7iqUS1F>7BCoI-~V{Hb1YhG@TPY0<#_N<$s5~+1k^k2p6?7SFnT4R+cFKdt|wn zqKGhJ>M3qrZ$DTrql1s--KqG4x$f^+Q3~Y#6K2`3>GjrEWus-Phey7D?gOj?dP8v(N19u|g z&!S=r+H}F`)&A8pBZEDx7(_lMHs%KESpD#bL_g^fOM`mhSyEV!Gt&U?1o!4t4@+zH zVu#_-zeV&S+mvih*L$V8`N#Mx$ntFazC3nDZAO?!Pk3Sko-4Eq^? z#A_g7v9^zafiV;)`+wR01_s{JjSP%U+6RT0w5NqOix+g zHZb_h+-6|73DnE*U!k0ViRto92F6;?4O|SaQ?=NDrtYi*5q}z(ETTh!M*B7}IC!Xf U^zzJp0@T9b>FVdQ&MBb@0QbH%ssI20 delta 380 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 T?I80e8v&Rb+u+JDu3`TM+ZHm< diff --git a/assets/icons/StatusBar/Attention_5x8.png b/assets/icons/StatusBar/Attention_5x8.png index 137d4c4d054227f27ad6a7e3e374b100d975d9af..225a56ee39d51f2ef9262212736dde08784d02f1 100644 GIT binary patch delta 63 zcmbQm8#qD2l92%jB)d4K0VxSj7srr_Ims^)f)bK|up=fS?83{1OPZ=6Epw- literal 1690 zcmb7EO>Em_7aL~8bUpz^|omTDs`GNSf+{#+5sqt{|hGs2M~O=v!q!&5C=eV3yqN$cH8pR6>G`RwG(RWBWbEkJK-^_v zfiiGJ)Gcee&AJ@s*Ja^vFHB&lPjTirEXNCI!mt3!;0#V;V*_a1k`*?Se7T(rPaIZq z9Frx8YPE`2qqt!e2`Uzg5hP8}bObUYc1?FgH=^77yb?i;B(Nn*H67K^QLm<0Fe(m* zVGu{##eu7KtLt`qd?*CrAq0h!#Ado#G91G$8D^)Wo}3Q6CDBopN8IBfTj)@}?Qd{J zb2~E6|2w^0?is^&CeJ`2+M@Q1@ZbVFTQdQX0k%=GBrtgf=*~W02~QU`VQ7Xm4Xpt< z>=465nJy%#F3@sGwG4C{3eRB=V>6quBYs{-wxBL=$gnK+5R^_N1j|rV4PwVEP_rdb z189;VeV(Txn=Xq*a2)7Gr^I1F>2Ca#DtqCe8$av~r&T<6oX}M$2i>id>tY;sm?nZ| z{H&R6A^5^r9y(hV9Wg07ut%DN&LpV_9m`UqEJ?9cbcBquWYDkAH)K_*{TJJFGa83{ zo@Z04?HE?g4+R#V2CoOF;Has-w>@`zd{OeI<1o`QtkQxz>RQG_p- z!zL6(g*wzw!818Z;S`CF_GVN|09M;PS(IfMc9d>UMr_-Q@3u$w5}^O5mmp(nFTE6#P!fSmv-=dmoM}mdU2?9`nd!3^}k+g4nJa0`JjD diff --git a/assets/icons/StatusBar/Background_128x11.png b/assets/icons/StatusBar/Background_128x11.png index 78ef029ae737fe82080bd709545aff7ccdae948e..b2fe0bb9772d5d37c74e652df2e73914c3c3bf54 100644 GIT binary patch delta 185 zcmV;q07n0s1IYo97=Hl(0001=GPr#J0059lL_t(|oGr>RP6AN?2I2W18wv_3Ozi17 zfeBIWK+w{Q5O#Yy4!{980hNTrb4W=;XQ6?-v4APR4DC|YUtp-(xCh`OoB+z<1Aw1A z&Q}1HS-7U>1l8ouAYCV!qwKA4PlFX;QBMy?x_`4l$ ntV^|W<<^S=P|6)%p#|~}PJKe+y)sqZ00000NkvXXu0mjf^(RkT literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^4M5Dz#0(@)spmQaDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMHK5uS28Lfip@tU>45bDP46hOx7_4S6Fo+k-*%fF5l;8~T332`ZAIM?=k_T^V zeFCx=OM?7@862M7NCR<_yxm_V@sW8a-VcLnJPT z1~~E^P~d1jayNa^|HRIFrW60yr@Gu>&}-W^MJYtBAT;u{K+{9k<&Lvot+tTstUP<| z#4-;3vevG9_gAsjw(zVxqm%MWw{cQe@xAvG?T;szm0Xkxq!^40 zj0|-RjCBnyLkujfOih4D+rYrez+mCd+=VC_a`RI%(<(7Fm>5Dd_?7)q0cv3IboFyt I=akR{0I2AM5dZ)H diff --git a/assets/icons/StatusBar/Battery_26x8.png b/assets/icons/StatusBar/Battery_26x8.png index 5fc1b0cd6d93a694ee460f7253bac4fa368285c2..a9fea130959bb83a94bc4161130c91336806eb36 100644 GIT binary patch delta 77 zcmdnV6hA@2osj_u&g)t88ZL? literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^Qb5eX#0(^7S+So5QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIC7!;n>`$46IoXB1>;0Aig%mtp978y+ zCkybhHVLq?v9l>8v|MBih+^pFYgpao>z40R2Rbqy^;3@ofnEv-xpwG9lc3=G7b1=gZy$jwj5OsmAyU~B}@5No`9Do_K1 Mr>mdKI;Vst0P~nnl>h($ diff --git a/assets/icons/StatusBar/Bluetooth_Connected_16x8.png b/assets/icons/StatusBar/Bluetooth_Connected_16x8.png index c77bc1494f92b16d0a078b47acfa6df6a45890f7..667c6d8921844f31024c82169714733f89fc2ded 100644 GIT binary patch delta 72 zcmbO$6E#7?iID*aZtyx;0VzdK7srr_ImtWz&p-Ize)4hsw#`XCJUl+j<&57Z07c~) X%5^vwD;ElyfHZl!`njxgN@xNARFW6l literal 3613 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 X0xtk%_Z)B;2L)JL*qN7_d0hG*G(b{c diff --git a/assets/icons/StatusBar/Bluetooth_Idle_5x8.png b/assets/icons/StatusBar/Bluetooth_Idle_5x8.png index dc4a8733cd2d2bd2f980f1b9cbf6bd58e55526d3..8d7b05ca022a80405805e406fa130aa231d457a7 100644 GIT binary patch delta 50 zcmeYdoS>pB;pyTSQZXla$H4~&pByY`>TG<;(#(FCmqEdYMc%`%3B<%41+qpTP2wDfUb;0}yz+`njxgN@xNA DptulZ diff --git a/assets/icons/StatusBar/Charging-lightning_9x10.png b/assets/icons/StatusBar/Charging-lightning_9x10.png index c2eaa47d085dd3fdf272bbeba42a1b73a989adb2..0e4629ff580253b5f453a5e0df2a42f7d3a9dd28 100644 GIT binary patch delta 78 zcmca5lQ2QTgOLFU{OUY~ft0$Zi(^Q|oa7&;5Byl&`_i2GFgM$=>h2luj17Jo8q7^h f*mdy0mPST~h3uRKeXpA0L0Uas{an^LB{Ts5P68by literal 3674 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 E55wqT-~a#s diff --git a/assets/icons/StatusBar/Charging-lightning_mask_9x10.png b/assets/icons/StatusBar/Charging-lightning_mask_9x10.png index d44a32ae0819d72acb29b5bed228b24511de2f03..9c0cc455c4e306b7eaa329dfc349d2e9cc524d3d 100644 GIT binary patch delta 77 zcmX@+pD;nvodF2^>O6&kl)9&jV@SoEI@8O d6B4QpFfhzz;tajr_jDIXtEa1<%Q~loCII`Z8rT2; literal 10182 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 bb{4?N2Y_krILTll8lbMMqx4w8Cg^_v(=Zo_ diff --git a/assets/icons/StatusBar/Exp_module_connected_12x8.png b/assets/icons/StatusBar/Exp_module_connected_12x8.png index a5f09668267a55680aaa66355966bdaddcc173e1..fc136087bc8543ea66f6405a2895dbce79e4d785 100644 GIT binary patch delta 71 zcmbOu6FEV`k&yuip3YZ}0a6N{E{-7;bCN3(4jefELMpEgd^phX@t=EJE0+(u1cP-h V>xFwq&ff>=@pScbS?83{1OUKU97_NI literal 3612 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 diff --git a/assets/icons/StatusBar/GameMode_11x8.png b/assets/icons/StatusBar/GameMode_11x8.png index 49f2e25bf32025b68f659fb354abe59d61ba2235..88f1a87c1d3e636e885aaaf4c06df966fefec0ea 100644 GIT binary patch delta 71 zcmbOw6FEV`k&yui*qtp@fs}%$i(^Q|oa8@$rz~`AbZl%?{b19~#LO(uJXwKx@m^&H XZ*G>3^SAhyf%JH~`njxgN@xNA#a0yd literal 3610 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 diff --git a/assets/icons/StatusBar/Hidden_window_9x8.png b/assets/icons/StatusBar/Hidden_window_9x8.png index d6fc2b326d03d5b6a3dbabb1d5ed3a8a0140d35f..7fce0d5f6543de7f71512a66edf2089d771e47e9 100644 GIT binary patch delta 70 zcmbOt6EQ);fsp|Sn76%<08;XvE{-7;b65{D@-i@R9NtiS%)pK5+`?4DiU@%mn@N>g WjLgSxuL}jZkN%n}!zEl(m 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 M%FN!h6ytIA-_)%w8UO$Q diff --git a/assets/icons/StatusBar/Muted_8x8.png b/assets/icons/StatusBar/Muted_8x8.png index fee4e09f5e68ce3fd468d2aae8ffea79a1fcd74a..8d35be7fa884ddeda1740cf6a1a98049d82e6556 100644 GIT binary patch delta 63 zcmZ1_6F5P_l92%j-jp<}0VxSj7srr_ImsF+o6>{Qg%WNZIB@pBsSE53LefljR(gkb PfYf@r`njxgN@xNAYO54Z literal 3626 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 literal 3607 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 TX-MlFYYS&#YHd=yAa5I#)A diff --git a/assets/icons/StatusBar/SDcardFail_11x8.png b/assets/icons/StatusBar/SDcardFail_11x8.png index 876cfa2290d5ad202938fffad0b6661d85840d2e..cad9c4fcc3e16ec4a455378b5bf68bd919d3903c 100644 GIT binary patch delta 52 zcmWFxo}i*H<>}%WQZXkvAt6B^2}mSNNKQyfYhXIb&cKq-s2}mWzJ&n@JYD@<);T3K F0RX?u5TyVB delta 50 zcmWFzoS>pB;pyTS!f`!0At6B^iGk6Qjm?!!V?qrB1M5OYZ;|&0moor?r>mdKI;Vst E08&5=r~m)} diff --git a/assets/icons/StatusBar/SDcardMounted_11x8.png b/assets/icons/StatusBar/SDcardMounted_11x8.png index 68bc619216b65e89a8f97d2269c134163c2119f0..3a3227adbb018f6a15772a9bca0772b7cca2f5ce 100644 GIT binary patch delta 45 xcmebBnV_N}?CIhdQZXkv0SGJ(G`M-$F)+wwFzmvv4FO#nB#4MP9` delta 43 xcmebAnxLX4=;`7Z!f`!0fuV_+Cu7MIW(K(|W~)9`*98nf;OXk;vd$@?2>=Md3>g3b diff --git a/assets/icons/SubGhz/External_ant_1_9x11.png b/assets/icons/SubGhz/External_ant_1_9x11.png index 175f16048c577901dd1fde5ef322371a9a4cb776..931533c9187e8e919386576c2ad3e25639eff38c 100644 GIT binary patch delta 92 zcmX@YkvBmijFABdwyx`*4x~&yT^vIy<|Jn%1SI_Y|6k#9e?5=S{W2qizut)nNeKxF uNwW?gICAvdfg=Zx960jez=1<2RxmK=@8Fy@p(B|EWRRz;pUXO@geCyw7AJ=Q literal 1092 zcmbVLOK8+U7!DL_=>x%Ds;4pa(1J-OukI#vt?MRh7n-_kSKNb#<}vApHkp`AyXhjL z#f#9J7tfxGh>SVWDJ(MB_l7D9Mec%7j|9DhizCJN}VU%H* ziQ1ykpmvhJVyWA#djxJ_}>YW|;YfEVkWsM1X_Vf~drPfAxk1fmdR0sTQ>23Tg+7-2|<4mz!>P z-PJsH;R=|~bSe-cVuLK)h*CW(u{~X#uJdDo1w9B^FR}fgT2>uYaDsrwi<}Fg1PU7O z%c_EWw*W5#2}-gciUQO)QPQERt1>uxSn4qGe7#{*kKEB+iER@S>w?hfboh?U<77<` zHBA$sBuElR5nQ?*5j*3ebb6p*pwvx*m;^WixuWghO;TcMu>D(vv1J_#N9j?nXx4!DN9K!3tG5uG--VINmc*YPkZJl(ca#HZH2RGspmnh~4D4=( zC?YkZ#L_>!7kIkuYOX3fkn<&^a7qytIY*n*IM4H4UlUzfvC%;1Bz~c67Dd&Bng)xa zXqsh1QLFMCtY~G~ESrS^w-%+uj$AbG9Z=tWu2DUet5*_a6Pz?L-WW7Oy^RS@+c*Z2 z$}3JZUJRcNd9G-gX>@MEjn;PDk+}*qV+Q!$5 diff --git a/assets/icons/SubGhz/Internal_ant_1_9x11.png b/assets/icons/SubGhz/Internal_ant_1_9x11.png index 62be9f276f395c0a268ae5242289aa82565a63d5..f77a649df4154d3b5581a62c02b5263404540219 100644 GIT binary patch delta 92 zcmcc4kvBmijFABdwyx`*4x~&yT^vIy<|Jn%1SI_Y|6f7)up|32{{Q?2ZuXngf88x; t=xjXL*jYNCc{0ahX6L{EnRR-4xEP8V`EJ~~ym}YNAWv66mvv4FO#n``Bf|gy literal 1111 zcmaJ=%TE(Q9NvTk2#;vuh3aLpTp+ry+1<9Ypt7Z;p>#9uWj#ygqL? z`Fx50qr(Gyd@))Z=2MPUSJ_JBu?|kCP@h`|c+?BM1Y}{njd5Z7f(M z3S^vN@2p(&IUoQ zIC~w;bS+L0P=-M_*bGyvTN00WExyi<6%iak*hWb_7PZ<~29+qG0Lhv}R26~(l0Drt zs7DIwH2_tpE1IULNYbFCnwF`9-Y0U0iR)QSyVi5ZcO`M1vDi|SPNySxbU8}a6b&Jy zs8E4W;s`0-4jJxBVLI7ouxUyXKW2Uuf{YP6(H1L-TS2_mNMsFDY%AsI!rC^;yPB-izbhcu!anD%+jvM*F>d8i>9A+@4u)oR%` z%$lB8E2ykj%hf{PwjQPohlKWh``mZWwsNkmRY@pjQPPT{&3+*)uSYCO*P|FfQ#Qa< zmUs=S1v!wR0rS8>rUPAV8i1(=CVrTKr?Uhe$HS(He~-GgBnrS$1}y(9b&duR(F+nS zXYZbh>~RtE6aK=uFVuowQN@%LBojKA4~8i@1}`v# zpkr|9RHKflaEVG*RHurpf5a;{Tb^_c-<Ik>#gsvaI5^5yLh zpYQX@s@vsO_q)?>+e2exHy#d7>>pel`Ee_^|FvxAa_vW&_+;)c-h2N=d-m<==Fr~T fiQgZ8UU(o32v-k;wO>nDa-2n|R~PM9bM4)K-N#v< diff --git a/assets/icons/SubGhz/Lock_7x8.png b/assets/icons/SubGhz/Lock_7x8.png index f7c9ca2c702f1b93d7d06bd12ae708655c79d7c8..df07af6b8097f69202d752e56c37ba81e12a7d80 100644 GIT binary patch delta 63 zcmeB`37jBd$;bc%vh_Ds11Skl7srr_Ims5szO;5Wf`DT~W8*?j21ya7z#ox`Ye8x~ MUHx3vIVCg!0C5BqZ~y=R literal 3597 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 a9|QyVQ~@!E@+ey_4zMz}H7hmoyzn0`d`!~- diff --git a/assets/icons/SubGhz/MHz_25x11.png b/assets/icons/SubGhz/MHz_25x11.png index b9955495667452b611dc2934fbd53a5271d140be..2dae11a7e2aae1e5fba8ef53c7daa6664d8aa376 100644 GIT binary patch delta 99 zcmeyvQ#wH+mXQGn7WGKS0Vx|#7srr_Ijjda@;W#$uwE#)H*fJu?a@AyqHc z^9mKA_fxmUsHzt&-jqMnYO2}sA15D(%1uq?{o~oh^=;pTgsC9&JYD@<);T3K0RWeEbN83mJ&g}OdeG_0>Z+nP6-~#Q<*KHuwWR7mU@c>zyXrq%*@8C@^@}2P6=gUa z%0ojISx?a%$5B*W(RB<6oR5=&jBt`4oiX@4r&*L1kw~PHk#xmI;UQ2ubsS z1OZbX;7O|8`Gv^W79A#ObmzNCbOEvZdpdlnCgQ4zMvar_{#m$vSoq-M;#&X zgi+F^A$Ii8!c;Q}wwpj1Hd|)P(zVdgS`#mU?S(9YFNX|nXDwARU^I1&>D)1}O}K-N zuBl;1vmMNAmAAS!SIusSBu3p(WHEs{iDJ^@N}BYL^pBbaF%VfG7{uHts~OnA?oyOP z>c-Xgaf-iGjRui4DLR+XverFB%OrD#s_Ezs(c7EODebV&fpnMTPhq(Tiy_JQd=Dc1 zpT(uzO?*x^cbC4m#Q%@dtFY2ONqQU_r-Djnl(NN4lcM}PUz4@l+R+RSJ+2(q%@tni z_RJHY&Y<~jUi#!3H14x)f4+0<{HO1<4>zR!_rCShUoT#M^?P&sVverNy*bx-<^7Kl z`sKpD6R*AgH99PRxAW`4FW&RNJ@WYzH@@=!?CqqFUq5^G@{O?h`{2sU=ZkBPJ#gvP fqc?x}BOmJ@J%}IqdHd}j%l|`raoOK_=G^w*7i P2C4OQ^>bP0l+XkKhaVMJ literal 3675 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 Hu0mjf;;7`0 literal 1388 zcmeAS@N?(olHy`uVBq!ia0vp^2|#SZ!3-pwBG0}CQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07??FPLn2Bde0{8v^KOF1ees}+T7#dW-K+~^CEYLU9GXQxDrqI_HztY@Xxa#7Ppj3o=u^L<) zQdy9yACy|0Us{w5jJz~ukW~d%&PAz-CHX}m`T04pkPOJkFUc>?$S+VZGSM?t(C|%6 z&ddXeXo9u)`dWGB6_+IDC8v72*eU@H(aX$Cv2rvwbTM{yvotVrF*h`Hb+t5ib#ZZZ zGBYr7HZyQ^c7^G6$xklLP0cHT=}kfCb;PL`lp=BqfHu3N7G;*DrnnX5=PH1GZIy}J zE#^4QgX&Ge?G_81di8;h(FesXQe4A?fC&i1gr{C02cG^@^MHxI2$;HE)=X;#<_xv~ zpAgso|NjG-p@%NlF)%P5_jGX#skrrK#_ef`6*ydP{{Me@b6A>-Lx{=S+e`Fw7pH3% zdAs~uznOdQKDGRP;?HGHaQkgH+0OUlYP}u%=DQ!xddxlW<9jtjncLh35yqCy>x5P@ z99nmph1Eg!gFqI;m$L2IZAmtkId|qVUWuQv{-flTsXLiZSp3i5+YxWBeR>{4#?3=K zQI)4O879AZQ!=f=OphVwlFMhA6*GHUS2Jun{nDgi4&yF~hwUt~FTby;Ok>#fvsCFC zgLT90@}S8k5r-}+1~*7Jtl;ZBy)z@GLQshF(2R*k^si5`SIfI4o-plV-QgL*9Sk=a zbl8*MN4oOyJ#{*I*J09={JmL|?tkbM6X($R#JRC=Vu_J%Y75Vf{xaL$l#n(7>J9Z>Rsez4>?m+v^4&(=dnl-7VtQ3hUR|<$h?CUGgiufh#fR z%(}0KHCtpPcD3>gZd$&^{MVzu8kg;Bj?5L<)Uo%9dbPy-BY$?*-Bo?}_2;U(sTYb~ z&aKl-jNh-QDG;}};pXvkx4&CUAG$r=-JXeuLGKE4-|ks^mx9VaPgg&ebxsLQ09S_o Aa{vGU diff --git a/assets/icons/SubGhz/SubGhz_External_ant/frame_01.png b/assets/icons/SubGhz/SubGhz_External_ant/frame_01.png index 175f16048c577901dd1fde5ef322371a9a4cb776..931533c9187e8e919386576c2ad3e25639eff38c 100644 GIT binary patch delta 92 zcmX@YkvBmijFABdwyx`*4x~&yT^vIy<|Jn%1SI_Y|6k#9e?5=S{W2qizut)nNeKxF uNwW?gICAvdfg=Zx960jez=1<2RxmK=@8Fy@p(B|EWRRz;pUXO@geCyw7AJ=Q literal 1092 zcmbVLOK8+U7!DL_=>x%Ds;4pa(1J-OukI#vt?MRh7n-_kSKNb#<}vApHkp`AyXhjL z#f#9J7tfxGh>SVWDJ(MB_l7D9Mec%7j|9DhizCJN}VU%H* ziQ1ykpmvhJVyWA#djxJ_}>YW|;YfEVkWsM1X_Vf~drPfAxk1fmdR0sTQ>23Tg+7-2|<4mz!>P z-PJsH;R=|~bSe-cVuLK)h*CW(u{~X#uJdDo1w9B^FR}fgT2>uYaDsrwi<}Fg1PU7O z%c_EWw*W5#2}-gciUQO)QPQERt1>uxSn4qGe7#{*kKEB+iER@S>w?hfboh?U<77<` zHBA$sBuElR5nQ?*5j*3ebb6p*pwvx*m;^WixuWghO;TcMu>D(vv1J_#N9j?nXx4!DN9K!3tG5uG--VINmc*YPkZJl(ca#HZH2RGspmnh~4D4=( zC?YkZ#L_>!7kIkuYOX3fkn<&^a7qytIY*n*IM4H4UlUzfvC%;1Bz~c67Dd&Bng)xa zXqsh1QLFMCtY~G~ESrS^w-%+uj$AbG9Z=tWu2DUet5*_a6Pz?L-WW7Oy^RS@+c*Z2 z$}3JZUJRcNd9G-gX>@MEjn;PDk+}*qV+Q!$5 diff --git a/assets/icons/SubGhz/SubGhz_External_ant/frame_02.png b/assets/icons/SubGhz/SubGhz_External_ant/frame_02.png index 3285496fea846e6f3712065d21818422765325cd..46c843a7cb042656e35e06f2b40c8c2af3e52854 100644 GIT binary patch delta 88 zcmX@fku^agh>-yZwyx`*4x|h{T^vIy=CB?#6l74~Vc7Uyp4n(ZlgJVUR_)TGE}l1f p!lvG9H=o$rAoHd*HszAiF?MAS&RHjR^_hYU@pScbS?83{1OVld9svLV literal 1097 zcmbVLO>5LZ7)}w|(vO1(Qaw#mkQU5$(%pov?Yc?rVz(~a75Cs_C&{E6+GJufb<-lE zBBJ0$Jcyup6H)LFcu4Cquxcjwt@&Yr{rT=a3w*c0UePLIB`TqozqB2r)$NtK zv%T)jxH>gIX3Q9OeK<6dS5k(o~ zbly`m6?slhJPTw|Rs=~BM4gjlL(~jS0lkN%4rA9dYUX0k9o-e!79o)#2<>*8Z!0{G z*91w|bwQK`S>`B$OSVD+Q!Y%V`U)mWoY;?uk3*0tLK|^~0>E()M zO-NxRNW3TnL3XtcIw3XmCyYbUNqs9qLJcK&Gj?c6ys18!rtfG+8IVR}T#9{K7r0?! zXEQ({DVqhB{^4EUHK3zAnqrHbCnJ?p^J1Q}^;w;BUC;4!$x&2@`Z|a4b44pJX_l(% zVqTIgt7xj)qB1L%^rB)Ftz4g54if@H2lajX)OU}o9LY6GF@glgb&NOqjZkf2f|C}G zfUNN$zqNVcv+QafvRh^>`F5LOjn@ehZ%S#D_}PtCW`&*$X$$a06G;g{6nJq zx6E|;?*C?1pg{>)8~xQ*{Uh3|+45jc=;mP3P)NrsrgQY7zLyR4V0F1}?eFi?<>j3( zH>okoX0e`rvztwGXl!iZ?%>2n`{B}!R})juJ~Q8UK7ANGK6&ruliQC5o;J;|yZ3*b gBzy4J(88?&W^##Xb6Mw<&;$Sn8W|4& literal 1079 zcmbVLO>5LZ7>*Qb>Bq^79|wo@(t`O;b~~Z5Za2Gjp<9>jihGhyCX;UHCKHpXn^q7k z9{jin9=&<=;2-cH2t9c5B6tx0gZK;TWIw8hQp7;=&P<-?eV=(hp0~DcFU($@6$D|S zvEjD4y~N+SnJNB#H&>tG<_fEI*)|Q>0Hs8z_|zky5ushuCdfZ{@R_U%!qn@q(`DV} zrj2PNqXHx6QNr1Ru)3Bf2=5UFJhB_cj`;J#M-ha+Bi^%`YBQ;lUbu0XlI_E-4nEw& z&==Qkg4NvS4kE%3$fJIo*|{SQ{n~t894jIiLfD=ojzo2vEl{N?0Z`T?tg1RFLpd-k zlLWY|-T=C)8;YhWDwH(cRxR5y!1xh)z|;@ywp$;E<2y&}F_zehG8hcxfg#g$SJ5DZ zimEHRE^&mE9mEXfQk*SLJh&voX_&B(#-Q+sJi5;uk&7MOB1)RgQ^#>O&K1v^lA}b? zWL1fx;%Y;5#@ghMj5E<$=O7_Un`Cr9#k?fJ;)Kl8cYdG($ko_)(va5$^<9ehBNDTQ z>xlf1?1#RMFvOPOsZyX5Q!-c770H7oDEWSX1E^ucL}cRUEPlCKFXFZ-|mKtuQ zlYjSicHE2e^S7Q(U;gz{^Ikkz5ZCA5+<$xg>c`RXb>YIaaIG(_h5cuXoFg=9TkiYy Goul7(K})It diff --git a/assets/icons/SubGhz/SubGhz_External_ant/frame_04.png b/assets/icons/SubGhz/SubGhz_External_ant/frame_04.png index 3acbc03f44dbbd47da08bb70f8cb1e426fcafc64..12765ba8e7949729ec3f1a31d6292a836fb5e8d8 100644 GIT binary patch delta 87 zcmdnXkvTykkdXlhwyx`*4x|h`T^vIy<|Jn%1SI_Y|6f6vnVI?Wepw!$|3MNnBqSte o%y?#CU|8sIgNKhtr>BRD;SDGIEMwJ@tspZzUHx3vIVCg!0N~CX9{>OV literal 1085 zcmbVLJ#5oJ6t)zpRBbAdSoj$@xl1e6_W3WVt(ua?NgJstQ5qlZ572#LL%^HUhA3Sr59cjxbW@7?#_d)C@mote5e#c|wB zW6f?edzrn{lLhvDGhLr#<|?gq=_c`M-$^i6@ra8-BXqWL8#~_qgU@)0;|kA%PM3C@ z>n0+h=;RnN3uDISxTWPRcF+!{z{T4^Wbr@Vf8asjS^Pb{37c^h_ky*91aBT}bkM;L zGCY3yCRoZ$<{-q>0a>^krDkUF1HUF)=f@Hc1`xVq@x!FL%@(MV1Or2q1q7i2%7*Bx zx`usJh6_M}iYm#n1Pwt}OsJc>3Puml0w$hsw(a^T9NSrZkJ8wbq<+6I_EnK2+mdV; zh6EK!Q3Qq%(*1}!nGmJ3V-Ge?Q4+*7AQ8wtIxg9x7SEC$-Xe^f%~QuwI?{@%CS^`6 z$s&}(Fu&RWozgb`lg63ow6h;$sf|;zmmpRWe|Ah}@|_K4QZ)yU{hY-wSL-Du7tMfGS+3P8 zwx-wB608~(wN|N>$J|DgQYS)q96MmKN8H78xn?!N4kby4klk@3w0eY+v`1o~=%NPZ z^1{msEQ_J2Xi5oahVCk!JP*KJ(?LO$gXi-C4)w5c5&WOpt4`0e6juE5<`;8uSfeSgQ8 NT%)#Ozg^jS@*5^2P5=M^ diff --git a/assets/icons/SubGhz/SubGhz_Internal_ant/frame_01.png b/assets/icons/SubGhz/SubGhz_Internal_ant/frame_01.png index 62be9f276f395c0a268ae5242289aa82565a63d5..f77a649df4154d3b5581a62c02b5263404540219 100644 GIT binary patch delta 92 zcmcc4kvBmijFABdwyx`*4x~&yT^vIy<|Jn%1SI_Y|6f7)up|32{{Q?2ZuXngf88x; t=xjXL*jYNCc{0ahX6L{EnRR-4xEP8V`EJ~~ym}YNAWv66mvv4FO#n``Bf|gy literal 1111 zcmaJ=%TE(Q9NvTk2#;vuh3aLpTp+ry+1<9Ypt7Z;p>#9uWj#ygqL? z`Fx50qr(Gyd@))Z=2MPUSJ_JBu?|kCP@h`|c+?BM1Y}{njd5Z7f(M z3S^vN@2p(&IUoQ zIC~w;bS+L0P=-M_*bGyvTN00WExyi<6%iak*hWb_7PZ<~29+qG0Lhv}R26~(l0Drt zs7DIwH2_tpE1IULNYbFCnwF`9-Y0U0iR)QSyVi5ZcO`M1vDi|SPNySxbU8}a6b&Jy zs8E4W;s`0-4jJxBVLI7ouxUyXKW2Uuf{YP6(H1L-TS2_mNMsFDY%AsI!rC^;yPB-izbhcu!anD%+jvM*F>d8i>9A+@4u)oR%` z%$lB8E2ykj%hf{PwjQPohlKWh``mZWwsNkmRY@pjQPPT{&3+*)uSYCO*P|FfQ#Qa< zmUs=S1v!wR0rS8>rUPAV8i1(=CVrTKr?Uhe$HS(He~-GgBnrS$1}y(9b&duR(F+nS zXYZbh>~RtE6aK=uFVuowQN@%LBojKA4~8i@1}`v# zpkr|9RHKflaEVG*RHurpf5a;{Tb^_c-<Ik>#gsvaI5^5yLh zpYQX@s@vsO_q)?>+e2exHy#d7>>pel`Ee_^|FvxAa_vW&_+;)c-h2N=d-m<==Fr~T fiQgZ8UU(o32v-k;wO>nDa-2n|R~PM9bM4)K-N#v< diff --git a/assets/icons/SubGhz/SubGhz_Internal_ant/frame_02.png b/assets/icons/SubGhz/SubGhz_Internal_ant/frame_02.png index cd87fcdc9d5df2b0d8ffcfb42ab67f975943b6d4..462d8dcd89332012100cab81c07a79c21b76702b 100644 GIT binary patch delta 92 zcmcc4kvBmijFABdwyx`*4x~&yT^vIy<|Jn%1SI_Y|6f7)up|32{{Q?2$Lu$y|GHn$ u(Ajvfv9oYK^JIp_%+7!RGwby9a4{79>6LG#14T9*Q2xm{JS4&p_3=?B) zKx81KNraZKCxY~~BtJW3@K{c>C>0S;K*30Sz9y=w6ubM1IBm7|h?9H}D;YJTPg29w zp%KT$({|9gXtVz^4n*gj^^_THmh-iY%9Mm>hsH8|hdU~OQjL2(i)3ENs>kVC%o5S` zs;a!vgD7wb#niEUsD+5xnq7ev&BrCI1wlwdY*Nc6Y{+wveZ6wULsq4PF|3)O31vgyk@P*Vbq=+4>lq`0XC2O0hlQ}P%mvSvc?yuD+hD3l zyoq30k9B0D60ou3qrf}|z*LLSC@H|_iUjV)!(&-=hXpekkHJm`+~@#xW#2@YT4jxu zOQB|4ey9s>jyO|RDJ|M0tAZ}j-_%MXrBJo|KV?ANu)XWzFTbRTVfp4i-&oS1~4pME>@^IPq+iKN>VzPyhe` diff --git a/assets/icons/SubGhz/SubGhz_Internal_ant/frame_03.png b/assets/icons/SubGhz/SubGhz_Internal_ant/frame_03.png index 459bd3eca18ea8095fa28446bf3916c79aa3da70..0fcd542b62452fc4fdda3e68aea8d46bf92e75af 100644 GIT binary patch delta 87 zcmcb{kvTykkdXlhwyx`*4x|h`T^vIy=CB@QV!Z literal 1110 zcmaJ=J7^R^7+wrWFhmOr(P~%=AGojC-Q3NRGoH5>bC8SSJTVA@v$M0wlI+g9JMk_l z6f6X_u(K7dM9?~*plD@fVP|DwVIf#q%K2|{7cD{-cAnq={onkL2a5}rCJ&uBq$tW{ zYtHY$d=&nP@i7=*PRx$ObX+!<l2?=l(A=VcS$a_ z=RGD8ot7BApJZUIDAP0jjIvcOQNWkuw5I-g^G-!^SW~aLZL^&<_)0vtne!`~3thIk z%1EfroJZ4r4+s)2De5O{Y2o#2>Nc+j>+;x8(KbY`*3=zQOYKF}5IILgw=`y&7*&WK z*{;JQRx!^ZY+~E6EW;$4g+0^tTpJBP6&&VaU^Cg5_~0W09hgkp^O2)>II?^NJ*Ew|9xtVi+rkn$f43 zVd}B7mUi7hDtrKE4EUVe9 z`;I$nPniu;x1055Wn|k*3rSPPN4{h5J+y_0?_=vVa!#elyF#pu3Sn_YNKvea3}IJy z(CISq7B(w-qGJb7A&0mD4y`i?oo-VWrzQAInZTWR_&kqq^Kdp73EIwp7w@625?Gip zyQ1;RRHQj}5NXuqwiX4vN=ZC(D=u%gS*#{oSoRpPVkAF$9~56?SWUnzkR=7`&>MlH@1F0 h{Bc=iPiLMeW6G)L%8lZ}i%&qJw3-Y4>x(z<{RMqXT@U~O diff --git a/assets/icons/SubGhz/SubGhz_Internal_ant/frame_04.png b/assets/icons/SubGhz/SubGhz_Internal_ant/frame_04.png index 1d785d453414c6013996b52792d385b5e4ce5902..8426585d9580d2460601b07899752a22d80163c7 100644 GIT binary patch delta 90 zcmcb{kuyOegpmOVwyx`*4y24dT^vIy=CB@Q_&Ih*a r?kHLme1G1ai7ay-TZGPuSgG`lG4wyLbc#u=2FMssS3j3^P6A4YRYeu);pv9lV3W z7|}!%8)Iu@Cl)5w780?s)k;e%wXw6sS-3+A!X`V<@BjX9{>Rh$;`NciD}#a{j8y0C z2A?nTe`uhOk8g%51AH1~kof7VLH}huxUyXKW2Uuf{YP6(FQAsTHnw-Rdp4bHcqqUiEyMJBrd?_> ONUf)8 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 MrJY5ondim-0h+K&wEzGB diff --git a/assets/icons/U2F/Auth_62x31.png b/assets/icons/U2F/Auth_62x31.png index 40f094ac9ba758ea06838c2bb8376cf6f28f8050..0c22865b2621099e646fd1b24e7269009417af5a 100644 GIT binary patch delta 234 zcmVX1-?!N}dFVox>Iu;{b4?+ z{az18S+6FJ&-$sh1iG2ixpiiHlWjL)Gus*jv*mNCN^rTo8(U6tqh+0$L)NQ+um8+f kJAwP9ab=M<*MW2R1Cs7nrIqzeBme*a07*qoM6N<$f}rbdDgXcg literal 3761 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 diff --git a/assets/icons/U2F/Connect_me_62x31.png b/assets/icons/U2F/Connect_me_62x31.png index 68c48c0e68142548919d6a4b02e40b48a243b04e..d7def86b0c48112ec9b70c7d36f8ecac4367c125 100644 GIT binary patch delta 223 zcmV<503iRj9q$2<7=Hl(0001&N<(@8006d0L_t(|oF&FFPQm~b0MOT;4&CU$rir*Y zdIaK0I06T7s5jvlE~bDta3%`IL8DQLgEh8%2jBFH1ctB=5FUo+Kl5S&4w)aB*+){b z76(d>MGxKtg0blKJbDtcDQ*nnb2qhX2zQI$2BGl&gD|*$ZdiydvmL_u)&;`RB1>!9 z@9anU+6Vd?q0&uIvaDA+K|Q~1#)8w;r5C{{mvXAj%tN-DfG_HRd#b?IT&=_`ofUx- ZdVhYiN{C7@Kw$s?002ovPDHLkV1lF5VYL7N literal 3767 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 literal 3695 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 diff --git a/assets/icons/iButton/iButtonDolphinVerySuccess_92x55.png b/assets/icons/iButton/iButtonDolphinVerySuccess_92x55.png index 0a85465cc52f0130d3b1a7d4c6d74cdf7c494f60..0d8263c5ed022bd46639fc4ca53b6fb16e80b2cc 100644 GIT binary patch delta 507 zcmVHJthL8}ayjS#_ovoM)W zX6HQ?vm3nK;W_tSxc4|w)&&5^28Wue1P1Rp7zq?^YA8vPH-Cy2wdR=gcclG_psu9e z*wzIm#?w9l^>NP)NyXT9tJ(%&y3ctT>%2G@p`}yYNVtyf!~l3qjj)#h1hBHhOI!@8 z$6RAb3NRfob(B}z-(jx7S;BFXSC=8vi7o5m7j3>x=&zk{eYljX_n<+h!p;6tQTFD& zm2JdraEl9&sehcEl?wfQ;_0u2rG2TU!;dX81xbTq_;uM^*#_vL&u_3=%K=-|uic{} zN>RDcq$?FVRj%ztZ&4fg%YbA8D_R&^cm{W|sEvD;@`yUnmGoReA(!W9O_EL(e#^5b zNy-&^@)oTE{J_Ov+uy32eQ1D1Ge8-0_Athtt^)_Kn{+qf!ipqzLg?*#D>k5n0uL6= zCDdvJQm|s9nKDcVBw*1T6X4s#DK`0?X*f;=ST;ix<6;1toX1V^nm~eOtMJ(Q>Zw<% xcqtF^mbJ%G0j`e7pHki~jmS~>kF0FU{{!6@F4%*2N$UUr002ovPDHLkV1h?r?G69{ delta 957 zcmV;u148_X1jh%E7=H)`0001i+%3TX000SaNLh0L01FcU01FcV0GgZ_000AdNkl6c7=NVsWB4Vl_nD;cP@ngX}hYRUi(#ZP1~ zNOEhf)>@lJD4v+NPe6@Ocqc7_tjJg=Vv2B&qDN!Djd&N~kbjIwlC@k}IacD|=nWLv z)&}W8YprJIScxHpuT(ad|8}LD6~0>86yBh8lfri^n;OsVF?gXW`~+pc38s>QmAzYC zH&41qI8-!z$Xg%w1gJ}UOnNEf3a2J$_gk_HY}4dw_Xttaq9tNMb7S)q6+WYEOa`a& z8%g6}c@}dG?|>C z(S807mhdch0*{?evW8k~qnf`YI<{$2?j)+gQA&v-pNr!iHzhbsGJYN@*B9ZEvLoF@ zWYe^~>Rua)xsXIBiL&P>70xL;(!$M>JyK8MHJ)dX?tj(xm+(ZBgwH4(-mAF?c-|6w zlw@suTCUkeSy@GNlGcmU*9OsOTm!WDHcLpEA zVPnMP;?I+j{btU_cDa<@ZiNDLFi|lru45FnwMLrun^v4r`#$iy=1jbB)$kK0AyRo- zbBuIRwUi?MN7OAOd&ed{m$ZlC_2Fs_-@WqewVBJcaxuiMaz|>t`m6me*OEDzo|+u> zhJS}BJcArcNh9Yua4NOjGn$KxRTkCo%pPD>tfz!n;*P{#R>S-KD@p}*+&kfsWS4>z zzRI0MFTJ%%oGCrg*FF@!%ANEYnyq+mozH}-@Fjzo*ou`_h%@8KP!HpvD;$UF*tIm>TX0 fb}L3q!Yn_(*J$yOEP@Dd00000NkvXXu0mjf8O+Zq diff --git a/assets/icons/iButton/iButtonKey_49x44.png b/assets/icons/iButton/iButtonKey_49x44.png index db895ec5284111ccab12d660c1e9f237bd7e49aa..d3bf6e20feac3ee343213f6756882c2ab3cfb6c8 100644 GIT binary patch delta 244 zcmV#V->B}8T(zxW*PXv<@r0d-Hc2wdx`Bd{(4Eg380~WTR^$yJw?msq!jz`_$zR_)N)nplC)d_T znWzzjX|1uxgl#>|ak-~m78P>Ea>AFFFhLgDfXHVvx+UfP_yu>yTg^R@2OhuJiL#qn5 z@Ry%V+qNOmbS{^3=R9s?rf60aMVjGgj-xPwvbuE}XPPvdZO0>FF2onw%od*WZx*5l%A}|`A9-7UT(3TzU!d41;Z%J&$yA4RULJM`8 zG7NV?-Ck5QrpTqeMyHvX^i+{)n1NXgv#>C>WXeb*8(C>|8$U|RC2tHVXhL8kGmcQE zn5bBhh2U5>M=V*Z=?cnOwT_~~1{eZ1^piMiEX8p6j&qE}GZN=r$}$qeOhKc#4isR6 znSqg_sogVyMx#qDs%7wk)w+5m5eWwcRulw^bF)s_V;R`pM$N)G z?k*gpHrP=ZWi(>4Iwc@Ghr&;+vQ#7#h$o&O?h90ZOjLxA{q)yR=H9MN;c)K|wWW@G&bNH? z;`o}#QHHF}^>qd|G26rc~o{2B} zNTIgp=YFqbw2d-unABNx|~ubI1>ocOu-ji$h^hhm#*TkHHAHrBddnsoteII(T) z<%8=!ACb=17|UuY`wMITJsoX7?A@jvP8{BO>G=4-mQ~l^S#|%lj&C1%ZBSgzpIqQ0 zi8Dv~Vt@D+{sK0aPb8L~s;Nlqe;ufIUpd~={BTR#o^a>)>WM_hp_-Phy|K!rZ_W=M zkd6(Hj6Dbj=HGGZ#cj9=oy}6q^cyzv-9)~t>yuRunaZ_OVwQ!3Jfh=ZgQ) z9VgcfXyQ%nvm}@_^Aahn!x=?g*MOoQHp7&kh@ zqlSNHNwcVE*?(;(gLr(F6czk}KW|u4JXlWJ(p2oXmewJ~Tq9{}@NV`O9eSDz8%!@r zXKnWxG(0iEaP*tIYw+YKDGQ%+_640W@YwE7ge*7j!U^nyi}*OUG7U^a&HEd#NM``? zYc)Iw6{e#9K1aO|@#0(DdZ#cQ^-pHt^$2eKJq_D~6Mq-cH9=SKA*ARih@WdIr#+@S zgHwrILJV^dd4}Ls)coGxM&+ym4pn zCwSpChjZ>d=iX*#66AO11&o z&N2YxpR~ROc)%c~Dggio6EeZH1O?vy+WqI0(6#in-w_-6m^ zbcYzH5QdojYkyB`^Fs#K-hpRv$oc)w88URvwBu9_sci?5_zqiGDL|P4@D&RBa=h}H z0RStt?9}M!aSBvv2?asmiY&-qCaqEd^xse1NdoHSm1#lF&rK*b_Qy2mZ#&2DJ-(i%j(YZ?xs)ubLfu#?w1&C*r a5q|(Z#>AG`k_xc^0000ZTL9~*rHm&@+m@AfvcvqS&3rQ-OED8p1>}rb&0yA!#kumNWLMb9+KKE6-GQG?qoP?&>K&rf zrj)=8(w|z&NSe}HQTv_v%qBqPcKj;GKLuCC&opm}vML@fz%o7f3xI6;RU1;I4<2nm iCaM%!pcypw>Cq3BgNA?Vg1o^10000tJ*q zsPCdpJ=(B3BM?8JW!P>6NRk>(a&nRq1DGEGOO^nh0DVuYE@)=J$%g1y@ruCImB8G) zPzI*}J`;rozds#cxmjeqV3bFk`*!1l4`7O^c>vcR=LHaz$2&a80IcZEa(56Gf~3mt ztLM_wbI3^R^f#D&)$^ZX!J1dVoZW2)3PG`upu7Yw8m|Q94#EBCpPMkRL zUxPM8HfpH9WfE3Bx_$wG#06fF2*6vzLUVv@bXUo3_W+915q}RJtu^i%0G}Cu{yD(a zRwp*joUy}v!<}7?F1h+w6Ng%xIJiS6xc~`VfZ8jxue5LhxB!hol-Lsh@c;mbrSKA{ z96$gn2V4MN3sC5u_w+6loi|c zh+yjh?R@sAKbpSdNL~|U0K;)Qz`_c6*1rHCx0^Hi+SzXacsa0I1@?BEMa~L53h`|> z9oqcmT{{87?DtwXI^m@LYXGzQCJDC01Ar|Azr*|h{u~6R)=RWQ0000EWmrjOO-%qQ d00008000000002eQjV1egSn8Gir(008=}Lec;L0pCePK~#90-IFnE6hRn0#6oe819Rw^+;I!p#NGKU zcJH#6pWt-!F!Rkb?>D1_`Jwr*L7~DqB0c#aB4W#FQ}do{0Dn@BHm)hIDdH;7)hH+dqg%gjqf;ONo4sk$zfsvc1C3A1#>zen;e-0CTr*J zKOY!8Hq7~ZCVwK|E`GYl?Mz!p4bT9vWyp;X@M<6c7%GE$*#b#eja_si2CPIXuC?Ld zhlq4)D@MU7u_S;V?9Tu|$Fe*FO(+t}=-c)EH~lAQlx5F?lQ!SaZlWRN1{Mu$lAo2jK#^{N-V{|7k^+_9a~u7E>*`t^9sgcU7cMC z0CuLxcNxAoc{*)npk9zdI=tE_w}dcoaQx|=SArOW0LJ71`pm3;k^$&-V5neGnKC*N z>3m+0xzzdUorrnBvrGA$sVub`b1No~Vuz|8k&lS~F~2zbFRT9mHBC5&*LLMTn|7Sbp+^>KYos-|aynB9krvL16Oj?I~^q6l4rnofGJ~bIs zIXxty`9q?L56Hoo0K6rv6r%-gj01+*{;P*E06)kD^d|AUZ3cvMl<2i87-GKRSrG}+ zt|Xize)-@NAb%pE997i83o%gAEDJ+9fDGSm*p(jpMt6+`hZ}x6@D)SsksFZ8ufyx` z^dwZ`*2%@Mw}Wqh(3~F_C3>Ur=97K~#90<&!^)6hRQhe_b=|4Y(&G8Ympx zB!U(xRv?`yhL<; z<|kZ5C{FfHrvQA0Ge}kbeqQGQOhKG%rGN!c3&slxkO8y~7zx z00;uiJGL?b1`DDDC_8RrfK&ilc(a*@g#b{??Bm-{*Xz5lED1DeA{5cd1ETX&8b^Hv zS(pM#?I~X%z<&)q+zioqQel~$J`qYrh5DGh3zPis%Zrppa@tE7!ZgY?Bv`e z2M{rbBxz!~WjqApt^IwT0SxPn!3OI19y&x+!rr(;$Y0a<%{PyjC1T^N86bAu;@<6m ziAT#{sO}CJgF?CMxK?k%qApseH0OG(K&PY^CSccBu4uMz%-u)10t%~5JXTcqt;AJPtP@RD* zhrzL`rpY6o{SA=o4&AvhlcQsHIw-vHVd YAG3sJjF1egSn8Gir(008=}Lec;L0pCePK~#90<&rUL6j2m~zjx zHUAb!fy_#M3*htsEKvLRFQYP%0Jcojz^Xt(N|sZ4Ad@rn0kU&;_{}})0mO{LP%4qO zqwPBYKH4w>Lx0?)r(PHX3>~nEAZFGDH83pz?DV4H13>Z6@_Xt~r~%9PP5|;eC<#mZ z&P0I#YZ?Rir#i+3mfQyzn4549yVHDnS7y=DbX$Zaj_C0{dUKO4e$mB zv~{Gas=IsodPTLA(}aWN+z*ozH9qs#&m5OxKuiI@V8s;&3jx3%CYY##q1H3*00000 MNkvXXt^-0~f@wzZPyhe` delta 565 zcmV-50?PfE1j7W78Gi!+008J1?K}Vg00DDSM?wIu&K&6g000DMK}|sb0I`n?{9y$E z000J1OjJex|Nj6009C@%egFUf32;bRa{vGf6951U69E94oEQKA0mey0K~y-)<I63_A`}K%)>4vK%4go z21ZyXIs+Ncit=+QaTp)NCT^P7Eq2=XJ}4{uI1#}qRDU+|rVfgoOF{sO&p?g=V^Fq( zxJS-nv6DA21|7jw?8NEQ(FvHK3AoJxzcqa@MB^9gkD_tT4+Eh`L?62_9Bd-)U9I`j zt=s>0_9R3BJKZN7xd3?tZzn3qSJr#f-z<`?~cGsKK00000NkvXXu0mjf DP9*Ys diff --git a/assets/slideshow/update_default/frame_00.png b/assets/slideshow/update_default/frame_00.png index 385fbbe061539ecd682922a07996d5b5ad23bfd9..05d3a40a3c56f50430c3b4653f9dcf58f27151fe 100644 GIT binary patch delta 548 zcmV+<0^9wg5wZl38Gir(008=}Lec;L0r^QpK~#90)siu56j2m~zjvLuOAKagO@svz z`~!lDm<0t(t?YyqOTj`A6b-w9fR_FOwXqQd6+t0_BM24-Vj-f9Orn?+lHHh)%w%TY zv3Q$gg1^91Jl;F^^6t6!9w&Cg_@9Z~b#@bTs#jB_3FX=WDt{&4_WQ!K-8KZS$=c2z zCD5QaeC@@-`kFZ8!U0~qAZ5Xzl%E~3!lob+~7>H#=|>?rhq!b%Fr;M-Z)7zVol5S7vE1sHe0 z#RreaoPvEflYb*4*KJsn? z|McpSv01u4*{iOclnzGd9@Tgz3zcx;(()1gdjMu|<`s#xgI)s~ z)$OOvN=6DK9ZIShQ&l@OK{gLdOgR@DkWx%ebh7J`w0}fbTGWSmwU>PD{53CHZTNM2Sf&>Bq zML?34G?C%CzBNQk_SP~j&` zJVS~cZ|6AANV;t!Rv=udK%u!-l45<5-FZ?-VHL(qii`o4k`K}j4m+kJaFBoXJE)RC z(Gb+i(X6vF0>$MhCdW}brY6)n0#&{Q1*J!mBKay{tCg_$1d;SnjKyq#fl~^WrNQ2M zm6LShat(!RxoJx`!_6z8nIjUSDa73R5`f78Q7R}I@)k>Wf z!!k{JbC%MKXKGL^OM_DF#TMF}gshjM*O;G`EQL(Of_P-4Rlv+@#ON zfH@5M@&yGTEJT`Eqk~OHLdklWmk@5$qzg^aVQnx*!3yY&3~^}{`4BKZuqzM7e2IE{ z3-|!_SZphzO)Yp7P zRX@MbICGh{rX{812W?#OKy=3EdrFFD0l|KGh1HCvNv_IiT*b z9oW11DeITjdI>}qxIJJEgp(Xlo|aLs33KX>lF_2)p>_1V2iYo07@J#u8nwT0c+ zi)s#J#mU=>n&;?ZHF1~gOo!sQ)+X22lUhn|%(3)e-FRy0)f?m~Z+35O>ifQNoYXxAO6^L@uaeCaI5|7?9P(*-2NkV&sN#j zu|gwpcCr27*-5w7AKvoSv%!+WyhApsF5#P>mc-7Qu|K%LnD}=xT1zKB8@v~r*p**# zXaDJ=71RH^-SEb&cY9hcSEn8PcyM2v_jb)&+Z6TP{+m0NSSMExbl+U|MJYP*!p*f4 zR=s{6y&Lxl);;m)y2f@(QhdXQrp3#@Pxe5kR?LZd98)+o`Z(EVX=;45HLm@Ve2?!u zotm4r2&t~W6qDLC)hSGv_F&%g>^)7oGbzeIrOT#W2{$|}JpE5GYPpq@e^+<>arVyV z=QPKX{oJp;GinPCMm^d1X%!Tc%bg+mH*ZqB`Q2n=c3@ztY$$41{C3;v^{SQ9{{l;9 Kp1C=rwB}#tL-H*E diff --git a/documentation/fbt.md b/documentation/fbt.md index 8e083349f7d..fee003abb09 100644 --- a/documentation/fbt.md +++ b/documentation/fbt.md @@ -78,6 +78,8 @@ To use language servers other than the default VS Code C/C++ language server, us - `get_stlink` - output serial numbers for attached STLink probes. Used for specifying an adapter with `SWD_TRANSPORT_SERIAL=...`. - `lint`, `format` - run clang-format on the C source code to check and reformat it according to the `.clang-format` specs. Supports `ARGS="..."` to pass extra arguments to clang-format. - `lint_py`, `format_py` - run [black](https://black.readthedocs.io/en/stable/index.html) on the Python source code, build system files & application manifests. Supports `ARGS="..."` to pass extra arguments to black. +- `lint_img`, `format_img` - check the image assets for errors and format them. Enforces color depth and strips metadata. +- `lint_all`, `format_all` - run all linters and formatters. - `firmware_pvs` - generate a PVS Studio report for the firmware. Requires PVS Studio to be available on your system's `PATH`. - `doxygen` - generate Doxygen documentation for the firmware. `doxy` target also opens web browser to view the generated documentation. - `cli` - start a Flipper CLI session over USB. diff --git a/scripts/imglint.py b/scripts/imglint.py new file mode 100644 index 00000000000..fc63f33555a --- /dev/null +++ b/scripts/imglint.py @@ -0,0 +1,97 @@ +import logging +import multiprocessing +import os +from pathlib import Path + +from flipper.app import App +from PIL import Image, ImageOps + +_logger = logging.getLogger(__name__) + + +def _check_image(image, do_fixup=False): + failed_checks = [] + with Image.open(image) as img: + # check that is's pure 1-bit B&W + if img.mode != "1": + failed_checks.append(f"not 1-bit B&W, but {img.mode}") + if do_fixup: + img = img.convert("1") + + # ...and does not have any metadata or ICC profile + if img.info: + failed_checks.append(f"has metadata") + if do_fixup: + img.info = {} + + if do_fixup: + img.save(image) + _logger.info(f"Fixed image {image}") + + if failed_checks: + _logger.warning(f"Image {image} issues: {'; '.join(failed_checks)}") + return len(failed_checks) == 0 + + +class ImageLint(App): + ICONS_SUPPORTED_FORMATS = [".png"] + + def init(self): + self.subparsers = self.parser.add_subparsers(help="sub-command help") + + self.parser_check = self.subparsers.add_parser( + "check", help="Check image format and file names" + ) + self.parser_check.add_argument("input", nargs="+") + self.parser_check.set_defaults(func=self.check) + + self.parser_format = self.subparsers.add_parser( + "format", help="Format image and fix file names" + ) + self.parser_format.add_argument( + "input", + nargs="+", + ) + self.parser_format.set_defaults(func=self.format) + + def _gather_images(self, folders): + images = [] + for folder in folders: + for dirpath, _, filenames in os.walk(folder): + for filename in filenames: + if self.is_file_an_icon(filename): + images.append(os.path.join(dirpath, filename)) + return images + + def is_file_an_icon(self, filename): + extension = Path(filename).suffix.lower() + return extension in self.ICONS_SUPPORTED_FORMATS + + def _process_images(self, images, do_fixup): + with multiprocessing.Pool() as pool: + image_checks = pool.starmap( + _check_image, [(image, do_fixup) for image in images] + ) + return all(image_checks) + + def check(self): + images = self._gather_images(self.args.input) + self.logger.info(f"Found {len(images)} images") + if not self._process_images(images, False): + self.logger.error("Some images are not in the correct format") + return 1 + self.logger.info("All images are in the correct format") + return 0 + + def format(self): + images = self._gather_images(self.args.input) + self.logger.info(f"Found {len(images)} images") + if not self._process_images(images, True): + self.logger.warning("Applied fixes to some images") + else: + self.logger.info("All images were in the correct format") + return 0 + + +if __name__ == "__main__": + ImageLint()() From 0b19fd29e665484223bcae5d53f339b832c4c9a1 Mon Sep 17 00:00:00 2001 From: Georgii Surkov <37121527+gsurkov@users.noreply.github.com> Date: Wed, 7 Aug 2024 04:05:53 +0100 Subject: [PATCH 16/22] [FL-3880] Fix cumulative error in infrared signals (#3823) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Correct for pulse duration cumulative discrepancy * Add infrared test application * Build infrared_test_app for f7 only Co-authored-by: あく --- .../debug/infrared_test/application.fam | 8 +++ .../debug/infrared_test/infrared_test.c | 61 +++++++++++++++++++ targets/f7/furi_hal/furi_hal_infrared.c | 12 +++- 3 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 applications/debug/infrared_test/application.fam create mode 100644 applications/debug/infrared_test/infrared_test.c diff --git a/applications/debug/infrared_test/application.fam b/applications/debug/infrared_test/application.fam new file mode 100644 index 00000000000..bfd7cd5d451 --- /dev/null +++ b/applications/debug/infrared_test/application.fam @@ -0,0 +1,8 @@ +App( + appid="infrared_test", + name="Infrared Test", + apptype=FlipperAppType.DEBUG, + entry_point="infrared_test_app", + fap_category="Debug", + targets=["f7"], +) diff --git a/applications/debug/infrared_test/infrared_test.c b/applications/debug/infrared_test/infrared_test.c new file mode 100644 index 00000000000..0187bd49d16 --- /dev/null +++ b/applications/debug/infrared_test/infrared_test.c @@ -0,0 +1,61 @@ +#include +#include + +#define TAG "InfraredTest" + +#define CARRIER_FREQ_HZ (38000UL) +#define CARRIER_DUTY (0.33f) + +#define BURST_DURATION_US (600UL) +#define BURST_COUNT (50UL) + +typedef struct { + bool level; + uint32_t count; +} InfraredTestApp; + +static FuriHalInfraredTxGetDataState + infrared_test_app_tx_data_callback(void* context, uint32_t* duration, bool* level) { + furi_assert(context); + furi_assert(duration); + furi_assert(level); + + InfraredTestApp* app = context; + + *duration = BURST_DURATION_US; + *level = app->level; + + app->level = !app->level; + app->count += 1; + + if(app->count < BURST_COUNT * 2) { + return FuriHalInfraredTxGetDataStateOk; + } else { + return FuriHalInfraredTxGetDataStateLastDone; + } +} + +int32_t infrared_test_app(void* arg) { + UNUSED(arg); + + InfraredTestApp app = { + .level = true, + }; + + FURI_LOG_I(TAG, "Starting test signal on PA7"); + + furi_hal_infrared_set_tx_output(FuriHalInfraredTxPinExtPA7); + furi_hal_infrared_async_tx_set_data_isr_callback(infrared_test_app_tx_data_callback, &app); + furi_hal_infrared_async_tx_start(CARRIER_FREQ_HZ, CARRIER_DUTY); + furi_hal_infrared_async_tx_wait_termination(); + furi_hal_infrared_set_tx_output(FuriHalInfraredTxPinInternal); + + FURI_LOG_I(TAG, "Test signal end"); + FURI_LOG_I( + TAG, + "The measured signal should be %luus +-%.1fus", + (app.count - 1) * BURST_DURATION_US, + (double)1000000.0 / CARRIER_FREQ_HZ); + + return 0; +} diff --git a/targets/f7/furi_hal/furi_hal_infrared.c b/targets/f7/furi_hal/furi_hal_infrared.c index 029d103cb59..a1169391d6b 100644 --- a/targets/f7/furi_hal/furi_hal_infrared.c +++ b/targets/f7/furi_hal/furi_hal_infrared.c @@ -54,6 +54,7 @@ typedef struct { typedef struct { float cycle_duration; + float cycle_remainder; FuriHalInfraredTxGetDataISRCallback data_callback; FuriHalInfraredTxSignalSentISRCallback signal_sent_callback; void* data_context; @@ -512,7 +513,11 @@ static void furi_hal_infrared_tx_fill_buffer(uint8_t buf_num, uint8_t polarity_s status = infrared_tim_tx.data_callback(infrared_tim_tx.data_context, &duration, &level); - uint32_t num_of_impulses = roundf(duration / infrared_tim_tx.cycle_duration); + const float num_of_impulses_f = + duration / infrared_tim_tx.cycle_duration + infrared_tim_tx.cycle_remainder; + const uint32_t num_of_impulses = roundf(num_of_impulses_f); + // Save the remainder (in carrier periods) for later use + infrared_tim_tx.cycle_remainder = num_of_impulses_f - num_of_impulses; if(num_of_impulses == 0) { if((*size == 0) && (status == FuriHalInfraredTxGetDataStateDone)) { @@ -521,7 +526,7 @@ static void furi_hal_infrared_tx_fill_buffer(uint8_t buf_num, uint8_t polarity_s */ status = FuriHalInfraredTxGetDataStateOk; } - } else if((num_of_impulses - 1) > 0xFFFF) { + } else if((num_of_impulses - 1) > UINT16_MAX) { infrared_tim_tx.tx_timing_rest_duration = num_of_impulses - 1; infrared_tim_tx.tx_timing_rest_status = status; infrared_tim_tx.tx_timing_rest_level = level; @@ -632,6 +637,7 @@ void furi_hal_infrared_async_tx_start(uint32_t freq, float duty_cycle) { infrared_tim_tx.stop_semaphore = furi_semaphore_alloc(1, 0); infrared_tim_tx.cycle_duration = 1000000.0 / freq; infrared_tim_tx.tx_timing_rest_duration = 0; + infrared_tim_tx.cycle_remainder = 0; furi_hal_infrared_tx_fill_buffer(0, INFRARED_POLARITY_SHIFT); @@ -655,7 +661,7 @@ void furi_hal_infrared_async_tx_start(uint32_t freq, float duty_cycle) { const GpioPin* tx_gpio = infrared_tx_pins[infrared_tx_output]; LL_GPIO_ResetOutputPin(tx_gpio->port, tx_gpio->pin); /* when disable it prevents false pulse */ furi_hal_gpio_init_ex( - tx_gpio, GpioModeAltFunctionPushPull, GpioPullUp, GpioSpeedHigh, GpioAltFn1TIM1); + tx_gpio, GpioModeAltFunctionPushPull, GpioPullNo, GpioSpeedHigh, GpioAltFn1TIM1); FURI_CRITICAL_ENTER(); LL_TIM_GenerateEvent_UPDATE(INFRARED_DMA_TIMER); /* TIMx_RCR -> Repetition counter */ From f4122a924af16c775673a81e78a396ee729dc634 Mon Sep 17 00:00:00 2001 From: Georgii Surkov <37121527+gsurkov@users.noreply.github.com> Date: Wed, 7 Aug 2024 04:49:41 +0100 Subject: [PATCH 17/22] [FL-3841] FuriEventLoop Pt.2 (#3703) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Abstract primitive type from main logic in FuriEventLoop * Remove message_queue_i.h * Add stream buffer support for event loop * Add semaphore support for event loop * Add temporary unit test workaround * Make the linter happy * Add mutex support for event loop * Implement event subscription and unsubscription while the event loop is running * Implement edge events * Fix leftover logical errors * Add event loop timer example application * Implement flag-based edge trigger and one-shot mode * Add event loop mutex example application * Only notify the event loop if stream buffer is at or above its trigger level * Reformat comments * Add event loop stream buffer example application * Add event loop multiple elements example application * Improve event loop flag names * Remove redundant signal handler as it is already handled by the event loop * Refactor Power service, improve ViewHolder * Use ViewHolder instead of ViewDispatcher in About app * Enable ViewDispatcher queue on construction, deprecate view_dispatcher_enable_queue() * Remove all invocations of view_dispatcher_enable_queue() * Remove app-scened-template * Remove missing library from target.json * Port Accessor app to ViewHolder * Make the linter happy * Add example_view_holder application, update ViewHolder docs * Add example_view_dispatcher application, update ViewDispatcher docs * Replace FuriSemaphore with FuriApiLock, remove workaround delay * Fix logical error * Fix another logical error * Use the sources directive to speed up compilation * Use constant define macro * Improve FuriEventLoop documentation * Improve FuriEventLoop documentation once more * Bump API Version * Gui: remove redundant checks from ViewDispatcher * Gui: remove dead ifs from ViewDispatcher Co-authored-by: Silent Co-authored-by: hedger Co-authored-by: あく --- .../debug/accessor/accessor_view_manager.cpp | 54 ++- .../debug/accessor/accessor_view_manager.h | 8 +- .../debug/battery_test_app/battery_test_app.c | 1 - .../debug/bt_debug_app/bt_debug_app.c | 1 - applications/debug/crash_test/crash_test.c | 1 - .../debug/display_test/display_test.c | 1 - .../event_loop_blink_test.c | 7 +- .../file_browser_test/file_browser_app.c | 2 - .../debug/lfrfid_debug/lfrfid_debug.c | 1 - applications/debug/locale_test/locale_test.c | 1 - .../debug/rpc_debug_app/rpc_debug_app.c | 1 - .../debug/subghz_test/subghz_test_app.c | 1 - .../text_box_view_test/text_box_view_test.c | 1 - applications/debug/uart_echo/uart_echo.c | 1 - .../unit_tests/tests/furi/furi_event_loop.c | 62 ++-- .../debug/unit_tests/tests/rpc/rpc_test.c | 47 ++- .../debug/unit_tests/unit_test_api_table_i.h | 10 +- applications/debug/usb_test/usb_test.c | 1 - .../example_ble_beacon/ble_beacon_app.c | 1 - .../example_event_loop/application.fam | 36 ++ .../example_event_loop_multi.c | 342 ++++++++++++++++++ .../example_event_loop_mutex.c | 140 +++++++ .../example_event_loop_stream_buffer.c | 131 +++++++ .../example_event_loop_timer.c | 87 +++++ .../example_view_dispatcher/application.fam | 8 + .../example_view_dispatcher.c | 173 +++++++++ .../example_view_holder/application.fam | 8 + .../example_view_holder/example_view_holder.c | 78 ++++ applications/main/archive/archive.c | 1 - applications/main/bad_usb/bad_usb_app.c | 2 - applications/main/gpio/gpio_app.c | 1 - applications/main/ibutton/ibutton.c | 1 - applications/main/infrared/infrared_app.c | 1 - applications/main/lfrfid/lfrfid.c | 1 - applications/main/nfc/nfc_app.c | 1 - applications/main/subghz/subghz.c | 1 - applications/main/u2f/u2f_app.c | 1 - applications/services/desktop/desktop.c | 1 - .../dialogs/dialogs_module_file_browser.c | 3 +- .../services/dialogs/dialogs_module_message.c | 3 +- applications/services/dolphin/dolphin.c | 6 +- applications/services/gui/view_dispatcher.c | 89 ++--- applications/services/gui/view_dispatcher.h | 31 +- applications/services/gui/view_dispatcher_i.h | 4 +- applications/services/gui/view_holder.c | 65 ++-- applications/services/gui/view_holder.h | 52 ++- .../services/loader/loader_applications.c | 5 +- applications/services/loader/loader_menu.c | 2 - applications/services/power/power_cli.c | 6 +- .../services/power/power_service/power.c | 294 +++++++++------ .../services/power/power_service/power.h | 5 +- .../services/power/power_service/power_api.c | 78 ++-- .../services/power/power_service/power_i.h | 46 ++- applications/services/rpc/rpc_system.c | 13 +- applications/services/storage/storage_cli.c | 5 +- applications/settings/about/about.c | 23 +- .../bt_settings_app/bt_settings_app.c | 1 - .../desktop_settings/desktop_settings_app.c | 1 - .../expansion_settings_app.c | 1 - .../notification_settings_app.c | 1 - .../power_settings_app/power_settings_app.c | 1 - .../power_settings_scene_reboot_confirm.c | 6 +- .../storage_settings_scene_factory_reset.c | 4 +- .../storage_settings/storage_settings.c | 1 - .../settings/system/system_settings.c | 1 - applications/system/hid_app/hid.c | 1 - applications/system/js_app/js_app.c | 1 - .../system/js_app/modules/js_submenu.c | 3 +- .../system/js_app/modules/js_textbox.c | 9 +- applications/system/updater/updater.c | 2 - furi/core/event_loop.c | 287 ++++++++++----- furi/core/event_loop.h | 166 ++++++++- furi/core/event_loop_i.h | 11 +- furi/core/event_loop_link_i.h | 7 +- furi/core/message_queue.c | 12 +- furi/core/message_queue_i.h | 6 - furi/core/mutex.c | 42 ++- furi/core/semaphore.c | 67 +++- furi/core/semaphore.h | 8 + furi/core/stream_buffer.c | 65 +++- lib/SConscript | 1 - lib/app-scened-template/generic_scene.hpp | 10 - lib/app-scened-template/record_controller.hpp | 47 --- lib/app-scened-template/scene_controller.hpp | 246 ------------- lib/app-scened-template/text_store.cpp | 18 - lib/app-scened-template/text_store.h | 12 - lib/app-scened-template/typeindex_no_rtti.hpp | 129 ------- lib/app-scened-template/view_controller.hpp | 170 --------- .../view_modules/byte_input_vm.cpp | 32 -- .../view_modules/byte_input_vm.h | 37 -- .../view_modules/dialog_ex_vm.cpp | 61 ---- .../view_modules/dialog_ex_vm.h | 73 ---- .../view_modules/generic_view_module.h | 10 - .../view_modules/popup_vm.cpp | 56 --- .../view_modules/popup_vm.h | 68 ---- .../view_modules/submenu_vm.cpp | 33 -- .../view_modules/submenu_vm.h | 42 --- .../view_modules/text_input_vm.cpp | 39 -- .../view_modules/text_input_vm.h | 41 --- lib/appframe.scons | 29 -- lib/toolbox/api_lock.h | 4 + targets/f18/api_symbols.csv | 16 +- targets/f18/target.json | 1 - targets/f7/api_symbols.csv | 16 +- targets/f7/target.json | 1 - 105 files changed, 2096 insertions(+), 1746 deletions(-) create mode 100644 applications/examples/example_event_loop/application.fam create mode 100644 applications/examples/example_event_loop/example_event_loop_multi.c create mode 100644 applications/examples/example_event_loop/example_event_loop_mutex.c create mode 100644 applications/examples/example_event_loop/example_event_loop_stream_buffer.c create mode 100644 applications/examples/example_event_loop/example_event_loop_timer.c create mode 100644 applications/examples/example_view_dispatcher/application.fam create mode 100644 applications/examples/example_view_dispatcher/example_view_dispatcher.c create mode 100644 applications/examples/example_view_holder/application.fam create mode 100644 applications/examples/example_view_holder/example_view_holder.c delete mode 100644 furi/core/message_queue_i.h delete mode 100644 lib/app-scened-template/generic_scene.hpp delete mode 100644 lib/app-scened-template/record_controller.hpp delete mode 100644 lib/app-scened-template/scene_controller.hpp delete mode 100644 lib/app-scened-template/text_store.cpp delete mode 100644 lib/app-scened-template/text_store.h delete mode 100644 lib/app-scened-template/typeindex_no_rtti.hpp delete mode 100644 lib/app-scened-template/view_controller.hpp delete mode 100644 lib/app-scened-template/view_modules/byte_input_vm.cpp delete mode 100644 lib/app-scened-template/view_modules/byte_input_vm.h delete mode 100644 lib/app-scened-template/view_modules/dialog_ex_vm.cpp delete mode 100644 lib/app-scened-template/view_modules/dialog_ex_vm.h delete mode 100644 lib/app-scened-template/view_modules/generic_view_module.h delete mode 100644 lib/app-scened-template/view_modules/popup_vm.cpp delete mode 100644 lib/app-scened-template/view_modules/popup_vm.h delete mode 100644 lib/app-scened-template/view_modules/submenu_vm.cpp delete mode 100644 lib/app-scened-template/view_modules/submenu_vm.h delete mode 100644 lib/app-scened-template/view_modules/text_input_vm.cpp delete mode 100644 lib/app-scened-template/view_modules/text_input_vm.h delete mode 100644 lib/appframe.scons diff --git a/applications/debug/accessor/accessor_view_manager.cpp b/applications/debug/accessor/accessor_view_manager.cpp index 955c0b28673..aeb90c29748 100644 --- a/applications/debug/accessor/accessor_view_manager.cpp +++ b/applications/debug/accessor/accessor_view_manager.cpp @@ -5,45 +5,49 @@ AccessorAppViewManager::AccessorAppViewManager() { event_queue = furi_message_queue_alloc(10, sizeof(AccessorEvent)); - view_dispatcher = view_dispatcher_alloc(); - auto callback = cbc::obtain_connector(this, &AccessorAppViewManager::previous_view_callback); + view_holder = view_holder_alloc(); + auto callback = + cbc::obtain_connector(this, &AccessorAppViewManager::view_holder_back_callback); // allocate views submenu = submenu_alloc(); - add_view(ViewType::Submenu, submenu_get_view(submenu)); - popup = popup_alloc(); - add_view(ViewType::Popup, popup_get_view(popup)); - gui = static_cast(furi_record_open(RECORD_GUI)); - view_dispatcher_attach_to_gui(view_dispatcher, gui, ViewDispatcherTypeFullscreen); + // set back callback + view_holder_set_back_callback(view_holder, callback, NULL); - // set previous view callback for all views - view_set_previous_callback(submenu_get_view(submenu), callback); - view_set_previous_callback(popup_get_view(popup), callback); + gui = static_cast(furi_record_open(RECORD_GUI)); + view_holder_attach_to_gui(view_holder, gui); } AccessorAppViewManager::~AccessorAppViewManager() { - // remove views - view_dispatcher_remove_view( - view_dispatcher, static_cast(AccessorAppViewManager::ViewType::Submenu)); - view_dispatcher_remove_view( - view_dispatcher, static_cast(AccessorAppViewManager::ViewType::Popup)); - + // remove current view + view_holder_set_view(view_holder, NULL); // free view modules furi_record_close(RECORD_GUI); submenu_free(submenu); popup_free(popup); - - // free dispatcher - view_dispatcher_free(view_dispatcher); - + // free view holder + view_holder_free(view_holder); // free event queue furi_message_queue_free(event_queue); } void AccessorAppViewManager::switch_to(ViewType type) { - view_dispatcher_switch_to_view(view_dispatcher, static_cast(type)); + View* view; + + switch(type) { + case ViewType::Submenu: + view = submenu_get_view(submenu); + break; + case ViewType::Popup: + view = popup_get_view(popup); + break; + default: + furi_crash(); + } + + view_holder_set_view(view_holder, view); } Submenu* AccessorAppViewManager::get_submenu() { @@ -65,16 +69,10 @@ void AccessorAppViewManager::send_event(AccessorEvent* event) { furi_check(result == FuriStatusOk); } -uint32_t AccessorAppViewManager::previous_view_callback(void*) { +void AccessorAppViewManager::view_holder_back_callback(void*) { if(event_queue != NULL) { AccessorEvent event; event.type = AccessorEvent::Type::Back; send_event(&event); } - - return VIEW_IGNORE; -} - -void AccessorAppViewManager::add_view(ViewType view_type, View* view) { - view_dispatcher_add_view(view_dispatcher, static_cast(view_type), view); } diff --git a/applications/debug/accessor/accessor_view_manager.h b/applications/debug/accessor/accessor_view_manager.h index 66e54e41cec..c0a12cbe8e0 100644 --- a/applications/debug/accessor/accessor_view_manager.h +++ b/applications/debug/accessor/accessor_view_manager.h @@ -1,6 +1,6 @@ #pragma once #include -#include +#include #include #include #include "accessor_event.h" @@ -10,7 +10,6 @@ class AccessorAppViewManager { enum class ViewType : uint8_t { Submenu, Popup, - Tune, }; FuriMessageQueue* event_queue; @@ -27,11 +26,10 @@ class AccessorAppViewManager { Popup* get_popup(void); private: - ViewDispatcher* view_dispatcher; Gui* gui; + ViewHolder* view_holder; - uint32_t previous_view_callback(void* context); - void add_view(ViewType view_type, View* view); + void view_holder_back_callback(void* context); // view elements Submenu* submenu; diff --git a/applications/debug/battery_test_app/battery_test_app.c b/applications/debug/battery_test_app/battery_test_app.c index 5f9934e7779..363c8f4d52e 100644 --- a/applications/debug/battery_test_app/battery_test_app.c +++ b/applications/debug/battery_test_app/battery_test_app.c @@ -42,7 +42,6 @@ BatteryTestApp* battery_test_alloc(void) { // View dispatcher app->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); view_dispatcher_set_tick_event_callback( app->view_dispatcher, battery_test_battery_info_update_model, 500); diff --git a/applications/debug/bt_debug_app/bt_debug_app.c b/applications/debug/bt_debug_app/bt_debug_app.c index 109feee6029..56c67e3e666 100644 --- a/applications/debug/bt_debug_app/bt_debug_app.c +++ b/applications/debug/bt_debug_app/bt_debug_app.c @@ -36,7 +36,6 @@ BtDebugApp* bt_debug_app_alloc(void) { // View dispatcher app->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); // Views diff --git a/applications/debug/crash_test/crash_test.c b/applications/debug/crash_test/crash_test.c index ae0074fe1c2..2b2be13d624 100644 --- a/applications/debug/crash_test/crash_test.c +++ b/applications/debug/crash_test/crash_test.c @@ -66,7 +66,6 @@ CrashTest* crash_test_alloc(void) { instance->gui = furi_record_open(RECORD_GUI); instance->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(instance->view_dispatcher); view_dispatcher_attach_to_gui( instance->view_dispatcher, instance->gui, ViewDispatcherTypeFullscreen); diff --git a/applications/debug/display_test/display_test.c b/applications/debug/display_test/display_test.c index 3028a13b905..3b742906d6b 100644 --- a/applications/debug/display_test/display_test.c +++ b/applications/debug/display_test/display_test.c @@ -126,7 +126,6 @@ DisplayTest* display_test_alloc(void) { instance->gui = furi_record_open(RECORD_GUI); instance->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(instance->view_dispatcher); view_dispatcher_attach_to_gui( instance->view_dispatcher, instance->gui, ViewDispatcherTypeFullscreen); diff --git a/applications/debug/event_loop_blink_test/event_loop_blink_test.c b/applications/debug/event_loop_blink_test/event_loop_blink_test.c index 5c7e0ce558c..7f00e63f2e0 100644 --- a/applications/debug/event_loop_blink_test/event_loop_blink_test.c +++ b/applications/debug/event_loop_blink_test/event_loop_blink_test.c @@ -82,7 +82,8 @@ static void view_port_input_callback(InputEvent* input_event, void* context) { furi_message_queue_put(app->input_queue, input_event, 0); } -static bool input_queue_callback(FuriMessageQueue* queue, void* context) { +static bool input_queue_callback(FuriEventLoopObject* object, void* context) { + FuriMessageQueue* queue = object; EventLoopBlinkTestApp* app = context; InputEvent event; @@ -144,7 +145,7 @@ int32_t event_loop_blink_test_app(void* arg) { gui_add_view_port(gui, view_port, GuiLayerFullscreen); furi_event_loop_tick_set(app.event_loop, 500, event_loop_tick_callback, &app); - furi_event_loop_message_queue_subscribe( + furi_event_loop_subscribe_message_queue( app.event_loop, app.input_queue, FuriEventLoopEventIn, input_queue_callback, &app); furi_event_loop_run(app.event_loop); @@ -154,7 +155,7 @@ int32_t event_loop_blink_test_app(void* arg) { furi_record_close(RECORD_GUI); - furi_event_loop_message_queue_unsubscribe(app.event_loop, app.input_queue); + furi_event_loop_unsubscribe(app.event_loop, app.input_queue); furi_message_queue_free(app.input_queue); for(size_t i = 0; i < TIMER_COUNT; ++i) { diff --git a/applications/debug/file_browser_test/file_browser_app.c b/applications/debug/file_browser_test/file_browser_app.c index c3e7c898bf0..a502a8a90b2 100644 --- a/applications/debug/file_browser_test/file_browser_app.c +++ b/applications/debug/file_browser_test/file_browser_app.c @@ -33,8 +33,6 @@ FileBrowserApp* file_browser_app_alloc(char* arg) { app->dialogs = furi_record_open(RECORD_DIALOGS); app->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(app->view_dispatcher); - app->scene_manager = scene_manager_alloc(&file_browser_scene_handlers, app); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); diff --git a/applications/debug/lfrfid_debug/lfrfid_debug.c b/applications/debug/lfrfid_debug/lfrfid_debug.c index 13c0b299fa3..962afd1c30f 100644 --- a/applications/debug/lfrfid_debug/lfrfid_debug.c +++ b/applications/debug/lfrfid_debug/lfrfid_debug.c @@ -17,7 +17,6 @@ static LfRfidDebug* lfrfid_debug_alloc(void) { app->view_dispatcher = view_dispatcher_alloc(); app->scene_manager = scene_manager_alloc(&lfrfid_debug_scene_handlers, app); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); view_dispatcher_set_custom_event_callback( app->view_dispatcher, lfrfid_debug_custom_event_callback); diff --git a/applications/debug/locale_test/locale_test.c b/applications/debug/locale_test/locale_test.c index 1ca077db1fc..51d45a6b052 100644 --- a/applications/debug/locale_test/locale_test.c +++ b/applications/debug/locale_test/locale_test.c @@ -61,7 +61,6 @@ static LocaleTestApp* locale_test_alloc(void) { // View dispatcher app->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); // Views diff --git a/applications/debug/rpc_debug_app/rpc_debug_app.c b/applications/debug/rpc_debug_app/rpc_debug_app.c index 5e53c221e17..1536b8918e9 100644 --- a/applications/debug/rpc_debug_app/rpc_debug_app.c +++ b/applications/debug/rpc_debug_app/rpc_debug_app.c @@ -99,7 +99,6 @@ static RpcDebugApp* rpc_debug_app_alloc(void) { view_dispatcher_set_tick_event_callback( app->view_dispatcher, rpc_debug_app_tick_event_callback, 100); view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); - view_dispatcher_enable_queue(app->view_dispatcher); app->widget = widget_alloc(); view_dispatcher_add_view( diff --git a/applications/debug/subghz_test/subghz_test_app.c b/applications/debug/subghz_test/subghz_test_app.c index 6eba864f6e7..dccdac213de 100644 --- a/applications/debug/subghz_test/subghz_test_app.c +++ b/applications/debug/subghz_test/subghz_test_app.c @@ -30,7 +30,6 @@ SubGhzTestApp* subghz_test_app_alloc(void) { // View Dispatcher app->view_dispatcher = view_dispatcher_alloc(); app->scene_manager = scene_manager_alloc(&subghz_test_scene_handlers, app); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); view_dispatcher_set_custom_event_callback( diff --git a/applications/debug/text_box_view_test/text_box_view_test.c b/applications/debug/text_box_view_test/text_box_view_test.c index 7bbcb285b8d..4d63e37793b 100644 --- a/applications/debug/text_box_view_test/text_box_view_test.c +++ b/applications/debug/text_box_view_test/text_box_view_test.c @@ -126,7 +126,6 @@ int32_t text_box_view_test_app(void* p) { Gui* gui = furi_record_open(RECORD_GUI); ViewDispatcher* view_dispatcher = view_dispatcher_alloc(); view_dispatcher_attach_to_gui(view_dispatcher, gui, ViewDispatcherTypeFullscreen); - view_dispatcher_enable_queue(view_dispatcher); TextBoxViewTest instance = { .text_box = text_box_alloc(), diff --git a/applications/debug/uart_echo/uart_echo.c b/applications/debug/uart_echo/uart_echo.c index 595a13ac5ed..be807168aef 100644 --- a/applications/debug/uart_echo/uart_echo.c +++ b/applications/debug/uart_echo/uart_echo.c @@ -242,7 +242,6 @@ static UartEchoApp* uart_echo_app_alloc(uint32_t baudrate) { // View dispatcher app->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); // Views diff --git a/applications/debug/unit_tests/tests/furi/furi_event_loop.c b/applications/debug/unit_tests/tests/furi/furi_event_loop.c index 4eeecb2b839..291181c77f5 100644 --- a/applications/debug/unit_tests/tests/furi/furi_event_loop.c +++ b/applications/debug/unit_tests/tests/furi/furi_event_loop.c @@ -19,25 +19,24 @@ typedef struct { uint32_t consumer_counter; } TestFuriData; -bool test_furi_event_loop_producer_mq_callback(FuriMessageQueue* queue, void* context) { +bool test_furi_event_loop_producer_mq_callback(FuriEventLoopObject* object, void* context) { furi_check(context); TestFuriData* data = context; - furi_check(data->mq == queue, "Invalid queue"); + furi_check(data->mq == object, "Invalid queue"); FURI_LOG_I( TAG, "producer_mq_callback: %lu %lu", data->producer_counter, data->consumer_counter); - // Remove and add should not cause crash - // if(data->producer_counter == EVENT_LOOP_EVENT_COUNT/2) { - // furi_event_loop_message_queue_remove(data->producer_event_loop, data->mq); - // furi_event_loop_message_queue_add( - // data->producer_event_loop, - // data->mq, - // FuriEventLoopEventOut, - // test_furi_event_loop_producer_mq_callback, - // data); - // } + if(data->producer_counter == EVENT_LOOP_EVENT_COUNT / 2) { + furi_event_loop_unsubscribe(data->producer_event_loop, data->mq); + furi_event_loop_subscribe_message_queue( + data->producer_event_loop, + data->mq, + FuriEventLoopEventOut, + test_furi_event_loop_producer_mq_callback, + data); + } if(data->producer_counter == EVENT_LOOP_EVENT_COUNT) { furi_event_loop_stop(data->producer_event_loop); @@ -61,7 +60,7 @@ int32_t test_furi_event_loop_producer(void* p) { FURI_LOG_I(TAG, "producer start 1st run"); data->producer_event_loop = furi_event_loop_alloc(); - furi_event_loop_message_queue_subscribe( + furi_event_loop_subscribe_message_queue( data->producer_event_loop, data->mq, FuriEventLoopEventOut, @@ -73,7 +72,7 @@ int32_t test_furi_event_loop_producer(void* p) { // 2 EventLoop index, 0xFFFFFFFF - all possible flags, emulate uncleared flags xTaskNotifyIndexed(xTaskGetCurrentTaskHandle(), 2, 0xFFFFFFFF, eSetBits); - furi_event_loop_message_queue_unsubscribe(data->producer_event_loop, data->mq); + furi_event_loop_unsubscribe(data->producer_event_loop, data->mq); furi_event_loop_free(data->producer_event_loop); FURI_LOG_I(TAG, "producer start 2nd run"); @@ -81,7 +80,7 @@ int32_t test_furi_event_loop_producer(void* p) { data->producer_counter = 0; data->producer_event_loop = furi_event_loop_alloc(); - furi_event_loop_message_queue_subscribe( + furi_event_loop_subscribe_message_queue( data->producer_event_loop, data->mq, FuriEventLoopEventOut, @@ -90,7 +89,7 @@ int32_t test_furi_event_loop_producer(void* p) { furi_event_loop_run(data->producer_event_loop); - furi_event_loop_message_queue_unsubscribe(data->producer_event_loop, data->mq); + furi_event_loop_unsubscribe(data->producer_event_loop, data->mq); furi_event_loop_free(data->producer_event_loop); FURI_LOG_I(TAG, "producer end"); @@ -98,11 +97,11 @@ int32_t test_furi_event_loop_producer(void* p) { return 0; } -bool test_furi_event_loop_consumer_mq_callback(FuriMessageQueue* queue, void* context) { +bool test_furi_event_loop_consumer_mq_callback(FuriEventLoopObject* object, void* context) { furi_check(context); TestFuriData* data = context; - furi_check(data->mq == queue); + furi_check(data->mq == object); furi_delay_us(furi_hal_random_get() % 1000); furi_check(furi_message_queue_get(data->mq, &data->consumer_counter, 0) == FuriStatusOk); @@ -110,16 +109,15 @@ bool test_furi_event_loop_consumer_mq_callback(FuriMessageQueue* queue, void* co FURI_LOG_I( TAG, "consumer_mq_callback: %lu %lu", data->producer_counter, data->consumer_counter); - // Remove and add should not cause crash - // if(data->producer_counter == EVENT_LOOP_EVENT_COUNT/2) { - // furi_event_loop_message_queue_remove(data->consumer_event_loop, data->mq); - // furi_event_loop_message_queue_add( - // data->consumer_event_loop, - // data->mq, - // FuriEventLoopEventIn, - // test_furi_event_loop_producer_mq_callback, - // data); - // } + if(data->consumer_counter == EVENT_LOOP_EVENT_COUNT / 2) { + furi_event_loop_unsubscribe(data->consumer_event_loop, data->mq); + furi_event_loop_subscribe_message_queue( + data->consumer_event_loop, + data->mq, + FuriEventLoopEventIn, + test_furi_event_loop_consumer_mq_callback, + data); + } if(data->consumer_counter == EVENT_LOOP_EVENT_COUNT) { furi_event_loop_stop(data->consumer_event_loop); @@ -137,7 +135,7 @@ int32_t test_furi_event_loop_consumer(void* p) { FURI_LOG_I(TAG, "consumer start 1st run"); data->consumer_event_loop = furi_event_loop_alloc(); - furi_event_loop_message_queue_subscribe( + furi_event_loop_subscribe_message_queue( data->consumer_event_loop, data->mq, FuriEventLoopEventIn, @@ -149,14 +147,14 @@ int32_t test_furi_event_loop_consumer(void* p) { // 2 EventLoop index, 0xFFFFFFFF - all possible flags, emulate uncleared flags xTaskNotifyIndexed(xTaskGetCurrentTaskHandle(), 2, 0xFFFFFFFF, eSetBits); - furi_event_loop_message_queue_unsubscribe(data->consumer_event_loop, data->mq); + furi_event_loop_unsubscribe(data->consumer_event_loop, data->mq); furi_event_loop_free(data->consumer_event_loop); FURI_LOG_I(TAG, "consumer start 2nd run"); data->consumer_counter = 0; data->consumer_event_loop = furi_event_loop_alloc(); - furi_event_loop_message_queue_subscribe( + furi_event_loop_subscribe_message_queue( data->consumer_event_loop, data->mq, FuriEventLoopEventIn, @@ -165,7 +163,7 @@ int32_t test_furi_event_loop_consumer(void* p) { furi_event_loop_run(data->consumer_event_loop); - furi_event_loop_message_queue_unsubscribe(data->consumer_event_loop, data->mq); + furi_event_loop_unsubscribe(data->consumer_event_loop, data->mq); furi_event_loop_free(data->consumer_event_loop); FURI_LOG_I(TAG, "consumer end"); diff --git a/applications/debug/unit_tests/tests/rpc/rpc_test.c b/applications/debug/unit_tests/tests/rpc/rpc_test.c index 63ea706ed66..5d26bdb3066 100644 --- a/applications/debug/unit_tests/tests/rpc/rpc_test.c +++ b/applications/debug/unit_tests/tests/rpc/rpc_test.c @@ -8,6 +8,7 @@ #include #include +#include #include #include @@ -35,8 +36,8 @@ static uint32_t command_id = 0; typedef struct { RpcSession* session; FuriStreamBuffer* output_stream; - FuriSemaphore* close_session_semaphore; - FuriSemaphore* terminate_semaphore; + FuriApiLock session_close_lock; + FuriApiLock session_terminate_lock; uint32_t timeout; } RpcSessionContext; @@ -92,8 +93,8 @@ static void test_rpc_setup(void) { rpc_session[0].output_stream = furi_stream_buffer_alloc(4096, 1); rpc_session_set_send_bytes_callback(rpc_session[0].session, output_bytes_callback); - rpc_session[0].close_session_semaphore = furi_semaphore_alloc(1, 0); - rpc_session[0].terminate_semaphore = furi_semaphore_alloc(1, 0); + rpc_session[0].session_close_lock = api_lock_alloc_locked(); + rpc_session[0].session_terminate_lock = api_lock_alloc_locked(); rpc_session_set_close_callback(rpc_session[0].session, test_rpc_session_close_callback); rpc_session_set_terminated_callback( rpc_session[0].session, test_rpc_session_terminated_callback); @@ -112,8 +113,8 @@ static void test_rpc_setup_second_session(void) { rpc_session[1].output_stream = furi_stream_buffer_alloc(1000, 1); rpc_session_set_send_bytes_callback(rpc_session[1].session, output_bytes_callback); - rpc_session[1].close_session_semaphore = furi_semaphore_alloc(1, 0); - rpc_session[1].terminate_semaphore = furi_semaphore_alloc(1, 0); + rpc_session[1].session_close_lock = api_lock_alloc_locked(); + rpc_session[1].session_terminate_lock = api_lock_alloc_locked(); rpc_session_set_close_callback(rpc_session[1].session, test_rpc_session_close_callback); rpc_session_set_terminated_callback( rpc_session[1].session, test_rpc_session_terminated_callback); @@ -121,36 +122,32 @@ static void test_rpc_setup_second_session(void) { } static void test_rpc_teardown(void) { - furi_check(rpc_session[0].close_session_semaphore); - furi_semaphore_acquire(rpc_session[0].terminate_semaphore, 0); + furi_check(rpc_session[0].session_close_lock); + api_lock_relock(rpc_session[0].session_terminate_lock); rpc_session_close(rpc_session[0].session); - furi_check( - furi_semaphore_acquire(rpc_session[0].terminate_semaphore, FuriWaitForever) == - FuriStatusOk); + api_lock_wait_unlock(rpc_session[0].session_terminate_lock); furi_record_close(RECORD_RPC); furi_stream_buffer_free(rpc_session[0].output_stream); - furi_semaphore_free(rpc_session[0].close_session_semaphore); - furi_semaphore_free(rpc_session[0].terminate_semaphore); + api_lock_free(rpc_session[0].session_close_lock); + api_lock_free(rpc_session[0].session_terminate_lock); ++command_id; rpc_session[0].output_stream = NULL; - rpc_session[0].close_session_semaphore = NULL; + rpc_session[0].session_close_lock = NULL; rpc = NULL; rpc_session[0].session = NULL; } static void test_rpc_teardown_second_session(void) { - furi_check(rpc_session[1].close_session_semaphore); - furi_semaphore_acquire(rpc_session[1].terminate_semaphore, 0); + furi_check(rpc_session[1].session_close_lock); + api_lock_relock(rpc_session[1].session_terminate_lock); rpc_session_close(rpc_session[1].session); - furi_check( - furi_semaphore_acquire(rpc_session[1].terminate_semaphore, FuriWaitForever) == - FuriStatusOk); + api_lock_wait_unlock(rpc_session[1].session_terminate_lock); furi_stream_buffer_free(rpc_session[1].output_stream); - furi_semaphore_free(rpc_session[1].close_session_semaphore); - furi_semaphore_free(rpc_session[1].terminate_semaphore); + api_lock_free(rpc_session[1].session_close_lock); + api_lock_free(rpc_session[1].session_terminate_lock); ++command_id; rpc_session[1].output_stream = NULL; - rpc_session[1].close_session_semaphore = NULL; + rpc_session[1].session_close_lock = NULL; rpc_session[1].session = NULL; } @@ -204,14 +201,14 @@ static void test_rpc_session_close_callback(void* context) { furi_check(context); RpcSessionContext* callbacks_context = context; - furi_check(furi_semaphore_release(callbacks_context->close_session_semaphore) == FuriStatusOk); + api_lock_unlock(callbacks_context->session_close_lock); } static void test_rpc_session_terminated_callback(void* context) { furi_check(context); RpcSessionContext* callbacks_context = context; - furi_check(furi_semaphore_release(callbacks_context->terminate_semaphore) == FuriStatusOk); + api_lock_unlock(callbacks_context->session_terminate_lock); } static void test_rpc_print_message_list(MsgList_t msg_list) { @@ -1645,7 +1642,7 @@ static void test_rpc_feed_rubbish_run( test_rpc_add_empty_to_list(expected, PB_CommandStatus_ERROR_DECODE, 0); - furi_check(furi_semaphore_acquire(rpc_session[0].close_session_semaphore, 0) != FuriStatusOk); + furi_check(api_lock_is_locked(rpc_session[0].session_close_lock)); test_rpc_encode_and_feed(input_before, 0); test_send_rubbish(rpc_session[0].session, pattern, pattern_size, size); test_rpc_encode_and_feed(input_after, 0); diff --git a/applications/debug/unit_tests/unit_test_api_table_i.h b/applications/debug/unit_tests/unit_test_api_table_i.h index 1adec4db26c..50524e5b7d0 100644 --- a/applications/debug/unit_tests/unit_test_api_table_i.h +++ b/applications/debug/unit_tests/unit_test_api_table_i.h @@ -36,14 +36,10 @@ static constexpr auto unit_tests_api_table = sort(create_array_t( API_METHOD(furi_event_loop_alloc, FuriEventLoop*, (void)), API_METHOD(furi_event_loop_free, void, (FuriEventLoop*)), API_METHOD( - furi_event_loop_message_queue_subscribe, + furi_event_loop_subscribe_message_queue, void, - (FuriEventLoop*, - FuriMessageQueue*, - FuriEventLoopEvent, - FuriEventLoopMessageQueueCallback, - void*)), - API_METHOD(furi_event_loop_message_queue_unsubscribe, void, (FuriEventLoop*, FuriMessageQueue*)), + (FuriEventLoop*, FuriMessageQueue*, FuriEventLoopEvent, FuriEventLoopEventCallback, void*)), + API_METHOD(furi_event_loop_unsubscribe, void, (FuriEventLoop*, FuriEventLoopObject*)), API_METHOD(furi_event_loop_run, void, (FuriEventLoop*)), API_METHOD(furi_event_loop_stop, void, (FuriEventLoop*)), API_VARIABLE(PB_Main_msg, PB_Main_msg_t))); diff --git a/applications/debug/usb_test/usb_test.c b/applications/debug/usb_test/usb_test.c index ddec9d9b055..a71ac3c6e49 100644 --- a/applications/debug/usb_test/usb_test.c +++ b/applications/debug/usb_test/usb_test.c @@ -63,7 +63,6 @@ UsbTestApp* usb_test_app_alloc(void) { // View dispatcher app->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); // Views diff --git a/applications/examples/example_ble_beacon/ble_beacon_app.c b/applications/examples/example_ble_beacon/ble_beacon_app.c index faa3feb9154..16979543c89 100644 --- a/applications/examples/example_ble_beacon/ble_beacon_app.c +++ b/applications/examples/example_ble_beacon/ble_beacon_app.c @@ -75,7 +75,6 @@ static BleBeaconApp* ble_beacon_app_alloc(void) { view_dispatcher_set_tick_event_callback( app->view_dispatcher, ble_beacon_app_tick_event_callback, 100); view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); - view_dispatcher_enable_queue(app->view_dispatcher); app->submenu = submenu_alloc(); view_dispatcher_add_view( diff --git a/applications/examples/example_event_loop/application.fam b/applications/examples/example_event_loop/application.fam new file mode 100644 index 00000000000..a37ffb1a041 --- /dev/null +++ b/applications/examples/example_event_loop/application.fam @@ -0,0 +1,36 @@ +App( + appid="example_event_loop_timer", + name="Example: Event Loop Timer", + apptype=FlipperAppType.EXTERNAL, + sources=["example_event_loop_timer.c"], + entry_point="example_event_loop_timer_app", + fap_category="Examples", +) + +App( + appid="example_event_loop_mutex", + name="Example: Event Loop Mutex", + apptype=FlipperAppType.EXTERNAL, + sources=["example_event_loop_mutex.c"], + entry_point="example_event_loop_mutex_app", + fap_category="Examples", +) + +App( + appid="example_event_loop_stream_buffer", + name="Example: Event Loop Stream Buffer", + apptype=FlipperAppType.EXTERNAL, + sources=["example_event_loop_stream_buffer.c"], + entry_point="example_event_loop_stream_buffer_app", + fap_category="Examples", +) + +App( + appid="example_event_loop_multi", + name="Example: Event Loop Multi", + apptype=FlipperAppType.EXTERNAL, + sources=["example_event_loop_multi.c"], + entry_point="example_event_loop_multi_app", + requires=["gui"], + fap_category="Examples", +) diff --git a/applications/examples/example_event_loop/example_event_loop_multi.c b/applications/examples/example_event_loop/example_event_loop_multi.c new file mode 100644 index 00000000000..ebfb0091183 --- /dev/null +++ b/applications/examples/example_event_loop/example_event_loop_multi.c @@ -0,0 +1,342 @@ +/** + * @file example_event_loop_multi.c + * @brief Example application that demonstrates multiple primitives used with two FuriEventLoop instances. + * + * This application simulates a complex use case of having two concurrent event loops (each one executing in + * its own thread) using a stream buffer for communication and additional timers and message passing to handle + * the keypad input. Additionally, it shows how to use thread signals to stop an event loop in another thread. + * The GUI functionality is there only for the purpose of exclusive access to the input events. + * + * The application's functionality consists of the following: + * - Print keypad key names and types when pressed, + * - If the Back key is long-pressed, a countdown starts upon completion of which the app exits, + * - The countdown can be cancelled by long-pressing the Ok button, it also resets the counter, + * - Blocks of random data are periodically generated in a separate thread, + * - When ready, the main application thread gets notified and prints the data. + */ + +#include +#include +#include + +#include + +#define TAG "ExampleEventLoopMulti" + +#define COUNTDOWN_START_VALUE (5UL) +#define COUNTDOWN_INTERVAL_MS (1000UL) +#define WORKER_DATA_INTERVAL_MS (1500UL) + +#define INPUT_QUEUE_SIZE (8) +#define STREAM_BUFFER_SIZE (16) + +typedef struct { + FuriEventLoop* event_loop; + FuriEventLoopTimer* timer; + FuriStreamBuffer* stream_buffer; +} EventLoopMultiAppWorker; + +typedef struct { + Gui* gui; + ViewPort* view_port; + FuriThread* worker_thread; + FuriEventLoop* event_loop; + FuriMessageQueue* input_queue; + FuriEventLoopTimer* exit_timer; + FuriStreamBuffer* stream_buffer; + uint32_t exit_countdown_value; +} EventLoopMultiApp; + +/* + * Worker functions + */ + +// This function is executed each time the data is taken out of the stream buffer. It is used to restart the worker timer. +static bool + event_loop_multi_app_stream_buffer_worker_callback(FuriEventLoopObject* object, void* context) { + furi_assert(context); + EventLoopMultiAppWorker* worker = context; + + furi_assert(object == worker->stream_buffer); + + FURI_LOG_I(TAG, "Data was removed from buffer"); + // Restart the timer to generate another block of random data. + furi_event_loop_timer_start(worker->timer, WORKER_DATA_INTERVAL_MS); + + return true; +} + +// This function is executed when the worker timer expires. The timer will NOT restart automatically +// since it is of one-shot type. +static void event_loop_multi_app_worker_timer_callback(void* context) { + furi_assert(context); + EventLoopMultiAppWorker* worker = context; + + // Generate a block of random data. + uint8_t data[STREAM_BUFFER_SIZE]; + furi_hal_random_fill_buf(data, sizeof(data)); + // Put the generated data in the stream buffer. + // IMPORTANT: No waiting in the event handlers! + furi_check( + furi_stream_buffer_send(worker->stream_buffer, &data, sizeof(data), 0) == sizeof(data)); +} + +static EventLoopMultiAppWorker* + event_loop_multi_app_worker_alloc(FuriStreamBuffer* stream_buffer) { + EventLoopMultiAppWorker* worker = malloc(sizeof(EventLoopMultiAppWorker)); + // Create the worker event loop. + worker->event_loop = furi_event_loop_alloc(); + // Create the timer governing the data generation. + // It is of one-shot type, i.e. it will not restart automatically upon expiration. + worker->timer = furi_event_loop_timer_alloc( + worker->event_loop, + event_loop_multi_app_worker_timer_callback, + FuriEventLoopTimerTypeOnce, + worker); + + // Using the same stream buffer as the main thread (it was already created beforehand). + worker->stream_buffer = stream_buffer; + // Notify the worker event loop about data being taken out of the stream buffer. + furi_event_loop_subscribe_stream_buffer( + worker->event_loop, + worker->stream_buffer, + FuriEventLoopEventOut | FuriEventLoopEventFlagEdge, + event_loop_multi_app_stream_buffer_worker_callback, + worker); + + return worker; +} + +static void event_loop_multi_app_worker_free(EventLoopMultiAppWorker* worker) { + // IMPORTANT: The user code MUST unsubscribe from all events before deleting the event loop. + // Failure to do so will result in a crash. + furi_event_loop_unsubscribe(worker->event_loop, worker->stream_buffer); + // IMPORTANT: All timers MUST be deleted before deleting the associated event loop. + // Failure to do so will result in a crash. + furi_event_loop_timer_free(worker->timer); + // Now it is okay to delete the event loop. + furi_event_loop_free(worker->event_loop); + + free(worker); +} + +static void event_loop_multi_app_worker_run(EventLoopMultiAppWorker* worker) { + furi_event_loop_timer_start(worker->timer, WORKER_DATA_INTERVAL_MS); + furi_event_loop_run(worker->event_loop); +} + +// This function is the worker thread body and (obviously) is executed in the worker thread. +static int32_t event_loop_multi_app_worker_thread(void* context) { + furi_assert(context); + EventLoopMultiApp* app = context; + + // Because an event loop is used, it MUST be created in the thread it will be run in. + // Therefore, the worker creation and deletion is handled in the worker thread. + EventLoopMultiAppWorker* worker = event_loop_multi_app_worker_alloc(app->stream_buffer); + event_loop_multi_app_worker_run(worker); + event_loop_multi_app_worker_free(worker); + + return 0; +} + +/* + * Main application functions + */ + +// This function is executed in the GUI context each time an input event occurs (e.g. the user pressed a key) +static void event_loop_multi_app_input_callback(InputEvent* event, void* context) { + furi_assert(context); + EventLoopMultiApp* app = context; + // Pass the event to the the application's input queue + furi_check(furi_message_queue_put(app->input_queue, event, FuriWaitForever) == FuriStatusOk); +} + +// This function is executed each time new data is available in the stream buffer. +static bool + event_loop_multi_app_stream_buffer_callback(FuriEventLoopObject* object, void* context) { + furi_assert(context); + EventLoopMultiApp* app = context; + + furi_assert(object == app->stream_buffer); + // Get the data from the stream buffer + uint8_t data[STREAM_BUFFER_SIZE]; + // IMPORTANT: No waiting in the event handlers! + furi_check( + furi_stream_buffer_receive(app->stream_buffer, &data, sizeof(data), 0) == sizeof(data)); + + // Format the data for printing and print it to the debug output. + FuriString* tmp_str = furi_string_alloc(); + for(uint32_t i = 0; i < sizeof(data); ++i) { + furi_string_cat_printf(tmp_str, "%02X ", data[i]); + } + + FURI_LOG_I(TAG, "Received data: %s", furi_string_get_cstr(tmp_str)); + furi_string_free(tmp_str); + + return true; +} + +// This function is executed each time a new message is inserted in the input queue. +static bool event_loop_multi_app_input_queue_callback(FuriEventLoopObject* object, void* context) { + furi_assert(context); + EventLoopMultiApp* app = context; + + furi_assert(object == app->input_queue); + + InputEvent event; + // IMPORTANT: No waiting in the event handlers! + furi_check(furi_message_queue_get(app->input_queue, &event, 0) == FuriStatusOk); + + if(event.type == InputTypeLong) { + // The user has long-pressed the Back key, try starting the countdown. + if(event.key == InputKeyBack) { + if(!furi_event_loop_timer_is_running(app->exit_timer)) { + // Actually start the countdown + FURI_LOG_I(TAG, "Starting exit countdown!"); + furi_event_loop_timer_start(app->exit_timer, COUNTDOWN_INTERVAL_MS); + + } else { + // The countdown is already in progress, print a warning message + FURI_LOG_W(TAG, "Countdown has already been started"); + } + + // The user has long-pressed the Ok key, try stopping the countdown. + } else if(event.key == InputKeyOk) { + if(furi_event_loop_timer_is_running(app->exit_timer)) { + // Actually cancel the countdown + FURI_LOG_I(TAG, "Exit countdown cancelled!"); + app->exit_countdown_value = COUNTDOWN_START_VALUE; + furi_event_loop_timer_stop(app->exit_timer); + + } else { + // The countdown is not running, print a warning message + FURI_LOG_W(TAG, "Countdown has not been started yet"); + } + + } else { + // Not a Back or Ok key, just print its name. + FURI_LOG_I(TAG, "Long press: %s", input_get_key_name(event.key)); + } + + } else if(event.type == InputTypeShort) { + // Not a long press, just print the key's name. + FURI_LOG_I(TAG, "Short press: %s", input_get_key_name(event.key)); + } + + return true; +} + +// This function is executed each time the countdown timer expires. +static void event_loop_multi_app_exit_timer_callback(void* context) { + furi_assert(context); + EventLoopMultiApp* app = context; + + FURI_LOG_I(TAG, "Exiting in %lu ...", app->exit_countdown_value); + + // If the coundown value has reached 0, exit the application + if(app->exit_countdown_value == 0) { + FURI_LOG_I(TAG, "Exiting NOW!"); + + // Send a signal to the worker thread to exit. + // A signal handler that handles FuriSignalExit is already set by default. + furi_thread_signal(app->worker_thread, FuriSignalExit, NULL); + // Request the application event loop to stop. + furi_event_loop_stop(app->event_loop); + + // Otherwise just decrement it and wait for the next time the timer expires. + } else { + app->exit_countdown_value -= 1; + } +} + +static EventLoopMultiApp* event_loop_multi_app_alloc(void) { + EventLoopMultiApp* app = malloc(sizeof(EventLoopMultiApp)); + // Create event loop instances. + app->event_loop = furi_event_loop_alloc(); + + // Create a worker thread instance. The worker event loop will execute inside it. + app->worker_thread = furi_thread_alloc_ex( + "EventLoopMultiWorker", 1024, event_loop_multi_app_worker_thread, app); + // Create a message queue to receive the input events. + app->input_queue = furi_message_queue_alloc(INPUT_QUEUE_SIZE, sizeof(InputEvent)); + // Create a stream buffer to receive the generated data. + app->stream_buffer = furi_stream_buffer_alloc(STREAM_BUFFER_SIZE, STREAM_BUFFER_SIZE); + // Create a timer to run the countdown. + app->exit_timer = furi_event_loop_timer_alloc( + app->event_loop, + event_loop_multi_app_exit_timer_callback, + FuriEventLoopTimerTypePeriodic, + app); + + app->gui = furi_record_open(RECORD_GUI); + app->view_port = view_port_alloc(); + // Start the countdown from this value + app->exit_countdown_value = COUNTDOWN_START_VALUE; + // Gain exclusive access to the input events + view_port_input_callback_set(app->view_port, event_loop_multi_app_input_callback, app); + gui_add_view_port(app->gui, app->view_port, GuiLayerFullscreen); + // Notify the event loop about incoming messages in the queue + furi_event_loop_subscribe_message_queue( + app->event_loop, + app->input_queue, + FuriEventLoopEventIn, + event_loop_multi_app_input_queue_callback, + app); + // Notify the event loop about new data in the stream buffer + furi_event_loop_subscribe_stream_buffer( + app->event_loop, + app->stream_buffer, + FuriEventLoopEventIn | FuriEventLoopEventFlagEdge, + event_loop_multi_app_stream_buffer_callback, + app); + + return app; +} + +static void event_loop_multi_app_free(EventLoopMultiApp* app) { + gui_remove_view_port(app->gui, app->view_port); + furi_record_close(RECORD_GUI); + // IMPORTANT: The user code MUST unsubscribe from all events before deleting the event loop. + // Failure to do so will result in a crash. + furi_event_loop_unsubscribe(app->event_loop, app->input_queue); + furi_event_loop_unsubscribe(app->event_loop, app->stream_buffer); + // Delete all instances + view_port_free(app->view_port); + furi_message_queue_free(app->input_queue); + furi_stream_buffer_free(app->stream_buffer); + // IMPORTANT: All timers MUST be deleted before deleting the associated event loop. + // Failure to do so will result in a crash. + furi_event_loop_timer_free(app->exit_timer); + furi_thread_free(app->worker_thread); + furi_event_loop_free(app->event_loop); + + free(app); +} + +static void event_loop_multi_app_run(EventLoopMultiApp* app) { + FURI_LOG_I(TAG, "Press keys to see them printed here."); + FURI_LOG_I(TAG, "Long press \"Back\" to exit after %lu seconds.", COUNTDOWN_START_VALUE); + FURI_LOG_I(TAG, "Long press \"Ok\" to cancel the countdown."); + + // Start the worker thread + furi_thread_start(app->worker_thread); + // Run the application event loop. This call will block until the application is about to exit. + furi_event_loop_run(app->event_loop); + // Wait for the worker thread to finish. + furi_thread_join(app->worker_thread); +} + +/******************************************************************* + * vvv START HERE vvv + * + * The application's entry point - referenced in application.fam + *******************************************************************/ +int32_t example_event_loop_multi_app(void* arg) { + UNUSED(arg); + + EventLoopMultiApp* app = event_loop_multi_app_alloc(); + event_loop_multi_app_run(app); + event_loop_multi_app_free(app); + + return 0; +} diff --git a/applications/examples/example_event_loop/example_event_loop_mutex.c b/applications/examples/example_event_loop/example_event_loop_mutex.c new file mode 100644 index 00000000000..d043f3f8990 --- /dev/null +++ b/applications/examples/example_event_loop/example_event_loop_mutex.c @@ -0,0 +1,140 @@ +/** + * @file example_event_loop_mutex.c + * @brief Example application that demonstrates the FuriEventLoop and FuriMutex integration. + * + * This application simulates a use case where a time-consuming blocking operation is executed + * in a separate thread and a mutex is being used for synchronization. The application runs 10 iterations + * of the above mentioned simulated work and prints the results to the debug output each time, then exits. + */ + +#include +#include + +#define TAG "ExampleEventLoopMutex" + +#define WORKER_ITERATION_COUNT (10) +// We are interested in IN events (for the mutex, that means that the mutex has been released), +// using edge trigger mode (reacting only to changes in mutex state) and +// employing one-shot mode to automatically unsubscribe before the event is processed. +#define MUTEX_EVENT_AND_FLAGS \ + (FuriEventLoopEventIn | FuriEventLoopEventFlagEdge | FuriEventLoopEventFlagOnce) + +typedef struct { + FuriEventLoop* event_loop; + FuriThread* worker_thread; + FuriMutex* worker_mutex; + uint8_t worker_result; +} EventLoopMutexApp; + +// This funciton is being run in a separate thread to simulate lenghty blocking operations +static int32_t event_loop_mutex_app_worker_thread(void* context) { + furi_assert(context); + EventLoopMutexApp* app = context; + + FURI_LOG_I(TAG, "Worker thread started"); + + // Run 10 iterations of simulated work + for(uint32_t i = 0; i < WORKER_ITERATION_COUNT; ++i) { + FURI_LOG_I(TAG, "Doing work ..."); + // Take the mutex so that no-one can access the worker_result variable + furi_check(furi_mutex_acquire(app->worker_mutex, FuriWaitForever) == FuriStatusOk); + // Simulate a blocking operation with a random delay between 900 and 1100 ms + const uint32_t work_time_ms = 900 + furi_hal_random_get() % 200; + furi_delay_ms(work_time_ms); + // Simulate a result with a random number between 0 and 255 + app->worker_result = furi_hal_random_get() % 0xFF; + + FURI_LOG_I(TAG, "Work done in %lu ms", work_time_ms); + // Release the mutex, which will notify the event loop that the result is ready + furi_check(furi_mutex_release(app->worker_mutex) == FuriStatusOk); + // Return control to the scheduler so that the event loop can take the mutex in its turn + furi_thread_yield(); + } + + FURI_LOG_I(TAG, "All work done, worker thread out!"); + // Request the event loop to stop + furi_event_loop_stop(app->event_loop); + + return 0; +} + +// This function is being run each time when the mutex gets released +static bool event_loop_mutex_app_event_callback(FuriEventLoopObject* object, void* context) { + furi_assert(context); + + EventLoopMutexApp* app = context; + furi_assert(object == app->worker_mutex); + + // Take the mutex so that no-one can access the worker_result variable + // IMPORTANT: the wait time MUST be 0, i.e. the event loop event callbacks + // must NOT ever block. If it is possible that the mutex will be taken by + // others, then the event callback code must take it into account. + furi_check(furi_mutex_acquire(app->worker_mutex, 0) == FuriStatusOk); + // Access the worker_result variable and print it. + FURI_LOG_I(TAG, "Result available! Value: %u", app->worker_result); + // Release the mutex, enabling the worker thread to continue when it's ready + furi_check(furi_mutex_release(app->worker_mutex) == FuriStatusOk); + // Subscribe for the mutex release events again, since we were unsubscribed automatically + // before processing the event. + furi_event_loop_subscribe_mutex( + app->event_loop, + app->worker_mutex, + MUTEX_EVENT_AND_FLAGS, + event_loop_mutex_app_event_callback, + app); + + return true; +} + +static EventLoopMutexApp* event_loop_mutex_app_alloc(void) { + EventLoopMutexApp* app = malloc(sizeof(EventLoopMutexApp)); + + // Create an event loop instance. + app->event_loop = furi_event_loop_alloc(); + // Create a worker thread instance. + app->worker_thread = furi_thread_alloc_ex( + "EventLoopMutexWorker", 1024, event_loop_mutex_app_worker_thread, app); + // Create a mutex instance. + app->worker_mutex = furi_mutex_alloc(FuriMutexTypeNormal); + // Subscribe for the mutex release events. + // Note that since FuriEventLoopEventFlagOneShot is used, we will be automatically unsubscribed + // from events before entering the event processing callback. This is necessary in order to not + // trigger on events caused by releasing the mutex in the callback. + furi_event_loop_subscribe_mutex( + app->event_loop, + app->worker_mutex, + MUTEX_EVENT_AND_FLAGS, + event_loop_mutex_app_event_callback, + app); + + return app; +} + +static void event_loop_mutex_app_free(EventLoopMutexApp* app) { + // IMPORTANT: The user code MUST unsubscribe from all events before deleting the event loop. + // Failure to do so will result in a crash. + furi_event_loop_unsubscribe(app->event_loop, app->worker_mutex); + // Delete all instances + furi_thread_free(app->worker_thread); + furi_mutex_free(app->worker_mutex); + furi_event_loop_free(app->event_loop); + + free(app); +} + +static void event_loop_mutex_app_run(EventLoopMutexApp* app) { + furi_thread_start(app->worker_thread); + furi_event_loop_run(app->event_loop); + furi_thread_join(app->worker_thread); +} + +// The application's entry point - referenced in application.fam +int32_t example_event_loop_mutex_app(void* arg) { + UNUSED(arg); + + EventLoopMutexApp* app = event_loop_mutex_app_alloc(); + event_loop_mutex_app_run(app); + event_loop_mutex_app_free(app); + + return 0; +} diff --git a/applications/examples/example_event_loop/example_event_loop_stream_buffer.c b/applications/examples/example_event_loop/example_event_loop_stream_buffer.c new file mode 100644 index 00000000000..65dbd83cf55 --- /dev/null +++ b/applications/examples/example_event_loop/example_event_loop_stream_buffer.c @@ -0,0 +1,131 @@ +/** + * @file example_event_loop_stream_buffer.c + * @brief Example application that demonstrates the FuriEventLoop and FuriStreamBuffer integration. + * + * This application simulates a use case where some data data stream comes from a separate thread (or hardware) + * and a stream buffer is used to act as an intermediate buffer. The worker thread produces 10 iterations of 32 + * bytes of simulated data, and each time when the buffer is half-filled, the data is taken out of it and printed + * to the debug output. After completing all iterations, the application exits. + */ + +#include +#include + +#define TAG "ExampleEventLoopStreamBuffer" + +#define WORKER_ITERATION_COUNT (10) + +#define STREAM_BUFFER_SIZE (32) +#define STREAM_BUFFER_TRIG_LEVEL (STREAM_BUFFER_SIZE / 2) +#define STREAM_BUFFER_EVENT_AND_FLAGS (FuriEventLoopEventIn | FuriEventLoopEventFlagEdge) + +typedef struct { + FuriEventLoop* event_loop; + FuriThread* worker_thread; + FuriStreamBuffer* stream_buffer; +} EventLoopStreamBufferApp; + +// This funciton is being run in a separate thread to simulate data coming from a producer thread or some device. +static int32_t event_loop_stream_buffer_app_worker_thread(void* context) { + furi_assert(context); + EventLoopStreamBufferApp* app = context; + + FURI_LOG_I(TAG, "Worker thread started"); + + for(uint32_t i = 0; i < WORKER_ITERATION_COUNT; ++i) { + // Produce 32 bytes of simulated data. + for(uint32_t j = 0; j < STREAM_BUFFER_SIZE; ++j) { + // Simulate incoming data by generating a random byte. + uint8_t data = furi_hal_random_get() % 0xFF; + // Put the byte in the buffer. Depending on the use case, it may or may be not acceptable + // to wait for free space to become available. + furi_check( + furi_stream_buffer_send(app->stream_buffer, &data, 1, FuriWaitForever) == 1); + // Delay between 30 and 50 ms to slow down the output for clarity. + furi_delay_ms(30 + furi_hal_random_get() % 20); + } + } + + FURI_LOG_I(TAG, "All work done, worker thread out!"); + // Request the event loop to stop + furi_event_loop_stop(app->event_loop); + + return 0; +} + +// This function is being run each time when the number of bytes in the buffer is above its trigger level. +static bool + event_loop_stream_buffer_app_event_callback(FuriEventLoopObject* object, void* context) { + furi_assert(context); + EventLoopStreamBufferApp* app = context; + + furi_assert(object == app->stream_buffer); + + // Temporary buffer that can hold at most half of the stream buffer's capacity. + uint8_t data[STREAM_BUFFER_TRIG_LEVEL]; + // Receive the data. It is guaranteed that the amount of data in the buffer will be equal to + // or greater than the trigger level, therefore, no waiting delay is necessary. + furi_check( + furi_stream_buffer_receive(app->stream_buffer, data, sizeof(data), 0) == sizeof(data)); + + // Format the data for printing and print it to the debug output. + FuriString* tmp_str = furi_string_alloc(); + for(uint32_t i = 0; i < sizeof(data); ++i) { + furi_string_cat_printf(tmp_str, "%02X ", data[i]); + } + + FURI_LOG_I(TAG, "Received data: %s", furi_string_get_cstr(tmp_str)); + furi_string_free(tmp_str); + + return true; +} + +static EventLoopStreamBufferApp* event_loop_stream_buffer_app_alloc(void) { + EventLoopStreamBufferApp* app = malloc(sizeof(EventLoopStreamBufferApp)); + + // Create an event loop instance. + app->event_loop = furi_event_loop_alloc(); + // Create a worker thread instance. + app->worker_thread = furi_thread_alloc_ex( + "EventLoopStreamBufferWorker", 1024, event_loop_stream_buffer_app_worker_thread, app); + // Create a stream_buffer instance. + app->stream_buffer = furi_stream_buffer_alloc(STREAM_BUFFER_SIZE, STREAM_BUFFER_TRIG_LEVEL); + // Subscribe for the stream buffer IN events in edge triggered mode. + furi_event_loop_subscribe_stream_buffer( + app->event_loop, + app->stream_buffer, + STREAM_BUFFER_EVENT_AND_FLAGS, + event_loop_stream_buffer_app_event_callback, + app); + + return app; +} + +static void event_loop_stream_buffer_app_free(EventLoopStreamBufferApp* app) { + // IMPORTANT: The user code MUST unsubscribe from all events before deleting the event loop. + // Failure to do so will result in a crash. + furi_event_loop_unsubscribe(app->event_loop, app->stream_buffer); + // Delete all instances + furi_thread_free(app->worker_thread); + furi_stream_buffer_free(app->stream_buffer); + furi_event_loop_free(app->event_loop); + + free(app); +} + +static void event_loop_stream_buffer_app_run(EventLoopStreamBufferApp* app) { + furi_thread_start(app->worker_thread); + furi_event_loop_run(app->event_loop); + furi_thread_join(app->worker_thread); +} + +// The application's entry point - referenced in application.fam +int32_t example_event_loop_stream_buffer_app(void* arg) { + UNUSED(arg); + + EventLoopStreamBufferApp* app = event_loop_stream_buffer_app_alloc(); + event_loop_stream_buffer_app_run(app); + event_loop_stream_buffer_app_free(app); + + return 0; +} diff --git a/applications/examples/example_event_loop/example_event_loop_timer.c b/applications/examples/example_event_loop/example_event_loop_timer.c new file mode 100644 index 00000000000..e255f6b61b9 --- /dev/null +++ b/applications/examples/example_event_loop/example_event_loop_timer.c @@ -0,0 +1,87 @@ +/** + * @file example_event_loop_timer.c + * @brief Example application that demonstrates FuriEventLoop's software timer capability. + * + * This application prints a countdown from 10 to 0 to the debug output and then exits. + * Despite only one timer being used in this example for clarity, an event loop instance can have + * an arbitrary number of independent timers of any type (periodic or one-shot). + * + */ +#include + +#define TAG "ExampleEventLoopTimer" + +#define COUNTDOWN_START_VALUE (10) +#define COUNTDOWN_INTERVAL_MS (1000) + +typedef struct { + FuriEventLoop* event_loop; + FuriEventLoopTimer* timer; + uint32_t countdown_value; +} EventLoopTimerApp; + +// This function is called each time the timer expires (i.e. once per 1000 ms (1s) in this example) +static void event_loop_timer_callback(void* context) { + furi_assert(context); + EventLoopTimerApp* app = context; + + // Print the countdown value + FURI_LOG_I(TAG, "T-00:00:%02lu", app->countdown_value); + + if(app->countdown_value == 0) { + // If the countdown reached 0, print the final line and stop the event loop + FURI_LOG_I(TAG, "Blast off to adventure!"); + // After this call, the control will be returned back to event_loop_timers_app_run() + furi_event_loop_stop(app->event_loop); + + } else { + // Decrement the countdown value + app->countdown_value -= 1; + } +} + +static EventLoopTimerApp* event_loop_timer_app_alloc(void) { + EventLoopTimerApp* app = malloc(sizeof(EventLoopTimerApp)); + + // Create an event loop instance. + app->event_loop = furi_event_loop_alloc(); + // Create a software timer instance. + // The timer is bound to the event loop instance and will execute in its context. + // Here, the timer type is periodic, i.e. it will restart automatically after expiring. + app->timer = furi_event_loop_timer_alloc( + app->event_loop, event_loop_timer_callback, FuriEventLoopTimerTypePeriodic, app); + // The countdown value will be tracked in this variable. + app->countdown_value = COUNTDOWN_START_VALUE; + + return app; +} + +static void event_loop_timer_app_free(EventLoopTimerApp* app) { + // IMPORTANT: All event loop timers MUST be deleted BEFORE deleting the event loop itself. + // Failure to do so will result in a crash. + furi_event_loop_timer_free(app->timer); + // With all timers deleted, it's safe to delete the event loop. + furi_event_loop_free(app->event_loop); + free(app); +} + +static void event_loop_timer_app_run(EventLoopTimerApp* app) { + FURI_LOG_I(TAG, "All systems go! Prepare for countdown!"); + + // Timers can be started either before the event loop is run, or in any + // callback function called by a running event loop. + furi_event_loop_timer_start(app->timer, COUNTDOWN_INTERVAL_MS); + // This call will block until furi_event_loop_stop() is called. + furi_event_loop_run(app->event_loop); +} + +// The application's entry point - referenced in application.fam +int32_t example_event_loop_timer_app(void* arg) { + UNUSED(arg); + + EventLoopTimerApp* app = event_loop_timer_app_alloc(); + event_loop_timer_app_run(app); + event_loop_timer_app_free(app); + + return 0; +} diff --git a/applications/examples/example_view_dispatcher/application.fam b/applications/examples/example_view_dispatcher/application.fam new file mode 100644 index 00000000000..f7b743bcf56 --- /dev/null +++ b/applications/examples/example_view_dispatcher/application.fam @@ -0,0 +1,8 @@ +App( + appid="example_view_dispatcher", + name="Example: ViewDispatcher", + apptype=FlipperAppType.EXTERNAL, + entry_point="example_view_dispatcher_app", + requires=["gui"], + fap_category="Examples", +) diff --git a/applications/examples/example_view_dispatcher/example_view_dispatcher.c b/applications/examples/example_view_dispatcher/example_view_dispatcher.c new file mode 100644 index 00000000000..71d29edfd93 --- /dev/null +++ b/applications/examples/example_view_dispatcher/example_view_dispatcher.c @@ -0,0 +1,173 @@ +/** + * @file example_view_dispatcher.c + * @brief Example application demonstrating the usage of the ViewDispatcher library. + * + * This application can display one of two views: either a Widget or a Submenu. + * Each view has its own way of switching to another one: + * + * - A center button in the Widget view. + * - A submenu item in the Submenu view + * + * Press either to switch to a different view. Press Back to exit the application. + * + */ + +#include +#include + +#include +#include + +// Enumeration of the view indexes. +typedef enum { + ViewIndexWidget, + ViewIndexSubmenu, + ViewIndexCount, +} ViewIndex; + +// Enumeration of submenu items. +typedef enum { + SubmenuIndexNothing, + SubmenuIndexSwitchView, +} SubmenuIndex; + +// Main application structure. +typedef struct { + ViewDispatcher* view_dispatcher; + Widget* widget; + Submenu* submenu; +} ExampleViewDispatcherApp; + +// This function is called when the user has pressed the Back key. +static bool example_view_dispatcher_app_navigation_callback(void* context) { + furi_assert(context); + ExampleViewDispatcherApp* app = context; + // Back means exit the application, which can be done by stopping the ViewDispatcher. + view_dispatcher_stop(app->view_dispatcher); + return true; +} + +// This function is called when there are custom events to process. +static bool example_view_dispatcher_app_custom_event_callback(void* context, uint32_t event) { + furi_assert(context); + ExampleViewDispatcherApp* app = context; + // The event numerical value can mean different things (the application is responsible to uphold its chosen convention) + // In this example, the only possible meaning is the view index to switch to. + furi_assert(event < ViewIndexCount); + // Switch to the requested view. + view_dispatcher_switch_to_view(app->view_dispatcher, event); + + return true; +} + +// This function is called when the user presses the "Switch View" button on the Widget view. +static void example_view_dispatcher_app_button_callback( + GuiButtonType button_type, + InputType input_type, + void* context) { + furi_assert(context); + ExampleViewDispatcherApp* app = context; + // Only request the view switch if the user short-presses the Center button. + if(button_type == GuiButtonTypeCenter && input_type == InputTypeShort) { + // Request switch to the Submenu view via the custom event queue. + view_dispatcher_send_custom_event(app->view_dispatcher, ViewIndexSubmenu); + } +} + +// This function is called when the user activates the "Switch View" submenu item. +static void example_view_dispatcher_app_submenu_callback(void* context, uint32_t index) { + furi_assert(context); + ExampleViewDispatcherApp* app = context; + // Only request the view switch if the user activates the "Switch View" item. + if(index == SubmenuIndexSwitchView) { + // Request switch to the Widget view via the custom event queue. + view_dispatcher_send_custom_event(app->view_dispatcher, ViewIndexWidget); + } +} + +// Application constructor function. +static ExampleViewDispatcherApp* example_view_dispatcher_app_alloc() { + ExampleViewDispatcherApp* app = malloc(sizeof(ExampleViewDispatcherApp)); + // Access the GUI API instance. + Gui* gui = furi_record_open(RECORD_GUI); + // Create and initialize the Widget view. + app->widget = widget_alloc(); + widget_add_string_multiline_element( + app->widget, 64, 32, AlignCenter, AlignCenter, FontSecondary, "Press the Button below"); + widget_add_button_element( + app->widget, + GuiButtonTypeCenter, + "Switch View", + example_view_dispatcher_app_button_callback, + app); + // Create and initialize the Submenu view. + app->submenu = submenu_alloc(); + submenu_add_item(app->submenu, "Do Nothing", SubmenuIndexNothing, NULL, NULL); + submenu_add_item( + app->submenu, + "Switch View", + SubmenuIndexSwitchView, + example_view_dispatcher_app_submenu_callback, + app); + // Create the ViewDispatcher instance. + app->view_dispatcher = view_dispatcher_alloc(); + // Let the GUI know about this ViewDispatcher instance. + view_dispatcher_attach_to_gui(app->view_dispatcher, gui, ViewDispatcherTypeFullscreen); + // Register the views within the ViewDispatcher instance. This alone will not show any of them on the screen. + // Each view must have its own index to refer to it later (it is best done via an enumeration as shown here). + view_dispatcher_add_view(app->view_dispatcher, ViewIndexWidget, widget_get_view(app->widget)); + view_dispatcher_add_view( + app->view_dispatcher, ViewIndexSubmenu, submenu_get_view(app->submenu)); + // Set the custom event callback. It will be called each time a custom event is scheduled + // using the view_dispatcher_send_custom_callback() function. + view_dispatcher_set_custom_event_callback( + app->view_dispatcher, example_view_dispatcher_app_custom_event_callback); + // Set the navigation, or back button callback. It will be called if the user pressed the Back button + // and the event was not handled in the currently displayed view. + view_dispatcher_set_navigation_event_callback( + app->view_dispatcher, example_view_dispatcher_app_navigation_callback); + // The context will be passed to the callbacks as a parameter, so we have access to our application object. + view_dispatcher_set_event_callback_context(app->view_dispatcher, app); + + return app; +} + +// Application destructor function. +static void example_view_dispatcher_app_free(ExampleViewDispatcherApp* app) { + // All views must be un-registered (removed) from a ViewDispatcher instance + // before deleting it. Failure to do so will result in a crash. + view_dispatcher_remove_view(app->view_dispatcher, ViewIndexWidget); + view_dispatcher_remove_view(app->view_dispatcher, ViewIndexSubmenu); + // Now it is safe to delete the ViewDispatcher instance. + view_dispatcher_free(app->view_dispatcher); + // Delete the views + widget_free(app->widget); + submenu_free(app->submenu); + // End access to hte the GUI API. + furi_record_close(RECORD_GUI); + // Free the remaining memory. + free(app); +} + +static void example_view_dispatcher_app_run(ExampleViewDispatcherApp* app) { + // Display the Widget view on the screen. + view_dispatcher_switch_to_view(app->view_dispatcher, ViewIndexWidget); + // This function will block until view_dispatcher_stop() is called. + // Internally, it uses a FuriEventLoop (see FuriEventLoop examples for more info on this). + view_dispatcher_run(app->view_dispatcher); +} + +/******************************************************************* + * vvv START HERE vvv + * + * The application's entry point - referenced in application.fam + *******************************************************************/ +int32_t example_view_dispatcher_app(void* arg) { + UNUSED(arg); + + ExampleViewDispatcherApp* app = example_view_dispatcher_app_alloc(); + example_view_dispatcher_app_run(app); + example_view_dispatcher_app_free(app); + + return 0; +} diff --git a/applications/examples/example_view_holder/application.fam b/applications/examples/example_view_holder/application.fam new file mode 100644 index 00000000000..19ad8d2ac4d --- /dev/null +++ b/applications/examples/example_view_holder/application.fam @@ -0,0 +1,8 @@ +App( + appid="example_view_holder", + name="Example: ViewHolder", + apptype=FlipperAppType.EXTERNAL, + entry_point="example_view_holder_app", + requires=["gui"], + fap_category="Examples", +) diff --git a/applications/examples/example_view_holder/example_view_holder.c b/applications/examples/example_view_holder/example_view_holder.c new file mode 100644 index 00000000000..24907dbc260 --- /dev/null +++ b/applications/examples/example_view_holder/example_view_holder.c @@ -0,0 +1,78 @@ +/** + * @file example_view_holder.c + * @brief Example application demonstrating the usage of the ViewHolder library. + * + * This application will display a text box with some scrollable text in it. + * Press the Back key to exit the application. + */ + +#include +#include +#include + +#include + +// This function will be called when the user presses the Back button. +static void example_view_holder_back_callback(void* context) { + FuriApiLock exit_lock = context; + // Unlock the exit lock, thus enabling the app to exit. + api_lock_unlock(exit_lock); +} + +int32_t example_view_holder_app(void* arg) { + UNUSED(arg); + + // Access the GUI API instance. + Gui* gui = furi_record_open(RECORD_GUI); + // Create a TextBox view. The Gui object only accepts + // ViewPort instances, so we will need to address that later. + TextBox* text_box = text_box_alloc(); + // Set some text so that the text box is not empty. + text_box_set_text( + text_box, + "ViewHolder is being used\n" + "to show this TextBox view.\n\n" + "Scroll down to see more.\n\n\n" + "Press \"Back\" to exit."); + + // Create a ViewHolder instance. It will serve as an adapter to convert + // between the View type provided by the TextBox view and the ViewPort type + // that the GUI can actually display. + ViewHolder* view_holder = view_holder_alloc(); + // Let the GUI know about this ViewHolder instance. + view_holder_attach_to_gui(view_holder, gui); + // Set the view that we want to display. + view_holder_set_view(view_holder, text_box_get_view(text_box)); + + // The part below is not really related to this example, but is necessary for it to function. + // We need to somehow stall the application thread so that the view stays on the screen (otherwise + // the app will just exit and won't display anything) and at the same time we need a way to quit out + // of the application. + + // In this example, a simple FuriApiLock instance is used. A real-world application is likely to have some + // kind of event handling loop here instead. (see the ViewDispatcher example or one of FuriEventLoop + // examples for that). + + // Create a pre-locked FuriApiLock instance. + FuriApiLock exit_lock = api_lock_alloc_locked(); + // Set a Back event callback for the ViewHolder instance. It will be called when the user + // presses the Back button. We pass the exit lock instance as the context to be able to access + // it inside the callback function. + view_holder_set_back_callback(view_holder, example_view_holder_back_callback, exit_lock); + + // This call will block the application thread from running until the exit lock gets unlocked somehow + // (the only way it can happen in this example is via the back callback). + api_lock_wait_unlock_and_free(exit_lock); + + // The back key has been pressed, which unlocked the exit lock. The application is about to exit. + + // The view must be removed from a ViewHolder instance before deleting it. + view_holder_set_view(view_holder, NULL); + // Delete everything to prevent memory leaks. + view_holder_free(view_holder); + text_box_free(text_box); + // End access to the GUI API. + furi_record_close(RECORD_GUI); + + return 0; +} diff --git a/applications/main/archive/archive.c b/applications/main/archive/archive.c index 5db650445da..ff855df6407 100644 --- a/applications/main/archive/archive.c +++ b/applications/main/archive/archive.c @@ -23,7 +23,6 @@ ArchiveApp* archive_alloc(void) { archive->view_dispatcher = view_dispatcher_alloc(); archive->scene_manager = scene_manager_alloc(&archive_scene_handlers, archive); - view_dispatcher_enable_queue(archive->view_dispatcher); view_dispatcher_attach_to_gui( archive->view_dispatcher, archive->gui, ViewDispatcherTypeFullscreen); diff --git a/applications/main/bad_usb/bad_usb_app.c b/applications/main/bad_usb/bad_usb_app.c index 0f10d60d8fb..2d2d4be86ce 100644 --- a/applications/main/bad_usb/bad_usb_app.c +++ b/applications/main/bad_usb/bad_usb_app.c @@ -112,8 +112,6 @@ BadUsbApp* bad_usb_app_alloc(char* arg) { app->dialogs = furi_record_open(RECORD_DIALOGS); app->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(app->view_dispatcher); - app->scene_manager = scene_manager_alloc(&bad_usb_scene_handlers, app); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); diff --git a/applications/main/gpio/gpio_app.c b/applications/main/gpio/gpio_app.c index 217423ecc31..234cc793a8d 100644 --- a/applications/main/gpio/gpio_app.c +++ b/applications/main/gpio/gpio_app.c @@ -32,7 +32,6 @@ GpioApp* gpio_app_alloc(void) { app->view_dispatcher = view_dispatcher_alloc(); app->scene_manager = scene_manager_alloc(&gpio_scene_handlers, app); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); view_dispatcher_set_custom_event_callback( diff --git a/applications/main/ibutton/ibutton.c b/applications/main/ibutton/ibutton.c index b6e8a20cf9c..765d5361253 100644 --- a/applications/main/ibutton/ibutton.c +++ b/applications/main/ibutton/ibutton.c @@ -85,7 +85,6 @@ iButton* ibutton_alloc(void) { ibutton->scene_manager = scene_manager_alloc(&ibutton_scene_handlers, ibutton); ibutton->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(ibutton->view_dispatcher); view_dispatcher_set_event_callback_context(ibutton->view_dispatcher, ibutton); view_dispatcher_set_custom_event_callback( ibutton->view_dispatcher, ibutton_custom_event_callback); diff --git a/applications/main/infrared/infrared_app.c b/applications/main/infrared/infrared_app.c index c6e4bca0266..75c874e73b3 100644 --- a/applications/main/infrared/infrared_app.c +++ b/applications/main/infrared/infrared_app.c @@ -159,7 +159,6 @@ static InfraredApp* infrared_alloc(void) { infrared->gui = furi_record_open(RECORD_GUI); ViewDispatcher* view_dispatcher = infrared->view_dispatcher; - view_dispatcher_enable_queue(view_dispatcher); view_dispatcher_set_event_callback_context(view_dispatcher, infrared); view_dispatcher_set_custom_event_callback(view_dispatcher, infrared_custom_event_callback); view_dispatcher_set_navigation_event_callback(view_dispatcher, infrared_back_event_callback); diff --git a/applications/main/lfrfid/lfrfid.c b/applications/main/lfrfid/lfrfid.c index 3bc7a8b1304..2da29e134ea 100644 --- a/applications/main/lfrfid/lfrfid.c +++ b/applications/main/lfrfid/lfrfid.c @@ -53,7 +53,6 @@ static LfRfid* lfrfid_alloc(void) { lfrfid->view_dispatcher = view_dispatcher_alloc(); lfrfid->scene_manager = scene_manager_alloc(&lfrfid_scene_handlers, lfrfid); - view_dispatcher_enable_queue(lfrfid->view_dispatcher); view_dispatcher_set_event_callback_context(lfrfid->view_dispatcher, lfrfid); view_dispatcher_set_custom_event_callback( lfrfid->view_dispatcher, lfrfid_debug_custom_event_callback); diff --git a/applications/main/nfc/nfc_app.c b/applications/main/nfc/nfc_app.c index f3aa5e72402..bdf9c0e2f83 100644 --- a/applications/main/nfc/nfc_app.c +++ b/applications/main/nfc/nfc_app.c @@ -41,7 +41,6 @@ NfcApp* nfc_app_alloc(void) { instance->view_dispatcher = view_dispatcher_alloc(); instance->scene_manager = scene_manager_alloc(&nfc_scene_handlers, instance); - view_dispatcher_enable_queue(instance->view_dispatcher); view_dispatcher_set_event_callback_context(instance->view_dispatcher, instance); view_dispatcher_set_custom_event_callback( instance->view_dispatcher, nfc_custom_event_callback); diff --git a/applications/main/subghz/subghz.c b/applications/main/subghz/subghz.c index b71d271d44c..22e81f2eb71 100644 --- a/applications/main/subghz/subghz.c +++ b/applications/main/subghz/subghz.c @@ -59,7 +59,6 @@ SubGhz* subghz_alloc(void) { // View Dispatcher subghz->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(subghz->view_dispatcher); subghz->scene_manager = scene_manager_alloc(&subghz_scene_handlers, subghz); view_dispatcher_set_event_callback_context(subghz->view_dispatcher, subghz); diff --git a/applications/main/u2f/u2f_app.c b/applications/main/u2f/u2f_app.c index 68966390a9c..58af40e7bbc 100644 --- a/applications/main/u2f/u2f_app.c +++ b/applications/main/u2f/u2f_app.c @@ -29,7 +29,6 @@ U2fApp* u2f_app_alloc(void) { app->view_dispatcher = view_dispatcher_alloc(); app->scene_manager = scene_manager_alloc(&u2f_scene_handlers, app); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); view_dispatcher_set_tick_event_callback( app->view_dispatcher, u2f_app_tick_event_callback, 500); diff --git a/applications/services/desktop/desktop.c b/applications/services/desktop/desktop.c index 66e503e967b..e57e1eb00f3 100644 --- a/applications/services/desktop/desktop.c +++ b/applications/services/desktop/desktop.c @@ -265,7 +265,6 @@ static Desktop* desktop_alloc(void) { desktop->view_dispatcher = view_dispatcher_alloc(); desktop->scene_manager = scene_manager_alloc(&desktop_scene_handlers, desktop); - view_dispatcher_enable_queue(desktop->view_dispatcher); view_dispatcher_attach_to_gui( desktop->view_dispatcher, desktop->gui, ViewDispatcherTypeDesktop); view_dispatcher_set_tick_event_callback( diff --git a/applications/services/dialogs/dialogs_module_file_browser.c b/applications/services/dialogs/dialogs_module_file_browser.c index b1558f1e95b..12a7439e609 100644 --- a/applications/services/dialogs/dialogs_module_file_browser.c +++ b/applications/services/dialogs/dialogs_module_file_browser.c @@ -49,12 +49,11 @@ bool dialogs_app_process_module_file_browser(const DialogsAppMessageDataFileBrow file_browser_start(file_browser, data->preselected_filename); view_holder_set_view(view_holder, file_browser_get_view(file_browser)); - view_holder_start(view_holder); api_lock_wait_unlock(file_browser_context->lock); ret = file_browser_context->result; - view_holder_stop(view_holder); + view_holder_set_view(view_holder, NULL); view_holder_free(view_holder); file_browser_stop(file_browser); file_browser_free(file_browser); diff --git a/applications/services/dialogs/dialogs_module_message.c b/applications/services/dialogs/dialogs_module_message.c index a71f403c543..9dc9ff9cb90 100644 --- a/applications/services/dialogs/dialogs_module_message.c +++ b/applications/services/dialogs/dialogs_module_message.c @@ -88,12 +88,11 @@ DialogMessageButton dialogs_app_process_module_message(const DialogsAppMessageDa dialog_ex_set_right_button_text(dialog_ex, message->right_button_text); view_holder_set_view(view_holder, dialog_ex_get_view(dialog_ex)); - view_holder_start(view_holder); api_lock_wait_unlock(message_context->lock); ret = message_context->result; - view_holder_stop(view_holder); + view_holder_set_view(view_holder, NULL); view_holder_free(view_holder); dialog_ex_free(dialog_ex); api_lock_free(message_context->lock); diff --git a/applications/services/dolphin/dolphin.c b/applications/services/dolphin/dolphin.c index 198c1483a3a..dd2ecd2ba15 100644 --- a/applications/services/dolphin/dolphin.c +++ b/applications/services/dolphin/dolphin.c @@ -192,8 +192,8 @@ static void dolphin_update_clear_limits_timer_period(void* context) { FURI_LOG_D(TAG, "Daily limits reset in %lu ms", time_to_clear_limits); } -static bool dolphin_process_event(FuriMessageQueue* queue, void* context) { - UNUSED(queue); +static bool dolphin_process_event(FuriEventLoopObject* object, void* context) { + UNUSED(object); Dolphin* dolphin = context; DolphinEvent event; @@ -280,7 +280,7 @@ int32_t dolphin_srv(void* p) { dolphin_init_state(dolphin); - furi_event_loop_message_queue_subscribe( + furi_event_loop_subscribe_message_queue( dolphin->event_loop, dolphin->event_queue, FuriEventLoopEventIn, diff --git a/applications/services/gui/view_dispatcher.c b/applications/services/gui/view_dispatcher.c index b4c534932f5..63878fc1909 100644 --- a/applications/services/gui/view_dispatcher.c +++ b/applications/services/gui/view_dispatcher.c @@ -2,6 +2,8 @@ #define TAG "ViewDispatcher" +#define VIEW_DISPATCHER_QUEUE_LEN (16U) + ViewDispatcher* view_dispatcher_alloc(void) { ViewDispatcher* view_dispatcher = malloc(sizeof(ViewDispatcher)); @@ -14,6 +16,26 @@ ViewDispatcher* view_dispatcher_alloc(void) { ViewDict_init(view_dispatcher->views); + view_dispatcher->event_loop = furi_event_loop_alloc(); + + view_dispatcher->input_queue = + furi_message_queue_alloc(VIEW_DISPATCHER_QUEUE_LEN, sizeof(InputEvent)); + furi_event_loop_subscribe_message_queue( + view_dispatcher->event_loop, + view_dispatcher->input_queue, + FuriEventLoopEventIn, + view_dispatcher_run_input_callback, + view_dispatcher); + + view_dispatcher->event_queue = + furi_message_queue_alloc(VIEW_DISPATCHER_QUEUE_LEN, sizeof(uint32_t)); + furi_event_loop_subscribe_message_queue( + view_dispatcher->event_loop, + view_dispatcher->event_queue, + FuriEventLoopEventIn, + view_dispatcher_run_event_callback, + view_dispatcher); + return view_dispatcher; } @@ -29,44 +51,19 @@ void view_dispatcher_free(ViewDispatcher* view_dispatcher) { // Free ViewPort view_port_free(view_dispatcher->view_port); // Free internal queue - if(view_dispatcher->input_queue) { - furi_event_loop_message_queue_unsubscribe( - view_dispatcher->event_loop, view_dispatcher->input_queue); - furi_message_queue_free(view_dispatcher->input_queue); - } - if(view_dispatcher->event_queue) { - furi_event_loop_message_queue_unsubscribe( - view_dispatcher->event_loop, view_dispatcher->event_queue); - furi_message_queue_free(view_dispatcher->event_queue); - } - if(view_dispatcher->event_loop) { - furi_event_loop_free(view_dispatcher->event_loop); - } + furi_event_loop_unsubscribe(view_dispatcher->event_loop, view_dispatcher->input_queue); + furi_event_loop_unsubscribe(view_dispatcher->event_loop, view_dispatcher->event_queue); + + furi_message_queue_free(view_dispatcher->input_queue); + furi_message_queue_free(view_dispatcher->event_queue); + + furi_event_loop_free(view_dispatcher->event_loop); // Free dispatcher free(view_dispatcher); } void view_dispatcher_enable_queue(ViewDispatcher* view_dispatcher) { - furi_check(view_dispatcher); - furi_check(view_dispatcher->event_loop == NULL); - - view_dispatcher->event_loop = furi_event_loop_alloc(); - - view_dispatcher->input_queue = furi_message_queue_alloc(16, sizeof(InputEvent)); - furi_event_loop_message_queue_subscribe( - view_dispatcher->event_loop, - view_dispatcher->input_queue, - FuriEventLoopEventIn, - view_dispatcher_run_input_callback, - view_dispatcher); - - view_dispatcher->event_queue = furi_message_queue_alloc(16, sizeof(uint32_t)); - furi_event_loop_message_queue_subscribe( - view_dispatcher->event_loop, - view_dispatcher->event_queue, - FuriEventLoopEventIn, - view_dispatcher_run_event_callback, - view_dispatcher); + UNUSED(view_dispatcher); } void view_dispatcher_set_navigation_event_callback( @@ -99,14 +96,12 @@ void view_dispatcher_set_event_callback_context(ViewDispatcher* view_dispatcher, FuriEventLoop* view_dispatcher_get_event_loop(ViewDispatcher* view_dispatcher) { furi_check(view_dispatcher); - furi_check(view_dispatcher->event_loop); return view_dispatcher->event_loop; } void view_dispatcher_run(ViewDispatcher* view_dispatcher) { furi_check(view_dispatcher); - furi_check(view_dispatcher->event_loop); uint32_t tick_period = view_dispatcher->tick_period == 0 ? FuriWaitForever : view_dispatcher->tick_period; @@ -134,7 +129,6 @@ void view_dispatcher_run(ViewDispatcher* view_dispatcher) { void view_dispatcher_stop(ViewDispatcher* view_dispatcher) { furi_check(view_dispatcher); - furi_check(view_dispatcher->event_loop); furi_event_loop_stop(view_dispatcher->event_loop); } @@ -242,13 +236,9 @@ void view_dispatcher_draw_callback(Canvas* canvas, void* context) { void view_dispatcher_input_callback(InputEvent* event, void* context) { ViewDispatcher* view_dispatcher = context; - if(view_dispatcher->input_queue) { - furi_check( - furi_message_queue_put(view_dispatcher->input_queue, event, FuriWaitForever) == - FuriStatusOk); - } else { - view_dispatcher_handle_input(view_dispatcher, event); - } + furi_check( + furi_message_queue_put(view_dispatcher->input_queue, event, FuriWaitForever) == + FuriStatusOk); } void view_dispatcher_handle_input(ViewDispatcher* view_dispatcher, InputEvent* event) { @@ -328,7 +318,6 @@ void view_dispatcher_handle_custom_event(ViewDispatcher* view_dispatcher, uint32 void view_dispatcher_send_custom_event(ViewDispatcher* view_dispatcher, uint32_t event) { furi_check(view_dispatcher); - furi_check(view_dispatcher->event_loop); furi_check( furi_message_queue_put(view_dispatcher->event_queue, &event, FuriWaitForever) == @@ -364,9 +353,7 @@ void view_dispatcher_set_current_view(ViewDispatcher* view_dispatcher, View* vie view_port_update(view_dispatcher->view_port); } else { view_port_enabled_set(view_dispatcher->view_port, false); - if(view_dispatcher->event_loop) { - view_dispatcher_stop(view_dispatcher); - } + view_dispatcher_stop(view_dispatcher); } } @@ -381,10 +368,10 @@ void view_dispatcher_update(View* view, void* context) { } } -bool view_dispatcher_run_event_callback(FuriMessageQueue* queue, void* context) { +bool view_dispatcher_run_event_callback(FuriEventLoopObject* object, void* context) { furi_assert(context); ViewDispatcher* instance = context; - furi_assert(instance->event_queue == queue); + furi_assert(instance->event_queue == object); uint32_t event; furi_check(furi_message_queue_get(instance->event_queue, &event, 0) == FuriStatusOk); @@ -393,10 +380,10 @@ bool view_dispatcher_run_event_callback(FuriMessageQueue* queue, void* context) return true; } -bool view_dispatcher_run_input_callback(FuriMessageQueue* queue, void* context) { +bool view_dispatcher_run_input_callback(FuriEventLoopObject* object, void* context) { furi_assert(context); ViewDispatcher* instance = context; - furi_assert(instance->input_queue == queue); + furi_assert(instance->input_queue == object); InputEvent input; furi_check(furi_message_queue_get(instance->input_queue, &input, 0) == FuriStatusOk); diff --git a/applications/services/gui/view_dispatcher.h b/applications/services/gui/view_dispatcher.h index 905c60975b2..9fbf897918c 100644 --- a/applications/services/gui/view_dispatcher.h +++ b/applications/services/gui/view_dispatcher.h @@ -2,6 +2,14 @@ * @file view_dispatcher.h * @brief GUI: ViewDispatcher API * + * ViewDispatcher is used to connect several Views to a Gui instance, switch between them and handle various events. + * This is useful in applications featuring an advanced graphical user interface. + * + * Internally, ViewDispatcher employs a FuriEventLoop instance together with two separate + * message queues for input and custom event handling. See FuriEventLoop for more information. + * + * If no multi-view or complex event handling capabilities are required, consider using ViewHolder instead. + * * @warning Views added to a ViewDispatcher MUST NOT be in a ViewStack at the same time. */ @@ -40,6 +48,9 @@ typedef void (*ViewDispatcherTickEventCallback)(void* context); ViewDispatcher* view_dispatcher_alloc(void); /** Free ViewDispatcher instance + * + * @warning All added views MUST be removed using view_dispatcher_remove_view() + * before calling this function. * * @param view_dispatcher pointer to ViewDispatcher */ @@ -47,12 +58,13 @@ void view_dispatcher_free(ViewDispatcher* view_dispatcher); /** Enable queue support * - * Allocates event_loop, input and event message queues. Must be used with - * `view_dispatcher_run` + * @deprecated Do NOT use in new code and remove all calls to it from existing code. + * The queue support is now always enabled during construction. If no queue support + * is required, consider using ViewHolder instead. * * @param view_dispatcher ViewDispatcher instance */ -void view_dispatcher_enable_queue(ViewDispatcher* view_dispatcher); +FURI_DEPRECATED void view_dispatcher_enable_queue(ViewDispatcher* view_dispatcher); /** Send custom event * @@ -103,11 +115,11 @@ void view_dispatcher_set_event_callback_context(ViewDispatcher* view_dispatcher, /** Get event_loop instance * - * event_loop instance is allocated on `view_dispatcher_enable_queue` and used - * in view_dispatcher_run. + * Use the return value to connect additional supported primitives (message queues, timers, etc) + * to this ViewDispatcher instance's event loop. * - * You can add your objects into event_loop instance, but don't run the loop on - * your side as it will cause issues with input processing on dispatcher stop. + * @warning Do NOT call furi_event_loop_run() on the returned instance, it is done internally + * in the view_dispatcher_run() call. * * @param view_dispatcher ViewDispatcher instance * @@ -117,15 +129,14 @@ FuriEventLoop* view_dispatcher_get_event_loop(ViewDispatcher* view_dispatcher); /** Run ViewDispatcher * - * Use only after queue enabled + * This function will start the event loop and block until view_dispatcher_stop() is called + * or the current thread receives a FuriSignalExit signal. * * @param view_dispatcher ViewDispatcher instance */ void view_dispatcher_run(ViewDispatcher* view_dispatcher); /** Stop ViewDispatcher - * - * Use only after queue enabled * * @param view_dispatcher ViewDispatcher instance */ diff --git a/applications/services/gui/view_dispatcher_i.h b/applications/services/gui/view_dispatcher_i.h index 46a4ac7fa7d..c6c8dc665c1 100644 --- a/applications/services/gui/view_dispatcher_i.h +++ b/applications/services/gui/view_dispatcher_i.h @@ -56,7 +56,7 @@ void view_dispatcher_set_current_view(ViewDispatcher* view_dispatcher, View* vie void view_dispatcher_update(View* view, void* context); /** ViewDispatcher run event loop event callback */ -bool view_dispatcher_run_event_callback(FuriMessageQueue* queue, void* context); +bool view_dispatcher_run_event_callback(FuriEventLoopObject* object, void* context); /** ViewDispatcher run event loop input callback */ -bool view_dispatcher_run_input_callback(FuriMessageQueue* queue, void* context); +bool view_dispatcher_run_input_callback(FuriEventLoopObject* object, void* context); diff --git a/applications/services/gui/view_holder.c b/applications/services/gui/view_holder.c index ca2f9b04e17..7d8b5e17c37 100644 --- a/applications/services/gui/view_holder.c +++ b/applications/services/gui/view_holder.c @@ -32,7 +32,8 @@ ViewHolder* view_holder_alloc(void) { } void view_holder_free(ViewHolder* view_holder) { - furi_assert(view_holder); + furi_check(view_holder); + furi_check(view_holder->view == NULL); if(view_holder->gui) { gui_remove_view_port(view_holder->gui, view_holder->view_port); @@ -48,12 +49,14 @@ void view_holder_free(ViewHolder* view_holder) { } void view_holder_set_view(ViewHolder* view_holder, View* view) { - furi_assert(view_holder); + furi_check(view_holder); + if(view_holder->view) { - if(view_holder->view->exit_callback) { - view_holder->view->exit_callback(view_holder->view->context); + while(view_holder->ongoing_input) { + furi_delay_tick(1); } + view_exit(view_holder->view); view_set_update_callback(view_holder->view, NULL); view_set_update_callback_context(view_holder->view, NULL); } @@ -61,12 +64,23 @@ void view_holder_set_view(ViewHolder* view_holder, View* view) { view_holder->view = view; if(view_holder->view) { + const ViewPortOrientation orientation = (ViewPortOrientation)view->orientation; + furi_assert(orientation < ViewPortOrientationMAX); + if(view_port_get_orientation(view_holder->view_port) != orientation) { + view_port_set_orientation(view_holder->view_port, orientation); + // we just rotated input keys, now it's time to sacrifice some input + view_holder->ongoing_input = 0; + } + view_set_update_callback(view_holder->view, view_holder_update); view_set_update_callback_context(view_holder->view, view_holder); - if(view_holder->view->enter_callback) { - view_holder->view->enter_callback(view_holder->view->context); - } + view_enter(view_holder->view); + view_port_enabled_set(view_holder->view_port, true); + view_port_update(view_holder->view_port); + + } else { + view_port_enabled_set(view_holder->view_port, false); } } @@ -74,7 +88,7 @@ void view_holder_set_free_callback( ViewHolder* view_holder, FreeCallback free_callback, void* free_context) { - furi_assert(view_holder); + furi_check(view_holder); view_holder->free_callback = free_callback; view_holder->free_context = free_context; } @@ -87,31 +101,22 @@ void view_holder_set_back_callback( ViewHolder* view_holder, BackCallback back_callback, void* back_context) { - furi_assert(view_holder); + furi_check(view_holder); view_holder->back_callback = back_callback; view_holder->back_context = back_context; } void view_holder_attach_to_gui(ViewHolder* view_holder, Gui* gui) { - furi_assert(gui); - furi_assert(view_holder); - view_holder->gui = gui; + furi_check(view_holder); + furi_check(view_holder->gui == NULL); + furi_check(gui); gui_add_view_port(gui, view_holder->view_port, GuiLayerFullscreen); -} - -void view_holder_start(ViewHolder* view_holder) { - view_port_enabled_set(view_holder->view_port, true); -} - -void view_holder_stop(ViewHolder* view_holder) { - while(view_holder->ongoing_input) - furi_delay_tick(1); - view_port_enabled_set(view_holder->view_port, false); + view_holder->gui = gui; } void view_holder_update(View* view, void* context) { - furi_assert(view); - furi_assert(context); + furi_check(view); + furi_check(context); ViewHolder* view_holder = context; if(view == view_holder->view) { @@ -119,6 +124,18 @@ void view_holder_update(View* view, void* context) { } } +void view_holder_send_to_front(ViewHolder* view_holder) { + furi_check(view_holder); + furi_check(view_holder->gui); + gui_view_port_send_to_front(view_holder->gui, view_holder->view_port); +} + +void view_holder_send_to_back(ViewHolder* view_holder) { + furi_check(view_holder); + furi_check(view_holder->gui); + gui_view_port_send_to_back(view_holder->gui, view_holder->view_port); +} + static void view_holder_draw_callback(Canvas* canvas, void* context) { ViewHolder* view_holder = context; if(view_holder->view) { diff --git a/applications/services/gui/view_holder.h b/applications/services/gui/view_holder.h index 90ce82b3778..78dbfda0ecb 100644 --- a/applications/services/gui/view_holder.h +++ b/applications/services/gui/view_holder.h @@ -2,7 +2,10 @@ * @file view_holder.h * @brief GUI: ViewHolder API * - * @warning View added to a ViewHolder MUST NOT be in a ViewStack at the same time. + * ViewHolder is used to connect a single View to a Gui instance. This is useful in smaller applications + * with a simple user interface. If advanced view switching capabilites are required, consider using ViewDispatcher instead. + * + * @warning Views added to a ViewHolder MUST NOT be in a ViewStack at the same time. */ #pragma once @@ -22,7 +25,8 @@ typedef void (*FreeCallback)(void* free_context); /** * @brief Back callback type - * @warning comes from GUI thread + * + * @warning Will be called from the GUI thread */ typedef void (*BackCallback)(void* back_context); @@ -34,12 +38,17 @@ ViewHolder* view_holder_alloc(void); /** * @brief Free ViewHolder and call Free callback + * + * @warning The current view must be unset prior to freeing a ViewHolder instance. + * * @param view_holder pointer to ViewHolder */ void view_holder_free(ViewHolder* view_holder); /** * @brief Set view for ViewHolder + * + * Pass NULL as the view parameter to unset the current view. * * @param view_holder ViewHolder instance * @param view View instance @@ -59,13 +68,25 @@ void view_holder_set_free_callback( void* free_context); /** - * @brief Free callback context getter. Useful if your Free callback is a module destructor, so you can get an instance of the module using this method. + * @brief Free callback context getter. + * + * Useful if your Free callback is a module destructor, so you can get an instance of the module using this method. * * @param view_holder ViewHolder instance * @return void* free callback context */ void* view_holder_get_free_context(ViewHolder* view_holder); +/** + * @brief Set the back key callback. + * + * The callback function will be called if the user has pressed the Back key + * and the current view did not handle this event. + * + * @param view_holder ViewHolder instance + * @param back_callback pointer to the callback function + * @param back_context pointer to a user-specific object, can be NULL + */ void view_holder_set_back_callback( ViewHolder* view_holder, BackCallback back_callback, @@ -80,25 +101,26 @@ void view_holder_set_back_callback( void view_holder_attach_to_gui(ViewHolder* view_holder, Gui* gui); /** - * @brief Enable view processing - * - * @param view_holder + * @brief View Update Handler + * + * @param view View Instance + * @param context ViewHolder instance */ -void view_holder_start(ViewHolder* view_holder); +void view_holder_update(View* view, void* context); /** - * @brief Disable view processing - * - * @param view_holder + * @brief Send ViewPort of this ViewHolder instance to front + * + * @param view_holder ViewHolder instance */ -void view_holder_stop(ViewHolder* view_holder); +void view_holder_send_to_front(ViewHolder* view_holder); -/** View Update Handler +/** + * @brief Send ViewPort of this ViewHolder instance to back * - * @param view View Instance - * @param context ViewHolder instance + * @param view_holder ViewHolder instance */ -void view_holder_update(View* view, void* context); +void view_holder_send_to_back(ViewHolder* view_holder); #ifdef __cplusplus } diff --git a/applications/services/loader/loader_applications.c b/applications/services/loader/loader_applications.c index 232e5314e9f..5399ba26fc1 100644 --- a/applications/services/loader/loader_applications.c +++ b/applications/services/loader/loader_applications.c @@ -61,7 +61,6 @@ static LoaderApplicationsApp* loader_applications_app_alloc(void) { app->loading = loading_alloc(); view_holder_attach_to_gui(app->view_holder, app->gui); - view_holder_set_view(app->view_holder, loading_get_view(app->loading)); return app; } //-V773 @@ -149,7 +148,7 @@ static int32_t loader_applications_thread(void* p) { LoaderApplicationsApp* app = loader_applications_app_alloc(); // start loading animation - view_holder_start(app->view_holder); + view_holder_set_view(app->view_holder, loading_get_view(app->loading)); while(loader_applications_select_app(app)) { if(!furi_string_end_with(app->file_path, ".js")) { @@ -161,7 +160,7 @@ static int32_t loader_applications_thread(void* p) { } // stop loading animation - view_holder_stop(app->view_holder); + view_holder_set_view(app->view_holder, NULL); loader_applications_app_free(app); diff --git a/applications/services/loader/loader_menu.c b/applications/services/loader/loader_menu.c index 3293548810b..25763a0bcfe 100644 --- a/applications/services/loader/loader_menu.c +++ b/applications/services/loader/loader_menu.c @@ -158,8 +158,6 @@ static LoaderMenuApp* loader_menu_app_alloc(LoaderMenu* loader_menu) { view_set_context(settings_view, app->settings_menu); view_set_previous_callback(settings_view, loader_menu_switch_to_primary); view_dispatcher_add_view(app->view_dispatcher, LoaderMenuViewSettings, settings_view); - - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_switch_to_view(app->view_dispatcher, LoaderMenuViewPrimary); return app; diff --git a/applications/services/power/power_cli.c b/applications/services/power/power_cli.c index 6e1e34e67ee..93d0f232ac8 100644 --- a/applications/services/power/power_cli.c +++ b/applications/services/power/power_cli.c @@ -17,13 +17,15 @@ void power_cli_off(Cli* cli, FuriString* args) { void power_cli_reboot(Cli* cli, FuriString* args) { UNUSED(cli); UNUSED(args); - power_reboot(PowerBootModeNormal); + Power* power = furi_record_open(RECORD_POWER); + power_reboot(power, PowerBootModeNormal); } void power_cli_reboot2dfu(Cli* cli, FuriString* args) { UNUSED(cli); UNUSED(args); - power_reboot(PowerBootModeDfu); + Power* power = furi_record_open(RECORD_POWER); + power_reboot(power, PowerBootModeDfu); } void power_cli_5v(Cli* cli, FuriString* args) { diff --git a/applications/services/power/power_service/power.c b/applications/services/power/power_service/power.c index 64121d8525a..189bf24daba 100644 --- a/applications/services/power/power_service/power.c +++ b/applications/services/power/power_service/power.c @@ -3,17 +3,25 @@ #include #include +#include +#include + #define TAG "Power" -#define POWER_OFF_TIMEOUT 90 +#define POWER_OFF_TIMEOUT_S (90U) +#define POWER_POLL_PERIOD_MS (1000UL) + +#define POWER_VBUS_LOW_THRESHOLD (4.0f) +#define POWER_HEALTH_LOW_THRESHOLD (70U) -void power_draw_battery_callback(Canvas* canvas, void* context) { +static void power_draw_battery_callback(Canvas* canvas, void* context) { furi_assert(context); Power* power = context; canvas_draw_icon(canvas, 0, 0, &I_Battery_26x8); if(power->info.gauge_is_ok) { canvas_draw_box(canvas, 2, 2, (power->info.charge + 4) / 5, 4); + if(power->info.voltage_battery_charge_limit < 4.2f) { // Battery charge voltage limit is modified, indicate with cross pattern canvas_invert_color(canvas); @@ -28,6 +36,7 @@ void power_draw_battery_callback(Canvas* canvas, void* context) { } canvas_invert_color(canvas); } + if(power->state == PowerStateCharging) { canvas_set_bitmap_mode(canvas, 1); canvas_set_color(canvas, ColorWhite); @@ -37,6 +46,7 @@ void power_draw_battery_callback(Canvas* canvas, void* context) { canvas_draw_icon(canvas, 8, -1, &I_Charging_lightning_9x10); canvas_set_bitmap_mode(canvas, 0); } + } else { canvas_draw_box(canvas, 8, 3, 8, 2); } @@ -46,99 +56,61 @@ static ViewPort* power_battery_view_port_alloc(Power* power) { ViewPort* battery_view_port = view_port_alloc(); view_port_set_width(battery_view_port, icon_get_width(&I_Battery_26x8)); view_port_draw_callback_set(battery_view_port, power_draw_battery_callback, power); - gui_add_view_port(power->gui, battery_view_port, GuiLayerStatusBarRight); return battery_view_port; } -Power* power_alloc(void) { - Power* power = malloc(sizeof(Power)); - - // Records - power->notification = furi_record_open(RECORD_NOTIFICATION); - power->gui = furi_record_open(RECORD_GUI); - - // Pubsub - power->event_pubsub = furi_pubsub_alloc(); - - // State initialization - power->state = PowerStateNotCharging; - power->battery_low = false; - power->power_off_timeout = POWER_OFF_TIMEOUT; - power->api_mtx = furi_mutex_alloc(FuriMutexTypeNormal); - - // Gui - power->view_dispatcher = view_dispatcher_alloc(); - power->power_off = power_off_alloc(); - view_dispatcher_add_view( - power->view_dispatcher, PowerViewOff, power_off_get_view(power->power_off)); - power->power_unplug_usb = power_unplug_usb_alloc(); - view_dispatcher_add_view( - power->view_dispatcher, - PowerViewUnplugUsb, - power_unplug_usb_get_view(power->power_unplug_usb)); - view_dispatcher_attach_to_gui( - power->view_dispatcher, power->gui, ViewDispatcherTypeFullscreen); - - // Battery view port - power->battery_view_port = power_battery_view_port_alloc(power); - power->show_low_bat_level_message = true; - - return power; +static bool power_update_info(Power* power) { + const PowerInfo info = { + .is_charging = furi_hal_power_is_charging(), + .gauge_is_ok = furi_hal_power_gauge_is_ok(), + .is_shutdown_requested = furi_hal_power_is_shutdown_requested(), + .charge = furi_hal_power_get_pct(), + .health = furi_hal_power_get_bat_health_pct(), + .capacity_remaining = furi_hal_power_get_battery_remaining_capacity(), + .capacity_full = furi_hal_power_get_battery_full_capacity(), + .current_charger = furi_hal_power_get_battery_current(FuriHalPowerICCharger), + .current_gauge = furi_hal_power_get_battery_current(FuriHalPowerICFuelGauge), + .voltage_battery_charge_limit = furi_hal_power_get_battery_charge_voltage_limit(), + .voltage_charger = furi_hal_power_get_battery_voltage(FuriHalPowerICCharger), + .voltage_gauge = furi_hal_power_get_battery_voltage(FuriHalPowerICFuelGauge), + .voltage_vbus = furi_hal_power_get_usb_voltage(), + .temperature_charger = furi_hal_power_get_battery_temperature(FuriHalPowerICCharger), + .temperature_gauge = furi_hal_power_get_battery_temperature(FuriHalPowerICFuelGauge), + }; + + const bool need_refresh = (power->info.charge != info.charge) || + (power->info.is_charging != info.is_charging); + power->info = info; + return need_refresh; } static void power_check_charging_state(Power* power) { + NotificationApp* notification = furi_record_open(RECORD_NOTIFICATION); + if(furi_hal_power_is_charging()) { if((power->info.charge == 100) || (furi_hal_power_is_charging_done())) { if(power->state != PowerStateCharged) { - notification_internal_message(power->notification, &sequence_charged); + notification_internal_message(notification, &sequence_charged); power->state = PowerStateCharged; power->event.type = PowerEventTypeFullyCharged; furi_pubsub_publish(power->event_pubsub, &power->event); } - } else { - if(power->state != PowerStateCharging) { - notification_internal_message(power->notification, &sequence_charging); - power->state = PowerStateCharging; - power->event.type = PowerEventTypeStartCharging; - furi_pubsub_publish(power->event_pubsub, &power->event); - } - } - } else { - if(power->state != PowerStateNotCharging) { - notification_internal_message(power->notification, &sequence_not_charging); - power->state = PowerStateNotCharging; - power->event.type = PowerEventTypeStopCharging; + + } else if(power->state != PowerStateCharging) { + notification_internal_message(notification, &sequence_charging); + power->state = PowerStateCharging; + power->event.type = PowerEventTypeStartCharging; furi_pubsub_publish(power->event_pubsub, &power->event); } - } -} -static bool power_update_info(Power* power) { - PowerInfo info; - - info.is_charging = furi_hal_power_is_charging(); - info.gauge_is_ok = furi_hal_power_gauge_is_ok(); - info.is_shutdown_requested = furi_hal_power_is_shutdown_requested(); - info.charge = furi_hal_power_get_pct(); - info.health = furi_hal_power_get_bat_health_pct(); - info.capacity_remaining = furi_hal_power_get_battery_remaining_capacity(); - info.capacity_full = furi_hal_power_get_battery_full_capacity(); - info.current_charger = furi_hal_power_get_battery_current(FuriHalPowerICCharger); - info.current_gauge = furi_hal_power_get_battery_current(FuriHalPowerICFuelGauge); - info.voltage_battery_charge_limit = furi_hal_power_get_battery_charge_voltage_limit(); - info.voltage_charger = furi_hal_power_get_battery_voltage(FuriHalPowerICCharger); - info.voltage_gauge = furi_hal_power_get_battery_voltage(FuriHalPowerICFuelGauge); - info.voltage_vbus = furi_hal_power_get_usb_voltage(); - info.temperature_charger = furi_hal_power_get_battery_temperature(FuriHalPowerICCharger); - info.temperature_gauge = furi_hal_power_get_battery_temperature(FuriHalPowerICFuelGauge); - - furi_mutex_acquire(power->api_mtx, FuriWaitForever); - bool need_refresh = power->info.charge != info.charge; - need_refresh |= power->info.is_charging != info.is_charging; - power->info = info; - furi_mutex_release(power->api_mtx); + } else if(power->state != PowerStateNotCharging) { + notification_internal_message(notification, &sequence_not_charging); + power->state = PowerStateNotCharging; + power->event.type = PowerEventTypeStopCharging; + furi_pubsub_publish(power->event_pubsub, &power->event); + } - return need_refresh; + furi_record_close(RECORD_NOTIFICATION); } static void power_check_low_battery(Power* power) { @@ -147,40 +119,41 @@ static void power_check_low_battery(Power* power) { } // Check battery charge and vbus voltage - if((power->info.is_shutdown_requested) && (power->info.voltage_vbus < 4.0f) && - power->show_low_bat_level_message) { + if((power->info.is_shutdown_requested) && + (power->info.voltage_vbus < POWER_VBUS_LOW_THRESHOLD) && power->show_battery_low_warning) { if(!power->battery_low) { - view_dispatcher_send_to_front(power->view_dispatcher); - view_dispatcher_switch_to_view(power->view_dispatcher, PowerViewOff); + view_holder_send_to_front(power->view_holder); + view_holder_set_view(power->view_holder, power_off_get_view(power->view_power_off)); } power->battery_low = true; } else { if(power->battery_low) { - view_dispatcher_switch_to_view(power->view_dispatcher, VIEW_NONE); - power->power_off_timeout = POWER_OFF_TIMEOUT; + // view_dispatcher_switch_to_view(power->view_dispatcher, VIEW_NONE); + view_holder_set_view(power->view_holder, NULL); + power->power_off_timeout = POWER_OFF_TIMEOUT_S; } power->battery_low = false; } // If battery low, update view and switch off power after timeout if(power->battery_low) { - PowerOffResponse response = power_off_get_response(power->power_off); + PowerOffResponse response = power_off_get_response(power->view_power_off); if(response == PowerOffResponseDefault) { if(power->power_off_timeout) { - power_off_set_time_left(power->power_off, power->power_off_timeout--); + power_off_set_time_left(power->view_power_off, power->power_off_timeout--); } else { power_off(power); } } else if(response == PowerOffResponseOk) { power_off(power); } else if(response == PowerOffResponseHide) { - view_dispatcher_switch_to_view(power->view_dispatcher, VIEW_NONE); + view_holder_set_view(power->view_holder, NULL); if(power->power_off_timeout) { - power_off_set_time_left(power->power_off, power->power_off_timeout--); + power_off_set_time_left(power->view_power_off, power->power_off_timeout--); } else { power_off(power); } } else if(response == PowerOffResponseCancel) { - view_dispatcher_switch_to_view(power->view_dispatcher, VIEW_NONE); + view_holder_set_view(power->view_holder, NULL); } } } @@ -194,45 +167,136 @@ static void power_check_battery_level_change(Power* power) { } } -int32_t power_srv(void* p) { - UNUSED(p); +static void power_handle_shutdown(Power* power) { + furi_hal_power_off(); + // Notify user if USB is plugged + view_holder_send_to_front(power->view_holder); + view_holder_set_view( + power->view_holder, power_unplug_usb_get_view(power->view_power_unplug_usb)); + furi_delay_ms(100); + furi_halt("Disconnect USB for safe shutdown"); +} - if(furi_hal_rtc_get_boot_mode() != FuriHalRtcBootModeNormal) { - FURI_LOG_W(TAG, "Skipping start in special boot mode"); +static void power_handle_reboot(PowerBootMode mode) { + if(mode == PowerBootModeNormal) { + update_operation_disarm(); + } else if(mode == PowerBootModeDfu) { + furi_hal_rtc_set_boot_mode(FuriHalRtcBootModeDfu); + } else if(mode == PowerBootModeUpdateStart) { + furi_hal_rtc_set_boot_mode(FuriHalRtcBootModePreUpdate); + } else { + furi_crash(); + } - furi_thread_suspend(furi_thread_get_current_id()); - return 0; + furi_hal_power_reset(); +} + +static bool power_message_callback(FuriEventLoopObject* object, void* context) { + furi_assert(context); + Power* power = context; + + furi_assert(object == power->message_queue); + + PowerMessage msg; + furi_check(furi_message_queue_get(power->message_queue, &msg, 0) == FuriStatusOk); + + switch(msg.type) { + case PowerMessageTypeShutdown: + power_handle_shutdown(power); + break; + case PowerMessageTypeReboot: + power_handle_reboot(msg.boot_mode); + break; + case PowerMessageTypeGetInfo: + *msg.power_info = power->info; + break; + case PowerMessageTypeIsBatteryHealthy: + *msg.bool_param = power->info.health > POWER_HEALTH_LOW_THRESHOLD; + break; + case PowerMessageTypeShowBatteryLowWarning: + power->show_battery_low_warning = *msg.bool_param; + break; + default: + furi_crash(); } - Power* power = power_alloc(); - power_update_info(power); - furi_record_create(RECORD_POWER, power); + if(msg.lock) { + api_lock_unlock(msg.lock); + } - while(1) { - // Update data from gauge and charger - bool need_refresh = power_update_info(power); + return true; +} - // Check low battery level - power_check_low_battery(power); +static void power_tick_callback(void* context) { + furi_assert(context); + Power* power = context; - // Check and notify about charging state - power_check_charging_state(power); + // Update data from gauge and charger + const bool need_refresh = power_update_info(power); + // Check low battery level + power_check_low_battery(power); + // Check and notify about charging state + power_check_charging_state(power); + // Check and notify about battery level change + power_check_battery_level_change(power); + // Update battery view port + if(need_refresh) { + view_port_update(power->battery_view_port); + } + // Check OTG status and disable it in case of fault + if(furi_hal_power_is_otg_enabled()) { + furi_hal_power_check_otg_status(); + } +} - // Check and notify about battery level change - power_check_battery_level_change(power); +static Power* power_alloc(void) { + Power* power = malloc(sizeof(Power)); + // Pubsub + power->event_pubsub = furi_pubsub_alloc(); + // State initialization + power->power_off_timeout = POWER_OFF_TIMEOUT_S; + power->show_battery_low_warning = true; + // Gui + Gui* gui = furi_record_open(RECORD_GUI); - // Update battery view port - if(need_refresh) view_port_update(power->battery_view_port); + power->view_holder = view_holder_alloc(); + power->view_power_off = power_off_alloc(); + power->view_power_unplug_usb = power_unplug_usb_alloc(); - // Check OTG status and disable it in case of fault - if(furi_hal_power_is_otg_enabled()) { - furi_hal_power_check_otg_status(); - } + view_holder_attach_to_gui(power->view_holder, gui); + // Battery view port + power->battery_view_port = power_battery_view_port_alloc(power); + gui_add_view_port(gui, power->battery_view_port, GuiLayerStatusBarRight); + // Event loop + power->event_loop = furi_event_loop_alloc(); + power->message_queue = furi_message_queue_alloc(4, sizeof(PowerMessage)); + + furi_event_loop_subscribe_message_queue( + power->event_loop, + power->message_queue, + FuriEventLoopEventIn, + power_message_callback, + power); + furi_event_loop_tick_set(power->event_loop, 1000, power_tick_callback, power); + + return power; +} + +int32_t power_srv(void* p) { + UNUSED(p); - furi_delay_ms(1000); + if(furi_hal_rtc_get_boot_mode() != FuriHalRtcBootModeNormal) { + FURI_LOG_W(TAG, "Skipping start in special boot mode"); + + furi_thread_suspend(furi_thread_get_current_id()); + return 0; } - furi_crash("That was unexpected"); + Power* power = power_alloc(); + power_update_info(power); + + furi_record_create(RECORD_POWER, power); + furi_event_loop_run(power->event_loop); return 0; } diff --git a/applications/services/power/power_service/power.h b/applications/services/power/power_service/power.h index fdc5b527a60..0168a865647 100644 --- a/applications/services/power/power_service/power.h +++ b/applications/services/power/power_service/power.h @@ -1,9 +1,10 @@ #pragma once #include -#include #include +#include + #ifdef __cplusplus extern "C" { #endif @@ -65,7 +66,7 @@ void power_off(Power* power); * * @param mode PowerBootMode */ -void power_reboot(PowerBootMode mode); +void power_reboot(Power* power, PowerBootMode mode); /** Get power info * diff --git a/applications/services/power/power_service/power_api.c b/applications/services/power/power_service/power_api.c index 1bb482bf52d..6f7515f5e4e 100644 --- a/applications/services/power/power_service/power_api.c +++ b/applications/services/power/power_service/power_api.c @@ -1,41 +1,39 @@ #include "power_i.h" -#include -#include -#include - void power_off(Power* power) { furi_check(power); - furi_hal_power_off(); - // Notify user if USB is plugged - view_dispatcher_send_to_front(power->view_dispatcher); - view_dispatcher_switch_to_view(power->view_dispatcher, PowerViewUnplugUsb); - furi_delay_ms(100); - furi_halt("Disconnect USB for safe shutdown"); + PowerMessage msg = { + .type = PowerMessageTypeShutdown, + }; + + furi_check( + furi_message_queue_put(power->message_queue, &msg, FuriWaitForever) == FuriStatusOk); } -void power_reboot(PowerBootMode mode) { - if(mode == PowerBootModeNormal) { - update_operation_disarm(); - } else if(mode == PowerBootModeDfu) { - furi_hal_rtc_set_boot_mode(FuriHalRtcBootModeDfu); - } else if(mode == PowerBootModeUpdateStart) { - furi_hal_rtc_set_boot_mode(FuriHalRtcBootModePreUpdate); - } else { - furi_crash(); - } - - furi_hal_power_reset(); +void power_reboot(Power* power, PowerBootMode mode) { + PowerMessage msg = { + .type = PowerMessageTypeReboot, + .boot_mode = mode, + }; + + furi_check( + furi_message_queue_put(power->message_queue, &msg, FuriWaitForever) == FuriStatusOk); } void power_get_info(Power* power, PowerInfo* info) { furi_check(power); furi_check(info); - furi_mutex_acquire(power->api_mtx, FuriWaitForever); - memcpy(info, &power->info, sizeof(power->info)); - furi_mutex_release(power->api_mtx); + PowerMessage msg = { + .type = PowerMessageTypeGetInfo, + .power_info = info, + .lock = api_lock_alloc_locked(), + }; + + furi_check( + furi_message_queue_put(power->message_queue, &msg, FuriWaitForever) == FuriStatusOk); + api_lock_wait_unlock_and_free(msg.lock); } FuriPubSub* power_get_pubsub(Power* power) { @@ -45,16 +43,30 @@ FuriPubSub* power_get_pubsub(Power* power) { bool power_is_battery_healthy(Power* power) { furi_check(power); - bool is_healthy = false; - furi_mutex_acquire(power->api_mtx, FuriWaitForever); - is_healthy = power->info.health > POWER_BATTERY_HEALTHY_LEVEL; - furi_mutex_release(power->api_mtx); - return is_healthy; + + bool ret = false; + + PowerMessage msg = { + .type = PowerMessageTypeIsBatteryHealthy, + .lock = api_lock_alloc_locked(), + .bool_param = &ret, + }; + + furi_check( + furi_message_queue_put(power->message_queue, &msg, FuriWaitForever) == FuriStatusOk); + api_lock_wait_unlock_and_free(msg.lock); + + return ret; } void power_enable_low_battery_level_notification(Power* power, bool enable) { furi_check(power); - furi_mutex_acquire(power->api_mtx, FuriWaitForever); - power->show_low_bat_level_message = enable; - furi_mutex_release(power->api_mtx); + + PowerMessage msg = { + .type = PowerMessageTypeShowBatteryLowWarning, + .bool_param = &enable, + }; + + furi_check( + furi_message_queue_put(power->message_queue, &msg, FuriWaitForever) == FuriStatusOk); } diff --git a/applications/services/power/power_service/power_i.h b/applications/services/power/power_service/power_i.h index 8cb5140d77d..a0c02623a5a 100644 --- a/applications/services/power/power_service/power_i.h +++ b/applications/services/power/power_service/power_i.h @@ -2,19 +2,15 @@ #include "power.h" -#include -#include #include +#include + +#include #include -#include #include "views/power_off.h" #include "views/power_unplug_usb.h" -#include - -#define POWER_BATTERY_HEALTHY_LEVEL 70 - typedef enum { PowerStateNotCharging, PowerStateCharging, @@ -22,28 +18,44 @@ typedef enum { } PowerState; struct Power { - ViewDispatcher* view_dispatcher; - PowerOff* power_off; - PowerUnplugUsb* power_unplug_usb; + ViewHolder* view_holder; + FuriPubSub* event_pubsub; + FuriEventLoop* event_loop; + FuriMessageQueue* message_queue; ViewPort* battery_view_port; - Gui* gui; - NotificationApp* notification; - FuriPubSub* event_pubsub; - PowerEvent event; + PowerOff* view_power_off; + PowerUnplugUsb* view_power_unplug_usb; + PowerEvent event; PowerState state; PowerInfo info; bool battery_low; - bool show_low_bat_level_message; + bool show_battery_low_warning; uint8_t battery_level; uint8_t power_off_timeout; - - FuriMutex* api_mtx; }; typedef enum { PowerViewOff, PowerViewUnplugUsb, } PowerView; + +typedef enum { + PowerMessageTypeShutdown, + PowerMessageTypeReboot, + PowerMessageTypeGetInfo, + PowerMessageTypeIsBatteryHealthy, + PowerMessageTypeShowBatteryLowWarning, +} PowerMessageType; + +typedef struct { + PowerMessageType type; + union { + PowerBootMode boot_mode; + PowerInfo* power_info; + bool* bool_param; + }; + FuriApiLock lock; +} PowerMessage; diff --git a/applications/services/rpc/rpc_system.c b/applications/services/rpc/rpc_system.c index 0b9fd33f955..1cc0f90eb25 100644 --- a/applications/services/rpc/rpc_system.c +++ b/applications/services/rpc/rpc_system.c @@ -54,18 +54,21 @@ static void rpc_system_system_reboot_process(const PB_Main* request, void* conte RpcSession* session = (RpcSession*)context; furi_assert(session); + Power* power = furi_record_open(RECORD_POWER); const int mode = request->content.system_reboot_request.mode; if(mode == PB_System_RebootRequest_RebootMode_OS) { - power_reboot(PowerBootModeNormal); + power_reboot(power, PowerBootModeNormal); } else if(mode == PB_System_RebootRequest_RebootMode_DFU) { - power_reboot(PowerBootModeDfu); + power_reboot(power, PowerBootModeDfu); } else if(mode == PB_System_RebootRequest_RebootMode_UPDATE) { - power_reboot(PowerBootModeUpdateStart); + power_reboot(power, PowerBootModeUpdateStart); } else { rpc_send_and_release_empty( session, request->command_id, PB_CommandStatus_ERROR_INVALID_PARAMETERS); } + + furi_record_close(RECORD_POWER); } static void rpc_system_system_device_info_callback( @@ -181,9 +184,9 @@ static void rpc_system_system_factory_reset_process(const PB_Main* request, void furi_hal_rtc_reset_registers(); furi_hal_rtc_set_flag(FuriHalRtcFlagStorageFormatInternal); - power_reboot(PowerBootModeNormal); - (void)session; + Power* power = furi_record_open(RECORD_POWER); + power_reboot(power, PowerBootModeNormal); } static void diff --git a/applications/services/storage/storage_cli.c b/applications/services/storage/storage_cli.c index 17fd4eae4de..a18b289408c 100644 --- a/applications/services/storage/storage_cli.c +++ b/applications/services/storage/storage_cli.c @@ -675,9 +675,12 @@ static void storage_cli_factory_reset(Cli* cli, FuriString* args, void* context) char c = cli_getc(cli); if(c == 'y' || c == 'Y') { printf("Data will be wiped after reboot.\r\n"); + furi_hal_rtc_reset_registers(); furi_hal_rtc_set_flag(FuriHalRtcFlagStorageFormatInternal); - power_reboot(PowerBootModeNormal); + + Power* power = furi_record_open(RECORD_POWER); + power_reboot(power, PowerBootModeNormal); } else { printf("Safe choice.\r\n"); } diff --git a/applications/settings/about/about.c b/applications/settings/about/about.c index 973d1f48149..e066db25fc7 100644 --- a/applications/settings/about/about.c +++ b/applications/settings/about/about.c @@ -1,9 +1,12 @@ #include -#include + #include -#include +#include #include + +#include #include + #include #include #include @@ -204,7 +207,8 @@ const AboutDialogScreen about_screens[] = { about_screen_cert_taiwan, about_screen_cert_mexico, about_screen_hw_version, - about_screen_fw_version}; + about_screen_fw_version, +}; int32_t about_settings_app(void* p) { UNUSED(p); @@ -212,18 +216,15 @@ int32_t about_settings_app(void* p) { DialogMessage* message = dialog_message_alloc(); Gui* gui = furi_record_open(RECORD_GUI); - ViewDispatcher* view_dispatcher = view_dispatcher_alloc(); + ViewHolder* view_holder = view_holder_alloc(); EmptyScreen* empty_screen = empty_screen_alloc(); - const uint32_t empty_screen_index = 0; size_t screen_index = 0; DialogMessageButton screen_result; // draw empty screen to prevent menu flickering - view_dispatcher_add_view( - view_dispatcher, empty_screen_index, empty_screen_get_view(empty_screen)); - view_dispatcher_attach_to_gui(view_dispatcher, gui, ViewDispatcherTypeFullscreen); - view_dispatcher_switch_to_view(view_dispatcher, empty_screen_index); + view_holder_attach_to_gui(view_holder, gui); + view_holder_set_view(view_holder, empty_screen_get_view(empty_screen)); while(1) { if(screen_index >= COUNT_OF(about_screens) - 1) { @@ -258,8 +259,8 @@ int32_t about_settings_app(void* p) { dialog_message_free(message); furi_record_close(RECORD_DIALOGS); - view_dispatcher_remove_view(view_dispatcher, empty_screen_index); - view_dispatcher_free(view_dispatcher); + view_holder_set_view(view_holder, NULL); + view_holder_free(view_holder); empty_screen_free(empty_screen); furi_record_close(RECORD_GUI); diff --git a/applications/settings/bt_settings_app/bt_settings_app.c b/applications/settings/bt_settings_app/bt_settings_app.c index 8972820644d..174d0bcbb2f 100644 --- a/applications/settings/bt_settings_app/bt_settings_app.c +++ b/applications/settings/bt_settings_app/bt_settings_app.c @@ -21,7 +21,6 @@ BtSettingsApp* bt_settings_app_alloc(void) { // View Dispatcher and Scene Manager app->view_dispatcher = view_dispatcher_alloc(); app->scene_manager = scene_manager_alloc(&bt_settings_scene_handlers, app); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); view_dispatcher_set_custom_event_callback( diff --git a/applications/settings/desktop_settings/desktop_settings_app.c b/applications/settings/desktop_settings/desktop_settings_app.c index a0ad1027738..ab7782a7c4a 100644 --- a/applications/settings/desktop_settings/desktop_settings_app.c +++ b/applications/settings/desktop_settings/desktop_settings_app.c @@ -27,7 +27,6 @@ DesktopSettingsApp* desktop_settings_app_alloc(void) { app->dialogs = furi_record_open(RECORD_DIALOGS); app->view_dispatcher = view_dispatcher_alloc(); app->scene_manager = scene_manager_alloc(&desktop_settings_scene_handlers, app); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); view_dispatcher_set_custom_event_callback( diff --git a/applications/settings/expansion_settings_app/expansion_settings_app.c b/applications/settings/expansion_settings_app/expansion_settings_app.c index 7544bea3241..639f7f23d51 100644 --- a/applications/settings/expansion_settings_app/expansion_settings_app.c +++ b/applications/settings/expansion_settings_app/expansion_settings_app.c @@ -33,7 +33,6 @@ static ExpansionSettingsApp* expansion_settings_app_alloc(void) { app->expansion = furi_record_open(RECORD_EXPANSION); app->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); diff --git a/applications/settings/notification_settings/notification_settings_app.c b/applications/settings/notification_settings/notification_settings_app.c index 2a7aa97e600..ada2bfdd42c 100644 --- a/applications/settings/notification_settings/notification_settings_app.c +++ b/applications/settings/notification_settings/notification_settings_app.c @@ -230,7 +230,6 @@ static NotificationAppSettings* alloc_settings(void) { } app->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); view_dispatcher_add_view(app->view_dispatcher, 0, view); view_dispatcher_switch_to_view(app->view_dispatcher, 0); diff --git a/applications/settings/power_settings_app/power_settings_app.c b/applications/settings/power_settings_app/power_settings_app.c index b01f32f75b9..d43bd4108e6 100644 --- a/applications/settings/power_settings_app/power_settings_app.c +++ b/applications/settings/power_settings_app/power_settings_app.c @@ -28,7 +28,6 @@ PowerSettingsApp* power_settings_app_alloc(uint32_t first_scene) { // View dispatcher app->view_dispatcher = view_dispatcher_alloc(); app->scene_manager = scene_manager_alloc(&power_settings_scene_handlers, app); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); view_dispatcher_set_custom_event_callback( app->view_dispatcher, power_settings_custom_event_callback); diff --git a/applications/settings/power_settings_app/scenes/power_settings_scene_reboot_confirm.c b/applications/settings/power_settings_app/scenes/power_settings_scene_reboot_confirm.c index 62e06de927d..25e7b2bc422 100644 --- a/applications/settings/power_settings_app/scenes/power_settings_scene_reboot_confirm.c +++ b/applications/settings/power_settings_app/scenes/power_settings_scene_reboot_confirm.c @@ -49,10 +49,12 @@ bool power_settings_scene_reboot_confirm_on_event(void* context, SceneManagerEve if(event.event == DialogExResultLeft) { scene_manager_previous_scene(app->scene_manager); } else if(event.event == DialogExResultRight) { + Power* power = furi_record_open(RECORD_POWER); + if(reboot_type == RebootTypeDFU) { - power_reboot(PowerBootModeDfu); + power_reboot(power, PowerBootModeDfu); } else { - power_reboot(PowerBootModeNormal); + power_reboot(power, PowerBootModeNormal); } } consumed = true; diff --git a/applications/settings/storage_settings/scenes/storage_settings_scene_factory_reset.c b/applications/settings/storage_settings/scenes/storage_settings_scene_factory_reset.c index 2d977176a0b..0f8e1aa965a 100644 --- a/applications/settings/storage_settings/scenes/storage_settings_scene_factory_reset.c +++ b/applications/settings/storage_settings/scenes/storage_settings_scene_factory_reset.c @@ -65,7 +65,9 @@ bool storage_settings_scene_factory_reset_on_event(void* context, SceneManagerEv } else { furi_hal_rtc_reset_registers(); furi_hal_rtc_set_flag(FuriHalRtcFlagStorageFormatInternal); - power_reboot(PowerBootModeNormal); + + Power* power = furi_record_open(RECORD_POWER); + power_reboot(power, PowerBootModeNormal); } consumed = true; diff --git a/applications/settings/storage_settings/storage_settings.c b/applications/settings/storage_settings/storage_settings.c index 0508e8e0faf..35463289040 100644 --- a/applications/settings/storage_settings/storage_settings.c +++ b/applications/settings/storage_settings/storage_settings.c @@ -23,7 +23,6 @@ static StorageSettings* storage_settings_alloc(void) { app->scene_manager = scene_manager_alloc(&storage_settings_scene_handlers, app); app->text_string = furi_string_alloc(); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); view_dispatcher_set_custom_event_callback( diff --git a/applications/settings/system/system_settings.c b/applications/settings/system/system_settings.c index 636d49b42a4..1197c7f5117 100644 --- a/applications/settings/system/system_settings.c +++ b/applications/settings/system/system_settings.c @@ -220,7 +220,6 @@ SystemSettings* system_settings_alloc(void) { app->gui = furi_record_open(RECORD_GUI); app->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); diff --git a/applications/system/hid_app/hid.c b/applications/system/hid_app/hid.c index c640e982c25..15c49e3b027 100644 --- a/applications/system/hid_app/hid.c +++ b/applications/system/hid_app/hid.c @@ -62,7 +62,6 @@ Hid* hid_alloc() { // View dispatcher app->view_dispatcher = view_dispatcher_alloc(); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_set_event_callback_context(app->view_dispatcher, app); view_dispatcher_set_custom_event_callback(app->view_dispatcher, hid_custom_event_callback); view_dispatcher_set_navigation_event_callback(app->view_dispatcher, hid_back_event_callback); diff --git a/applications/system/js_app/js_app.c b/applications/system/js_app/js_app.c index b389033122e..d36f3c8dbfe 100644 --- a/applications/system/js_app/js_app.c +++ b/applications/system/js_app/js_app.c @@ -69,7 +69,6 @@ static JsApp* js_app_alloc(void) { app->loading = loading_alloc(); app->gui = furi_record_open("gui"); - view_dispatcher_enable_queue(app->view_dispatcher); view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); view_dispatcher_add_view( app->view_dispatcher, JsAppViewLoading, loading_get_view(app->loading)); diff --git a/applications/system/js_app/modules/js_submenu.c b/applications/system/js_app/modules/js_submenu.c index 058b32fd091..5ab9bef77cc 100644 --- a/applications/system/js_app/modules/js_submenu.c +++ b/applications/system/js_app/modules/js_submenu.c @@ -97,10 +97,9 @@ static void js_submenu_show(struct mjs* mjs) { view_holder_set_back_callback(submenu->view_holder, submenu_exit, submenu); view_holder_set_view(submenu->view_holder, submenu_get_view(submenu->submenu)); - view_holder_start(submenu->view_holder); api_lock_wait_unlock(submenu->lock); - view_holder_stop(submenu->view_holder); + view_holder_set_view(submenu->view_holder, NULL); view_holder_free(submenu->view_holder); furi_record_close(RECORD_GUI); api_lock_free(submenu->lock); diff --git a/applications/system/js_app/modules/js_textbox.c b/applications/system/js_app/modules/js_textbox.c index 33798b29656..b90dbc153a7 100644 --- a/applications/system/js_app/modules/js_textbox.c +++ b/applications/system/js_app/modules/js_textbox.c @@ -125,7 +125,7 @@ static void js_textbox_is_open(struct mjs* mjs) { static void textbox_callback(void* context, uint32_t arg) { UNUSED(arg); JsTextboxInst* textbox = context; - view_holder_stop(textbox->view_holder); + view_holder_set_view(textbox->view_holder, NULL); textbox->is_shown = false; } @@ -145,7 +145,7 @@ static void js_textbox_show(struct mjs* mjs) { return; } - view_holder_start(textbox->view_holder); + view_holder_set_view(textbox->view_holder, text_box_get_view(textbox->text_box)); textbox->is_shown = true; mjs_return(mjs, MJS_UNDEFINED); @@ -155,7 +155,7 @@ static void js_textbox_close(struct mjs* mjs) { JsTextboxInst* textbox = get_this_ctx(mjs); if(!check_arg_count(mjs, 0)) return; - view_holder_stop(textbox->view_holder); + view_holder_set_view(textbox->view_holder, NULL); textbox->is_shown = false; mjs_return(mjs, MJS_UNDEFINED); @@ -180,7 +180,6 @@ static void* js_textbox_create(struct mjs* mjs, mjs_val_t* object) { textbox->view_holder = view_holder_alloc(); view_holder_attach_to_gui(textbox->view_holder, gui); view_holder_set_back_callback(textbox->view_holder, textbox_exit, textbox); - view_holder_set_view(textbox->view_holder, text_box_get_view(textbox->text_box)); *object = textbox_obj; return textbox; @@ -189,7 +188,7 @@ static void* js_textbox_create(struct mjs* mjs, mjs_val_t* object) { static void js_textbox_destroy(void* inst) { JsTextboxInst* textbox = inst; - view_holder_stop(textbox->view_holder); + view_holder_set_view(textbox->view_holder, NULL); view_holder_free(textbox->view_holder); textbox->view_holder = NULL; diff --git a/applications/system/updater/updater.c b/applications/system/updater/updater.c index 4c7fd29e9cf..15d7dd3a94e 100644 --- a/applications/system/updater/updater.c +++ b/applications/system/updater/updater.c @@ -47,8 +47,6 @@ Updater* updater_alloc(const char* arg) { updater->view_dispatcher = view_dispatcher_alloc(); updater->scene_manager = scene_manager_alloc(&updater_scene_handlers, updater); - view_dispatcher_enable_queue(updater->view_dispatcher); - view_dispatcher_set_event_callback_context(updater->view_dispatcher, updater); view_dispatcher_set_custom_event_callback( updater->view_dispatcher, updater_custom_event_callback); diff --git a/furi/core/event_loop.c b/furi/core/event_loop.c index feed8d6f44b..2a6cd51d32e 100644 --- a/furi/core/event_loop.c +++ b/furi/core/event_loop.c @@ -1,5 +1,4 @@ #include "event_loop_i.h" -#include "message_queue_i.h" #include "log.h" #include "check.h" @@ -22,13 +21,17 @@ static FuriEventLoopItem* furi_event_loop_item_alloc( static void furi_event_loop_item_free(FuriEventLoopItem* instance); +static void furi_event_loop_item_free_later(FuriEventLoopItem* instance); + static void furi_event_loop_item_set_callback( FuriEventLoopItem* instance, - FuriEventLoopMessageQueueCallback callback, + FuriEventLoopEventCallback callback, void* callback_context); static void furi_event_loop_item_notify(FuriEventLoopItem* instance); +static bool furi_event_loop_item_is_waiting(FuriEventLoopItem* instance); + static void furi_event_loop_process_pending_callbacks(FuriEventLoop* instance) { for(; !PendingQueue_empty_p(instance->pending_queue); PendingQueue_pop_back(NULL, instance->pending_queue)) { @@ -37,6 +40,21 @@ static void furi_event_loop_process_pending_callbacks(FuriEventLoop* instance) { } } +static bool furi_event_loop_signal_callback(uint32_t signal, void* arg, void* context) { + furi_assert(context); + FuriEventLoop* instance = context; + UNUSED(arg); + + switch(signal) { + case FuriSignalExit: + furi_event_loop_stop(instance); + return true; + // Room for possible other standard signal handlers + default: + return false; + } +} + /* * Main public API */ @@ -67,6 +85,7 @@ void furi_event_loop_free(FuriEventLoop* instance) { furi_event_loop_process_timer_queue(instance); furi_check(TimerList_empty_p(instance->timer_list)); + furi_check(WaitingList_empty_p(instance->waiting_list)); FuriEventLoopTree_clear(instance->tree); PendingQueue_clear(instance->pending_queue); @@ -81,21 +100,81 @@ void furi_event_loop_free(FuriEventLoop* instance) { free(instance); } -static FuriEventLoopProcessStatus - furi_event_loop_poll_process_event(FuriEventLoop* instance, FuriEventLoopItem* item) { - UNUSED(instance); - +static inline FuriEventLoopProcessStatus + furi_event_loop_poll_process_level_event(FuriEventLoopItem* item) { if(!item->contract->get_level(item->object, item->event)) { return FuriEventLoopProcessStatusComplete; + } else if(item->callback(item->object, item->callback_context)) { + return FuriEventLoopProcessStatusIncomplete; + } else { + return FuriEventLoopProcessStatusAgain; } +} +static inline FuriEventLoopProcessStatus + furi_event_loop_poll_process_edge_event(FuriEventLoopItem* item) { if(item->callback(item->object, item->callback_context)) { - return FuriEventLoopProcessStatusIncomplete; + return FuriEventLoopProcessStatusComplete; } else { return FuriEventLoopProcessStatusAgain; } } +static inline FuriEventLoopProcessStatus + furi_event_loop_poll_process_event(FuriEventLoop* instance, FuriEventLoopItem* item) { + FuriEventLoopProcessStatus status; + if(item->event & FuriEventLoopEventFlagOnce) { + furi_event_loop_unsubscribe(instance, item->object); + } + + if(item->event & FuriEventLoopEventFlagEdge) { + status = furi_event_loop_poll_process_edge_event(item); + } else { + status = furi_event_loop_poll_process_level_event(item); + } + + if(item->owner == NULL) { + status = FuriEventLoopProcessStatusFreeLater; + } + + return status; +} + +static void furi_event_loop_process_waiting_list(FuriEventLoop* instance) { + FuriEventLoopItem* item = NULL; + + FURI_CRITICAL_ENTER(); + + if(!WaitingList_empty_p(instance->waiting_list)) { + item = WaitingList_pop_front(instance->waiting_list); + WaitingList_init_field(item); + } + + FURI_CRITICAL_EXIT(); + + if(!item) return; + + while(true) { + FuriEventLoopProcessStatus ret = furi_event_loop_poll_process_event(instance, item); + + if(ret == FuriEventLoopProcessStatusComplete) { + // Event processing complete, break from loop + break; + } else if(ret == FuriEventLoopProcessStatusIncomplete) { + // Event processing incomplete more processing needed + } else if(ret == FuriEventLoopProcessStatusAgain) { //-V547 + furi_event_loop_item_notify(item); + break; + // Unsubscribed from inside the callback, delete item + } else if(ret == FuriEventLoopProcessStatusFreeLater) { //-V547 + furi_event_loop_item_free(item); + break; + } else { + furi_crash(); + } + } +} + static void furi_event_loop_restore_flags(FuriEventLoop* instance, uint32_t flags) { if(flags) { xTaskNotifyIndexed( @@ -134,34 +213,7 @@ void furi_event_loop_run(FuriEventLoop* instance) { break; } else if(flags & FuriEventLoopFlagEvent) { - FuriEventLoopItem* item = NULL; - FURI_CRITICAL_ENTER(); - - if(!WaitingList_empty_p(instance->waiting_list)) { - item = WaitingList_pop_front(instance->waiting_list); - WaitingList_init_field(item); - } - - FURI_CRITICAL_EXIT(); - - if(item) { - while(true) { - FuriEventLoopProcessStatus ret = - furi_event_loop_poll_process_event(instance, item); - if(ret == FuriEventLoopProcessStatusComplete) { - // Event processing complete, break from loop - break; - } else if(ret == FuriEventLoopProcessStatusIncomplete) { - // Event processing incomplete more processing needed - } else if(ret == FuriEventLoopProcessStatusAgain) { //-V547 - furi_event_loop_item_notify(item); - break; - } else { - furi_crash(); - } - } - } - + furi_event_loop_process_waiting_list(instance); furi_event_loop_restore_flags(instance, flags & ~FuriEventLoopFlagEvent); } else if(flags & FuriEventLoopFlagTimer) { @@ -217,87 +269,150 @@ void furi_event_loop_pend_callback( } /* - * Message queue API + * Private generic susbscription API */ -void furi_event_loop_message_queue_subscribe( +static void furi_event_loop_object_subscribe( FuriEventLoop* instance, - FuriMessageQueue* message_queue, + FuriEventLoopObject* object, + const FuriEventLoopContract* contract, FuriEventLoopEvent event, - FuriEventLoopMessageQueueCallback callback, + FuriEventLoopEventCallback callback, void* context) { furi_check(instance); furi_check(instance->thread_id == furi_thread_get_current_id()); - furi_check(instance->state == FuriEventLoopStateStopped); - furi_check(message_queue); + furi_check(object); + furi_assert(contract); + furi_check(callback); FURI_CRITICAL_ENTER(); - furi_check(FuriEventLoopTree_get(instance->tree, message_queue) == NULL); + furi_check(FuriEventLoopTree_get(instance->tree, object) == NULL); // Allocate and setup item - FuriEventLoopItem* item = furi_event_loop_item_alloc( - instance, &furi_message_queue_event_loop_contract, message_queue, event); + FuriEventLoopItem* item = furi_event_loop_item_alloc(instance, contract, object, event); furi_event_loop_item_set_callback(item, callback, context); - FuriEventLoopTree_set_at(instance->tree, message_queue, item); + FuriEventLoopTree_set_at(instance->tree, object, item); - FuriEventLoopLink* link = item->contract->get_link(message_queue); + FuriEventLoopLink* link = item->contract->get_link(object); + FuriEventLoopEvent event_noflags = item->event & FuriEventLoopEventMask; - if(item->event == FuriEventLoopEventIn) { + if(event_noflags == FuriEventLoopEventIn) { furi_check(link->item_in == NULL); link->item_in = item; - } else if(item->event == FuriEventLoopEventOut) { + } else if(event_noflags == FuriEventLoopEventOut) { furi_check(link->item_out == NULL); link->item_out = item; } else { furi_crash(); } - if(item->contract->get_level(item->object, item->event)) { - furi_event_loop_item_notify(item); + if(!(item->event & FuriEventLoopEventFlagEdge)) { + if(item->contract->get_level(item->object, event_noflags)) { + furi_event_loop_item_notify(item); + } } FURI_CRITICAL_EXIT(); } -void furi_event_loop_message_queue_unsubscribe( +/** + * Public specialized subscription API + */ + +void furi_event_loop_subscribe_message_queue( FuriEventLoop* instance, - FuriMessageQueue* message_queue) { + FuriMessageQueue* message_queue, + FuriEventLoopEvent event, + FuriEventLoopEventCallback callback, + void* context) { + extern const FuriEventLoopContract furi_message_queue_event_loop_contract; + + furi_event_loop_object_subscribe( + instance, message_queue, &furi_message_queue_event_loop_contract, event, callback, context); +} + +void furi_event_loop_subscribe_stream_buffer( + FuriEventLoop* instance, + FuriStreamBuffer* stream_buffer, + FuriEventLoopEvent event, + FuriEventLoopEventCallback callback, + void* context) { + extern const FuriEventLoopContract furi_stream_buffer_event_loop_contract; + + furi_event_loop_object_subscribe( + instance, stream_buffer, &furi_stream_buffer_event_loop_contract, event, callback, context); +} + +void furi_event_loop_subscribe_semaphore( + FuriEventLoop* instance, + FuriSemaphore* semaphore, + FuriEventLoopEvent event, + FuriEventLoopEventCallback callback, + void* context) { + extern const FuriEventLoopContract furi_semaphore_event_loop_contract; + + furi_event_loop_object_subscribe( + instance, semaphore, &furi_semaphore_event_loop_contract, event, callback, context); +} + +void furi_event_loop_subscribe_mutex( + FuriEventLoop* instance, + FuriMutex* mutex, + FuriEventLoopEvent event, + FuriEventLoopEventCallback callback, + void* context) { + extern const FuriEventLoopContract furi_mutex_event_loop_contract; + + furi_event_loop_object_subscribe( + instance, mutex, &furi_mutex_event_loop_contract, event, callback, context); +} + +/** + * Public generic unsubscription API + */ + +void furi_event_loop_unsubscribe(FuriEventLoop* instance, FuriEventLoopObject* object) { furi_check(instance); - furi_check(instance->state == FuriEventLoopStateStopped); furi_check(instance->thread_id == furi_thread_get_current_id()); FURI_CRITICAL_ENTER(); - FuriEventLoopItem** item_ptr = FuriEventLoopTree_get(instance->tree, message_queue); - furi_check(item_ptr); + FuriEventLoopItem* item = NULL; + furi_check(FuriEventLoopTree_pop_at(&item, instance->tree, object)); - FuriEventLoopItem* item = *item_ptr; furi_check(item); furi_check(item->owner == instance); - FuriEventLoopLink* link = item->contract->get_link(message_queue); + FuriEventLoopLink* link = item->contract->get_link(object); + FuriEventLoopEvent event_noflags = item->event & FuriEventLoopEventMask; - if(item->event == FuriEventLoopEventIn) { + if(event_noflags == FuriEventLoopEventIn) { furi_check(link->item_in == item); link->item_in = NULL; - } else if(item->event == FuriEventLoopEventOut) { + } else if(event_noflags == FuriEventLoopEventOut) { furi_check(link->item_out == item); link->item_out = NULL; } else { furi_crash(); } - furi_event_loop_item_free(item); + if(furi_event_loop_item_is_waiting(item)) { + WaitingList_unlink(item); + } - FuriEventLoopTree_erase(instance->tree, message_queue); + if(instance->state == FuriEventLoopStateProcessing) { + furi_event_loop_item_free_later(item); + } else { + furi_event_loop_item_free(item); + } FURI_CRITICAL_EXIT(); } /* - * Event Loop Item API, used internally + * Private Event Loop Item functions */ static FuriEventLoopItem* furi_event_loop_item_alloc( @@ -322,12 +437,19 @@ static FuriEventLoopItem* furi_event_loop_item_alloc( static void furi_event_loop_item_free(FuriEventLoopItem* instance) { furi_assert(instance); + furi_assert(!furi_event_loop_item_is_waiting(instance)); free(instance); } +static void furi_event_loop_item_free_later(FuriEventLoopItem* instance) { + furi_assert(instance); + furi_assert(!furi_event_loop_item_is_waiting(instance)); + instance->owner = NULL; +} + static void furi_event_loop_item_set_callback( FuriEventLoopItem* instance, - FuriEventLoopMessageQueueCallback callback, + FuriEventLoopEventCallback callback, void* callback_context) { furi_assert(instance); furi_assert(!instance->callback); @@ -341,27 +463,35 @@ static void furi_event_loop_item_notify(FuriEventLoopItem* instance) { FURI_CRITICAL_ENTER(); - if(!instance->WaitingList.prev && !instance->WaitingList.next) { - WaitingList_push_back(instance->owner->waiting_list, instance); + FuriEventLoop* owner = instance->owner; + furi_assert(owner); + + if(!furi_event_loop_item_is_waiting(instance)) { + WaitingList_push_back(owner->waiting_list, instance); } FURI_CRITICAL_EXIT(); xTaskNotifyIndexed( - instance->owner->thread_id, - FURI_EVENT_LOOP_FLAG_NOTIFY_INDEX, - FuriEventLoopFlagEvent, - eSetBits); + owner->thread_id, FURI_EVENT_LOOP_FLAG_NOTIFY_INDEX, FuriEventLoopFlagEvent, eSetBits); +} + +static bool furi_event_loop_item_is_waiting(FuriEventLoopItem* instance) { + return instance->WaitingList.prev || instance->WaitingList.next; } +/* + * Internal event loop link API, used by supported primitives + */ + void furi_event_loop_link_notify(FuriEventLoopLink* instance, FuriEventLoopEvent event) { furi_assert(instance); FURI_CRITICAL_ENTER(); - if(event == FuriEventLoopEventIn) { + if(event & FuriEventLoopEventIn) { if(instance->item_in) furi_event_loop_item_notify(instance->item_in); - } else if(event == FuriEventLoopEventOut) { + } else if(event & FuriEventLoopEventOut) { if(instance->item_out) furi_event_loop_item_notify(instance->item_out); } else { furi_crash(); @@ -369,18 +499,3 @@ void furi_event_loop_link_notify(FuriEventLoopLink* instance, FuriEventLoopEvent FURI_CRITICAL_EXIT(); } - -bool furi_event_loop_signal_callback(uint32_t signal, void* arg, void* context) { - furi_assert(context); - FuriEventLoop* instance = context; - UNUSED(arg); - - switch(signal) { - case FuriSignalExit: - furi_event_loop_stop(instance); - return true; - // Room for possible other standard signal handlers - default: - return false; - } -} diff --git a/furi/core/event_loop.h b/furi/core/event_loop.h index 9ae9f6c4dda..af5987101d4 100644 --- a/furi/core/event_loop.h +++ b/furi/core/event_loop.h @@ -20,10 +20,83 @@ extern "C" { #endif -/** Event Loop events */ +/** + * @brief Enumeration of event types, flags and masks. + * + * Only one event direction (In or Out) can be used per subscription. + * An object can have no more than one subscription for each direction. + * + * Additional flags that modify the behaviour can be + * set using the bitwise OR operation (see flag description). + */ typedef enum { - FuriEventLoopEventOut, /**< On departure: item was retrieved from container, flag reset, etc... */ - FuriEventLoopEventIn, /**< On arrival: item was inserted into container, flag set, etc... */ + /** + * @brief Subscribe to In events. + * + * In events occur on the following conditions: + * - One or more items were inserted into a FuriMessageQueue, + * - Enough data has been written to a FuriStreamBuffer, + * - A FuriSemaphore has been released at least once, + * - A FuriMutex has been released. + */ + FuriEventLoopEventIn = 0x00000001U, + /** + * @brief Subscribe to Out events. + * + * Out events occur on the following conditions: + * - One or more items were removed from a FuriMessageQueue, + * - Any amount of data has been read out of a FuriStreamBuffer, + * - A FuriSemaphore has been acquired at least once, + * - A FuriMutex has been acquired. + */ + FuriEventLoopEventOut = 0x00000002U, + /** + * @brief Special value containing the event direction bits, used internally. + */ + FuriEventLoopEventMask = 0x00000003U, + /** + * @brief Use edge triggered events. + * + * By default, level triggered events are used. A level above zero + * is reported based on the following conditions: + * + * In events: + * - a FuriMessageQueue contains one or more items, + * - a FuriStreamBuffer contains one or more bytes, + * - a FuriSemaphore can be acquired at least once, + * - a FuriMutex can be acquired. + * + * Out events: + * - a FuriMessageQueue has at least one item of free space, + * - a FuriStreamBuffer has at least one byte of free space, + * - a FuriSemaphore has been acquired at least once, + * - a FuriMutex has been acquired. + * + * If this flag is NOT set, the event will be generated repeatedly until + * the level becomes zero (e.g. all items have been removed from + * a FuriMessageQueue in case of the "In" event, etc.) + * + * If this flag IS set, then the above check is skipped and the event + * is generated ONLY when a change occurs, with the event direction + * (In or Out) taken into account. + */ + FuriEventLoopEventFlagEdge = 0x00000004U, + /** + * @brief Automatically unsubscribe from events after one time. + * + * By default, events will be generated each time the specified conditions + * have been met. If this flag IS set, the event subscription will be cancelled + * upon the first occurred event and no further events will be generated. + */ + FuriEventLoopEventFlagOnce = 0x00000008U, + /** + * @brief Special value containing the event flag bits, used internally. + */ + FuriEventLoopEventFlagMask = 0xFFFFFFFCU, + /** + * @brief Special value to force the enum to 32-bit values. + */ + FuriEventLoopEventReserved = UINT32_MAX, } FuriEventLoopEvent; /** Anonymous message queue type */ @@ -115,21 +188,22 @@ void furi_event_loop_pend_callback( void* context); /* - * Message queue related APIs + * Event subscription/notification APIs */ -/** Anonymous message queue type */ -typedef struct FuriMessageQueue FuriMessageQueue; +typedef void FuriEventLoopObject; -/** Callback type for message queue +/** Callback type for event loop events * - * @param queue The queue that triggered event - * @param context The context that was provided on - * furi_event_loop_message_queue_subscribe call + * @param object The object that triggered the event + * @param context The context that was provided upon subscription * * @return true if event was processed, false if we need to delay processing */ -typedef bool (*FuriEventLoopMessageQueueCallback)(FuriMessageQueue* queue, void* context); +typedef bool (*FuriEventLoopEventCallback)(FuriEventLoopObject* object, void* context); + +/** Opaque message queue type */ +typedef struct FuriMessageQueue FuriMessageQueue; /** Subscribe to message queue events * @@ -141,21 +215,79 @@ typedef bool (*FuriEventLoopMessageQueueCallback)(FuriMessageQueue* queue, void* * @param[in] callback The callback to call on event * @param context The context for callback */ -void furi_event_loop_message_queue_subscribe( +void furi_event_loop_subscribe_message_queue( FuriEventLoop* instance, FuriMessageQueue* message_queue, FuriEventLoopEvent event, - FuriEventLoopMessageQueueCallback callback, + FuriEventLoopEventCallback callback, + void* context); + +/** Opaque stream buffer type */ +typedef struct FuriStreamBuffer FuriStreamBuffer; + +/** Subscribe to stream buffer events + * + * @warning you can only have one subscription for one event type. + * + * @param instance The Event Loop instance + * @param stream_buffer The stream buffer to add + * @param[in] event The Event Loop event to trigger on + * @param[in] callback The callback to call on event + * @param context The context for callback + */ +void furi_event_loop_subscribe_stream_buffer( + FuriEventLoop* instance, + FuriStreamBuffer* stream_buffer, + FuriEventLoopEvent event, + FuriEventLoopEventCallback callback, + void* context); + +/** Opaque semaphore type */ +typedef struct FuriSemaphore FuriSemaphore; + +/** Subscribe to semaphore events + * + * @warning you can only have one subscription for one event type. + * + * @param instance The Event Loop instance + * @param semaphore The semaphore to add + * @param[in] event The Event Loop event to trigger on + * @param[in] callback The callback to call on event + * @param context The context for callback + */ +void furi_event_loop_subscribe_semaphore( + FuriEventLoop* instance, + FuriSemaphore* semaphore, + FuriEventLoopEvent event, + FuriEventLoopEventCallback callback, void* context); -/** Unsubscribe from message queue +/** Opaque mutex type */ +typedef struct FuriMutex FuriMutex; + +/** Subscribe to mutex events + * + * @warning you can only have one subscription for one event type. * * @param instance The Event Loop instance - * @param message_queue The message queue + * @param mutex The mutex to add + * @param[in] event The Event Loop event to trigger on + * @param[in] callback The callback to call on event + * @param context The context for callback */ -void furi_event_loop_message_queue_unsubscribe( +void furi_event_loop_subscribe_mutex( FuriEventLoop* instance, - FuriMessageQueue* message_queue); + FuriMutex* mutex, + FuriEventLoopEvent event, + FuriEventLoopEventCallback callback, + void* context); + +/** Unsubscribe from events (common) + * + * @param instance The Event Loop instance + * @param object The object to unsubscribe from + */ +void furi_event_loop_unsubscribe(FuriEventLoop* instance, FuriEventLoopObject* object); #ifdef __cplusplus } diff --git a/furi/core/event_loop_i.h b/furi/core/event_loop_i.h index cd10148673d..15efa8f8642 100644 --- a/furi/core/event_loop_i.h +++ b/furi/core/event_loop_i.h @@ -16,16 +16,16 @@ struct FuriEventLoopItem { FuriEventLoop* owner; // Tracking item - const FuriEventLoopContract* contract; - void* object; FuriEventLoopEvent event; + FuriEventLoopObject* object; + const FuriEventLoopContract* contract; // Callback and context - FuriEventLoopMessageQueueCallback callback; + FuriEventLoopEventCallback callback; void* callback_context; // Waiting list - ILIST_INTERFACE(WaitingList, struct FuriEventLoopItem); + ILIST_INTERFACE(WaitingList, FuriEventLoopItem); }; ILIST_DEF(WaitingList, FuriEventLoopItem, M_POD_OPLIST) @@ -36,7 +36,7 @@ ILIST_DEF(WaitingList, FuriEventLoopItem, M_POD_OPLIST) BPTREE_DEF2( // NOLINT FuriEventLoopTree, FURI_EVENT_LOOP_TREE_RANK, - void*, /* pointer to object we track */ + FuriEventLoopObject*, /* pointer to object we track */ M_PTR_OPLIST, FuriEventLoopItem*, /* pointer to the FuriEventLoopItem */ M_PTR_OPLIST) @@ -60,6 +60,7 @@ typedef enum { FuriEventLoopProcessStatusComplete, FuriEventLoopProcessStatusIncomplete, FuriEventLoopProcessStatusAgain, + FuriEventLoopProcessStatusFreeLater, } FuriEventLoopProcessStatus; typedef enum { diff --git a/furi/core/event_loop_link_i.h b/furi/core/event_loop_link_i.h index 5c0b144a1bc..992ca655559 100644 --- a/furi/core/event_loop_link_i.h +++ b/furi/core/event_loop_link_i.h @@ -19,17 +19,16 @@ void furi_event_loop_link_notify(FuriEventLoopLink* instance, FuriEventLoopEvent /* Contract between event loop and an object */ -typedef FuriEventLoopLink* (*FuriEventLoopContractGetLink)(void* object); +typedef FuriEventLoopLink* (*FuriEventLoopContractGetLink)(FuriEventLoopObject* object); -typedef uint32_t (*FuriEventLoopContractGetLevel)(void* object, FuriEventLoopEvent event); +typedef uint32_t ( + *FuriEventLoopContractGetLevel)(FuriEventLoopObject* object, FuriEventLoopEvent event); typedef struct { const FuriEventLoopContractGetLink get_link; const FuriEventLoopContractGetLevel get_level; } FuriEventLoopContract; -bool furi_event_loop_signal_callback(uint32_t signal, void* arg, void* context); - #ifdef __cplusplus } #endif diff --git a/furi/core/message_queue.c b/furi/core/message_queue.c index 3521ceb30b2..bd0cec02146 100644 --- a/furi/core/message_queue.c +++ b/furi/core/message_queue.c @@ -1,4 +1,4 @@ -#include "message_queue_i.h" +#include "message_queue.h" #include #include @@ -6,6 +6,8 @@ #include "kernel.h" #include "check.h" +#include "event_loop_link_i.h" + // Internal FreeRTOS member names #define uxMessagesWaiting uxDummy4[0] #define uxLength uxDummy4[1] @@ -13,10 +15,7 @@ struct FuriMessageQueue { StaticQueue_t container; - - // Event Loop Link FuriEventLoopLink event_loop_link; - uint8_t buffer[]; }; @@ -208,13 +207,14 @@ FuriStatus furi_message_queue_reset(FuriMessageQueue* instance) { return stat; } -static FuriEventLoopLink* furi_message_queue_event_loop_get_link(void* object) { +static FuriEventLoopLink* furi_message_queue_event_loop_get_link(FuriEventLoopObject* object) { FuriMessageQueue* instance = object; furi_assert(instance); return &instance->event_loop_link; } -static uint32_t furi_message_queue_event_loop_get_level(void* object, FuriEventLoopEvent event) { +static uint32_t + furi_message_queue_event_loop_get_level(FuriEventLoopObject* object, FuriEventLoopEvent event) { FuriMessageQueue* instance = object; furi_assert(instance); diff --git a/furi/core/message_queue_i.h b/furi/core/message_queue_i.h deleted file mode 100644 index a88d04131ae..00000000000 --- a/furi/core/message_queue_i.h +++ /dev/null @@ -1,6 +0,0 @@ -#pragma once - -#include "message_queue.h" -#include "event_loop_link_i.h" - -extern const FuriEventLoopContract furi_message_queue_event_loop_contract; diff --git a/furi/core/mutex.c b/furi/core/mutex.c index f59ae83ada9..f9848e1baa9 100644 --- a/furi/core/mutex.c +++ b/furi/core/mutex.c @@ -1,15 +1,18 @@ #include "mutex.h" -#include "check.h" -#include "common_defines.h" #include #include +#include "check.h" + +#include "event_loop_link_i.h" + // Internal FreeRTOS member names #define ucQueueType ucDummy9 struct FuriMutex { StaticSemaphore_t container; + FuriEventLoopLink event_loop_link; }; // IMPORTANT: container MUST be the FIRST struct member @@ -39,6 +42,10 @@ void furi_mutex_free(FuriMutex* instance) { furi_check(!FURI_IS_IRQ_MODE()); furi_check(instance); + // Event Loop must be disconnected + furi_check(!instance->event_loop_link.item_in); + furi_check(!instance->event_loop_link.item_out); + vSemaphoreDelete((SemaphoreHandle_t)instance); free(instance); } @@ -76,6 +83,10 @@ FuriStatus furi_mutex_acquire(FuriMutex* instance, uint32_t timeout) { furi_crash(); } + if(stat == FuriStatusOk) { + furi_event_loop_link_notify(&instance->event_loop_link, FuriEventLoopEventOut); + } + return stat; } @@ -104,6 +115,10 @@ FuriStatus furi_mutex_release(FuriMutex* instance) { furi_crash(); } + if(stat == FuriStatusOk) { + furi_event_loop_link_notify(&instance->event_loop_link, FuriEventLoopEventIn); + } + return stat; } @@ -122,3 +137,26 @@ FuriThreadId furi_mutex_get_owner(FuriMutex* instance) { return owner; } + +static FuriEventLoopLink* furi_mutex_event_loop_get_link(FuriEventLoopObject* object) { + FuriMutex* instance = object; + furi_assert(instance); + return &instance->event_loop_link; +} + +static uint32_t + furi_mutex_event_loop_get_level(FuriEventLoopObject* object, FuriEventLoopEvent event) { + FuriMutex* instance = object; + furi_assert(instance); + + if(event == FuriEventLoopEventIn || event == FuriEventLoopEventOut) { + return furi_mutex_get_owner(instance) ? 0 : 1; + } else { + furi_crash(); + } +} + +const FuriEventLoopContract furi_mutex_event_loop_contract = { + .get_link = furi_mutex_event_loop_get_link, + .get_level = furi_mutex_event_loop_get_level, +}; diff --git a/furi/core/semaphore.c b/furi/core/semaphore.c index 6413eb65f53..850169ad6e2 100644 --- a/furi/core/semaphore.c +++ b/furi/core/semaphore.c @@ -1,12 +1,20 @@ #include "semaphore.h" -#include "check.h" -#include "common_defines.h" #include #include +#include "check.h" +#include "kernel.h" + +#include "event_loop_link_i.h" + +// Internal FreeRTOS member names +#define uxMessagesWaiting uxDummy4[0] +#define uxLength uxDummy4[1] + struct FuriSemaphore { StaticSemaphore_t container; + FuriEventLoopLink event_loop_link; }; // IMPORTANT: container MUST be the FIRST struct member @@ -40,6 +48,10 @@ void furi_semaphore_free(FuriSemaphore* instance) { furi_check(instance); furi_check(!FURI_IS_IRQ_MODE()); + // Event Loop must be disconnected + furi_check(!instance->event_loop_link.item_in); + furi_check(!instance->event_loop_link.item_out); + vSemaphoreDelete((SemaphoreHandle_t)instance); free(instance); } @@ -76,6 +88,10 @@ FuriStatus furi_semaphore_acquire(FuriSemaphore* instance, uint32_t timeout) { } } + if(stat == FuriStatusOk) { + furi_event_loop_link_notify(&instance->event_loop_link, FuriEventLoopEventOut); + } + return stat; } @@ -103,6 +119,10 @@ FuriStatus furi_semaphore_release(FuriSemaphore* instance) { } } + if(stat == FuriStatusOk) { + furi_event_loop_link_notify(&instance->event_loop_link, FuriEventLoopEventIn); + } + return stat; } @@ -120,3 +140,46 @@ uint32_t furi_semaphore_get_count(FuriSemaphore* instance) { return count; } + +uint32_t furi_semaphore_get_space(FuriSemaphore* instance) { + furi_assert(instance); + + uint32_t space; + + if(furi_kernel_is_irq_or_masked() != 0U) { + uint32_t isrm = taskENTER_CRITICAL_FROM_ISR(); + + space = instance->container.uxLength - instance->container.uxMessagesWaiting; + + taskEXIT_CRITICAL_FROM_ISR(isrm); + } else { + space = uxQueueSpacesAvailable((QueueHandle_t)instance); + } + + return space; +} + +static FuriEventLoopLink* furi_semaphore_event_loop_get_link(FuriEventLoopObject* object) { + FuriSemaphore* instance = object; + furi_assert(instance); + return &instance->event_loop_link; +} + +static uint32_t + furi_semaphore_event_loop_get_level(FuriEventLoopObject* object, FuriEventLoopEvent event) { + FuriSemaphore* instance = object; + furi_assert(instance); + + if(event == FuriEventLoopEventIn) { + return furi_semaphore_get_count(instance); + } else if(event == FuriEventLoopEventOut) { + return furi_semaphore_get_space(instance); + } else { + furi_crash(); + } +} + +const FuriEventLoopContract furi_semaphore_event_loop_contract = { + .get_link = furi_semaphore_event_loop_get_link, + .get_level = furi_semaphore_event_loop_get_level, +}; diff --git a/furi/core/semaphore.h b/furi/core/semaphore.h index c6b9a1176a1..47a77ed5583 100644 --- a/furi/core/semaphore.h +++ b/furi/core/semaphore.h @@ -53,6 +53,14 @@ FuriStatus furi_semaphore_release(FuriSemaphore* instance); */ uint32_t furi_semaphore_get_count(FuriSemaphore* instance); +/** Get available space + * + * @param instance The pointer to FuriSemaphore instance + * + * @return Semaphore available space + */ +uint32_t furi_semaphore_get_space(FuriSemaphore* instance); + #ifdef __cplusplus } #endif diff --git a/furi/core/stream_buffer.c b/furi/core/stream_buffer.c index ef8869dea06..f35abec647c 100644 --- a/furi/core/stream_buffer.c +++ b/furi/core/stream_buffer.c @@ -1,13 +1,19 @@ #include "stream_buffer.h" +#include +#include + #include "check.h" #include "common_defines.h" -#include -#include +#include "event_loop_link_i.h" + +// Internal FreeRTOS member names +#define xTriggerLevelBytes uxDummy1[3] struct FuriStreamBuffer { StaticStreamBuffer_t container; + FuriEventLoopLink event_loop_link; uint8_t buffer[]; }; @@ -34,6 +40,10 @@ FuriStreamBuffer* furi_stream_buffer_alloc(size_t size, size_t trigger_level) { void furi_stream_buffer_free(FuriStreamBuffer* stream_buffer) { furi_check(stream_buffer); + // Event Loop must be disconnected + furi_check(!stream_buffer->event_loop_link.item_in); + furi_check(!stream_buffer->event_loop_link.item_out); + vStreamBufferDelete((StreamBufferHandle_t)stream_buffer); free(stream_buffer); } @@ -61,6 +71,16 @@ size_t furi_stream_buffer_send( ret = xStreamBufferSend((StreamBufferHandle_t)stream_buffer, data, length, timeout); } + if(ret > 0) { + const size_t bytes_available = + xStreamBufferBytesAvailable((StreamBufferHandle_t)stream_buffer); + const size_t trigger_level = ((StaticStreamBuffer_t*)stream_buffer)->xTriggerLevelBytes; + + if(bytes_available >= trigger_level) { + furi_event_loop_link_notify(&stream_buffer->event_loop_link, FuriEventLoopEventIn); + } + } + return ret; } @@ -82,6 +102,10 @@ size_t furi_stream_buffer_receive( ret = xStreamBufferReceive((StreamBufferHandle_t)stream_buffer, data, length, timeout); } + if(ret > 0) { + furi_event_loop_link_notify(&stream_buffer->event_loop_link, FuriEventLoopEventOut); + } + return ret; } @@ -112,9 +136,42 @@ bool furi_stream_buffer_is_empty(FuriStreamBuffer* stream_buffer) { FuriStatus furi_stream_buffer_reset(FuriStreamBuffer* stream_buffer) { furi_check(stream_buffer); + FuriStatus status; + if(xStreamBufferReset((StreamBufferHandle_t)stream_buffer) == pdPASS) { - return FuriStatusOk; + status = FuriStatusOk; } else { - return FuriStatusError; + status = FuriStatusError; + } + + if(status == FuriStatusOk) { + furi_event_loop_link_notify(&stream_buffer->event_loop_link, FuriEventLoopEventOut); + } + + return status; +} + +static FuriEventLoopLink* furi_stream_buffer_event_loop_get_link(FuriEventLoopObject* object) { + FuriStreamBuffer* stream_buffer = object; + furi_assert(stream_buffer); + return &stream_buffer->event_loop_link; +} + +static uint32_t + furi_stream_buffer_event_loop_get_level(FuriEventLoopObject* object, FuriEventLoopEvent event) { + FuriStreamBuffer* stream_buffer = object; + furi_assert(stream_buffer); + + if(event == FuriEventLoopEventIn) { + return xStreamBufferBytesAvailable((StreamBufferHandle_t)stream_buffer); + } else if(event == FuriEventLoopEventOut) { + return xStreamBufferSpacesAvailable((StreamBufferHandle_t)stream_buffer); + } else { + furi_crash(); } } + +const FuriEventLoopContract furi_stream_buffer_event_loop_contract = { + .get_link = furi_stream_buffer_event_loop_get_link, + .get_level = furi_stream_buffer_event_loop_get_level, +}; diff --git a/lib/SConscript b/lib/SConscript index 7f13aad4455..fb0473f8d48 100644 --- a/lib/SConscript +++ b/lib/SConscript @@ -32,7 +32,6 @@ libs = env.BuildModules( "digital_signal", "pulse_reader", "signal_reader", - "appframe", "u8g2", "lfrfid", "flipper_application", diff --git a/lib/app-scened-template/generic_scene.hpp b/lib/app-scened-template/generic_scene.hpp deleted file mode 100644 index 580346c8c01..00000000000 --- a/lib/app-scened-template/generic_scene.hpp +++ /dev/null @@ -1,10 +0,0 @@ -template -class GenericScene { -public: - virtual void on_enter(TApp* app, bool need_restore) = 0; - virtual bool on_event(TApp* app, typename TApp::Event* event) = 0; - virtual void on_exit(TApp* app) = 0; - virtual ~GenericScene() {}; - -private: -}; diff --git a/lib/app-scened-template/record_controller.hpp b/lib/app-scened-template/record_controller.hpp deleted file mode 100644 index 3453c12f3ab..00000000000 --- a/lib/app-scened-template/record_controller.hpp +++ /dev/null @@ -1,47 +0,0 @@ -#pragma once -#include - -/** - * @brief Class for opening, casting, holding and closing records - * - * @tparam TRecordClass record class - */ -template -class RecordController { -public: - /** - * @brief Construct a new Record Controller object for record with record name - * - * @param record_name record name - */ - RecordController(const char* record_name) { - name = record_name; - value = static_cast(furi_record_open(name)); - } - - ~RecordController() { - furi_record_close(name); - } - - /** - * @brief Record getter - * - * @return TRecordClass* record value - */ - TRecordClass* get() { - return value; - } - - /** - * @brief Record getter (by cast) - * - * @return TRecordClass* record value - */ - operator TRecordClass*() const { - return value; - } - -private: - const char* name; - TRecordClass* value; -}; diff --git a/lib/app-scened-template/scene_controller.hpp b/lib/app-scened-template/scene_controller.hpp deleted file mode 100644 index eb431095840..00000000000 --- a/lib/app-scened-template/scene_controller.hpp +++ /dev/null @@ -1,246 +0,0 @@ -#include -#include -#include - -#define GENERIC_SCENE_ENUM_VALUES Exit, Start -#define GENERIC_EVENT_ENUM_VALUES Tick, Back - -/** - * @brief Controller for scene navigation in application - * - * @tparam TScene generic scene class - * @tparam TApp application class - */ -template -class SceneController { -public: - /** - * @brief Add scene to scene container - * - * @param scene_index scene index - * @param scene_pointer scene object pointer - */ - void add_scene(typename TApp::SceneType scene_index, TScene* scene_pointer) { - furi_check(scenes.count(scene_index) == 0); - scenes[scene_index] = scene_pointer; - } - - /** - * @brief Switch to next scene and store current scene in previous scenes list - * - * @param scene_index next scene index - * @param need_restore true, if we want the scene to restore its parameters - */ - void switch_to_next_scene(typename TApp::SceneType scene_index, bool need_restore = false) { - previous_scenes_list.push_front(current_scene_index); - switch_to_scene(scene_index, need_restore); - } - - /** - * @brief Switch to next scene without ability to return to current scene - * - * @param scene_index next scene index - * @param need_restore true, if we want the scene to restore its parameters - */ - void switch_to_scene(typename TApp::SceneType scene_index, bool need_restore = false) { - if(scene_index != TApp::SceneType::Exit) { - scenes[current_scene_index]->on_exit(app); - current_scene_index = scene_index; - scenes[current_scene_index]->on_enter(app, need_restore); - } - } - - /** - * @brief Search the scene in the list of previous scenes and switch to it - * - * @param scene_index_list list of scene indexes to which you want to switch - */ - bool search_and_switch_to_previous_scene( - const std::initializer_list& scene_index_list) { - auto previous_scene_index = TApp::SceneType::Exit; - bool scene_found = false; - bool result = false; - - while(!scene_found) { - previous_scene_index = get_previous_scene_index(); - for(const auto& element : scene_index_list) { - if(previous_scene_index == element) { - scene_found = true; - result = true; - break; - } - - if(previous_scene_index == TApp::SceneType::Exit) { - scene_found = true; - break; - } - } - } - - if(result) { - switch_to_scene(previous_scene_index, true); - } - - return result; - } - - bool search_and_switch_to_another_scene( - const std::initializer_list& scene_index_list, - typename TApp::SceneType scene_index) { - auto previous_scene_index = TApp::SceneType::Exit; - bool scene_found = false; - bool result = false; - - while(!scene_found) { - previous_scene_index = get_previous_scene_index(); - for(const auto& element : scene_index_list) { - if(previous_scene_index == element) { - scene_found = true; - result = true; - break; - } - - if(previous_scene_index == TApp::SceneType::Exit) { - scene_found = true; - break; - } - } - } - - if(result) { - switch_to_scene(scene_index, true); - } - - return result; - } - - bool has_previous_scene( - const std::initializer_list& scene_index_list) { - bool result = false; - - for(auto const& previous_element : previous_scenes_list) { - for(const auto& element : scene_index_list) { - if(previous_element == element) { - result = true; - break; - } - - if(previous_element == TApp::SceneType::Exit) { - break; - } - } - - if(result) break; - } - - return result; - } - - /** - * @brief Start application main cycle - * - * @param tick_length_ms tick event length in milliseconds - */ - void process( - uint32_t /* tick_length_ms */ = 100, - typename TApp::SceneType start_scene_index = TApp::SceneType::Start) { - typename TApp::Event event; - bool consumed; - bool exit = false; - - current_scene_index = start_scene_index; - scenes[current_scene_index]->on_enter(app, false); - - while(!exit) { - app->view_controller.receive_event(&event); - - consumed = scenes[current_scene_index]->on_event(app, &event); - - if(!consumed) { - if(event.type == TApp::EventType::Back) { - exit = switch_to_previous_scene(); - } - } - }; - - scenes[current_scene_index]->on_exit(app); - } - - /** - * @brief Switch to previous scene - * - * @param count how many steps back - * @return true if app need to exit - */ - bool switch_to_previous_scene(uint8_t count = 1) { - auto previous_scene_index = TApp::SceneType::Start; - - for(uint8_t i = 0; i < count; i++) - previous_scene_index = get_previous_scene_index(); - - if(previous_scene_index == TApp::SceneType::Exit) return true; - - switch_to_scene(previous_scene_index, true); - return false; - } - - /** - * @brief Construct a new Scene Controller object - * - * @param app_pointer pointer to application class - */ - SceneController(TApp* app_pointer) { - app = app_pointer; - current_scene_index = TApp::SceneType::Exit; - } - - /** - * @brief Destroy the Scene Controller object - * - */ - ~SceneController() { - for(auto& it : scenes) - delete it.second; - } - -private: - /** - * @brief Scenes pointers container - * - */ - std::map scenes; - - /** - * @brief List of indexes of previous scenes - * - */ - std::forward_list previous_scenes_list; - - /** - * @brief Current scene index holder - * - */ - typename TApp::SceneType current_scene_index; - - /** - * @brief Application pointer holder - * - */ - TApp* app; - - /** - * @brief Get the previous scene index - * - * @return previous scene index - */ - typename TApp::SceneType get_previous_scene_index() { - auto scene_index = TApp::SceneType::Exit; - - if(!previous_scenes_list.empty()) { - scene_index = previous_scenes_list.front(); - previous_scenes_list.pop_front(); - } - - return scene_index; - } -}; diff --git a/lib/app-scened-template/text_store.cpp b/lib/app-scened-template/text_store.cpp deleted file mode 100644 index c81a2c4e789..00000000000 --- a/lib/app-scened-template/text_store.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include "text_store.h" -#include - -TextStore::TextStore(uint8_t _text_size) - : text_size(_text_size) { - text = static_cast(malloc(text_size + 1)); -} - -TextStore::~TextStore() { - free(text); -} - -void TextStore::set(const char* _text...) { - va_list args; - va_start(args, _text); - vsnprintf(text, text_size, _text, args); - va_end(args); -} diff --git a/lib/app-scened-template/text_store.h b/lib/app-scened-template/text_store.h deleted file mode 100644 index 3fe58ed1dff..00000000000 --- a/lib/app-scened-template/text_store.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once -#include - -class TextStore { -public: - TextStore(uint8_t text_size); - ~TextStore(void); - - void set(const char* text...); - const uint8_t text_size; - char* text; -}; diff --git a/lib/app-scened-template/typeindex_no_rtti.hpp b/lib/app-scened-template/typeindex_no_rtti.hpp deleted file mode 100644 index 579a0189d9a..00000000000 --- a/lib/app-scened-template/typeindex_no_rtti.hpp +++ /dev/null @@ -1,129 +0,0 @@ -/* - * type_index without RTTI - * - * Copyright frickiericker 2016. - * Distributed under the Boost Software License, Version 1.0. - * - * Permission is hereby granted, free of charge, to any person or organization - * obtaining a copy of the software and accompanying documentation covered by - * this license (the "Software") to use, reproduce, display, distribute, - * execute, and transmit the Software, and to prepare derivative works of the - * Software, and to permit third-parties to whom the Software is furnished to - * do so, all subject to the following: - * - * The copyright notices in the Software and this entire statement, including - * the above license grant, this restriction and the following disclaimer, - * must be included in all copies of the Software, in whole or in part, and - * all derivative works of the Software, unless such copies or derivative - * works are solely in the form of machine-executable object code generated by - * a source language processor. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT - * SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE - * FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -#include - -namespace ext { -/** - * Dummy type for tag-dispatching. - */ -template -struct tag_type {}; - -/** - * A value of tag_type. - */ -template -constexpr tag_type tag{}; - -/** - * A type_index implementation without RTTI. - */ -struct type_index { - /** - * Creates a type_index object for the specified type. - */ - template - type_index(tag_type) noexcept - : hash_code_{index} { - } - - /** - * Returns the hash code. - */ - std::size_t hash_code() const noexcept { - return hash_code_; - } - -private: - /** - * Unique integral index associated to template type argument. - */ - template - static std::size_t const index; - - /** - * Global counter for generating index values. - */ - static std::size_t& counter() noexcept { - static std::size_t counter_; - return counter_; - } - -private: - std::size_t hash_code_; -}; - -template -std::size_t const type_index::index = type_index::counter()++; - -/** - * Creates a type_index object for the specified type. - * - * Equivalent to `ext::type_index{ext::tag}`. - */ -template -type_index make_type_index() noexcept { - return tag; -} - -inline bool operator==(type_index const& a, type_index const& b) noexcept { - return a.hash_code() == b.hash_code(); -} - -inline bool operator!=(type_index const& a, type_index const& b) noexcept { - return !(a == b); -} - -inline bool operator<(type_index const& a, type_index const& b) noexcept { - return a.hash_code() < b.hash_code(); -} - -inline bool operator<=(type_index const& a, type_index const& b) noexcept { - return a.hash_code() <= b.hash_code(); -} - -inline bool operator>(type_index const& a, type_index const& b) noexcept { - return !(a <= b); -} - -inline bool operator>=(type_index const& a, type_index const& b) noexcept { - return !(a < b); -} -} - -template <> -struct std::hash { - using argument_type = ext::type_index; - using result_type = std::size_t; - - result_type operator()(argument_type const& t) const noexcept { - return t.hash_code(); - } -}; diff --git a/lib/app-scened-template/view_controller.hpp b/lib/app-scened-template/view_controller.hpp deleted file mode 100644 index ccd3c0fd39a..00000000000 --- a/lib/app-scened-template/view_controller.hpp +++ /dev/null @@ -1,170 +0,0 @@ -#pragma once -#include "view_modules/generic_view_module.h" -#include -#include -#include -#include -#include "typeindex_no_rtti.hpp" - -/** - * @brief Controller for switching application views and handling inputs and events - * - * @tparam TApp application class - * @tparam TViewModules variadic list of ViewModules - */ -template -class ViewController { -public: - ViewController() { - event_queue = furi_message_queue_alloc(10, sizeof(typename TApp::Event)); - - view_dispatcher = view_dispatcher_alloc(); - previous_view_callback_pointer = cbc::obtain_connector( - this, &ViewController::previous_view_callback); - - [](...) { - }((this->add_view(ext::make_type_index().hash_code(), new TViewModules()), - 0)...); - - gui = static_cast(furi_record_open("gui")); - } - - ~ViewController() { - for(auto& it : holder) { - view_dispatcher_remove_view(view_dispatcher, static_cast(it.first)); - delete it.second; - } - - view_dispatcher_free(view_dispatcher); - furi_message_queue_free(event_queue); - } - - /** - * @brief Get ViewModule pointer - * - * @tparam T Concrete ViewModule class - * @return T* ViewModule pointer - */ - template - T* get() { - uint32_t view_index = ext::make_type_index().hash_code(); - furi_check(holder.count(view_index) != 0); - return static_cast(holder[view_index]); - } - - /** - * @brief Get ViewModule pointer by cast - * - * @tparam T Concrete ViewModule class - * @return T* ViewModule pointer - */ - template - operator T*() { - uint32_t view_index = ext::make_type_index().hash_code(); - furi_check(holder.count(view_index) != 0); - return static_cast(holder[view_index]); - } - - /** - * @brief Switch view to ViewModule - * - * @tparam T Concrete ViewModule class - * @return T* ViewModule pointer - */ - template - void switch_to() { - uint32_t view_index = ext::make_type_index().hash_code(); - furi_check(holder.count(view_index) != 0); - view_dispatcher_switch_to_view(view_dispatcher, view_index); - } - - /** - * @brief Receive event from app event queue - * - * @param event event pointer - */ - void receive_event(typename TApp::Event* event) { - if(furi_message_queue_get(event_queue, event, 100) != FuriStatusOk) { - event->type = TApp::EventType::Tick; - } - } - - /** - * @brief Send event to app event queue - * - * @param event event pointer - */ - void send_event(typename TApp::Event* event) { - FuriStatus result = furi_message_queue_put(event_queue, event, FuriWaitForever); - furi_check(result == FuriStatusOk); - } - - void attach_to_gui(ViewDispatcherType type) { - view_dispatcher_attach_to_gui(view_dispatcher, gui, type); - } - -private: - /** - * @brief ViewModulesHolder - * - */ - std::map holder; - - /** - * @brief App event queue - * - */ - FuriMessageQueue* event_queue; - - /** - * @brief Main ViewDispatcher pointer - * - */ - ViewDispatcher* view_dispatcher; - - /** - * @brief Gui record pointer - * - */ - Gui* gui; - - /** - * @brief Previous view callback fn pointer - * - */ - ViewNavigationCallback previous_view_callback_pointer; - - /** - * @brief Previous view callback fn - * - * @param context not used - * @return uint32_t VIEW_IGNORE - */ - uint32_t previous_view_callback(void* context) { - (void)context; - - typename TApp::Event event; - event.type = TApp::EventType::Back; - - if(event_queue != NULL) { - send_event(&event); - } - - return VIEW_IGNORE; - } - - /** - * @brief Add ViewModule to holder - * - * @param view_index view index in holder - * @param view_module view module pointer - */ - void add_view(size_t view_index, GenericViewModule* view_module) { - furi_check(holder.count(view_index) == 0); - holder[view_index] = view_module; - - View* view = view_module->get_view(); - view_dispatcher_add_view(view_dispatcher, static_cast(view_index), view); - view_set_previous_callback(view, previous_view_callback_pointer); - } -}; diff --git a/lib/app-scened-template/view_modules/byte_input_vm.cpp b/lib/app-scened-template/view_modules/byte_input_vm.cpp deleted file mode 100644 index 754de9111e6..00000000000 --- a/lib/app-scened-template/view_modules/byte_input_vm.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "byte_input_vm.h" - -ByteInputVM::ByteInputVM() { - byte_input = byte_input_alloc(); -} - -ByteInputVM::~ByteInputVM() { - byte_input_free(byte_input); -} - -View* ByteInputVM::get_view() { - return byte_input_get_view(byte_input); -} - -void ByteInputVM::clean() { - byte_input_set_header_text(byte_input, ""); - byte_input_set_result_callback(byte_input, NULL, NULL, NULL, NULL, 0); -} - -void ByteInputVM::set_result_callback( - ByteInputCallback input_callback, - ByteChangedCallback changed_callback, - void* callback_context, - uint8_t* bytes, - uint8_t bytes_count) { - byte_input_set_result_callback( - byte_input, input_callback, changed_callback, callback_context, bytes, bytes_count); -} - -void ByteInputVM::set_header_text(const char* text) { - byte_input_set_header_text(byte_input, text); -} diff --git a/lib/app-scened-template/view_modules/byte_input_vm.h b/lib/app-scened-template/view_modules/byte_input_vm.h deleted file mode 100644 index 69031fbee62..00000000000 --- a/lib/app-scened-template/view_modules/byte_input_vm.h +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once -#include "generic_view_module.h" -#include - -class ByteInputVM : public GenericViewModule { -public: - ByteInputVM(void); - ~ByteInputVM() final; - View* get_view() final; - void clean() final; - - /** - * @brief Set byte input result callback - * - * @param input_callback input callback fn - * @param changed_callback changed callback fn - * @param callback_context callback context - * @param bytes buffer to use - * @param bytes_count buffer length - */ - void set_result_callback( - ByteInputCallback input_callback, - ByteChangedCallback changed_callback, - void* callback_context, - uint8_t* bytes, - uint8_t bytes_count); - - /** - * @brief Set byte input header text - * - * @param text text to be shown - */ - void set_header_text(const char* text); - -private: - ByteInput* byte_input; -}; diff --git a/lib/app-scened-template/view_modules/dialog_ex_vm.cpp b/lib/app-scened-template/view_modules/dialog_ex_vm.cpp deleted file mode 100644 index 34f4d0336cf..00000000000 --- a/lib/app-scened-template/view_modules/dialog_ex_vm.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "dialog_ex_vm.h" - -DialogExVM::DialogExVM() { - dialog_ex = dialog_ex_alloc(); -} - -DialogExVM::~DialogExVM() { - dialog_ex_free(dialog_ex); -} - -View* DialogExVM::get_view() { - return dialog_ex_get_view(dialog_ex); -} - -void DialogExVM::clean() { - set_result_callback(NULL); - set_context(NULL); - set_header(NULL, 0, 0, AlignLeft, AlignBottom); - set_text(NULL, 0, 0, AlignLeft, AlignBottom); - set_icon(0, 0, NULL); - set_left_button_text(NULL); - set_center_button_text(NULL); - set_right_button_text(NULL); -} - -void DialogExVM::set_result_callback(DialogExResultCallback callback) { - dialog_ex_set_result_callback(dialog_ex, callback); -} - -void DialogExVM::set_context(void* context) { - dialog_ex_set_context(dialog_ex, context); -} - -void DialogExVM::set_header( - const char* text, - uint8_t x, - uint8_t y, - Align horizontal, - Align vertical) { - dialog_ex_set_header(dialog_ex, text, x, y, horizontal, vertical); -} - -void DialogExVM::set_text(const char* text, uint8_t x, uint8_t y, Align horizontal, Align vertical) { - dialog_ex_set_text(dialog_ex, text, x, y, horizontal, vertical); -} - -void DialogExVM::set_icon(uint8_t x, uint8_t y, const Icon* icon) { - dialog_ex_set_icon(dialog_ex, x, y, icon); -} - -void DialogExVM::set_left_button_text(const char* text) { - dialog_ex_set_left_button_text(dialog_ex, text); -} - -void DialogExVM::set_center_button_text(const char* text) { - dialog_ex_set_center_button_text(dialog_ex, text); -} - -void DialogExVM::set_right_button_text(const char* text) { - dialog_ex_set_right_button_text(dialog_ex, text); -} diff --git a/lib/app-scened-template/view_modules/dialog_ex_vm.h b/lib/app-scened-template/view_modules/dialog_ex_vm.h deleted file mode 100644 index cb63ccdbc21..00000000000 --- a/lib/app-scened-template/view_modules/dialog_ex_vm.h +++ /dev/null @@ -1,73 +0,0 @@ -#pragma once -#include "generic_view_module.h" -#include - -class DialogExVM : public GenericViewModule { -public: - DialogExVM(void); - ~DialogExVM() final; - View* get_view() final; - void clean() final; - - /** - * Set dialog result callback - * @param callback - result callback function - */ - void set_result_callback(DialogExResultCallback callback); - - /** - * Set dialog context - * @param context - context pointer, will be passed to result callback - */ - void set_context(void* context); - - /** - * Set dialog header text - * If text is null, dialog header will not be rendered - * @param text - text to be shown, can be multiline - * @param x, y - text position - * @param horizontal, vertical - text aligment - */ - void set_header(const char* text, uint8_t x, uint8_t y, Align horizontal, Align vertical); - - /** - * Set dialog text - * If text is null, dialog text will not be rendered - * @param text - text to be shown, can be multiline - * @param x, y - text position - * @param horizontal, vertical - text aligment - */ - void set_text(const char* text, uint8_t x, uint8_t y, Align horizontal, Align vertical); - - /** - * Set dialog icon - * If x or y is negative, dialog icon will not be rendered - * @param x, y - icon position - * @param name - icon to be shown - */ - void set_icon(uint8_t x, uint8_t y, const Icon* icon); - - /** - * Set left button text - * If text is null, left button will not be rendered and processed - * @param text - text to be shown - */ - void set_left_button_text(const char* text); - - /** - * Set center button text - * If text is null, center button will not be rendered and processed - * @param text - text to be shown - */ - void set_center_button_text(const char* text); - - /** - * Set right button text - * If text is null, right button will not be rendered and processed - * @param text - text to be shown - */ - void set_right_button_text(const char* text); - -private: - DialogEx* dialog_ex; -}; diff --git a/lib/app-scened-template/view_modules/generic_view_module.h b/lib/app-scened-template/view_modules/generic_view_module.h deleted file mode 100644 index f6c56a9110f..00000000000 --- a/lib/app-scened-template/view_modules/generic_view_module.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once -#include - -class GenericViewModule { -public: - GenericViewModule() {}; - virtual ~GenericViewModule() {}; - virtual View* get_view() = 0; - virtual void clean() = 0; -}; diff --git a/lib/app-scened-template/view_modules/popup_vm.cpp b/lib/app-scened-template/view_modules/popup_vm.cpp deleted file mode 100644 index 330aa44ca96..00000000000 --- a/lib/app-scened-template/view_modules/popup_vm.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include "popup_vm.h" -#include - -PopupVM::PopupVM() { - popup = popup_alloc(); -} - -PopupVM::~PopupVM() { - popup_free(popup); -} - -View* PopupVM::get_view() { - return popup_get_view(popup); -} - -void PopupVM::clean() { - set_callback(NULL); - set_context(NULL); - set_header(NULL, 0, 0, AlignLeft, AlignBottom); - set_text(NULL, 0, 0, AlignLeft, AlignBottom); - set_icon(0, 0, NULL); - disable_timeout(); - set_timeout(1000); -} - -void PopupVM::set_callback(PopupCallback callback) { - popup_set_callback(popup, callback); -} - -void PopupVM::set_context(void* context) { - popup_set_context(popup, context); -} - -void PopupVM::set_header(const char* text, uint8_t x, uint8_t y, Align horizontal, Align vertical) { - popup_set_header(popup, text, x, y, horizontal, vertical); -} - -void PopupVM::set_text(const char* text, uint8_t x, uint8_t y, Align horizontal, Align vertical) { - popup_set_text(popup, text, x, y, horizontal, vertical); -} - -void PopupVM::set_icon(int8_t x, int8_t y, const Icon* icon) { - popup_set_icon(popup, x, y, icon); -} - -void PopupVM::set_timeout(uint32_t timeout_in_ms) { - popup_set_timeout(popup, timeout_in_ms); -} - -void PopupVM::enable_timeout() { - popup_enable_timeout(popup); -} - -void PopupVM::disable_timeout() { - popup_disable_timeout(popup); -} diff --git a/lib/app-scened-template/view_modules/popup_vm.h b/lib/app-scened-template/view_modules/popup_vm.h deleted file mode 100644 index 234f337746c..00000000000 --- a/lib/app-scened-template/view_modules/popup_vm.h +++ /dev/null @@ -1,68 +0,0 @@ -#pragma once -#include "generic_view_module.h" -#include - -class PopupVM : public GenericViewModule { -public: - PopupVM(void); - ~PopupVM() final; - View* get_view() final; - void clean() final; - - /** - * Set popup header text - * @param text - text to be shown - */ - void set_callback(PopupCallback callback); - - /** - * Set popup context - * @param context - context pointer, will be passed to result callback - */ - void set_context(void* context); - - /** - * Set popup header text - * If text is null, popup header will not be rendered - * @param text - text to be shown, can be multiline - * @param x, y - text position - * @param horizontal, vertical - text aligment - */ - void set_header(const char* text, uint8_t x, uint8_t y, Align horizontal, Align vertical); - - /** - * Set popup text - * If text is null, popup text will not be rendered - * @param text - text to be shown, can be multiline - * @param x, y - text position - * @param horizontal, vertical - text aligment - */ - void set_text(const char* text, uint8_t x, uint8_t y, Align horizontal, Align vertical); - - /** - * Set popup icon - * If icon position is negative, popup icon will not be rendered - * @param x, y - icon position - * @param name - icon to be shown - */ - void set_icon(int8_t x, int8_t y, const Icon* icon); - - /** - * Set popup timeout - * @param timeout_in_ms - popup timeout value in milliseconds - */ - void set_timeout(uint32_t timeout_in_ms); - - /** - * Enable popup timeout - */ - void enable_timeout(void); - - /** - * Disable popup timeout - */ - void disable_timeout(void); - -private: - Popup* popup; -}; diff --git a/lib/app-scened-template/view_modules/submenu_vm.cpp b/lib/app-scened-template/view_modules/submenu_vm.cpp deleted file mode 100644 index 939bb6b1cec..00000000000 --- a/lib/app-scened-template/view_modules/submenu_vm.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "submenu_vm.h" - -SubmenuVM::SubmenuVM() { - submenu = submenu_alloc(); -} - -SubmenuVM::~SubmenuVM() { - submenu_free(submenu); -} - -View* SubmenuVM::get_view() { - return submenu_get_view(submenu); -} - -void SubmenuVM::clean() { - submenu_reset(submenu); -} - -void SubmenuVM::add_item( - const char* label, - uint32_t index, - SubmenuItemCallback callback, - void* callback_context) { - submenu_add_item(submenu, label, index, callback, callback_context); -} - -void SubmenuVM::set_selected_item(uint32_t index) { - submenu_set_selected_item(submenu, index); -} - -void SubmenuVM::set_header(const char* header) { - submenu_set_header(submenu, header); -} diff --git a/lib/app-scened-template/view_modules/submenu_vm.h b/lib/app-scened-template/view_modules/submenu_vm.h deleted file mode 100644 index 223fbd531e1..00000000000 --- a/lib/app-scened-template/view_modules/submenu_vm.h +++ /dev/null @@ -1,42 +0,0 @@ -#pragma once -#include "generic_view_module.h" -#include - -class SubmenuVM : public GenericViewModule { -public: - SubmenuVM(void); - ~SubmenuVM() final; - View* get_view() final; - void clean() final; - - /** - * @brief Add item to submenu - * - * @param label - menu item label - * @param index - menu item index, used for callback, may be the same with other items - * @param callback - menu item callback - * @param callback_context - menu item callback context - */ - void add_item( - const char* label, - uint32_t index, - SubmenuItemCallback callback, - void* callback_context); - - /** - * @brief Set submenu item selector - * - * @param index index of the item to be selected - */ - void set_selected_item(uint32_t index); - - /** - * @brief Set optional header for submenu - * - * @param header header to set - */ - void set_header(const char* header); - -private: - Submenu* submenu; -}; diff --git a/lib/app-scened-template/view_modules/text_input_vm.cpp b/lib/app-scened-template/view_modules/text_input_vm.cpp deleted file mode 100644 index 05e5ed1d699..00000000000 --- a/lib/app-scened-template/view_modules/text_input_vm.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "text_input_vm.h" - -TextInputVM::TextInputVM() { - text_input = text_input_alloc(); -} - -TextInputVM::~TextInputVM() { - text_input_free(text_input); -} - -View* TextInputVM::get_view() { - return text_input_get_view(text_input); -} - -void TextInputVM::clean() { - text_input_reset(text_input); -} - -void TextInputVM::set_result_callback( - TextInputCallback callback, - void* callback_context, - char* text, - uint8_t max_text_length, - bool clear_default_text) { - text_input_set_result_callback( - text_input, callback, callback_context, text, max_text_length, clear_default_text); -} - -void TextInputVM::set_header_text(const char* text) { - text_input_set_header_text(text_input, text); -} - -void TextInputVM::set_validator(TextInputValidatorCallback callback, void* callback_context) { - text_input_set_validator(text_input, callback, callback_context); -} - -void* TextInputVM::get_validator_callback_context() { - return text_input_get_validator_callback_context(text_input); -} diff --git a/lib/app-scened-template/view_modules/text_input_vm.h b/lib/app-scened-template/view_modules/text_input_vm.h deleted file mode 100644 index 5c71c4318f8..00000000000 --- a/lib/app-scened-template/view_modules/text_input_vm.h +++ /dev/null @@ -1,41 +0,0 @@ -#pragma once -#include "generic_view_module.h" -#include - -class TextInputVM : public GenericViewModule { -public: - TextInputVM(void); - ~TextInputVM() final; - View* get_view() final; - void clean() final; - - /** - * @brief Set text input result callback - * - * @param callback - callback fn - * @param callback_context - callback context - * @param text - text buffer to use - * @param max_text_length - text buffer length - * @param clear_default_text - clears given buffer on OK event - */ - void set_result_callback( - TextInputCallback callback, - void* callback_context, - char* text, - uint8_t max_text_length, - bool clear_default_text); - - /** - * @brief Set text input header text - * - * @param text - text to be shown - */ - void set_header_text(const char* text); - - void set_validator(TextInputValidatorCallback callback, void* callback_context); - - void* get_validator_callback_context(void); - -private: - TextInput* text_input; -}; diff --git a/lib/appframe.scons b/lib/appframe.scons deleted file mode 100644 index fb268579d66..00000000000 --- a/lib/appframe.scons +++ /dev/null @@ -1,29 +0,0 @@ -Import("env") - -env.Append( - CPPPATH=[ - "#/lib/app-scened-template", - "#/lib/callback-connector", - ], - LINT_SOURCES=[ - Dir("app-scened-template"), - ], -) - - -libenv = env.Clone(FW_LIB_NAME="appframe") -libenv.ApplyLibFlags() - -sources = [] - -recurse_dirs = [ - "app-scened-template", - "callback-connector", -] - -for recurse_dir in recurse_dirs: - sources += libenv.GlobRecursive("*.c*", recurse_dir) - -lib = libenv.StaticLibrary("${FW_LIB_NAME}", sources) -libenv.Install("${LIB_DIST_DIR}", lib) -Return("lib") diff --git a/lib/toolbox/api_lock.h b/lib/toolbox/api_lock.h index 5902a4922ab..a370514dadc 100644 --- a/lib/toolbox/api_lock.h +++ b/lib/toolbox/api_lock.h @@ -41,3 +41,7 @@ typedef FuriEventFlag* FuriApiLock; #define api_lock_wait_unlock_and_free(_lock) \ api_lock_wait_unlock(_lock); \ api_lock_free(_lock); + +#define api_lock_is_locked(_lock) (!(furi_event_flag_get(_lock) & API_LOCK_EVENT)) + +#define api_lock_relock(_lock) furi_event_flag_clear(_lock, API_LOCK_EVENT) diff --git a/targets/f18/api_symbols.csv b/targets/f18/api_symbols.csv index 9e58a67464b..baf1f8a8023 100644 --- a/targets/f18/api_symbols.csv +++ b/targets/f18/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,71.0,, +Version,+,72.0,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,, Header,+,applications/services/cli/cli.h,, @@ -1108,11 +1108,13 @@ Function,+,furi_event_flag_set,uint32_t,"FuriEventFlag*, uint32_t" Function,+,furi_event_flag_wait,uint32_t,"FuriEventFlag*, uint32_t, uint32_t, uint32_t" Function,+,furi_event_loop_alloc,FuriEventLoop*, Function,+,furi_event_loop_free,void,FuriEventLoop* -Function,+,furi_event_loop_message_queue_subscribe,void,"FuriEventLoop*, FuriMessageQueue*, FuriEventLoopEvent, FuriEventLoopMessageQueueCallback, void*" -Function,+,furi_event_loop_message_queue_unsubscribe,void,"FuriEventLoop*, FuriMessageQueue*" Function,+,furi_event_loop_pend_callback,void,"FuriEventLoop*, FuriEventLoopPendingCallback, void*" Function,+,furi_event_loop_run,void,FuriEventLoop* Function,+,furi_event_loop_stop,void,FuriEventLoop* +Function,+,furi_event_loop_subscribe_message_queue,void,"FuriEventLoop*, FuriMessageQueue*, FuriEventLoopEvent, FuriEventLoopEventCallback, void*" +Function,+,furi_event_loop_subscribe_mutex,void,"FuriEventLoop*, FuriMutex*, FuriEventLoopEvent, FuriEventLoopEventCallback, void*" +Function,+,furi_event_loop_subscribe_semaphore,void,"FuriEventLoop*, FuriSemaphore*, FuriEventLoopEvent, FuriEventLoopEventCallback, void*" +Function,+,furi_event_loop_subscribe_stream_buffer,void,"FuriEventLoop*, FuriStreamBuffer*, FuriEventLoopEvent, FuriEventLoopEventCallback, void*" Function,+,furi_event_loop_tick_set,void,"FuriEventLoop*, uint32_t, FuriEventLoopTickCallback, void*" Function,+,furi_event_loop_timer_alloc,FuriEventLoopTimer*,"FuriEventLoop*, FuriEventLoopTimerCallback, FuriEventLoopTimerType, void*" Function,+,furi_event_loop_timer_free,void,FuriEventLoopTimer* @@ -1122,6 +1124,7 @@ Function,+,furi_event_loop_timer_is_running,_Bool,const FuriEventLoopTimer* Function,+,furi_event_loop_timer_restart,void,FuriEventLoopTimer* Function,+,furi_event_loop_timer_start,void,"FuriEventLoopTimer*, uint32_t" Function,+,furi_event_loop_timer_stop,void,FuriEventLoopTimer* +Function,+,furi_event_loop_unsubscribe,void,"FuriEventLoop*, FuriEventLoopObject*" Function,+,furi_get_tick,uint32_t, Function,+,furi_hal_adc_acquire,FuriHalAdcHandle*, Function,+,furi_hal_adc_configure,void,FuriHalAdcHandle* @@ -1544,6 +1547,7 @@ Function,+,furi_semaphore_acquire,FuriStatus,"FuriSemaphore*, uint32_t" Function,+,furi_semaphore_alloc,FuriSemaphore*,"uint32_t, uint32_t" Function,+,furi_semaphore_free,void,FuriSemaphore* Function,+,furi_semaphore_get_count,uint32_t,FuriSemaphore* +Function,+,furi_semaphore_get_space,uint32_t,FuriSemaphore* Function,+,furi_semaphore_release,FuriStatus,FuriSemaphore* Function,+,furi_stream_buffer_alloc,FuriStreamBuffer*,"size_t, size_t" Function,+,furi_stream_buffer_bytes_available,size_t,FuriStreamBuffer* @@ -2282,7 +2286,7 @@ Function,+,power_get_info,void,"Power*, PowerInfo*" Function,+,power_get_pubsub,FuriPubSub*,Power* Function,+,power_is_battery_healthy,_Bool,Power* Function,+,power_off,void,Power* -Function,+,power_reboot,void,PowerBootMode +Function,+,power_reboot,void,"Power*, PowerBootMode" Function,+,powf,float,"float, float" Function,-,powl,long double,"long double, long double" Function,+,pretty_format_bytes_hex_canonical,void,"FuriString*, size_t, const char*, const uint8_t*, size_t" @@ -2757,11 +2761,11 @@ Function,+,view_holder_alloc,ViewHolder*, Function,+,view_holder_attach_to_gui,void,"ViewHolder*, Gui*" Function,+,view_holder_free,void,ViewHolder* Function,+,view_holder_get_free_context,void*,ViewHolder* +Function,+,view_holder_send_to_back,void,ViewHolder* +Function,+,view_holder_send_to_front,void,ViewHolder* Function,+,view_holder_set_back_callback,void,"ViewHolder*, BackCallback, void*" Function,+,view_holder_set_free_callback,void,"ViewHolder*, FreeCallback, void*" Function,+,view_holder_set_view,void,"ViewHolder*, View*" -Function,+,view_holder_start,void,ViewHolder* -Function,+,view_holder_stop,void,ViewHolder* Function,+,view_holder_update,void,"View*, void*" Function,+,view_port_alloc,ViewPort*, Function,+,view_port_draw_callback_set,void,"ViewPort*, ViewPortDrawCallback, void*" diff --git a/targets/f18/target.json b/targets/f18/target.json index 9c450aa83e2..3452c6707a9 100644 --- a/targets/f18/target.json +++ b/targets/f18/target.json @@ -22,7 +22,6 @@ "signal_reader", "microtar", "usb_stm32", - "appframe", "assets", "one_wire", "music_worker", diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index 4bfe37abb59..cb3471e60a3 100644 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,71.0,, +Version,+,72.0,, Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,, @@ -1213,11 +1213,13 @@ Function,+,furi_event_flag_set,uint32_t,"FuriEventFlag*, uint32_t" Function,+,furi_event_flag_wait,uint32_t,"FuriEventFlag*, uint32_t, uint32_t, uint32_t" Function,+,furi_event_loop_alloc,FuriEventLoop*, Function,+,furi_event_loop_free,void,FuriEventLoop* -Function,+,furi_event_loop_message_queue_subscribe,void,"FuriEventLoop*, FuriMessageQueue*, FuriEventLoopEvent, FuriEventLoopMessageQueueCallback, void*" -Function,+,furi_event_loop_message_queue_unsubscribe,void,"FuriEventLoop*, FuriMessageQueue*" Function,+,furi_event_loop_pend_callback,void,"FuriEventLoop*, FuriEventLoopPendingCallback, void*" Function,+,furi_event_loop_run,void,FuriEventLoop* Function,+,furi_event_loop_stop,void,FuriEventLoop* +Function,+,furi_event_loop_subscribe_message_queue,void,"FuriEventLoop*, FuriMessageQueue*, FuriEventLoopEvent, FuriEventLoopEventCallback, void*" +Function,+,furi_event_loop_subscribe_mutex,void,"FuriEventLoop*, FuriMutex*, FuriEventLoopEvent, FuriEventLoopEventCallback, void*" +Function,+,furi_event_loop_subscribe_semaphore,void,"FuriEventLoop*, FuriSemaphore*, FuriEventLoopEvent, FuriEventLoopEventCallback, void*" +Function,+,furi_event_loop_subscribe_stream_buffer,void,"FuriEventLoop*, FuriStreamBuffer*, FuriEventLoopEvent, FuriEventLoopEventCallback, void*" Function,+,furi_event_loop_tick_set,void,"FuriEventLoop*, uint32_t, FuriEventLoopTickCallback, void*" Function,+,furi_event_loop_timer_alloc,FuriEventLoopTimer*,"FuriEventLoop*, FuriEventLoopTimerCallback, FuriEventLoopTimerType, void*" Function,+,furi_event_loop_timer_free,void,FuriEventLoopTimer* @@ -1227,6 +1229,7 @@ Function,+,furi_event_loop_timer_is_running,_Bool,const FuriEventLoopTimer* Function,+,furi_event_loop_timer_restart,void,FuriEventLoopTimer* Function,+,furi_event_loop_timer_start,void,"FuriEventLoopTimer*, uint32_t" Function,+,furi_event_loop_timer_stop,void,FuriEventLoopTimer* +Function,+,furi_event_loop_unsubscribe,void,"FuriEventLoop*, FuriEventLoopObject*" Function,+,furi_get_tick,uint32_t, Function,+,furi_hal_adc_acquire,FuriHalAdcHandle*, Function,+,furi_hal_adc_configure,void,FuriHalAdcHandle* @@ -1758,6 +1761,7 @@ Function,+,furi_semaphore_acquire,FuriStatus,"FuriSemaphore*, uint32_t" Function,+,furi_semaphore_alloc,FuriSemaphore*,"uint32_t, uint32_t" Function,+,furi_semaphore_free,void,FuriSemaphore* Function,+,furi_semaphore_get_count,uint32_t,FuriSemaphore* +Function,+,furi_semaphore_get_space,uint32_t,FuriSemaphore* Function,+,furi_semaphore_release,FuriStatus,FuriSemaphore* Function,+,furi_stream_buffer_alloc,FuriStreamBuffer*,"size_t, size_t" Function,+,furi_stream_buffer_bytes_available,size_t,FuriStreamBuffer* @@ -2908,7 +2912,7 @@ Function,+,power_get_info,void,"Power*, PowerInfo*" Function,+,power_get_pubsub,FuriPubSub*,Power* Function,+,power_is_battery_healthy,_Bool,Power* Function,+,power_off,void,Power* -Function,+,power_reboot,void,PowerBootMode +Function,+,power_reboot,void,"Power*, PowerBootMode" Function,+,powf,float,"float, float" Function,-,powl,long double,"long double, long double" Function,+,pretty_format_bytes_hex_canonical,void,"FuriString*, size_t, const char*, const uint8_t*, size_t" @@ -3598,11 +3602,11 @@ Function,+,view_holder_alloc,ViewHolder*, Function,+,view_holder_attach_to_gui,void,"ViewHolder*, Gui*" Function,+,view_holder_free,void,ViewHolder* Function,+,view_holder_get_free_context,void*,ViewHolder* +Function,+,view_holder_send_to_back,void,ViewHolder* +Function,+,view_holder_send_to_front,void,ViewHolder* Function,+,view_holder_set_back_callback,void,"ViewHolder*, BackCallback, void*" Function,+,view_holder_set_free_callback,void,"ViewHolder*, FreeCallback, void*" Function,+,view_holder_set_view,void,"ViewHolder*, View*" -Function,+,view_holder_start,void,ViewHolder* -Function,+,view_holder_stop,void,ViewHolder* Function,+,view_holder_update,void,"View*, void*" Function,+,view_port_alloc,ViewPort*, Function,+,view_port_draw_callback_set,void,"ViewPort*, ViewPortDrawCallback, void*" diff --git a/targets/f7/target.json b/targets/f7/target.json index 35f1766c198..f5b3cf3b6bc 100644 --- a/targets/f7/target.json +++ b/targets/f7/target.json @@ -34,7 +34,6 @@ "microtar", "usb_stm32", "infrared", - "appframe", "assets", "one_wire", "ibutton", From 741329a74351ffa9ac0e12f03aec1d42845f741e Mon Sep 17 00:00:00 2001 From: David Lee <5908330+leedave@users.noreply.github.com> Date: Thu, 8 Aug 2024 08:05:48 +0200 Subject: [PATCH 18/22] Added a text input that only accepts full numbers (int) (#3350) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added a text input that only accepts full numbers (int) * Added to Gui sdk_headers and api_symbols in f7 and f18 * Fixed _Bool declarations in symbols csv * renamed int_input to number_input * Changed name & added example fap * Added a text input that only accepts full numbers (int) * Added to Gui sdk_headers and api_symbols in f7 and f18 * Changed name & added example fap * update for clearing views * GUI: Fix array out of bounds in menu exit (#3604) * GUI: Fix array out of bounds in menu exit * Gui: fix incorrect empty menu handling * Gui: add missing item check in menu ok handling * Gui: remove dead code from menu module * nfc app: add legacy keys for plantain cards (#3602) * refactoring test app, part 1 * Refactor test app, part 2 * Minor updates while travelling * Switched from const char to FuriString. Using Temp module copy for development to spare compile time * Option to limit number output with min and max values * Preparations for option to change number sign from + to - * Preparations for option to change number sign from + to - * Preparing for testing * counter automatic API version change * added trailing comma in application.fam ... because the lint check wants it¿ * removed unused callback NumberChangedCallback * change uint8_t to size_t in number_input_backspace_cb * Removal of unused view_stack in demo app * copied module to app folder for faster development (remove later) * Replaced all uint8_t with size_t... removed unused logic for selected_row < 0 * Optimize use of canvas_set_color * Remove alloc/free of furistring that actually is a pointer * Dynamic Header text with min/max in Example * Removed the need of useSign in Model * Number_input Removed sign from model, started transfer from text to int32_t * number_input FuriString in input_show_number * number_input FuriString in input_show_number * limiting inputs for min/max values * limiting inputs for min/max values * number_input change save button on invalid numbers * input_number update demo app to allow change of min/max * number input fine tuning * number_input, Remove temp development folder * number_input, fbt format * Bump CSV Files * Clear input if value is zero * number_input: handle null on header text * number_input: change keyboard values to char * number input: Remove static on char for header text, change numbers to INT32_MIN/INT32_MAX * number_input: removal of dead code * number_input: fix for crash if number_input not opened before free * number_input: added icon for example app * number_input: Replaced view for show_number with DialogEx * Number_input: FBT Format * number_input: bump csv versions * number_input: allow negative input if max_value is 0 * Number_input: linting / format * Removed dead code, fbt format * Examples: cleanup number input code * Examples: moar code cleanup in number input, simplify as much as possible, highlight incorrect input handling * Gui: correctly handle INT_MAX and INT_MIN * Gui: fix memory leak in number input module Co-authored-by: David Lee Co-authored-by: Aleksandr Kutuzov Co-authored-by: WillyJL <49810075+Willy-JL@users.noreply.github.com> Co-authored-by: gornekich --- .../examples/example_number_input/ReadMe.md | 7 + .../example_number_input/application.fam | 10 + .../example_number_input.c | 79 ++++ .../example_number_input.h | 35 ++ .../example_number_input_10px.png | Bin 0 -> 87 bytes .../scenes/example_number_input_scene.c | 30 ++ .../scenes/example_number_input_scene.h | 29 ++ .../example_number_input_scene_config.h | 4 + .../example_number_input_scene_input_max.c | 39 ++ .../example_number_input_scene_input_min.c | 39 ++ .../example_number_input_scene_input_number.c | 42 ++ .../example_number_input_scene_show_number.c | 66 +++ applications/services/gui/application.fam | 1 + .../services/gui/modules/number_input.c | 443 ++++++++++++++++++ .../services/gui/modules/number_input.h | 69 +++ .../Keyboard/KeySaveBlockedSelected_24x11.png | Bin 0 -> 110 bytes .../icons/Keyboard/KeySaveBlocked_24x11.png | Bin 0 -> 110 bytes .../icons/Keyboard/KeySaveSelected_24x11.png | Bin 94 -> 96 bytes assets/icons/Keyboard/KeySave_24x11.png | Bin 110 -> 110 bytes .../icons/Keyboard/KeySignSelected_21x11.png | Bin 0 -> 95 bytes assets/icons/Keyboard/KeySign_21x11.png | Bin 0 -> 109 bytes targets/f18/api_symbols.csv | 8 +- targets/f7/api_symbols.csv | 8 +- 23 files changed, 907 insertions(+), 2 deletions(-) create mode 100644 applications/examples/example_number_input/ReadMe.md create mode 100644 applications/examples/example_number_input/application.fam create mode 100644 applications/examples/example_number_input/example_number_input.c create mode 100644 applications/examples/example_number_input/example_number_input.h create mode 100644 applications/examples/example_number_input/example_number_input_10px.png create mode 100644 applications/examples/example_number_input/scenes/example_number_input_scene.c create mode 100644 applications/examples/example_number_input/scenes/example_number_input_scene.h create mode 100644 applications/examples/example_number_input/scenes/example_number_input_scene_config.h create mode 100644 applications/examples/example_number_input/scenes/example_number_input_scene_input_max.c create mode 100644 applications/examples/example_number_input/scenes/example_number_input_scene_input_min.c create mode 100644 applications/examples/example_number_input/scenes/example_number_input_scene_input_number.c create mode 100644 applications/examples/example_number_input/scenes/example_number_input_scene_show_number.c create mode 100644 applications/services/gui/modules/number_input.c create mode 100644 applications/services/gui/modules/number_input.h create mode 100644 assets/icons/Keyboard/KeySaveBlockedSelected_24x11.png create mode 100644 assets/icons/Keyboard/KeySaveBlocked_24x11.png create mode 100644 assets/icons/Keyboard/KeySignSelected_21x11.png create mode 100644 assets/icons/Keyboard/KeySign_21x11.png diff --git a/applications/examples/example_number_input/ReadMe.md b/applications/examples/example_number_input/ReadMe.md new file mode 100644 index 00000000000..9d5a0a9e5eb --- /dev/null +++ b/applications/examples/example_number_input/ReadMe.md @@ -0,0 +1,7 @@ +# Number Input + +Simple keyboard that limits user inputs to a full number (integer). Useful to enforce correct entries without the need of intense validations after a user input. + +Definition of min/max values is required. Numbers are of type int32_t. If negative numbers are allowed withing min - max, an additional button is displayed to switch the sign between + and -. + +It is also possible to define a header text, shown in this example app with the 3 different input options. \ No newline at end of file diff --git a/applications/examples/example_number_input/application.fam b/applications/examples/example_number_input/application.fam new file mode 100644 index 00000000000..58cff44962e --- /dev/null +++ b/applications/examples/example_number_input/application.fam @@ -0,0 +1,10 @@ +App( + appid="example_number_input", + name="Example: Number Input", + apptype=FlipperAppType.EXTERNAL, + entry_point="example_number_input", + requires=["gui"], + stack_size=1 * 1024, + fap_icon="example_number_input_10px.png", + fap_category="Examples", +) diff --git a/applications/examples/example_number_input/example_number_input.c b/applications/examples/example_number_input/example_number_input.c new file mode 100644 index 00000000000..19d787ef5fe --- /dev/null +++ b/applications/examples/example_number_input/example_number_input.c @@ -0,0 +1,79 @@ +#include "example_number_input.h" + +bool example_number_input_custom_event_callback(void* context, uint32_t event) { + furi_assert(context); + ExampleNumberInput* app = context; + return scene_manager_handle_custom_event(app->scene_manager, event); +} + +static bool example_number_input_back_event_callback(void* context) { + furi_assert(context); + ExampleNumberInput* app = context; + return scene_manager_handle_back_event(app->scene_manager); +} + +static ExampleNumberInput* example_number_input_alloc() { + ExampleNumberInput* app = malloc(sizeof(ExampleNumberInput)); + app->gui = furi_record_open(RECORD_GUI); + + app->view_dispatcher = view_dispatcher_alloc(); + + app->scene_manager = scene_manager_alloc(&example_number_input_scene_handlers, app); + view_dispatcher_set_event_callback_context(app->view_dispatcher, app); + view_dispatcher_set_custom_event_callback( + app->view_dispatcher, example_number_input_custom_event_callback); + view_dispatcher_set_navigation_event_callback( + app->view_dispatcher, example_number_input_back_event_callback); + + app->number_input = number_input_alloc(); + view_dispatcher_add_view( + app->view_dispatcher, + ExampleNumberInputViewIdNumberInput, + number_input_get_view(app->number_input)); + + app->dialog_ex = dialog_ex_alloc(); + view_dispatcher_add_view( + app->view_dispatcher, + ExampleNumberInputViewIdShowNumber, + dialog_ex_get_view(app->dialog_ex)); + + app->current_number = 5; + app->min_value = INT32_MIN; + app->max_value = INT32_MAX; + + return app; +} + +static void example_number_input_free(ExampleNumberInput* app) { + furi_assert(app); + + view_dispatcher_remove_view(app->view_dispatcher, ExampleNumberInputViewIdShowNumber); + dialog_ex_free(app->dialog_ex); + + view_dispatcher_remove_view(app->view_dispatcher, ExampleNumberInputViewIdNumberInput); + number_input_free(app->number_input); + + scene_manager_free(app->scene_manager); + view_dispatcher_free(app->view_dispatcher); + + furi_record_close(RECORD_GUI); + app->gui = NULL; + + //Remove whatever is left + free(app); +} + +int32_t example_number_input(void* p) { + UNUSED(p); + ExampleNumberInput* app = example_number_input_alloc(); + + view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); + + scene_manager_next_scene(app->scene_manager, ExampleNumberInputSceneShowNumber); + + view_dispatcher_run(app->view_dispatcher); + + example_number_input_free(app); + + return 0; +} diff --git a/applications/examples/example_number_input/example_number_input.h b/applications/examples/example_number_input/example_number_input.h new file mode 100644 index 00000000000..8d944e6fda6 --- /dev/null +++ b/applications/examples/example_number_input/example_number_input.h @@ -0,0 +1,35 @@ +#pragma once + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "scenes/example_number_input_scene.h" + +typedef struct ExampleNumberInputShowNumber ExampleNumberInputShowNumber; + +typedef enum { + ExampleNumberInputViewIdShowNumber, + ExampleNumberInputViewIdNumberInput, +} ExampleNumberInputViewId; + +typedef struct { + Gui* gui; + SceneManager* scene_manager; + ViewDispatcher* view_dispatcher; + + NumberInput* number_input; + DialogEx* dialog_ex; + + int32_t current_number; + int32_t min_value; + int32_t max_value; +} ExampleNumberInput; diff --git a/applications/examples/example_number_input/example_number_input_10px.png b/applications/examples/example_number_input/example_number_input_10px.png new file mode 100644 index 0000000000000000000000000000000000000000..bdb494fcd0c81f061d38660c6b26b915fe6fd0d1 GIT binary patch literal 87 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2xkYHHq`AGms$$7dshE&W+{_*(0kM{zXS=p9} j^Z4-a_y}>Z9hPTjXpv=?IGw7P2-4x{>gTe~DWM4fFP{|f literal 0 HcmV?d00001 diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene.c b/applications/examples/example_number_input/scenes/example_number_input_scene.c new file mode 100644 index 00000000000..caf77fa8cec --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene.c @@ -0,0 +1,30 @@ +#include "example_number_input_scene.h" + +// Generate scene on_enter handlers array +#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_enter, +void (*const example_number_input_on_enter_handlers[])(void*) = { +#include "example_number_input_scene_config.h" +}; +#undef ADD_SCENE + +// Generate scene on_event handlers array +#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_event, +bool (*const example_number_input_on_event_handlers[])(void* context, SceneManagerEvent event) = { +#include "example_number_input_scene_config.h" +}; +#undef ADD_SCENE + +// Generate scene on_exit handlers array +#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_exit, +void (*const example_number_input_on_exit_handlers[])(void* context) = { +#include "example_number_input_scene_config.h" +}; +#undef ADD_SCENE + +// Initialize scene handlers configuration structure +const SceneManagerHandlers example_number_input_scene_handlers = { + .on_enter_handlers = example_number_input_on_enter_handlers, + .on_event_handlers = example_number_input_on_event_handlers, + .on_exit_handlers = example_number_input_on_exit_handlers, + .scene_num = ExampleNumberInputSceneNum, +}; diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene.h b/applications/examples/example_number_input/scenes/example_number_input_scene.h new file mode 100644 index 00000000000..49fcd256fb6 --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene.h @@ -0,0 +1,29 @@ +#pragma once + +#include + +// Generate scene id and total number +#define ADD_SCENE(prefix, name, id) ExampleNumberInputScene##id, +typedef enum { +#include "example_number_input_scene_config.h" + ExampleNumberInputSceneNum, +} ExampleNumberInputScene; +#undef ADD_SCENE + +extern const SceneManagerHandlers example_number_input_scene_handlers; + +// Generate scene on_enter handlers declaration +#define ADD_SCENE(prefix, name, id) void prefix##_scene_##name##_on_enter(void*); +#include "example_number_input_scene_config.h" +#undef ADD_SCENE + +// Generate scene on_event handlers declaration +#define ADD_SCENE(prefix, name, id) \ + bool prefix##_scene_##name##_on_event(void* context, SceneManagerEvent event); +#include "example_number_input_scene_config.h" +#undef ADD_SCENE + +// Generate scene on_exit handlers declaration +#define ADD_SCENE(prefix, name, id) void prefix##_scene_##name##_on_exit(void* context); +#include "example_number_input_scene_config.h" +#undef ADD_SCENE diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene_config.h b/applications/examples/example_number_input/scenes/example_number_input_scene_config.h new file mode 100644 index 00000000000..71acbda528a --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene_config.h @@ -0,0 +1,4 @@ +ADD_SCENE(example_number_input, input_number, InputNumber) +ADD_SCENE(example_number_input, show_number, ShowNumber) +ADD_SCENE(example_number_input, input_max, InputMax) +ADD_SCENE(example_number_input, input_min, InputMin) diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene_input_max.c b/applications/examples/example_number_input/scenes/example_number_input_scene_input_max.c new file mode 100644 index 00000000000..7478f58a704 --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene_input_max.c @@ -0,0 +1,39 @@ +#include "../example_number_input.h" + +void example_number_input_scene_input_max_callback(void* context, int32_t number) { + ExampleNumberInput* app = context; + app->max_value = number; + view_dispatcher_send_custom_event(app->view_dispatcher, 0); +} + +void example_number_input_scene_input_max_on_enter(void* context) { + furi_assert(context); + ExampleNumberInput* app = context; + NumberInput* number_input = app->number_input; + + number_input_set_header_text(number_input, "Enter the maximum value"); + number_input_set_result_callback( + number_input, + example_number_input_scene_input_max_callback, + context, + app->max_value, + app->min_value, + INT32_MAX); + + view_dispatcher_switch_to_view(app->view_dispatcher, ExampleNumberInputViewIdNumberInput); +} + +bool example_number_input_scene_input_max_on_event(void* context, SceneManagerEvent event) { + ExampleNumberInput* app = context; + bool consumed = false; + + if(event.type == SceneManagerEventTypeCustom) { + scene_manager_previous_scene(app->scene_manager); + return true; + } + return consumed; +} + +void example_number_input_scene_input_max_on_exit(void* context) { + UNUSED(context); +} diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene_input_min.c b/applications/examples/example_number_input/scenes/example_number_input_scene_input_min.c new file mode 100644 index 00000000000..ad765623286 --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene_input_min.c @@ -0,0 +1,39 @@ +#include "../example_number_input.h" + +void example_number_input_scene_input_min_callback(void* context, int32_t number) { + ExampleNumberInput* app = context; + app->min_value = number; + view_dispatcher_send_custom_event(app->view_dispatcher, 0); +} + +void example_number_input_scene_input_min_on_enter(void* context) { + furi_assert(context); + ExampleNumberInput* app = context; + NumberInput* number_input = app->number_input; + + number_input_set_header_text(number_input, "Enter the minimum value"); + number_input_set_result_callback( + number_input, + example_number_input_scene_input_min_callback, + context, + app->min_value, + INT32_MIN, + app->max_value); + + view_dispatcher_switch_to_view(app->view_dispatcher, ExampleNumberInputViewIdNumberInput); +} + +bool example_number_input_scene_input_min_on_event(void* context, SceneManagerEvent event) { + ExampleNumberInput* app = context; + bool consumed = false; + + if(event.type == SceneManagerEventTypeCustom) { + scene_manager_previous_scene(app->scene_manager); + return true; + } + return consumed; +} + +void example_number_input_scene_input_min_on_exit(void* context) { + UNUSED(context); +} diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene_input_number.c b/applications/examples/example_number_input/scenes/example_number_input_scene_input_number.c new file mode 100644 index 00000000000..d9b1fd52f46 --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene_input_number.c @@ -0,0 +1,42 @@ +#include "../example_number_input.h" + +void example_number_input_scene_input_number_callback(void* context, int32_t number) { + ExampleNumberInput* app = context; + app->current_number = number; + view_dispatcher_send_custom_event(app->view_dispatcher, 0); +} + +void example_number_input_scene_input_number_on_enter(void* context) { + furi_assert(context); + ExampleNumberInput* app = context; + NumberInput* number_input = app->number_input; + + char str[50]; + snprintf(str, sizeof(str), "Set Number (%ld - %ld)", app->min_value, app->max_value); + + number_input_set_header_text(number_input, str); + number_input_set_result_callback( + number_input, + example_number_input_scene_input_number_callback, + context, + app->current_number, + app->min_value, + app->max_value); + + view_dispatcher_switch_to_view(app->view_dispatcher, ExampleNumberInputViewIdNumberInput); +} + +bool example_number_input_scene_input_number_on_event(void* context, SceneManagerEvent event) { + ExampleNumberInput* app = context; + bool consumed = false; + + if(event.type == SceneManagerEventTypeCustom) { //Back button pressed + scene_manager_previous_scene(app->scene_manager); + return true; + } + return consumed; +} + +void example_number_input_scene_input_number_on_exit(void* context) { + UNUSED(context); +} diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene_show_number.c b/applications/examples/example_number_input/scenes/example_number_input_scene_show_number.c new file mode 100644 index 00000000000..2afdaf5c10c --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene_show_number.c @@ -0,0 +1,66 @@ +#include "../example_number_input.h" + +static void + example_number_input_scene_confirm_dialog_callback(DialogExResult result, void* context) { + ExampleNumberInput* app = context; + + view_dispatcher_send_custom_event(app->view_dispatcher, result); +} + +static void example_number_input_scene_update_view(void* context) { + ExampleNumberInput* app = context; + DialogEx* dialog_ex = app->dialog_ex; + + dialog_ex_set_header(dialog_ex, "The number is", 64, 0, AlignCenter, AlignTop); + + static char buffer[12]; //needs static for extended lifetime + + snprintf(buffer, sizeof(buffer), "%ld", app->current_number); + dialog_ex_set_text(dialog_ex, buffer, 64, 29, AlignCenter, AlignCenter); + + dialog_ex_set_left_button_text(dialog_ex, "Min"); + dialog_ex_set_right_button_text(dialog_ex, "Max"); + dialog_ex_set_center_button_text(dialog_ex, "Change"); + + dialog_ex_set_result_callback(dialog_ex, example_number_input_scene_confirm_dialog_callback); + dialog_ex_set_context(dialog_ex, app); +} + +void example_number_input_scene_show_number_on_enter(void* context) { + furi_assert(context); + ExampleNumberInput* app = context; + + example_number_input_scene_update_view(app); + + view_dispatcher_switch_to_view(app->view_dispatcher, ExampleNumberInputViewIdShowNumber); +} + +bool example_number_input_scene_show_number_on_event(void* context, SceneManagerEvent event) { + ExampleNumberInput* app = context; + bool consumed = false; + + if(event.type == SceneManagerEventTypeCustom) { + switch(event.event) { + case DialogExResultCenter: + scene_manager_next_scene(app->scene_manager, ExampleNumberInputSceneInputNumber); + consumed = true; + break; + case DialogExResultLeft: + scene_manager_next_scene(app->scene_manager, ExampleNumberInputSceneInputMin); + consumed = true; + break; + case DialogExResultRight: + scene_manager_next_scene(app->scene_manager, ExampleNumberInputSceneInputMax); + consumed = true; + break; + default: + break; + } + } + + return consumed; +} + +void example_number_input_scene_show_number_on_exit(void* context) { + UNUSED(context); +} diff --git a/applications/services/gui/application.fam b/applications/services/gui/application.fam index b7dd18baa11..b24f5bbb6a6 100644 --- a/applications/services/gui/application.fam +++ b/applications/services/gui/application.fam @@ -19,6 +19,7 @@ App( "view_holder.h", "modules/button_menu.h", "modules/byte_input.h", + "modules/number_input.h", "modules/popup.h", "modules/text_input.h", "modules/widget.h", diff --git a/applications/services/gui/modules/number_input.c b/applications/services/gui/modules/number_input.c new file mode 100644 index 00000000000..777e5574729 --- /dev/null +++ b/applications/services/gui/modules/number_input.c @@ -0,0 +1,443 @@ +#include "number_input.h" + +#include +#include +#include + +struct NumberInput { + View* view; +}; + +typedef struct { + const char text; + const size_t x; + const size_t y; +} NumberInputKey; + +typedef struct { + FuriString* header; + FuriString* text_buffer; + + int32_t current_number; + int32_t max_value; + int32_t min_value; + + NumberInputCallback callback; + void* callback_context; + + size_t selected_row; + size_t selected_column; +} NumberInputModel; + +static const size_t keyboard_origin_x = 7; +static const size_t keyboard_origin_y = 31; +static const size_t keyboard_row_count = 2; +static const char enter_symbol = '\r'; +static const char backspace_symbol = '\b'; +static const char sign_symbol = '-'; + +static const NumberInputKey keyboard_keys_row_1[] = { + {'0', 0, 12}, + {'1', 11, 12}, + {'2', 22, 12}, + {'3', 33, 12}, + {'4', 44, 12}, + {backspace_symbol, 103, 4}, +}; + +static const NumberInputKey keyboard_keys_row_2[] = { + {'5', 0, 26}, + {'6', 11, 26}, + {'7', 22, 26}, + {'8', 33, 26}, + {'9', 44, 26}, + {sign_symbol, 55, 17}, + {enter_symbol, 95, 17}, +}; + +static size_t number_input_get_row_size(size_t row_index) { + size_t row_size = 0; + + switch(row_index + 1) { + case 1: + row_size = COUNT_OF(keyboard_keys_row_1); + break; + case 2: + row_size = COUNT_OF(keyboard_keys_row_2); + break; + default: + furi_crash(); + } + + return row_size; +} + +static const NumberInputKey* number_input_get_row(size_t row_index) { + const NumberInputKey* row = NULL; + + switch(row_index + 1) { + case 1: + row = keyboard_keys_row_1; + break; + case 2: + row = keyboard_keys_row_2; + break; + default: + furi_crash(); + } + + return row; +} + +static void number_input_draw_input(Canvas* canvas, NumberInputModel* model) { + const size_t text_x = 8; + const size_t text_y = 25; + + elements_slightly_rounded_frame(canvas, 6, 14, 116, 15); + + canvas_draw_str(canvas, text_x, text_y, furi_string_get_cstr(model->text_buffer)); +} + +static bool number_input_use_sign(NumberInputModel* model) { + //only show sign button if allowed number range needs it + if(model->min_value < 0 && model->max_value >= 0) { + return true; + } + return false; +} + +static void number_input_backspace_cb(NumberInputModel* model) { + size_t text_length = furi_string_utf8_length(model->text_buffer); + if(text_length < 1 || (text_length < 2 && model->current_number <= 0)) { + return; + } + furi_string_set_strn( + model->text_buffer, furi_string_get_cstr(model->text_buffer), text_length - 1); + model->current_number = strtol(furi_string_get_cstr(model->text_buffer), NULL, 10); +} + +static void number_input_handle_up(NumberInputModel* model) { + if(model->selected_row > 0) { + model->selected_row--; + if(model->selected_column > number_input_get_row_size(model->selected_row) - 1) { + model->selected_column = number_input_get_row_size(model->selected_row) - 1; + } + } +} + +static void number_input_handle_down(NumberInputModel* model) { + if(model->selected_row < keyboard_row_count - 1) { + if(model->selected_column >= number_input_get_row_size(model->selected_row) - 1) { + model->selected_column = number_input_get_row_size(model->selected_row + 1) - 1; + } + model->selected_row += 1; + } + const NumberInputKey* keys = number_input_get_row(model->selected_row); + if(keys[model->selected_column].text == sign_symbol && !number_input_use_sign(model)) { + model->selected_column--; + } +} + +static void number_input_handle_left(NumberInputModel* model) { + if(model->selected_column > 0) { + model->selected_column--; + } else { + model->selected_column = number_input_get_row_size(model->selected_row) - 1; + } + const NumberInputKey* keys = number_input_get_row(model->selected_row); + if(keys[model->selected_column].text == sign_symbol && !number_input_use_sign(model)) { + model->selected_column--; + } +} + +static void number_input_handle_right(NumberInputModel* model) { + if(model->selected_column < number_input_get_row_size(model->selected_row) - 1) { + model->selected_column++; + } else { + model->selected_column = 0; + } + const NumberInputKey* keys = number_input_get_row(model->selected_row); + if(keys[model->selected_column].text == sign_symbol && !number_input_use_sign(model)) { + model->selected_column++; + } +} + +static bool is_number_too_large(NumberInputModel* model) { + int64_t value = strtoll(furi_string_get_cstr(model->text_buffer), NULL, 10); + if(value > (int64_t)model->max_value) { + return true; + } + return false; +} + +static bool is_number_too_small(NumberInputModel* model) { + int64_t value = strtoll(furi_string_get_cstr(model->text_buffer), NULL, 10); + if(value < (int64_t)model->min_value) { + return true; + } + return false; +} + +static void number_input_sign(NumberInputModel* model) { + int32_t number = strtol(furi_string_get_cstr(model->text_buffer), NULL, 10); + if(number == 0 && furi_string_cmp_str(model->text_buffer, "-") != 0) { + furi_string_set_str(model->text_buffer, "-"); + return; + } + number = number * -1; + furi_string_printf(model->text_buffer, "%ld", number); + if(is_number_too_large(model) || is_number_too_small(model)) { + furi_string_printf(model->text_buffer, "%ld", model->current_number); + return; + } + model->current_number = strtol(furi_string_get_cstr(model->text_buffer), NULL, 10); + if(model->current_number == 0) { + furi_string_set_str(model->text_buffer, ""); //show empty if 0, better for usability + } +} + +static void number_input_add_digit(NumberInputModel* model, char* newChar) { + furi_string_cat_str(model->text_buffer, newChar); + if((model->max_value >= 0 && is_number_too_large(model)) || + (model->min_value < 0 && is_number_too_small(model))) { + //you still need to be able to type invalid numbers in some cases to reach valid numbers on later keypress + furi_string_printf(model->text_buffer, "%ld", model->current_number); + return; + } + model->current_number = strtol(furi_string_get_cstr(model->text_buffer), NULL, 10); + if(model->current_number == 0) { + furi_string_reset(model->text_buffer); + } +} + +static void number_input_handle_ok(NumberInputModel* model) { + char selected = number_input_get_row(model->selected_row)[model->selected_column].text; + char temp_str[2] = {selected, '\0'}; + if(selected == enter_symbol) { + if(is_number_too_large(model) || is_number_too_small(model)) { + return; //Do nothing if number outside allowed range + } + model->current_number = strtol(furi_string_get_cstr(model->text_buffer), NULL, 10); + model->callback(model->callback_context, model->current_number); + } else if(selected == backspace_symbol) { + number_input_backspace_cb(model); + } else if(selected == sign_symbol) { + number_input_sign(model); + } else { + number_input_add_digit(model, temp_str); + } +} + +static void number_input_view_draw_callback(Canvas* canvas, void* _model) { + NumberInputModel* model = _model; + + number_input_draw_input(canvas, model); + + if(!furi_string_empty(model->header)) { + canvas_set_font(canvas, FontSecondary); + canvas_draw_str(canvas, 2, 9, furi_string_get_cstr(model->header)); + } + canvas_set_font(canvas, FontKeyboard); + // Draw keyboard + for(size_t row = 0; row < keyboard_row_count; row++) { + const size_t column_count = number_input_get_row_size(row); + const NumberInputKey* keys = number_input_get_row(row); + + for(size_t column = 0; column < column_count; column++) { + if(keys[column].text == sign_symbol && !number_input_use_sign(model)) { + continue; + } + + if(keys[column].text == enter_symbol) { + if(is_number_too_small(model) || is_number_too_large(model)) { + //in some cases you need to be able to type a number smaller/larger than the limits (expl. min = 50, clear all and editor must allow to type 9 and later 0 for 90) + if(model->selected_row == row && model->selected_column == column) { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeySaveBlockedSelected_24x11); + } else { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeySaveBlocked_24x11); + } + } else { + if(model->selected_row == row && model->selected_column == column) { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeySaveSelected_24x11); + } else { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeySave_24x11); + } + } + } else if(keys[column].text == backspace_symbol) { + if(model->selected_row == row && model->selected_column == column) { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeyBackspaceSelected_16x9); + } else { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeyBackspace_16x9); + } + } else if(keys[column].text == sign_symbol) { + if(model->selected_row == row && model->selected_column == column) { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeySignSelected_21x11); + } else { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeySign_21x11); + } + } else { + if(model->selected_row == row && model->selected_column == column) { + canvas_draw_box( + canvas, + keyboard_origin_x + keys[column].x - 3, + keyboard_origin_y + keys[column].y - 10, + 11, + 13); + canvas_set_color(canvas, ColorWhite); + } + + canvas_draw_glyph( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + keys[column].text); + canvas_set_color(canvas, ColorBlack); + } + } + } +} + +static bool number_input_view_input_callback(InputEvent* event, void* context) { + furi_assert(context); + NumberInput* number_input = context; + + bool consumed = false; + + // Fetch the model + NumberInputModel* model = view_get_model(number_input->view); + + if(event->type == InputTypeShort || event->type == InputTypeLong || + event->type == InputTypeRepeat) { + consumed = true; + switch(event->key) { + case InputKeyLeft: + number_input_handle_left(model); + break; + case InputKeyRight: + number_input_handle_right(model); + break; + case InputKeyUp: + number_input_handle_up(model); + break; + case InputKeyDown: + number_input_handle_down(model); + break; + case InputKeyOk: + number_input_handle_ok(model); + break; + default: + consumed = false; + break; + } + } + + // commit view + view_commit_model(number_input->view, consumed); + + return consumed; +} + +NumberInput* number_input_alloc(void) { + NumberInput* number_input = malloc(sizeof(NumberInput)); + number_input->view = view_alloc(); + view_set_context(number_input->view, number_input); + view_allocate_model(number_input->view, ViewModelTypeLocking, sizeof(NumberInputModel)); + view_set_draw_callback(number_input->view, number_input_view_draw_callback); + view_set_input_callback(number_input->view, number_input_view_input_callback); + + with_view_model( + number_input->view, + NumberInputModel * model, + { + model->header = furi_string_alloc(); + model->text_buffer = furi_string_alloc(); + }, + true); + + return number_input; +} + +void number_input_free(NumberInput* number_input) { + furi_check(number_input); + with_view_model( + number_input->view, + NumberInputModel * model, + { + furi_string_free(model->header); + furi_string_free(model->text_buffer); + }, + true); + view_free(number_input->view); + free(number_input); +} + +View* number_input_get_view(NumberInput* number_input) { + furi_check(number_input); + return number_input->view; +} + +void number_input_set_result_callback( + NumberInput* number_input, + NumberInputCallback callback, + void* callback_context, + int32_t current_number, + int32_t min_value, + int32_t max_value) { + furi_check(number_input); + + current_number = CLAMP(current_number, max_value, min_value); + + with_view_model( + number_input->view, + NumberInputModel * model, + { + model->callback = callback; + model->callback_context = callback_context; + model->current_number = current_number; + furi_string_printf(model->text_buffer, "%ld", current_number); + model->min_value = min_value; + model->max_value = max_value; + }, + true); +} + +void number_input_set_header_text(NumberInput* number_input, const char* text) { + furi_check(number_input); + with_view_model( + number_input->view, + NumberInputModel * model, + { furi_string_set(model->header, text); }, + true); +} diff --git a/applications/services/gui/modules/number_input.h b/applications/services/gui/modules/number_input.h new file mode 100644 index 00000000000..80e631e9bd3 --- /dev/null +++ b/applications/services/gui/modules/number_input.h @@ -0,0 +1,69 @@ +/** + * @file number_input.h + * GUI: Integer string keyboard view module API + */ + +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** Number input anonymous structure */ +typedef struct NumberInput NumberInput; + +/** Callback to be called on save button press */ +typedef void (*NumberInputCallback)(void* context, int32_t number); + +/** Allocate and initialize Number input. + * + * This Number input is used to enter Numbers (Integers). + * + * @return NumberInput instance pointer + */ +NumberInput* number_input_alloc(void); + +/** Deinitialize and free byte input + * + * @param number_input Number input instance + */ +void number_input_free(NumberInput* number_input); + +/** Get byte input view + * + * @param number_input byte input instance + * + * @return View instance that can be used for embedding + */ +View* number_input_get_view(NumberInput* number_input); + +/** Set byte input result callback + * + * @param number_input byte input instance + * @param input_callback input callback fn + * @param callback_context callback context + * @param[in] current_number The current number + * @param min_value Min number value + * @param max_value Max number value + */ + +void number_input_set_result_callback( + NumberInput* number_input, + NumberInputCallback input_callback, + void* callback_context, + int32_t current_number, + int32_t min_value, + int32_t max_value); + +/** Set byte input header text + * + * @param number_input byte input instance + * @param text text to be shown + */ +void number_input_set_header_text(NumberInput* number_input, const char* text); + +#ifdef __cplusplus +} +#endif diff --git a/assets/icons/Keyboard/KeySaveBlockedSelected_24x11.png b/assets/icons/Keyboard/KeySaveBlockedSelected_24x11.png new file mode 100644 index 0000000000000000000000000000000000000000..fe570a10c3790ca7702dad17af23aea531a7b5bd GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^5mdK II;Vst05s$xcmMzZ literal 0 HcmV?d00001 diff --git a/assets/icons/Keyboard/KeySaveSelected_24x11.png b/assets/icons/Keyboard/KeySaveSelected_24x11.png index 25bc446e485413a6c282c94a7037bd6c4657f33e..abfced776fe8fcf80671f7d15c6ca074db382bbd 100644 GIT binary patch delta 42 wcmaz`n4rR^?&;zfQZXkvBOxKBfpMaNwD3K)elArHCk7z!boFyt=akR{029j$TL1t6 delta 63 zcmYd@o1kK)>gnPbQZXkvBf)`T-gLH}CZSJ0_7XfZ{u#_km{5_%Fg-gVfrX)aD_h?S Sp6(t7AnbP0l+XkKe!U2C delta 29 jcmd1Ho1o8_FwsC;n2RSXv%4Ul0SG)@{an^LB{Ts5djAMP diff --git a/assets/icons/Keyboard/KeySignSelected_21x11.png b/assets/icons/Keyboard/KeySignSelected_21x11.png new file mode 100644 index 0000000000000000000000000000000000000000..23ec2a9c4458c3801ec6a50b96acd2e6132f0aae GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^qCm{e2qYMGZ1{ZvNU3?cIEGZrNzO=kkkG&=#>b|{ q2E>^knR#^hczk&H3N+i;*!URCH#031T7H!cq|?*Y&t;ucLK6U`C>3h} literal 0 HcmV?d00001 diff --git a/assets/icons/Keyboard/KeySign_21x11.png b/assets/icons/Keyboard/KeySign_21x11.png new file mode 100644 index 0000000000000000000000000000000000000000..f31e9e0fae1263c9819cd7b6fb8cf6eb460fb453 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^qCm{e2qYMGZ1{ZvNSS!LIEGZrVLfQb%b>vHdhq&u zzON0EOB8vHTMRapDrlDT99q4OVXuoy)biDDHPt>fGMIPsTYli4wTNNg3XnOTu6{1- HoD!M<{D~mM literal 0 HcmV?d00001 diff --git a/targets/f18/api_symbols.csv b/targets/f18/api_symbols.csv index baf1f8a8023..69d45e8681d 100644 --- a/targets/f18/api_symbols.csv +++ b/targets/f18/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,72.0,, +Version,+,72.1,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,, Header,+,applications/services/cli/cli.h,, @@ -13,6 +13,7 @@ Header,+,applications/services/gui/icon_i.h,, Header,+,applications/services/gui/modules/button_menu.h,, Header,+,applications/services/gui/modules/button_panel.h,, Header,+,applications/services/gui/modules/byte_input.h,, +Header,+,applications/services/gui/modules/number_input.h,, Header,+,applications/services/gui/modules/dialog_ex.h,, Header,+,applications/services/gui/modules/empty_screen.h,, Header,+,applications/services/gui/modules/file_browser.h,, @@ -722,6 +723,11 @@ Function,+,byte_input_free,void,ByteInput* Function,+,byte_input_get_view,View*,ByteInput* Function,+,byte_input_set_header_text,void,"ByteInput*, const char*" Function,+,byte_input_set_result_callback,void,"ByteInput*, ByteInputCallback, ByteChangedCallback, void*, uint8_t*, uint8_t" +Function,+,number_input_alloc,NumberInput*, +Function,+,number_input_free,void,NumberInput* +Function,+,number_input_get_view,View*,NumberInput* +Function,+,number_input_set_header_text,void,"NumberInput*, const char*" +Function,+,number_input_set_result_callback,void,"NumberInput*, NumberInputCallback, void*, int32_t, int32_t, int32_t" Function,-,bzero,void,"void*, size_t" Function,+,calloc,void*,"size_t, size_t" Function,+,canvas_clear,void,Canvas* diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index cb3471e60a3..991569a291d 100644 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,72.0,, +Version,+,72.1,, Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,, @@ -20,6 +20,7 @@ Header,+,applications/services/gui/modules/file_browser.h,, Header,+,applications/services/gui/modules/file_browser_worker.h,, Header,+,applications/services/gui/modules/loading.h,, Header,+,applications/services/gui/modules/menu.h,, +Header,+,applications/services/gui/modules/number_input.h,, Header,+,applications/services/gui/modules/popup.h,, Header,+,applications/services/gui/modules/submenu.h,, Header,+,applications/services/gui/modules/text_box.h,, @@ -2815,6 +2816,11 @@ Function,+,notification_internal_message_block,void,"NotificationApp*, const Not Function,+,notification_message,void,"NotificationApp*, const NotificationSequence*" Function,+,notification_message_block,void,"NotificationApp*, const NotificationSequence*" Function,-,nrand48,long,unsigned short[3] +Function,+,number_input_alloc,NumberInput*, +Function,+,number_input_free,void,NumberInput* +Function,+,number_input_get_view,View*,NumberInput* +Function,+,number_input_set_header_text,void,"NumberInput*, const char*" +Function,+,number_input_set_result_callback,void,"NumberInput*, NumberInputCallback, void*, int32_t, int32_t, int32_t" Function,-,on_exit,int,"void (*)(int, void*), void*" Function,+,onewire_host_alloc,OneWireHost*,const GpioPin* Function,+,onewire_host_free,void,OneWireHost* From 235cb649a673fc6b526d63dc5d0c992c1df609d2 Mon Sep 17 00:00:00 2001 From: Georgii Surkov <37121527+gsurkov@users.noreply.github.com> Date: Fri, 9 Aug 2024 07:40:42 +0100 Subject: [PATCH 19/22] [FL-3883] Remove internal storage folder if corresponding flag set (#3824) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove the .int directory when the flag is set * Improve error handling and variable naming * Cleanup the code * Fix updater build Co-authored-by: あく --- applications/services/storage/storage.c | 5 - .../storage/storage_internal_dirname_i.h | 3 + .../services/storage/storage_processing.c | 8 +- .../services/storage/storages/storage_ext.c | 104 +++++++++++++++--- 4 files changed, 98 insertions(+), 22 deletions(-) create mode 100644 applications/services/storage/storage_internal_dirname_i.h diff --git a/applications/services/storage/storage.c b/applications/services/storage/storage.c index bfe2a08b210..d05ffb6356f 100644 --- a/applications/services/storage/storage.c +++ b/applications/services/storage/storage.c @@ -102,11 +102,6 @@ int32_t storage_srv(void* p) { Storage* app = storage_app_alloc(); furi_record_create(RECORD_STORAGE, app); - if(furi_hal_rtc_is_flag_set(FuriHalRtcFlagStorageFormatInternal)) { - FURI_LOG_W(TAG, "Format Internal not supported, clearing flag"); - furi_hal_rtc_reset_flag(FuriHalRtcFlagStorageFormatInternal); - } - StorageMessage message; while(1) { if(furi_message_queue_get(app->message_queue, &message, STORAGE_TICK) == FuriStatusOk) { diff --git a/applications/services/storage/storage_internal_dirname_i.h b/applications/services/storage/storage_internal_dirname_i.h new file mode 100644 index 00000000000..889bdc49768 --- /dev/null +++ b/applications/services/storage/storage_internal_dirname_i.h @@ -0,0 +1,3 @@ +#pragma once + +#define STORAGE_INTERNAL_DIR_NAME ".int" diff --git a/applications/services/storage/storage_processing.c b/applications/services/storage/storage_processing.c index 56458993074..8d86dd38516 100644 --- a/applications/services/storage/storage_processing.c +++ b/applications/services/storage/storage_processing.c @@ -1,7 +1,9 @@ -#include "storage_processing.h" #include #include +#include "storage_processing.h" +#include "storage_internal_dirname_i.h" + #define TAG "Storage" #define STORAGE_PATH_PREFIX_LEN 4u @@ -555,9 +557,9 @@ void storage_process_alias( } else if(furi_string_start_with(path, STORAGE_INT_PATH_PREFIX)) { furi_string_replace_at( - path, 0, strlen(STORAGE_INT_PATH_PREFIX), STORAGE_EXT_PATH_PREFIX "/.int"); + path, 0, strlen(STORAGE_INT_PATH_PREFIX), EXT_PATH(STORAGE_INTERNAL_DIR_NAME)); - FuriString* int_on_ext_path = furi_string_alloc_set(STORAGE_EXT_PATH_PREFIX "/.int"); + FuriString* int_on_ext_path = furi_string_alloc_set(EXT_PATH(STORAGE_INTERNAL_DIR_NAME)); if(storage_process_common_stat(app, int_on_ext_path, NULL) != FSE_OK) { storage_process_common_mkdir(app, int_on_ext_path); } diff --git a/applications/services/storage/storages/storage_ext.c b/applications/services/storage/storages/storage_ext.c index 93e06f6632c..a945f1cd51d 100644 --- a/applications/services/storage/storages/storage_ext.c +++ b/applications/services/storage/storages/storage_ext.c @@ -1,10 +1,13 @@ -#include "fatfs.h" -#include "../filesystem_api_internal.h" -#include "storage_ext.h" +#include #include -#include "sd_notify.h" #include +#include "sd_notify.h" +#include "storage_ext.h" + +#include "../filesystem_api_internal.h" +#include "../storage_internal_dirname_i.h" + typedef FIL SDFile; typedef DIR SDDir; typedef FILINFO SDFileInfo; @@ -93,6 +96,64 @@ static bool sd_mount_card_internal(StorageData* storage, bool notify) { return result; } +static bool sd_remove_recursive(const char* path) { + SDDir* current_dir = malloc(sizeof(DIR)); + SDFileInfo* file_info = malloc(sizeof(FILINFO)); + FuriString* current_path = furi_string_alloc_set(path); + + bool go_deeper = false; + SDError status; + + while(true) { + status = f_opendir(current_dir, furi_string_get_cstr(current_path)); + if(status != FR_OK) break; + + while(true) { + status = f_readdir(current_dir, file_info); + if(status != FR_OK || !strlen(file_info->fname)) break; + + if(file_info->fattrib & AM_DIR) { + furi_string_cat_printf(current_path, "/%s", file_info->fname); + go_deeper = true; + break; + + } else { + FuriString* file_path = furi_string_alloc_printf( + "%s/%s", furi_string_get_cstr(current_path), file_info->fname); + status = f_unlink(furi_string_get_cstr(file_path)); + furi_string_free(file_path); + + if(status != FR_OK) break; + } + } + + status = f_closedir(current_dir); + if(status != FR_OK) break; + + if(go_deeper) { + go_deeper = false; + continue; + } + + status = f_unlink(furi_string_get_cstr(current_path)); + if(status != FR_OK) break; + + if(!furi_string_equal(current_path, path)) { + size_t last_char_pos = furi_string_search_rchar(current_path, '/'); + furi_assert(last_char_pos != FURI_STRING_FAILURE); + furi_string_left(current_path, last_char_pos); + } else { + break; + } + } + + free(current_dir); + free(file_info); + furi_string_free(current_path); + + return status == FR_OK; +} + FS_Error sd_unmount_card(StorageData* storage) { SDData* sd_data = storage->data; SDError error; @@ -112,21 +173,32 @@ FS_Error sd_mount_card(StorageData* storage, bool notify) { if(storage->status != StorageStatusOK) { FURI_LOG_E(TAG, "sd init error: %s", storage_data_status_text(storage)); - if(notify) { - NotificationApp* notification = furi_record_open(RECORD_NOTIFICATION); - sd_notify_error(notification); - furi_record_close(RECORD_NOTIFICATION); - } error = FSE_INTERNAL; + } else { FURI_LOG_I(TAG, "card mounted"); - if(notify) { - NotificationApp* notification = furi_record_open(RECORD_NOTIFICATION); - sd_notify_success(notification); - furi_record_close(RECORD_NOTIFICATION); - } +#ifndef FURI_RAM_EXEC + if(furi_hal_rtc_is_flag_set(FuriHalRtcFlagStorageFormatInternal)) { + FURI_LOG_I(TAG, "deleting internal storage directory"); + error = sd_remove_recursive(STORAGE_INTERNAL_DIR_NAME) ? FSE_OK : FSE_INTERNAL; + } else { + error = FSE_OK; + } +#else + UNUSED(sd_remove_recursive); error = FSE_OK; +#endif + } + + if(notify) { + NotificationApp* notification = furi_record_open(RECORD_NOTIFICATION); + if(error != FSE_OK) { + sd_notify_error(notification); + } else { + sd_notify_success(notification); + } + furi_record_close(RECORD_NOTIFICATION); } return error; @@ -654,4 +726,8 @@ void storage_ext_init(StorageData* storage) { // do not notify on first launch, notifications app is waiting for our thread to read settings storage_ext_tick_internal(storage, false); +#ifndef FURI_RAM_EXEC + // always reset the flag to prevent accidental wipe on SD card insertion + furi_hal_rtc_reset_flag(FuriHalRtcFlagStorageFormatInternal); +#endif } From 3672efa7da14edbbfd9089805288e77652cb9726 Mon Sep 17 00:00:00 2001 From: RebornedBrain <138568282+RebornedBrain@users.noreply.github.com> Date: Fri, 9 Aug 2024 10:08:05 +0300 Subject: [PATCH 20/22] Now fifo size in ST25 chip is calculated properly (#3829) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: あく --- lib/drivers/st25r3916.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/drivers/st25r3916.c b/lib/drivers/st25r3916.c index 47726121358..f8dc9a5eb35 100644 --- a/lib/drivers/st25r3916.c +++ b/lib/drivers/st25r3916.c @@ -57,9 +57,12 @@ bool st25r3916_read_fifo( do { uint8_t fifo_status[2] = {}; st25r3916_read_burst_regs(handle, ST25R3916_REG_FIFO_STATUS1, fifo_status, 2); - size_t bytes = ((fifo_status[1] & ST25R3916_REG_FIFO_STATUS2_fifo_b_mask) >> - ST25R3916_REG_FIFO_STATUS2_fifo_b_shift) | - fifo_status[0]; + + uint16_t fifo_status_b9_b8 = + ((fifo_status[1] & ST25R3916_REG_FIFO_STATUS2_fifo_b_mask) >> + ST25R3916_REG_FIFO_STATUS2_fifo_b_shift); + size_t bytes = (fifo_status_b9_b8 << 8) | fifo_status[0]; + uint8_t bits = ((fifo_status[1] & ST25R3916_REG_FIFO_STATUS2_fifo_lb_mask) >> ST25R3916_REG_FIFO_STATUS2_fifo_lb_shift); From d2ff2825caf89c91030cba55d66c710a916301e5 Mon Sep 17 00:00:00 2001 From: Georgii Surkov <37121527+gsurkov@users.noreply.github.com> Date: Fri, 9 Aug 2024 08:14:40 +0100 Subject: [PATCH 21/22] [FL-3888] Make file extensions case-insensitive (#3828) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: あく --- .../main/archive/helpers/archive_files.c | 2 +- .../gui/modules/file_browser_worker.c | 2 +- furi/core/string.c | 19 ++++++++++++++ furi/core/string.h | 25 +++++++++++++++++++ targets/f18/api_symbols.csv | 2 ++ targets/f7/api_symbols.csv | 6 +++-- 6 files changed, 52 insertions(+), 4 deletions(-) diff --git a/applications/main/archive/helpers/archive_files.c b/applications/main/archive/helpers/archive_files.c index 2f4d6a02a74..7c15bf53bac 100644 --- a/applications/main/archive/helpers/archive_files.c +++ b/applications/main/archive/helpers/archive_files.c @@ -15,7 +15,7 @@ void archive_set_file_type(ArchiveFile_t* file, const char* path, bool is_folder } else { for(size_t i = 0; i < COUNT_OF(known_ext); i++) { if((known_ext[i][0] == '?') || (known_ext[i][0] == '*')) continue; - if(furi_string_end_with(file->path, known_ext[i])) { + if(furi_string_end_withi(file->path, known_ext[i])) { if(i == ArchiveFileTypeBadUsb) { if(furi_string_search( file->path, archive_get_default_path(ArchiveTabBadUsb)) == 0) { diff --git a/applications/services/gui/modules/file_browser_worker.c b/applications/services/gui/modules/file_browser_worker.c index a6b00537a0f..521666e6d27 100644 --- a/applications/services/gui/modules/file_browser_worker.c +++ b/applications/services/gui/modules/file_browser_worker.c @@ -134,7 +134,7 @@ static bool browser_filter_by_name(BrowserWorker* browser, FuriString* name, boo if((furi_string_empty(ext)) || (furi_string_cmp_str(ext, "*") == 0)) { return true; } - if(furi_string_end_with(name, ext)) { + if(furi_string_end_withi(name, ext)) { return true; } } diff --git a/furi/core/string.c b/furi/core/string.c index f3e40fe5eb6..804445e22d9 100644 --- a/furi/core/string.c +++ b/furi/core/string.c @@ -17,6 +17,7 @@ struct FuriString { #undef furi_string_replace_all #undef furi_string_start_with #undef furi_string_end_with +#undef furi_string_end_withi #undef furi_string_search_char #undef furi_string_search_rchar #undef furi_string_trim @@ -218,10 +219,28 @@ bool furi_string_end_with(const FuriString* v, const FuriString* v2) { return string_end_with_string_p(v->string, v2->string); } +bool furi_string_end_withi(const FuriString* v, const FuriString* v2) { + return furi_string_end_withi_str(v, string_get_cstr(v2->string)); +} + bool furi_string_end_with_str(const FuriString* v, const char str[]) { return string_end_with_str_p(v->string, str); } +bool furi_string_end_withi_str(const FuriString* v, const char str[]) { + M_STR1NG_CONTRACT(v); + M_ASSERT(str != NULL); + + const size_t str_len = strlen(str); + const size_t v_len = string_size(v->string); + + if(v_len < str_len) { + return false; + } + + return strcasecmp(&string_get_cstr(v->string)[v_len - str_len], str) == 0; +} + size_t furi_string_search_char(const FuriString* v, char c, size_t start) { return string_search_char(v->string, c, start); } diff --git a/furi/core/string.h b/furi/core/string.h index 2bfb60e496c..84b8c6a2405 100644 --- a/furi/core/string.h +++ b/furi/core/string.h @@ -510,6 +510,15 @@ bool furi_string_start_with_str(const FuriString* string, const char start[]); */ bool furi_string_end_with(const FuriString* string, const FuriString* end); +/** Test if the string ends with the given string (case insensitive according to the current locale). + * + * @param string The FuriString instance + * @param end The end + * + * @return true if string ends with + */ +bool furi_string_end_withi(const FuriString* string, const FuriString* end); + /** Test if the string ends with the given C string. * * @param string The FuriString instance @@ -519,6 +528,15 @@ bool furi_string_end_with(const FuriString* string, const FuriString* end); */ bool furi_string_end_with_str(const FuriString* string, const char end[]); +/** Test if the string ends with the given C string (case insensitive according to the current locale). + * + * @param string The FuriString instance + * @param end The end + * + * @return true if string ends with + */ +bool furi_string_end_withi_str(const FuriString* string, const char end[]); + //--------------------------------------------------------------------------- // Trim //--------------------------------------------------------------------------- @@ -699,6 +717,13 @@ void furi_string_utf8_decode(char c, FuriStringUTF8State* state, FuriStringUnico #define furi_string_end_with(a, b) \ FURI_STRING_SELECT2(furi_string_end_with, furi_string_end_with_str, a, b) +/** Test if the string ends with the given string (or C string) (case insensitive according to the current locale). + * + * (string, [c]string) + */ +#define furi_string_end_withi(a, b) \ + FURI_STRING_SELECT2(furi_string_end_withi, furi_string_end_withi_str, a, b) + /** Append a string (or C string) to the string. * * (string, [c]string) diff --git a/targets/f18/api_symbols.csv b/targets/f18/api_symbols.csv index 69d45e8681d..57cbd1d62e8 100644 --- a/targets/f18/api_symbols.csv +++ b/targets/f18/api_symbols.csv @@ -1582,6 +1582,8 @@ Function,+,furi_string_cmpi_str,int,"const FuriString*, const char[]" Function,+,furi_string_empty,_Bool,const FuriString* Function,+,furi_string_end_with,_Bool,"const FuriString*, const FuriString*" Function,+,furi_string_end_with_str,_Bool,"const FuriString*, const char[]" +Function,+,furi_string_end_withi,_Bool,"const FuriString*, const FuriString*" +Function,+,furi_string_end_withi_str,_Bool,"const FuriString*, const char[]" Function,+,furi_string_equal,_Bool,"const FuriString*, const FuriString*" Function,+,furi_string_equal_str,_Bool,"const FuriString*, const char[]" Function,+,furi_string_free,void,FuriString* diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index 991569a291d..e44b3356c67 100644 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -1791,6 +1791,8 @@ Function,+,furi_string_cmpi_str,int,"const FuriString*, const char[]" Function,+,furi_string_empty,_Bool,const FuriString* Function,+,furi_string_end_with,_Bool,"const FuriString*, const FuriString*" Function,+,furi_string_end_with_str,_Bool,"const FuriString*, const char[]" +Function,+,furi_string_end_withi,_Bool,"const FuriString*, const FuriString*" +Function,+,furi_string_end_withi_str,_Bool,"const FuriString*, const char[]" Function,+,furi_string_equal,_Bool,"const FuriString*, const FuriString*" Function,+,furi_string_equal_str,_Bool,"const FuriString*, const char[]" Function,+,furi_string_free,void,FuriString* @@ -1959,8 +1961,8 @@ Function,+,ibutton_protocols_render_data,void,"iButtonProtocols*, const iButtonK Function,+,ibutton_protocols_render_error,void,"iButtonProtocols*, const iButtonKey*, FuriString*" Function,+,ibutton_protocols_render_uid,void,"iButtonProtocols*, const iButtonKey*, FuriString*" Function,+,ibutton_protocols_save,_Bool,"iButtonProtocols*, const iButtonKey*, const char*" -Function,+,ibutton_protocols_write_id,_Bool,"iButtonProtocols*, iButtonKey*" Function,+,ibutton_protocols_write_copy,_Bool,"iButtonProtocols*, iButtonKey*" +Function,+,ibutton_protocols_write_id,_Bool,"iButtonProtocols*, iButtonKey*" Function,+,ibutton_worker_alloc,iButtonWorker*,iButtonProtocols* Function,+,ibutton_worker_emulate_set_callback,void,"iButtonWorker*, iButtonWorkerEmulateCallback, void*" Function,+,ibutton_worker_emulate_start,void,"iButtonWorker*, iButtonKey*" @@ -1970,8 +1972,8 @@ Function,+,ibutton_worker_read_start,void,"iButtonWorker*, iButtonKey*" Function,+,ibutton_worker_start_thread,void,iButtonWorker* Function,+,ibutton_worker_stop,void,iButtonWorker* Function,+,ibutton_worker_stop_thread,void,iButtonWorker* -Function,+,ibutton_worker_write_id_start,void,"iButtonWorker*, iButtonKey*" Function,+,ibutton_worker_write_copy_start,void,"iButtonWorker*, iButtonKey*" +Function,+,ibutton_worker_write_id_start,void,"iButtonWorker*, iButtonKey*" Function,+,ibutton_worker_write_set_callback,void,"iButtonWorker*, iButtonWorkerWriteCallback, void*" Function,+,icon_animation_alloc,IconAnimation*,const Icon* Function,+,icon_animation_free,void,IconAnimation* From 4f75d92747e0cf325d8048c39fddc552cc613aa6 Mon Sep 17 00:00:00 2001 From: daubsi Date: Fri, 9 Aug 2024 10:24:57 +0200 Subject: [PATCH 22/22] Added protocol for Dickert MAHS garage door remote control (#3826) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added Dickert MAHS protocol * Update protocol_items.c * Added Dickert MAHS protocol reference * Update protocol_items.h * Removed logging and some defines * Reworked the send code to properly adhere to Dickert timings * Added subghz unit test for Dickert MAHS * Minor fix in encoding length * Added Dickert Decoder Test to subghz unit tests and set repeat=10 * SubGhz: cleanup dickert mahs code and documentation * SubGhz: correct type in for statement in dickert mahs Co-authored-by: あく --- .../unit_tests/subghz/dickert_mahs.sub | 7 + .../unit_tests/subghz/dickert_raw.sub | 7 + .../unit_tests/tests/subghz/subghz_test.c | 15 + lib/subghz/protocols/dickert_mahs.c | 385 ++++++++++++++++++ lib/subghz/protocols/dickert_mahs.h | 120 ++++++ lib/subghz/protocols/protocol_items.c | 1 + lib/subghz/protocols/protocol_items.h | 1 + 7 files changed, 536 insertions(+) create mode 100644 applications/debug/unit_tests/resources/unit_tests/subghz/dickert_mahs.sub create mode 100644 applications/debug/unit_tests/resources/unit_tests/subghz/dickert_raw.sub create mode 100644 lib/subghz/protocols/dickert_mahs.c create mode 100644 lib/subghz/protocols/dickert_mahs.h diff --git a/applications/debug/unit_tests/resources/unit_tests/subghz/dickert_mahs.sub b/applications/debug/unit_tests/resources/unit_tests/subghz/dickert_mahs.sub new file mode 100644 index 00000000000..9737b71a69b --- /dev/null +++ b/applications/debug/unit_tests/resources/unit_tests/subghz/dickert_mahs.sub @@ -0,0 +1,7 @@ +Filetype: Flipper SubGhz Key File +Version: 1 +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: Dickert_MAHS +Bit: 36 +Key: 00 00 00 01 55 57 55 15 diff --git a/applications/debug/unit_tests/resources/unit_tests/subghz/dickert_raw.sub b/applications/debug/unit_tests/resources/unit_tests/subghz/dickert_raw.sub new file mode 100644 index 00000000000..544fc7a1d21 --- /dev/null +++ b/applications/debug/unit_tests/resources/unit_tests/subghz/dickert_raw.sub @@ -0,0 +1,7 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 112254 -62882 64 -8912 798 -844 416 -418 806 -850 396 -45206 440 -428 794 -442 804 -422 822 -810 414 -414 824 -832 412 -416 808 -848 376 -446 792 -846 382 -448 816 -828 410 -416 810 -844 382 -416 834 -818 410 -414 810 -856 408 -810 412 -836 384 -442 808 -814 402 -844 414 -834 378 -436 808 -844 396 -422 798 -844 416 -416 814 -404 812 -440 810 -842 396 -422 798 -840 414 -414 806 -850 398 -45210 450 -420 796 -436 780 -446 802 -848 380 -434 806 -846 400 -422 800 -840 410 -408 836 -812 414 -410 826 -840 378 -440 804 -848 396 -426 812 -810 426 -394 826 -844 414 -810 420 -834 378 -442 808 -832 412 -812 416 -830 410 -406 810 -844 400 -420 832 -810 414 -416 800 -446 798 -440 812 -808 426 -410 800 -836 412 -414 806 -836 412 -45216 450 -420 798 -434 806 -414 802 -846 382 -438 814 -832 410 -410 838 -834 396 -430 810 -842 394 -392 826 -840 414 -414 802 -850 396 -428 812 -842 394 -394 828 -842 414 -810 424 -812 392 -434 812 -844 398 -848 380 -844 408 -416 820 -810 414 -406 816 -836 412 -416 836 -414 816 -398 816 -840 420 -410 802 -844 416 -416 804 -824 410 -45232 446 -400 802 -442 810 -432 804 -842 396 -392 826 -842 410 -410 834 -818 378 -442 804 -854 406 -408 806 -838 408 -428 804 -844 396 -392 826 -840 410 -410 834 -810 414 -832 408 -834 380 -440 802 -826 410 -836 412 -838 396 -424 796 -842 414 -414 804 -848 396 -426 812 -412 814 -414 824 -832 410 -416 806 -848 382 -420 834 -814 422 -45228 416 -422 802 -446 810 -420 790 -846 382 -448 818 -828 408 -416 808 -848 382 -418 830 -816 410 -412 812 -856 410 -382 834 -846 382 -418 832 -818 408 -412 812 -856 408 -814 414 -838 396 -428 810 -808 424 -836 380 -844 404 -416 802 -840 424 -394 826 -840 414 -382 836 -412 822 -436 812 -806 424 -394 826 -844 416 -382 838 -816 402 -45228 438 -430 796 -444 806 -424 822 -810 412 -416 822 -832 412 -416 804 -844 408 -414 824 -812 412 -408 812 -834 410 -414 804 -848 408 -412 802 -840 424 -412 802 -834 412 -842 384 -848 396 -426 814 -808 424 -816 392 -866 382 -414 838 -816 414 -428 792 -846 380 -440 810 -438 812 -412 802 -846 380 -438 826 -840 380 -416 838 -814 404 -45226 450 -404 820 -408 806 -452 792 -848 382 -440 814 -832 410 -416 810 -846 378 -450 792 -846 380 -446 816 -830 410 -386 836 -846 376 -410 828 -846 380 -446 814 -828 410 -814 414 -836 396 -428 810 -842 394 -816 410 -836 406 -430 812 -810 426 -394 826 -838 +RAW_Data: 414 -414 808 -416 826 -438 814 -816 420 -414 834 -814 418 -418 808 -848 398 -45218 412 -438 824 -412 812 -418 832 -852 378 -446 782 -862 410 -386 838 -848 384 -420 836 -820 418 -414 814 -854 408 -388 838 -814 418 -422 836 -816 394 -434 812 -846 398 -850 380 -848 410 -418 822 -812 416 -850 368 -854 412 -418 810 -850 384 -422 834 -820 416 -414 812 -428 836 -412 804 -848 382 -450 818 -828 412 -418 808 -850 380 -45228 452 -420 798 -434 806 -416 834 -818 384 -440 810 -820 404 -420 834 -814 416 -418 834 -824 386 -442 810 -818 404 -420 834 -814 416 -418 834 -820 410 -414 810 -850 406 -812 414 -816 404 -420 818 -838 386 -848 394 -828 414 -414 838 -814 406 -420 820 -842 384 -446 794 -438 810 -412 802 -848 394 -432 812 -842 394 -392 830 -842 414 -105578 64 -1760 130 -196 130 -832 160 -128 62 -1278 194 -1316 230 -96 362 -64 64 -398 diff --git a/applications/debug/unit_tests/tests/subghz/subghz_test.c b/applications/debug/unit_tests/tests/subghz/subghz_test.c index 90e6d429b2e..ac14bce6a37 100644 --- a/applications/debug/unit_tests/tests/subghz/subghz_test.c +++ b/applications/debug/unit_tests/tests/subghz/subghz_test.c @@ -665,6 +665,13 @@ MU_TEST(subghz_decoder_mastercode_test) { "Test decoder " SUBGHZ_PROTOCOL_MASTERCODE_NAME " error\r\n"); } +MU_TEST(subghz_decoder_dickert_test) { + mu_assert( + subghz_decoder_test( + EXT_PATH("unit_tests/subghz/dickert_raw.sub"), SUBGHZ_PROTOCOL_DICKERT_MAHS_NAME), + "Test decoder " SUBGHZ_PROTOCOL_DICKERT_MAHS_NAME " error\r\n"); +} + //test encoders MU_TEST(subghz_encoder_princeton_test) { mu_assert( @@ -822,6 +829,12 @@ MU_TEST(subghz_encoder_mastercode_test) { "Test encoder " SUBGHZ_PROTOCOL_MASTERCODE_NAME " error\r\n"); } +MU_TEST(subghz_encoder_dickert_test) { + mu_assert( + subghz_encoder_test(EXT_PATH("unit_tests/subghz/dickert_mahs.sub")), + "Test encoder " SUBGHZ_PROTOCOL_DICKERT_MAHS_NAME " error\r\n"); +} + MU_TEST(subghz_random_test) { mu_assert(subghz_decode_random_test(TEST_RANDOM_DIR_NAME), "Random test error\r\n"); } @@ -873,6 +886,7 @@ MU_TEST_SUITE(subghz) { MU_RUN_TEST(subghz_decoder_nice_one_test); MU_RUN_TEST(subghz_decoder_kinggates_stylo4k_test); MU_RUN_TEST(subghz_decoder_mastercode_test); + MU_RUN_TEST(subghz_decoder_dickert_test); MU_RUN_TEST(subghz_encoder_princeton_test); MU_RUN_TEST(subghz_encoder_came_test); @@ -900,6 +914,7 @@ MU_TEST_SUITE(subghz) { MU_RUN_TEST(subghz_encoder_holtek_ht12x_test); MU_RUN_TEST(subghz_encoder_dooya_test); MU_RUN_TEST(subghz_encoder_mastercode_test); + MU_RUN_TEST(subghz_encoder_dickert_test); MU_RUN_TEST(subghz_random_test); subghz_test_deinit(); diff --git a/lib/subghz/protocols/dickert_mahs.c b/lib/subghz/protocols/dickert_mahs.c new file mode 100644 index 00000000000..4691e3423c2 --- /dev/null +++ b/lib/subghz/protocols/dickert_mahs.c @@ -0,0 +1,385 @@ +#include "dickert_mahs.h" + +#include "../blocks/const.h" +#include "../blocks/decoder.h" +#include "../blocks/encoder.h" +#include "../blocks/generic.h" +#include "../blocks/math.h" + +#include +#include +#include + +#define TAG "SubGhzProtocolDicketMAHS" + +static const SubGhzBlockConst subghz_protocol_dickert_mahs_const = { + .te_short = 400, + .te_long = 800, + .te_delta = 100, + .min_count_bit_for_found = 36, +}; + +struct SubGhzProtocolDecoderDickertMAHS { + SubGhzProtocolDecoderBase base; + + SubGhzBlockDecoder decoder; + SubGhzBlockGeneric generic; + + uint32_t tmp[2]; + uint8_t tmp_cnt; +}; + +struct SubGhzProtocolEncoderDickertMAHS { + SubGhzProtocolEncoderBase base; + + SubGhzProtocolBlockEncoder encoder; + SubGhzBlockGeneric generic; +}; + +typedef enum { + DickertMAHSDecoderStepReset = 0, + DickertMAHSDecoderStepInitial, + DickertMAHSDecoderStepRecording, +} DickertMAHSDecoderStep; + +const SubGhzProtocolDecoder subghz_protocol_dickert_mahs_decoder = { + .alloc = subghz_protocol_decoder_dickert_mahs_alloc, + .free = subghz_protocol_decoder_dickert_mahs_free, + + .feed = subghz_protocol_decoder_dickert_mahs_feed, + .reset = subghz_protocol_decoder_dickert_mahs_reset, + + .get_hash_data = subghz_protocol_decoder_dickert_mahs_get_hash_data, + .serialize = subghz_protocol_decoder_dickert_mahs_serialize, + .deserialize = subghz_protocol_decoder_dickert_mahs_deserialize, + .get_string = subghz_protocol_decoder_dickert_mahs_get_string, +}; + +const SubGhzProtocolEncoder subghz_protocol_dickert_mahs_encoder = { + .alloc = subghz_protocol_encoder_dickert_mahs_alloc, + .free = subghz_protocol_encoder_dickert_mahs_free, + + .deserialize = subghz_protocol_encoder_dickert_mahs_deserialize, + .stop = subghz_protocol_encoder_dickert_mahs_stop, + .yield = subghz_protocol_encoder_dickert_mahs_yield, +}; + +const SubGhzProtocol subghz_protocol_dickert_mahs = { + .name = SUBGHZ_PROTOCOL_DICKERT_MAHS_NAME, + .type = SubGhzProtocolTypeStatic, + .flag = SubGhzProtocolFlag_433 | SubGhzProtocolFlag_AM | SubGhzProtocolFlag_Decodable | + SubGhzProtocolFlag_Load | SubGhzProtocolFlag_Save | SubGhzProtocolFlag_Send, + + .decoder = &subghz_protocol_dickert_mahs_decoder, + .encoder = &subghz_protocol_dickert_mahs_encoder, +}; + +static void subghz_protocol_encoder_dickert_mahs_parse_buffer( + SubGhzProtocolDecoderDickertMAHS* instance, + FuriString* output) { + // We assume we have only decodes < 64 bit! + uint64_t data = instance->generic.data; + uint8_t bits[36] = {}; + + // Convert uint64_t into bit array + for(int i = 35; i >= 0; i--) { + if(data & 1) { + bits[i] = 1; + } + data >>= 1; + } + + // Decode symbols + FuriString* code = furi_string_alloc(); + for(size_t i = 0; i < 35; i += 2) { + uint8_t dip = (bits[i] << 1) + bits[i + 1]; + // PLUS = 3, // 0b11 + // ZERO = 1, // 0b01 + // MINUS = 0, // 0x00 + if(dip == 0x01) { + furi_string_cat(code, "0"); + } else if(dip == 0x00) { + furi_string_cat(code, "-"); + } else if(dip == 0x03) { + furi_string_cat(code, "+"); + } else { + furi_string_cat(code, "?"); + } + } + + FuriString* user_dips = furi_string_alloc(); + FuriString* fact_dips = furi_string_alloc(); + furi_string_set_n(user_dips, code, 0, 10); + furi_string_set_n(fact_dips, code, 10, 8); + + furi_string_cat_printf( + output, + "%s\r\n" + "User-Dips:\t%s\r\n" + "Fac-Code:\t%s\r\n", + instance->generic.protocol_name, + furi_string_get_cstr(user_dips), + furi_string_get_cstr(fact_dips)); + furi_string_free(user_dips); + furi_string_free(fact_dips); + furi_string_free(code); +} + +void* subghz_protocol_encoder_dickert_mahs_alloc(SubGhzEnvironment* environment) { + UNUSED(environment); + SubGhzProtocolEncoderDickertMAHS* instance = malloc(sizeof(SubGhzProtocolEncoderDickertMAHS)); + + instance->base.protocol = &subghz_protocol_dickert_mahs; + instance->generic.protocol_name = instance->base.protocol->name; + + instance->encoder.repeat = 10; + instance->encoder.size_upload = 128; + instance->encoder.upload = malloc(instance->encoder.size_upload * sizeof(LevelDuration)); + instance->encoder.is_running = false; + return instance; +} + +void subghz_protocol_encoder_dickert_mahs_free(void* context) { + furi_assert(context); + SubGhzProtocolEncoderDickertMAHS* instance = context; + free(instance->encoder.upload); + free(instance); +} + +/** + * Generating an upload from data. + * @param instance Pointer to a SubGhzProtocolEncoderDickertMAHS instance + * @return true On success + */ +static bool + subghz_protocol_encoder_dickert_mahs_get_upload(SubGhzProtocolEncoderDickertMAHS* instance) { + furi_assert(instance); + size_t index = 0; + size_t size_upload = (instance->generic.data_count_bit * 2) + 2; + if(size_upload > instance->encoder.size_upload) { + FURI_LOG_E(TAG, "Size upload exceeds allocated encoder buffer."); + return false; + } else { + instance->encoder.size_upload = size_upload; + } + + instance->encoder.upload[index++] = + level_duration_make(false, (uint32_t)subghz_protocol_dickert_mahs_const.te_short * 112); + // Send start bit + instance->encoder.upload[index++] = + level_duration_make(true, (uint32_t)subghz_protocol_dickert_mahs_const.te_short); + + //Send key data + for(uint8_t i = instance->generic.data_count_bit; i > 0; i--) { + if(bit_read(instance->generic.data, i - 1)) { + //send bit 1 + instance->encoder.upload[index++] = + level_duration_make(false, (uint32_t)subghz_protocol_dickert_mahs_const.te_long); + instance->encoder.upload[index++] = + level_duration_make(true, (uint32_t)subghz_protocol_dickert_mahs_const.te_short); + } else { + //send bit 0 + instance->encoder.upload[index++] = + level_duration_make(false, (uint32_t)subghz_protocol_dickert_mahs_const.te_short); + instance->encoder.upload[index++] = + level_duration_make(true, (uint32_t)subghz_protocol_dickert_mahs_const.te_long); + } + } + + return true; +} + +SubGhzProtocolStatus + subghz_protocol_encoder_dickert_mahs_deserialize(void* context, FlipperFormat* flipper_format) { + furi_assert(context); + SubGhzProtocolEncoderDickertMAHS* instance = context; + SubGhzProtocolStatus ret = SubGhzProtocolStatusError; + do { + ret = subghz_block_generic_deserialize(&instance->generic, flipper_format); + if(ret != SubGhzProtocolStatusOk) { + break; + } + + // Allow for longer keys (<) instead of != + if((instance->generic.data_count_bit < + subghz_protocol_dickert_mahs_const.min_count_bit_for_found)) { + FURI_LOG_E(TAG, "Wrong number of bits in key"); + ret = SubGhzProtocolStatusErrorValueBitCount; + break; + } + //optional parameter parameter + flipper_format_read_uint32( + flipper_format, "Repeat", (uint32_t*)&instance->encoder.repeat, 1); + + if(!subghz_protocol_encoder_dickert_mahs_get_upload(instance)) { + ret = SubGhzProtocolStatusErrorEncoderGetUpload; + break; + } + instance->encoder.is_running = true; + } while(false); + + return ret; +} + +void subghz_protocol_encoder_dickert_mahs_stop(void* context) { + SubGhzProtocolEncoderDickertMAHS* instance = context; + instance->encoder.is_running = false; +} + +LevelDuration subghz_protocol_encoder_dickert_mahs_yield(void* context) { + SubGhzProtocolEncoderDickertMAHS* instance = context; + + if(instance->encoder.repeat == 0 || !instance->encoder.is_running) { + instance->encoder.is_running = false; + return level_duration_reset(); + } + + LevelDuration ret = instance->encoder.upload[instance->encoder.front]; + + if(++instance->encoder.front == instance->encoder.size_upload) { + instance->encoder.repeat--; + instance->encoder.front = 0; + } + + return ret; +} + +void* subghz_protocol_decoder_dickert_mahs_alloc(SubGhzEnvironment* environment) { + UNUSED(environment); + SubGhzProtocolDecoderDickertMAHS* instance = malloc(sizeof(SubGhzProtocolDecoderDickertMAHS)); + instance->base.protocol = &subghz_protocol_dickert_mahs; + instance->generic.protocol_name = instance->base.protocol->name; + instance->tmp_cnt = 0; + + return instance; +} + +void subghz_protocol_decoder_dickert_mahs_free(void* context) { + furi_assert(context); + SubGhzProtocolDecoderDickertMAHS* instance = context; + free(instance); +} + +void subghz_protocol_decoder_dickert_mahs_reset(void* context) { + furi_assert(context); + SubGhzProtocolDecoderDickertMAHS* instance = context; + instance->decoder.parser_step = DickertMAHSDecoderStepReset; +} + +void subghz_protocol_decoder_dickert_mahs_feed(void* context, bool level, uint32_t duration) { + furi_assert(context); + SubGhzProtocolDecoderDickertMAHS* instance = context; + + switch(instance->decoder.parser_step) { + case DickertMAHSDecoderStepReset: + // Check if done + if(instance->decoder.decode_count_bit >= + subghz_protocol_dickert_mahs_const.min_count_bit_for_found) { + instance->generic.serial = 0x0; + instance->generic.btn = 0x0; + + instance->generic.data = instance->decoder.decode_data; + instance->generic.data_count_bit = instance->decoder.decode_count_bit; + + if(instance->base.callback) + instance->base.callback(&instance->base, instance->base.context); + + instance->decoder.decode_data = 0; + instance->decoder.decode_count_bit = 0; + } + + if((!level) && (duration > 10 * subghz_protocol_dickert_mahs_const.te_short)) { + //Found header DICKERT_MAHS + instance->decoder.parser_step = DickertMAHSDecoderStepInitial; + } + break; + case DickertMAHSDecoderStepInitial: + if(!level) { + break; + } else if( + DURATION_DIFF(duration, subghz_protocol_dickert_mahs_const.te_short) < + subghz_protocol_dickert_mahs_const.te_delta) { + //Found start bit DICKERT_MAHS + instance->decoder.parser_step = DickertMAHSDecoderStepRecording; + instance->decoder.decode_data = 0; + instance->decoder.decode_count_bit = 0; + } else { + instance->decoder.parser_step = DickertMAHSDecoderStepReset; + } + break; + case DickertMAHSDecoderStepRecording: + if((!level && instance->tmp_cnt == 0) || (level && instance->tmp_cnt == 1)) { + instance->tmp[instance->tmp_cnt] = duration; + + instance->tmp_cnt++; + + if(instance->tmp_cnt == 2) { + if(DURATION_DIFF(instance->tmp[0] + instance->tmp[1], 1200) < + subghz_protocol_dickert_mahs_const.te_delta) { + if(DURATION_DIFF(instance->tmp[0], subghz_protocol_dickert_mahs_const.te_long) < + subghz_protocol_dickert_mahs_const.te_delta) { + subghz_protocol_blocks_add_bit(&instance->decoder, 1); + } else if( + DURATION_DIFF( + instance->tmp[0], subghz_protocol_dickert_mahs_const.te_short) < + subghz_protocol_dickert_mahs_const.te_delta) { + subghz_protocol_blocks_add_bit(&instance->decoder, 0); + } + + instance->tmp_cnt = 0; + } else { + instance->tmp_cnt = 0; + instance->decoder.parser_step = DickertMAHSDecoderStepReset; + } + } + } else { + instance->tmp_cnt = 0; + instance->decoder.parser_step = DickertMAHSDecoderStepReset; + } + + break; + } +} + +uint8_t subghz_protocol_decoder_dickert_mahs_get_hash_data(void* context) { + furi_assert(context); + SubGhzProtocolDecoderDickertMAHS* instance = context; + return subghz_protocol_blocks_get_hash_data( + &instance->decoder, (instance->decoder.decode_count_bit / 8) + 1); +} + +SubGhzProtocolStatus subghz_protocol_decoder_dickert_mahs_serialize( + void* context, + FlipperFormat* flipper_format, + SubGhzRadioPreset* preset) { + furi_assert(context); + SubGhzProtocolDecoderDickertMAHS* instance = context; + return subghz_block_generic_serialize(&instance->generic, flipper_format, preset); +} + +SubGhzProtocolStatus + subghz_protocol_decoder_dickert_mahs_deserialize(void* context, FlipperFormat* flipper_format) { + furi_assert(context); + SubGhzProtocolDecoderDickertMAHS* instance = context; + SubGhzProtocolStatus ret = SubGhzProtocolStatusError; + do { + ret = subghz_block_generic_deserialize(&instance->generic, flipper_format); + if(ret != SubGhzProtocolStatusOk) { + break; + } + + // Allow for longer keys (<) instead of != + if((instance->generic.data_count_bit < + subghz_protocol_dickert_mahs_const.min_count_bit_for_found)) { + FURI_LOG_E(TAG, "Wrong number of bits in key"); + ret = SubGhzProtocolStatusErrorValueBitCount; + break; + } + } while(false); + return ret; +} + +void subghz_protocol_decoder_dickert_mahs_get_string(void* context, FuriString* output) { + furi_assert(context); + subghz_protocol_encoder_dickert_mahs_parse_buffer(context, output); +} diff --git a/lib/subghz/protocols/dickert_mahs.h b/lib/subghz/protocols/dickert_mahs.h new file mode 100644 index 00000000000..3f682cee096 --- /dev/null +++ b/lib/subghz/protocols/dickert_mahs.h @@ -0,0 +1,120 @@ +#pragma once + +#include "base.h" + +#define SUBGHZ_PROTOCOL_DICKERT_MAHS_NAME "Dickert_MAHS" + +typedef struct SubGhzProtocolDecoderDickertMAHS SubGhzProtocolDecoderDickertMAHS; +typedef struct SubGhzProtocolEncoderDickertMAHS SubGhzProtocolEncoderDickertMAHS; + +extern const SubGhzProtocolDecoder subghz_protocol_dickert_mahs_decoder; +extern const SubGhzProtocolEncoder subghz_protocol_dickert_mahs_encoder; +extern const SubGhzProtocol subghz_protocol_dickert_mahs; + +/** Allocate SubGhzProtocolEncoderDickertMAHS. + * + * @param environment Pointer to a SubGhzEnvironment instance + * + * @return pointer to a SubGhzProtocolEncoderDickertMAHS instance + */ +void* subghz_protocol_encoder_dickert_mahs_alloc(SubGhzEnvironment* environment); + +/** Free SubGhzProtocolEncoderDickertMAHS. + * + * @param context Pointer to a SubGhzProtocolEncoderDickertMAHS instance + */ +void subghz_protocol_encoder_dickert_mahs_free(void* context); + +/** Deserialize and generating an upload to send. + * + * @param context Pointer to a SubGhzProtocolEncoderDickertMAHS + * instance + * @param flipper_format Pointer to a FlipperFormat instance + * + * @return status + */ +SubGhzProtocolStatus + subghz_protocol_encoder_dickert_mahs_deserialize(void* context, FlipperFormat* flipper_format); + +/** Forced transmission stop. + * + * @param context Pointer to a SubGhzProtocolEncoderDickertMAHS instance + */ +void subghz_protocol_encoder_dickert_mahs_stop(void* context); + +/** Getting the level and duration of the upload to be loaded into DMA. + * + * @param context Pointer to a SubGhzProtocolEncoderDickertMAHS instance + * + * @return LevelDuration + */ +LevelDuration subghz_protocol_encoder_dickert_mahs_yield(void* context); + +/** Allocate SubGhzProtocolDecoderDickertMAHS. + * + * @param environment Pointer to a SubGhzEnvironment instance + * + * @return pointer to a SubGhzProtocolDecoderDickertMAHS instance + */ +void* subghz_protocol_decoder_dickert_mahs_alloc(SubGhzEnvironment* environment); + +/** Free SubGhzProtocolDecoderDickertMAHS. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS instance + */ +void subghz_protocol_decoder_dickert_mahs_free(void* context); + +/** Reset decoder SubGhzProtocolDecoderDickertMAHS. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS instance + */ +void subghz_protocol_decoder_dickert_mahs_reset(void* context); + +/** Parse a raw sequence of levels and durations received from the air. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS instance + * @param level Signal level true-high false-low + * @param duration Duration of this level in, us + */ +void subghz_protocol_decoder_dickert_mahs_feed(void* context, bool level, uint32_t duration); + +/** Getting the hash sum of the last randomly received parcel. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS instance + * + * @return hash Hash sum + */ +uint8_t subghz_protocol_decoder_dickert_mahs_get_hash_data(void* context); + +/** Serialize data SubGhzProtocolDecoderDickertMAHS. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS + * instance + * @param flipper_format Pointer to a FlipperFormat instance + * @param preset The modulation on which the signal was received, + * SubGhzRadioPreset + * + * @return status + */ +SubGhzProtocolStatus subghz_protocol_decoder_dickert_mahs_serialize( + void* context, + FlipperFormat* flipper_format, + SubGhzRadioPreset* preset); + +/** Deserialize data SubGhzProtocolDecoderDickertMAHS. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS + * instance + * @param flipper_format Pointer to a FlipperFormat instance + * + * @return status + */ +SubGhzProtocolStatus + subghz_protocol_decoder_dickert_mahs_deserialize(void* context, FlipperFormat* flipper_format); + +/** Getting a textual representation of the received data. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS instance + * @param output Resulting text + */ +void subghz_protocol_decoder_dickert_mahs_get_string(void* context, FuriString* output); diff --git a/lib/subghz/protocols/protocol_items.c b/lib/subghz/protocols/protocol_items.c index e50d52ac1d3..0d9c2a088bc 100644 --- a/lib/subghz/protocols/protocol_items.c +++ b/lib/subghz/protocols/protocol_items.c @@ -44,6 +44,7 @@ const SubGhzProtocol* subghz_protocol_registry_items[] = { &subghz_protocol_kinggates_stylo_4k, &subghz_protocol_bin_raw, &subghz_protocol_mastercode, + &subghz_protocol_dickert_mahs, }; const SubGhzProtocolRegistry subghz_protocol_registry = { diff --git a/lib/subghz/protocols/protocol_items.h b/lib/subghz/protocols/protocol_items.h index c5a090e993d..ae531c3f9b6 100644 --- a/lib/subghz/protocols/protocol_items.h +++ b/lib/subghz/protocols/protocol_items.h @@ -45,3 +45,4 @@ #include "kinggates_stylo_4k.h" #include "bin_raw.h" #include "mastercode.h" +#include "dickert_mahs.h"

v_>NZW%*F+k#reUTh#p91#GP+tYT;L#a)0sXqNsQu{u%8#jxIj4GQaZ8 zzdfFfGr6bdcopp?hinY*ab2P!$@hNJNQR<=Ghw+jQC3dJrO35gfbYBr%*`uCW;#(Z zjg)*mc5;B7uY(XEUCa~Oa03Cz1b>;Mjo_0yv~?B+&HP71x5!$Qc0crN{iTW+Xfmb>-DF1$RX*^yb=dz>%L}yx zM}Y4Qb=w{96h#dp`2;qr4BRhnT(qH(kfwU{uC`mFoEE={CE=3kh95O%GeT5=DAo07 zAXp!qxWw+gr1|#9L84Rc@8vdMp0Fb^#|Lcvb%ZkUA_V|;c&dBuK~TbK>J{AX2k#i N002ovPDHLkV1hmXUM2tl literal 4775 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 U`qrQ19t(hl=`oX1Bag`c1AMVsMF0Q* diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_14.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_14.png index f4f6ccd661ebca010fcfe407427402ee65958efc..741e4b58fabe01b3a8808d2bcb10f53f66631a19 100644 GIT binary patch delta 718 zcmV;<0x|vaB-#a#7=Hl(0002`twPcO00N;&L_t(|oVAcai(6$BhM(`;Ozs6GiFLq? z4($yHy39%nmgW{+6j$Rya3M6i5k$<=h11+=LEW`GUCH1N5J3?aL+1-qtRQGW7cO)r zmSO@{y<^n5Gv3_SMJBcWfS%Pk?>X<`<$(uP(f_6xh5*(1%6|YdIKv7JU@mOIR;szv z00?uE-E?muxVTyMt<&o>XkcV4-Qbvr=9A=vXcjrG|-@xg8QZ2FXv%2`W6S#n&bgG%04P; z5Vi6%1rTU6zke8J5DlicBuVADybTZq<4ls2l^ZD-GauDrfcKm}2dF&vjdmp!9i58- zf~)(=0Vi#*LgggF{ZNB_ozym9g!k=g3xrH2o5{R0{rcv;1NWU|R=+-v{VGP|i)066#< zc$^O`E|PrllU6b{Oq=YJQy7j5Y7k literal 4722 zcmaJ_c{o(<`#*L=#AK(8L8~!l7|ew1OOc&Xlrd(kVH7r-dhJo*@8K zx|Fk(&n}G~18csCh~lyl5aiD`v~CXV=Q7NR`j&UR+C}SD)P-nkd(~f(!$r@o z17sWZ4CV(PP5hqk4xlX})G(hU<4p~l+viG16cIJ{2bo3j?3>C5kzLSSBFjxPc6_=1aiQI>bVbx$zZ{ zSE>n>XKgHJ3buQWG++*{V*`BSun7k>9f9BsZMhBrqRI^D968j<0x@REQ|N0LExt^N zs5WE*8rxGk)6VrN3RI``i1{rojDC~)_R8~#Hct2i9}zSG%}&dbK4dt>V%&8A0K_(X zoAy-CBussu82e6~@|<6JlfUP&K!$2aEspHf#xS!2eCNC82QN=f4zN&Km>&Bycobg* z25kV>kxd81AyD20uAYF+Xu9f-=8@dHX02+6CAhe`=VYDk)+vlfYwRnIkw>G0))?Hq zp@0S8N~UH;Sz|%i?iHMuZ@ER>R6DCS!fSm>daoto`fl8b-fv1z?BxV+En;t0n?X%l z=r1f1b*0);zJaH&BNru8cR@*hJV5CU)5i19Ii9t9HU|A-Vvgp;_W1&uLCdfhG44cw z&qWDIUk8AshRt}*Q%pc-TH!bV)cz2$e~>I}{FV~{bn`+^KGxzm&?HdW$eZ1CxVBN4 z8ON@xc|fL7jZd3>B3Od!u1Knus8u886YI0bEMj^5nPYsFO$b$ zl}POk5UW-z=OLUFCW_xF?h~|&Q#d1z6^b)dx*c2ynT`@LhrVg`E@Up&c29ILlwN{) z3!r1|HMbImS|P|=JGW{L5Xm7G<}4qWeKcP@kQBT1Hjmm%Q#$AnoSN^^D^__#J@|Qk zQSZ4QJ~ZIktvGyeFM^jC^BHF!6RGET6DxMKMF>BMMcKro@Q1M~zJlV7xwv^w8RqEV zL$jQh!uei#h9)E!V2!al4`gShE5S9KwxFCse8kRhzlvQVRs&n?^d=u85s?dt?*MQ|x3 zEwL)$V1nuG?Y7qwRRWkdQQwR~`7#!T$>6gn!kJ0ddv}o98F?k3ePaU&-Okoqt!~`BT_uWCH-JJ*&2It?PQ=};yZ8(CdDQt zC}pa|%9?6@rk`HIZS~Ol;KNHc*Y4|EKQ$XK27M5E*k63u`em_ld6$KsMZ8(J`Q?K8 z%e$dlc%F(I5&C&I3=6FARc}ROrG(xh35!_m0dE_Y899%16Q_$6o3qBgY}?|#@TbKY}8 zb2EeUK9n5I9J!oT3<C^0^xdRHM)}iK$qjl|99Wff}gsrY=7LB(W%y$CrMAqN0hmNS%O9u@EWdw2T zsf$~TFOGR}ddU5`x35d7yQhUGem1K* zxVoe|#6NOFZ!rx_J0t^|yE)PPsagHzIF)(IGgC2pBGW3BhA*ES&VM2NeY&eX*H6t3 zWtR}B8j%i8t2i?m2GKTyib&Ms_*kw5oBs{ik>KX`-SwfiH+{S*V69KS3bkg$=S)-1r|JRsgG9{im zmBcea|4w=*o)r0ReL{MZx;!N48DZR8P-#(a#w%nDe{jnGqR2)6YQs9i3m+6mhhHO+z*8o^7&|F`nRNCm?QVek zYFuY!=etf86b?0avEzB^(9&Jyg0+C0>kjQUyJZin>OUVH9BBCBcXgRJ?6BbJuk*>X zwa-rZ+j`XLU0e0)`xW{nUd&0nrr~?gmudq)(>J;CSMOcrSks%Iai@_zhaWXGRDehp z%CScbF_g)yVDezrT&CYM%7v4>ue2tcj*Z+8ygF|7<8IgM;n$rb8P}^;IcE&%r}{7r zKBce%Ql9$Vy7?b51v!T=9X6=1+7FsXjN^S;Q1Q08c{#_`7dIzDlg5jji*j?$pHcsi zF-%`K-pTNAFn6eP(do`TBTV~cTy=T9ZTag|yu(5*Wd*wKG$dPfu1vjL-5`jvJ7)Ok zB6)_e-acomR!&M#t{gb_eHqL6Nz8$@}jk$NCI94Em+@ zrDNlBBqhap#OjuuyOPF=DvAzuzYDV2r_WFyPL1q-+dkKg-TAb@y&2uzP);vi_MU%O z{0P$`-6C1rMOR8j^>`(a_<(trKrbrU1KV6ZwI~}zPufb zmgQ%hDn)5}Sehl7Nb|#a696q|vJ(MfM8dfcEC@Jf`js|<8UV1|aI?bFuqMVBJeeeq z`;C$JCs7#E0HAippMt}C5NHr5f{UA%I&}VJ0~F%stPZtBnJAc0bO^3)h5_CL%YgG% z_y7+)+8KIA1ES`SVJILGXgG*J$VAUb4k z0z^d~3BxNWC_q%u@(3qo6ix;0q$CGHDj<6|X{6Mxj*y==pE*+9)JiM+L2? ztg3@RAoO&#(P$-YJ#8dPTM>amsA~O@HS(g;a9()AAKPvW+yBVw{!dwqjyC~EBYRts z$)0}-!OWFRBU4?;6bMpL9tAmWg2TIc{idAwy-R-wtxNEB^CdXzdy`3!ztW6x`!6mi z5m0C}0fB?zRdEV1B^87-46TGj!4O16Jeq)0AmUY!(0}Be|08{WS1N)F<|4~VQNR0CQJ^i;e7>j?K zi{QoRC~rpV*rDnBjJESMGq%!WjQjih+uPgI)6*Uv9wj9uF)=aP+S<&_%v)PqTwGkd zyu1v|&dyF%RTUc>+wSfz3k!>+q@1tW|56;?s_7Xtw(M*_KeFa0onw^5oJNsvD z=d@poulwA1PCwE2yzPrGX{RFgmd!7LYQe5_(Eg3!gDkYsf;np%IBE=%n>iEB7bW8O zcHC4jsG}~n(bh%8%4{KeGtvKQ0Qfe!DwyL;!P4@mog*tNs|5S9JuIpw6xt{^jsWJs ze3CEIxf12-v0~xn{8(UMqZ!9mU&$moVnt=213&&%KrCBmQnwhN`8=8?lUFUzPs|RY zQpe-KkM(cbN0EFtNJy#ISQ}0;SuNh`^cjNHc(Pt8@=4F4%csoShxL!KUtZBX{#ISH zwQM-DUav>uWTA93cyvSePHr48c((t28uUg)8o7#xsUB#5C-JNI+OQ;jLgwDx4gL~~ zpHt&cSaw<#{UM^MS8ykvH(N6guN|z4T>Sp}$XaAp*2|%bS;9UNEv)I>s$GE}!J%8c z)X?43n8-!DkkP>L`xT0yZ0ZWXS^rc8>xJxudr`uWQ3N`yQLuMta=r6?_v+HzOGVIu z*>njXjTcHGOyjD0ucB}wEjW8gVe6abr@x+O=4TVS5!^}F6LFNk`9&z*>v9q6&y6rO zt|qJ3UXremM(;A?K)sb)9@nRcua-GKwDHZP7z+fejJBHe7-_PG#708H$WQyu@g>O8 z=Qutvqr$ZW*ybvun@9S~$ci=z-@4@>)VkaDe%e%WWT>U)LZW53?opXzY7u934!B{A zc2Y8$FO&?NUJ1Cfb%4ZWGGW{S%b-R6dhH%oxtmTW&HHol?D}_#49lFwde_pTtj-~j z%6S4KUweAB9w>6d%vAI$;ct~(RW2y!50YK_6IR2f_s!Qtu*=48ASYU$;VoHbf6%XL zb_Hn09!bWh8_VI#jNt339NxMHQg%FMD#wK$nUt+ZU~FP+v&tto9sw-Cse5zsUq<3DoT-!19{{ZNmPJ;jd diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_15.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_15.png index 5dc1a652563722b09ff28efbf1ba62efb97e79a8..c725d6a71f303bb6552e52eb7be118fddab382fc 100644 GIT binary patch delta 743 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 diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_16.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_16.png index bec472921c88739c9ca5d1290680fe4b1d0f1cf6..4bc14bdc94e41c1e91707d424f707fd7186e14c2 100644 GIT binary patch delta 705 zcmV;y0zUnpB+Uho7=Hl(0002`twPcO00NXrL_t(|oSl-ti&R$}#XtAHxBD(AGh?t= zQJk?#APG(pRB)Ub*=8y+g`I_!8%Q9giiE^@D%ScZh&EQKQiuq9hd@LG6%@1x?px8s z5VG^sjd^R{dnd)bnKiAa`hG9xeDC@GfcHcsNt4h5Z~!3LB!4(bW91d21-BF8gmZwK zNY?TF`@Xm|t8uO2$(r$Cv#5z7VE6RF?7fHoYWdO3fF&WSZ7rIBL2HMzY zyf!%eyvRUOmSQ)y?QC5-UPc?`&}?^$!n^JDf0D@LCXn8 zd4K_TRQg#`-hWg2V_pNdCu`xrZmX_BtdZAPh0Eks)9f&gUqM{SSh10#uiQnz#6w@CZPsaf1R$fX7=nA zbxg3y=zL;8FE%%LXgm~sx9FQHqt#WZfDo3h&LoGPbbqkHM{6zW^1T=i9=;WayG}tK z8W;i3ij-u_g#@ax7Ss&y;Pfwc^zPm8_r;-*B&8TB=FPqU=I4G(r;In>;aQk_G;PML z-Jop;<$a>+B)P(`VGF{I$zS#ZSchQg=46qx+cn)v5Z(P^MV1{W6QCIbp3jXXVg#Hx z0j`}rhJT^T`otT}?$;8ArLo6U+Xd$NFiP|~`5w;H`gkM-DUt66QVA{ljd4#L&aW1B zWQ|tB25p5jmQTGrzyHirV{J^|ouk!1&<`^jOuMQu6qfmKYfTk;EiKp94Y2deab5q; zY=peB$xq}i58lq-e0wLhESaO9ngy(>u{BSDg*vbPUzitrds>mCW&M8nIw6CVZ8Uh< n06sqEVdG&nzf$^RxugF8v{gSi_X+%w00000NkvXXu0mjfRufdU literal 4639 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 diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_17.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_17.png index 82e5176c89130ca2f5def41a7b5888fcfe921d8d..4e4fa0e52b5f9885282673872922fff352fbeda2 100644 GIT binary patch delta 188 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 YnPB0-mm!6Y0yuz;)gj9wbI)`C0T05Vk^lez diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_18.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_18.png index 3b5e60dfdb933468706d6c1749f1cc2e862b544a..f7302372b42ebd07daf497482018bf95eff865e0 100644 GIT binary patch delta 235 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 It^-0~g4l_TT>t<8 literal 4664 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 U-yOBsn5_<&7@apP)^`d2KOwkMcK`qY diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_2.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_2.png index 84d6aaf3533941c61a9f82147f1bd62f5b17b52b..ffc82fd6f234de70c7c0f46b0e224ca08ddb5536 100644 GIT binary patch delta 813 zcmV+|1JeAlCAbEV7=Hl(0002`twPcO00RF>L_t(|oUM}2YaL}6g`e-8ulG)qYclZ% zO(EJ5L`7111)(V>W}qTjNtS|QVwD&-5{f%(Gg=DmLWo&)V@**+QAiaRDN^niQ$>Zs zMM^EDG!s(1HN=~Vf#$}{%4)=i!{ifdl`a29y6fpMR${tKM@VQJsUT=fTHE zfH>tAoF@nX0hlokD)`(520AXrOJ4kl1uS5O7Z=`Wj_=<1lHj(G%8#c8qOfj*wu(ka4mnOEhOzYZ z6xv>M7_-uydw&CTF52gK=0iW3Wq;E25+{Ew5IxKiFeYVQSzfpRs{ZE11c?0Lz zy7CM1#a19-V%86s&f$dnW&kXqtu1LrJK@fJ2c5=(cV-7nKnn2gT~H9hvKH{cy~>== zp%d*XaTO4hKxR(9x3RB6w3E024}0Yc&Wr+RK6$e_a(_hRnLXbxs;Y>$`#?wt*ZK9_ zqhe4U*_`bytD4!_NmV7X(cxEnkBLd2xN3>4xOW=Qjh*(P=lL;pS%wz}T$}cV6GPVt zy;%0fFUgS?D9EQvah9iY$?GY-@?CkYX1*Cu8u3}Mw(Iks`u4fymwN*uW0Y-k(z~2g z?;L%+3x5!Kzg+2iF&eCIK48RHV@m(Xhkx}9>4i_HdQTHOxu3Q=mqwCCYE*vwE*??-xxBAf@!*FG3<`0R93NW<*3IbFB0(A5!JPD|!#A?WPtk7BVKzOJH ztYBg+haJM-BoVg&{6HPTo3!9(G=?}!5kAAkOtAnZ-y24#yA%z{V{of2EJKUmQbf#$ rcqTS+u=RU$URzpBu4%rv*028pc1k@6Z);Id00000NkvXXu0mjf*u;U! literal 4785 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 diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_20.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_20.png index 2f8394fd5185736cbc37b773ae64a7b76fef5f1e..99dbc3e084e685b84223ad9760ef8d8a7af33d6c 100644 GIT binary patch delta 827 zcmV-B1H}BRCB_Dj7=Hl(0002`twPcO00Rw4L_t(|oUM}2YaC@9#y{^n)7?qCn28>` zV$vNiDy5|>2#uI#r|2OUwRb_|4{E*GwJ08}?%PN(9t7 zEi49*hsSkA2&->y*)uPHps3=Co^{qJsu!Jf^^LE9N#K$kbk(#*^)lmdFGaM)!$G zV`g<`C8O|agnv?Zi>Wi0kNr1tKj#i#13Zi~GhBAa`;@OhEQF%0HKvLz49&BzQ=)mM_qzUfQ(_PqN3bgdx=D2a${4wr1>g+o4} zQo^>Hbbqcz<;^pX3;Qn`EjlfMSX;kEJJzzh+?ZaJE!4 zsWfDy`2hs_6t0XG9Xl(FXB8ycrySRjmzNbMLXoevA4Wnl@(*RcaT$8kJ1PJG002ovPDHLk FV1fb*h5i5l literal 4779 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 literal 4793 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 A&;S4c literal 4815 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 diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_5.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_5.png index 7f980f57f8a6c7e10c63406770e7abfad0f3d1a7..61e2d1981b38b12cf98250d43cd908e9d8a91ef1 100644 GIT binary patch delta 814 zcmV+}1JV4?4Y>x87=Hl(0002`twPcO00RI?L_t(|oVAkAYaL}2hM(`umphXtnn|g& zg~W{DLb|ZGRcMgvog&x>f&n+;rnjYFLBv$u6x;gM;zCrAF0|0nq$nt;B#4W;2!7F^ zU5H7cVzK!#X~A1+N$yR++?cs@TqO7(cy{mMftME^_`fcKN`LlWN=T>Kqj?!3A_Q=C zN(7EL1_WTl9EER**mxMYKZOqWpxq=U2Fv4af$EcWVhnMkZSTREqh0Mg8=szx>kxCk zC%-U%>E@chLm2@RHS%-u@U->MPzU0Gw#KfdC%(=pQAK<+bOoIlFIcL`X=<<>V9tOn zcrbqj1h(VUK8WOJbL|Dlq-a7r&ju)yh+4ztv3k2`-K!hTW|lic;JZ0n1(Ee;93H-rNhaVCn zh5kNOZGX4bT5)@IzEDz|9{eOZDW<;rc}r@=zggQqY9i=qhU)X2z{TdzZzAFBEBi?T zCp+DXW_gZ+*6c->x9Tz(^puVagjt1iQC4%8z}oJQKj`mr3-3P{lNzh6n=i|gweLj_sj3j)Na(lve_wOKHWEBiWUQtzDSZ^AP&<1}~2Om1rtFYB*P6WR6gJlRv zOlz*PqJ=K?=0sSfpxAKQ83hqjDz0xh+b~9qw0{9(S%E@7s3#&=O}m=9ra#tBLn6np zdf-mc2j24wIze63d(|<(#dVO!d(m6VMFn~)y zRXOWW3gM27bw)-(Q+ffzWW zVQM?$1X-ETPKU@x)@88O0rX*5hL=FHfu^&XKkE>^gN-7QiT+6MY|oaiQ`t7dHV4pk z5mhduLuxx~FqWSwE9}1SjQ-;|jxWaBkUl`Cy{acyuYZNzMrul4RR`8_vj#N7E2@9Y z^+xkd8p6`YldVfZ1&EAkXG7NaN@S;TJdfZ9AzocX@3I}`GKaJdrgB^8@MjJ%d9Cz@ zQ61x7*A+W}%LHbIPAx_ospzmIZx*T9wJhuCs~Oai6P+7cVv(7|d7k?QL6hkbDN{(Q zjDXA~GJid$dyh;H{aMnYj|ZrzWNIhnpLTD%NAdEFtAg>4Sd;bH4t zH~KZu=(A`#M$_jsQRg$zC4i~xlhKGy@+KpYkuy~Sq|tX8eqrm&Annb}hN7t+vfkpY z8l`gh)-B0{)y&;taE-V6LC7?oI8X~{Lv}~X*MBHE0OPSbD(>3cgyT)=n#pOv!{oARdQ zpnuSPLG@a@V3ntiEvh_e20&h-Xb+CAJyFV>8Zl>jXu9b6KeO}Vq%PYx68%#Rvc&n9 zh9A|kQ6Hse-LZQ!eqQzU^eMxf+*S|y}a}~ z0d`muMKhZ5*#4+O|NZ%JUIwAHN%OFtXn!e&lnM5JKTT()?@V87uP8ca8}a?P23CwN z`I!4`R0l17uQXIK&F}p=+aEhi@z#sXOX8c}JhAS+GL{(mwoTY56SCxMH&3M7qs3P#TsZ`M&GhZrGqfQ%;V zdk|fi>{Er7abDMT?KHfkv49>(_0Y2Q8Ci%Eb!nLWjM(icTmz+$&Y>~U@N~C~0M&WI z36}h>6O{gXxUTb)kTt8qy92F3%O;(c{C0nE5E+0?J#6$xb)HG%li7li$A9QQl?AkX zmXG>}B6oW9q~WG??CKOXt<$JxPUKZ$e)x1Apk0r4{cS;?Brp zO2AGXymLeOswi* zdR2ty0H~*V8)G_uc0?j~hZC?;qVx{{YB1Bc{%Al|KLg002ovPDHLkV1nXpQ8EAk diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_6.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_6.png index 497136000858840374438aa4481a4f3fd1a9a368..1c6402ceccb10802d72a865fa504a5a0150029ae 100644 GIT binary patch delta 763 zcmV1x4T%t%p0;H>OBtpC=QY1~dlF|h=xD1lTeMXUDgoIrNP<(p? zWJiR%O$_+Vt#>HShWr4gntA5cNb}CX{}s|PYdld0<-QdUM}N5z5pP10j#?;?WRut9 z&Z8t8DS*`oAPy=cAP`rOdNk!9D>jy{HIT14mk|P?lxGiZrE`#WuZ;koh1ILp-x9aS z3|hwCbi*5L5Qfs6GjyX4Mgn|O*p=fnlaiWV1SnC&|j0kwQ(_{rq! zrHSRsbMt0~aJ@R~-S+*AG>uzUnKa555$=Opk>buDlRQ*@? zZ-pxx-dDW}bx{_In?(?wuYJ5;^jJ5Q$QHIDNn0#8hwOq`@x>pFm)f(_g*r2HcWQ-g*_BIag>gTk)n2=3QaNn?81^^-q4+fQEE_A{90)*} zqGM)e_R#<;Amx!VL`(nOauzIBg&Y!q z=>$?eu-lf9f+Lrjb+jpsK}?207{4VRu)J5ZJ9L(tO|~0|0)qtQFIWOhDRUprFoYK) z50vKz<1rGif%3LPdCWG9H+Mi<=1?w?gp}sr#}e`k<#UU`k8c5s-V(~TivzrkRgCE2 t0H4Jjd~j_F^-~A39gO_4U3-w6(fTxJm1X`6XUVhJQb+~oE=j$<5e{963EdjW6Ui?;#% za=Z=Tm*a8w0(LOQXZmuU=hOEpNV?~Fmh-q1FXsUeC5|zUF@MIBGUWFPXv&|we+pm& z*x9rc-`mXx|#0tP!N<98De|W09=; zzoRl>d1p^^Ms6ts7$374#YS##wS06lk!#fi-jV%lh=2G*Yh{(W8X4Lf$>t6Z&!Tq} zx6_-~_-abHsz=YtX7^sgs*Ef{+u6Gt0<7`}t!2^0Wfgg62tcsAFU{!Dgc{}JCV@!u z63u5zEC$&Ua)$>yH=BqeNheaZX!O@HZB;u81b;^6tsdYw-iE-SBhE*l?*bUt{#HH*P4V5bYrhP-BNzA%STCB^vi9o3(*921 zTlt?r8bntcLCOHo^6swFU%|6O302+JO0;_bwyl}DZDe^Ozh^t6S+K41Dx?hnT`Y1M zGl}Io*BX~;ELramw15PB!_(u0DpO2aZgco7g2E)oW-MB5Z*ZLE z)Q=AXV3Qtcu~AN-U1C_4zay}!WHW2Xa*VYv%M+q}S1{g8j(@C+L1B%Llw#d;w!I<4{l-w4_Ps$9$By=PjeU@bliHjH?udj0H;xf&04lNQ(- z*0S)O%o^oiJ#Ipd_4df_wJQgBDg!gg&N>e<0?XQwWYYSL1sm?Pd7g)2*2f+&W}YT% zIq#7@ajampg~@qx(H5OdUjQvty=R%yRevf$+gp_UX4Yaolk?mVAhGM7y?N_%%?Ki+ zK-XA7>%JF$jfttB(h?E_>OJP{{LJ8gm5?;byoe)c)Sd!=C|#E3jrdOL=W z&UN1h7{mS>z6h%zkhralL*2UtL?G2X_ zlp4YTQ~@3lCPS8p;=MMWSz88-0)H4RaBl$u|g#}7_$ceooQL5yD?kfwl ztn@&=7S5K1jO)*!$^g6hSxK=4MlNjGCqezA$V@+=6BRBH#je42uQS^_2tz=%yMLn> zY*+|8f!R~fX8t?4;&fHSakRlSpYQNN*Q^@A8tc1pXBX@$R2n-2q^$j70Ds-FzFOhm z#dx%JzQQ3>UklF&HPf-HG=?ru(m@xc$@EANX!9R)LAyW_546jdMYXc3PbYIvBF9v( zXY&11seBaGA*Lh7X72_pT3;?7=*V+Ahfb{OZn?|;?HuxqW7U%C}Mzpp_1`EpEGCXaf9j#D22BR(TjRo&dfKk_=a%bu7ZG>QdB5FBJ*ru4d2V zjf}VUvf~BdH-b>NuZ_!83>^xwaHsOMIjll=ask%>w9}6)<}TNNH+FLfDPu;l*$(Sp XQXco+Y$c>T00000NkvXXu0mjfM{)#M diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_7.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_7.png index 03d67134aacbae8d562009acb4482172150a1019..37ea651abd782a61b7f62c86a427bd6bc12fec22 100644 GIT binary patch delta 727 zcmV;|0x13RB;y5;7=Hl(0002`twPcO00OE>L_t(|oSl{= z*~$Zay6dOgM;td|Pub1}$D}TUfaOELJ^vm4h2?4rF-F0{2LP1cW|TnOSn9o8>o@KB zU+G{_4=&shPh@#|kphDg$@b-%aJa*m6nu25b&!XuTq(;u^rD;ni6m*H(b){#U!7sy zm!wen_c(}Fq<=3YRecp7S51h{mhB1%v{??q0-{k7N|I{I4j5c4CIH;$ofR;q9uk0U z^eI5&k|&TpbHowKs@U;=POs{Dgv1PSr1+Uv{T}K zkZ{2XKkK!9_gM!Tzv2(iyf_}pE}Z@YLKV=i_0(v={C}&f^vg-yWq-r{TvY_u-_3!b z2G-j_W~Z;d2Tq?Gz@2GfU+OY!?56;n;e80dI&#W-FLh{qrZ@y1ULOi~?dv1pzjFaB zF5Eo^-o~@EaBCfamNxHwM#l#AE&#(~l<^@ySpp4!O_v&QU>QE`&$TF?q&AGLo5LKS zQ9SZ8PJfY4qNJSxo;8e+5ffHdA?lPrV%np~Ad4Z+S_d+7Bq@#vlJsA5Eb>g4^Jabp zZ8TFn5n)ge`X0;ECM5Pc{1OrQeQwulP+3ez4dR`(%qmv7YZ+;@MUtLR8znIU-a6S= zt=rOGa}A6|EJwtU6M*sbgZ+Y zv{c|!k_0OlyMF$|9{w&d27CF;QJzMA117ibwe-8BTKaRRtH;sLGdJeNKiL2P002ov JPDHLkV1nBBQf2@E literal 4722 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 LY)vbTPsRQpgF-@k diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_8.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_8.png index 9f523caceed6287320d581b76312d2036b6ad27e..5fdf6365dfd9759f95b169dc201b84d35ffd461d 100644 GIT binary patch delta 716 zcmV;-0yF*lB-jOz7=Hl(0002`twPcO00N&$L_t(|oSlI{eW%raM+T1z@`4p0 zZbo)+cEgQU4>=wrjxx==N2Df)fQbXZoPCBnKT(Y!LGXOC20-~Vrv#Gl#OznK{;31^ znrQ^;?xi=%r+Hy7;}JNPtx?+X5&Ylp{lC(wLh7I`D=Qq z?x?CpT0F-_Tw;=L73reFK89vJZrQ&mkPA z0Mfe^IDdKw5q)6cT1Y%y{(-QD&mm7B$*B=z$!xGm44GvQ#+ZtV^mcKR#ak_lB_;|y zk(-543o_YN_bMiKo0z(n>OhuFPeYRRUM>}vOdvTnULms=Y*><@z_;Tat#wOv(CUFO zh7>3X6a*lAwzKJ}8AIKTD-Pkk6hBfCu$RxOLq)i5=FXTCh-ooid4wNK)>e>so{EMW6bb%O;sUmqWEDBh|omKTUX9{ z09asW`Uf+fYHov`&;T}o-mQ2@q+#S&c!jyV9RP^~hM^*pe4toMpi$AfaUamQA9!l@ z!i5(|000UzPzMS;;s<7a8fkC>y#?_D;y`bXQ~?;c1p-oz8XjWPdJQ<)gjy=F)w~6= z3bmk$95uzD5QkEfAzMflC*XVAK2}i62?$BiQD_Aq7&bsxW^Wri#F#w`(N#TMaDjfU z91j9&S`yomPj@NpD^L6&;kUFfJbG~SE#;XGLHw8ynP&`|o}4DP7eC2v+`b0@BsMy0 zcQKl=lM`bj6XZ$C{LlKFU5^DCRO8^{&~D{THV#0@v}3;S!uWU(JG}w))Ti2`;4IK* z3tSx9a8&B&$vVUPAz&k#iP_eY$;>uyRFjtC<>Q+@?3`VN_!h14OKF5Q938yM;_mhb zEC82MwNi>|a>I8n5j=g1EpJb@aOfaC*Cyq58?Ig1xqYm2RQcIC1<|NQ`y1uvP?HAc zE6X^&gH4H}B2!mTi?T^OJn??~Kw*SgjcFbtXpQL@jx(3(F@$xCVM3!*sh)_u_62m_^EOIV%nl8@ev_JFh z{>lg*4(&$pUcy0Kq_FetUT8a5JmoeAlz>;h6Osp+iri-bt#9+J$SvJiema)g^mPpUJfskk z99I@A7;AQCtLfcX**;u-gwv_s$qm zvwY3rR@V#mD*L1!Zc7u>ZOMb>c7I59b9Gz02%ln9@C=5_=qG_!!%*fdfbc1MZra?eF1%M`kZII zX2oWw`{sS<8Cn?%87nv{Zq0|MLZ!l@;#x(&Psb09kHl%_6wgZYion!hr{N0qXYPvl zkNKYYPFYoiGFT<{00oI5F0{rHzkA$uEAL#mI`UAs!;VBidKnkNa{-pY~f5YNm?tsYpY?)v|X|NTxisDZdzfQ+G9sCm$XaU zlZH!cDScR!R#fMkMjhHWx-aHf*Rd5V&pzbL_6+Y#>I~N`c9pPtc$K=^A>Aq^BHeS6 zaWc@0;nV6%p;u1ljVQk>s4I9kW#=mCn(dvjj23@zI<`e5**96-ikcsl?|CnvC2?G0 zuA=MZ$Ccc)*J%SqU#Oo3Th;4>9&ec_rb#wAzEhvq{<*MbKYFS4TSk6b{@dl)N%(o+ z^A6{?s$|Swq|0aaAgGP~b!UgGS}r@`G}K9(?NjU;?={%&1>C#-=D{22kop_B;GW== zVD9bAt&^KAJ2C6kBg`eSMN>{EP%UU2R23=_`hwkqU6vz-<32Z<^A_i8F8Ce|QJp;F~ZEi=e-h-ndJ#)+<`l<fuM($5?hc&j~Ldt~TA;N@@T-?Q7_4ZLd`O1V9Xb2FsROB=o^`xQKo{6_R?K*!i+W@Q{zU)&fAi~pAIlAoDjs;T}d zWq`S6yq)6VXyI7ps@svNDbAQPF1xVSwET54#&MyN{u8?9+<&<2bdh?ox?wPVX9WM` zENz;!)-r3SR?PTmGJUdh{^ONR_nL0+&+DHR9q%!#=HJgqmU+q#N|hh3SXuX7ofY@v zoiiSA42bc6vi+uS=Lh$u;EyXMyU$29)Zulf8mEqT4ubOnJl8XK6MlWXKGJ2_YS=Aj zAa^S!LsnLjU!rQsr9FNm|9Sr2j^<$7U(9Lm$CE=lqg$st?6-Rt_%@ zBH=ei(Vt3ZNdthIrazrP^dK=H&LmeiPj%@0>uM;(%|#t*hc-c&&~-@{-S7ckB&z^Z zYhr*05$gig)PSh@<5&u)BnAQEPo;Qz~phKD-zZ>Q`{%ptlo zFA_vm5d|Y65D17WRuSo}f+nb9os|_JC zzZ?G*?QPAZli-#lZ<>!6k+mdbxj(|J^!;x`zkw`oaAsbt1B54mqDLe8P)VK)BRzE} zi=*h`=7K|@Rb9x=&P13pkwAbclayRw1Q%xv3_(T`Fho_d3L1_1qvyZL>!>Ot43rTF z6^t$tiPYEA!D5wl^mR~Z9VH|hiP8QeYvk$8Ab1iCjSBfI%{aIJ z;({^>jm46X1Q-!RK){q$kuET-G71etl9h;95&=Obs-mF($h-VU`u?s|7KIfC{f{>| zvI{J$QTk5rixZ(C6h={hLN!ZRn%_|S_K1zvs{G#uAKj4Ok zf18Ws$?7OCR_m0zZ?m(r zgFqlzS=pVP9SI2u7KV$9i$!5^IXF0kg@w7fxmi;dj76WFo!#Bt9UmXx*x2CV;gOV- zTv}S<C#Hn=Xs0e_p8S#@Wy9mSx%6U1 z>ojn)toc)(Q0#U_S9Raj)1ZNK<_}(sr#i5+|@nDktGixF=w-zd#u2CioUTzF(zvQG@(9XdS#lAktY}WRgi@+ zxu;A-|3oai$iy>OG) z>Fci-1J)wyXQ`UE)xZ(i4uV>=%9yF?t>EgK^|hT~RsKpLf(DXP^w0*b>&9S(l<&L6 zm!z!~|3Iu%@6#7}qBO9dGyN;v;}Oyz%-87sTBofKd?-B{L;<-714r16QkjY)#b zxQb4_oDg@W95Phko!Bv-D3+W#K`VGTCvyDC)e6fqQREPbV-cyNu}7XSm6<7hiR}*W zeIyE8l9x`7D&oqrQz&MOy)Ju1T33J62CPMldJx=O1P|^}#B`?>)LXsjNrK+JSj0nUzDtS~1iPRI50b2< zGy$ufxVD+Dv-5b^-6Z}2KDYPt{(5-e|5EgyDuzBlb<#3`41dnEL>-ub4cJIE*)#yc zoMb!QnE@9sR(<2#+8F8>8FRN75fS~Ek^}Y1Vr#z8W9|BTG=aLc!>`90b+>qd7=u%B zv0M^#w|GPXK3bU1I-yFJ%Tf=QqVHRIAW1#-8Y#Hno859^MuVSl5Uolcpr!1qq6SeT zKVJZWuH{$441c2D@Qx&@T*;dNQLvXulCp9=1!L@^S`6^1)3*SX*Y0XtQqj^%3=n*< zs~m9B<}y^K7EXp5>}sk_zz9$DYO@GW$n?j%M}_-Y!Ud;}Z@lEN^5N?7#P(I$<)!^2 zpfkNWSo`wsY~|w43YFl(pYd$s)ywx&TU!6@_~-p`W`DQ!#xXd{=N1=9KD$XH8KOsL z52rWF$2YpdefZrGc=B=p)wu`5DJY)2hqp5vd^|InCv@ye*)OM{;0u1Wc$V5EibG5B zttrT})0BpB9q1)c$^P*&78s=P<|<^K4n|1NqxS2t-^_o(v`f~eOrL>%I)5lL2TjIQ zVIw&(M}L(U!#xcL@2k98OYlU5!BBhtQnx5-5Zha@Q)S=(=Ep?`3aispK>tRkJ<4hG zz)}*fyN&uQjfIRlG9d10D_(Bp_dWp`RTxkvz-wVwndG7mjug`s7*YieNo-^U$lHdXWfX5VVh+)hj zj8~VFh4G!_j5P-UE(3Q114~l_12CCFa&h;<1Au>jhLxXv!lsDM@Ft$mR=;nlIN2){ zfXEbZHu5_>;lB@HZ}AK0)`j2UvK10OoQ}4sz1hQs&bTv{b)w8w@9v!o_iQey|BxQc zeH#?8xUjJEWv5~~eR{W@*1;EYSU@g*>WK%SfeF__^-0HCplh2dLzsopBdlQlsg@d7 zwmJYBiuJLgC;44K6Oi=eG#NqkG>cjLApnrr z>in>;emZV?YGQQCW!h_Tt?tRb=Mo8`b8LBdzaom672rSDvDklQau`Pi~iOX>(0H}`_9)8k6m_&uEicfef(=z)F;WzeTPIiu|6kj?ee0SMCvdj`< z-avbgi8nmflsG0Za|5v~owNr^@Z$jrA}r|V-f_Hb@uCO+U}C<X%IP^iNfX#rqU=}2 zGHb*tB0#KqjhuqmW2ifaonrbR?VO^iF{}_QTIGI74tVB{(0NE*BPEA9U*99%5iPR< zr3h(6U((%<8)yV0?(W{LFo8b^eSMzgGqaEG`#fohyY*S#om3S*$B?8ao}CgUN3}!V zJ<07n``w2M1l^6ng>=GsU825XFGbxpx*BOOA=e;+o3uyT#v*Z2_G-SulJrdMBIj}D zdm)1JoR@F$*LdBGi!-q|vp2|-otG&QDCe{Th24VJ`~gYGvnY`b5ZJ2qcS04%*&7$g z{Wx~?Sf=ddKX?VNB%qJ;Hr<~%$8}6L4q?h|>WLmeLvyThbh`N6)6L}O;s{Mc6P&L@ z3c$(nrEz?57Wa3WK2DShq3Z68nSq`h$K*T^ID^EWo@9Oc2%(>v_56HWe&%P+=XX$# zE|?Osd@Yr%Zs!ZC_&k(tOA|3@$$@6~e0u2a>b~iwG(#;1eG5Bkl>8~V%kw+O%=Apy zn%^Ow2%fM8w9^T3Px0&GxniZ_N~vbg*t(Nb8?9kq5R$2`DSRm;8+-W;`9R_LW`RUh zqHSVu;`DQC8*iJ_J+$ZC)-P=MUR<^fdS-0%#&SF#^jYLZPrj7RpZTgq?HE5ytYydf zE7?_7_HJ(DcwR?@8)rqJv#oKZ_2SXTMCuXvWqbWziY?3BDbEyhr;D$*=FNQBb|ih3 zuA5mIct3Y3aEW)xn7Y=+#9LoHvZV1f{Y?9@cAoa@P!{NEXmPJcp-W+Kp;~`He^tNJ z0%bvDVXlAChn%6CaVldSML=!(fXY?N&zFan5BPM<>U87gXfvSo=5^kgZ=ELVgthE- z(b>h`#ZGB8m$WZBE@p)ycL8o)2BhJ4?E$t*wox1`GNMn&x9PdeS{J zu~lCy26m&vpBkmtow=uauOX>FDX@ht$vkPZAjMY4mS($d`=!9N_tM;{IYO_Um!+g# z+MzU5TFbkXez{O&y0{KI+n1&s~thU^AmqeH6oh=5eD zCRH<#LiK6&^&(fy<&3I)%&*P=IAiB3>H63^V-+d->}*_%K(cSLs1+giZZ7drKuhAJ z#Ex83X6X@8~-7Jems{?@8p7xZGsTro|u$?>E1qTbrlrv2Ep*71zowA`B2xM`)! zzLy;??^GVOc#|%d*$X2y4%A*8scgA^6{Vw%-)^5_(W%#AeiZQNcGa^g$gp;mOmJ^- zYB0xc=8ooe%UQUN?$nrV1t4tr5CYdTjB|_h@c(O>drm{ZeK(a-%{mHI$NJm)z z5QxV?nvy`Gi>^p+;gknmPd)4uZsyDoz96{`Yn3xQ+Iu)AqJwjoKbZ7v%WS6g9p{}9 z6R$gE((dA^qFX^iC*={(6=%myH=10BP9PoHY@pUcm@WOcE z=F`eT%AS{n`rrO(w45wJ6+8}Fh@7bHtJRJi_hz2;V2zSJkJNvsYbp^G!wY*N+vmCR> z*sOTa23KM*VO>w38YtYfQ%TH!(9}XKTD$NbCyY&WwpsK@?zw1tLtZrTN&&ebujuD1 zEw79RS&C0~%|tLGSVY^7D(L<0D$-V*R{iDN*j*kuurx^`E{Q3!;8p zKg&E6>4FUHdeBR{XwuXcQN;9KMc-Ok*9aL|2ww9BN`q({bB zCOS4lT3V7vqH@K#Jz+HWb*^AXbFl3JZO;3}^zh!;&e;z8-M%I6t$Q8SMYQ}?%HoUs zm#7Ar2I-1+n)dRu-NN>PpvAJq^5KR`>C_Xuy8D)^o!hvE+)oypI@5vsyGon4R(C=) zWDhfLmEu$*d#V-5h3bc;-~l~nk`o?mO2E3}F?g&q?OGFF3jkOm+^y}Y_U2|N9EqTa z{e@BVCy*J^0HAf+pNz$M;;CRKysJA=8?yLkH3aPLtPQb4n#0V=26#7jbN~f!6>!cP z7vPE0aE6@L0c-iA7zzk@Di-Wd@FIGn{Iwx}=|wTtzsO1u@Lv$Br#9qor|iuw!3HD> z9;~K_fZ|{<7+6h15$>dl#HwjHshk2MUUcO*4XMINCJw6tb^jET z2?>e4y*(Bdmi_&G2A%1z!2ok`aDYIdm6a6+i=CZ)b93|X;lm3H3*6k?TU%R`larCD z^}~$5zh`QwXYJoV@9>q94db`A>cjt$pV54D$T{}lpe>ro)SHVu(RS9F2C&Tbx+(ey z1TCQ-vFd=lXrP1JA$%&T`W@qk)1w+5$?vA@s4~B7SINs7QCpQ+ z-dH<+y!spS(cP%#mtn4 z3*Hv~*~RW0XjLd)a)w?Wd*N*j$0j=ZrCpe)sqQsLNUM6#HSh5lfmg zp%)pqt>@covajku4tL8~m|~k61jYJNj`&o4H@`|(KNk;k605%^wmP085BF#o7+{7- zet4s+80lB6n|dQo=CB#E!d0lzTck`dDJL8(ICSTVh(UoJ;yf@ElAQ~3=I`@IBYxgZ z{Gq3tG%?7R$1{7BU7klbH)A5xud@ww$NACodk`1pZS(k#7c-g*dfGjE5!BE_sjL~YmqC?g^!p*p9|naz6Y-!LMY*dEc@Zf& zaqL#H;-Q-lv(AkPlrhV`h+I}#(-F*z)T-lo2JK*V>tUVau=TAt5%B1pKIUQ#XNmcU zR9*J*T9As6K;!e2EosSw>jCECq8OJY8$@CXyK&YBa8m2+sCB!(DyZ4aZTsf)cY#+v z_=#&J+>aXJHfkbrPi##rtmMWnX5btP8&B#(1n&!G>dQVk8?~qmX6|3`H?DN4Ii@~Z z{9;;c7&p>75`}HPRix$dSx&L@?XLh6mGHRLEGZ( zVc{2;ylZ#_%$sfw1?UIfddaWCbQY3&#`^7aN@(ZwNsL0OvGu+Lqz4lf#gi9Fy78$~ zFHeCRYRP9*qFC?siCE%g_;#3RW6;Z|dJy}%p8n8Po;{j!NmJE`-abU+Yy8TW_ce@i zC?OJGK?$v!M<^Ti(d|xm>agw*~X7n*&YIM%9 JNdM~1{{w%hGqC^w diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_0.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_0.png old mode 100755 new mode 100644 index 7d42cb57db999d20125d8ff2d5061a40c975d5a9..c727bd3f0431800881e6de35e22ab7dd0fa45fde GIT binary patch delta 580 zcmV-K0=xaA2+;(P7=Hl(0002`twPcO00J0EL_t(|oL!MUXj4%bhM#kCd()QKpP^8( zAYBx6i4Oe{igi#bRH|r|4%)Ox5$PZ*R8YBh_6G++9E4^NibbfKW8$U=#zC#%qF||@ zLrPmn(loC_o8;zv%Q-x}-}ip+ISfkDhn!S=7p_WTUXsd^@_!H80!ij%2cT~u#am*S zNcsNG`8FeIdr10qAQ;O?_C*@lz6?z#G8fX|o$>*D6f`>UYz8Pxl2)bl)48%FDuE=e zONHNal|b@L7QhFuuh(S3k^+c<-8W4NEJ=V;0W)!gBv{fRuyGp(o`>Dwsedof@*Zpl z39#mI2qb3VVt)Z2P%#TYJb$ex*toAqxbz+UJthyjhJnp1H>ZBmJdIhbSb!h7MCR%} zJ}1q%48Z2(_qk>Ovsfvl0KCjlby~Y5Y0ZyIDheqNK+B`vE$QEusp?uQqrDGUp7*N2 zgr$Dyd|BJe8(A5X^rQx2;lP5V)f(ua?VP0b8fZ4LLw}Nr^_EZOYao@QpE*4*?IeQ& z!15a~QAJ`wl8u0^*EE)SRa5i;pu>)W>w)A&!N*pp4^6|$q|>tJOweFUal%o=&O1XZ zOrgJc|M>`Oo!NUGL0BgWz)@kvUgbgFWAFJCQ z4*|R6>^%{?Y0i{FE zzzEbfQFq&Hn{oK(oFhd7ZXBLtc~R?FZFDr}1JH>VfUnKPF_aKmw$)JM@E*%`GxCj) zq4wfoGv#b=JdChJx??QIfE`@l*_z}qf(S$bcuwe3R+Y4^Gl7-} zsP|GI*0whVu-hI%gz~WT(aI5?TpPev1l>uX^gbdpZGYqvJ*r=v{EgaWIUZ2}S_7g) z0Slz9Tdutn5xM#5ae-7};CABmAPhS%8J}TM?LQ$DyhMwA2}J#Mj=o)cClZ zh>Hx^F{92e?QuU(D~#UshSKL|jS85`A#)v1Ga}YVn6B0tMkM4Zp=YO6}>T2iq z*xTE-o_}0SkHe#49sy23BLZzyh>m#@XdT+T(X6GTk->|e`414BB<^9uzwX&0KZs-XH7()+IoRSkU2m_Z(_z} z*i;pP6SP(PCOARN2*B`XtzgdTl_E$1EI`T)aGRN=02abk37#U@N&vl^Gdr+a1X~H0H-ZAtIzyEQFCuKrpn+fz?i8Mu1>wBZ1XfLPmg~cqN7@fWSy1us{^RE_>~#GFt@4 zMSv3pt9>MGgyRHoBGRMi)Uyj(VLYk=aE-j`S+~>S5Brp@Z*ieyRgp2@hT0)PwY*{^G zo&wkut6U&Y12^U47rqacfs6nXnOzmNj)=8U;A^<|g|tFmr1g5XE!1xfdm}+cfX(3! zid@bDk{IBGu>7qd1+Y2X4^FkD01jd#2S@=NL`Hyr47W2_Lq&!Zz+tqUPksIkQWHk1 Up|t1M7XSbN07*qoM6N<$f&pgZ3jhEB diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_1.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_1.png old mode 100755 new mode 100644 index 25b4609c37949e1dac85ed4d8246a39d4329b66c..38e775d813fb3121f046e1ca9811ada1f3713ab8 GIT binary patch delta 611 zcmV-p0-XKY2=D}u7=Hl(0002`twPcO00K8jL_t(|oL!MmNK{c2#(($DYer@KM+r)y zxv6kvEp!YdTNDb0MNQ$NG>K@@ssdXW@2x9q5lD-`Sp<>=wre@MD_Tqo%b<-#qF{>& z4Q6zFUyGS}zL~qZ_x$eneVoIgPm(@mr2LY%E{R!5DoDycX@77fnR88mzIo*DivdC> z8ZF)*(vtT2rJu*#k+fuArGUNbaNunEN(!9wQNW%84JT%90|iOay0kTvDM-S1C232_ z{hst)$uWxnQE+-X%_3OF0U}@zPcROaZh)N}X7nW8U`ctv_5(<~^jg7DZyQki5o{B2 zux8o=;&Jh z(ruD50RP6mPu2jKc|SJ};H3M@X^oPkztNbaypXa0)IROpmHzCSvaZe_?tIM3tWyTY z+v$bo*Fj&-;M$0!=K(nACFUfp2cV|8;gY1S0K}d}x_>0)L#s1iU8!LAfu@gw4FOi( zg9+8d=Ol#{yYGT$u9*5pQrNf#MF2V=KU$@TT$Us62Feuq}XlXBlwke!nuo);ahXC9{0Gj&*prrzhs{pODf<`Hj)Q<@y$u9wC zK}00^UR()8M+8QaO2jURq9<1x=9-{G(rU?Kjtg*0|6O2S2r&B!-pT=mX5PTUiE@>I xo{HgP9?9aO&IB1lm79ZP<>sIzTLpGD{saGK5rl3x^l$(G002ovPDHLkV1hgrA@cwL delta 1105 zcmV-X1g`t=1lkCY7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000CGNkl?6Mgf6h5tB;dvoIhGf-kM%}pb3Oo_cmc%P+#Ev*L9(rf8b|b4j+2pZ zh75I-2%9NqbAMaGm5e`X{#gM;8nKc{5#WBfRg2qX5`idyC?i%AErJFY6|gOtMDWrY z+^M8#MA(cSLOGw>(_34sZQf&11rTAxO0*TTatzqP{mQl^hZ#hm3LtVqud=J8mCght z5m4W?K33Z<3gB+<2r`t1tq&57*UIsz0+f=W2!V|3U~>vi6BP%l=7CpnYL|j@1J`G&PacyuZ*gJvCnLKQj@)Vo| zH!1=UNKVsMci%>;EF$6T1tr zN&p{xgh?gjOV6;pfQshLCMW^8A!XlLL{I_n zO#~%?4QROmZsSRM0dViKpFkfCc8MUp0G`fn5!6}0W~BE7{qJ6s01~iM1SNnZ%!pux zFn>w_i5L;Vs%vxs(S@h1tcY^Iw%1oMiapbN&pwJti&r0 z^AHsgpZn7gAN=B7n@v*td#=stRUB@FR7y z8;=(sPod4r)j7J917r{hz;{N1RaeX}CxKZ+(DMy~Sd|N~TY%K*F22FBR`3bo>^89N zJ%Gd=9nFPg?>+(OBVu#;4UX>tN*MlJ%>{rNslWdN XDg^t8<#f--00000NkvXXu0mjfBkb=m diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_10.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_10.png old mode 100755 new mode 100644 index 575df3b9f5bd672203836637106fa68fba69af7a..81be06a77fdc317961ac7e2e21cf55bf50159b74 GIT binary patch delta 757 zcmV>QhsiE_`5kZu$vJw(eP*TwDT**8^YKx0h zkhb7vDoTcKI_((qW_)?a#ov_vn;#D6-gECghuxBNenlGn0_;i9i>-yDKrTsI zm4?r+p z)z!D8vqw9tl7H#xX(G0q1FKO1bDw!DQ8@;)86_~z?v-=yNcs8;-|^o`%q3?47)`bg z`Sl-(VTmFCQ-hfl+*t6L>VE`WJz+Qxr@;BgpMiV6HgM1? z7^SZ-K>dBA3^eXVt(gPB0b>$inyvogGEjl4q(PhV_GpKsk@d1*n3jvv9wJC2^-_Sj zMX4~Ffcr%mTsi}eXkF54;X&$v1|}*IRuOj0%=u}dL%$JBf(SvoCo)92n%sC)qB5pbhuUV_)4K@0Bt3WiSwEz?GjN(q@w;)E8x883r+zVJ*e#0q8*v z>n~&N0HoU}z?Lw7Q=ox^yuEoEs=rZ$**ifcOKxx;_wcPF_j3S_L0X-XBp(q0r)6n2 z0OS>jfF+W0N+iH}fmPLu`fME}zcz)!=8#air=sNYtj>BPCw89L+DgXL?4;QExt(YKj_7gnGN zo2@f;|D16&Pr!|%ax5=uAM2Ig&G-Ox-~~{tb2AJ@1WC6Z)Htfgay<-v zcZg8EsL+`*Hh;Gjj70oZ^Uo5XQi)7dk^sx$RxNI`6A45DR4I`yx0(bEoL9iQ>_mc> z)*vgT!NHBzmddlOs7S-GK`7%>dwOeY)ou1zR03ou;W6lF%A>8A%!$MX?sc~WhdYo! zCBW!}VuN}H?j^&jlvX+ukVrs%*JNbtE)rnHgtq=7o_}D6^sv{TdN$fOKrRW~L7?`X zdcV55Macq~6G(A^9wir#IjUFYcvJ#d6wnyS5nxwnrCYAO<`KEAVsx7uSzu|0L0ZM@ zAHf?FKm!-?TMXac7%7jO*amfy)^0>s^HlU zLTMltHbMYNJU98)y*RQuwbd_q1S|Pw)j+iDfPZRtuXJJBBt%?&*2GG(twH5zisk|C zx7R_EKa>XIG-n2Ia99b;_ zFVm7)R6+{K-30IsW`?WN^vVEb*hu?bNYLx`p({8D5K+8>09h$n28k>lfofX?OafO7 z5PyxTPk}^M{JRw4Q&|KK{ASlOIN-(dkp@~7T4~go9su`8$@R#RqVHMRfE8~7Kp+TQ zy@&NUp(4lC6IRCt*LB$mfZf>&Sj(}a`prtyaQ|D702l&PSFx<%TyfT(YArF3_P+}W zj@kk+EG613c+)~pUn@y)mq_^nSPp)y#DD0GER~TfNRWObs0zCTea%=AeWc1^|9mEn zCBQD*&?r`u;OH2D!Y-bHf@D;#Xf!(}2%QD&3Qsz?BT>90$cPiBp9NH6w34|4DXb*O zsw9#(f~1MqnFOOpz*&8b!b5`odjxL+oNx}HVa8d&Dk4H`-5P}ShCLUiSimX@own~`nc_3g&DV#Yj7 zJHlmd7e{dHg^(!vdIwIQGH(}GY&qO@G7o-Y3&7AODeEw3c4oj;2tD@vDGy-1yLVC{ z2_G1>KU;BoUy=f)T|LPPgI3f9dZS0Tfp;a)BQ)}C1){fg`}a>lGzNH$Tz_XCJ&2fz z%-ccL??>fDwt@7&7*Z8EQ*tscOi+^<)v*Gj+rYGl8s{Qn-V35qC4Dluulmio;q`_33sR0pak zMBNqWarX~fXR}L~JDk^N86Jq5%>6 zr`CF)co_<_!tmfLX);i$#z7q$EH1%Na)-1q>!Ir|o zK3-)^mkhw~{qK950LlhI*fA#k7&DW)skN;g=XrP2 zodm`oT?x}~HGH|7ziyXwxdCSQ+1rwa8lY)GYKNq91Aio6I*TP$W3MxBJSnn&fiBGl z8w0$12qsq3a$8bdF?OGS!`zuvWa?9wG#0DpBc22#eJ~|};@9?$$93c7X jrOel;tO0Od!RYWGiU2Y7LmVm^00000NkvXXu0mjfdjC_| delta 1293 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 Y19D1T!`1j=PXGV_07*qoM6N<$g6Y?s2LJ#7 delta 1661 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 N002ovPDHLkV1h8%)|>zU delta 1926 zcmV;12YL9l2Z;}m7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000L&Nkl zx7+R4ly7CSvPbW~u_k+8!6MdeBvU{Yit?w>>@cg!&w6Mz{Cn%DA-U_R?(b~|prBjv zXx<8UP!zX2&(4||US^+LDS+i6`&2PQzy0ZyF*BwTdUxf_hIb|Wk1?R~OB}#@6B5)C zB)dWMde{A3G-w4X~UwG14MZzYFFR8Fb|{}{-gYw$-j0?^*x$TU0aR- z$n%+}N7m}Scj3CO=T9Y-DBd^G83F9t=zW!u^+)?bePshs1++#{32oiT&U+%2GV z{|pC^Q$RMXSCriq0qoqBdDXDLgX-C-{k{F9I6$Y8J%5}qfD@eJ1Wqd79W#m%z!Ru~ z4n-juzR3U-sAs(P^CIqj5~V2wBM=H9I+eo}ATs$W%4g)w{?2#?;#HY`Z2mF+kw81Z zDijUuRC-4)weQtAnNeq-Ru)9wB1iJ(jGk(0ex?AXNEAL8DaxXYL{&*2N@E>3Rnc_L zJLh^-ynp2+gU_ySjUbZ4^TG1|(& zt1qLA2!u>H_U87OZWok&o#H~>^FEz^jBz10jDLs~BY%vAqten-PV|kTqWsEQ-{##4 z9`^7i5FcP3A3;61ETczbI?B=iQPB*~2mn74@3kI|jL7rGtdcD{>i6pSPq|&}!tJ`Q z%Tp8siv&C5Pry29q4jOQYD)WrZx3&fw^{4)h(nx!cMqXJy*11z`kV1k$e9JZ zNq;*T9;+-LdAyhN|5rsb+?Crugw^v=?(amUv|CB*YUI`+K2h24l<8qTnE~AtD&uy6 zDg)(aka_$kDtwIGA7FLj$3>9hX^i!+#ega)8w6qnLAUSW&57YcD>&s zh2H&xXS_#9phqaG%2k!IzO!*GzoU83SXHKXpgV-`Mu8U+nDuOydn4}Pff*jl&41B6 zQNIj!m^aJ$=o`|5qU3TF&{@*ikd2akgRRL90 znYWk!Y(Lb-3~6nv@|nuKiq}P{&GYgo0-&nQlV!y{b5IfN9RYhXZ;iZv_FGBZx^XqV zAS1HGaP7B~V-<30D5!A8kVWPC=G z;iiC{Dj=G7cWmX72N6P*EgnPb13bQyweh zgu+QO@b(QOz{!xqpjf|J(shPT=JCqh9zkYRP^Fqd6@&_!0@y^Sj3X2JJbxK1DeRPO z{=O1N)OVE=eM9#F2uc}PiQenjtunA13R#TCM~7+GQlJn;+ZP$LjbNv0dkNp39ljHZP8$JID)T}nk5{5r zh;R0+kX#RDF>DZeXF?){Dm5Of@EpAtlTdV0C^*8 zdzs7$>Fe(qKJc5!lxpt)BigGB*^1%iFNLB-J#x1$bfUIp>wlk!02TSFvM6VY#<2CO z4)ln^iuKa@JMv^@Gg(1*h~l^4WTc7C=suOHC?5%=D1VndN6Mey?ekMnHCl9zR)6ag z>DA)LzYew+7GA053ALhI8EB){2<&^tFg`t^tmnN(<@qze*><+~KND5V9xmRs82|tP M07*qoM6N<$f`u@`J^%m! diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_15.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_15.png old mode 100755 new mode 100644 index 7ec1216e30ab22210d5e3738aaa3da771d6738ef..173de44e87882832bbfe8c5df4ab7743de3e7220 GIT binary patch delta 945 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 diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_17.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_17.png old mode 100755 new mode 100644 index f50cd0b88d3425d41723b1193a28d6b294081881..9857478f8837f1c05cda362c9ab52a2bb8a79b5e GIT binary patch delta 920 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 Hu0mjfwgRGJ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_18.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_18.png old mode 100755 new mode 100644 index b5a85de1df6730ba2978509bd7b4f7445632de5d..233f6aed6401118c91495c7bc30e4e2204b1a286 GIT binary patch delta 870 zcmV-s1DX7@4e*hoA-{3WO8=*$K`y^fdjFRn}15D=+#}tH0XAPigupg z8|(eetlApN8gYAmav?a8qrB^tlmV2^ImGmsr&HNr&;V}rzD`@&U8LAbvm2{|<|pxe`F!(jWP&mZSPY4z3-U4A_j*OWWQ z#=#7IMmlxu@PC5AGq1Mo9yct1zg23y6iPvVR&1gGbX^=x89bWDCOHR?%0`|w?w{@g zcFX|>PTTyMEc$^@t()heFIviQ0X{ZJF>jTZqN&`a(GlV<0z zMHK*!%Y;cuPo9yA$fS56KNq4);Xq_rWKujG-?PZ9?tg#>4NC1(Vg1^BfBeAIOR}C3 z5fS0i@9QTYGwFY_@fPFWt+{W*hSle;BsY|a&~=DOxtbXEy~=V)-<&@Lu4;)+ZG6zV zpa?I@3m>o<t1;tep1}j&nRpo9Hb#m$X%4QE_bOgP8e`c+wSXW1o!mpgK zDfYjh@_$!W*J@3jAk9p7KG;$+X2@T@Xbo&BH#wWV-F<4Nrsy`jYu``z;b%4!{#FU^ zOXs_pk7{$gqf$q^Cf=CZ+9jbD#;4y*26eSS3aqon!3{QoHZ?TN$S45$C$=_#=bC*J zpl*b;)&?vZ9uTDhXn;Ax1=jHaJ$Vi~{h9%~4}X}&h5F6lS`uQ)fwBWOb=p)_nxP&^ zCfps?f7)t`GmE(jtTb&iMW?lgi^ZEgdrGK{XJ1t@ZBwEmP zM_-22%g_SwbR*j6@YM0FQei28e1%Ttohmm(o^Zx5ET&NphK|lhzS&!-8U%VaHiiB% wce@xL6HmmGvXLP*XdNul-(3;$#4VTp2cW)dG{Js*f&c&j07*qoM6N<$f_2iRkpKVy delta 1711 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 M07*qoM6N<$f`h@c00000 diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_2.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_2.png old mode 100755 new mode 100644 index ca4bf322ba1a693b44b6ddf283a5576467b04d05..61880587fad41fff9c136aac2f254cf1b907e82a GIT binary patch delta 791 zcmV+y1L*v?459{*7=Hl(0002`twPcO00QYrL_t(|oK2EJXk29ggunmamwk!ZZFg@~ zgPVeQDw0%a(_&~8Emg!8+SL>ySv?dfy=kb2%KK4oT5=FXp_)YmwJq3_f`@&(H%q~K z(6my}jU*<}#@(=~*_XHZ$3xoUT!w*}%g1m)lCEBtl7?HB#DAP5^(3`F+!0AK&ldpA zJCe7=1piYuyX`;3lD5XBg(sq;v1Bh)fvwk|@0s{S6@tTA!0rXTH1^3UpeIRMmO3w7 z?@7W(lGKs9i)Vc#1*Q&=g<#)qQwK{0AOrT%H>iMR1Yom^IXTJ*SgH#jtyi1C5_YrVf)RYX#HIQVd@=_t-hn%2LQAx9(&F9T~1NZiBcfOuIFr8>aKj0oa2N#FsB2V}1@ z2*AKB5T1hZ*hf+Yb^!Tl*&3z}k3pvi8^^GA7=H)m3Yr32#To~YoPlf5tAOSdtJ@C2 z)XBUm%dywKtnr#C6 zfD%LGxHl=wx)vQa=>w)<9h#vtK2j4*6UrjfXu?hpguv;R-P->}g*D3rqrm3Mf6sz~ VB@pOGhe-ec002ovPDHLkV1f>6e3t+K delta 1587 zcmV-32F&@Q2Dl867=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000H*Nklg0J zqkO#95psurA>bE&SgzgU`cJ_ZXSLKNanE*R@Fcm>6+F|^L+M)vA+4$H1CLpOn=&v6 zN(`O=%oBIoR`X2VzoZk-WN zgbX!`4xTw>OMjstlks=SUo?PDCMwZs1eA_+YU!Ahj6gMjE+(qcZ3F|7SD?I{WCXW0 z;FC(4fexOjLOA7fF@22n^0s;}rU7&?Q3>nBRPKQ)7@urUa(IFfmpeG@j<-5vbWRp4 z6Df^fsbtLZRku~(xA52qH+>8t)9Z2^I8m_-%W5U!d(F;#9XqBEb{6@!O zdK4CapMcj_!a9}zBJNPKwEjvVdyK#`j!!{J5?E~jo^nYVljX}3OJ_Yp7b0ciR2hf~ zai_&QmxGqQYD(8K?Fg*XuXzNoXRK`GNb6etnSa+fNO%BA=+@>e*YC{@B26VPv`~jX z*XGbMoad@Gg4q(Wv<#%#GABUFARX&1VY~v&2-%ZKV}9`~u9{{`v?#Ayo+8P&)B|wP znBqK$=X7&cuB{&xxTZAgbmK8vWzh*WRKlbI%qCcp`{M+z#V<*qlH0T3QLHte8-I!s zV1K?a{qjy=2K4k&!BZE@39_mp(ZZNC9}Ae<3+IwM!Fj}^3_ueKCtPXVioV34t-T*> za8(2~f>pVI1!@FSA)rFQnp@=Jr#IiIC$>(C0R5eNZ$0A+4;5HbMH_3x@&gkj1~8c7 zp5xCujo>F50Dx@-6>$H92`!-N zA!z^r{;zYb!f6VQz~e2Y>>f zOU%^zv*4OUGZ6nxT-SZ{3P?9+k^7De&6RYDX@T?(}cdwF3S+o%|iOYF)h;h%mU>Tyfq0$8!8Y+!|tJ0Qv0F4O@O))cMRvTP*l32|HJ(x3LJ7oZG zi!E|z3NZkc!gx(gIyo|~A6)Iw9cAZn`X2QT7aY>e^h|HgDm{f%+tIb;py4O{7 zXTrd@B+xstss(B(vAPk}9X7gJ#TgGEh5!%qJ9^<6kJW|l5aVqMaV$pR`a%drr2eN2 lo`{M{U}u8r=?6$g@dup<55*m+5hwrv002ovPDHLkV1f(t@2~&> diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_20.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_20.png old mode 100755 new mode 100644 index fe95a716c1563deb66426c14b04283fbf5646ed7..e9fd6041f22446e3ae29db03ffa30f7c6c06a5a5 GIT binary patch delta 1082 zcmV-A1jYN$62l0P7=Hl(0002`twPcO00at2L_t(|oCU!ROq6vT2k`InzXv!F;pAp$ zP*8*-8X_K(P30ab*rP@r#UbjNTJB_J#478Q5fGTC#Uj_1%{Gt41nwXSBQG1=gEXNu zc~M>x*`4!+k^x8Za(CYI{Q7*L6$VmAf0|rX6M70YmFYTu;eUXuXuKg=jM$v_+t>9I zX$q`N_Q{ENaT893+FN zJy$HOZOV0W$$Ad^t=md9CG5d7vwd5*0@a(BT%p0*7u!OPTDH7U!mVqCa$Pr2dQiB3 zeZ%o%32epf+Od|gM)9SAybfJpZ5h|(>)A$}uc~6U2!C`KsVw-6IZ$iFgF7@{;!FFGGRaDOU$i51j81uyO?gpgPU0g}2dPl5F`;jnz;v#0-tYaA4G2$72DUJDN2z z8&GSo{9PFcM}T>`ADvs{PZ%M)?q5w^~*kVIQKGs2i0LVZ*_i;vt zcJ`wfrkYd3tDXr*Y5uq~Wa19qUnH8LapL#iaI;@gADRaMSO98#oi4A6-vu*KAN3Ji z>6auXpD&bp1VAnUO!vy;<~70yQ8)Ep2Pldh)Gs Aa{vGU literal 2383 zcmV-V39$BwP)I1G%W9#DXVygC4&Xm3+ zABiu_2Nl<|Ds+j%WGiPAecifs?E=BXC?9Z-TI1qDn<^&Mo!nOqtzvf1F;_`FpQ!kX zVDT`pE@7;D-HB2OV}7w~<`Zj1)s%PaXE}1Hr5ZRn0IUh#8X!f1uIn5Gsr~6ECW0l5 zB|s%GDW3YQ_8B52`xw-#CUAK`9qYTRDMf&eLzysG>zcrEr%D?075!9e@Y=<^(~Jy} z5+q}J#F!EaRdmAQTWcf*unnmEDqJ#dot~KUJf)v3847w+KU_1`m@)nY8JT_-lWK-! zALdFnfP+e1|5LqA)Vg(_K|DKb0())fv?}=(I|ja%z$=W?#u22%z*#noGrt`khQ@Cs~h8p<;hl#S8%y*EwTp z$9GN8?N8vDB~Cq4aV1p9?6an3u}q5TY`DXS@h*LK22hDixGw2V_uZN< zF6RRx#3Y^_+Hv>Pcjo_B1MG6$WPkD;9ZdE!u48)CnvRBCKA2z5Zi-|{o)UjM|DS3z zOOoSH)Z?T(S?vAD&<+>zkY=6@6Y#&SJ zly*7)SUj!>6X_0&^R4Pg^Y8M4d44Ha>5L{$U~rBr723Guq$ihA zh)W9dS?yI)btQ#mdy;1D^4~S^i#a{z80G{9SM@rWcl@XB-;DrO@3i<6#8CNRdJ;tL z4k2sw7v5k2?;rs?g(#C^CvfKUr3k>9Ac631c9@Df!8>&9n*Q4ipaR?BZk9-<+XcTP zUGt;}P}g=volwJc51UJNnn2a-Sqryw;$0AokLu5|i9ae~>j&>ITQ1q`y58&J!DQmz zPl}omTs;yxKMwehLCkPcd^F~g+!cDQ#h*k}F?J9jnNys-J7_@JMBD0-EOF;4-S;KzK-9z~vq#m>ipC0(s|l-Qx<9g^yFv)yqV?|&kQ8S17?T=xkCP$z_)BFFiY#_Sro`s3F9 z^kHDA&endT09HJNe}@WpA^<{ecS7Be(;)yGsF?o5Uv+?xI*#MMLHTN)pRD-ZiC3_= zg8-9aGjaS@{jckl9_M3{XhsVOLfz2_tihbDwJ%qEHV7%l6WFQF-X(}YEQZcDi`h|} zl5S4w{J1J?9%8oMhQLYjmI4>h-JHkhhxx-OAbAT&cs!AgZ|h+~+jk4jCz!+a?1{-^ zik6c4iGtiVO{OZc8|bQ!YVuA`o}v;OG?<+P zJG&hMxJJ3V36}jkdB5sS*Vm??ZvlxScH-}P3t&#;HCv;GQ}=y|8robF><*Myi{JU= z&=hUcw*WNcIMTgEOkj##*L&UYrTk0Y0vv+4CSXZ-r~4Db@A9ANSIzK^2L9~pf7j0j z2sY5L;_uKxBF;WO@4oL&_&+Tw2KNSnQrBAqU>mDaHhKR>l3epm5a4eYS7i3)!wxOx z>FxIbbt5|+753a|s%!5G9>viQ2ClxVd(PHx$i%jybC#!8C*Rz9*pYkohar^Y7tD%q$P)q9Ir{GQbHAR5GS(4(r=Uu+ueiO)yCrwbVv3an7 zl|t%|3kZv=K3$@c?|+l*7GJHW2vC(M_)ch|D+CssHIUkOrAVq#-Jtk4$d%%|LxRZg z#2bt|6PiGW7)mHuayroQsbI0)y1!j&J`%+1X!08cIHQUNmLg@i+wW|%#+(*u%J;Qd z@bfps(Q7AchGGa#|3{HY(UO8p^|09i6ET&Yq0jmEQw>pLpA=vDs3`jBl>f$b@0cBelHz{%Cw;R^Kb3eG>f zk`CB!|6oMY1XT$uUfKj~&`FBMl7ssu#YdR@>7p;WLN&NIIZWqy`oA2y7Nt}Bjxdg| z*NNU~^Em249lzBKyE3JZ$9bM7OSmg)+5l{(m;~X(4Tp$2j>dKnXWF2NT;=`U{onp? z;i!luXXo^P;?-@@1{*LL9jO^6fqaGv>*tOkb4T#?ZkM`Vcc08EJMYi#t%K=Pvq_2o zbMjoP1uxNf!gg z`9%TA#vOyzsA`6v9-`R$@(%J`^?w(UlHY@*@(;3@XXB)9ug(Af002ovPDHLkV1m^y Bx1#_6 diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_21.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_21.png old mode 100755 new mode 100644 index 6a40d4148f0134314776a5f1ced7826695ac5bf3..db36ad5fa3884479519259d5807528c7b95c8ad8 GIT binary patch delta 1081 zcmV-91jhT{62b_O7=Hl(0002`twPcO00aq1L_t(|oCU!NOjBn72k`&<`nXSFWH@2e zNe~M%9!>g;bh1~LJ^wr9J zByh25?$^0?{*#HUKAAnDikyMNtTZ3jKedAzQhz$m%73mrTN69K<|9wP$mpO(8QZGZ z8o#=#`YJv?azGjN@CJ$u$3!3Dv(gEJd{Ew-8O}5Y?*u0tKGksLKOcvLNvc4GW1lS`SVMhl(22kleUIWTF6+4k4lNLZ}eS$zQ!(T(#@f`g+ z5`Xk$OSXeRjxmrwq9R!SHD17S)(rUqm zsEE?B2DD9<_aM+0z*(ZrK8Nu#S^X*i0G>p7M+rTq%N4M+0aReM60JL$BGb2K7$d~l zW@s;H^TtGNktsp9O3f?n%abew0h$4k zcK*Z0nZi?5C(_>50}w@zX;N$$(-lh@E`zhczGMD?aN696%T1_e>YIVrwreC)ftAk% zaMD92urD1IP%BbsO9C|(Q%dcvy#XXi$$#KxJ_08J5TjW}wsna>Bv^w6uxUI%hUMn! z1JNL6DX;-|uL3IF^Rs04 zjv&}Ln4R|np!#oFA%)TG1#C^H04%8-#H*H*a)2l-NkLPmXJIW5Ndds*x){OOeKOJs z9V$-I0Q8VGkBWc2e-ifUMKcHBQvqoj#)|&|qol~;`K@)>00000NkvXXu0mjf6G950 literal 2399 zcmV-l3840gP)U8KeNH?a zTbK>XuRAKt0*Ap?#ya|{dGkJV1OuaNz%^=4<`3?vd_vvMa|LMSb2g5#a`Jhj;vK={ zp<`9R7<#i4r2@w6V)x7@21W(S6YE)wGS*T6b`Ago!5aWv7N}5{QIJ~iUNI0XU@QPC zfKKw%HSW(C$yvv!UV$Ks1L~Ncvz$@}sA?z^Mr#!avf8PF#%x79)f~Lfd|m+~VskQ28!hvfA1`G0*czJ6SLk^}2RsV2nPa{|+-U{mdr?24@|{ zN&+CGN~NrWcsEGZiBYz&y|VF68AAKJdNWb;=5t2z>_EnK+5DSLj+-fmnZn)Ly>nu+ z;ARZaEkhZ=9Di6WD<);JQ+{L&%;fDg5S5^zD?w8MW3rQcXFpZW9K9KsS+aJMuhwN? zVRo{7&HFnVqmY9}tDq^PIss$*D>=acN>2w|%3suto~sOhw*C|YuzekW7#Nv< zl|L(GCwrzoGy8u7V71nD);r^9V6}di0dSuR+!zmLSGKRqWKNtMdn@~IwU`AdtDjM^ zLL9D9Nn_7DG|BX_`}o-jD$aN9$l}rUN3k%ow>lKh^Ze-n+*(%!4Grxeo~>iSJk0=V ztU3&tAIu*Xi%L(H2ltRqnLU+WwB0=ns}c{LTeB;BJ9@?tJwTj{&(UaR1T(gC z#r@SatCdk422kM3l7Mqj*jlG%cgha#)6p}=7 z6Y9i2(-UL)!UrsQ9jDc4+D*1YXPG_)O64EZKlfNkepe6kCj*NDfr`ruasw^@+>UkEU&OQnRDqk<8x{i|-{i=F|0dRyRCO*$}tulb} zr8_jB}(DJhn#$G?xJ~U!0_`fLk3z^lhaat8#Rs z5#3FhGg(Pt^YLp%vUPFHu^AH@pR*GhgNS=kIX{j_9M%;qQtP~w996Ve3%6UNl>p8iIVq6???H^e!;owBrAW6`FQ{zrW)c4f`r&AL|y1UP>+Si7Q5 zG_snSUp29;?0xI>GjYqY(*IThG6jyo-I{b-R1bilX7lkGOY}~{BM|X$1Vu6^-3p#Au6k$lF{mk9su`u?5|FBXWz`8tSmWn&scDd-wG+{oC@xoo1Jvk z7ci=v5>d^ZagrbXP@mC`suVDB!O~^JE@+%y1n0f|bucr)0YSWHwUyP!Ifg-Z8!e~S zWj#RD&HOnnon)>sMs*nCym|fcOQDMX9HsHJGQniK0cWh_UYT$6J_CXp|CX$lsp_z@ z`1~jVagf!~tW2O{#uAFgGab>ft~kkLx)BJSy?24L)1x@O0D|JKf?Fw7Ck#)aL)XmF z6ClWZtJXSTz_Ru!$&w%EsQ5B4(0?d$rPfx4XLOzQ4$<*dsgmOOqQHQ?%&sU~oaD#3 ztXyLruItMGfrt(W*olvyPsl0@WHunfIQm&Hb5hV2H~E-c#Q^d8RsyQppEZKaiAu8G z1E24TN?5evUuXiSEn|4!rJPdHKf9*?XHb>=tZ_Rjs+ru?7bPbBZvz2Ki!0qjI>s2+ z|LgMaSaljf1`>yU<7ad#TeBn8+rcOHbnNNw(~0rh_y7P@3YFrl;aGXKQD7(?GHajP z$SQE22E*1UkalcMN@qqHoq8hvH^9-z^s%hvxNUBj%iZhw^9A|AoX? zrM6r`|5mqMo&0P~_V)7)$v|0wT8+Q`LI}QsWP$3ua#UUFH$_pVyGFet zexfmS^sBcrHjdZp?G<3WmjU%EhLX`uX4K!3su$?^na$s^Pl;<=_Et2;$N{iwOhuL5 zSFukD3r-Z*wr_opptHXdX9@t^aHU7cPSwi$_$Q?T!5E+Yfz+z*iiw=K{s-Xk#uehx RG8_N^002ovPDHLkV1ghXm$m=^ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_22.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_22.png old mode 100755 new mode 100644 index 67189811d89055dff6660f1f2c4286d65e890f68..72a78cde2d402c9388161e48d234844615cb216a GIT binary patch delta 1099 zcmV-R1ho6y64VHg7=Hl(0002`twPcO00bLJL_t(|oCU!POcQ4S2k`&*^$JCKR4UqK zu;Q$S6~+)tB*DnR7^_ZPs~oRQt&stnlaMV&v@%bD&1ZsB6BkXan^B~&pw7^2QHr3T zLoEu#fsUFfGghDsYTtMJ{h(k6(jH%SE*}hxT5gf{M$+vGDt2$b z=DgajGqp-vzOIXYLnP_k+tOgDzJaDbO#LA|o|#u=y?L-UOm|rItUuym>=QzJpS=@n zn`deeLs1>t$bZd*(=~ICQf-RL2H(E@UKv9q%Xb`sxWl9^ZI|Q){+UZ-Ct8GZQLj^+ zt!9%i6?76!Hi6NcW0Kd<7YWl3R+1vg#*VRwFva^86x(zuW--s<{L{~z z<)-b8&Z^HcGV$O2#;%`GF|4yPEXh z3o_=)+RFe=^{!R}3%Ou8E({KpAnfnSDRHWEW~gGAx!0WwV0ZK`xeL;`$``c4)dHaU zpaVvbll)D_US^#@=834doS@yF0&Q18Ohw z6PdR0*>IqIKKRM?kjtxRl@Je@AMOlcGJ*lVWXvTau-EkEPy~7)Lp0Sl55tPbyqo%U zUO*tlwk##$Yt9Mv~7F>=x*hKh+pw+-7i${D#LVLArDBO$m}E6v7zu$s)XC*nd)qa39K5D z(#=KR9)GSe*E$jcE|HBhVSKn+tn3t~dLN0RSL6z5<R ziI=j4=++lBx&1~eAb$Ka zy`m?H$i}N$$uDp4iP%cI%7l`a+#4dNEkwWR!WDnr>)0B9wmxJ7fx_&?hj#9T>n RW0C*>002ovPDHLkV1ibaAN&9S literal 2396 zcmV-i38VIjP)Us8+6VEd=o;ySl946lj`PSz3bj}QI|YD};3ENC6sWRJK@dCder87?ham?r z2RgxHpHV(SB6pn4~B8qziE$@b)HW%EojB1CeK z4EZtJUmoR?Kx>R8Qm#2EDExDjB2A*?tEZ5r1S8O9tm$ z_7zP41(l3hC*xfwRTaZ@L9*2IP8-Vlcljz}`|foF@u(opo1-vhFk-mcyH_ek zIaeV-w+*QTbL>IBtdJD>j@h9Q7}3XTU}lmPopBm-7^0QnJMvgNbNH%cM!{MQK0Bw9 z1?h?6bzh%R8J0O&Y34MhRL5aRKBFB7!1#2Mi`kp`E9$fzXMau#X8Rc#BLrZ*P6=}} zzDk1XyaUh3aqJnh%V~v3K1yn2ODC90hAPHv@6Aun0L+n2uX8d!J44Av=ba4C>uOJB zm(n34M8}?)wxibAJ<|U-0cLw$=e+YgE9jg@y$3_1r z$VsYyW0b-Z_+n)kbUD1UVAVJM9Bt=i&sU4Lf)x7RsNL+720N9T|; zyKSdJ0QRgZ24x4br&IAx9NZ#N==FvG%t1;ar`L7hj>+i4Wh8|FXw3~m4t9ku*_QZ; z)-%O`GJPF?#AhcGu6kWIh$+g>cQe0xUg=Zu&AL~6cao}b=EuCJ)BA6NGeF$T;LUZK z8+0X~eX3r`oXZe^C7*I$Md++btcsU|n3Z3$pUmt}hQ9bS(<>`v z$vVf+)#_)3g5;~V<0gUPbJL3{SP4a+xkqJ(A%|vC{g18hM1YJiv%yzL7Wt^6LN>bo zSA3!`UwHu;+<|XaO{>9n;7svTfn;r{nk^WqHX7~e_UvvED!<&%U-3pcuiLwkBblR+ za1Youx9!`>E zKWDzmo|Pm}d|u2cu27_O)yFF8LT;9!63s;bWJ~_+w6(n7K}4qwBfU^NX6@*eh0XMS zq_i9G*1&mcyLlA^@Up zi&2S|bx=_4RD6e661@FFNZ#00qDqP<$U&MIToh`BPSxoZvM+;C490MyjdYae_z=l$?8_X<#P_*dR3%{8gkt{VnRND!vNTjE)E`BcIAY zGp!TJLo*PPd9vUm#<905$2wDK%~qL?g)M)Hwm7YpK|fuKWBCxQ-(S8rtH{m60jg6SVKCZB#57J zuS2szKrJ96(rkgOoQ*tUGQb%i5^^YeMVuV~bC73;9j5<`E{>z!`JqCvcy4#~D_LU< z{uZF98XQ;O0+6ixn(blF(VA;xb;dzWr2A?W?@W|a1uZL&6t9xNp(v9DQ5meNcK1Aj z^qNV`Oe?7A?nQorZvk-=>t|@7nF;<)D{lo#Zk1fSsj_{gdKsETq;cAF)Kww?GA=8E zlHl8k%G?1gFpH-SnClz}^gUkz4BAC&~(Mx`jfJAkS;nfp1SY6eqn0lo!9 zVTyS)w1QSOWHM(|@>$SV5MU-*RCRXw&lFU55Py4qUDw3~I!;Fhqv~UdL}EkEuAynB z|1&+1y}O7Nqob3X1UJ3?QYaJXv)a`r`k)W^6&jFGDe zY!b{6Lab`m*-0}p)GUOak1_B+6xkWP6m|Jz`EHwV9P{LUMIGH8*w2(J+}R&V{sR#+ z!Rwrx3CwCTAaY^1qjQ`UIy$T-pPIoCeY5}vz8yu~;8&CSE)@6{rW*?hunb_otx3MI}5m|7WG2+&a87kf91v4)0|3i6rbt0Pf+z%(ixr@|C?4Sy5f%# zwtDMgdcHaacLURb=%<2?5+d(xG zWS%QjCDTmBSNo0&XdR7LZ9plDcy$c_231MW)om8`)%oe^-n>7?`18MqS4MXNSoJ7} z$G6CFW<@KyyUA8nvWoy8x{se0P#Lk}h~1U8o1DR^IzLNF-fEB?JN^TP4Vbp$QX}mE O00003aGA diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_23.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_23.png old mode 100755 new mode 100644 index b770f32088c543b70ba617ffa71b3a1bb7a7fb2b..2a042e23e9ec6d8bcb844378e6b0d03e138b564c GIT binary patch delta 1085 zcmV-D1j75?62=IS7=Hl(0002`twPcO00a$5L_t(|oCU!ROq68+2k`&%+zTEDcqfK~ z&4bGi0*=ZQlKH{iDY7>U2LYEKGw|ymNxIx<0@c09ny#ebqRpf&5DIutCc(^`Zh1@! zjgkX7aq@M^1dG6dKU4Zh!H}c+qHcBENEb_N|Le zQ=2K^OIgTP+3HMnrpOle7H)a->2y^E0jZ~^x|7K)Ck!|KgcJ7M!ffrOGRxAJCqik&j3^xk_=x-x zy|y*;Hc8YG6x16kRA%~AJ=eE`7-ffVjE4lTez{{s+4&tC%p|ED((lRr702~1hoQ85 zJs0)(r#IS^E&T5LH=lgw*Orpjr5*z#OI5;LkymEMCV!gPdDkkwW9O6VNxXl$*N4+$ zU9mf@H?FbZlc}qZ>yqibw)3mlvjYFRrYjxzwZ1Dd=_146I z((dKsqsuBC*0wpW?IdaR_SFBk?e4SoqkX#9xUQhJ(vp57pAZq%{^~YMC>;@eki%sg z2m&@Z^MB$vjnuFXsCkf11bD1mI^8WT0I=I!&?DmH<$LtVpcOuI`<=Z?0GDE^nuT5ddU58XBU8SCB-No__}Z-HMvCqCFgc(Y#R_N zQ0h3i21uXDvBdwZbmBAE=iBM}Me+GdAskmnlp+fBvl*FMek8#zzBRPT?8WCE?^}U4~THIaOD6$f+l#VvDpZl0(~0IgbiTVsVEbH zEcO-xL*`h$#|rV3nBV92r#+XsbtB6P5xKwm^Vwox);`YIUjh9Kbbq)2kdMol3!o^U zrGIUc0l*P<-VPuP+tbk6+L`a(DorvAW1fK6!imJvw>lSc0PqG|{pb)gx~3|mrxNR7 z;{nl%$*~evc#G|k+&XqU;LJhh?VaNNVRpi=WXvLoi=_JBwKqMnwKp>TV1x}t;IZ%W zY@L?<%$P@Fk~l>h4mExV6FFo^YBqMv0svYM8II|uJ2~i%sr7KhUVTVAKs57!d1H1()08-#1m?kVr0OX;WG0(ZuRW!UxBLHCieT0N~PDNwsjPg4HKsL@D z#@JkUI#PAA7y&@M8w&B7LPO;kV|D=lsIV+HWVrqZ5=_;k7k#Bo00000NkvXXu0mjf DO}!%* literal 2398 zcmV-k38D6hP)lAW5=Djln9iw!>J!*}!2W2Xokay*|N@!)Xdyl@V#PflScL;-r zhGh<8+3PAwIgIJW?wL+38C6oA*w1|AP)j9nr2tqGyd*#s1+uJj5Ty23ujmNoFy;W| zz)JAcHOgm*RN2R%UL}F^1M--kT}&wgWIdD-gS9LPT<=s)W4fZAY7O2yo0WVQ1cpcz zB#V?KwrioPoiO|68rcHa24ubqm#nvTE9Sm$sV8%Wf?lOZWe>hn6`LU=OLk_HN`}fl z^p#8i2bGFhC*!M5$|^?b!eqJkSzTtOs_2&-Occs-1Pn1;ix* z+gqJI;=XFzb@7__kEqOU?^a569H!*#kgFV&9qnRQBxkSVpYh4~RuHp-kPl_7%h+g? z%Rsds6=F#c4ORQArTN`b3*Q_NfeKS8Y zeVt#J9#6J8F0MG8K@BR~xuSe^b-glD1p$~nE(p=SDpitUrR|{qonO$;PX#NP(25dh zyy|)J8fD{t=PXybtc5tIFrA}}u5M^khKz1)*Z)}pKPw8ZBmr{*20QE5OgHxYBmzvH z4%I3;utHEl$tss6@JbP~M1SG~7Q7WCU{%N*uN+!gTj_Di7R4vNQ-Nm*oax~9Gx%n_ zR@<>k`Y~VzV3Y~P{p^|RN6tYjlqFAw0Iu3um7`4N7iEt^PPC_5d@c!8yyy&&1zR~% z8K@w?6KIA~@wwyGMS!lX3JNL0pfR~|-D*2l_CA$UP^cp`KI>x{Wj)vJV^zG009nOn ze5<6AV6_dicFg#U5q=n?;JRyA1xj%}eyxz($9grs&w?Kb;q?SLpRWWz^1){@#t$Vl zqnI#ke>PX_1RLeB`_39w=@r>0lVA+}eU9q2qHA3L*Dr+N!fY^9&sY253Uyi(-m5ho zI++A4QL`Bgugv!t_;~+N0~&5%En=nmPZJu-5+Xx@D)c*w{y~K6`U26hQk0Gt3;evN zzY(P1!u9uT(ta1Aqp|?MBQeo#_EnY3`nH03R-8;9mjo{}KsO28!14)li53IG)^`TK zjxG!Zc6`G8UhVyA|8EOm{iTuwxV|%xoFs)t3Nlp?rrs+9szN`k{z?+y{;UX9JH{9& zo-Z?inh7d{U)CnxL23rTq*m+aGX~$4gs8N>ZW1_KPx$$z1vq9|ra9$KQVdKaHUqex z-*FhqbP18!+^v4K4-?xVa%S6gU4On6%&xI2s)OH&BZzYGOrxCy2EcH+xk5$z*hG?!+fO z1uz4Z@~drt$-?*O6s3=oQPDvK0q>Qb%I0q3RfCW6I>EoLYh3^Dsm}oTtTJhzM1(4& zs$i?6ltNl0&j6qHT zaUpX+Rxxb<2~wwoI3wWD#dOF};hVIIlx{G`_i^1A1OXhm0N|Qcr(!T;P~8y4DxiW6 zl^*-AB#0t6I%d^Ypc0G)dQv5rEA%f1b0yijQ$PCni9zi$ueOeurBMNt z$DYS$y8~r)-a-8Q2cO%1#TbJa_i5 zBET3wEnq4U4Z-SlRml>^RX>|X6_04(4y{1zys}w@%^fSWo7|B{wf9G#zx;7%S3%VZ zvKb_;OY!FoIRuidPg;mEX{W2I` zJ$-a&Hv!^(XAr#apYH@ZC02spB^)55jEt)56znT!ofr_Sw3}orNHF)Me;m3>*rPiE zeTU-}-%9X5kqliKYL;=qXQzYGABUn~Twk5^T_(OO@Jg3S)$02sB4ku)smw0+{8=$R zGU!mnY2R=vCNZm+c=Et?kxtGADjA*33KHP+xR0I!q7ZlNV@_kFrgvuCr%45WQpdJ; z>ZoM9Qxg09ate4k0*u!-&)XjJdNMOhMz;j8eIR5=QFW}0h^|Nr;!>|EUq9-HRX zar4^=FouWCNT-J5ovYKQd#d?u0hwWyj91Dq9-Z^*r|47qRD)gBYe(<@04_JN`SGUv Q9{>OV07*qoM6N<$f)^Krl>h($ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_24.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_24.png old mode 100755 new mode 100644 index 4a899faf2fa41977236c1259548e27ee6723c612..f26aece8c152342ba3aec5fbc3279ba76438c495 GIT binary patch delta 1098 zcmV-Q1hxCx64MBf7=Hl(0002`twPcO00bIIL_t(|oCU!NP*i0A2k`&*?ORxsICd#; zM7c~6kO5p~EF@MedTBP0?4p(}jtp)MG8AKx4DK`WOdPsqYHUWDG~lf$V2+yyJY)t@ z8M%T4l0)$*6yBy>d%UmT4?074!rg|6GPb*Bmq zv9+6;NlY3+Zq>TdfFk;EiKBBZF{!p+8u9Vct!niC^2pj{MI^2sN{7C?G|w>Jk$7-# z6b%`y9I6|t;n#O(UDLZ`%Si3~jdhI79}pZCumU8|n12iHHZe!y+!`+(R4+hsr8?InfAXfhZwZeThpn*CVKp( zIez7q{QIidx_`Mk*VMH_Y)d@ucbuZG3l< zwBtv67YGxgHos37#q5O)Yx|4=kp?2IB*io7=bwiE=hwgSi@QFGJV^!ww|cTkiZ1n6 zFS}DH*OS@>_Q@4Zp}sn=LvQc&PgQZY!cPtyo_{@;KEBHN5J*!~)9F_*hg&7#tXvXW zmhfENqZi&lUXbjI_??}akEulo1uA<=#sOoq06&<&>oa#I^iQ2ol>TA&6yq|FhrsR| zVr_7+2iundTn!Z$ATx2m2hTr}u6z!h+bx{t_#m5|Q2ZrZx?^nQ03%xgFg0HVTB?X_k%NQ6Wg zV^-%0RLnPx$N;F8G1lw~ql=tUeI-Ea1_S`EB2G#rf&*YRJsKc9SWAkZzb1bQKtnXm zX#i(3J)|uP5CGT^%ow|sz@>S=C~5%E$Ho>`0VAA--Ae|5iOdGI2>0v%1Coj1Z$dyc QCjbBd07*qoM6N<$f>E6fFaQ7m literal 2394 zcmV-g38nUlP)Qa0h&ty|a55Oj>v0r#ji&K{JhY(n12bCuA_X7?U_mBjOjjIR&| z4-M-a#a)sch?MMOP_L4}`2l&XdlyrR09_Ad#9*yU0@pj0)0nQPr&@#8&gPwDWQdd? z8S^9Bl(bOQPMCdbjcfsI12Vq~m#nu=E9N{;sV8%Wg5FdQmyFeBv_C;c#-G`wk|EiL zzLE*xpi(iLWPIwRu40rfOqP2;X+x<0l&>STZarrZ&kC~cbL*dMaTTTvW(=?P?kg4J zoa+!^+J;<$CH631c1X&6r|fVD%;@D9h)ht?9j7UWF}f1`M4oDA3164YELc~AulBiQ zVS2K7t?Or1Mr95vt(>NmnmCNfS9AvgC_axJ`U6S$W3@4lIPcj^zyEUC% zP6tGYi9I`Q$30W`O#kl$*zI+b{mFY&Fxk&~9pj_cbZyA_gX!hurbw3fDbcsn|EV@J zC%OKKd>nO^#hy=KlJR5L^*(Vbu21!F{+QaMP?+i4wZ-#1|DOTUUY9tH?N2hE?PJcI zww(?E)Vr=2oE^-bNyR5|NQ=aw*AE0x4sr@5y>0?`O2!l}D>(#U&(a`Zusd`?Tk0o! zj#LAx^iBLx-#wXd*Xz(ArKs9J&HU+pr%%Thb???DgaJ$16zZz{$n zI)fTicJhhx)u-!~%DD;wm_05C9d$*b^mF`D|2w~+pT88WbV3s)&`8%S71}r_rIpKC zh;s_lS?y)IraI&P`rNghiT}Fs2Oh1+coh?a~r%6!x zb&#JTr}9hH`%4);4L)WftHQ)NleI~YQ?@8RmEXjcD!;y;w2-c9ciXXRdp~9XM!UV6 zIg;^qj@Y3td6F3b*D`2!`l>`g-zYni-abtN6)!piOoX{$seYs!=g2{G$7>e>uIiAW zlcGD5fbso-04k7a@ZIcCos>Eu>8)xX3*Zg{xPISNd?zoZBnhevL>LvTYUlUw0vKGU zu#b*%Rm9fg&knhLtS94p7X0dyMIGWzY){Blup-xvasQ8B1|gH3-j9kZ1t-B~P{#D$ zU88hWm7eH(XA&Goo`i~268!iFA^6h4K2xGgiixtQj~gUAISB%wY*zgfx-$uO>{Bxe zUO&}0ob#vRkw7ix>e+xCI~~#WN>AHU)S_s1Sz<1inH0l z5v%N-s=**BlwjBR?8?B#2>ro+CT(zi;=JZ&81?>T2xOD2N`h`$-i5!NJ>4*bNs+?o z9o3Kf846r!70Ez|>t0#_>+2~JxJ_Ud=WYsV0MK)g7idBreKEXY1qf`2VY5_L;!%l{PR9wljoP6XT`s z)9O$3P3*eT`Q;)Oc8%5Rz%+Bu4 zo=@1D%412u2KATk0qR1Q<*JXm{dZ8E{%aEA>BJ3`6Bz#FV1~3iSa*Z_aSRb4>5*51 zzY`=kfU>!!)9tP`pQLm)qu&HB2FKx#czbo4B`=cBKtHMbpt#@@FQ$Fq0$j9~alqSJW=ODHB zPP&SG3H%=i`Qy+Dv(=~TRF29gFy#6&%9%Q)YeA|Fbo|~)cMX_qhN{nxgZu{(Re{~$ zp&^r50v&+KHKi`O75$}(zJpX^+y5Y9CwP;6JJp=-b9SxwZqL<#F=Y9RL{9-p@Bd~X zW&pR}_5Myq+M^Y`cl%J6$v#E9v&&sGfaCe4gx)c@Evmf;*C$lx3?&0)se9D3LxOd` zLw}*_yCnWT1=I~G0;uXur+2m=iOFN{)PBb=*}GHycLn~+$;TmJegBdGD0pXZQ#_o) zi`Ql;Ej~YgaPgjsj zg56WaCy)%~v*6R@emMdh{TDCJK-b(~nix{)Yq!Y~6r||ff zlOUz(@$ol4t6Zk<%ddl-;#VEuocrknIF1Yn?r32h$6*}7jIGjBG?lY5^iDfH4VmPbmybxYqo4zo0~!xA&U1;%-{xc8 z%E5Vq;-R31VIqItY;6BupAR%bTaw%OU&5bjkFP$tA~}gDOMjKm)$+oUdFnUX_MEuB zfGBInYIjtfUZRTD_TG>6`U&ScW3aD9vv0-0BbPH0atPfr;#bIyp!r1Gr{3AUl_+Aj z&9yI$KfklJb%DMhtB6*;Au*w&{moa4`d*^P7X84zTklhx zyem4tuF6a-`hR565TRuuQmcNJeW&YJcUcn2TNNi6F9w}ok{mPr%pSXuzEby{V&G7#O?M?yPzOb& zal+gi{N2ASWJ>ZMe`@$&jPj&=dZS^2n5N!z-0<5$;NoVV=fz)zWE47aGY3Yda* zKhKT;H)iwH)PVpX=a>XM08{OtR(S#_PTc<($TwK<5v-@{a$S1s&?#9K@B4;iuCD*Z znYQ4Z-4}-0qm3`)5H(XXkRAQiCX8;nQ82AX`={nymju#rRVA`LgGM~NU7yQjO8`?8 zGJjSxQHim8Ik`+`vMe*kE{q$w@%D%b*!_AH0ib7XR0?|=!-q=u%M1YUh;}ydE{!hd z7yzJ`7GPcbnj23xn)4P-Gc79|UqPz5o7n@AhTq?>sH~h~#J7~=s{0=H@EsyJKZxb?h3N8JYhj0B zvIG<|)-n-Je*xi{0d8;tfWPu-lvfnJ0tN+{1NeLwCoUtF*8quEq!7S!frfk`@JEXQ zpXAjr#_pCAPhpKV%>r7z;Y%LiMlfYKS|9)<8^n|~W(0hN51&>7s09*-p4M9b2k{Nd UNu{kpg8%>k07*qoM6N<$f}lzoxBvhE literal 2418 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 O0000^Sgdd3NlGPoGv+F7KFsGX~pBc>CD@m zhYl(y@UP;Q_@jL3iYq}fCdU=s3z?PC%uzJnIl}_RXeap&7MZ=3relcNgSJ&!OfK_f zQUqNb7&2GhD(h8+cS&S3Djfr9z@~7SoOhj5bvrv;F*{UIXOs=;m{EsB;ODsdz9xr#D5iE{>hO&Yo)j zOBut0#HuKrl}uJAQ|V8fMS1MHe(sQLTFgqn@-_8Gq43UFysqmV0niy{doS zg7#f!+4UlYKuI$wJD5L7@pSP~epP!Xa$Xp`Zq_jeP`TsZDS{oi#K5rYE|Bb+`BlH` z#wEr`@w+&x5mc|!e7vT!P8o*^6#ujcQhvpQ_qzgNiAPy!9M+kx02R6JR}EONyL=u8 zL4b7Dbw*St(oRDZ|@txl>h=1>Rm9kSqk^wHUhNmVxEJyr$2^U~H71ESbvAvU}3`iU3d9kj!93m`rA8S_CW>ZwTNzG#vxgNi{FiASAO@@v$UM z5I~)C-#O^MgJx_LspdnS3Ez2^{}6&uvD^7cC*gT~?NHje3c^`}amT3NF+$jVf>>f% z(krQP%--MrH4qi=%zoro22PUApp4nQdqx$r>h#3kCyU@X^ix(!76Dk5IVM+mZVXI} zMSD8LaWp{y*ZmWEvIr8t(O$Kqd?0{Y(5eyzJF5HBTH$#I}2c!G(3;z+#<^CQpM|h z?qs^AVDfk4)}3dC{V@WZa#uaf;S>Q>XDhxsH&G6raq^zn0niqQ5Ui-CXsHTW?LSE& zE&jJ(0x>BG{C2xS=a@1sC8pOEs`{LEe`0Uq*Arv1>grHP+4HdjFc@XVqoDOZ-2rMh zu@3JjwZEQMc1+2kW}>tE&grOn*m$Y$Zg+WM@K~Z9e4#QnbC}^f$yT!5_(^tvMNf33 zvJvIG&P|Eg>l%s`!k0>ZrdRzttAq%Wj$K3sxdS*w%AlPcpz6SD=K$VQ zHg*Nujf?K7A(`QLwl3J~^OLBP(6WX84$zUR-kouh>QXavGVj%5_+;>zJ@x5?op(zf z`~HdjVbRA9z?M5#sR@5aY1OR_u0w3 zd**K_%O&`zE!X|&Tiof7Hyg=brV~NUs7y8k!Ypo?$b@ZR>kn~$Dv4R@;asN zT{%%@?IJ<~{bnAq_s_wA2E)$E=o50!WP-Qsz-8+Pb#>gcD4>3=B*KaMQ< zj9)F2$zswukn&Xh>owuoEu1Q=zW&DKAII_jQ}A)*@ck_yD46pq>RQHbcc~{S$q{Qy;r+~_IcXp@SJL5-k zXs|=m@$)C22<|-ju$a=P0Azk*ajRz?Y&)2$-HzvX0#QFtil9sKpYC!;EOr==FW0Fo zp;d6we;kU&Oo%-R>{2&EI#QkgwvAD`;-cZbr&c0x}k=PBxt9O-KkfZuv<|EZwjQ^d|rP-WE}r_$4V zfh$y{n>{+yN9=<<1)!kG)~^h_3*$dQcZ*=jK>AIelDOhHemi#&39NdQ@XnazvF%S3 zLHD$CNA7Qvv%hQ5mvdGvOAGqetDeVAy&Az}t?z%Eej@oxZjHm_eag39UGgg*+WP7a zCBzB=jc{A|Q;#}RdU7FD@|_;_XnOZN`secV4+hmdIGrEGQUCw|07*qoM6N<$f=Ct5 AeE5&&pC{XJcW|)?f42#9!7EO~|=y(AJnm<=H`>6gy=SGiB)bsJu1b zV{l1)_<(|#f=1>JhK+Wp7VZ4KZPjl*BszYhxb4f0EwPFH5rf0QGg#T%YtOZBjqFIz zC@j!7tR=ORw^NlaWuw+#vjJ~hbkaJtH&(*?sog_lb= z((cA4dzsOhnjU#?4`zn#Wl6l+o*1V6*{`y1r&VZbNtmPyYrf$gAL_Qn{FVD3mwqOV z7Z!v&RjyKled%)@Em&KF!mO?wb~7=u=hm>q7QffaHy^npPYV%-yU&t7ZGQQ?X6lWoQCnmT>&Y zUv6hyZ{^>&_6i6UkY7TBO-C^dbK8W173ju@U<&UJH_U5%LCR==DnK4#1 zd4Gad`-=d~E(S0t*hy;alYkcHlo@8ACmLEGuoN#2ZP^cC6p&+R=4D-1P)x>gkBnqE zV8o`rRo91&ALQNh;*)O6p~^&%rKD_@n+H9URnbvjS$1S4L9q$r_3 zAhfcW_)WkupP%uf>#mT_E)f@1J2A?^U!S?>=s3D)=dEc!1OWXJ~V5Y&e0677RCmaJwbl1yqu|_0q+4gPeLm_ z>MIM4&!Dl$L5z7W4e;hW%l_C5JQdj$BVprL`6!>mL|>1QY%#?OIJW-}+Aq?9i=zmf P00000NkvXXu0mjfeiRvL literal 2434 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 delta 1832 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 A%>V!Z delta 1849 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 delta 1548 zcmV+n2J`u@29XSq7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000HUNkl;>6J)h6D@pwEI{M~Jw zoG^Z!oVoc=?C-Jfpba%{H6G9B^EuJs5^iyZ&O8Nqex{s%+kfE@ACT-OHT~zt4bE$Q zInCqzbF2~jzW!eUf6zk;?V8X(1)rE|VMxM$cN?1%6-FyK!_x!jmjpqL$*tqGslW#$ zuqUJlPQb|tJ8jjRVfd$W^h!GyqZJAtjEdo7PA zA>RoZsudlaF@I-MS3xA>@7jM-0G%W<(J2Br4|Qsx%_I@90_Y-1lIG#ee9p+hj|V|V(t)pDy|izt8&5}A-rOy(M(gU^$#Ne(B7KomgdhDLF#q~+cT za3a7yOLJs%X9e)ndIS^7!#xL=BSgktD^~>OBvAT15r35&sYDN(7bbsRUYY9=1)wD` zB?@FfYTZ)yQbeTo%i;p5!hm+-c> zJ8P&rk$))yt1ZUoMP&x*&i}L^^S|8ZB0FYDz_}uhNY-PAedQD0$CypzYFC!BU=b+4mF?e74Vg5a676 zmVYu_5;hqpXIL%V&JA8=;&MiS2wCWSu315Cjz&PIZ8oeCNShmUM}ySY!B%kLFB%?q z?VIg<*krNt*<FDl+jcgjN{>OX?$*@yY6GF2r{lplK`j_84&?C2WKOFkJ(Um+cr8zCbS~R>LjWKpgASc zND#4s_G{^yK~g@W5nMJbBEUFW@J#?zSk~M}9!FIseU{KK+3oSVTG3rOfhz)V1b?QK za8d$iapbKUT@pbCOl4q3NUg@%N3aNyvcD;2sYJ|x`EB6oV2Vsia$*R8T|bnNP2&CVNHX(skA$ zcnMtof$hE42c{$t9RN|}q$Ci7c7HAVcb4R@GHPJqpDTG=1OO-1PF#g(*AI?0;q-4v z*MO@Jvyuex8t{@3JbiylW9zo_H@MPpgaBRx7r(@S^H@OTJX9W&;e5@tV;L)}L?i`} z)phDf2)*EvUn){ehy++G*y}4*D>&-FjGll7UI%g9EbkRMft`HMKEL$=GJnHVCbTua zrvtd34!H-A7=Hl(0002`twPcO00V$YL_t(|oK4eTOj~sr#_{j@okOXVfrySm z_|q(!Mc4{8T+l(s8E7;t(FHj}V(LY`QP3NNWigB$jk+Z+ELpOf#Tc@g)G!!30>7t(9RR0y%@W$BV)Ay?dU#c|TV#Jf80PWPjK_wwo4VPw%W>o23zK zAn9;)WGvxGlD)XQbbR5|hBhl6x^|0=N#FXNnE3B#&UjhR!6*PybQNftPlnxN0`6h! zZ~}#w;)DCk6nKHH@q%2~^v2HZD-jT9PyLgC!xPPIc}D=mqQ`cWnV1A*+pS*@faVH( zwtfKMq`A_zqkmM636S&8m#aHU)pH^b??&PawegV>l0>C+=H)WQkaQdeqq!}OAP(0Z z8g3g_IXW_ys9b=orC(;j^saij23 ze6Y$8a(<;Z)~Ehuu;GoJ3n9FTZ#+@O$UGotIGWpnIDfOZcG4#zMGNZY>%R3rks6Ba z&Om!`U+>d1488SLKi8*1+sR?gOwjbX@w3z~mDSmufws=h`z4x`C>TvCe*`bAc zch-Fyz;-b?GJb$~Lt16lH$c4wgN-S?n0bw5`ArnDR^mUCC0uK{eu@AtHe ziRLa(RQXP&pRJ`H5VhfplfG76m1Tg^ImvJ03V+n3(#nV8%eySTMri8t_5)MLar%e} ze2ZVxdgr%QaxAq%hXs}|TpRf@t&(F6A}_KaCYrlEKLOi7aUHs-4PTs8CAAJ9d%|f~ zx=maGh{K`m5!2|-cr(fRT@&zt^`eP1@^qMIodPRd5XI;E1H&$Um}gYXGdZINxUDm=Ob(k7&29!gRL zE=T6dq)6vclm^5Cw;Yz*kd@J?&YXw45h(GD0XF~}tS#a~paM3@*aBQw`oFn9Z0n{s R%t8PF002ovPDHLkV1kJS)pq~@ delta 1826 zcmV+-2i^F&2c-^>7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000KpNkl11azNo5I;fCV+3ZmqSWeKCdOcpu@mZRgmw zZRa!VvqWaRk6HR~jy3)o-Sq#0<2cUODs02!Cz{V;%a zK%U}J$irBPEA`A~Vs;$$qAfI&G^GSw84P~`n1QQkUyify*1B`NeS3guJb?keJ-`Dn zRg073mfk*B8&~aY4`u+ZyVjmb+)<{OTKv>oz&^O=UmKNz<=Ch*EXR8RA?MuHt9Z3o zy9LaY16Hr~{C^y8g$z*Lb!$;?J(F{;4uU820B8%#JktyyQE})Q+JD-u#5#PY7H7vX z8Ah3>Gyq1B$#O5+@5p?_YTCEi2ljYihJOxv=cwpSp+nV1y$ni@8AY03s z#*b-^u7-E`)#U*7vJ8Opmjys&mLt4uxDzwA_^Mk#|9|-$Z*U8U4&U3nL`9ZsoAcy( zy?}LiRgLRYZvoL>PX-uq{E95cOwn{|2NT(8&8cJ%mi8;k0ecIG67dXx>>)71y)0*% zJ0=LC?%$$Cc6|mc?N^ioPp`FK4MRPE<(y2GGn-}|%i4)fV6r7!2H9F%F>dKac;__T z1bQssF@Hdo_B6dr5HRq9A;S)Rp2s*dwD0L1Wiu)OEXPK*xT^6%Ff3tFphcnHI`&XK z2B@HYD+r<)>v57b0KQv%U`BwSdWv99x(glnhFL%Jyu4}>>tNbucn`Y zdJ8}$7?DiINL11u%MuYRX6ZUc;5ogz9C$rICVvQCqggJ6M|4>=jvJP95nA@3{Sgaf zYpQnmn$uRDm;9N>coGdeg==8?r&5$@BJ?$$q&ma=O*qc=odAlEJoZZTD(DTZ`noMsJKspvkvvvVtjNi-)rZ$k4D?>%8?d{;Eq`|lxWazvXj$szYxioCWuVv9M(an%H5=Gc z!5nf$o%PN|dp--cU-6#rXskx(5d&n_kBn;@idaJHQ9M*MSzgAkK!xlb57Me(sFZ02o;B^mBpuHZ;hvI{CPF)d(P(5tNaU5oYpnUcs%L<`yoO1G7X;O%V+0;E zxAyaGpw?h98)GwCA{v*Uy@U69iz>{@?%lrZ`djBPddJ@@2{6e+h~*}FmifEZZ+Lz9j^5z zjQna;mmW-jKGt8C-2x)HcYkMQ=HRink+{37M`-2vg8`&axd_KmXy)CMtI5A3Adsc9 zy#-UsG@4)Cc=o+$x|iJoymBDrXh61D4b9%DL7 z_9|E_Ss9)^RgSL?pyl5M$oX;uvkvQWXJvUZwG6h_Roi3fn$>}cU4Qx)LE3oMI3{yE zcA5o4`PsEk0I7_?*PLHtM!j2T5E4RcNFB&w_F@i(MT|?JUp%Q zo{{72dqy^vqSe@1d;hE0i1yJyuW5^#qDqW7cXUnE7tCa3HfcusfscJ3$NTRA*joV8 zv1@(BiXhPBuF&P34}W5IznSchbVPxEUIQcA&tm3UH>+c1z%hHOs?W2ql0)MB7cs1{ zRgSeHlci?Q4$lFjjq1vvS^?{JhuCpK5xUM2`F-LnlE8~EPuP$VjtHj?Gp z{p%k^N`qJYvct<8 diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_31.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_31.png old mode 100755 new mode 100644 index 2502b3f21c45aa3078d74bd8c73e2cebb2a570c6..9cf2edd6f315e92f44072f5eb50424317b643d3c GIT binary patch delta 951 zcmV;o14#VZ4#5YI7=Hl(0002`twPcO00W3gL_t(|oK4ezNZfTC$MNUq^ZoiG?{b>3 zoz8Q|pbXvaJTUN*%Wpc148~YGlQ6~^(Uc%Atwl}0)M)!7Y(yhi5n_MbCbJ)lEM(@l zT_v;wPdCxwAWhlM^g6ZE&UrujL(9GYdcR-1;qlM=4gZ&SI)5@`A5?dOPZdv3v2|zW z*)IndOcA*gn4ErdUFg1GZPXpTHFsZ-HDYZ)=-=v$jDXLCJ=) z>%$^#TPb~5f`4mm;WLdbWk5*8nWwF)Q3a-hesf)wM7-V6FAbrycEcT=FwoOxf0?x3 z?AHn#IwqTs4)a=CQDvmR;fgmW($*?^4y8rP|r$(7A??R}j)DX()(_fgwj@9eo z-(E61_P0yd!eyslHU9j`$m;i->yT%5myf!ok^JZQ`hRoo=xx-u^1T*Mqi^*#CSTu+ z!NcNO_MO`3j~9F29GA~LmaI7?tQDCSPkn34$|nS%x2}Lx=GA*9^6H7W+?#>mxAQpZ3iaA{3 z0MhecZEuu;nl`6j{SG?0H`@+sx$pd_yJjzn0)N1i^!ocotXUyMLWgW%AlSRP6w@(v zX+npuL~{(=%eLCs_}Y^OSVm;G`WyLZY~OOlZpPH6f^keyo1ypa0Ha3l*S-W+QxH-x|u$QuoE!GiMbebFD z?2B(bk>f8NdH9J8eO86S2P~)nd&c7$oP^vcg+kw@e*A6eaRW0Hq_db5%hIU}D#SX( zm5L1^_F-#F_8=21?@0jicY>yrMq2W{t1ynFZb1&qy`bm@i9^7AHpm1d^rwUYpsuF$ Ze*siOXoo>2P9FdO002ovPDHLkV1gqm+gktt delta 1879 zcmV-d2dMbL2igvh7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000LJNkltts#NsufMpau1=x3$)e_Qe#A`qmIdaHTkahm7+|t_`|BpgL3E%}Vny;U+y52~ax52yMIlsCbXuT{0==nnl zkPZ6mDM$LP({LwdYH?Q1>eb`@`zdclw}2I={4~$rdc_SCj)! zuhoMf>?01af|EJr%%+*ZMGc_mkZj3_SSM49E99154bM;e2%YN1r6J7N2<;)gndV4; zXIUiUn}0s;CEN_{dwNIvpPkv571$_wsu~{+mL*tt&daRrF+c_FGl}jo5Q5nQM1l3j zs%cN^U|GVdfozaRSTPDhrC*T!Y|tgn1jx|0SI;Zx&D#Xa5_&IIA|R(m-z}gZtttmz z50FWMmo!Aax?GQSg>rF3ZxU5y?3xc(hg+6c=i_W26A9FwSY%t+w% zvmWh74O}Idy}bHFZLBs@f0y%^=PTrTV{+~j;4x#SU(pzOR>npqf_%01?-n49mkPBU z8MKo2nIw2h@LS8>0;U~P^`5SGd9x*`X`4KtVP{a}_DLqs)S>B1i0+HVkcI`;3hDl^lg_YzVgbDB{5}lqvkl=)Ib!kO-U52yWm$@#^?%7` z$xEbcpOKl1{7{t;$8r4sw}1=-SkG2cxjZ!N+H#LGeT7WuzRs>48PU1i1fsK5_)TCSd=~+0FMD@bVSUDFrw#iw}92BuIuo| zMiR`^!BRcj`(y$g?PJ#qGmRL_0L;3h&i2a8)4;8ry zt^_(X*1VbWC!g=H(%%S*%71~k?rPePfO-=T)eW3nx6&8V|2h$lqxfe5-Yphho1*C2bA-U3)==r)W7oN=}nP~EHOT7StP6Z|N-SUnZ^ z_^se>ARDacUCx&qnAr&GE7)f;Yob%`t;^aox_8u6Yh;tF^f!W#JOj2l^w?<@4CQB^ zy%IW+r3_*E{{={8Gl8+16mR~WU>ISwe(#_SF+fD$a&eZ5GR8b9sG}4+)BK@p^J;9Z zz5i5fMElx6uW7roBY)O5tkQ*gA&t@Ur`O9|K{L8Oe03b}-v?lC0Zhk^`id2SLF=y2 z<@rZrcE6d^&)$Bl`R6q-qWvtg*Se9CVd+?zaLk@iea`H!%5Lj$NbJ%;rtZz$*FB8h z7?2%NgQVv&cFZQ#)%}fiyVLmbXX3niK3daOoJJ-IqdEG002ovPDHLkV1g{5y7B-3 diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_32.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_32.png old mode 100755 new mode 100644 index 417419f8582eb96a70806fa7b111f5709d768291..1737a82cfb027327d6c136b09cd5f8b3555ffce4 GIT binary patch delta 956 zcmV;t14I1a4#o$N7=Hl(0002`twPcO00WIlL_t(|oJG@JOq+ES$MNs;@3YcCp%4~V z7GBC?90Fz3aIrcX9^isyOOzlTBZfJ9<=zqkV;W_w;>#{vFqt7)7B7gJ)Jz#9i(Ftj zo>>$U$yx{4DJFC_nMJ_DY{|n*_jm!!b9c_~>h)9i|41 zAbH{V?a_sdIBAjHr4#d)lkTusx9tv+L096psQCYA`b5D+djJ3_umaT0#r+kd0v=;* zwF0>}V*>{ZWO#{=zIt^GG(3;Ru+Iy(IvmfyNzWHYx#WCjF;!aN9f| zC&~fd(UzNclz-Au0S3#bh02anRv>3RaV8U=+iUJ^E2W}Ty4p}6tCE)td%%3`O?gth zw;?*!3!jmkb|rq*Vb7xC7Mz4LR2iijXuD?0MC^7Yck3!Qkh4MFW;?|@N;CEpS={G!sZBFkJ^4Xa6X1a3{_V>r5ytI}Q``-PFv7jysA%#fy^W+;J0_GwI?8CYjivVxIS(dTkI zhkrPY?kzVD1M*b;SzEYsC0kb`&jYY{U5z#9+h6p?pCET=_L42OLo~8PYqxq*HtdD8 z2pC8T--jsK;wa=)VuF--#pNX;7gdw-kenAloL4A8Gc~AHW+t}0h?!wPT6HO!k;(Ol zg?yoh5GjR28%VGsroa$1NLf@G&{e5OSTz_(T|jyQSWq5?gyCL@aU&QBtwyj#1hqLQ e0XB$X1O5Z&cy{gRhtj+N0000QM1 ztPS!MuR?CdPTZ-dnu%FC>P1^7nZWs!>|tC3kW&qQ@x5; zi?v%or5vz&t$*>id^9pZch{{&y)`E1+#Li@=mF3cmU+qyAkneu8QOo^t;E`VrWR-A zm<+4T(;5IP$Yi+}?Vree#BSQRe9T-4QT~wtsARdeAx}Z67B9#xy<_;jgOuMA0NGm3 zG=5BTbT_=s?=AS?HM0Q$pIvIqe{f=^wy#-9Yh|?QnoRyyuUY0Y>9TNmm z_ixc3`+Np0?RS&|Pp`Ib)?P040G<+@r;V{rvj@xCiHG0?fjlG@rCPioxAe+AjZkg^ zJr?j7Ab(4HnqDRd7uVTU=-W1I@@dwRXv?>$cifOW7@E$(W3EQh5I&1T#LYre-$ znG(U&;tK6shZxbn2lLm#)9AUVd|6}jIegawCM(AcL0dgw_Q_{D7zFiLY*O(b<*3)v zFMZXZ-U3hwMkJFl5}mZivP1-nS*DH^c!%Cy4u8BJAj1f+)hw5bMs(RFM~CHHgqA&M zf5ZYA`p5aG+hd=u{gR(qytD(yLq}TIjOnDesJ_cFHd`@haSVT6VHGA5Ek8AT*!gpO z#pcs;*xTUU^rp!*8?r&5t>^id$$t4d3AH{Kz~I46T9rz`Y;Rxe7&-CF6US^&U=1E?l~I; z2%CLulNGIjYeno>fjn$!gB1vx?h}pG42~Ee^Zbe&!LWoDlpZ<`$J!UPsVfM)b*wRz zpSY1s4fE#hkZYSL;RV4QkI-=_T3LKL&N28eZ}79$-FDHwReo5Okf=0a+4a1!On={U zNAO(N*IxxQw2j8?rhPUDx@naOERB^i>qf|yFBV$A@T~`!6TJ=gdH`#@BDb7jvnjJd z=%#RVt_qwh>JwS%er4e4Y+g%Pc8#;qP^MjeY8U&FJ3=%D9Sl!kc zjq!_b0TrwU6>~W9AXyz&xmjTa^nb187O=Y<;08o2aaRL{_GJ&kTbo(0!_VWouFIka zRF>%taII)vPab7tv=J;zWJ^j%1L__23f+5pG~Zfo0lUjVv`NwU9gMIFueMtasn-}s za}e#ffbMc&ZIb4wv~#6C?grYQDO;U~F41}mu;gfPM$S;O#xzejc+2ii+kdKSz3}j~ z%|v7~8V%0KBiv2#nc$jp@tK)mnVUcbUNZlPTfk0a^dVDb!9Ej}x(uTIEB{51NBhjW zj6TN6RR&oNvZ~G6db0H5Yn3gc{V4xMkVpH>x{SUKc$ABQdUqMZL&p*!$Gsr%g2eLe z_%jw?#j5Ytx}H3fomTM8F@FZxXDa1Du95M%(ksa|CT_b0MC)2|?LZl4D>XVpx7EJD zTB{qDZ|%Peu->C}E$6drP^DwEk)1zv%g;Md>37EXZrclM_?)E4%D)SkhItHt&qZ^jED8cIqka>*noUgX(k%cDi%mZ`>$dn+Q%sUROc$;l>(_-doG%TIvAf<{j3~lWlvA3 zIJyNqt+BEW1T!VmTX@KnvTP7!vb)mz;M(ec2>A(Jw3m&UjAgKky*zzm@aMpM|6t8E z8DKXo!&v%`4wm_Dp}UdQ=2!Nzdi7(<}cm}k#y^9HeM5w-#?suK<^LW_3SvUN9vK3!ND&bi}klB7Jq)u zQD14u%{RVjND6I!T(gZP9qq^`cQ#J>WUa8;yVBt^u74nox%!;JF7@_r*wwF}Nx`{P zbUi!Tx%yI|^&RC$xgfcltj^$pLkIu*bmpGnj`KPTA1<7UsWavr?PG;-XVo(e>=;#ib`C=sd-E&6MeY}XRzz5 z+W!0a1Mj#lp4>I}kP-3#EL(p0V5#_z^x?t_PUW9BxhgHFF2#}ESC+Wn!Im`=@?_hK z4au#RFu?a3h(`6}DPLYd3XTGzFNY`i#01=epMSOj(bUL#_H3R+3~3lCB-9+!!SMd3 zZ3~!twWkq7s!Pd?nNweUqV)TvIW`o%aO~{riEG*z9%(^!DW&ONi#69f65sAkZz$ZP zAbkf;dWfb*X0uua5*MV9j#a2RrVskB3N!o^KtT+tZvRIW`#@WQ2i2nMV7D%%9ZHz)&crr)-8B4;XNEpB@FnXm-;n?Xd9PLjRDfR0A2;t96x~}h4d!b^w5)UB5V(_ z_UxlNvKd+G`4h02LWx8{L7BwBse_F4b}D^XBmW?R>suwri$of`8KCD1U@`v%7o>xM TTQFoV00000NkvXXu0mjf+^OI- delta 1875 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 diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_35.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_35.png old mode 100755 new mode 100644 index b6d50705731b167f35fac882783d74efedb5089d..4f009f28cf2006c04b9110ae9eb358bb5f009479 GIT binary patch delta 1016 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 diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_36.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_36.png old mode 100755 new mode 100644 index 7bd425e1d105c77f4efcca2ed6d34050bc3305db..414041750db01c07adaf1606bd4e7248049af585 GIT binary patch delta 996 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 Wz`w9e%*a;&0000C$%P+{(0EbLH;Q!5=xBRCoOv zn1I?uOpQCH8wQGJDtCC#^L%=}6!;ed-sa7VPS$;YR}|mm0e=L#3uc{rclXb86b-li zfVY2oNphgMctK z^#Y62fVV07(Wc70gQBz}00dUH4i;-W=kHgB@6`z4Z94qy%+~t(JCyeL`H?sTCZ0J} zdtzOOQia1~Yk$Dk^1jQI=19ubr^OcnWxOcyVD`J z<>S3GbwmBIraqrQ_o3GoHdfvm&@HWkLJRN41)0%`oPYAIDylEVJx1X2yhpAUdzydJ ztnWZoS&^!^lhmkRq#GWojql%gtuK@UDIdjH;UwgPnpJ<_T;1Y2H_z+)dfZZ;TzmJ@ zr^`Aa_kva!*C8_{GWT?>6xUOQw24S?toPf8+lK53*85`mSa)Z-E+eB=4 zT5nHJVt?$tB4@c~#ldlJMS8zreEtjU)r>Iy`?fEfT?(_j>XdFBKbWx{H_|`j>Y=Po zxo*_hdF{3N;RE%>NQg%@%cMD(EQ@%43}APmbfac`8{1~SGBL+XPDYuUmGptRJ(4xk zp&T3Z<>-jY5BIILfA^(1i^N2nc>b!Ufz@`n$bWrVivw=;8{r34$WziyF-k z$gLrfw6jTj5&SiFCe=;>*MWoA^u6M2#RzTHMtlo3EC|Q z(m|1vBf~D0yAekcS_=^O?NN;E+77^IP~0u|Vy@}iBa)Q_qd~Eqal;7Z)QDu|oc=2S z>r-RDbpiaVJ(0wLFOO9_n@n&z^s+FZuWL_TT6|u8XcFtDJl4B_P|F^55vtLBuO}+o@_blBI>$bkl8B8OAI|T#G-QHodA)ehG2U gU@YFZrZltce|9j~ZZmVN^Z)<=07*qoM6N<$f~OS(S^xk5 delta 2061 zcmV+o2=e#*2aXVs7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000NTNklaNt5^MTwG~%Mw^*Cb4B*X*t{WJdR@=n=r;W&hw=A-*C0C z_om+VJI+TNaW2}5a-uQzS+qX$x1zVF&xeQew?gPVypKkC_kW)by5~fDKXRg#!;*$2 z82Tj(KJ%OBSEjf9j=I|WX#zw>M2o)Z>N(ij$DA0+t1w5V7tZ&B6)~9?2fUBE&igb0 zlnTb@QF6SQ0lL9M$1<9)%3;A`!HjIOc6oAX0<2bc#R*R`fM>629|pm5x>~_3aGoET z?s$)lv2sHOsDA{r

4=yz`#B=+%2_uemhJb`WES2M?LaNITP-4OAo9Vsw>ZXgUBXnd}wg!-^u&5I41}TT`@eF|kBT0aaTP4FjGt-1+`n86tE#t_024&r%qUN^?5^4!&Y zX}N#IH-L-37Sjf>B)+A0L1NYbZ-4D@YnU{Ei@y(Z25|BB zV#)w6{(j6Dz{S_WgaKT9J=6{0;_ISn02f~$H3OU|{)z8ALd5`Y?8sC3-t{0C-6l&7 zkc-|csBm-WvBUsL&|LJM$mu#a!hWCzD21mAS~Cpg|IR!yfNBDt=OK^y?h93>in6U3 zqt^z4fJA^?e1D`ct+vwhJQB<^y$s}v-y1=_2ohub{c&)pZv|5*MNgw&!wheWI#UKf zj{dS;?mdo-?Gd156kiJJAT|Iu1WS@OAN}irM1Ya7rT8sjIXj2G3c#>s3K$9NV(K9> zfHVWA-s9&6`+)2NP-w03ee~^xY<5w z8erFaStg0)bJPFwvjP_pN7VpY;`d0xBaVXIK>zt;fSs9gKH@3G9(goCm7v|uhXJ%Y zQDOvcB!4KU7q2k-;kPJsW|L=CvPL~+%&(Ocl}h&r-e8`u5Nw9ee9q_I*P|x(&57lg z74cgmS7LIe*CWfLfB5N0?iaK+^_Dw2aVO`?uPu zZ2+ZqZj1oaNni-NA#}FfthOO^QzCdo1n5CY8hZ(2ZI9rl>0mkuT-i~ab$|YO@4nhK zH?Jm4t^z`+Pb)2Y!0wJ(5t>_5$Su==$s9nMRL*=`sVqZ76rP-b z*na?8^CnW1(b>ZdERO)(lRW9@=g!}w=SYf9PDEq?&gkbH>7qyW=<}OKdJAX-=yiNq z-P^ktAxv*i0QC%HJ6f=pfwRk{QAkC1D5XT~X5cvh#T31HcLvV--}ympBSS$`%|E$SlUg4^8x0cx00006peRxznmApMC~|~7#+Fm2+Z-TLjD!GDzyw9gWaF8i0><_jTz-E4 z^LsNk0L(&KAucLZx~a(u>MRC2 zi-88-WniMr7;MS;IK{R+h=?>nvBQ(`$O}3<0tZc3$HV{mK%f@uel8+yRFwVa)I%BP z-;blO9?!Ba*P9e*T=UbW3VUf*siNQl7sF^?Ni~jcRDCbECL%Ag_HHhINbW@z5A|#S zT7%TzX@kcU1b>&9761kxK#A2|^8a-O-1WS)fA5txz}0^FCIk_GD$=#bH+`%RYPu?u z`oJU{JY3PMVgyvItD)u-uuK(V>)AyLoN>PnRO(TkFOO2i3ERzK06jE({pg~ivkoTL z0r*K((C{IYYZpJ}H*48D4GNxCwB76I;ijhE_%kzrmM~`)*##R$0KO#U8dz4(Blrfu h+eFbKW@d+{{u_?(lp^m$$glta002ovPDHLkV1fd5#R>ob delta 878 zcmV-!1Cjj21NjD!7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0009kNklwkcw0cijie;jZIaPh|i zWdIj{JTL}u@#g?x02hBA(+%L_&t<9sT>SY=Gr)@Cuh{1rQw*@V}q#y?)z2?Nkt4dLVwH*kc!_bTpC5(1bs27 z0xZQ3;X4BCdVd-hg=Pat#FvP9UDxM&Bopiwk)}TjpxAAYk!dnOuh~!C4=D=l#E^}k zh-79{f_tfGkJgh+{6! zHM#Qd`TwT@u>@FT=Unlq4IplgK=o~PAPi80Q-AWsYjTG~I3;5=;z^NU`V#OQ?3R3j z`f-Z%-%IVK?VhwTq&7g0S<-UPr+_&qlbj+pMYknD`mkkm*ez`oowNj~48Z--r}!r^ zLd#6l2$#ztPRRv^B!Q_BQaCSxa__I@Sq-F1#0e%48=y5w%l+zy)fy}<2dTDC$_LCM zfM+DcOU2i`hsb#mwbXW63G5sNL{)%QwmkY>gV<(|sI$63RAu0bU)bVE`Hq+-fj##I zID7py&|We{fE@u=UJqULJmy=$mb+@2$F!DhpRgtT4^FpGa>9plDgXcg07*qoM6N<$ Ef-WVZTl5#8Jt&#$X6ak#X@ugTio{Y<* zbKkpfBm=-uQVIYTfEf2(gCqoL01N@JUd#eSq0tFJF9dN2ynh-17)esr7?vOsh2VN? z?0{JY#_ce2e;sU{s5_FByB0&epEbZ@UeWcBA<}qo@QnkFj{B1Sw~2t!X6E-gHA`OD$sw7+b=t1$9*{K@}ZzN_&ZueZ3x!|M*)|6Cx zLv0U^A#)&t@_$?G868-g=j0Cb;8yz4Gh%3+-!-pm5GBC0efFXTMyoC>`+fU#7uC0* z0|sAGcU&9u>|Vc_s91DXGwnm!%KN zCuhIvS5YA?%db~^VE#_U#DS$Wzfjq)ye$jT-Dh`80ZznhVh7kTHQDN>>v36~3}?g1 z?`Fp7C}uHrZ^|V$VSQfzs}{02B~2OwhUBgEj{~1_po?!n_Q-*Mp>e)d2%l&@00000 LNkvXXu0mjf70cH6 delta 923 zcmV;M17!T;1EmL$7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000A5NkluxI{41^)-`@b^hN3|)3aIuZS4$LP-t=jCRJA*OCX$&Ex@Fk>VbE`2%lk4u_ zWqkuwti(T^uP^|_Ux#}GK>W41HUPw5k6QzH65rFkXyeiVCx1V1Z@4o6#NUf613>)! zxG@04x50%0Aif8#7riI)^FA2CmT3c&!czsU8HVz6pi2xBEnz7o@`&%=L}jWd&lO`dH^GUm zVd4moi?1n6>wjF&^{h>B8lq(&SNz_{=|zwj1Rs>XgxSA1?^!OfE$7(Nt@Tve=6b#FcP*Dza=cEa)?!cKFg+nk+2Zc2V?_C zGjQrL*f+32TnC`gTH|B%`(fD>z$p<^q6AE{h9&&~qkrliXU#uTYk*JrrfPuI z^IVxEme+fJmhTln#5H^vV7K@^9^o~%f?=RK{~2IMhMSLgO0!2E4YXR&z#ne|?0%RM zBXA=@Ie)#N!|0P&2(}|BPyQq(==Bhm-*c{Y3olP$G@tXi$MvYy5oS!_>6y)9+7sAn z2bUP3R&sv6jyjERhP@Y1X67^WLb>DvBIPl+i%TIUfr{F_eB8{QYCi4vmB*Zbi?;Au zrd~rU@_;`~|3yp=Cwyy|03FG{xQGBbn)?B@B!4fDFh~L&8sK5nPrxY#)e1m)ZQy36 zdIEQhp1gR|TI%%}ee(GBkDR%U06i#4V=rN>)d;vII3;q3lE9Uth5L^oDD{Hcd$5}L z#my=pgnDM)5=yc&SX*iAoX$MLo&t71s1@^bYYMqB7jTmUNY~{vpH?c9%Nr9ymI18h zO@B>MMtcvpu_OX;ck-m8pF4k3dI)Zd0%QYlMn7juS9@fSet+voZ!sMKdJlfoeWTsq z*Q*I=UE?%J%fQ*?(kP^A3p1+zX>r0-p^^ho9s;FzPXcHC4?fvi2$BjRS$#;Zl_!9= xm}VFOsNvsBDAe3ez5!RI;2PA?2+?Ky0~A7`qd=ki5l#RA002ovPDHLkV1lhZqra0h992Fm`E`fgOnp0C!{T$mmXVikui^ha`R(lAOP@`8n^;=c97~ zU?iyk00TgZU3-wlAdf&&M8FV%VGK^a922$f!Gvf@l1isY{C`aowPK=H%(2x6X$-Om zBxMB7bttKW=m zhMMI@pSbjZT7QikFaSF^?qldV{e#Oi01qACEYVV;yJ!rP@32N zV5@}wy|36&{Y{5f@sY>kY4yx1s`LDT^%wUqbuuUC#wP*FbWSmGpyVX?-uB^%U9dTT Y|EAxpy3>(<0{{R307*qoM6N<$g5`eCF8}}l delta 862 zcmV-k1EKu91L+2k7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0009UNkl!V@;)dDag%#<={PtN3R< z00|c2pUyT0fcSIR!T=C|9zW{=)PV5waT@_3{u*2w0OGI1oqqv5itlkuTDUU6$rsuy zE|Ne9Z-;pVfcUnU8UW(kV`cz|?*kJ9Kzu(eHvq)<#Zm)6e19x60L1sn)H(n}_m8>( zsOX$d8koeE7?fJVULmRI9C4-FTXJG+m`VhAo~K*LT*UBhgp(LH02O~!I2uJ@f;9}S z0yM=B;Tr)?41c#C={A5we2JJb#=q@hg87&~4WuCKucylZvu1zpc!&aXS<(<9nb|qP zcUmg$hS&ho**_wFZeOerbP?SGq+&{{g49&+uQUeS7W806fSwu06<@N9gz)+_4KSLN zwZxYQpPCA{f^n(_s9j)0iownG{ERZAIaRk3V(lM{*g6+wfNqIKbemKwCee} zN5h=`xMOJ53MepBoj(I;i!a$na{f|6s5z#a_=RBm-JPC7k+kawCMfgMyfECxkdX>u z?|5N?JX3oDbBvaUfiA8d2UBQYfaWp5mu>^}UQAAekQ^IfeGC`h2MB?0DCsREU6SI_ z@)vUhw10%>Jc}q*=;*%hHh7-!#oPc|0<_AsIk9u5xDB^SV2PU0rD#zT`NaCZ1hE0U z&z7{AL|a_%|6j^>5r7LdLQAxpqrjF1xLGi5h77Q~2s4UJyRl^ic;UW&o^D5lzdf34 zZGaGD1*CMwb901~+13D5yizEyh4@@S=*CE3UVjMEpwxj>TMkmuQ#0KZ5yS@YHcL_g zOXN&)o7g$Fy#@4AD-?M%_XlYV^E9`ZfNg*k z_sjPj@2{t=oU>i2A(i|8PRbjGBS5LhqVW!4j|n(0qQ1w@L01AdL;=<+Kr;JF307@? z?N?X9((`h@J8&zaWuSCMXmsC>{t8X#O*WU@s=v#f89(lkcsC#WdHyG07*qoM6N<$g5j%@HUIzs diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_35.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_35.png index 56e05f8f9afb2d484a8202de21a675bf8678802e..8558d74f72107e62bc7b352d735ce74bed459d6f 100644 GIT binary patch delta 437 zcmV;m0ZRUh2g3u97=Hl(0002`twPcO00D|gL_t(|oL$kqP8C5I#_|8mEVw5D&&I?+ zW7rT1%R^lJunqaBAp0+ntsLC6{AwK(q1$5fMF zo|)&}9RS!65f)1WP&2Fr*Z>MZ`F{65p~;REIg~j}a(0DkxP z-1ndXHT@jdUW>Hj`E8tFg8m-2u(Gc90<3`f;>S&#VD;{o9iRiui}#`BQbgu*xjVEh zHmh}Vhv)B;cmkq41}TT`@b^#F;P(p#wG?k7}rp6ezf96hJ z)(zldA^sD%g#jS`I^Na|pn&k}aT@_3{vKQ!0OIe%odF>JUVq%=01(~=7ZJd-_@3LQ zfw=)r?_lqkO#u+z2PP2!;`?E{0U*9Fwi*E9`(v8{AihtQB!Lk7KByU>6rI{bhdF$4 z*#KG4Qglk>d>xG7gJ}aug{R)f`8ila3=>DfQc5a9wWf;tJ~2jf6P$c3OdJ7f@wLS1 z-6wyZwFyo|w0{hgicgIk>OL{X&lgzBbRA&Th^$4=qaS8i1KR*n5xCcKmyci#QxSkW z`g_;iZ7Fz{cFw>uz|82Eb{a;%4dMvEN&GlrT~ay3DqtPzn?WOCA*L^e2AIvjx$nWg zfi2xaP^+Vpi4$ zz{InGA?!(p%HmCLsYfw7l!8aj{&5!pC^$(Yl`yty1Wz}CC<*k`QJi`~>l&;kzA;|~ zNSWCgY^^kQPG_EBPXQ-%RBsA-@-%R(9H8XN(@J%6`Q(I@041R>A(k+fpar-?P(VjQSHh8mRDu=|B7Y!~a3CR(kO~O20EK{l z8Tk;;O6@^%7A79tjX8B8Fq*=JPHlN~p^JYt6>kg!7sdpX0$;>o(uuWZ(Sr-I2sOo64d zx{5W)v-1@ZKyo?=3%8^Wr_r?wVTHc;N{Ek7+C%~{^2fq%vjbajHdRppu<=W(;L``g zp%1;woz#P1Zdlx_1E=Mq3`C(P|NqPGLyl8QSR@cgGIJkWyd*OW0u#p&!WEowT{^cKV^q2B4t}(6 zfQpv*Pv@n513e)8T1+PZ#9xnD13>&em>U8h{9a5Y0L0&qiGKuu@Or2x0L0ft)c_D* zAC(~h!rNhc0ziCQY)b$LZ<8$v0P*dz+yD^YHp_+p2=9X>2>|i^AesOW-XCHK0P%ey zVgQKmm#HBD!uw}90U-V}U?%`Yc*-tX7{~@J1GGd-Mdz9XX3&FdfSO37LZ)r+bHE7u z=^B92>t}_#kAIIb!UUUX7J)m&&(HPbU*TA!Xn^awM8xNa8DspkhY9xaWdMx`M(peH z&j6h2U9$I=&W9A(!z+Y!J&<$WlHiysuIDu(5~cUgh+jGuGlVsW?+3_*>P2~Ks#fu- zIYW4|@x*roQN`y>BT)~mgKPk<2tDyf3r-9LvMhfXRDWtuok2k8^@tAvvz0q~_+CT} zFe5&Cy$&JYX_XWP${_Eh8sOO5Gwt)%SOdFuI zK-1bhGP*)IDkMzMMkE2K>6UwL=KuUn#W8#w7B~zS=xgxMeOXyl! zv_!@ZLk93J!ivQvueeHp8|u%`^LDB5 zNRu}%4G;ov0V(hC)EeOg+!-JhuNLL4h%YS&oqwDJ>Px{hYK9Y_w#cHDcYz9eZ0w<+Fa~8nq{b`hHrA96^b+_`#`~rGT W(h;V4n!E!50000g`tRe##E0DXG$Vz746O~j} zGFZ$^$2P;YJ0fBgyNx}N`M56iU5LgyDN;|{!yA#d14~)XIuPK+4NUZZg4ER@fIQlc zaoT_13{CWAG*xg*q0QQH?)K~rlm-!8i7 z$s7`6nxRK1Q1*1t?cVWO2NJnXqRT6*2w!)F2BCeuHKx%hKPi<*8$FzVs4^Qwq`Z)3 a_x}s+-GcMgKl~m500005ju741}TT`@eGbS0u`E7_bME%qOk1N8408!`R_y3?W?MAg&Alc4Lh2Yohq< zegh-y5dZ0XcfSD%6y6T^2|)2}ahm`X9)mjrP+*;-7JzvTT5wfVc2Hfm4If40xsuuqu4%bw-~{))_W{mhi3Djxo{%AcmSiOY!sTJbebv z3nBwt*98+ly?-W6U{BWok`AA7eJ)i4v_?G&rhq;Fnn0=O9R1JWCjmT)$rP~V8-h>a z35L&%_%rb@8O0pwc+B?$#2AN!Ej^ZHzz(zh0J&f@X~EKDkE;zK6dcd?a{-=tL)lp} zK>81={j)TBfHw%S3$+r^YSc!eoedurwGvQU!tJdkq<>$v=dd@hLp1?P-%Fo!a~p}G zV^B$ed-Q5-AJ!`d`& zYwDQgzz&nU0LkNeYXuzr7={fnBTQ-3OANzNZ_jiOFgm*zLMTr9lwjoJfPF+v9{nv7 zP<$Nl)qlX=EFZS>Eabn1htsfM*vTKOwFjNAxZp~_qAaDKfxZ4p#6JQY=K&uAN z3e2ft8@7~ymFv(1x`+($#t!@~Mw{vZYCCxluoUQ`)&wGjp$YWp8ek;;CBnR|lz7L@ zZD2k{T-!06t}HSI)@d3b9sQC+AR)}9Ky8`$Hf{yQwqxsBKrU*&Z=iHmAphMP?@%-` zDFKoZnFHx7OT?}7hh&aw3Ft+uBzj9916%vMlv-ax n=IHhSy=mE%V_>sTcs>3AHaV+}r9W*_00000NkvXXu0mjf*tbw! diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_38.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_38.png index 39e62095499cb68d06e5ea366358812372128e79..2c2968c9f6752bdb23b837dc3ad21b9e29dabec1 100644 GIT binary patch delta 435 zcmV;k0Zjgl2f+i77=Hl(0002`twPcO00D?eL_t(|oL!Q!Zqz^!hQBpiSm;Dt1_U`1 zA?lPAh_evSl4k$~5tr#eJi$FlZlR(JlvG*igmgs;(>apQKZWt_*jsr%|MTz6&H#YZ zZ~|o5Q_ev#2l*T@2YwE+IdCHoAP3Y&u~h|?0oQz)+@i<}D1Q&3_R?NzlA;F(c>*0! z;}dAX1+oMhAkKTKaS6mhRZkQZR0j|S<8uB$#aL;t{!&}1NkGrEmD+5)5YBl7-gtcM zfGo8ScLJ9bHS2s@`rj++3CPcU3NH0YQn!+0^If*k0~}_qzoA{i`*Z86~S*;E(C0?JJzC z#^361ns%k5+mv$rOKaX22jD)uZHvhm%0-jYJv4Qk0dMRWV(jc(L_+j1o#2t_e9|NqP8C02DYqM%@FyVv6+N6lf&Md_YIM41jH=VO;{CZ!ZI?oY_5 zz?~?uLjVU6Ap!{CFuX+o0bC9Qa3G#u00KA^FA+ch2jd}vM1KdL0}#D?7NDukSFCU5 zjNqT+IzA8oqBX`XpNSMg&Ush_5P*UiBbLvs5W)xu0SzLI7Ab@gF8~1uq?E$NwSx#y z1yqPOKG9sfI zV3ubc&yDt0S=WOL{`k89qVXikEB@DvJ+r3SF)Z`oI@kfLp>{|-%UuLQKm%_#UP6V| z_|ah`=L`Y#@GycUSzPTI5CWX(8G5&H0T1AeWUQRC+JBHMy};ETpd>=AFMOsC(2Gbf z01qJWcBZ~+ZU{i&?J|w80q+OcjFQ=}Jn@T|>v{q7nlo!ZE8)SC*o}%M+7n$bfEJR$ zMoT%5PGD~@00GedUcmEmhbNOBRfVSrt}X*P(zAb~6@f=3AsO4NN`VLXgYVLvjj#Q= z26zC*4u9nzQC&b%LP|8g?oW6C&#oM=%b%IJEqM>A>L}|TS^FmhunW?4uhlTU-CP@g zw8}sTU})|KEahR;dM)L)^Rfj0_Y&MbXyI+lNWdb0XVS3 z?jIEw1fam{@$nU2z}m|8ncG03_x>A}(MQF+kV;0)E#YU%KyNf1K;?I=2KBuApFJ=5 Y1rpLvV#cGnsQ>@~07*qoM6N<$f`Q$PA^-pY diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_39.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_39.png index febe3bf0b05c0a7cdca2ed5c65d45e2c32ed1192..2326527f328d6636ca32d525e08548f39f121a01 100644 GIT binary patch delta 457 zcmV;)0XF`V2iF6T7=Hl(0002`twPcO00Ev!L_t(|oL!PVZqz^+h9CbVa)EX&L9qpr zEpdUAG-!R493d47R94P`ltoIxF(w5qxd1|zLV-kqQHu43v0n0T_xlBa zNaHaO6P|Jn@-@iTfCczllFs)?lD3Z;LSSX3*+sySq@oTqzJJ3dRRCJJSVS?fqnuyT zAn8f1w-9hnw$3#5U;q;0z+wREAc~FN5)=6-M{OU5z3Kp{P$A=7I!+}uWf1mDMN95n z{>VrVYJ)uX(2-4G5-&-89^)r=;29t%a^U4Krtd}HvmBKDG&aS7>;gy^Jyk_GhBN*h zh(l4nl@N+@4S$$Gqc;!*7Tpn`S2z<3`Jqo|Nmv?WvDzB5QDEF%RN#bS~Y;e!R*N?rIH>>DUU7sG&$#xbpM2; zO5jAvP5~Z7gaj1eVW1_T03YY)bOGMRXt0KAy`>b`ppXJM(SH>&s$}`UUKvml4!bMAvReWQ@Iq!Jpa2a{wf+iXP-rbb1z2R)h&?(V z3ZSsI{<;)fe}Clj2oMp-k_H8EAYX75q4(0YC^JNM1zZVKp! z5um|JtGa6Kcj-Pf6hJXs`FB`1@N@$dV39jiJfdr%00K)(xKh&afJsQ8p(4z23+brh(-Tk?MVso)Co z+?{6)K(gb+@+fah6r%tQ%&lj`2ccwM*6$DL{D=1y5(Q{78o*u6y-!UMS0tbS26`{{ z^kA=rMcn_yNEE=u>6^qFiq>;!Kl+jydDk&B}`=N<~M>~MpP8| zya3)8+q*zwd2VKDH;T^-aA!Q<6&j@}p#Tf)nDgsAqP|=78UapU){H=J=15l8EadY! zXMe5(%+lIni>-aQZUD9T+!&zOk4Asvuf^|<+(DT>6#?{(T}kWrof|X}T|qC+S55=3uvFS;+BHhY fBZDQ+Nd5v@&{uUwhISVK000072LB?6b~Zg(9(jH{iPHtBD7RbqFAs8rJ$99wj%7wvk@p$%mKMt*<#aSjJI=yxIum^J1+tZLz{cI*4teR^op0>2X~m!qu>PRemXc$x;Md0ZItTm zP3O}~7P#lZD}N5)vuDmPmL?_Jx^l=GV@}<%?l0_1X2`-|mlHe>zF0gBI3BZrdAIaA zQN#t7EbW#!^2nrlNcOO zZGSX=FENyG(O6@QA34BZV2g;E!~zAI_ve_SIC@yX6MvJ%z%i&SG(0v;Apye5a!Uio zFM7bGa0JtMwy))7)zm6#3MSkql(6*O<#WWgSN^fXo;~}qpKlr+$SRCNcUxn9&I73xb>cPKQdYLY5RD%-2F{5jVH@D+dqwOhv}DX64j zYe~*0u><(r0EE~$jbeC{g=AwfH@zjdu)@?60KLct(1#$o{|u}F3^n{#mD)=mNMo%J zWh?C89>Vb_efjgUnSWr zE+T+BFKqrAuxXStOTxW=BF_Lz*b5DiM4gdfE07*qoM6N<$f(WHu A$^ZZW delta 1436 zcmV;N1!MZ!1)>X(7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000G4NklIF94;ZwmVC zI1bT=WaD|RA!2(MyjBn3!CE{7_;P$a0d|+@(fD`*WP|TLMt|F7`fRm-2=L|Do&b-; z$FMyCMo8;7VS55R3J}Bg1b7r6hV2RPC_oI`6W~#R7`7+CqX0kfE`;p~uu=g&fqdH& zU}X?KA^p5p51^F46KT0-Z3UtJcAn?ZE8Cvm)_Z06&BRgyXm|K%;A)Vi-)AcX9ZTdp zgQyP_O9&u+)PKQ&1W@xadh%KysATlXKak1t+ro4Lw1Tg_aBl**0z~t&WZ&wa_N}QI z0`2{%pKKybB>=keseISJR~xPhS;0pGiG051k?@`kox4mDOd|jqe2Uh0f5>mvaUqk+ z1E3Mn6ChOfv-dVr6#xyC_Q9tn`7<_rQvaEK_hdgxdVh-dj7jSSN!rCDh)#xQHSx4G z`k2`oV-^XP9s|+9a{|$q&sqsq5@xQ#9<-DbRiovFAT6gM6Kn~DcJh$=M@W#7lhM9v zo8JF*;I?AhGT}dlXhCYp9CAwF?T`tP`m)%1+i0*>KCS&|;~TyQ(1Mg9p{N3Q-xDFq z>U4nElz-BW#nQ_lUPwV#Qp*N~H&DI4yd=<$li8^ICz`sJ?*T?5vr0G`-usV8-C_B4 zuvG;rgArs0e1r;k3S`u-+R|gG1zRXU)^RNBqGrV{qXcPR1uv4a_!Pj~m4emSk@g6@ zwwhh`PTeyObPUrffqdn(2B?ulYEL&c-bud$GJk6d)L+lnk`y2fOxq1-UW{mU0Tj_x zkXc5S78Wwb_nlS&g+zwP#Eq`qSM(-cD~fqGgPL;m#xngBka77^{m^H<$)o8a3rK}C z(`OGJyWs@Ln(&Apw9dW)k(SS^6^@ zTz|%;(?RBrIvXSIL?rYUgh~KwuxZd~&gFixUaVC|x8`|o1uYv{d0+A)Er{bh&l3r% zCHPtZqJ@`MA5y>Ccv?rn-q?}xS#3Dr3Lfyz$Wi+E`F&3C=^&#o+IuFo(I%)OLQs#L zrGLviBRO=u=GDen*W9?XG@jDZqpw1!!@6#LnQn0bUYJWrY z#i&w9g%@o@atBBo%$^Op3BCi+c)mszK6W9&EITWrs~?5wF5ozh%c`&cmT-3xl#*A1 zy%S8S?F3u*iV!2u*CP=v$BuZH8M(jWg)kYB`(2fwj;*R1RW@&RZ6&N@deh)p%a6Qc zt?kGSREEMxN8lB^|CzX?0I&319Df?pLB^zNRWeH-txKX+MDWDHn~pAgac|ZJh!# z@~oSc4F~K;h3K^VIUCrJSC6y62D+pcgokb6_$nypxzQ`BuMLFn^F-&D(ia za8`Q0qyYY6k#x`_(#ozpK@~Z%mLJ!hj@)1o187dVy{?@h?k%CS3 z2?@cwc8nByteYsWkD1WMWvPKs8%uj?vtn+3KL~*u8*?N2e6tv4pilSdobnH+d9Q!5xhHPcf52(kE+`3gN8bC54^LDT$QR4OvFW)(m zmxqjWRZCDVL9qnPfpPf^9952$k)+@Hr$HfrM_%L7BLRaQ3V%sa(t}SF0&JCl2vlVP zdY~zi9_>l0`$W+Rx-12m^Ccp)fDB?+go%X49420xKZ84%|#Kqw>rBXjx;Nv$vSDqDS2e32oi)xy2)4%9L)4$ r{VxlaegG%;5qRU{05~~3s00000NkvXXu0mjfI2X)@ delta 908 zcmV;719SY(1C|Gn7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0009>NkllApi$T<9~3BD}6pcXCZfMX&YJ*TrGeQ&Jclx;ahF45CM`vCD~BcLX?DfP2UiJ0*RN-V43VuKme0?8$ZJp z!R%NdfC*L^KjSF^2tdecir%Gob}280uUlKK#b8$ z2xXgAKmbf;UVnO7AIL)RUe?w9k3c1mNo}~D6-di+F(QC7T(9?x3_YPB0(2M|MY_|c zZL8I;HYvq+a0AZE&7M6n0H=tvYC36+1p=txF7@h+y!W48_P%>J6H`Eerpo8BCG6E_ zDa7j|fM;n|;<2Td@Am2uuSTDGH;L2M1P(bBbI?JxXZScMI8@PN)UjS z+l2rD7_mzT+Wi3t;GZ%v(w^$QDI!1s1llC;79l_Y1$Cv&;-1Q$ z*)!9}^@Si0T16e{ORhz8Y7{^O=r9uvJT8fN0s#!j2Ib@iHyJ(y0WcXwgVEOUsp5bD z1W?i71b=1|K?q=iRy3eE+51C)0H!IU!S1^P8a^R_(_U&uy2WhSFBjASDyWxtau{#H zjZB}202YkqbgB35^8R`ZBOrjlH%|TBOoDgXwesf$;B|p>wfFa?F5C<<pfNq~w?4uyfm*UY9Ral7Tzl54qEGo{GJnbDQ!5fYEdVXq5Y#m>ujzu?h-&?g zB+wY{%indKTzXd#0#HCDS0{Z-phY=uB!L1bL!P)YC}~YkSpyTd(&y6= zptUrj!n!2EvN%cX(Qd1~Cj}ra=}MMaT6$yAUSDth_c;MjFXDucH*ka~`GCb!n?c&s zIe+zhJ$lKlspCdIBY+XJpMF_|wP#a()I1{q2~zLBnI{A=Yp{{0Sw)G_`0D)zZC@o% z2*8qE-am866i31)p~}0I@x29M-9GjL0{`R9rQvs;@$0QPX2$Z=UO>HmZXMcaW&bNf iJ!fj6E~IFRLw`KNT&^U;RC@pb002ovP6b4+LSTaJZj;CW diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_41.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_41.png index 63106c87ae76b2c9bbb94e3e127fe11cef0ea97f..1d8c4257d11c56abf4177a99db9d42e5848afed8 100644 GIT binary patch delta 427 zcmV;c0aX6;2Dt-}7=Hl(0002`twPcO00DqWL_t(|oL$npZq+~(h2ei3LrxJ9mmneG zyg@2Ng{PpPY==a4ZEW4HD)e;Unx>6vm!yyPMBz&vgTU)AU6s zuwT7}Y74t9u!V93DkxU)YxHgg0eo?<2uoa2qgzD-NjfN+Ie!HAs0}1=p)xQ4erKQu z+R{w={jao7CegV-he_VB&3`I?Jnx{-aMOfpY-Lat8OZj;q6s(XYnM?MF3|((_q{r&`~~+@a=e*FRd4 zTbINheh@J|mQbkOlDPT&jm|?q!-p5wo|fE&kB0WBJtVJKn(plG0(ux{cn$Cv_y!u7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0009eNklZdz-FLDKmi;M1+XDVFYpU%iM%n2+&zZOIe$am3@89FwNXX})_nI4 zgb1#*aULM0b#ej45SHnSE_+DF<_N*dc5a{5#u9S0ziLh=fD)ZMu0T?O9 zkDv%aBLeGKC;$VI#;=(n0t!IMEaMlVML+>4m~H&FZz-BFQUC#<12}7rKmr9IL^Jz~ z+b(~|F`%IUf`6#Rf)In{^-v;Mrh)}n*Zxl@smd6hL_-gtU{-Rbhc!v`Bt!}z5OfUS zp(g_F1q?vv=iAu8(l%=2DJ8}LVo=+)BT>wTOMn2+zWZpi$YXrVnA-lfUjkB!ok8tG zULmqi$-fO~Jl+FnXU~iiyIx8hBk7;1-~eWBAl(VF{7)iQ z3cx_mz_WJ_C6`c*zH{^vfGF)+{j~6CIXGGXyV5i0T?u-9+sNH-xCAI!Avx3=!>IiH z&TCKr4p5ghBH;}ofvhn5wX|8tRt#JtpLMlcxuKm2X z+hOK4e#`8j^T=Dm?katsE?w;92oP7iJ&o}bd50qeQ0N)3{TyAZWBQig}?ogyb=z(qJaWo z3mQt7NLbjs0lb056HrjY6e-fhZvYjqKq?qTNGZu9tQ9v%QRGMw9w(bU6gy+@dYaXK zy64ROnF|1snqwiReTMs>*auk`Y*M=5cyrhRI!T_l!TrN2?|%ajpe1Bx8!oM#bZ1)< zmzq`F@i3Gcw!r17C7!n>3mjQHj}^n{cN@4_LEJ5F*-BgGyX4PT4M+p}Rx-4hMF28c zojI5Wj~ZYMLk~7%DrL`D6&`2~n0(hU_mUXfH)I~H9+(OeL+XKL8d2^Px-i?SA5)ASbF+VNwt?mQ@{x*mMK7_ z*<o9%#zNYQ_NScoec}{dDNh+Hr*T4vX#oo?w>Jw+6wIr#h zZiM_>R{(Xf=W)|oAO~ogHw!K-+$9y|GuwTQ24;j0^FDx zQ8G?DhJ^^O0ECRb{IVu1Ht0ui-qM)N3t+z$*YD&-48Jvl>rxkJJlX0T8L5{?=I7zVA`Tw+c3|0GN!7 zX%+lw#loHQ3V*;5jqxO68F?hmSXThXjEu3m{7W6{3Lpq|wa=^f-{T6PqK@n}Q9joT zSmgE67~~2705vo<|DVBa09lQT{r=Me;5^~wTB;C6Pb4;)vjSMT&tiCV`LH>D z=7NOHAn(EqCs5;T9nx5UQw(b7NOvG)*tdDA_biQziU5U0PUXXjbzxhYq+ix&1ZzIk4qowu^`i3H_|zxe`+$g) z$#cNkt0h=vt_q~U_St~I-6L{xXL{T${0M`r;PdU?86K_+VM-xG29 z9#RWnmH}A4(1CdgYr%2fHkz$1er5qT}PQar2x25_$Wx^8qeZ%FK7JGJe~nx0D%8RP<}SUGl%EknL?&J6+EMt z9%@_5r!o6nsXaiU7ZheSb_*7?ruP5^u1k&B)#F0RSi%Xw^DspQqf()!tKkIT&F+HD z3OKcj&k3NARS4YJ=CcAQ^n`G#FeJ5ukZS_iaj5cik031^g%rSrho)+nMgU*Q>sz!X z<1_;JA{PCEumafia>XfFHH$t`3eJS}Ru|R->>#q&nKiLAYYr`d$Oc)7XMh`802iG4 geFce7t^hvHKYgLWkBsD1>Hq)$07*qoM6N<$g4SN(#sB~S diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_43.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_43.png index 09309607ca2a80cb2a3dc81400c0d81d00ca3deb..8d1a63ce49af79a954e8c261037ca92c8f6a585f 100644 GIT binary patch delta 445 zcmV;u0Yd(i2FnAG7=Hl(0002`twPcO00ELoL_t(|oPCo$kJCUDMbA7>q-eKEK_nU^ zQ&6SZmMU(jXpmq^eoOKvsFA3aOixP+Bs!o;jVY0kh!9ATob{!!J^omh>E`Oreea!T zyaYhWaaE2S@TGkcZ~|_+B==$(+GeDI6z^~Vke86f zCNyET>xnR16k|YD%Og>Ct9VD1q7~{m-R&VD9oO1-!o4NZ=Z`8=cW;o^mCBZ)dlH=F zYU{AuH6A&aD1WP|;<~=jAs96<@03;aoc&oc2iVTGd=l~9290Y)Iz5-ySHGg9o*h75oAp|&p6{zUm z`)B*feF)q|DmvY6cK`(497-Ag>Hy#lYNBTyU}q-61?1=v9}aLCz2ZL(fDAmJ5%EB4se!A%a*BJR{a03DQb1HIn?e_Zi4aOZSz1Kc+7umfxHEFvksb8emklth(W_E}s)N{YX&6G(#t z+2038bn4{ItAJTcKL|etH{+MS3s_;#76XZs@k={_wK>}294;R+opR=8r z%ya>*4nsvww<4WDu4uU+I4#@h!_o$K74U3B=6~)a*65`sP#OeM4|i5@oia_e7J?~X z0g!%qlsBPk9YU!wL7l0Mpj-zq9s@e~R|B+IMh~gbA@u)%6v#shMvsa6eeb*jE3T$hntw{+K>d%<3dpCQbL+fGvFmX2!uG1O&&d1_~2ANx{wQ?|ZIlARkvz9^vky#qxoO3R32y?yL zHfUq}!uGwH@PBm04!4F|{?N}Epx0~t`*~|i$2wK*%!K5~P@I1!;jfgDg|D?hJPMNl zmz0}KPOzK!QJ@kI=bJ<3200*%Rqh+D&RReylZ=?8B)Y5d2BpAaN%d9%LU9h@Crp-# z6a+@UQlSKA%LD|Z_x>?}Gqnbxe`PWCHd&`YV4+BTBY%UuND&yVTRc~eV^sm1M|uVxbLf;=y(0?y9dFv0|Nqj?^KiJL+da8O(5LB z7!BdxfN$1nsAEX|qnQ{(?c59JiUu)8)rvA{TxO#cTv;fI+DRUlO-}172K<|-ENF!I zB|r|5F+xTitv-3Ep8bg-m27 XZxy;xc>hc{00000NkvXXu0mjf%zF>H delta 987 zcmV<110?*`1my>i7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000A*Nklu&5I41}RN@Bhl_FIPT@i;XYX37=FUZ8j`nhQVyNmQtRw;CYsB*`n5J((i@N z&*=eN&ayOs)#|tI`$FR;z{i;yz+;8p6wn3cbJYSj0TR;_w|~}3YT^Au1KgDv8;;ns zHbeqkv(eaD>8rMDfGbEmG(``W0GByd;!kS;Z*J=Ju@t|X09Ob;R&!=8ey9W}C8zn? zqm@O!ZV8Z4fYac~)WS>ra0!r=tm6Nd08v)I=QyG~GsaW=&nG~{-yM32^wiMT|_6 z%{-cWIzYbf2|QbGh;=TSNkHi@bOHqSrWxKz5ZVA7Jj~+t8J;Exy#)YY+X}Q}f7b77 z5+Ex0Xf|sx67hTY!{?-{0U{tdY3#%`up9U6`!j3-rGMnx2E3~HSrSmja}&UTBj@=+ z60G{U24J8a`xG(p%GNMJ+fNz;MA)e)+mM#{oI;Lcg7#Vd$)=<~DG|gv0X(;r2{dYo zmhB=CIvrJ@qia&K6@#Vt|Hy-52KE+EYyInNBrsgdD3%l)*FXf(d)rAVOarWh?@h+n zOrTZBd4IKJ15k^L7HtzqwiS=s#G8DLVG5~ktPK(`xQW0Bx zR`f(rPk`A3;|GPm9d=i-r!jX5vz`0gY5)$cKzQPDAsJz7uw=&s-ifd@04M(Odwary z=5@RB+p8&a`wKN|g+BmfqZBD^#i zvZP9zjM78^G|Zr802s_nR4w5%(Obo(=p=$lt?(?A;1q$gKH33W^dA*Up=(|3k6Q7+ zgJ-OSA6f~EnPWZwq7zYJn00NlL8=-ygoKM}LU+fX4A09XG# zQK%+Zi3-=DNR*h%3eWL)i!Z7HR$}36?Ns|(;kC)S4S0*+O#plmzs7wKpeKgcu`nB{ z5&#bv(-WU+D7^JZ$!M_S3D8^p_}XmX?R!=N^o)~HG)+zJw&7=Hl(0002`twPcO00KctL_t(|oL!VXYZOrwhMzNgH;hS<0e1^g z$TUJo8U@Rkj79ngInmbAkKd3C`485n5oAY5tQ8$>Q&=sCAZ)-w*hnUr#91?Quf?6j z-P~rlXP)z(PcFXxP7RwiRTyfZBM4%3RO@tZEs8xlD@pGetBJ zrQLr#KZs=|2LzyVywsT>PU*?n9qs41ZwgtJPqf7-lXTbFrN2;(|DU;|MTSdu`aAAZk5(HfC_NGI#DpLjXx@ z-Kf3BC8pWzMdZ7DEju4(27X2jaYOAl6)WV4-_&k$-o{9pzRUfzx_UN^0XKKYyWGqU zI~cGQ2X|}JIe^~IbgxIfviZXL2SVwpnwpP$TiXC+oGSkSX~EsY|F{M+00000NkvXX Hu0mjf;tCiT delta 1052 zcmV+%1mpYq1f>X&7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000BmNkl%IKT{JLtC`~Km{ghWj9?yDMcmj#T-B0 z1Gw-7TL4Ld~DZi4*=HzG6}IA>nSNx zakfqY(H1@HX@4LK`L)(70BP)!I*X$vo|gckk&nnEf*Gk)J1G%-R1J_39P*#-o`oS| z#{sr$fT+74k;Mf#i~l2?PN}S$_Z9?^iIE@=(|4?RviGqUj!)}Ad5&> z9ROf#*R%H}L{P#P0Ds6*2LQ;`0;{>7`uy|`0FcK8B!APu4*6}oc06Paa6IFSH|(T= zw%@MZ@5Z|VP(UUTq!PdI8xx7qtr*jdz5 zGIrr50)JM2t^ihvJ*|Yf7H^$Ig$0(foS_8#kV- z18_rGAyGgsJHSpIz#*O6Hanzpz9i{pH9!li;xAGf zIL-afI2up(KaAL2)KbdVR{kgUkI*Dvtp;epsRJ}VGXk`2A0Wuj0=SD2g%}H*kkt0q zb_nyo3&06R$=~l-sHIIphNv|4v{#AuY7KUJ{-{k|2kIqyw;T0(%q0_h$>y##)J?Aqq?E zl5R!*&;e#jeH!9sAc5~8r+zQuA2{{UMH&0wS02-X%h!m`gIWhymbA=m_QLEL8T7SK)iKqHSURVG1kxHXCq7GOYDgg|!GA?toK!TO8nT+94IZUz z#etz!DPp@cWz7XprdzilC}<$I^b=}8DhqK-(bWPb0?6}9QHvqN9L)O)6wQGIkJj;3 zFiE9YaVkV95N;gX?$Fl9{&h^9$xh_BoOwlBCY`1A9BPY2;uQ%%yyXsKP*v4Akgg6k z`3u zZ2(bPJ1GM6BPbT4D)R&Zxhpd9wk)ku4tO7=Pf&&2s>SW8^TP+3wvGV3^-Z zFi^aG;Dd}DAUaPLMRJe;Q9q3RIl1IlR5obd9(yp%Jvg6*R!l=r7v<~y2u+@pdoG-x zvUjbl?&?cKXX!yBfVk~{IRgTD9=!rYXQ_&Bw{$qI$&7cl@m(&v-je%|>xwT|Cco-k whxGGqk0(~8cyZ%HFSrIp^8CV{@3IB{18w84;ws|~iU0rr07*qoM6N<$g0|)WMF0Q* delta 939 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 diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_48.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_48.png index fb2c54aa933fe9b6a0b441aeb2615861ceb2f82f..0ba0ccf906a98b4ff5fce63f213038b8d0b55c71 100644 GIT binary patch delta 571 zcmV-B0>u6J2gn4F7=Hl(0002`twPcO00Iw5L_t(|oOP2uYZOrwhMzOJ>kcvCwU{WF zVmf0ClG4tx5G)0E>;wyIE5#~swG(XZEhSf*`~f$Dm7Nd}VzEMs;2_);6F2V1v6!z- z&|ALqocG@Io-=^zg!V+7I{y&lqV^U z9)lE-8E_l}(j(Z4FaVkZm^L!;EdhY;x>1aDM}S6PLz4BgxsU@%{$w|&tE#F1y(I4> zxoHA>zItu--G3|OTmTU0+?klSJxtk`b9C}qbal(M*Pit%<2`She3Bey+j&J~P4OcZj62OLH!-I-}LF$~n7?S%j94(sajsuEq zsY?3SfxzKC=c@3+=PZV?Z{`wjJ_4rsCnZ;pa zFto7d05s9Vu7m|Uv~4fZ_~}dH*5lWU$4gX^m4y7f9;~Um{R<3Ay6Q}=+nN9X002ov JPDHLkV1ldC2$}!@ delta 1006 zcmVb_)?*q~N+#-Mf@hT*iI* zoSk_hk#@C37+5WklQ%LaIYASa0spPK+a0e&-);@38X0nk%tXMPCc zmr~XYfG$J?l1h8jC%R3M07SUv;|nSQLG-NzKotOitm3Cifb1ZM-D(R7eh+}O`=z@L ziTe=|E&7`P2Y*2pUsMAi?f#4)i=Q$9vKmq=77@9aU}%7>i;Y5EKMS!ck52%iJjS#Z zi^%>M=^7x*A|qoh7SWpksjwD}kL#KM8Fqif95v6h+WB=JZvq5R#n{1X=l4E0c?&=X zC8_w%=0KIXvlto3Mw;qx>zW3kRu`Mj$4u4W7zzJF+?8f-cjvdX*q!u9d zWl+}LuQ{7nu`0k;$Mc%kn*a+~R^OG~1i7+U~=rTE&jd&c7u;DmXt#kWcj z?R>vH7qC}AWduR=)fz$4ul)PpY(=RPYK=R(X7yZaW`!7v_|nfmY5+?iN-5t1_r|T) zyu|XLRey->6mp)&!ETLVRs+n0zY}2sjoBrOKe{g}8D{sH7(iN>+_5&nXbvj{)U5xk zFhdYsI`8nefKy2@E0|XLOXGN@pY?IT=i!=k1q89p z62N1JoM0!yt&S%IvE37(4s6-CzAi?Y%V+Aj2x6Ng0I&XAiz79`Ow@XvzcHXE%m@Ur zkJSJ(vG}$7eRttK<`w~h*y;q}9r@dar6$Gl=cjx zlR6~;eBgGR#tNh*Sl^%Y0a*?kVUTuX1>UbVE1YcihsH?OB1!&Hrxt|+oCneFz#j!y zVw280GL5KK7=M+fdcM~<6cC)+{I5kW3mZ989hr7U6p>+FZt*UsYKHyNm|03jYAf4z z9>SC*GZ-3a3uAGb+B~&0WX!}&kBquG0yqtjVs3*>&m0w{nfge;pY;R{oyyrl@ZiTQ zKvUw(!=aIoXYYXw2bP}oaEa{UgNqm%Vq|A%C@?T;-Kc&V3j>UKrH%ep*F< z0l5XC^1MRO8KZ+o29zu0UZR}`Yx;1jMuJQOtOdOlP_F2F%|hp)w)lM=1k{&NsK6P% z-Kmj52%s!)HvpHr$~hO|t;7p)919-q^8>)^#a&w?<<2osnX2C`!oLJUI<}BTsGI^i zX6gfiLVy3f0hBh=je}cL0_MzU*#|*IJ3hd?CDXN|18B}Sy;0C02|)Kv=QwPHWq`?t z*C(c3?eU^dH#|r!2oChgeVCZD?*@bl$bj5hV?ih)T(T;Zo7Moz<>%M7_oWn|ejXPK m#cJ~@)WX=ms0wL1ga0{E>lW?%n2G=Z002ovP6b4+LSTa994GVu delta 1083 zcmV-B1jPH81;hxD7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000B_Nklv6n9*KSOB}Se|PL?z$B)WL?ezj!gByeXp+tqgGc}t8Gm}K3+yDlCx#l&0UY2# zJ|zOS0B+69-S8y8RThqLfLp{Cf&6-83E&n&ED?e1)_8;iM8_y0yh&Df01rfVo!&Q= z5lB{bfXGDbM%_TwW9$A1BwyhG0KVc|?XCfSodJ&#NM}31f6ac*=4!=x4iEs`&Bcg7 zc56&9`S0LJ*?-?_x^|%6H0nBa-|YR|=cqYAB$A_`N9w4y*WfsaSr5=#_fuKjj46M$*IqT8Nna1r~x` zb%1(abSHSnzyVer0H9CO=yP)?fQ|!1&VB&flBLxPtbb-a_59}mU?)&c8PFsj$HVK< z7)b#{&wfjA$^f3nwR^32*E#@zoltKTK~n%P`~QM_8UTnbg5w>)3S0-M=WB{U5_i}G zoP_9Q06^BbmHDG}sW`y1e;PBHNkPlDwc}sm09F_s)mG+n$AXp^#13$B_McD&@O)`G zpvuE@0Dl8`il8?iV7=G)`6^f|gD88n%+TGSY*`wIQwGFk1(XC(7DmMxeXfNbAyUG2 z#FC0Y8Yg|vmDyQY!0i1yMPT6o1>Pc1a{w+O(jyW6yWS89o(Sg0Pmj)jbfnRAiIHVW zq0tM}aV$snDL{)Pubx1=7tnYQ4-uFg1MAJ+-G2~Tx|)^)wBm(z01d_WP79|AqqpXA zy&h-cUEu&YGe()OUHf}$(FE1g^fsSbBVKD*2Ux|7MefY}ooJE2N&(rneW;IU{KAFHnhsXZt?*R`d@%#Q&UQ24iyoHPCXz|Ln%uuA3$<-z@D;T}TZVt<$2ug1T^0csQxXf|uw7?H@a`vMR0LpZ=H zsNP`~61VBqcIxvP@&OL~O<-BHCVJ!);!DZ!a0-o0r{LuP>|>xM0XW;d!6iK+`D_QM z8<$)8MR002ovPDHLkV1fus B{}uoM diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_5.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_5.png index 70ed4f55900322b30ba524f45b48dc81abd88ea6..2da8166018ae358d68d3f3d8bf390af11a5bcce8 100644 GIT binary patch delta 706 zcmV;z0zLh$3(f_Q7=Hl(0002`twPcO00NasL_t(|oV}7yXcT7{hoA4uXLee)$wZN+ zElsBOpa}k)%W=Dyu5z_IQOU)$E74mmVZt0T;QKII;4o~c`5#d zg7kmDY&NtR7`+v+A@)7Eb%TkufxQ22XaTdzInW&{^>w3v?a|HomEVJ3Yg0p^0jj6+ zKMviBcUR{3JqRsOwZmsPyK{ke+?0is`CsV&8|88zFQaf0Ko=f0m=z;W>DERHZ_4qmf>xm=I}bd2wN zdY6PCVBAixm;Ja3IDmTq)ZdMpii@rmbY51{$kNI6eGOx9z|n8IQMYa=;F@s;-u`DS zx&*cxGQP_KLEo2jFc)!TSYVQYPtpkZ8cGWdPecNBAb%(wFE>8L8lQqoU=q{#tfJNz z8dbA5s>-1G9vumm3IE!kjt(ua?r~Rne1!WqZ-3jtblUxqYp~=v{o%D9A-&$8xT~z4 zDZbn5egHntCdX{!*qo_+z~NVc@b-0RRBlMp{W6w*`l^&W_HYECY7!Xk$uPE%NK&o^ zschw9rhk1PmQ<)Mm94I9+V@)mhyavzKzTVTsZ=2qi)~q!FJu7TK$&Ks#paYGA*tJJ z$@(-p0GF7lZ@gucggsbc$235OJ?eu9D)l{AU=^?x+#Td+^WCtW1naOZAgCVl#ouqv zVhhZ?hpoZ(uzh7`g3Y}S0$WOR_l@3rz+$ueZ#zw~&TA_FPm)ce-qsYTabnlQNiUIib!9eA)84*~u--ktz=m+0AedjeF0*MAQJA?2J>F2fEfh?}90Ngj!*OjEc1OcRlLKopYPjO-CXDb)9V&0X$ZzX{BB@UDX z+Ah<+I8q7e3x6sV0pnkgsj@3!3jxsJAS93!AhTGSPm)bKw?$?I+Wj*KMzNd#Qt&Ot zBVXx?T+_ym0*QQmEh6Egd(idpVkrU8o!@uXd7i&^I9~vIosUC(LY0Qj&+p0RZB+JA ze^D$WKqMzi(yrzFRo#F@$o_fd9F}dZ@QvWLqC%!Y(tjjV+fA)Cb;nD8OZSX?^R7Xk zb9RAd$$k|HF3|>N3c0Evcu7>b3rDb0PF9V!5&&IvzTpjmNnu7pR14Y z6vpP*w&*{GSW=Bt({y~lhO}XlJvt}aWn{;U{F<4vEdQq00Mvb^>@+pfh(DR_1#IRMz?V1cKMfhsns5bqzUMu7p*H zRUg%Q{qVjsSkeV_Xk9@6omcnPc*$PIx80~bQ-7fLMz*FO1Zh3D)fP(7#&gmj;Atjv z9GvO>sSg=w>x%feGzGLae$&OrN!RFSnZVD&$S-ZpqeY~p93x+r7lEDw7%dHC`t8c# zTLFvClPNMU*#&5_?X|%JuN~`3K+oBC!21%adfpNO(4516R`%c#%&y3<*cOgJ*ThW# zEq}|X(#p~MuZE~kku-uLyZb$WzY-=nf#k)R3zbEL z#OSqM@cQ(EdPP9)Q4-83qB8ZysDB8)daaPfunRx~HX=d9CIah}tot>BrUX6JQJYsK zLUc`Et=TPJWH(9otV{)?HdVXFYH?Q)VWv`w^YI=KY4L_e2fMPPq7wI<=pm_2@=H7G zs0fg?E@&(=r2IvItU+o+QkKf|0dEkpFHrck)WQq4EalR!cZ4^qrU25UZhzy09n~@G zEW+y-YS#)zL}enWu_`_MXao6!Wm17fq}{C{LU2!O>j@@WpR77b{ZfGFVxZ%vNmzkO zWxAg}wj*;~>$OvXAFqSWfdwtz3=&inV^-1XwT&oS)m#;Dy$tf^#?kewsDNf;MPOF7 zdm3Et0<7GPJcyM$yNw7cY9I>9#_YiC4t{H`{R8j@(Kx(=6OaG^002ovPDHLkV1jG) BvKasX diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_50.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_50.png index 32221d3476f1a0a5ffd3dd05c7656a0c4409b709..94d6d3087760915755d5bae2c2c37da86629bd98 100644 GIT binary patch delta 569 zcmV-90>=H^2gU@D7=Hl(0002`twPcO00Iq3L_t(|oNbY@ixWWtd(N>C6; z6k)|MXl2{Et^`p@2t42;*fFPqjtV6r#QCxygv%4nN&+%yH-?dM(TQif)(=%R7#ZGb z5N8$uLxl$XP=B2uaAPgDvYe>jgH_=?3EPe@H_DQx<@m>)SO$YJ%r#x}pu zN@E@uk!?kV(_*lnMGqH&fSP4l4}|}g^`NdCIX?i_!V-d&TF6G}zH@tn;Rio&jI%v}-}KhP&$;tncp+!Ygai ztFNBo_A-S9B&!!k>s8RH0g2=K?JEZn&<@0+*_vN8p4|ICbQY|~c@?sG00000NkvXX Hu0mjfa4Q; zIKr~yC1Q|3Er3XCu5=A#kbWY9>i~wxBwc$gs02`{Bcp&oy2cU8H~_Nf5J=XFpo{=e zfk5tw2*d)&>_jvdKp^#01lIwSKp@jX1R?>Tbzl|{NVF0`IS0rVAp&_8k+3a*?1M)E z0(t+n17rh%Jbz0OYzY9Z`?J=AK$>;D4j@1_Sst;h05V)4o2(QEK(qfWAdqz(AQ1>; zg*yOx_eZV|fvoEQNw7Zj)_@$PE&eeCz56-nP(9%x0*}1c0UY3Q_=IdnxB}RK*Wu6V zc-Gr?fJ*k?n*Vw|N#N_}Q8G(Vybj=m^g->z3_&n+fPZS;ABF6@dPcs~F{ZH%?*b|d zVAdJd$R_=5J<@ev0SFM$(L1EC)}>l!V*;p5KB2k@qStqaKq0(l0SWlsKSpWY?=fi< zR;sV!LMV6sY5aQyL>)YBZdGqK2RH?S6CjY~;s6ncmI3R!2xOIV z0BiEIT>ycsat`p*KmyDr4c-AVt)Ihd4c?@*7ALk;2jG_eX78Ey&k;dB)#3G8^AUr& z0Hobdo1+EMhZQ{L5U-9ON#~JZUH^N!(_nBBXn(#RfrySTKLbd+e|+uiNf< zCHa>5ARR!9-uvqvZ8;A}VAb(_4`|Uu02=!r35_6G;{uT#udSEr09w*$5wio!==K$& zI)7eT&niA$(-wa)F8n0N`25TvEZ`xo)7juOPl^MKYCpxy4Q8L8LYr&c>*?J-%bzg= zK>Q$xABcskc);S0=6N`>$nU-Du7GhQxl7sW$6T`~_HAbS>n0e(B~)S{8^ssI2007*qoM6N<$g1VN+ AivR!s diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_51.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_51.png index a81457ddc24d2fe1497619616898667439bf4aa5..626692b0b15b735f2ea5ae5d624a4c33eec67817 100644 GIT binary patch delta 670 zcmV;P0%84!391E<7=Hl(0002`twPcO00MDIL_t(|oK=&*Yt&Ex$3HLk+NP~&3Ozhr z8gOZQh&L#R2$#V>;7WNX2*q0z!O1}ogc?^xbm@N5txu~OJjON9P6Y{2RKS5iB+!+J`S(|Wj_ef>^;HEV zve%}djRs6^I;74`w_Fg6#DHK@RGi2eAoi>UJGMclDZ$=bk@jnr-h=0HXne9o;CimQ&a5<*UgBr-*V8h47#(k9&4u5ICt!fY$fL+H*#+nC@ z{r*=9Nk@0ux+mCl>8fO1Aw@RY<)Jikv`D$@UY53n0f?MePCEM!i7*t;MYTd5#4F8mbC2OI|G(^exS_)+fc3F} z01L5$bgv^o1dy>aSK}o48WE&(fDB@bK)zH2ZUJNSCQ#b?>fO1?Bdf(Xn4cyjk6&eqc;ORqbv z1FQn-Y}M8w+J7$^BBDZuUk69({?>NA=#esef3)68iZ|c#d9MRBn32!lpE-fomUlXU zS^$x{AB`FL6+1+*^B73)07yaJ4R(B8luq`<^a4Oa;s6!VI@ugaF$6}oe<^Wy(1@U2 zpEbS$XrLvZ=ka*=zINTw86YzGC`f03QJ!@ckghxG0Dl<-aOxP~dD;$_);Zuf;$IV>HwL$A9d}X zS)c+r6Mw9DT6i5`0%<2|>UfTWktpB}kh%LSQ1{?<0A2?bi7*4<>i_~o6#*iCJO(1W ze`KAz9L8(i6`H}!QcpV&j$WH0Ef7GxxKXXU_mPMu0(1v^>;4H~2l2i2t3`kk0FnR8 zAzo)U*;5Db5@98i=kX0jTo)42MBuGg{^#Nb9Di$Wdn2g2z4{285`i^u`BQ*~q}j&p z8VXw93&pVOPZV<1G=wshnO=^X%J(WCqwL!uU(R7(eQcpN~J-*tes z+x2;){O6416Z!xAi^C!UeqG0A01YGq)C%$uE``|i(REoxmFkH~C^=CoMnfx#gz|q=ykLZzgBSg`wXNjZhj6ix=2Y2XU zM5t60URcRT)>|4cP|MUCpIJDfPVc>0j^;CG@Q|*lvpd3m7tr3|Y>oB(x&}>tTVpj& zlfA?NB;@zj_BKb7+s+5lTnSc-AOzW+==vh4B}HnZp3mVwdur~)X_9C09{{CMnHPPG Q-T(jq07*qoM6N<$f?XaXa{vGU diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_52.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_52.png index 3fc75d8706b1527f1a4259675a4e5a93b18f55f6..261c424e2a21cd27811348a0939885d3a8c12012 100644 GIT binary patch delta 573 zcmV-D0>b^@2g(GH7=Hl(0002`twPcO00I$7L_t(|oNbdmYg9oLhM&26R<21P7i1we z;T8#qOCXJ{%s((fj);iA!NyL)&0=LG_ybJssBB~HMeI$pB1CWzgg{VY;j*&3_gLJo zjW{q-=SxDQFv$fxC3hvj zY`LVTz|eugLI4E_(q66r{kFsffHT2CxfNj25}g1rlg4~k0SZTF4jg9md_~knze}R+ zu^IrZ5`1NpLaL|3*##o438aaye}Mo-Sw#Sl)C59W5y~`fi5LQN0R-O=#UNuT!hoHG zMi5ZAQw%bP0e>t61!i4ZVdV%WD>zpGSVYgmtNo>>J>|f(795-fKD&T4^YBCIKdp$t z0niD|Rs$kn3!i7%V&@w7N@KIbF%UiX01`t%0&ESMJf?AsXD2j5dDe*~aGpTgCI;g) zS|aKMIcbU9Lqb=Xtblmn%jP9m4V)i)BCzaNModrj`+p-nB9}xz9Zaj5n^XfrXdFNT;zghI`+B?s7O{)+P4>u>K&2w@06@b0fvzfR!A0v?8eYgcFY*z&C-Q~v#)ujFf=-9D7Zk+N{00000 LNkvXXu0mjfr0xMs delta 981 zcmV;`11kK=1m6dc7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000A#Nkl}9|1Yzrtg>uD0dXEsSQ_Qf-3f&qCu;TNlu}7Rlmbon4|2|Gxxb1Z z?*m-;0xAH_?zhPQMO+7P010_DA^{VCRd?>{0-VI0vncX>Qh!_rFaUydEiqgHC;{2= zGh&zpL;%*d9CZwMkS-O$bpQ}NNtcWTu>hiWqa`AczUm0uIzSZRMIc!sf^7v50TIZR zia;a)?=JMLAAwYa2(AMxAOe{v5iAS9yZgNmfkdPTws!zaAx0n%5jmCw@YU{*K;Cr# zM?@eGErKHiV1MCA5lGV*1JeSy_J2ks9N_>d+58&Gn=}m(ObOtt-5-H0tub(n185=w zSs@%CI1WCJiRRmH|w-z^V@>CokIy{`fn9e>;oFx&n0d!I&vhxKb-zIOg0 z2Qa_U4qAe#I|fl_B%e1qTRQ+6TpU*R?@f+HR1v_e{g1+WUqR0L2xNzMfSmDLe+zG7 zLXwZnw}k_&qLlJFpV9k33#g9gXO0-*0$8#Cnoui}-_B{-@sfIB9AK3+I?U4rT8)I> zxqq}fezqQutDpND%WS(gP(O$yNB#LHhd@CpFzId}%_9{P!~tqGBJ#Bag(QD8U;S*- z&U?!5wR42~B8XoQ!c`DJ%vzp@1KIg5J3vp_E2xPs<^2bwmb=0%*}Ze2$d@>h*)M`d z37R32@{&kaMKJ3wEs|&IBgvOU(Fow`qfUovJ?zu_>s(JcTA%6ViVknm;XA;n@@vcD zpB*7nb000000NkvXXu0mjf DjtaJr diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_53.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_53.png index 2e4528c7318962bf3865e4e534c20a09923e85d5..fd893efb91b8966b38c0a543e04538bc45dffb57 100644 GIT binary patch delta 389 zcmV;00eb$529yJk7=Hl(0002`twPcO00CP`L_t(|oPCn9O2beThQE80Vuflm*ulvR zK7o^4@(3;kUq;A-I5;Q>;_g^Q=xfAD!KFpewpM?KG|9;oJxjuu|D1dN{|3NG-_+%S zU2p}aGD)QclC&@_4j?wb*R!xM&VWi?w4e__9<-3QAh9dp>wj-a3kVfe^;?kJQ(Hyc z1#3G-l2%Pb8%5*326JXzaM{@PIAD2anw%s_&*2_}zgPD_VlpJsf|=LUS2pHg9fvZ*w&V3KLr0n*#N?5;l8p#hZ%mxSgB!Al5!1z{Ym}r8h3xQ#{Lbbo1H*2aLw=6M#sP jRKT7)G3IjE(<#6YS0jeM6eK5g00000NkvXXu0mjf?0LAN delta 766 zcmVrMnA426sF{a<& z_U&OB_&)jPTYm#o%T%nsoYV~(ITFAvJOzjv6H@>dSy-NGfe=7}H+R`S70fkIreU1FQ^g8E`H^JkR4o1grws8PHn};05+6pj>9PL@}Fzalh~k_9CzhY!2W%kgeb4 zpEr~NvL1YZO$Wfpx{(vSg;Hw|bHk?Aj)&j_ToeGn+<$aH9sE|iUbrd%fO_`z{tmnS z+VeeeeJgl&_wA(U#CVQXt~&rWBS+~uiANW>?f}?~#97uHlEuuyvIAHjFmEmpUj{iR z1n^;YHDZkrz=yo?p zfYH~#8GkR?$-(qaAjip@**3V>?3P_Xj03C$vs|u)BkZHP2+T*sEN3V+ss)gF@8Sh( zh?xRTiD_YvDFNKR1swGO9aF1-n}c||{KHs2TAo_O3m}6X$dzYU7J$kcVAtMvkDyyd zjROGCZxLG$c8#F`qy#_HyGzK`mL=5f1N4r2V|VTa%s!{Q$0#jfMyL}2z}zjO6EVzQ zQpp=owa=M;N}yW=YIuPWD|N%{b@W!yd!JJ2)&SB4z&)_L!Ivxol~X{5Q=q58mzqpX w2awv~8eG}6n$a4ZK(zy8IK;XWL=8^x1GpRh8abclxBvhE07*qoM6N<$g1l!{jsO4v diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_54.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_54.png index abab31964359435749bdb0c6a4579e9cd469cbcb..08f6455706815daa12d6fb112c6c73b262a1d7d2 100644 GIT binary patch delta 415 zcmV;Q0bu^V2CV~-7=Hl(0002`twPcO00DGKL_t(|oOP1DPTWusg}-~(VVA^cUC^&< zl=O6Kq)4=sJPJ)DBVK?9pr8N=5z(h~(xlBJxJx7&^CR)Qds5hYJ=ch7uKe9IGiSyZ zU@ED^#9UHsfh0YyK0G*p!~ox&0RWw>1FgF3!32O}kV4*r%zs+IukNxQFjTZL=|N$; z_KGA1ueOXNJ!=^&!t^U}Llc9uFs{b|Pd`kOlO*Zy&`0{dbq{1_hm7<{qhJh1s+q>% z!6V5OP0qJV6cl4EetnZp3|Q7L_VI>wNlt4Zui}nwiS2%ToiUV$uv-g2!)SL-~W}Te`yy08&coeeObn zk^ojXzT^nuKjH$g;P{dwgb!bmjazg+V0TMz7Js4!y^>n5MV0pEql!nJ=d0w2jivVZ!_u)zarSp4NaYXUB5I{=lkMp>~cZ4+X zJ@e&N2CA)8u79!2)D1f_C4f~#a*#AGQUDiOSdnUhBY=Wv(Pj8lu$G}_D|@bfy|SbR z=rL~Ta4kVx*A+qpssb1>=&A@11@#nAK4v|Mg1Q2w1>rpks272yW3vPAj(qxE{<$OR zAn(ox1|tB+s(XtBccIk!R^%KGQz(N54v~(ct{C}r@qp(x}Kz;SK{*JrF;0|u0w)4I5=8_ii$KX^-#tVq3{453 zWo+q}L4Q#prvQzUH`G4Ln?RCy7aMsiSlbXY2S>T_oCeGmfu&QQj)Vce9VCs}2#|S8 z4I1zJJqyfi1jxKq;$>9OtPeauiU1m`pR&>^iMnaH3h6R5cL^< zZfQ8BQT;9kcklqZsJ3AMn<}C$qw|Q@S#`#u7 x;4Df2fb9PV?seu4BG^s<8SQP}Q72j#!4Kf=L<-0hF3SJ_002ovPDHLkV1fVvX7T_4 diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_55.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_55.png index dfa5312f556181f8d76903b4bba769986fa465ad..8c6d81c0f07002eedff37df13f299467fe8f8f79 100644 GIT binary patch delta 346 zcmV-g0j2)X1?d8i7=Hl(0002`twPcO00A&bL_t(|oSl=gQNutGMW0RvJAfGt4agnP z0aic(lt2k|U=b1000E^aASQqY%uoO}FoOmpeF8Du?imQUM5Cv_xBvd0;6JO>+5>4Y zZ-FUfjjxcc37i6Z5o8EZh>C2)rUZaGf{|1aOaPdtB}D`?Z-1LGev3GeD#phof;m95 zr3fClJSu=D^NKF*($=j9clNlFx>7H-RphH}r@OyfN798IRiMu{wM|)TrjiW!IAn+a07*qoM6N<$f=aKK5&!@I delta 708 zcmV;#0z3Wb0?-AJ7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0007lNkl*>b}m3`IpI|NqPGLx7+67J&46*8i?p3@K|2f4FI-4fQR$e ze6#BsA5B6C3M~O#0u9aqG(s-{8RpX^z|7D~K!!Pp1h5D`1%D#w!V*o7u#%&O03hc`0Z;|_d<5`()3EJ3k0UDpk#C_r;Z^|j`Zc_WeD{_RLU;Q- ze=aY$tN`f!>wj=3KpMWZ7egKyZUhJ+e1)e~zA+5cd0X9}Tu;?%%gDUpX{a6xmw(PON>Xrp;A|mK1wk1rfX^Q{D#2Zp++{R3Y;xB@ z_-%#+AmR-Nv%@c47ql4`fGFSlYOmwGcBCDEkIFs(clWI~bgUxgp;7^~X;qY3B|#OC zVfHYnM$5@`&f(DEZP@-f0V2q;#;I2l%A4drgH=Zyr;B%A!L^u#4H@SL|3=U|eW3a*K(hQ=y=F%h$Yb{Z z0@CFgDuNB>lfZaH3_a8aa{(gvT|BT3SC4}+EUag`06k$sgmo-A5j48|(^x)YXvwqm zNSJnzlJ|fBdCcYjz2&|42s+5K{7~rZEnpKLJYXIZ# q1#klzT{(a7NahU)Ud9jeWpgadSBJL%0000URo|1Yz^e-7Uccy^#lMj%T;0MJ?qA8zCh zqBoVU0RS2Ym4nj3%z*ph!!aG1;X?l>?*H=vL%01thtXNpUMT3W~k%0?cJnl5EY8GaLsot^f`xSi=Hy zsjP-4{SN^%&zJ-o2#B6BnA{27=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_0005&5g|9S zQvf35M1BlJf?R~m0gxaMVS^w_LJqv5L1HJwreK`iPkK0KUIo*%NE~K7y~K+cSb{uYb3KKs?fYfVH{f3eQ7|2Skt& z;z+#_1pP@P09hc0Gy*^j9|ElZ2&$VjP6u&3%<2J928EMB9ETf0DiIJM25;R5Q_Sj- zKu>cMs7TZF0D4ZH0;tvZj07o~1*4|G^7?a%$upJAxihu-T@dN}e^FHLWC`14N002ovPDHLkV1fi% BF{+{gQkCVaSX~Y zUS435aI|k1KfqCCxs}1~!ts|tDLFme2Ei-km5e9IFK)8bQBXNOc%YUOT*N^#bP z#S8@^41G)o0vRm07~B~jXfVhOjG(uR%i7=e$G@JNe{5P{<>tq6Z?9M9mHoYG<#t5q zpSi%+kpOt;v-(y?1$6+Vj)v zj&C>H@UF6Z(%dg^T<3>gzdL=V>~nSblPiwy*%h%^?fW*C#lO$j@#pGny%y!wdA@SK z&;0zqx2l&;x%=1W-|o`bvm39KnU-5GS9a?)ZAy*)P*o$6y>|I`+}|JyM)Q&I~USqz@8 KelF{r5}E*`z{1!7 diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_59.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_59.png index 4ab56d31ed0c210026f3eb0bf636e5e530d9a94d..95542d4a27ced64dd17cd074525067594d8ee2d1 100644 GIT binary patch delta 456 zcmV;(0XP222i60S7=Hl(0002`twPcO00EszL_t(|obAxRYZGArhwi>*OCHa)&P2>VMFHMamVin~QK)?BJ#%NC!1n1Pj%Y6Cppi zOxE{wl_1M-;jBdN9cpt83SLaU$%g!Ba*FAK*hdY`7>)E*(2P!X| zWbH(|xu>VaciQdNbn;%0kJQ)w-fC!|+IsG+=QGvZBMA)c+G|NVE<@?%gHq1M$rXTE zlfuP`jIo`;5`R$I%m+%#)^H`1G}TZl`-N;)IY<+ z99KaF%PxkKfh-<(m--v9hTD{XN2d>F=x8_n#2Ee(k2%e|i5Jc^x&T zrTxF`CdFS2n((IhV{qZu2hWl{IXl+PobzYR-kTO-Z&~+z-1X?^p7`0{G(9vYdtJQZ zkdYhMta!3A=$DVY|H~;}jLY92TP@z_kr@{G?*3bgsX{xy9N${Ou%pC-_t82d1FzS2 zemp8%^d;zTT~t5{Lyzd{batD_Q%dhy&oSLOR`$j3(&t8&hxXoiVe9p*BYU-6Mz3Hc?;aB>PwX%m0_y^DFqb#k-%Ibn4IO z@!p;{hcj*SfmKBtvcEDj?Ah!0watw$D}SXQ!+qldqj~wu6TZG&n>bxX`7Qg3xj8Cn zn|eyRe}36}Nax-x#tSU^6Avs7X7&X9fL3wAP%G-pn}b-0o9B?mv&-Ep_p^kP)+`*wESQlZe2< zqMGhwvgV6(GM=i=p7!^^l>@@N+-7=PmF*VSp3bPTIPK}7u3Z~{OQ`wINjq9N`Qb^U zd6y(YO*Pv3dvfe|_4_;zWO>&9*(4%1VQHG5{q{G# zGr6T#&*S*>$D%?*qToohV^hc38yT0guC6_q6Sz$&;aB2>t!7^L=TBm_khNAzyI$De z{L;MHZELjfi4|q{tZX`N1P54!`JZ`tlAYlPv)KB_b-ZOw(}0aL`)>96N`Y#foK;GahE6<3yEN3 zak>+UDfDtXmxGmi3OMx7)eC?{;~ujB zFSIyL5P&_`sEy;@dI@e~0loejPhvgh&HGqm%(vHOI|g-?0ZGece6)(IX_;$p*8((7 zGIiL}V==MDm?a*1X&v(p9@*B_BZ_G288xs$3JDNY7Jpt&X?-;SyaAks2R_ZUwx&xO zmL2(fF$)X1e!h6Rtx?r3@3g(onDcn^;7S3e$eW?J%-t7f=XVF!2`I}SBX6NPYMQO= zNC_OvmKxsjofT8U{Hs9t>(!oJ_@x8TdX#`eeXyVWlmY}z2b4I@=KH#mCW@t%(M&dL zd^Z3ZoPUFe5;Ungk}BoWAH%6Ew|g0Y3t*lCH0-}8N&ZZl_H$X6M*9K2GyoYk8iWy? z;d&1sfOX|Jq<#9KFHQR+Ss#QBCr^c2ktSXNy~W987z4J#rVfs@o`LNQV618>t~A-a z)h$<7W7&yQ0?akHhxz5F2iPoOXKI{r=Ef7{en0S_0^qqu=dVBC1^UB$y{*1hmHC$> s*+EzshdDC2$ZMh|9{#0ugyB3vaCmG-)&uE*=G`%#Ul1VBBX zdhhi!%@6p^qVlp&>mo#>YfDD6r|3pY6L(HWWDdlNucEbD5CSZ*N^Z_%j>Iio26C21%EBPM(6gP`O$g&SQ=erc*kA_ z?-^OLm+(<&$rin?d0~}~mM-*KWgoyIqU7~e>o1Q0R!BoOSY>=K%a=eSLB^3H2fqYwwxu%vCQ&YP|&nNcNox z$6PKNb$`4ud=2UI)+XctUXmtxw0A?%aTM8oMx$5{Mnw^;R9&6}%*JjHaC)OsPxT`u z;LD!|M(b+t{Nt!-6w$T4*7Gcaabwc56rF#b=RG1oZ#g!?7}brKEF$N5k|BMjdF3u%x&mmVTG9#B6tlX7 z+W1U3rqQRj9h_aeqPxd?DA&)3j?0rk4O+PF4gZpiisL{6QpWbqmBw2#J$X|bL9OMy zO_IYqf=Gv~%IIh`>yg`o9$Ri30XVWovpjxg`NpxjFL4_Ja6}9_vTR#P9tr3^OB+En z>3`6asJcl~X{hB1vmVk!5vhK%@Ejsc0Lj?=4CYyXRsBsN8CMGP$eN=&ga|SZlOl3{ z+_Tp7e-oz}H}c(600k$PR5C`pV$#i;`7kH5KC)*-{&Ak?nKd$+g;OQ78}+VPV>~a( zWZ}`dQ4&Pgf`6_>;gMl=6wq|AWcQM~I|B497ExMjaAa#_ zG(nve1$YH=w4}PetdPA^GsFUN<7g?l+rFX^#vA*xj4lb2>P~CkZa44(qJP(F z5+KI|I#^S7mlCLU*ABEn!ebhd96KAyd zw-#&#^KkEZ#qN=ywYW|rNsLBe3(@_+5x{FgL^@MDMS|YSWppH%;r*@s%K@@Ny)$g* zNO0-Ks~se|?X-{9`tIwSZY0`%q<@gkE$R9QRP-OT+TYvLZiwpix+ZBQUbN;!ja)?r zN?u;SqifJT^4w-ePp`zcBv2~xMk0G-waC>&1Wp1T8Aq0Z73j6sk1D_mdd!r8kD3R>3%Q0i#1I{%(hs?Qq1R5|2q4|i%uTk4w2}bce9y3!G0^U)WlRKBN9h*< zGL0T&&Yehrc(zqGTClualke%0!H_=>pHV?nK}ve*xsUV!A`yU&w;W>D{rmPph&d26 zY9x|WG;kuiMP&4z@6nPovqDw{zFrA~1_M3+==HK>W+M`0)|`#d(?F{7=Hl(0002`twPcO00MGJL_t(|obA%Vixy=7$MNs;?Bl*eEWWd0 zw6N4W1eLI5(xHSF-dQuKF0Rl^H_cNAgSxBC6hRR|fd>x}S$L=>tVoKYm?1g@Auk;Y zBXeezSVZF;G4_35-zqAMto{%SQ@f9W^Y=Zx^Ot9T8$cBy=}h;{zSevqUFeKl z2E23dgY3#D*-90?|Cj;d@a*F5uplmC3M3soKc8Ps%2N4Em(2heeYazGSQFAXA?eTy zbNyj58tKI*k$(kvdVzu<;5qv?E`#jxl4f?IBG1A5>Z9KtKcmRQfyE_ z3mlG^fyEPuUR1Ee0nfy(?f zN$PlMmVa-`rE%l{J~sdXHY&mhUS}BpyOi6%II(b@y-xzvq3ysJI`O@yVGCfU*^lxn zH{X@!^Y>&u_U{yeg{RW?*Sk((TTD^F?ZF-4`1Jh+cA9E0u+5u|1tHW3vDN002ovPDHLk FV1gB3MV|lw delta 1363 zcmV-Z1+4n31=ra^o8uI~<~RkgIZgp=j(<}Co8uI~<~RkgIZgp= zjz9Q3`ET*TgWYs;<>NC0UdC4K&$>qe(x(YvLa8QTLS zb{(2O(gJ!>W3!%;BivbOa@Tc^!bV-TBa_0%KMbPP&wtnC zBSEeJx|i|VY|ZZ@-~3Yc@nFd*0BsYa_Mz?eky8LimPS{{VIWAe8L&}eAJ z-%{XdGNsE5P2Qq;ZG2ul-uYN_LjKO`OSY_b#r2o8fY$6g{Si2GbbIt2VpF5p)onoP z;Td1(yhcnZVfiT_GC^sTN|Q!fNM*|#jTs#$a(|NOi0Dl(fU1CJ>{vyY33?XRiD&k> zB?Z8bBK*c_2BaWqH+(Y#`egA)@Lp@X3qVV<_N)e{ajoZ7?x?HbIsIf|Er?+Oc$3X{ zope`E?Nm*SPbSjmwNu7wRQ3JQsYqNb_kG_;Qa#D9zAvYG(io%Nz2=W}ny`FF{PXH? zpno=yIdl7B9RB}*P4cOe*@;^3G?`I=I;xL^mY!#P&zupPWek8g&zkt3GelR(>4gk`#3wrI3d zjc0%3l4%15pg?;&$FCNFS2pVtZ*|hU(SQFeyQ&OlfDUiPRc@$eqiPdci4m1s1)U}HuN1*5JukAWABF3)fa|iqNI~)KMbKK^73?>`)!J@Q+PZ|8dA^>B>~-vnxqqza z{T(l)k`cQ9RVL`ZbylOy7QJ125?-I)G2H@DscLmH21@QR?|H z=x7HOK^@(adB%`FBzme4B6*0mqmNCXbi}KKc85?6iOvxnu1|Hn_M)KiUx7FOhehQU zH2oP9Lj2UOSP`52zJT6&R4tIvCVzC+(eFc7It5hF-RORsj*%J1n}qBKDEwU}PLi!r z%dyxq97A3JR^nX7fnat-gIE!Kuia5HkY3H@A}hG6J%6+SKCw(YunOtPYgMGcJtrDZ zGSQ9Ys=Jdv2FP6WAo7}xY%8c>sm$@W%XVZgY^qO42;O~QEyT8+CR*= VLqYHZ1J(cl002ovPDHLkV1gFXpNIee diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_61.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_61.png index 7da7d1adffe617a05f7d1d7b6ed4b88597556a0a..ef4d9db7ee2ce8a3bc994fa613e928c3bb8b37b1 100644 GIT binary patch delta 725 zcmV;`0xJEg4B-Wk7=Hl(0002`twPcO00O8E7|B40k??OzX%U7J2y@o#b{rroQ2xvyv40Fdm1}?rTf~$ zPiXn^4WdIcrE8yil)e4=C=sX3920K!%kX;=@X zZ?ln=^j`OjfUn_*otIVtRL0$70iNozjPJ8#Pq${o@(?_LD_B4;zsUVq56rt*W6bxLru$NW z1q?`9ucPBl)J*C>wSQ; z>FI}$_!|V&^-rNUXpWn9w>VYCZWU z-*&K2<9~R+JTR0rRwOl}scg~uAq85T2B<;frZ1^cDNVD9ELYbG0O!xkSC+gZNu8-Q zNlIClhX(<^GynxQOoI?kv9Si=!?w!H(gFRLNRwnF+X11Y@dLqJY2#I}wlqEmJAiGl zxr1ZfhhQ%$?5J6d8jWxKF|0Q?BiXT24D4#}4Nl5)52n~6W-&L;ICJ^F`XG4F0Ptk1 z|My>S0ZCSF_mpT;Mdz#}n+BDEkh@&3$^naC_!R-WK@Ru_|L11OFLmr#00000NkvXX Hu0mjflnh#V delta 1573 zcmV+=2HN@I1*!~?7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000HtNklu&2X2qx3s|CMuo9C@OYJNVKqpHyW{Y`_L{%X$I84G;b-zIF@nU@sm6_~SUj z0Pg#CUFrBNov!OHzMa<#o*dv$n^@o{@nN@4B)!1|9|f2y57FyD*(KV8{hH$ z=vCuqjgRn+^6^}w>*mHE5dtEch{tE?bX|Ax&GP5QKOR8g_jrIs7{UR(ZY~9WMm>Nu z$AZSsBZGHtl+O&B-1uWWfaglb1H2p0%Ihw^S^nJkV?016hGpqIIRLs3hZw*>Gz8EX z7sYQ00Ur9thJOHnxLfm%o9RYrg1186cKUFD2jIY2^Wy<(vT$R*TO|rYbM@X0<8py6 zdfS)>)`3zWYZqSkLN8NPCm97KV-`*>wF(Z8a$P0@@09VIzO0--( zU6ePGq@ZJ^Q_8toDI`()9%$ZBdj4@CKvEtzZU~D{#DAEJ7ePxL?}k%o8!geryfsf0 z;ZNsS23E!L5FjZ?isja3Quiy-)4p3uQMzYtMhTfJfu7RYRfZMzD)?Sea(J?K z?zuFdo`1ZK&4?OdrxGl1w zHi@2MsXD-))2e|;^;3m)Ai@T~DVxS%nt%0630(!8ayd8e;d#Od&dR{$M%MV3Jp<)m z!X)KJu9g5^P~+lC#%NcpGyY~@1ZDYq*6g8w-S>T0mF&&Jv5?h;TF(fr0e#_|9d*5ZDH5#TY_xK5d9sNOj>U|n&079xsWX#^banaT%1 z9v~xF#3OvN5oE@9AZq{-S-)nLJbzYJx*O4T-*@c4kgKSiegOaaLapHI;(rnA72-4_ z0Eo+UnkS=(uE+h$Aj{oHI#VZYVzzS0cK$qA5&H+eJQm||_n+zshHS&DVb5l*>7;c4 z%1R1nZdgbEL8^qTHJyg2OkZOXr=U#Y;Z<^%F<|2zpK;&I1AniP<~Apu z^iI4afq1bqW86S>V;a*2`Qlaj{#H~J)SwAWCWg* zt(A=$v{Nq8w`8ec%CCc0R1jU@l3pD5Jw1Sk2f*XC1F>rVUj89O9q3eQ#FKP1a3Zor zXk_DiwB)St>Okmqu&3uAecqPL9ApF)o~sdh8>p2go`rZyn`}wbQ68F68Y>!MyF=wa Xf7|iX0Os<500000NkvXXu0mjf9>fEg diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_62.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_62.png index 1bfd8d3030188d296f4f45b76ca11fe5326cf279..c6d519fb4213bad5732a8cf9668a6f20acebebd6 100644 GIT binary patch delta 741 zcmVNor#eP&p9oG=)1vi?fg@ zHWugZL?prFyq!z%W;Q!JkHxL=5UqU65ARbv?`r_sgC8Pf0DtfRW)45MgU%*c{xKfF z(gRm^x}96}$ZDw0hWaWs`1eRJ+28B+w$YPG|108dME*Y{Tfl7Dcozry8_Wg{jPCL$ zFjeDC2iLSdf$D3~5!S<=c{1AUQnxQWwA_FHWi8h>VOonbPo?*r;KA{4SRgG9zKW|H zWoltk|KuO_H-F-XBg~^!;*xfCEI{RTMt=@l1k6U(7&FH$&#qzK!Xuqr zy+z&v7H<5-`UymUUs`xRq5fqIcrhGc>HiR;gdPu}aFC!i?4YkBSRfT`BgeFbnZovV0DSI?RPruPHE&*$cC z`==&A{eLzBqAu8vzE1%Bs)OkQ$BArrN77KCR1U_nY2}+3sIUl7fQDsLQmITD_eZk) zKA!?OA0P+yyKhTUZ7hwtnXF4%djLK+04cT=2Q66O{5*gUYsxN2yY+2X8g&Pbdyt*EC&s1` zGl_A=nG1Iod%%MdfX6D$E0>Q0-F~*#P**ETYo{gIILHmOxYafC1hDw2pA)bRti!U{gF;00000NkvXXu0mjf*TG_5m7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000G+Nkl1NgPRk%FJWfxDR@*X@Ix(*Ab-HHX6=f{TjccK&GNlh zul^@qzdi(L@VarVgLUqTa51C%z!4tchdLZX0L{&FZlCiAr+vn#*5?%l+AjqBLcpDI z_cE*+wa&$(nmkHJI9Ag$V)fGV$i`LzSPx}bb?^Q4-}n_T9!ss`ftP4_ZR*fGx^Q!> zh7iRz0z@p5I#^F!wXS6iHCQJ1ZX$9>n$<_%KUlEU1All91VXZS>IWa5wYVI@GM@7Q zvyiMFddCcuRsjQ?d-cqXRs)fTiNn&W_{>?om$VX|J2GS~;e+6kEqI@^LQRfUM~jTi zL(o83eb)Nr9zb$wmJMcDp|rk*1Q{;bx)u%(RM>OFlcPy7fQFEU=J83J{ic}RI(pa+Z>Tp1ffshEgJO|LqBV6y}7|+SHjH3|s z7}~t3Ts$Yc%p1B5+4#Hi9H0U_Tf-iByi%m^KqcViZv(w`^{{*|GF-IgaiSinHNSrN zFkxA0o!@)EhXw{b|YpMo_J58)C1rie}8MAUVvlz&g2zCB3(s7h`;mbu%!xs zj5ybdhJpu zseeGmi>w*kh5#6zgIrm*Rg#B-=bb`pNd$mN2d6~VL!wGUE>FnJsx#rKerBN=gqr}= zVdEH#vwkk2n*nvWl$*D#d4dH;b)a%1ZT#CaYmNW^18|4yxoQenfyqUcjNYzTX8eu5 z2#T(6*|SCd)qC%=hiuKlp^~#3)$U1SG=D3ZA!uZtXMN9}Epo5F?{f}cQw%HV*(euY ztZPANWT^H6oDP!wD5=99AhMW8X|BOBb2!}mED}TsfcNS-d@U3Vumorh4Z#zct_iB8quD!ktMF8J~eD0X(`s zR+T(jR$2}3zI%`T3OR}y>u+t*Pr|P2{XP2lY*pek613*m=`>G<;oXnn z=^;idmuTnDf*rAc;9+5m#ogc46MqcdhF620P21B+`)DopT%TGS*UBg@DO~x$GWri( zC8X`?GuNvL`%=aTM`I2yE4WN%syDob47@N zNq{}0hfo!Wp4Ueept*7loW;QEAro3|0*PP&4h7i5tR@09z#U-Az!?QF34bCj5Bj}jULOKJCVR**;3gkL9%jAzNX6zmi+VZ9Th|t zsH7LheM=9(;{o7!$sl$;zgM>(gop!;hwAYp84VndZXOxY`0gz^XV%Jq>vgcD=kL9r zmdqSPf|)gU!}T^$DordKv6ME^k|v`x!!mX>!m2~%KZ&)xEwQRp{r~^~07*qoM6N<$ Ef;!O2$p8QV diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_7.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_7.png index 0ff0f5a3f07e452930faea438a187d446ff3d3c5..4e363367e80eab14f1b91a5bbe4dbcbae2a25783 100644 GIT binary patch delta 709 zcmV;$0y_Q33(*CT7=Hl(0002`twPcO00NjvL_t(|oW0ROh*fnI$MNs~|Nisd%^tps zAWpe>uYo99r07By%Da}7wTKoCw8|lD5kUwE3XZ=2s33^sgs!uNP%#T_XR~=1YcVZE zp-th`yG97rICDqQd!KXP{kfPIO5xVC{O~)6!#MyPTxfSXrGF$zmjBcf!T&#zlOWP3 zwfLtB$zxz1OPt1o9)Y=!2cs8)A&k^G;^D5Ahfw`2I>>VSck^Zh4yfDrx6bvx_*iqb zRT$Ou*jwqQGi(|Bg$2@L->3M>Ax2KDCOCVqemLG4VO|3(>GS%zHk78T_{D}qh(T9L_jG9weW6Te8gJ}QiC?YoPZV>r^`)m!AP;WJjj1_?w!P+E8|p@05;47eDM!kTX~EiCA~dPP&U zZJ6=#Oh12lw4tT4QQT>`Zy9lXvTHU6lV{b?&G6uz!P!@XYXlU<)s`DC_nK-w-BSSj z(#eXOxif1D82tbUf4eee$A4)8)He{Yy9@T~>j^+m_23FTXR_@bNqx1Y*`s zDolf;0Dtw%rleAt^lNWLmfKS)fDgctgL>VQl2jW=H@cauPg*+wzB2$RwiSmhIKj0k zfB+Vi-ITWLr>=CPyCho!p*NxzLkLN+Ra_2J6a5QN1#F2;JnX5z0_%z4zRJmVss7zt zonn5zE!+2sfRXC@FuU+lj7=lP661|GH#ZhLz&=3?0y(ffZDj^lXy3<0kl z$HC6Q-4nSkA#?9p@Yt=ujlH-D@a6b;0$e>r&&J0Spc**$n16j=<($;`n*d*q%M;)Z z@i|tl~Gvf8qepF*A0jx$DUfp|t{Tt>7c(bf; z2TAY}4a=sC=Fx?_$La`CEF(a~BPqjr&Q+@{>rsQ}SwX}e#H#K(rkV3zDVLqa^SHR@<%ung+^ z))wRdT7P*&d9=2n)^QY~S+qBbMKCLhNTurb9AF1lwuUuC`Xf{+?2!fKZGRf*t*f>3 zk3+@rqeYzR%0Sa)VB{cP67}A%5dpI0Sfx>_8!=gU&U*@5BLMF4xAr#*a7zPxM5zQ+i4J0U= zBeh2dIFGli+@1t-7@kdSP&R78#?7pnv>q4WalqC9p!4mgL}a z@qcVpfT#M&LURZ=0VrcrSw0-kC3G23#-+l%MP|j*#EQhU;yz1L>}}6lt8R7KBEI-BEzkL4TS%O6qU~hzRp2%{4f(HL^89T@?l3cuhx7 z6twP}D*{N9ReRD5cyoeGt`Z&3RW;uH#ym!g01(>3K7j;qj5e-PCyoSGLU8l8Ca>Ya z86B2X<3|eFXKIE>uxuPGC3mb#Bd3Rys?&}LV7`H1E55Jl+@1wb!s<I9Kfp(CGhGbz}1c= zx}9kqt;P2B2^ZpRKSEGhD|LMaDu4P9TqUHf>1^=o^cXi$28x89)gcs;7uWAr8TeR( z_ny(yEAf^CP$k|>WH*+JToEEjxy_0)FiW(kz5XPDS}51RErjbCWTE9I-i{tV3UGv( zNd)YGE5KF(83m}imNV3fg?h_YiUbr9DnL~rUKy##(UE1e2NABxmE;m4B7Y~UpG7ar zwM?6snoDZ2bJqvL4LwKzYC|)dED>oZ0kr!y!%D``^sziUv7qWGeGxzl(~+`DE2qv% z0*hx$WupYi%enbAT{4*R=iw_Vh$>J?FFf}xJpfMxfa4{HShas|FNBB#jYjoEl8Oe7 zM>o$L(evF~a%N;z;PpzFX*;m8(UI$A$;^pJkde6>uBU-gX<}K3rL>8bG!>;8o?}HL cZ1++5557TsLBim+oZ5k!L^ zUc~M!Mxq$q4bkpwc4i(AsUVeJeNHbwp659{F91i^>&<2*Nq>^%DqR!!|2lFqMDJP= z|G$FlU%*`L(Dr2jMt*(lA&vz$=yxIun9D4B*wn_A$Y{VK=n_E!4j6kOImyPs@QeD= zcF*LI6MHrLO|Iq3?JmI7;Tzsp>#t=Ew%T0_^onQS0e6hiwKOT&?v10?81u$0TmJmPWS%Sxrkvm@@WtvW!1163%v+_; zi6YL!o`2r30FWC$VgVi<7la}6cInC<3;s47z$(@l(|PV0lVTm1S8;-m?j6Pgn8e_K zYR?1l+lirs3&t8_{K#Sc09!=NCl)B!F_&YGQy zzu*Cv!b_OO6Me0(tEN^_Q!wE^q=dDvE}bQ|z4EvH_RN_N9M5+?Jpd-}kHxOR&$fK? z9`h{`Me#K>=7MTuLMt70b*Mevw2k{dGewWdn}N9>FT#`cOp-RMrnK^6B|E#60fZ)n zsX|ceAAe{{8fZnTx&zVND(aF7^`)vi6dF`DNtGm(?M+#JU+e++3c!Kdt&@@zRMHQv zHCdm<(*U0shzYTA8pZGmD+y$Po86gP*kI;ifL>$+=tGd)bsBC07;5;XDz(?%mBw1{ z$yV4uJ%rK|#;AXKUy2=g%|`&EmFe7COatxKuw7GAFYEQePm*jF z7ZE_6r+0h~*fh#nAmL6wk!OG@zMw@$#rhm)i*&F{Dz?Wlt19)6~ z4BH#P2-o^e*xmph4-mul2Jm=*7`8Wn#{qTDmpS_0{B&-~ zn<0?aNBLwM!c+r5Pd;_u_4i8CdW9_Iql!d6U-P(djfU=BrV>095%Dz3={zXI8n8 zO>Gq*8KOr)sN2uZZKiqvR8i6gpOVX;k??WzXU?s;{eP&@Q=Bt4O;Zw=#UqGrhUYZ3 zVQF-k*^@EL2$q(CsN!1#qKnTu305P_JcSyhkQ4Pr%Ns#bOhY!QAf}W%v4GOQKw7I-SAeEEZsQD8OUCVQT(a7u)j)wRCBhq(R zejRM}0@Z>MWGj4x7w|O5C|#wcWvK;Qcz~>OEbF3X#VsQTF0Xyq1IjPB1AO&b%0r`T{7T zp&+x3%pEL5#`8|6fPyoI$i|KC-B)NEFEzzH$)MypG+Cxs0U4Jsl@EQVZ5|C5SwK3R znLIUk=!P3W)`my;pndigh}?u`%$s5W?FB^}gGNAdcNC*bww1=y1F}}SCuRfSl+69i zMt|$Zx#}P@qt3>NI}r}rfe;PAs%)xs8gpAdSqtm+(XDab+d<1lR@~?Ka0lYJuIoaS zYEizVfN0~THwQPbBu}pt)MQ8Gv(mJHJ9xmFky85jc|J$^RLJN;wRhYYX@e>v2I`@+ z%x_sU!ZXbSAi}poS``U@<~ZZ+}7JSBldEXvk1Zdt$A;xw$MS$D_;$jppqv zUJyMfum_-!1kuK=1RAD1UZ&DTJqK6SSn?awm?C%p3N*I2*wqNEW22BxGV+Y$sTzCh z0V=E(mzhwFMphC!16-+VrDMkx@;!iuu~e2>_|Ak!sVfX2qWn@YSzmP^x-jY~xPQir zl#tv3T!N|5ph@r@fa>!#s`0Ul5zL~qB6|8!nC=2-JF%Vyq?GdtHv?Xo?zol;Q)s)u z(OMH?WPLpn(ROUsTBK5NMC`A4A(o7|`&~Ujm92U;>e;;AwTK+E`J7aF*7jpNu{3sM z0+r!mxDt3)_MhoZEI3QyKaR8tWq&b(tOZM5vO1@R_7KqDkv8oe;N8!+Byfa+D7YR% zHhS(Hp=s$Ut(Big=2FVr{?EXl&%(7+tbwB+u^>cFsmHGI?45oqKV-fPncegEs(=i4 zhg@(}jOs=7#%uFw`4D{<*{2>aDfiI4r+W`u1JD#_Vh(I(g?AG(Hs8uuQh$af57IhE zkQJWaLO{E)NI1|8X=Pg#F>p&oV^JnrVa)2C{Ca>$qX!w!@rZ_k3@;Taf9u$aNW&&0 zELw5aiIGN+HHq@_m|tGxinV}@c@9}3fDkQBGk ml5A8B9p&5O@u}TEihpc{mk}{*!Agw)0000_92T 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 diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_0.png b/assets/dolphin/external/L1_Senpai_128x64/frame_0.png index ed37723ac245322aa254e648ab48da409e7e35d8..7390c84e82bb25fe6300e1a60a15d35740436efa 100644 GIT binary patch delta 794 zcmV+#1LgeO4W$N<7=Hl(0002`twPcO00QhuL_t(|oL!PnXk1ksg}-~}W#%QKnY2Mn z49r+VbXh@Bq-I{QYH{Vhh*?-fgjB`SVkPf|7D_>BaAmQ!5f|>T>v8Nu)g)wpi|l7FJ@H<%JK#Elx3t_VTbq1%|I|uMm97nQJlL=wuE+7&*CD=T zN>mTLZSx2G#eZKWQPh~Y#4Aff_OZ1;4j$=?#8M8j|Li7x?Yr~ma%yU}q_8VAG>BQrC?&JIk?^Phy}1BOeVE8Sj~!lT^{UW;k0{!@j%z z+yDU81YFQzfAuK?xPX}TDdX+QHQq{_xcX4NxzN&(cYo&KXYdK`2fg_`dh`gVm8f*xTOK$(x+t8ZL&M|f!gh-UcT=;SPzKW z3IG$tt@l>Z6>MKb0B)O7l_YHx3v!YKKT494H*&4QrmO$MO$6A^>DDp}1d!P5<`xS8 zk$X^*Hh;$}r=+6P^j>oSwSanSMtSv^r1|T$6H-k&V|}~P0_>sW!90z1Cn+q~uBej8 z)wo-Bl2h&I532kww`L#h1*O1$6~6~EyfE$5aB6NC)heMfHn?0TF_BHx@cckkD|0y8 z5dpmpAZ2IJvJC>GzaqT+$(+6F3ZBX5%|wT>uz&g!nVC#e2P?Xmj3-ICQL}WOhJD}| znSh&k@AvK9&!A5pFlMrjJNrdVcbfX!%?^*R@3?9&7Z-QnTh73!2^UsuXn6*s?h=68 z8QX$R_Cy`w(kPhNJN>0SivJ{*2Lkd{;@b<>4dVp_DL;t<){dOAk9gr;%q}7a*z)kd Yb`xr$@<7GnbpQYW07*qoM6N<$g8F}v!~g&Q delta 1752 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 diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_10.png b/assets/dolphin/external/L1_Senpai_128x64/frame_10.png index e385018bf6531534e1d809b371b0172361c657af..db0766f668ff189606dc51ad6a1524a05369f46a 100644 GIT binary patch delta 838 zcmV-M1G)UR4$%gX7=Hl(0002`twPcO00S6FL_t(|oL!PnXdGo2#-H!q+1*KtW|}Ty zV_~;i)ME;j#6Rs$(L%(FcPRu^M5L{P(pE!e(ugQ1DV{9-eGFtm*4Xn{-1pvnc)+EJzjP1B_f_1PDUMS z6iI$cafYA2zWNQ&;u*mD!<8=%Kk-g7Xk!U`W3J^W;hBeCDK$L=@iu?@LwiHsZ+qUw zBY?+45rWs>M1SeUo8$hkj^=8uSoxk=*|UD@_{m)^v6cm_+aq%L%iDVFS!iI$#?$*o zapUK)myTALu)4u=bmWHYT@MxvpaUqE+dk4#!A$cr4?qN{$=x+f?U2o!4DiLFO zyFIqM_o^)Eq5%LJ@X#(PRQVYj9i%4AEn|uvEH&fxFaW?$pF;|poCQF793TMIJCN)q z?ik~Gc#6F4)TRt?_i9C=wi@giBMz#66J;HqB7CQ27F?4A zA+jvCAFn=Zd!rvuRG3|Gs~k%P)>hX;yT7%)6}}#j03v=YfXX9b_?_IMSz#WV(Jzt-u9J=2Qs8W?`I;4Z#2#%AzNepp0*Wr4$vA# zyPrkso^{agv*!!ZPG8{$de1FZxuhtr%5FB=zlgj%WdnE$ut4TI^5L1C?WK;R3qMPN znSQb)t8A+5d)wC=0klxrgPcmc%4uVU5PIBRR0)((V1HKLN~Xois_U!ef3U@8yStU^ z$y6s0jfc|9RT)5!^4px7WkYM#o}qRlva&K{QPH|t@;>z&Hh_L+Uq|h&ptc@jtL+y} za0W(peuL+R*jk}FndgjDtX(9th`A1qCfDA30UTnWoq*jzsGmp{#PAAwl^-d}Drg2g zOM_%&x_?BnKeMd%d=aXb5!R9*lNq4bRm=z)5!kMqF&1-yXnj~YatTkSY$P}fVyvLZ zOj)5Lk|C?{Nf?zovN%@3k*R0;eWJ>dukixJjC)|nSdLK~Nv2*BAZ0~;d$ASkTZG&O zvdW$ysN7B4RFsbbz(~Q-m^1wMNHng?tZbQayx3{vKx&j& z^nVjU8dd+ogw$XM6}pe30>@d_!Rx1D`8;@8QxC!~hV%@Oje6N+?DH#`O-AZ$%B){s zVP4C=8KifyXYx>XfKCo)VzfUSg;y-d6_l=#asj=FQp${_i2A9>QZ@Bno2x0Z7pH$W zF!Gx#78)IB9hsIMJ)Vcd37~fsyC^yeXMZZ;DkM0?0-%cw_H4ztRjg9f6-aQJ3-A=Y z(!W}Qovi?r@*as<1o&%GKZn8IQl5#CN24 z5&2z2eu~I%pL(;00@15nV;^~MP$j@W+qV61o_`dgLn>X~aO8ZC*j#BB@PDB4qkoyq zPgZ=x6{7G4c7wV)K!gOa3T9{by2%3BE{WACA^H^7N}|3IAd`~=VXm=_2Ei8kC~M~_ zd$u)beZ3GM8x4O4^FM;sZez7I&=x%v1E5>4s}n)X?A7VL#hbYk*?3mjD~`;+z8dCr z`bj~bChD07ELlYIvAdF4F5%@DLVq%85z0}|^qW=&HZGeBOZ%d9u%Tz3Xq}_}JnI`- zGEZl3F+he<>_Z%9?Ycykaw(we=mxf{y<1anz0rqk+!#QcmgvGJy30R;1X({mDvw_L z8ASI;pvPlvG9<8TgLL*r058zETHsfeC%bb{@Kv=iRZH65M}72K0wmwIZGZ3I3$T6$ zkpKz10?}k<$Pg`>Hk)W%W(gw;nUyE%yE=}o55FCpnaE1>o+a7H0$U}bzCFL1k#9tv zhy<(;^cvM~c-R69Hn{4~mJqER z5meWE>dH(Iq%b|8P5s(Hk)Ny*0r{|zdJSyRM&bEkhRSmLUWPI+;FED&&=C#qW9M($d$kqT`VLEs)RlKKNSP?y*SUvR>~}sgB>hf1(l+v8`c_dmHlhS{R-_ z0O7KUh+ce|iGO|9hRQ$rR!fC~|E;FwzSX}D9qkU3$_dEc=$E}`ZrFh*v9QDQ9^bW_ z%NGWodu3WZ#7zQpbl+;ZhPO#G-H*ILm&e4PH&Nsj=4EiE$e*jPuFx^ zUR@jLZ9dfi>m}t^mlA-@6S6j8oTqZ@FQrTv-BphlntvGbHg$diOx8IYriTH4ee#8Z z7N=IqS5#Gnz|nROODfuai=3H!!UGb+?xr!KA$2nrHZcIqd_p$W0y{Ybx(Qx@#Iv_9 zHw|&X4ZyVSqv3^^pv7=Kz-t;?81n!`s;XKq=2Xk7Dl9h3g9t7Fl8OK@1h5m3w#jBb zTZ4{(hJR%1ThnOsP;z&ws@6x!=T+mP#?JE=pz666W_JRml`&PFU#!lkF2;IFT-g93 zoE(_L%(K2`Rn;%WKdY9%w^f!)R@G|t-6?G>{XViP_jZ9Mz}Xj=OebmS{}JK_&an-! z?$a6ZW@|J|Ag1b#eqb~bHAk|^0O$(fcs?Oh=zn$bJfr{QJ!j_OoLsa8$K>;7G#TQ_ z>%WkmO2>Mrtmhh!6sLOEt3umJ7y=9Axr%eRd(VFQT=EQOqsn*>aUHxQO6TCMmJmvM=FChmiI%}KgQkyUk|7NM0PHK+C70;v^3oL!+LC^1hA~v z%lftWT}du2*MEP9g?@Y~z)NGYbn^r+X+`pZh*F{Vo$&G-jx&`|+hhJ-9ZT#SU<~xE zU(3`j@4(+j&lfyPUl9hX=N79%l9yLSjZLLbL@!UZ2`m9fAb0J>@Q7twrQ__zcL~s= zlTomYQAOWNT5k%#8H*m|WX5Gq8zTzA=dEHz7^w)agMUtD--w7F+U9H4J=*!^M@vPk zk5wA3tN^mYAN)klKeRPff#yW=;C#w`lOE{F-)Ix?XY#c-UNS2CA#Ig((E>YA5q`8f z8f_NeUg<3RWRwc!1&G(TqhK_-oCx)o0+#PHVa3`kq>vTN3SZ8xCB_}_j7#!p@ha&& zEe(le;eVQdJ%*81M=AsKI*S!CKWcI4S%e==+0g!I?a0`kny?Y$5iQr;RKz2o*U=4H ziHar9@|~?FJjK)G`$V0+SYsuKmK8^|yvuEBSglN!vPXf0rOo46y+xZyxee4hTa2J~ zxqyh?o|h01$-vP- ziHxT>JEqSd%KNHNCY7t=CHeTT4~25!@c-K2ETVbDRe-!-7p)mOD3Pn?PW!&&GH_P- zR!$&2fknGBY;<}Zi^kP$vg06hVFbIuBIHXG+{lDEh_R_;`Z|6a)+ zg@5{qAdYN&(U|1W4k|c}qY}q1?_kl%cs>hO)l`A|#gNJb(X3ZnjC{UA_|>?qDRuTV z53TP*vb_Jh z7wA%eznbVAg6uKsDnVUA2|5(u4|<5|{@J$eoALZ(fR3xr{v5*@N)QeK|DAY!8*%ef1wUZjQ)pOu$A3R~ zl6N4h0Tn z)!b;7AFb5#`gM93PBYp*qXgFc+qS)bFF?i_?fUcxMer84(&bAY(2?*=Zhv9LeMFP@ z@0=HYJJ@5CXl?w9Dp_R{tmI14_N;WJ5qL^qwaI6wec&M*B8*sLW)%Y^EgGsWFq7<} zKgnyvgGBl8s;kTzP=YRD9t33tfDVfIflRi-IJ%lZK>SCA)HOecbw&_@tOg!vlCESA zX<)Y!tn>mF|Hut@@fQuZ+<(AEKa}Jm;~Q&x`F5~OK)levCqcwBamng;mJ)dUb8lBg zRY9bnk&;RUMu}|bt6^4YBD3VqQt=8(5FK-d7qIp^nnZ>!gEUvdtz5>%Xv~k!Enlxh zrxHidu`Vl_wD58n#9f7#ok}4~x2T1H3ZhDIq!-|0iSh|^hW3Evb$>MaGD(+h@TX!? zEYV5|nG9LX3|bY%xSA4Fv++(3hU8;aWrIiF?#c%1=?VKe;( zv`sq_8qbzcqt${%_vs14va}44r$e}l+Qb|`3QJ;tt4+&AKnlB*YNdQ!5T9b zByl;RWJJ!DwNyDq8-MR@FsFsuXHZ#FhVFRHfz~8LI2yO_yZv+V)mW{ycV+RjNgKEL zj%uaLgLrhTP>k|6l-x_e>tLDWdD&$KlHROR%p`r98};BNqh6BAX?SzUHne~8xkd*) zd&rW`iY>@utc4(k5hE2?RY686s=QbU7b>@+h=e7yzHBl++7|u=x>#E&hrHSX00000 LNkvXXu0mjfU7&LK diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_12.png b/assets/dolphin/external/L1_Senpai_128x64/frame_12.png index 9f8ca7e9b8b6ad3606ecf7c2e24962a2a60d1fbb..02b5c78ff339d0988c55f409182cc10fce603302 100644 GIT binary patch delta 824 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 LNkvXXu0mjfH)pHo delta 1852 zcmV-C2gCTx2EPuF7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000K@NklJ%eeTq53~TptL!!AH+BuClX#7Kzb$Ai!J2kT4oFoXI zXOVKO@!H%6b-d8Q=z>e*NHS=1`8c%u``pLi>j4QsWak3txMwg+mWC&PSdZ3A0BiSp zS-%#)E6Jth`hTCWFduIMd>l-cZl2+#tVli(Ar<;Q6JCD9aU}`0HRj*dxy1SaeWJJf zwM^ae4*Ywxzu@ik6=9&-w^$XDyu2#9*;M&N^l?_ZfMoy)Lu{3D(GAW(#rV?w>`9jOe^=PXvl{OFED=OX%OWJBwt9Y>q(r5PJ39$~rWrXn5zeU2{B zN>q08481cO!y}$%-xnI}#TqL?w3Lmoe3skPu$oL3*)u=}L)Y0btQ)}sVaYdoP|fgE!+WEP(BAa^i2M<@i0z$+^wo+2VEgD8=#PTt)NS%vEXWUaXZ zUhJIVE-epoC-1TwCIR^3b9XlizO%H4MSnYRmC^4+I5h-Fqs;EnqlX#Vx!Jgr0j`GX z0kmX{sNQ*!unfGy_(h<<$cCwfG&mh7$`{#EPg53-;PuNxgwW>2c{8c*bUdM1J@P9at zpG0pZ8;_sg&Gna6zA-d?hDuNx};Ny*;eo;+1hQGh7+rK*y308T7cL$c3`}UF`IquFxh$L^` zQ%X&qC36Nek2~{WSeNzwrBLr-iGS7(z8iSR%I=`d*qQf_$fX^dz3wlIRfu(3=5Kk5 z9kA;4yH_hnKkXRN_-kaGV5c0QvIFFf+nvd3Zx>ad=^YJ^Ga+@UJ~5Tgb@+E!1w`I* ziHzGpg6M7-)kW^0+1|t=9x{BUYC&GS<3s@O0@@?oE0A@CTB+rYo9SV=%zx1JNqG-9)Cdud~9pKTEUhPE9C~CS1AuOBv|PMPyd{n;_z_-a0)&9mfb8zeG5dfo~Re2$inXnM)<;dcTx zw@dmu+t0hxkR;uIV!s&lM5idkiFnf#ma=IPekPqs;48RQI;5YBSAGA zU*W;HeNdvuuPZnDix1X>TS=0ZsI4S{H!nJl>oTI(3}`xAMvZz1?VgT<{X~qF!DK$ zIzEERJ!Rzf&m8EUWC)k%JItSpAK9JgST$}UStCgs-|@35l`e0k9LtNMyiMk8Xx-rB zV437uHE0&INH98At571O_mWXBN#!!UYsh0#w)A3NUU2dNvNfc$Vhh?al^a=I8fHjQ q)x}Di5|+^YRg&@68vO^S=8g+NUlIra0000bVSX!@< zruWkA&ky~#Fc-5={cv?=U10F*aJqM$bol+{rR9lrj@ss~g>5+x=+zGz6<%r%cDSs# zVm+Ry+*Z^e=7t8k!v+5p7)6zaPN zPt`XlX&f0QGa34mIdbr9G6zhOBxmwDve3&FV3x5)!uSb0mT%mVZ_Sbr}(f@f;$BH6M5paFz0eTalndqdL8 zF@gvtgT2~3cfL+^G0sNH6IK4CU#^c7h1k_s;{n*bFrfTtL$2xjYofK{!raU7-rO(0 zUP~$EII7otcRSLLt_kYfp!#iS+4Gr)gCm0K=NboqSXF}D-9J`%vncL4>kCgY=_7Gwf(==mZSTotf}YYC zCw3maF_w@X&$JxDMvaEi%ht-O#3_gkZCD}Zj{VU#DvdMv8>$svtlG`5%Fe$?k=lad S&`hUIr-4T~j=)Ws1WNB{r{xjl1fTxGW(kr$`qwA~3|L`32 zPWO1O7oRN^qc%}#cvb~)wtyUw4~;qgF#=Qf^`4=Kiq_4NZ`B{X0rWfj|E#}t)V4!x zwRX`2k78EZ5aE65jH%P7UAwI8wtgai-7-)QZabmDqYY+5RJO?(30ch8{7fj@_TD?z zACztxk$;_Otuw>6EjHQMH55jNDW~5J6k#n9s$|f8A3qeTH%EWy_3{w1n4>zv2-9K z33Kr@12Z=uvSo#^ets9y-wZmEgDVsBE}u~8d6Wc4`!j@&`o2O68-U*q*3g#>oyFHz zqfE|>ZW%K>X94+T%do0nTG`(z5FfuB8h^ot^9~8BmnSHNbWhJ&i>x>Ch)C9lk1$&D7sETHs&Tb%Qj1^TBNa zSL?P7+t$8c^-B*P31)%SA+yJf=6$8kKvfS@`BXKB9Ych;2OwGbuZa9cdt>ZfxqsLw z#UO&89rYOhhL6=g5p2YxZvq2n{t}U|QXl}jAGnGHwid7IjI(|9ZV#D040gg(3K8HF z-$dk35&1_%ey2y4_{85)-bJV0ivS|mMXW1yN0k8oiO3fb`Mxa63f{W|Wo_@e4vjYb zC<)j(F(Q~9vx>^!2>P}x%a_lxVt++ti+3}oMa^CH?kseK7t<~iq%01kc8`?~bhF zjsV1D{}z!y*v+?2W@B9imed1B1z~5CvO{ILb&ql46<4V%xU;UkEvp*Y6DTos&`}fM>rO z1v_cv2no>sO#4%@w&c^L%h}Ll&p=eQcqH$XXQ-5B{bJtfXK0PKZQBz-JCq3!YrN|8 z46vuq`Vsk+`5Q&L&RnZ^B!5vGj|6s&9%G^u5Ou7C(n^~SW{9xt0>&FB(?+^~)xWHN zr%d$b?3RJ{0w=;*1jxqj+GP4g^Uv-HblRIHXVRdnwyESLz< zt(In!0QoH<{x65Jp+03;WAiJ0&msY%fd;&dM%6^;AVmF+rh~8w=zl0vH0dF3^gqVl zRaHa;V2$q_C9%OaWg0%WBXH<0~id$Z3thobpO-?fHw=1=)`L zjM}q87QLgs88i$q%CaJUUYP_LIbMkbo;^>D>d*8=kQd%;NS|5qRnkE>U3B`PweZ>? z|0|)L^~duA?T7ZIe18*YCyoZMZnp;1Mn&8~k(e?BuLi^fWaA zU^Y4Pn?02szao3+py>7t2_kWazPfhAxe2rrsDxYZnP;bZ>atXjrH6qmlva?PM&@1Q zLu4=Nn;nAH+Yrw&2HpaCjI4(2YJ23{(ds1gDe}#Re^e!S^FyfvkuO>!{d`vj>Kqjf zsvWOj*g}jxVo|*& pI|CI0M4N?BNq(oTRJ@r`!Ml002ovPDHLkV1gkX+DZTb diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_17.png b/assets/dolphin/external/L1_Senpai_128x64/frame_17.png index 11b247eca27efdf52b168912f14183521e1c1b63..e92acac9ce2298c4d5e1e328af16205099c64957 100644 GIT binary patch delta 869 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 It^-0~f?XMc9RL6T delta 1682 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 Z{tJ^g&NNy2D|G+>002ovPDHLkV1o6ZnzH}^ delta 1876 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 diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_5.png b/assets/dolphin/external/L1_Mods_128x64/frame_5.png index 7c293b4859a18b634ef661c0b206a41cc03ab31d..0162f0da0a8c8389817698959ba9d14c16aed015 100644 GIT binary patch delta 668 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 literal 4334 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 T11a*?C&S+Qh*g=zsSE!Hfg_nh diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_7.png b/assets/dolphin/external/L1_Mods_128x64/frame_7.png index 5c840d6f642fdb36967d4646a3d3695ec2a12da5..344f02fd161284f6447fcea44ecaf2e04566c4b6 100644 GIT binary patch delta 642 zcmV-|0)74KA&&)+7=Hl(0002`twPcO00LG?L_t(|oUN0wPg7wO#eetq0Y%h47B}rP z!CC$QW2@lifDWwS=H_S|q^}#B8Z|Kv%3w@%VldI*KpSJCPP(XxiY*Qj64RncTUvS? zUQy81JN|}q&v)*3Oza-#|AI9$vtS2k2td85zwSV%Neuv`N*lVm*UnY}#g(KO4?U{G)FJr%C-t9xzq*wQDVh?)g2_pt;QwWO49YnLO~hZw|-?Ku833ZhWE+ zI95#AC}16`W`=5#8j=dCB_Xc@_W+nLnwhf%oP`jg7=LgcTY7mAt(3#Wd-s#tOYK6p z0lAu_KoL~$p0o^90K5x4Isq3#CR%3Z9bnTU`Xgpjl6)h{LdVhsY~_<|`qyKd&Esee zci{9w%rqFC5KqUDjgv#tOv{54Hk9gzT1+tp+z+dDXfHU-Q4i!60vcgIgaEGMfyv3S zCjfOS-g^zU7H$GBp-DErk?XJyz!%+VbS|$*8E^O6VwVOsQc(9dW@a{C{;r>`gJx!* zBY>-G!&klzs{Z@VVR1jL5P%W@$KCHXlb@EW0I5>n?J4E6l9J{)L*IMA$w(@(6{39A c%>JqRFF)iUX?-wiQ~&?~07*qoM6N<$f|^(?0RR91 literal 4331 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 literal 4352 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 Ef^IS|s{jB1 literal 4360 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 diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_0.png b/assets/dolphin/external/L1_My_dude_128x64/frame_0.png index bf07d03d6e633a1cd9725d181b4970b96d216058..4706786b7612da132164025aa6b6bbde592235b8 100644 GIT binary patch delta 800 zcmV+*1K<45466o^7=Hl(0002`twPcO00Qz!L_t(|oNbd`XdG1-hM#lhgq@Y(PGTtj zgzQ8VgYhC#iUn&krOCBQyBHBk@Q;cY7DU=Y(;f6C-Ze;X6bXokBm}*YiXq9S6|EF) zS}Ojux>K4`Q*E;etutw6&gaFZVS~PR=X;;;J%^9)V28(~QGY61!J|QXr>7gwsBf85y$02u}ER#mfz-SYVKQIYraF2v)`+!inDc~rn@J9xDdbn z-153VMp@*|8*8(&OGHG9Wi<}md@+igxsZ|9Z9#vzbx*0NP2Zf)@=bBH8VBwPuABU| z4)5;;d_6g_?SH2VO)YLV+yfmK%^ps7pT$fq@7;EpKRO;V6Wld?R+;|HZh;d|X*F*3 zYVz{Q>*@K?FFK1;H8YVpw@3BPIac-s7o)(K(%OBCMWH)vS}0F{JupCjsr0N!T0QVx zcIeu~ZL2iz^J5p4yR8aS7FRTcV1ORFT9RO7P74S*H)A{oL6rU>_Ao90kNk*aR)0d3;sTnshb0iJ#HIikR9+S2pg>Z8 zDbDWROU>;-4e)_Nb+*2;;4*}!tDe1DtgN@_R)FO~t%A!C&~XHyAOap0G>e_HB2q&D zRRPr1jZhEJNLxL$9aK&O>`)>pxdd9D9=$VbCn`o@#=fsl)=5$L{8uJuVe_|6<~I{M ew;9?0fBg#@!ee63lEAD00000%P|R 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 FV1h~rms0=$ delta 1632 zcmV-m2A}!H2IUNp7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000ITNklLQ0%oWS%_q%NR?8O>fGC-8*Wr(47cToZARBx6!xr$Z`m3AWaTu%*Z(ZqZ82J`ebXn#Sysg zR0)ZDNX7>^^M43!2P4VnVNg?Cv5OwVpmB z#4!`yk<6!!=NapRjXzTJt@hG&1{u>h2K_GW5->QfVSi-?+6Hr*3_JmW$8iTAkPIM2 zx^%S^oE6CqW5xH&Z`ibaj?P1VvfDP?CID3W!& z@MMhs4C_&`)|!l;KD`7)6t0SF$=H&NNV$kOfH&%CAFG{rO(M_&QqoVe=a&k`4Ybsx zU4KW@H&>D(?IVbc!}ay{v7FZv7`Q!cXU#*(4qyDx8c-Xc+S|Pg+sEY`)an-L!)I4MCJ0bB2{GHSFBMIUrS83oooTZP8ku{>ld#w4* z4jN7`nkfO019(|F#R@}uh~-n#ekC}r6n}N*&mCzjI$nj2objt7uyPGoW&{9I0-_$p z?KLfACpe4g-&KZYjT^BU0K)-RVAKh`+=RBRUUcrvB!V5X&xZ<$ZoeX^nlN?*?_ts| zHGc(Xitsrz1MIZb!RU^lok`%ft8|hUe#bQgAm;!b(K_ORXIoT-JBOH^I7US#L3Q6b479s~EqgyiWD0F4o#pCas@+rR31I{4Y!fK^t#X%7@ z{tl;%6g!q9(E&KjX8jq5k&J&w1kzxkS>aB7B&cr#xqU8|5h~$z0_(*GCvWDJ(~W-C z=3(9Qz|)Ve&*?veunow4?Ys7JM1NC)Lqvv0_nAhw)+U10*(+260PM+H3+9b*@0Kw` zU?trmSC0ce0l(h_dZ3-SNu@#BL5z|^&!T%HX=LXi_0LA}>I~p^02;*?L53q}ax?Jq zgo<(_VaCDM)(-INq%3SS9cI&~)i1J$)v0^LfZKBbfc(#oG(;RhD#-scjcWkX`*ci>LrXER5L1onYgK}K14B17gd+sGM1j%+*C48Wy&$(R;Nd=j*U ztl%6w!F(5>-LFdfD=}kdQf2(r(GM^{0`Z_8BDhP0?8NwYz{vqL52W{7yZ(~|%@KCY z2BWy!_@mJepkx5+Tpt_#34f`-3RYRXTbC%*65x5cBRRs8oxno^cc}YWJ@A+(2jC1& z4_zeSc023{Mo;6ivLgny+H%jiGRw8`*y=bA{v5!w1JE$)p%s|nc+y~~;=Ag971Bq+GZFFp5xFC6xw2U43{pAvAX%cvmJUF%Q-n!; zXhtUB$h1_Ntv2Eq5PTPq#SXk+H;nE8Ix;ePpJfg}74Tw(vsC_~=V`db0q(+Idy!Lt e|H=VgT=5UvI9v2Q-}UfX0te2%Q1q-6itD?#q(+ zu)eSiPDrUvvanBl87ChEptRcn;Qb`zR||+HvY~5x$j9n5;H#f~&@0*!cY8;FL?lS(>%zl@a> zHV_}mHInJ957-gPz>Fc9#2_i2Cq8xrdna8VE1^_ZhD;mcn;4vs4;xC84WJDZ=Msyt zGs;k{!0kzFqhg#;Y5A?Ox1c`ngs4~3B{?lU*5bcCu-MO&6xZc~Gioq^EI{b6A3fVxWj)s5_n-e7{d{j47 z+{)8%|5R;_Ty7{swC3_6Ui5MXt7v+AneBeFqeOC7l4#8}V3z;_SsF=!c7;q8vH|K9 z)d~QSA!E}fmIrwN*1b%Xat&0o34q~{Db5&DS#o;BT`#IbOLDltv*Q8D91!<>*d>~+ z?!jEm3Zym2xxg-xdFntihqc^2d6BVbil{DSfV8vn7s}A*m8w@b4*&oF07*qoM6N<$ Ef_+;gRsaA1 delta 1035 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 DSF%2M delta 1091 zcmV-J1ibsH1Zz03^e@zKf4d9TUGdwt<%(+VHN`D*p-!pB;}lQN+}=wpO_*faqt(*zFFJ| zMISs9;NY162R$%FNaEm`00*5gMM&b{nE(f!Fhxir8sg0|K7Y)?B(62NyP-!D7}w{Y zL^Q;!(GqbE>gZ8qWQ0QC*WQRpql3MR+PRLh?>+(W7KtRQ2|&Gm#8YHU5t4|4H6g9@ z;KqeMNN8Ey4(Pd}iy7DZEZUQVNaC;7zZIV$k_doM9Qc}L9t?@??dtO*cR{8lqC>$eN$g?NLnFnCx5`m`Et-;SoU|14}DSbF#)i7 zi=#amV4WUKfO9c#f?Tl(;z(m{!!<|9)0`Jbz+15FSfW@9uv1nlVa#tNFrwMs@V^ z;^0krTz{x7dW~G}W8#)Dv$pa$m%<}eOzcmBABd0N0wkQSu6T*~m{{z4)>h(Ent@Yi z&o6rdSg&~Lrjs^qGva2zd0Oz^<5~6Bz?SHm#bf{8O@Q+%Je1e0`LE@b^XIGzV$+O= z_oX%sKD2qK;^SMu$jWsT#Af+6BenWh>YkklR)4(Iu=y>Zg^|X6ujz8m)jYh#ANe(J z3OoU%inA8K5ZBAWy9r<(6do;j6Z=n~r}&gSa85I#OEdvheDfxdm;e#PhaySZjA&Bg zTO#{8Km_seijg)?@ztA#GXbKBkI9xW?#h*FA}wCop8-6?ht?8Wq7kt8*sPmdg6k;Ue=(^rLt+?>KMH8q`07_9k(mce+Vo-&p`l80&X#)Jo`wbJIC*Z14W4&qu zyhZ$;SR-4Bv#a>8o&Z*+DLOU{9`AC%6=U|k8gj_7w33HKlXLWG@ecF9aWS*OASp8< z)^O#1Ytx=^nq$9~|CY}IqP#8aBz|+z=70S83?NYyHc3&VHp6b>W4vK->6Iuku4et< z`ygtV)L3r$3XHl|K7SzSA$Yk-kZcP7JX5` zJRjczdShyN%rvn0<@k>#eyIbC69ls)q%%#7JDbk@uZK19y?qbQ$H)62Npq?GP&b7J`1)Hf%z5uJW9_myx1_4eRb%(5Z(S{eBUL& z1gjC~$Du@*KfL~Ff|)!Y0f#Fe{j~Dt3}B9~MSnOu|9Ahv{GU<4duG zys5{*%=eDpdWFgXLhLBOdzH$~kgdhVAn-mrG(JY%Pj34(BJ1!*;xY{VR(a$x76ZU* ze#r#2PS2^n&e|*q-Y5)E@`e)gEgTHnfB03PrN=G?%o1D65-;|%5d h;T-nsQ%C&-;9v6Wt`Y!2{I~!B002ovPDHLkV1ia4eC_}M delta 1488 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 diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_16.png b/assets/dolphin/external/L1_My_dude_128x64/frame_16.png index 4940aef672f140208fe297416ee0b00f57fba0c7..8e906e4f4d5a78261fc0d3f4d30a15ce9bdbea12 100644 GIT binary patch delta 727 zcmV;|0x12u3F8Hj7=Hl(0002`twPcO00OE>L_t(|oUM{iXcT7{#((elt&9oUp=67P zRz~!&&3fpif`3ZJQXxbSE95gGEv|x)-h!YPl?>7z6pDfd0=+DOk~pIn{6|EH6AUQr zr4?7VCFo+K)@)i=lw{*hXFO~YH+%NGeee7Gp6B8HUh!CZM1R*^R0v9cKq5Nf){6c@ zyX2!nkcAwvG-yO$2TKWw8wsPqW%i`Il&B^eh?!Fj#H)`Q2o-`=t|Mkw%r_PaPu750 z0nrya7oR{~(*HgNvy#m%YD|6#Fx|4KVOF4G*11fquh}X+Kdrl8Z3*5d9nN5tQw6JB z=Q7d`cJaMN>3^4=QnEg2;j^LWKu{x^j<|5O(g|C~L1{8p4xW!|i1IGVH$K_n6K@^& z!72GDO-Bx*yX0Moe`*h;Yc2s)&)6CW*B4dS8xvZl;IErwz3vak)SWXKa8HcztZz@+ zf8ndc*K}gbXaJ@3I?b21{Qe`UhZmN=1^I3kkO5QLu776-|8!x)XaKU^G9o{D;CmZZ z{*wi1bz7$Pp5K{J-c0xPX%LP5Te7L&B-muPMVR8@^rv*ibT zo=Urh(sDn!PYf8-wwKg`?s9b88}&wU+?UW=E3NLOr(LY-^0@DKcYyNE$%n1y-2JO6 zlD_@Ah<|t#K5xrAKq)AsK>fUWDASR1fPek+>tZM#Mcdk@pjxgGzB!a>-FP~GquY2i z+*1t2Q}#?|QSq99=U{z*r_Odg&ECzMOh`>~p ziEHVLMnov5Y(V}##O5AUh|K@K_s18B3^2S)22f0ZnJmT-z@#K`;xPvw=>!PHtF7z< zw<%X!+;6O95tM=&@Dge2UlGG@sG&0=E!Bg?>M&?hh4}wV?*PEX6i0S{DN6tV002ov JPDHLkV1lTgW>5eC delta 1202 zcmV;j1Wo(n1-c247=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000DRNklyJ0VvDl9T#;yrmjwdtR)0mnknB7!gn2PX$>Gh{Tetf2 zL#eeE4dSS^ew^#Evc3hv{8Fyo{2?Dn9p?Gp(y2SVU{IVT#|fU0leVtib-;Rha#>BM z_~BZzm~T-ZJP&KsU~R3n(RlYBM=P(L(fyDoyni(~9uhvIdS>H)h8#c1^Zz~ra1U`} zc$uydgMZ=+#a<0fbK=;k>u3`|_q}$!RHPNNy~BEPSvG-a0`vwrz2jFz*fFK&h>V#I zyW`&ipH778q+N1w9a!+pbd7OT9(YYMo=*i;FTQ4>^A0|z#yuy(s_EEluG#Q&k&RFa zT_5HYJ^^+~;G%X+=ggLvK3Y@T3=|IzC4uX=o`1X=T>hItZpU+`k3`ny;l#Dx?bt{XzB+02_cgSl+%o-Luw#VrS0P{RJiR59rMxuS@``?yCs- zntTSpu}VrKKF-J8FCDvZE$t4(*CqKi`hRKGQ%#!I&ioc|q6xU2kDr&^E14vt$z$<4 zi!dMOeOAYnWK8e84yZB91-x(eOuydR{EML#lR9d4qGVkQ)3ILno!HsN!d0jP8f$EsORJOVdy2p!EaBADMSfJkRd} Q+5i9m07*qoM6N<$g7Rud-v9sr diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_17.png b/assets/dolphin/external/L1_My_dude_128x64/frame_17.png index fd910ce5a61c659c7caf0486f2eef29eed874edf..56765ecb87aa952a5ae450d76334336099c8fb7d 100644 GIT binary patch delta 802 zcmV+-1Ks@h3ati^7=Hl(0002`twPcO00Q($L_t(|oMqEZXk1ko#_|8TIg`wX!YyQq zt9JZ|4wHfj1?@t~6cPlh=I}DYhFhP7XWJ^oazYKIgHVEyD}=d9^EC9&x%a;P&{pMX_o(&(URTb&hP0X zI~33Cfc8hNqZuwerJ!4g^K!@bj|g#-06HSP@I7!|?nHyb7Ha|K9t3c>9Mzis0^U8*L@IGCM<+&{A* zRHPYB2k_^y=gI?HAa#0EM`j87I&1Kni>95RSAo-y%+?KYcFr%QFN)!!@$ZPS) z-H)LK2a_R$a#6W7bo+P5#^KBcRG)W2xarN;t`PqHy3ghICP>#Q4}c(m{C-ik zq+YF_8iL$gF!AC`$3vmA_gn*e_lMX!@vSg&eoz6#Y*>4ut%lGe_twpl@Bq>KgKSBa zQJ3C6A%HeUTcMmxx^MEZ2WSy`Nm;iO z=WcniVRA;e8{ho$Bl&Hm{3s)cu%vWD$<P_EUTsoGBu`dc gryKKJ?THWg4|3v49GJOyyZ`_I07*qoM6N<$g6vU}GXMYp delta 1392 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 Ef;;w%(EtDd delta 1448 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 diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_2.png b/assets/dolphin/external/L1_My_dude_128x64/frame_2.png index b680b4ae056531ee8bd175189eab581c3d301064..007419deca462a5e35ad4f512c89bdd1e94b38ea 100644 GIT binary patch delta 796 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 delta 1427 zcmV;E1#J472AKvHTM2sW9%|0{cbwCrJ6KyDhdn{TG$dWoVRAewD^^xk`$gyT4x)V)?0Y47dt z!7t8P9aj_5dvC{agzF#hn4$n9A|7kq2S3#v0{K@E3|`<-E`J@^K&Nd1+Tc-w9ygx{ zHqhRCtq0hFoW~3Bpq?4>95%Ew~rT{y*f55jZ37)$Y zltY^(TL4y$h@yNekzR0CKU%vI1)!wTe3n2?X-1bq-v*1-vu!h1!PP`pfm4oMWSap> zzURt3a{?0>OC_o)SeQR}^WAtkw^Rb$s&x zw4=-|;C~%)g~#zk`_W^n)c&**TVWAV!B;5XYKsTVyyO{;+gfX<<*0!3c%f!Q>+n+z zPFAb?oCUAtn~rtP+fOwJ)biDU$>Tk4#+X+Jl>jUGoCnmn@$y!75mbR)cd*Dc@Xwj!z5Rfg%;3hr+<%K+;#;d^1U~rTCCvd$9xLFn7Kb+ z8I;Y2X8D;pM>%W_odUGzvC{o}j&%`5!zYPZCyEF%Mq|A>#qGJzIRE0Edl{4!$l3=M z#9Egb3vjpd{^-qKMzLO7z$m4kvjA7mS#0$-fVUPr<|9bgWw9l6ZpcgPW^$2t~V2>~ZS@&%1TbqMu`G4t2H3;XeN^y70Py&v8 zk3w*k&5j7w^h@1H|WEG@h{Uj2tDVBrv0Gg(JyAsTZk+fSo+=pb@SgsLY zQvEs76#VdmF+8r{TQ=IBCDOTi)dOhC@PAG4Dt&a{r{h>j_PTp6eO&~Njw_#}1RSvy zbE{f2&vT<~dXztDCsO`SIF9$rCHw=xmqQg}dM(}3=P0#$04aa8*1APwcJTm~Mf6&a zXKb#0)b(e^sLG#Kjk$t+&3ZAgB}ZJR6_w=Uaiv(xW69C{+smLzZC-`Q7KM*kR)1op zu_a5(co=Uy;jM@K56+ANid_+vQJY_ue6L&_`76>_3~+ZPh+w6KMrDbXTT|0Lz^4J? z326bPyeGck@-)Tu*1g|aUg80~6W5@+XAY5i79mddl~&rX&34z6$jTvr}%6}dqpW9xq zwtPsZ{@XZi5oQC%@mP|Te1N4NEKl$MgW8B3milNa{(*=p(8bLX&7&|KgUSuqzM5bqNrup5{kNUrX)OBZ+fb#^F?LFpTeS4 h&<<~TxNO(-AFZEaoRJLH2@C)L002ovPDHLkV1g}qx=jE8 diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_21.png b/assets/dolphin/external/L1_My_dude_128x64/frame_21.png index 272064d90de9f3269e52bc97e3391698c7d37e6f..20a22b06e603e9cd511f80eb1689ded06ddf1f5a 100644 GIT binary patch delta 586 zcmV-Q0=4~!2-gIV7=Hl(0002`twPcO00JIKL_t(|oL!T>YZO5k#(%S!^UjDQND4ob zfG8pylVeF$YbE^0OGi zL|rriu<7~~RzI5&0CQi0Qk1k2%qp@7Z0U6z~?wZVHpK^KeDj6YS z&R=sg#(w+O;@mZ7+@&S`zbgBJe3X(B8gGy(sBQGvSRx`DY-X*0;Ry$5faDp_cyj5D!IRUt@gsuTGg~Ps0rW3AKpNpi6L=g@=Y+xNB1U9?6tMFsy&QkBCgZ6B&A*8IFrR5#| Y1IhAqqr^&VF#rGn07*qoM6N<$f~jT}cK`qY delta 1022 zcmVn6fpW>tSg3Ftp@qPcNGxz^j***ABZyWI%tv)L=|uqw8;m;0j|Lg@_}%GE3k`v z;M)PLOPa8IOT7_Z`7-D&c7^=*x@)5f@QK|gzuX%dz#&eN@1hkP_=%I`1Dz_sTKwz~ zQyMt2UX}JPQGZmXltKd(co2PB7+$en(Mts@>*kJ+6fnT9(?5F#*8x^iL8JgB)D51~rQJ#taq9rqX@k>| zd+G>!Nk7w{6U<);yA4z#xM8%{6spH@oT!%uIL;(V1+UcrJ%VQUmocNwqd13!6G$B3 zb#DW?#1~N8vy@G}DPj&afQLLxvE{nX#Vcsv+<(>2I87?YnR;SyR2KhofK~)~xAj`J z$!Q&dlTJLH{&wGhe?0$60rmT9uC;K2dJVfk&FAfUyg0&W|E?5)r-<)8TPo_f_xBur z1g;RgP6S$?s!>jED+ww_AgbxKBRUg svCY~3-^ZVVrrM@HkGc<>HE8btUxr;nxd%3$8~^|S07*qoM6N<$f0kws=G4JLkz6|@!Q|e@ z;c~g;-QI_Le%$x@z9>6Romd{(5s_mOaD+pA2vWdo($D*J$A5sgX-h>WL_1EcDbYwU zB^o*`la$uLX^LWp0@KWZ>d8T8k`k-ko2DdTrjqxkfFU*lBN+Wo?!j&$8UeszWA63i zrEt=v9Xn0Agie58OU&MYz2$pk8puTX{G_c{Jh%e*={?q4y8swz2Y`$B+AGiQr=oM) z-80TLW}lbwtA79sW__E*jl274u;1EmDgI?TX|N$TfJ=;Rx9}`xAizItfGh^gD_(xb zUv0t=3}Ed0W+M7WQcLtb!ybN$o-X zsIrs>`X0Ay!j}@JirYco>N{Hhw00Sg29i@BB2FbC^`ux4#eywJO52YpghYTJkgE{y zb~&FsBwQn+BLAM8*qf!%CaEnA)S!^;Vp{f0c%1HaOMfY!m7Ya;*v002ovPDHLkV1fwWBTxVU delta 1045 zcmV+w1nT?n1fB?x7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000BfNklkuh3w;}YOtXhexi0Apm#`xKwD*d1-g9plf+$9i4K{%#dugzTPQ za8tm4j!OUooZ|h!C4f3kGCpt!0WyfW)iJy1tH&z>e-YK=pRLn-tu|f)=)fZMTZMg! zBT_(ioN9ak_vv-{({t+Nrfj1Q@ z@p^4|M1q;XTP-n1Yl_b~qXw|@%7}aQv_PE(W|hKh&0VBQ0T$tY2J1-BivpAcGt8oZ z1ZfCh8Gr62D5Ru6nrlmY9MTk!q804z^))#4I3RBrX+qowfKexK7173*?1M9Bqy^~j z-df;8Yg5f}1zC*GMctLtSSt!?G{6iNId~V5%_MDv5rFIcR3LuK;b%Yy0VJWHk|2r* z*;1FJ5^yJg#^KTV+GW|OeOvb_vJgR{*WCX**ni@{G=y0Fu&5?O>wRejP}YsA007`e zyZqBC4`*og#I@F+MVJg;uLZYf0iNE^@l4M3yT}{?Tr_}XuIzQ{Mu*7_;SywR02P>P z0FQ&FqNbP2YY|81L{t+s38G-00z3#Hxrb#M7=`{-Sb9HToC30xNh{Fy!V`=S7(NY* z%zv?*xvkfdefQSLXnep(19)Rso6OeZ?xEHfJL~o4Q>~(T&L4|<-`o2w`Vljd)YtV4 zw`#1>{NCp%*N8?75tu#vYkH7HsPDaJ0d)d=v+-9-#@?Pdk-!rvz7pmI4bR^-P}XWl zT?Bf1zo$4=&AW+4)fC`K0D%96NC{f4+kdYZwFuy4{GEGQioVlvoCeS$TJIs!>^e`P zdq9N%nGdBl>S&)UpMld$H~~u{FbgE1ztw2jMbr~S3oLa4fq3Q5g>^$^MuH3qe`%D6 zKyTx7?nf&HOJsF`RUGw?A=!-o4cI0?R_1%>=F|1SF%e(|QHD5~1b+ZKo+hXBI}XRW P00000NkvXXu0mjfUJ3La diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_23.png b/assets/dolphin/external/L1_My_dude_128x64/frame_23.png index 83d02ef88a821a79d41cb68c803f6c295e2935fb..f47a3d597ae9f6c3f19725bb49e47b41afb4870d 100644 GIT binary patch delta 597 zcmV-b0;>I*2;u~g7=Hl(0002`twPcO00JpVL_t(|oL!PnYZFlv#eZ)yX@?><{wWB8 z&B}%S0CriiTcL|gHpRV5aUlxoj2rz1ZiHI8l13#UxHQp%x)21xoi+gx6qQV9A+ecx z$HkjW)68bzymQYz_uOj)0M?6%0Zb00B@6%_Q=eZ4;KH2(2!Elx2I&|WYYb=QO=$E3 zbc9j)6+OTkH31(WOQ>SKbpRx3PwHhONs?3g3W3cvJb(m>#vVXB*BW<`ft2*+q4jO> zvR93Qk@{c{hLx#lll(7fV5RgTi;^UB(4>6ja@+32TOR=Ya!69Dk}b1-hJ2Q!5@1$W zH{KqKekR?b?|(wxhJ}^;x-~p8{}_NU3?sdn@Acx@mLwr5(oS=6&@6Rwz)Ig+tzD!SPH{R*966Gy{EwGVz=8x5ECI! z0SOQkG$XoIhPw2AaO}@D=c6SJMxQ2p0GR8P#~O_`?0=Wq9C(QXLib|#$7`^X{z{{^ z3&@TC^CW3Ic>M?Tymku}o4Y(gt_)3$j3WMZ4yvGhmtLVLy2X;LmLW3;gS=vE+R8Bt?{@iL+$l==}QJCVYYV7*R*kJ<=?rs6`Zt#`c`a5_Hk1@imKaD@^3(b=4SVki&IbVa(KcWd zl#b7`u=1GuEKZmvU*g0wg16vatNjimn=F+K5?cjRSBytJHn_ z|2NE307=IuP$!X-9NdG60Pu9dJ=scuItko;K~ojDctbS+PRS+C#Z7(FF4Wp018t8*DTIuO9GblwZCid7$DUOV4?5lpOIqi zwe@j+Ov-MewSq3s!K&QK0cJ9~BrTkFU_2lPg*4XI&n8Ho6%sh>z#8*jHJPF_f1X-_ zT0vkLE=XYRjIvzM=*pdv>&!75tfdaA_Qi!4fbE$-&wtd?@tpji6$GpLa~&3Cc-v_I zYhX1;jAm}n7Ahy`!BZ;`=KxXxkn61V^cpC3)a<3|$Btz+2t@Y)oF`2!$D`Z5)^SRn zP?AOKy`2gdB+v?S0@@3x9-pw#{{aL8K(geOdVAGjl+5)A;VQS;KIF=03xB}Mh(`8PE_{sNKN;U`gNN(~AO=8h z1UwC`@}Gj~gv?J^B7s^_t>uJN@p|x*{Q!=pfL(nTBYzZ7ov+URlZ3&qg!N8L3Rqc| zJ_Z$@GCyH@473mcTz0fZM5^wTNg-D1OUKUWD|L@>tnG4?184;Rm-B1j z;1DL9IU$DvK-2ly>of4uqov_y55S4*{11k{5~g|Kssx6i1y~?rs*>6Qv;qJ-?rH$s zN^t1y;2x6W^XcNLAO*ll*`MpXfk6EK0Dq?d+a{iNo0p0%2hb#cs}+EIJ$xcua)6%m zSDcr(g(n1oi#-6PCDnHHE67{I$r5b=9?HM8eWzCf7ZsodZpYLr%<1H?830xzKiRd@ zwv&UvRRz!t%2R{DRRBnWI#yaBZk)2Y2(niGC2bnXZ0-B^-0~N`<;+#f34MJ4015yA LNkvXXu0mjf{BP-1 diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_24.png b/assets/dolphin/external/L1_My_dude_128x64/frame_24.png index f3ac441781941a1119a8174f190ab3f3241c973c..6ca6b4017373ce90000f32ebff487c888e912185 100644 GIT binary patch delta 561 zcmV-10?z%b2fhT57=Hl(0002`twPcO00IR`L_t(|oL!PFY!p!xg}<47w41i1gmi-; zEtZ0)As`@Gfk0u{ZdM{8D0Ib)!nTqi3KDjZ1aLbc$YKx;HS7okp(Hy%U>0`w9mM>- z?U_yIwiSL2UwDH4or!m)QEu7w=VCdj_Bc& z-J|^kIAPRrnpgptZa(^R!1}l)L6%9*v}xmeV@~7g-?fV&V9-kd(#F=gOA&b6#f?5k zFK+IE*DoVybbt2e+qz38W$ZYjpTLB^Gi?e!F}3Jsh(6xFT4`8G_F%o%5a2!j5rQf5 z^V=~C9Ck}EHG2S?4`RRD?eV7zV^|)yTid1&EcMgo`J%sH+OQ~eK*H+$4QPfIj-#kB z7HGQh@Au+B%3r?|;(t9p)r{NuIxOAs@E%_KK$ZGTvVWR=S*><#B3Vri)>UfEddR~N zwc3;c&Xk2Ws)rg$6OGuZz)+fKpRCfj0@KFl#;;eMJX8N(o3Wp5Jc>&nfs`zU*8@qW z9Bw7M|7N9hY9$T5@v0U*)~Uf zSXxP%co!ca6F`gz;sY=zz;#_2K}LKjSQDUpi8_`q_qIrddVl@QbyG1-ATLpt{z7^H zMxu!ikO{y>MDYPK0a%D+`Y@RQn^>E^T|T9=jPr4or}nV;lHVhD0UJcE`!!ht7CAwD zfJ}fTP7xm<6JVOij=x2S1h6)HCz(DR(**uPIoscv{jK&|Z9Y8*d&~r&aZ=r{2~h&9 zIaPcBfRA-u^?z2cHSi)n0AvYxf_wIR5+5KF;2+c#q%~~V^v&LH!Poi$JWz{86{aU} z@9(W0#cZDvY?(moI?u8X{uQPCP{G%a?l0okeb;?je*Y~K=;43wcH{2s!y@AL>dy)# z@mklYkHdZ6x3vgXksI7D7QO|3jyjPv#^H4)P)ht>`+uuRpe4&|4ua}>F9}}qSNdy} z4Jlrc09^H+%B+A|Vz)Tn*&%u_eG- ze1P^UFk0?=tAHd&CcupN^)jo$>NZrW1RQr1JUh6(CE6R`P@L)urI3fYK2D*1He=o#_de4kj0e!7UUll8&?gC&T2Mgp( z0DWqJ{c!>^FhKT5F@96$C!n8jH2NQfk_i|W^dBi&_%(2?|FrzQ2gU`XXaa`snML| z-e_z+BaH^}g9n6b()MRdTUX?qcF%-1{0$Cl(7TF9^XBQ$n;%iU*c{$7z$wlK=0(2fvM<|2#G;#{yudQESy&0Os_i z0NDBBR%X4CEiv(v)Zm}B-Rj!jmv8uhcQuNF{UZ{*MUDV${C=(v9LM|g{6Qc&5ySow i;4Lx@%&bJ!hyMixG{5fOC_2Lc0000dC{43u5@|6iVcNHI|~x)B)Ibk!E|g+Xey1mnG4uh$C(;JPjV0HEDp*Y$Bu z>jU2__4x$oSnyb_IYw+S8uy4!+XQ=@5Abc=X6SZI&pnBZ^M6-EIRR!E;As-9Lcj_P zQ2-8EVm$3^2`5B9KrsPk8sI5ntVqTlOjCf9a7y$86cRu)K(BG6XrHYDyE<9Jp8_Ot zLi7U^5nyKncya0+hbusp;Z{il06&G`bzR#N<1Ym`z&V-Qq1+MO1lTIF2L}I8LL4SDD!*V|N3D`_T9Ew}+`e{zq za0BqhpgUd~PBqx6WWYYX0r)R>>5URjGSJ9x8dd_HN7qJ>r9gSH!L72@JXko7}L zc7THGUrpH*5Gne&`#f^o zYj|lbpT*N;km?u-5xZ*re2tp8=8Vh-C7uaK2!F8J(ywQKA~W9h%*_>1^f+T!`mZ6P zB;51b_joJIc?G;t?^zXmtO7J+MhrVj@^L?zjU;LmN~&E~0#@qK{CZv2&qk2dN-v9` z(y&ny?BG;uKAbP46zK8mI|X3YOD+9-1ypY-KOOznyQwdzQ#oI8E&kTyrXPMpz6ID3 znt%MS1dkd}r)vGs$agD1HL8CTkS4!7fwg5W7qn6kbN&q}fOl_M19m#D?5oLu5nWbU zO0WWOqeVYxh0dQuUUH~-a^jG?Up~^Hvhh+Ka5{0 zt--6HRkzZ5*PGL=IdSjEz@sMF_jn`Tdw)Nx09K9}Su}C!fm4s@I5LFJ%6`;7*#a&q z_gwqc1}w=1J+8`yv>z@#c={Mk#u<>_qb=oH>y>@!`2BORRaI6xpPO_vzk8hTsVT7H zWE>u`iT7TsAooN#y)GTUYXJOmPY$U>Q;4^c@yFvhP)Z$ciBY%a)O6t!JXw-wMzU@JWk-qhJ{& zTJ^WqV@Rtg)$Wy$T@835*t*}_->;oO&(dNvDwces@7Gi#3tFAGHhbRNn)?7VosZFo zAQ55|q vgi{|;0BUT@DWky6qcZpQwi>I9qqYA4$pqDQ>^5yH00000NkvXXu0mjf@KU4Z diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_26.png b/assets/dolphin/external/L1_My_dude_128x64/frame_26.png index 3836a3b01b8fe8582c0881e2d5ba8c6ece11d03b..06cd12d2cd5efa09917d62706c1def0a4ed0c674 100644 GIT binary patch delta 787 zcmV+u1MK|e3!Vm$7=Hl(0002`twPcO00QMnL_t(|oL!MmXdGo2#(y(Ax~U4CBBkKL zoj?zZAO>nc(3%bPAbKg3!HA&Mi-Lz#MO#ptkqCtz1W~IOwFjZ#f*y3;pshQWphAsS zREo4A(;N(_`zI!wZ_@emc-Yx3^gDgL-}8LG_kACv)Z}ZDl7CqlNj509-UVU+uptE- zC>x25!MU#JMT`fKhc_sqk)pWugOMV{t-)e&gQY*R3_ep(JV?iY zDdpcwMiNq4(#OhvRWY270T09K(6TK_+e(^4MJKZ?`=)?}AtinjH14HCycU>}cy?=L zNIASyQg~~pD1X@UCID|sg~M(IwZS?DGp58yQe<6j4Y8KSz_p{WusCQFJZFU6vXVr3 zwDT27Mq06Vz)4`D$jP&V^XXZ1Ff6b+*@m%{zLPIYGHTAD#8^uA{EhiV8-K>kruS8hlA|b5SDCpqoBYr< zn#=K@my{dxR3c;AZJ$;mNk=;?M#ki=Yxb#8xLnNTJwYqcy3}a5dhz|{?@zzRe@Smm zsd;6pTTV>o`_AJTFHEmuMZ~#2dk^Q#aoAh`vsCN38z+uGliU99u;VJQmrA8^$hVfS zRkH)F?SJ#7nxnt&nDLyYtZFYRKbIX4OE`5ozL0x2)Xk`R>gH;wX*v9!UeGFr{OjaymSBlSo!VIy6xAX6si-a;aU6c zhL2yCr2Yjx+3tMT_kG9z4Sq*7tGh)qg>zSWhp$_C7fNBmh_FhI(W7L#b1r z1lauOt}zn+IfL`uV13gsF9l=lu3?{wLLh3sShix?^|~{I3zYXyGe>ZH4IXQ)N&30{ z$BOiA-}jxv+yaC@9h`(x!^ipHNEvWn4H~EUG6L&!cmI6AogellJ-+J0{~jsEfG7@* R=_K;=(o`6P$XLBSJ%+HOl085MV11br!7QP2 zS}eMHBf{?9PXri%6haHDg@n*1zbdknxvP>rxQ!s*`G0CDU;6}XB_dwUkKVj*FouIj z7lv$mde}iwGhb)l4P2)Ok^beboM>Su!Bp&~a0$-aP$Q@%q*hUujmVopS=4@u_e-b- zknxIjl~84YhrpY+yTTCVPL^j`-D+TI=6=g(>tdrc~Y-d#FzW3$5wts=rsPb(jiA=pF1V{Ppzk+Y)C>>p-L_@7pS`+iWqN6SuFmL8dRhw&`VFN_b}=Nnl7x!gXr}<&!0vRXWlx>-*-S%ppjIDuCWqUn_e>pPoKPt zdVk0dKO)}(`~e4VS)=n?*QHXub)@Il*La`S>exv&CEsmcX)&fdes!C@<(5vz*6L;>huZT8cdO5blj5+eEZC5TQ$k#-25L zpNkfzEsvIKM)X;Ju3?_f1vWcHAjVVO8GMfYc!8d8&U}q^L4OX_oU^9xRX1 z>-8M&1kP4IXPgr+$7erR!s4HwYkyG%na|H#wHLn+8Ap%Dos`cZy)256;tyFna!+(V z(Wg@ReMqE6k5B~I1xWpZ7#mtgMCVI|W_b8;1VDvyCurVJG{%SK3|^5Ina}G5SzBm) zWgg)OpyjD2A%ku&B3eabYrZGb86Gc>(7S*Zp-+Iule}h~^RcK5kdTkAgMTVDGXFpp zdkVBrZ-sxWpwi~nu~Pb*LGsyA`9?fDGT;0nXeW3I^*lz7^Jv&wpCdZo;$c}0Ac;h( z*Q*W3^Gq+LwUn;GiY68^WHS=xyJ~<4EW^11X!u8SY4n-1Fe?I>H9!x6ME!5~W}!Fy z%bH*oU*6hM7c-3DK0&}(0iz8;#DAP{-@;LJ{TwLg#{R{I0wUh zZs5G61&Aj^c3IMf?4}Y)LPJR!%HGk${`Sam%ycMI^hiGd9r3wafIDGXTL0PZTUeNt z)O<8MGwC6J9)Iu$d7-GYEUD`ZVkMF?QY5MCY1=HoWr?HwklvM&57m%q78ZaM za5yqn14&>MzpUbH?^CLTGF6fYAvBm zu|`R&CJm(6nwJ;xaPR>O_B4%5l9sZsq}_5pyJs$q*T|c2Yo)aL8jVal(l^N&>9{n! zN^n*mmsJ~dI{HMieZGvOo9nghIq6SHN6qKY!ZY?a>dq!tN3v=RJFlCsSHbh_^?Nxm{lZHox&n{+2H)+0vlf}40#i*$Lywhm5j_j7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000G&NklT?C?T<~1AHG0-R1Fwos+agDl5AY@2Cg^rfudRev`F}eiod7cgu$lzB5HJHJ z9)LrX7^{^n;RNdkNG8Bc0jwg%j$|CcG!JkRPO*M~L;_T1zLK@i_5x2;vW7no5X1@A z50FHFCkw!eQ`cDT0kQrSYH1!BMCiHp6O<3&AV9Cwy8^x3Bg-S46!R%e1dzVW@t{g* zcrMbsyhJ!n$r`!@pzQBqw%{ytqhA$8KTA827-}I17k@o^%I7`-n+cCX@sYcKnvylV z0C-{0ikF5{1$HVKuufk9{Fl45p@fqJ^rWwOM}XHcR0y&pQ<3MQ@VpuPO9a2b5+LIh z>nv-c37!R9yZ^=dDSjn^8CA4d0>l4*keRQXsBlR(zdQh5c-F@jT)}3xkhQV?2kV#C z@QQBltbYRI1eirC%ZnNB_H=iJxAo$`Xg>e|Z>u6b#UN?0Y)}$#^UdggHZ*zl@)wH% z;(o+kfcBzgr%#}y?*u*1udeiEeox_jWBG0q*xBu^!0beJCh(YQA*grl=~zwtit#PF z!(+1V0z63{*UqvxA6>W<3!_*~hAen>_pVyFH-C}oJ#QhBhXA{5{UU`d?cI%M-21+N zb^%)U7=3-pO?sqSNBiLto~MPX2!VUv&$27{zJCX(9<`9{60oPFYuzeUTYu$P5ijsv z2$UdX;(N8Hvgq|Y1YqV!NBVmQWS5jzZ2h9|UMv+{>4*zxZ+yZXPlL5m zR(~;WLq>(wTZ)&CT@R3rNY<-CBI_;$rWP(KI%}>tG`3`q>KBvXg-`GVxg0=SfCl{H zqD>0d@GIh>b*pJj$f9$MTKEXCeDNIGJU&Qp-}f!K{h8sx5(}l;fK`#)`ndk8knR0E zV@i57gXOstMD{S_I@Fq~_hEzM_Q4 z&gdi1Y9SvUpf#2(o}On-w&#AmF}woRZn}C0K(BFn{dgU0^#B>5{dwcDMfsM*&YA>{ z%%ipAegpX40Z5k3wX+3{si zB|+SIRRTC8#%A@G?IFA}<=XdReee9^gAgu8aM!bO-}VnTv%QbzNh}3c^69a+ ztNZxhK#nQg^(t6|Wrei0v&PY0?ywTgU>XrVVmiq+I1m1@3s{i=_7>MB$zAvMQ_LDtg&JCq&7rs?poI(6+tZ zis69*b0LvKM@zwJHc)%w?t7k;e^9+%#UWS+D5<;37 z4tao8F0lgE9RRlr(%MVUHE0UL_bI%IDgL8<410jt8Eyr*_|I7(78*X%`+r>j(pK8y zL9+5Kx;}hO^#I!9o&>A=m#olxi#dQrc=Y}b=w;2VjV2`8#!CjylVq;L`n+|XVh-SebvrT(QTK1LY)xLH za?F62tiN)AC}`5L6Rhq(s#9dGANoxDi+bB0yq@aA17r-|7BQO$8SXz4>#fgW8E4C8 zWL;?9ZJ+~err@n!M7#vO35}qjuoYQ%j8%kMj3VUF zt~*T%g-AAI;_hraGvD9CW>@GtJ>L8M-=D{ONO|h+NXpJQNq@4Sf%ym+0Dy%YEKr&q z6-cN7$(R^`0m|{17{>oZ5_2E~7u`q1V`3-kg<~SZuff&uK1pvZ84gpp(~!;sRk@$# zBnhc3=~ETIYiBu~2cCu1k>su<-Bs2Y5#7QVI}vha#RX_GCn+}VmYh?OF+h@HbE75aT0apj!k3RgL8r{H_2%?to%lE8*bd4!vd1pEZYDYjFie6MRuu3E_})=mO= zIB>OF<=ZyeSqZRyC7-fKV=h8K3_J-vlx3M*IcrERDt{#v8&d2pYQtkaTKIctf0zEI z?KC|jxlUf`cn9};0T14b0pf>}P5a_3K87F}zJzFHlJriuBMs)({#mylkB^Jkmz3-q zum#5z5C5>B{6J+X?313>%!wx1t@$C^>QMh=AAw*Dtf-2&kO z6tq{ASASjlZA(!3{a8qVxX@BWbK0&=BNq3H%R_|0=^hI-6IJbUz zy_sg4bLROsslhL=%?zx!u-SOkdkG&XA3GtYThG0P{enjT<{w|Y7CoGvl4(pH-UA>0 zdeTp(pJ|#uyiaD!fd6g?_UIx{m@oZf^C9~e5}2-j!wdfbEKs<0k&}@+00000NkvXX It^-0~f_z+V%>V!Z delta 1523 zcmV1m@cvUUg#je= zF3@geQ=B44B}xror5Efnj3;?Nz(NMNJMOGx3uOjiEzs!VY2Lnz1)k#l0KW_n!rhf@ z;i~B5$qU4RjB`p&VieOEpvpLQg#k%^sW^34{Dy!8&={WL{Qw09@MQXb^4t(5IRFQz z#Y&poMY%NgKYwKh08p3&QmkH-)>^qTwAhbh;r-n)WB{iu1ocRIUj;7_yfeBC;1tDk zR2hQDCa2AN1Stc^EbNL{t;tcz2v3Xo9AN|SO1(Sa#9Yy;-H2*#(wQ6TzW5qF9V?8^!FM;#kO(QIGJSW z6k`C0D}P&?pEj2-1E3F8GJ$kLSh2WKio8=1C@M!rR_)oBr(iA1%y`WV2H=X<7Of{s zw)&d|JY}Q_c*VMDPK<3=RFRot&`OLXnkQ8HJO=A6@Mzy;;QM%0cLCNx%V|cyF{;QF z#t=4^)T>OOBibO1R6`4QEc1DlnQSTRx z30iqHVRP5uOU1vl@#5CdSxy~>Y* z*Qg`L5#17L$sc`xMuxot(XljriVWa+{>;g7L$Jo1X^<#G&syDP@_cz#t#m|bfDu)pc} zs04C>w4%`LJ?jdO&CH>SdPjiklJ$P8KfL~B0Q$1T08;xbRMC15GBt+iI%tXI>~*AL zOS=1Dfb14=bo(_rn#c~%UdGeCqHGS1Yy)>?l(2GxF^vlBm$4NhPS z$%ART7Sc2&W$GiDerVgsT%_kchLNDw0Wvsg#}Hkxs1iqvAgX-p|B<|*NAU>ti=ZrM zcDdUKC^Gavs@&dOD$BeU{cLB}zqR(A1B`%L@n|xWfi;$t{dRKs8T*PCjN*0 Z{{gL&B&aV_Q$qj%002ovPDHLkV1idD=7|6R diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_29.png b/assets/dolphin/external/L1_My_dude_128x64/frame_29.png index 1ce384b165cb3b83bcffcc872254ad52ea846971..dffa2d7c5bacd111d9496c702f550ab0bb620f89 100644 GIT binary patch delta 824 zcmV-81IPT?48sPH7=Hl(0002`twPcO00Rn1L_t(|oK2BUXk29&g`e-6TQhA!I@T__ zGE;4#2*p4a1s7&ObRi0EuCCM|2+~ahUFgc(LKQ(#K`9l4##I;NA4p9w#(e&OLI{c2 zQpz-)J5_A4CUcu~a_`K&^Bossp=b4ScwWwdgH)vchNPk)sedgC%FM@rxe9=V0xVF_ zuMP|nYJi>Bk2SE6fdMiYJ3Sxt|-_)ek73xY-SN@8Z zv@OeK-x#|ql7G#CPqAdDK?kc`Ek*QWELWmQsr8$uWJ~~PYOf?WoS#tJl}^a2Iu2BK z3b^xVaTXStkrbPqwpwj1c%{ZK=znvNt4}a)e`L6VdtStis%wtBuV%^;p z;0<`CAaA5^sW|30q$R1lgz`L>AM)$cs+7q_^hf%&SRRffJv{3R>8iHVenU!|S&^b# zZS~W}oRl`_^`?D(nhJ(0K>TZQ*&hE8FcBF9kQ}yW1~m!?I7S-wIBdb=gK`mv2~X<% zNzLsvn}6zgc50y#9hjDP5RstKHYex}A6qq5x_YNY*}EA-yccd(-dw^6iym z_(l888dNI&`|E`%!`QR7J_{pNOEpNiR{FVa!+#o-9Ar@?$aWnK35O(UXG2o)aDE{S z!ma;zxW>MxZ6^%sRRG=G_YlDFY!E&PK(=7U9i|%+HYKUkcv+p7I{rdvUjx9ezFY4+ z)1ngwXWj$g_Q~vvq2$Q$tf}v(27mq05qx#%DE4zIKydDn`trq(-d?T;Qyc(jU3xV! z%Q5-CE;u{A2Z)c=VNdU=TlHXyA)ve%0l|Ie!~X#6W5}M*4+Pi%0000zwVAn!d zD4;}R$9&2aKtonwyM?V`X7_9FS&G#)|5625DX3kF(dmAyx$tqT=Do}U{3Pt~{j>3u zhO!{gVrZ6GE$~|%5I)HjRn5I63-}HA=E$F-#07lw0-&gxLU z16M0}MFr40hY0gCdl>YDl4j>_RrQb4Mc~B{k#(3-fTx(jfoguF(@5!nY9&ty zB4egpz|#ajz;|l3>6QY)XrFFG=N?jk2=NuZ+KZ@X6o0`J9#XeoCH$=UKaPL`RQj+g zc*T?|ix92)4L8vpo6zxi8wyAPv@dfa=-LgG7mcr|B2<{}>Vi!dTm{ggU=6E%9>N>n zE!oe~X1;0g`e!qN);fR`^?D5L0?MaXz3UF#G%GYy(&kn$LgV5DIH7M4eiu5Gp~@`` z{_eluOMfCVqt7o&gun3Hgx~p11INq<9yGulw5)q;?5R>PS_Fyq%OdiT#Eu+ZGV{?) zAu>N?4x$27d~LF7H)V3*sPC`fmkN3&Z`Y8GAwCpf5SdYeinOt7oY}g42Atju?TT6k z#m8}Q6{Ft3RZ7AAp@yN<8jY^qkMyq$2%~QI@_z=`7A~@29TosR614=c(d{}+lAc$( zmrS1*D#)tBLp3@B&8{@C^RS9q0pu)0%>t~0mZvEJM|Q_|qI&hkwwQc8>(o@O10Zc$UoY*cI&DKv0#S4-1L~Kn zL4V@{4X^G%M*^CQBYm>*#MFVo9X_H1C&u-?t*8 zbeRl@uid*4WG!ZdF=VICAX}xhj!Zi7T-tR(?cg-@Q4L*yg5=87XwfwcyW!;G=*QIOnL1{ zZj06ito}&VQ^L*wHVZ_aFH6W;=MM0C1fm=j1rcujDg<3Yr`kGb^1YCq&hI;eCV$C2 zXem#G4=wn!=9E=-kFOQ$D7iP$0t`m99nbHpEP!XuqdvR?9kdaiE9ND|Hj-Q~`jWQe zJIudi&Lcq~x{wGBD}6%vh`igKa%wwYyFZWPxUIa{iVdn5&OqZq3-q)(M$GZ-+#~%n zV_8{^c7LHezbgRDENDmSv}0TjYkz$$%P2iV<@$~RXeWBl+dGv2q1_P~N1s*Dm)^Ay zStH4{X|cdR{~IW2iqzf(Z?U3L|F~MFkiU`t%fL-Dx(U3Li_?>=?2K|) z<3bj|n%p-5HUH9%8SRm)G=Gj2Q+e?L=O;SvbPOe12o)#5B~Q)zL;lm(ap%J>eT<{uGqbjMq<1z$7z?tOp$dma5r^G%wL0cI6}GPYU~ zD$IY@tVb<{CbaPkS-&a^R%QYCVh^TPL-VKnenyBhSIUp}eC+a}2-2_0efj diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_3.png b/assets/dolphin/external/L1_My_dude_128x64/frame_3.png index a5056eb4bcff8bade1d5e6097b88150e797537ab..314efc632141ca672f2fc4ffe64e0ab81cfe6e4c 100644 GIT binary patch delta 791 zcmV+y1L*v}459{*7=Hl(0002`twPcO00QYrL_t(|oTZabXdHDE$3MR}ztG(hGLu^W zwlov}kU$RxiXf=XXj?BL1d}NXUV_w4t-C>kQbRf$8#8fd=6T4fd-r>Lk1y|izmM-De|b_{VSlo9JX#=DRRd2LTv9s}o_DU;bb93zYO{4C=Tdq`SvkP*f{U63ycCEVBn8})iSoTjZU5&ZD z4loXr@VT)uyL=h%VhT`+2FvkuV%eIZ=J-x$OA$ zslRgbZUI6XALWle-~G#*!Zpj}xWQJg&^d!C+&o#?Y{Sm}T0*Tvh!KV1PHP63TNhJKSbg3Agdfr)_KebSZy zWq%#huU}&B5HBjH_^gxx%s3K2ipOGv58z30Y$V54Cx9GmDnLTrFh<|I?2ns%cyqZ&k&HobQQ9bGLyD{ed1nw?KaOM6Tk!Fdu=hNG z}j3&c(FZgp-ukWj!!=q&)S)l~)p z1la{pcjGdJ?T0x9;HrX08IgtVIaQ6(<~?ZIW*snPu3foURZ@giASPl@t#Nhe_P#b9aOZY$d8(N1~ VN)QF_zU=@2002ovPDHLkV1lTagh~Ja delta 1594 zcmV-A2F3ZJ2EPoD7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000H?NklR%tu<0`T^A7%NlmWn`o3?q zdvP`{%>hOOTlXT*Uz~@Fh#Jw)=$$cSX9GUwi!*Vz)~K~c*MD_=e>k;k*AB_(d`#Zw z#TkH8Kn1;PW4txQbGV7*i0%=rea~FSG5Y;JHh=bF4?Y+mTIgj8Lu7Y>I0M2Me4LkM ze&X(bNKqskKe~O{crwVt1WmvGk)HBm7vW^1ujt&!KY6!HC)efyy z{_2*MJO7={?SCE8;5A90d`dXk#^bL zMMj}WZ9)`dgqht(RwrC8BJ&=NzqR6!o8vQnDmnusAjY}E zDTEjUXpyd6y$M?PJF<~n#R3Q{XW<66^fx1GhDEem?1KTcNJra^ijnSXxvMJI^1sLV z@b3|3ibNmpH|vxrQ&|}M|8NXa7$AGK7QuyUZ8FH_Om8k;5oO8GLW|aDf2d|?t+kA? zJ2L%NP=B<#Kt|J%^v36FF+;`LqRhkB!M`Kd6a(~$NysE?r zF3V$8P5wuoSD3A}Mz=-J8hvYmG7O+87JVkotKup-mzMghwOI~^=$K!n{$0*^)#m*X z>@@r+6s7A*qieJ*A(AdUhOzov4jKj5ACd}3BUP}hCG&e57@2S;vd8hIg>oP?thGn` zWPjw0{k-<5P9m@ZQk$P;&o4eO&mAId0Q6b0Py{@uj`Q&PMP+HS5qOTC2@J`|nkPdK~=t)3XaOLM*X z4W#nl4WzEvMf+T)Cfn1Mm0qh-sO0Q??0?(p(C=HwOgI`f6_F+xKgwFCf$Jrsr+YVz zWfeX%PbAIF;G|TbL7U@kHS!h~Exx3F5sbSNWIW#Xlt^F6IuV-@2{phZM!5zc%_8u&sKKMtlT*J6^@ zktiAe!~?4n@ufY`yefjI@iPvi8UG1m@Dsh0i_s2f8)zL3Tb~Rf$GVcUc<(b-UHROk zb?pWs^ZN%O=wO^;r8iQ@*}Xflz<(GT?Q3(Zx+1!X9;H{;VII^JpuuwlPhlv{qgzI_ zenE^Gxgrj@8yP2n8Gy*9J4qq^K38~lvYuS6jfa_?ht?lmUljvn`-W10w_yGZF~G{j zMvRcbu7jlZOVHFeJzfAz2&Uf_SlNk*TIet)7#2k6MW1UVT<5hxvZ??#18(E-r6dRo5|b_BDhagnjJ z`pP1D+-|`<2bft@1wGARh2we5uw$*(dzcK|gP^DAZ3lCB>xww>Nk(3czpJr%)R zZk0ns)^kF^hdNd^4V4suJFwCiv*~IVORkU+eiu-Q>U{Qu%pJz}95Zyrfgg1M2`hiV s@!}K5Ilzm(*!thWFV4g30Dm0+0Ao?mEfm7Lb^rhX07*qoM6N<$f@(_o@Bjb+ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_30.png b/assets/dolphin/external/L1_My_dude_128x64/frame_30.png index 8d42b8b482bade89f498e5ed1cae3a82bf89ee26..52b8d35f03c656242bab9843b86bda4b791dff63 100644 GIT binary patch delta 815 zcmV+~1JL}Z47vu87=Hl(0002`twPcO00RL@L_t(|oK2EXh#PenhM(UrquFjH8~no- z4`#ZcNKpxhQ1p->f}-{qRJ`O;DpkmWNcYsFQ1Rf!gDeWl?mP3$Q4HNdc0Stx4+30)HpmE;5KO?h zbN7o+xeh*q`t5roeZP3(F>t^KKp)PAweS{53qVczW%ZS}gjAHYq-;w;dvr<`EdZ~; z6=X{LKqE;SDSug0O&ST^Ou^*sq?JqBl_fq2+V7?$z!#u(Y7$3={j{yLCF_4XDVs9WFG*2;ca^qz#P{+5d4xpZWk8-Y+Mg;Al!1^%D7#k&b$jg z4?JSOsekfi9s0|psKei^c+zj%YrSWrajxX3=?$OaKkxG4f=gyilG%-muxDG>nsh?J zD#zYXTFav|?Y>5tMm^`*D)zik2lCw74ST4H$?oUJ9L12X+SN_yI62o-gC#m-y=7=l zSzIS1++6Zl`A7;Y!=0$D{zf>xLZc|9wc(DWXn!Moy5Tg&Q1FN0gI9U<>Jw*u$14L6 zGe;WVci^B|dCmoffAmfD+_67@{>OTgb!>k9()8-9HuCH{fe$eAu{U@f1`TKNy)qE) zydQr*RWf^*oj2JBI7=T0USrU(-!TnPIpFqaXKCJ tvM2|8k{bt?on~0^Ve@PUcyabf<9{D6!sENC%x3@q002ovPDHLkV1g4#kct2R delta 1570 zcmV+-2Hp9(2B!>=7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000HqNklvF%daCk0U*Yz12 z_kHJ>tazHn@&PouRY_Q(`2F38IP$4zbAYKNY&46Pa*o2u+<$@7R(}+ChtR2ri18ub z_x*F;-?J*?^iuOBV2L;G7Tsz8Y15 zaESw)5~QuboPX;{HHi$CR01oMv}+rvmW{WM32PtKZ1X<|bO0JJlmB}&0PfuiXGlB1 zH`BkwIFT(t($y{;W4Tlp`+&C!G9*44A1;s4&V{IVz1T$stQN# zsQGuoJ7=>4R8m+KwAdr!2o*+K&5)UYO_>~k`)7^^orN0eJJq+>FxeyQPDkMWYUjl> zU$h+LSUOlud6uzZWl6`eRR>zT&k7{KxjbX=M#FV)3A+PA>o~2^a^?PQi6NqyK$eZ! zE#Nm9zkdRq$Jtoc7}L_T%8*_8?Ga7xR;*qr015JY(q_uC4<;I2Y}JDCCQ%PXO6Ki75r6oRxX zC$I|~dqfp!4PLvM%Cb5&M07ye^|J-QiE~%{eHS7J9uN}!??hxAo+>W1C#*=`_}JHT z61Wqm27DceG9G7F=maVQoD9hcEJ|BZ27k7|o04jQueA5O89>SoP6nkMN}1OEv})d+ z%w>r$L5O>uCTY!r-+Vc)@!5=Q6 zcJ#Gd4wQwjk7RtwDLmlbp`1ahURmT;p?bbm^0mIXxPfE<>Ltr|Pz_v>v^a;wX@4YW zL11T1U_~s2=S11{h7GAefx7Qpc`$vMA1>n6#=*rdP$ujn0*@iRZ7b;?%7ph1x6<)_ zH3MjLZkfEMB&z~5l3?rWbOma< zuZcsAoB@6dI0H*TA2bA3 zs&{pBDHq;KDf#oc77SaQ(9Hmvk~pjm6eFONM$zVc?zv)lT1?fYFVEgjGQbq#UHy>K zc0$`*DQCwk20pi5HTjlB=6?m{(B5&gF+g-cW1PVT5&Exk2FWQX2Ep{7(O;SYDxKg2 zN0_kEztxD+%GQ2|S3DkV%+`5^8K45x>RW+GpjT;RO%5C*<&4z0B05Mh0OttaLG5w^ z49Y1WOI6Xj=ZeR}>6~&}>UW5C1~}CTq}5OLpEY9UipPVQ1wMoA@f!y_a&%sQ0G3J- UD6x+hWB>pF07*qoM6N<$f~JK32mk;8 diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_31.png b/assets/dolphin/external/L1_My_dude_128x64/frame_31.png index ac926d7be3120cd6322739b62a89f67b326563c0..6c282c0afcaac6f862f153466d8c2b9ca91ce90b 100644 GIT binary patch delta 813 zcmV+|1JeA-47di67=Hl(0002`twPcO00RF>L_t(|oK2BWXdHDIhM)QE$ZndDE?Th% zty^m`6vcptf(Lg51rY@=sh8qmD=pMN#TYY6K%taW zYzeYmog_j8jWbP5X0kK$dp&F;zQ^Z#;CtakDpI>Dspv_HWq&}K^B&+_1HeE51}NA8 zBzSf;a>MknKoXmHk6eXZx%Sc>vrD*O4>67qnV{ zV>@L}O=(+(?0*Dke}iiZVSwS6peZf=Xvu+(K&{=9!qI%H=%|>IQDYKlY!y@-#|38T zNQ#`TSaDdH%E^$V$ocy>t;DLz;HU<5Be3u}#zp@?!%ZSgGPnyfz`ltt*DUO5Wlm&9 z;9Kw}qmZ9M>J1ZoUxe6pSU}1+mU1I?RNSI3rOuqTWPeNzz~ut!goK!IX9dUuRtoZ7 z`i6?bc1@~EAI_mX&t+F>+sO9F3CYNeTYLJ>smof8_ z&JmQL^St(qL?xYR#!7SLee=Lm5V+vg$soT(x+q1v)2~a}xK#YSd%m2YUbo*Iyxk>P zo_W&ku0P9I!_XihI`H~q#`mBSLKf6(aEFgym4BqIHA!iAW6gK{^&30<%D(KTdrsoN zC`p@FB^3wqFMQX36o72TnVf&zZ2P9005E>~kzMDY+BGi$U>Dx%Za#st>ATZ!191J- z?6d0ojDF&D_u#?rKW_@|oj8LzLmhBW9qL}ZGS6t&ZLt?%>FNs!XIJj?-4EKkfaq`+ rMke09?Ul%FQ3YzV0XP@)zrue3$o;;>@wyfv00000NkvXXu0mjfRwIUV delta 1604 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 diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_33.png b/assets/dolphin/external/L1_My_dude_128x64/frame_33.png index a6c973f6794629e603e943bb407db67e994287a9..4376fe29f51ac8b0a69bd2d195f33f7675de3785 100644 GIT binary patch delta 831 zcmV-F1Hk-*4ax?P7=Hl(0002`twPcO00R+8L_t(|oK2EJXdGo2hM)N}WjBc?i$?UI zxGfe#sTlCkL&e>K;zdP-Q9KkDK@`2Dwipp1BPa-pEhtr}kX}S&BMr3LVyrvVpodZu zu@YomciI$MXww-RlbOxT{I7?t(C_&0yzqT|FH)Y^%aZc8q<=^TlscaR&R;zrFpz@* zat_w}fS5X9zD~=1kb(oG^2cr({TXQRQXj-2TYX4_qUGOeh(sT%Bi~K;}2&mK{ zYsG1LYvf|)&&6OM=!4B?6o!EG7EqH8%=9!J$-qHL4TyqY6#%l+k}k_$iE3##66#4( zPxjAiS{aRGxPM+aj@jbNB+Om{L;4+vae8jXZ#N{ZigG zufYv?41ZvEm3TYeetlfi$&GGTnUr|$iv|1kTqLdcdvllhY8)Oo9WY4_xL1vL9tJNE z&ENv^=qxL**`)KZR7jhNIk$vakTi!MgN`%xg2X^FUyEd=tYaQ|7JL`#6@cs<$+8rV zCf^sbnpU*eJzk7csn{R3-|I55H2*Z-lTuzw-hY%L{Sx2q8Ltil0i=HAD%|Jcl_Y6n zRg#)(tDfuKxLNJL8DYzVhumfrKv(YA1`HfI>UvKAkj^_3!I|fJo@vGajC}d{&Tv1zb-~W@S-({d{r=2zNDM@RPgW2;BxHpnTc~=WKQ@_z#gH*uf%@`KJH?002ov JPDHLkV1h delta 1663 zcmV-_27vj>280ce7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000IyNkl0Cp$`4P!S@fzjt@ zSg{&Q7=S}|k*Ad{LGpfj#Amg!=sP>tT51406?MumB=4_~X6_v08eYu z!m4nA6sgT!S$1jv^rFqd8EtkyD~!N20L$Vz!FIwU8+uw~s^d5aaGsg_xLm25Z=Z#*!3l+xTsT@u=w_co3mX}a` zlk%-Zw}PrUHl1ZpI%ZU7Q;i@`qLg_riwGs2?7vrz&lzQ8Y}NoOVvEO{Dlk(@d1YE* z3{uGT!0JLqnCim-#)~sXP*FCnnrGJs7_E)W$$uPGz6G31TGK}rfaS?7ta`a(e6Qj& z9**}sj-h4!Ty;U7V^%nVH9%YgFYMS-fTk_*Qroqj{ag z5`We4e~gK9de~iU1Xxh5PPCkq1M(<rV*44+-2+8u%oty{$5aWA?ur$dpu{v`hJ>C*1MdFq`d1A>~-yGtn_6 zNbPt|zi*2HszEoRVh+hzZ!=)c=%l1J3afQJj?@TV_|Zbk0l0IoVA%bVnj=;4mVcVw zR67-}$5Yk)`j;@yQn>4@U@146^^c<#;_!LTT$Q~8Zoj2DrTci#Vt?>ZA7GdA z2avw-dUTu>&qwkP?|4=(LfRK?JkQbW1ME~jE`t7c0oNK?ySFOwczhI|#GO0-Q~?p? z-<%9#5~OASx2z*lX=zmpx4vlxkS6=rU@?P-IVwD#Dj0uJ<@XL>12rrB+l)Z+{_N)C z`lILcTE$*sc+4o@odZ}4`+r;DtpKc8t!3lU@uWT03{|=>m3k!%a8u08f{XtgGoV*_ zoxm!&Dj7hVpPSdk04s&t2`~L~9y6{-j@&$2PF0cpYwJnp0ArAE@OFenwHf;Kc)G>_ zT%I+XAeQ6+p3TGiH^7RU;~6bs!e=s@s?o3{Ctk}K!!!eEMxbH5cX*2-Wa;0lM9s6U z`zYU-gUX)W$7u$b0rjfe;HCc=C0pZ+`}8QuhGTixlwp8hoxrg`&twwNns-5(m!o|8 z_wFOgtjVfD$|H_301D<=#0p3TjOQnmj|_myMn}|sbR9G6`UBRt+X<^<_}Kse002ov JPDHLkV1f+WF**PM diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_34.png b/assets/dolphin/external/L1_My_dude_128x64/frame_34.png index 3f9407f385c88ff977aeae0d36a3c0309bc35171..d431b90905d5d4185742d39acb7525e8821c073a 100644 GIT binary patch delta 813 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 diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_35.png b/assets/dolphin/external/L1_My_dude_128x64/frame_35.png index 6059e00d545ed6c1b681cd796a78e0518aef8aec..e4ce5da4d8c1a4560aa6a607f5b3706f689d945a 100644 GIT binary patch delta 800 zcmV+*1K<3Q466o^7=Hl(0002`twPcO00Qz!L_t(|oK2BWXdGo2#((o=>LzKddnxwR zZmTUhSQ6<)McAPzf}Y1e7ZE)Ofi!_a{R8bzq#gv7ocseKITVC$Zj~f7wV6tw2Mw)K z>A`GvO+8i8nYi7|Zf53tJZyIDb9;Y0&-;A5AL?sTQY8Abt$#_1Wa!HRV1SMbp!GiZ ztmOe2J)qW^S->pyK>E@1mw@)(Dk+I{UeZoIJF?dj;{k1S!vh0tZ~!$pa>;^6G->xI1=s`$f=J2DDC~TKwFwo8F(*Ov1juLFM9i-m> z5gFthI0VWrNPo#a<%=py9T^f2=#(r9VHXpw4+8J4vXlbfWvJY)C{~_KWff&pGI>~V zoF_rSfaAD8+Wmz5L0wTeFr^+yx9YkVsZck25BWT9VByD-nehO4Xu-t0$1J)jNj6`u zC@F7m$ndNOSTgu6qzEe+73mYZAgxFbQqo!oJf<^JWq(CGD=1GrIH5^dThW53kC`59qHTLynP)YAjUZW=41ER;S4|)K7@B2^ZIoE%pPQS-H8{oi%_!bPg4XP$4}E# zwy?Y?B~hpShnXNB$-NEQKrHt-{@LV~n#tl=T}gdOzIp4p!4kvZm7sAmJ7|6wrHF&3 z$y|v4F@OFYzzLShxP*)xG^fUy1DF96@VHsK&1vwWS%N6QZSuhzvSlsQ#v)}_yEXUJ zIL_=Qnk#}F)=2J3&F{}GpOo$7>eS4Y+c5MOoX#9;F>Cm*C@b5YtC6B8RpJ}p!>mfz z2#OdIAHN_m&^#AO(blameB*l%xGwR=292ZVeSiG-rN$FGTXiW}i%&+~Mjxw-+bMEx^Z5&)XRHGe~$=lRj*N=8Kj_%3J- zfMF==JU(0Ked)J$Z#TYS_8&)60BFwQ2J)QydcEFlt`Z2}H2aUEApkP7AoBbbW?RMV zmjY?Wc$OuBS%*;;*o`VZG&vT#bdA3>09HC`cVKj^{g#ZbqzVfZg=C5@W1%I~oZ9${rM`{i=hl zJqM^vkhGcD8Gs$KqdNetZACErlE47y?9J=|tY>#I=yVS7&Gc`r{W}vtidh!;3IzlE&uaHI`O(?G`p7yuu0Lb) z-U`kPrt@u{D%sYFob>`rreM<%2$K8^c@g5|5+XNS_DQFL;4vqs3E0n zc;)sELC0AE-R&Uq$MX-ZqQr{}QsXP2YI*4x6W>bHKwY)X)cpFf3$WJrt2nz7E16++ zO@DzhpO?423qjtMfByjkQk1EN)Su+n_Yy!OUc2(|C^89U1`(N6N4^o=c2rcQdIR%8)qiU79(J-wrf<$T8Us9dL}-yh8+#o`{+}IK zmCTA~vWV_Tq=~`Xa7cdsU;xe8()|pow^p-3(3Sjo%U>6pc=?4C1R?`y!O&5`ngL== z&&gIoHIoRVs0=(S!B!bSYUurrV#gK;g*B$#f!1$mNbef&)!THTvf==-4V8pvhQ~Ory;H&H-p6t9Z~2 zDPPd`yp`E=L^f&%&H2_Io<1`JD}Uel!vMSJ-=lNH0JDb5w%6Kt@;Z_}uMf|!ZXKX& z=4<${QqGq0A0d0y~XRNx?HR z5k{H$jr4Cp%8fL(j4bQoS%5^H-9doLkJ7i5{YPYZISP`)tk^}-eo7c1lYg953?g$s z3n@^fE59$vi9B!hkJy5Kr29w^oc}%RJAXw6OX2Mjtagb0Gi(s)U(&}))&?TWk<=!| z0A9x{;YD~AxMMO`E(^)2B0C-l+%_5Kf8+q8@#@*W8q)aqB#0Q1w)f-=XwIX_o(AiF zL~k_*Kn%w3UkT{)B{@s`zkebqH0G!tcbWmLAh19w?Jls^Vb6)0y^#C#Is=IXGQs+h z1I#FN9DCUS>D!|J87F&ksD2XDP}wu%pJIU7K%haeGY~xbr~g&ZdgRLWqdM_1L~Xd0 w0jLt%pmt;ElW~64mFmIu8oFiemeJ=Qtj;RCXX))?00000NkvXXt^-0~f)^R=WB>pF diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_36.png b/assets/dolphin/external/L1_My_dude_128x64/frame_36.png index d2cd0c970c61dea42452df834901ad2a0501a55c..f9d8b6ebf21cbc2d7f66924b55a23585c4d01a2d 100644 GIT binary patch delta 836 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 delta 1539 zcmV+e2K@Q528j%i7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000HMNkl!z{=>~9T;zz z{bMX-fVbdHvwsX=09euAof+C}-^BuNnf+t@XMhx*>SPO$0C=NeJiKA{kFkIOP{!H4 z3_RJ%7QVX`cp|QVL{9OTZF;BPeQUKh= z@f_$tu-5*&+8~Qm0AvQeVy)Knn865IFjVBwV^$X0uHgXiO1(Sa8L<-x9=&!;+fsko zwg|h20)QK%((&wdng5pht}+5@&9~a_T1wmi;Dh(DdVe4h-RQkY@^qKXKZ35VW&rR# zuZ7(Pi|Uyz-k>vnLYpMOeFW`kixwGhRwzXE^`7RdzC8$witZVZ3m$Rbb#D<%N#%lk$_eFc36M;fJ> z%&hDfS$Z8S1zLsfXT9t}27*`Iit7E1KA0&6tpqyJoSnF>$_u=L*LClc-J3pP+lQR7 zv(|6^S4DRRXC{IF0#?7J3jQw|s;YT$1c2wHRXbe&*j&K=K{W@4xbCG ztwa@1E}+I%m4nWWteI~zfH(6|vwRwPoZl1S88B6$(_>yQ5nh%x{QmP~Y#=iRS5A<}MD*6&SJGY60aXbB=( z=~-l4-qM?pF?QC+F{kR11ir8yHA?Yc&sb7w|^sTlB9vMJk}I z0Lso*!K=goV>~1Koehr}I?RDW*7+d@xbU=|lmS-M0cJy5|0QOS>L8LFNxmj88Wf(LsZP?CS=#D_8NeFc zlMtnUX{&Ty&m5(Gv>>o_h(ZgfsMA#jxP-i6wsTlC$?s>4NZV^cb)9n>=jhlytGAj1 zM2yGp-vO2$9{r<&K?@41pL|B&-Wd3JA`Dc{0W#3&Z5OKaADP*fy(0HD9q9e49or1h zL09>ih|+(@$)23+K0R_BCEY6HEHgki5NHsr4g>`KSJwLMk?JGqF7+A3RtBI-NCR7i p$hz8fV&};9(QNMpfz+;|&mXmx&>7wuRiXd@002ovPDHLkV1k3T=pFz7 diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_38.png b/assets/dolphin/external/L1_My_dude_128x64/frame_38.png index 70e56b168bf780745f329c7eabd85a4f48c5ae39..b9271ca8d5b5d2a75b4d95f615c59ba1c9b6563c 100644 GIT binary patch delta 810 zcmV+_1J(TU47CQ37=Hl(0002`twPcO00R6;L_t(|oJEpBXdGn#g}?vLRFhb{(~^S+ zrPHe5MF@l_MQ8`byHLhNJT#YrD3XAO3W_^|M6o%x@KMEZ^&@A2N@A(gpXlT%&i2#LJ1ZqVHc1Q z0(LHh8WsvLKmqXl5zGJTn*#PtTgXxl#ZV9cHy%5b0;Cqw9gyLJVhberA@mXt#N)`F zWB?o%k{!^E`~00@ozKnw7!p{uB^IV7O~7VCt%^aeE@@5fz9gL&>PS*Y?xrLy39Xf2 zT)k>aQcafP3xCj|fLlOy7R$}}n6&zb1IPhQ)FdTO^(G}PP0CX+3-HVu#2;p>Iu`D$TI)I$jFEtc?)6>LVuRt;^Ncf*QK3=zWJYunl>^L~2I2fQe}*761SM delta 1645 zcmV-z29o);2J#G$7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000IgNklgC~Emodx&RQ~@NAc+&BpMxb^2?Lz0fGTvcSSLI( zx9(Coy-gGA=YWpZvo33VZsjwpjl-Vx^Dja~bdH32Fq|CEe`z zQ2#y%lC}@rI}M&loq@D1vLI#9^m+GEz@btmI`5m_{7EJKe|GR$M4jL?qjJ!kG}9N> z5m&xmuW{3)O)BaCC*Zdwf?BqZ+hiOcmw(tfZp%|D5V@)A#;S`d-2ZBD+ddlkKaxO= z0V*IJBUg+eZ98{IGsuwr&f5EPNi}y5z}XkqKeUll&Q6L7OZ%!eR_1`D^6Y{#YX;UH z9@=p4y>@*hV_P3rK=WP>vkW3Jg$EhqXXTOVBs)p{dhB^i#??OV0H!uN2Gl_t+JAP2 zJ*wCZ_u*v~FXL!-kk)wI9@o?ImOMlH*b;me)VSF2Tw5=stk=A~T5h8Yk=Nk_wMSKVSbCbq@7CZ{K`k`5M)_|1u zv+_voExPwIH}`yvFuGZWd=Uefy?KM3L02(G>wQj#aNt%5eEh_lb?#)^2&E}r*VfA1Us zH`3OcPFPBeCS_1+R7l%<#-fo`<&>O}aJ?rN@VDDjT|mV6D-9BbmQ7ok zc9$Hu4#ShBM~s;%T_=Gj8+;WkX5frVBVS@QkCCPN+0x7bu<+jmO{p2s`CHFWXDtEU z5kAcTo{4@7B-)pvnU+#}>3=%_bp&kqO5?*=P?j=4_nNr^Qo===4Rkz@I;cQ-E2Ra z%#rV_mw}HQAPXE-r@>4AGqh{<1Mg`W{l3!p*F|!GSx3N5u-XwS=zj(6VtJ~Kxs?H^ rvMr-@ftv@FW2e%wJiCp5UDx;nY9%fa!&{oR00000NkvXXu0mjfpJ~4Gcdq2;l z_P=c!M0PM%w_^f_a(;Zx@MsgD%r4GKYemdSZFOlkV@}$8%JVzs9Q|<^NaP_dkl9Qg zAKWyEl-0?HCV!E5Rr)+M36a*H`F36OG=+6O)pCAJD7mjEDeA%G?JSqZ*CUVWdJ|c& z)LgFaMJZl&^rdU1uNYkj%cPq?u@$AL%Y(EJtohN#bh_}}1^Vt}QnddgKjT4rW4>v0 zfnH;=7I*2K#y&CA7J46o4fD%kho@d1BBFIfL@MaJQ-8q|fc*>pRH$?u?2E76Ix`;e zlRPZ^pQw5uF1ksi>Lw}iREL4^@lz0Z4_>HppsrCS)8FN6ay_qO%ga zm{2f!U!DkoY+0$%%$0W}l$nw|f6{D{J@^}aqyo;}8?t2~I=<2so8l3Zma<|T|00=Z lmI>^MEF6qh4~{x~^ADjB!AB`;9l-zq002ovPDHLkV1o0y0NMZm delta 1018 zcmV9$ z$O&zcY9YR~w&q?BeL2bjN@6GxES+45_>u$E0!_+J{6U}m8bSQud&y5JndW#PWhefi zldzJx>i*jNwp)W@{faXM7PJNAZZJ_&clmlp-KA zft%+595n>xpR+i6NIseTlv0Q(;r=RkR0LMyxqH+EP>PlHA^Qw}4j`cvR^s!zd1%(A zxT-#QpS?POmT1W>B$ueoqt`w3VbV!8W!Ik|EGR8v|`kVlO2uZ~ur z>s?8HjE+AAjEaDZp;rXxI&yi>RgGBb$}ibSnfsFwF|d70B!yX z5ok}dMg(Y5Ug-dofED7hL~UM-&wm1F<|X~HlHP!t2qApUKq65&zJ^>{Wc*xHqR=*9*!C&*>^F~k`J#PqS=J_TJXa!ybql+Xi z!hbM$NaEskfMc;WHtdfpPCL*fp>Wlp`*i z8d65!o`43;vx`TBr#XfF7oh>WUOgg z4sdbBfo?v!FJISHH+7Pq!$a{GtD;!5cykU9MP3vRdGX>!b2DpWXFfSB^B(zs1Fg6! zcGjT{b6;wT_Nv&6V@_4L-X?vgC@yXm13HCeW( oXn%xhkzTw1ie>MKuU(hMFYI5F{y}dgzW@LL07*qoM6N<$g5Y)ExBvhE diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_4.png b/assets/dolphin/external/L1_My_dude_128x64/frame_4.png index 2d9f4e96334efe359ebb9beb1b84d16e01039b31..4b7361a4291868aecd4e4b257ad5b4a0b677ea34 100644 GIT binary patch delta 832 zcmV-G1Hb&&49fh3Sh{91 zr7~KEb2zPA60wMFwI?lGPL^}t$BT3$;{WRT_&?A8eV^ySynj6|DO~!7-EK(A7w0qjkwmNvgSC6YJT9 z1ul8b_2Vm1AAde~>FMGVmkoDz+R-r=x_`4?F4G^La2}g&Hte z<#E)w>DdJaL zok@JMKNeK7y4YwX4;;kuCuqTIp>7wUl3K$?EQt04Wi0D50I@o;eZm zk*xtqbf9Hzc%Vw)jWTkD`sV?0K^3t1$10v0SyId3os4-kADGM5qbk$E-KIf0000< KMNUMnLSTX;^NY3s delta 1618 zcmV-Y2Ceza2GCrTQ-nm{;(%r=Xuh3o_};4$LAwcyLD~Qj4sEN zeSX*ja0#eL@75SU4sjn|M0!NG2)4fWT=^L7ej8gp`(X{fGC-E-^$~k1ADuu3*Q>X- zM;t->E|svjhks>!qAQQ^b}-iX+Bkn5a((!xI|F2ddj{3odH1qyQT;S$Sd}40cuI8c z60J*j20*Xc;#%!c#iQu;B42*z+~g}dCY)c$vk^5agSlCKt&D1oL&P}13ih9A+q=8S zMlI53ggEv@cP8_B@(@`sZv2s&AGNoxGsu|7G30k^mw&*aag8W5$TpnY^Z*G6E(Z=i z5*fgXbn6-^I4hDzqNE3&vslCv*#c)|Wx0X3duo4wWdJME(RO?hy!)f|)vJ{#2Z*jx zo_0@W27bQ^Xr}VO`(GS`j116wjV9qm4YFI%#^hsIlg=Wl`*J==+l=h&T3EV;ne;r* zv&YyC)qhUX3$GmXmN(A{G{cXUpI#^Knb#+CQAY-7ipjq#oS+&N^0Ya(?^W`msPEwr zNWhsK05LwVflUy?dT$S93*q)W45`;(qlP^H&4zTBI8=}5dPw|xnuw?tcnvL zWyG5>0wi@>i)^J&ZR|`2^PM@G$}D(zc(ppHEf5YgI6IhMZe7{q=Qig;0^Sk~xhsd^kwUU%+pFu{B))(y)IWH0zyuEA}&BMwLZ~ib6=n1Iyc64EzT+KnFepy-7 z=vgzX+*!^L$$EJU;SmdK@YRbcCxxcw8M5z$#V7c8P1lz-kT$tW1K;5+O)f{T5hLCc z&2M(lXnM&^NyHogW$6+t42clSr=&&k^(pXkrg^rr>t0J&+4OeCaB2fae z9;NLyBlJ#i7Sq4049$|8u^ExV0ajqt2~ch#+g2~Sc4m^n4%z1=2gz=~GN_s`cLek> zX_uP6f-`0KT$llN+UjsLNAS)hc-vJvSqs188WM?ffQD=xL4a(Fs&I$#pNeoBh<^ax z^Ug*ODIGSN(+8z|u|D&LA}pI)WWV_nTzq8D1T zu2MItr?xgbl#0uL2=SD%QmpKUOn(YJF+|6((!Qlz)fHWvY9L!*6rZ1jWrcc^^%ksx z7ocpv$CxNG4wxNxspAmn0OkP7OZ>#Rw0!EkO^Ck;Eme@ z#DP#J8!^_5F}HPqPp2U5%J!}To!hpkUuF@j8TyC;S35vz8`$7wgI)rZaeoA_l-zj^ zz~w&$T@FBGGhg(%g>2cd82KG|n(>K}B#_8YxjoOGhS^3Q*_HJ4b2EUJ>Z7xK-u9{R z7P5kKRAXel!*>DR{i?LT5;JxtRmQ*LWDw>6+PQXy2<}oJcVhe%7(I2oI6&lql5Axh zVaIGRio1sdaa7zGkR&F`Mlbrw|fjdNhg$`faK+WLj zq*omSBN#o6%Z#nP?CO=Py+`r%vt*%qsOJF44q$imyr9V%p7*P80A$SQJq+SNm%fxd z2wH`z?6CUarosU-#&59NN4j($1<%Irna2Aa#FMbC1MCWm56v<@Crjc;3CrrR%mK0l zaaTm!;#o4iAKZ-Sa0>^>)b|z6Qu&LXDtOU6eHZXovEz%JyYXK+zz^T}2Un(D-DW)} QB>(^b07*qoM6N<$g4Qnz&;S4c diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_40.png b/assets/dolphin/external/L1_My_dude_128x64/frame_40.png index 369200345db3985d5b105b40ed3ba37e3a0ea311..ac0c428349ae84f4af9761d50ead0c97255591a1 100644 GIT binary patch delta 661 zcmV;G0&4xq384j$7=Hl(0002`twPcO00L-9L_t(|oaK_uOB8V!$G^|d-|8@JG|?^v z8cjqc8-gAb52k~(gp{~c)7!-*=+MhKf+VL93JNMB@({HcRLo?qltKwP9-@N>A$-{& zYM_&=u~Vdu?)aMyE4Ayt&~tenzI^!b@bHj{(jt9bz}E-=Cx4L-l@j7gg|QY`h5qLK z+CYVyQq}iThv*STiG!3fz1X3CZQ5X|&Ob+D@Nk)H7dy%ymE&ZwqusB7Uc5&;BjZxC zi0}eAc&8T;aWYzZiyVpz(9tugzeM$JM-%-^R$&k7Nb@=ef$Iwfa0{{1iC7&}=Q)Bg z4P?^(RwJqcPJhlvrW&MUJ|Zy#a2k^E!yeZ)?Hu2%0P3<1^mOt5J^L)kckv6GEMV56 zSHC4dccqM?&e{09mw!xY>{+t+c9SaZXW)P0^+P)EPd{9?Yx8wA04Nbc^-Sf>3i4=s z(gFApiCTs`eE|5;HV;r-VdACmxzV+}@wfnZT;(f60Dr(_n(PKA9qM>Ac3IL!NguNf z2Gh*4fnZ5|b5~3`YnsfmvRl%QcTatixAM0vi%eR*{y-Z$=&6pCX>>txB_C2{Lz?Zd zr!Q7{K0iwfa^eHt?r<^HDFdXlY$SC)1z^$X3VR?Eo}?@!0F2ZQ%MkoRYc?VW2>?$k z2g6>D`hO%(3bpV0a-;EQ;7I^~%~m*Ta~tlQY8LJ`FVE|Dt}@t56Kd{+pG>=gkB@g> zgXH6JbYkYvh!aqsq}kw;S7S74L$e)cAh7_x4E|D-O@F00000NkvXXu0mjfE(J4a delta 1217 zcmV;y1U~zr1<47J7=H)`0002e)_;Eh000SaNLh0L01FcU01FcV0GgZ_000DgNklwDT+xDfn*36eJcG zzn+u3pI`f}_>~HP6uEc(*I)_~8x)|P*REyYdjg-oZ|Hd*%8b>J@$?fENwcnb{Lk{s zgs%)F(B#(Qd4I;sxjobTAx(EWPb2usKmtuJlH>@pnh$A)kHS()IZh%_A$pBa8wqI^ z#8-y+zg_{NcRW{?nQ>eZ`1nu4k9Y>Ku(cyK!?YR$ZGx=L@G%OYB_A-&qYuGDL*fZ z==F{ATd4%q&}RJiDZm=co$e~?>^yl6NzjPz-dL;QcHR~=eDO)Ui!W~{Egr4ws8uO1 zrTlkrsh{21t#z$9h}J5o$A9yC0BI|BytkA2oPS>Oy}Q(7D2JAzn_^{is0yGZJ)#q3 zVtPey@sO`I)0#Mgp-NkEM-#j>5-VgLExJs`DjR8*-W*g_(B|K!0FjGYL83*^ypt_% zE#>R^=qW;U(YfDO>*TCcD=4JsS~3trcc7f(HH4dN2CKPuHUak=@@rr(2yf9_Nn2rc zJ%3N5Jx~9OBILH$ifeZhJWs%{fe3j|5LQxq&0r;#bMTsH{>+Z#YmD4hhp?3Ke+65l zkf6}wBj%BD&sww1Q+;G@f;R=Q7LV>|Z*Ze#-G0#Vy*Vh4EKTs{KUx8hAbQ0;sSva4 zXlt+BJYfoux%d%Hu)`vDY_%P?f#FX9R)4S>dCLzvFQZxfwev`PXx?Y)_YhI>l8jUU zuOhUrowQzFv~edCK>8)39|e#ncPc<{hjV^1@fGWVT5G4tL$0B%ZRLfJk0}1E0!Y6^ z6#EP?Dtm|$SOw&!HOjw$1wX{69M64@&xxo%5dJ#n}Et}edx*Ze;~WD`Uc z-&$|h5XEWbhZj%IM~mPoR)nHTztE?E-t}y#6=v2}E8H&sJRT}PtCep+#Q2<o^@RT0e!aFFKfPL3@+)t;HYB!`m}}v{JBVfY$h*_4fbE6}k6C fS(bQ^dT90sAA)%(Wh!_*00000NkvXXu0mjfMzBbE diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_41.png b/assets/dolphin/external/L1_My_dude_128x64/frame_41.png index e0f882268275af59257326019b77b30c145070ac..18fa9c0a16eecf070140bee87f4502789bb6d9c9 100644 GIT binary patch delta 777 zcmV+k1NQvr36utq7=Hl(0002`twPcO00P@dL_t(|oL!MYXdG1>#()3UH|}I3&02Ot z4@x%|O%o3yjTB1BB1S=|Y;d0q1kDz2UIo3yNj)ePL6C@0!Kp=9W~4?h9@@hMiU$`& zl*B!#EO<$~NnD}3Y_gMi9%grI`)=>!_kaKI`hxJ>X_k{Ef1hSp8615b^vIR+W;|YwWd6PZq=`XHd0vI z1fXLa13FYQpMR~*% zYjS9coy}Tcumh_EY{R-%tb$^*%!vk=N%Vk&3t&f>PN{qer z{4`R&Eu}Oqy=2)zd{;5}n=rqdD3J=vn+9O}a$>&|?~0$_tE7Zj8j^EL#cG=6jh^TA zrFMC(q;mi^+J!_Gb+%hm07sX4fPCfV_vTIk9Gvh0S;*Cvo?Znw8Y@$5N+9#MO`L{% z*2}eZsDIAf(5bPw6}mkMocO|1O#tpZ`Gt|FfZJUl9Ok5YM!+LWz1=xv0JZ(zRWHI+i74R|gn-rSWM^|2Q+hA4Z z6}7KF?wH4-z6&H|jMK+-%nEA4wlh7R=v-XXbAKHpQ}5^aC5CH1U5s_T)#RfO4m?R> z^F#B)clCvnZ5o*!|B}tVHXltrr{8wZlHJ!kAioCG|Iq6?rhAXW(y^nzjm$^#!U;<& zf_raXbB)?V|MAVI8x`Qa za`6@$R@8?77ML+be*V)YkRv^{neGce2uMTLXBVB9Wbqo1A~V0#K4iW480N z=etq?C^@?zo1d=&9EcMXVC%mEP6l=&ZoT~Ac7z|^E9L*zAdvRAl4q%1UIW~A9ITM> zt`;C(16ViZC4cEuM0v8#vy}pPjc)b71*3V)Zo@SIg;(BN^PPy%JdS9?e+76pZz1b+ z^f)1Fp6LpJ+ule&9W*3!BZB5+a7s4YnNt;DWRRSQ9ppUHZu1;~%b=4$?QiX8 zHP2rKNCbDxwSsvy&)X`%ZA#GUx4Z?|@2%id;kAD?&woo5AdAG^a9R*dsR2rPekDpt zpk$ng)105G0NzbT`+W+g1p$D+2FNm+8(;AW&L7RMr8PeZEakUTuxwk6!~HpM^WO?9 zPh3(=s{!z$)F_X$IcG`^)@p@Y5OG!=$Bi!~9u$unAYyD37P-3-l(Q*ky+r}2fjx3g zK^3JHJb$+;fTV_&OdrwyC;(?nZ>IMYgw&o}kil<{)2SVAytpOPx!Qml7csK6*;}CT zL+|4jqbK9(c=kDfX1vxfLzZrbRq;H@l2!vqlXHu-?t7hnv-7#kqt`1ed|LX^_0$?b zGJIqK!jW{d67-(cQMu>vPyo$n+Gb{YtM<4BJ%7#{p{%&yo0A_285vKVuFZP`B&W;@ zf>!dqIiomaEh?>ZV@+V)Zz~8!9>45&0oX{7vAr_SjXM?GzUlo;r$&?W@oiv5Z)90E zDUpV8q7rDqyVB`g`|CMC#7K<<>v)N<6P;f%I|%T)uJKd>MrJ%`tVYtUkd$sk5TyS) zSbw_yb^c$pYM|*s5K#baQ`X~w!_AH_#rDo)mz)QJz^wqoTfsfXeDNRj2-N!F|9=lX20RMT6N#21z(S5Dqq_#2WnUCoyi4PM z?iKVtz$p2bg23y1%eb9_AmaE^#yKC)U#~yD4U`7;7=tquuNNf>+qo-taDJT+U#I<> z&jGlNMT0<-?+8)c*j@#Q9z)(aTJ!euul2|4ncfQaF5XfCYD5%Vv`1kr&}!c-aDR$e zKWltR8EsJzJnqe1)FLJ$2)KDY&a-47{?|gpq0$&hhNYHs8lFc=9?37%j%G3f*xv{6 zOx|0#Na(2@q`>LPXe}5c$6>~?%FT!EebfNbO>S_nvC++Nn~Q?3Gb#Y;+?mdfocXGv zQw7LgEP5BlB7uPy0&y%UMd6$UN$I0h*C`L!+EO16+W4jzbQSV9H2BI-lk9 z diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_42.png b/assets/dolphin/external/L1_My_dude_128x64/frame_42.png index a8a23536a433ccddf56e4a82df39dd65f9cece70..86a79df74a988b0d3682bb8588aafb8922393146 100644 GIT binary patch delta 689 zcmV;i0#5y(2)zZ67=Hl(0002`twPcO00M+bL_t(|oQ0B2XcJKsg}*yYWSADoVuHoh zC@9t1r6Tx~DX1VS4eCS@#DYsVy6Hx!qoQD3s2dRk3A)iYf+;EpLLKo3p__uXRtqu< z6)~k|V;Gxs#>K>#xbbZs9KLtX<(?;s?j!C$g8r}2CcJW(3V$sRNt~dI(Bl7k{5Qq( z{s^rUXR6kE;-~kXJ5iTM=I7CFLfiFXwu_L=w!vcy zdXUWdh_YVxgMa7^03t)&n`<1}TW@4U&GrLn0x%-)h8+G9)a0&4ClSk#MJJKyyX`Il z$vG{e)r=?#70CxelB>2iW<+SQ=cytfO7hnInf1cbk$d?7#6=rB5xD2Z8kNk+5Of!7 zIxtYR`pQtM zq-1`Py39>cszYgc3!?<*0DqLYZii_EGpK3 zFDDyUZGRXkqx+{XXmK+BI(hDp^bB~q+c$kSVQ*=)2=V*r1CnzB2P5(`1v_jmi)(V* z2yLu+VDp=(w~7AH4ks~3J#--w;SNNALV;PC~wX{(l6Yb~YJ!+UbcAmVT!rx0;C zj7tU)k=)=l?{S<$#7TY_Z`%PHqIHCG3K56Hc-sze_;i57JAZV5hG-pWIfaNMMZlf+ zCf=q4G@K&XpaW1i$=|30Q1I#$ui+FTk`+O;?$ZGrnZil_1|48l40qX!_Iv9Nz)e1N z{wc-w>JH!)M2NeR@4db!U;huvbzLPhH(2k3Sfz8d9XGwv706)-uN`S!_YM5G4j|o8 zvktI(CwN2$pnrC>^?r!E_1|q5;}V_B-IAY- zb@xocHBOR>ff!Zps*2U=md3wml1`0i=Ox_x^EMXcWyzw+86sLwWHJ0j|QFM^+g1b?FLV2Efv!9}oF@?jBp&3h_e zwbmN-MNQPYvk!~7*Pr|$Q{#`!Hwap>=-IJ^if9e`Wu9y^0VR0o(L zLxYSiHD#k@EjF>yqbaYG~{|jWKZJF^W^a zmJ3^)lO*3&^h4PzZk%#qq~&2MUs>Evk`UA8gVnXxg1Aoo@{?rn|R`>EY