From b37f9a0e24f77de00cf1e44215c796a4cb18ff9e Mon Sep 17 00:00:00 2001 From: GitHub build-firmware Action Date: Tue, 3 Nov 2020 16:39:27 +0000 Subject: [PATCH] Auto-generated configs and docs --- ...ngine_configuration_generated_structures.h | 8 +++---- .../controllers/algo/rusefi_generated.h | 10 ++++----- ...ngine_configuration_generated_structures.h | 8 +++---- .../controllers/algo/rusefi_generated.h | 10 ++++----- ...ngine_configuration_generated_structures.h | 8 +++---- .../generated/fsio_enums_generated.def | 2 +- .../controllers/generated/fsio_getters.def | 2 +- firmware/controllers/generated/fsio_names.def | 2 +- .../controllers/generated/fsio_strings.def | 2 +- .../controllers/generated/rusefi_generated.h | 10 ++++----- .../controllers/generated/signature_all.h | 4 ++-- .../generated/signature_frankenso_na6.h | 4 ++-- .../generated/signature_hellen_cypress.h | 4 ++-- .../controllers/generated/signature_kin.h | 4 ++-- .../controllers/generated/signature_mre_f4.h | 4 ++-- .../controllers/generated/signature_mre_f7.h | 4 ++-- .../generated/signature_prometheus_405.h | 4 ++-- .../generated/signature_prometheus_469.h | 4 ++-- .../generated/signature_proteus_f4.h | 4 ++-- .../generated/signature_proteus_f7.h | 4 ++-- firmware/tunerstudio/generated/cache.zip | Bin 958339 -> 958209 bytes firmware/tunerstudio/generated/rusefi.ini | 10 ++++----- .../generated/rusefi_frankenso_na6.ini | 10 ++++----- .../generated/rusefi_hellen_cypress.ini | 10 ++++----- .../tunerstudio/generated/rusefi_kinetis.ini | 10 ++++----- .../tunerstudio/generated/rusefi_mre_f4.ini | 10 ++++----- .../tunerstudio/generated/rusefi_mre_f7.ini | 10 ++++----- .../generated/rusefi_prometheus_405.ini | 10 ++++----- .../generated/rusefi_prometheus_469.ini | 10 ++++----- .../generated/rusefi_proteus_f4.ini | 10 ++++----- .../generated/rusefi_proteus_f7.ini | 10 ++++----- .../com/rusefi/config/generated/Fields.java | 21 ++++++++---------- java_console/rusefi.xml | 2 +- 33 files changed, 108 insertions(+), 117 deletions(-) diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h index fbef5bbb3c..bfe61d0171 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Tue Nov 03 15:53:10 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Tue Nov 03 16:39:11 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -1024,11 +1024,11 @@ struct engine_configuration_s { /** * offset 541 */ - uint8_t unused541; + pin_output_mode_e boostControlPinMode; /** * offset 542 */ - uint8_t unused542; + pin_output_mode_e alternatorControlPinMode; /** * See hasMafSensor * offset 543 @@ -3755,4 +3755,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Tue Nov 03 15:53:10 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Tue Nov 03 16:39:11 UTC 2020 diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h index 01cabf2f56..a66e192958 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h @@ -59,7 +59,7 @@ #define alternatorControl_periodMs_offset 1730 #define alternatorControl_pFactor_offset 1716 #define alternatorControlPin_offset 665 -#define alternatorControlPinMode_offset 666 +#define alternatorControlPinMode_offset 542 #define alternatorOffAboveTps_offset 2028 #define alternatorPwmFrequency_offset 2256 #define ambiguousOperationMode_offset 488 @@ -156,7 +156,7 @@ #define BOOST_LOAD_COUNT 8 #define BOOST_RPM_COUNT 8 #define boostControlPin_offset 988 -#define boostControlPinMode_offset 989 +#define boostControlPinMode_offset 541 #define boostCutPressure_offset 2132 #define boostPid_dFactor_offset 1000 #define boostPid_iFactor_offset 996 @@ -1208,7 +1208,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD hellen_cypress #define SIGNATURE_DATE 2020.11.03 -#define SIGNATURE_HASH 4062995634 +#define SIGNATURE_HASH 654766653 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1526,7 +1526,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.11.03.hellen_cypress.4062995634" +#define TS_SIGNATURE "rusEFI 2020.11.03.hellen_cypress.654766653" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1561,8 +1561,6 @@ #define unused2508_offset 2508 #define unused2536_offset 2536 #define unused3328_offset 3328 -#define unused541_offset 541 -#define unused542_offset 542 #define unused6312_offset 6312 #define unused744b25_offset 744 #define unused744b4_offset 744 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h index e1843facc3..2056885285 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Tue Nov 03 15:53:08 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Tue Nov 03 16:39:10 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -1024,11 +1024,11 @@ struct engine_configuration_s { /** * offset 541 */ - uint8_t unused541; + pin_output_mode_e boostControlPinMode; /** * offset 542 */ - uint8_t unused542; + pin_output_mode_e alternatorControlPinMode; /** * See hasMafSensor * offset 543 @@ -3755,4 +3755,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Tue Nov 03 15:53:08 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Tue Nov 03 16:39:10 UTC 2020 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h index f2e11691a1..c23b3cae6f 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h @@ -59,7 +59,7 @@ #define alternatorControl_periodMs_offset 1730 #define alternatorControl_pFactor_offset 1716 #define alternatorControlPin_offset 665 -#define alternatorControlPinMode_offset 666 +#define alternatorControlPinMode_offset 542 #define alternatorOffAboveTps_offset 2028 #define alternatorPwmFrequency_offset 2256 #define ambiguousOperationMode_offset 488 @@ -156,7 +156,7 @@ #define BOOST_LOAD_COUNT 8 #define BOOST_RPM_COUNT 8 #define boostControlPin_offset 988 -#define boostControlPinMode_offset 989 +#define boostControlPinMode_offset 541 #define boostCutPressure_offset 2132 #define boostPid_dFactor_offset 1000 #define boostPid_iFactor_offset 996 @@ -1208,7 +1208,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD kin #define SIGNATURE_DATE 2020.11.03 -#define SIGNATURE_HASH 2737856072 +#define SIGNATURE_HASH 1981466823 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1526,7 +1526,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator true #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.11.03.kin.2737856072" +#define TS_SIGNATURE "rusEFI 2020.11.03.kin.1981466823" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1561,8 +1561,6 @@ #define unused2508_offset 2508 #define unused2536_offset 2536 #define unused3328_offset 3328 -#define unused541_offset 541 -#define unused542_offset 542 #define unused6312_offset 6312 #define unused744b25_offset 744 #define unused744b4_offset 744 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index be855cac01..dbd9e7fa08 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 03 15:52:58 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 03 16:38:56 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -1024,11 +1024,11 @@ struct engine_configuration_s { /** * offset 541 */ - uint8_t unused541; + pin_output_mode_e boostControlPinMode; /** * offset 542 */ - uint8_t unused542; + pin_output_mode_e alternatorControlPinMode; /** * See hasMafSensor * offset 543 @@ -3755,4 +3755,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 03 15:52:58 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 03 16:38:56 UTC 2020 diff --git a/firmware/controllers/generated/fsio_enums_generated.def b/firmware/controllers/generated/fsio_enums_generated.def index 53f780395f..e25cc8f505 100644 --- a/firmware/controllers/generated/fsio_enums_generated.def +++ b/firmware/controllers/generated/fsio_enums_generated.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 03 15:52:58 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 03 16:38:56 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer FSIO_SETTING_FANONTEMPERATURE = 1000, diff --git a/firmware/controllers/generated/fsio_getters.def b/firmware/controllers/generated/fsio_getters.def index f1a1af7410..e77caee018 100644 --- a/firmware/controllers/generated/fsio_getters.def +++ b/firmware/controllers/generated/fsio_getters.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 03 15:52:58 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 03 16:38:56 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/fsio_names.def b/firmware/controllers/generated/fsio_names.def index 8ca6cbfc5b..f01ec31c14 100644 --- a/firmware/controllers/generated/fsio_names.def +++ b/firmware/controllers/generated/fsio_names.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 03 15:52:58 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 03 16:38:56 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature"); diff --git a/firmware/controllers/generated/fsio_strings.def b/firmware/controllers/generated/fsio_strings.def index ad930664d4..e030ff3478 100644 --- a/firmware/controllers/generated/fsio_strings.def +++ b/firmware/controllers/generated/fsio_strings.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 03 15:52:58 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Nov 03 16:38:56 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index ebf7e21fa3..e42df73e59 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -59,7 +59,7 @@ #define alternatorControl_periodMs_offset 1730 #define alternatorControl_pFactor_offset 1716 #define alternatorControlPin_offset 665 -#define alternatorControlPinMode_offset 666 +#define alternatorControlPinMode_offset 542 #define alternatorOffAboveTps_offset 2028 #define alternatorPwmFrequency_offset 2256 #define ambiguousOperationMode_offset 488 @@ -156,7 +156,7 @@ #define BOOST_LOAD_COUNT 8 #define BOOST_RPM_COUNT 8 #define boostControlPin_offset 988 -#define boostControlPinMode_offset 989 +#define boostControlPinMode_offset 541 #define boostCutPressure_offset 2132 #define boostPid_dFactor_offset 1000 #define boostPid_iFactor_offset 996 @@ -1208,7 +1208,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD all #define SIGNATURE_DATE 2020.11.03 -#define SIGNATURE_HASH 1004388977 +#define SIGNATURE_HASH 4009186558 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1526,7 +1526,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.11.03.all.1004388977" +#define TS_SIGNATURE "rusEFI 2020.11.03.all.4009186558" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1561,8 +1561,6 @@ #define unused2508_offset 2508 #define unused2536_offset 2536 #define unused3328_offset 3328 -#define unused541_offset 541 -#define unused542_offset 542 #define unused6312_offset 6312 #define unused744b25_offset 744 #define unused744b4_offset 744 diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index 4e66e4750f..e766baf34f 100644 --- a/firmware/controllers/generated/signature_all.h +++ b/firmware/controllers/generated/signature_all.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD all #define SIGNATURE_DATE 2020.11.03 -#define SIGNATURE_HASH 1004388977 -#define TS_SIGNATURE "rusEFI 2020.11.03.all.1004388977" +#define SIGNATURE_HASH 4009186558 +#define TS_SIGNATURE "rusEFI 2020.11.03.all.4009186558" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index 6cd92a05e6..bc12bcf125 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD frankenso_na6 #define SIGNATURE_DATE 2020.11.03 -#define SIGNATURE_HASH 2913825674 -#define TS_SIGNATURE "rusEFI 2020.11.03.frankenso_na6.2913825674" +#define SIGNATURE_HASH 2022171909 +#define TS_SIGNATURE "rusEFI 2020.11.03.frankenso_na6.2022171909" diff --git a/firmware/controllers/generated/signature_hellen_cypress.h b/firmware/controllers/generated/signature_hellen_cypress.h index 6c503e520d..18572c6bcc 100644 --- a/firmware/controllers/generated/signature_hellen_cypress.h +++ b/firmware/controllers/generated/signature_hellen_cypress.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD hellen_cypress #define SIGNATURE_DATE 2020.11.03 -#define SIGNATURE_HASH 4062995634 -#define TS_SIGNATURE "rusEFI 2020.11.03.hellen_cypress.4062995634" +#define SIGNATURE_HASH 654766653 +#define TS_SIGNATURE "rusEFI 2020.11.03.hellen_cypress.654766653" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index c6e6dd8454..eb73bc107b 100644 --- a/firmware/controllers/generated/signature_kin.h +++ b/firmware/controllers/generated/signature_kin.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD kin #define SIGNATURE_DATE 2020.11.03 -#define SIGNATURE_HASH 2737856072 -#define TS_SIGNATURE "rusEFI 2020.11.03.kin.2737856072" +#define SIGNATURE_HASH 1981466823 +#define TS_SIGNATURE "rusEFI 2020.11.03.kin.1981466823" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index ebacd6dd92..c2c3c0fae0 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD mre_f4 #define SIGNATURE_DATE 2020.11.03 -#define SIGNATURE_HASH 1408657951 -#define TS_SIGNATURE "rusEFI 2020.11.03.mre_f4.1408657951" +#define SIGNATURE_HASH 2262629520 +#define TS_SIGNATURE "rusEFI 2020.11.03.mre_f4.2262629520" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index 08bacbf1aa..28e0c37311 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD mre_f7 #define SIGNATURE_DATE 2020.11.03 -#define SIGNATURE_HASH 1408657951 -#define TS_SIGNATURE "rusEFI 2020.11.03.mre_f7.1408657951" +#define SIGNATURE_HASH 2262629520 +#define TS_SIGNATURE "rusEFI 2020.11.03.mre_f7.2262629520" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 537a5b6c63..5e9ddf0395 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD prometheus_405 #define SIGNATURE_DATE 2020.11.03 -#define SIGNATURE_HASH 2030421024 -#define TS_SIGNATURE "rusEFI 2020.11.03.prometheus_405.2030421024" +#define SIGNATURE_HASH 2888782511 +#define TS_SIGNATURE "rusEFI 2020.11.03.prometheus_405.2888782511" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index 34f35c3428..eee02624ce 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD prometheus_469 #define SIGNATURE_DATE 2020.11.03 -#define SIGNATURE_HASH 2030421024 -#define TS_SIGNATURE "rusEFI 2020.11.03.prometheus_469.2030421024" +#define SIGNATURE_HASH 2888782511 +#define TS_SIGNATURE "rusEFI 2020.11.03.prometheus_469.2888782511" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index 7122df7c6c..e00a61b401 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD proteus_f4 #define SIGNATURE_DATE 2020.11.03 -#define SIGNATURE_HASH 4067920047 -#define TS_SIGNATURE "rusEFI 2020.11.03.proteus_f4.4067920047" +#define SIGNATURE_HASH 660413984 +#define TS_SIGNATURE "rusEFI 2020.11.03.proteus_f4.660413984" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index b4ff3b9d3d..da25bb17e2 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD proteus_f7 #define SIGNATURE_DATE 2020.11.03 -#define SIGNATURE_HASH 4067920047 -#define TS_SIGNATURE "rusEFI 2020.11.03.proteus_f7.4067920047" +#define SIGNATURE_HASH 660413984 +#define TS_SIGNATURE "rusEFI 2020.11.03.proteus_f7.660413984" diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index 15525e73bc76381a45030c1c5c40ba9828b6cf98..a3ba580b0434c823210a29e004fb187faf4f3e81 100644 GIT binary patch delta 143792 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鍠Uz|jFm2OJ%6bimO8M+Y1oaCE@Y0Y?WM9dLBO(E鍠U zz|jFm2OJ%6bimO8M+Y1oaCE@Y0Y?WM9dLBO(E鍠Uz|jFm2OJ%6bimR5mmJ+j zI22ZkCHW_6`|aqi3;gw127eZk>aiXpAY2zHo3Lyt{>|WWEfC?f)ew=0;NZ~E;I8ZG zO;|#I9!UEPtt1J1^DmSxK^@}5fYJd<2Phq&bb!(UN(U$%pmc!J0ZIob9iVi8(g8{bC>@}5fYJd<2Phq& zbb!(UN(U$%pmc!J0ZIob9iVi8(g8{bC>@}5fYJd<2Phq&bb!(UN(U(2e~Hp|u?eu2>YRAq)Lbxu7^$|Xi1gjQm4@Okt8qs>Mq z(5ZFH1Q8A{1_cg|77iWm-yd%wx;PwGg8w`SGKsrh+bi^XZI2`r3PEHz)ck4kZU#$2|@mUyeMcn0f!2n1EPz^;rXYsWjqcQ;#>qW zv|@)t1i2;RF#l86;Lon}NMz{7V`N_9>(}@XC*r<75u$R`zgDtLxPFiR-nH`QyZs-N z@IyHXI9vpUf167Xvv+FRKG_r`P=9p!l9Pb>vQluMS~KaqVfH_od3{6pLX5zF%u1v zAx2<-{tIUw7y~H2xe39tV<4!;vNUhw{%s5Z3abmuWbn|5X1u z2|{%~B$b9k{dFsRq}6QBzG{7{k|#{f16`H9Lh<*ey0KpFd+Q<*C+US zH~xIb|Dh2+tHlJQs=pp|M&?Ej;0GHm~v?q{s&pU?6CnXaQ86FTt4A^YFw$Uijxn(kf| zCY0oN-T3Q4@;~GKL-()oM5-~9lQ{o9-aqvH8c(X`U#tGS4Tb;S^_Q&F>n9}hU#=dv zJQkd@qnn+#BV>h+NKblwX?_y&Kd1b;05lYaLjjKfA zl7Bfv_3N}O90k6AI_T#ov+HAieQ5mUpo~T=XcZYr9CB#F`gIHZ=i$&o*7bc)27S%K zVdMRK`7f&ddg#ACNDv{dY#c#?pP%6W9Q67V`>#jH`zCCt8Wo8Ux`B%H`}z6v=K6>3 zZ`s#3S8Cg@ZW>5428RUFc!tBw_n)mcIzNZ}pINQ{GHYe`zZYQmedF&v!=d@7m-p+b kBi(}yz3;*1p#I+%g?#Vooa=x6KMW|OLI3~& delta 143378 zcmeI*byQW`8ZdlHVgnoL2I($IDFNy3P6-Jq>D-ivq)05Jq(wkUMNp(Wqy*^_=@gI> zKRn*=UeCF{?-=*}d+L~D=zN|T&tA*5K>dvw`d&1=Q8Xk1IRYgDwFZqHMwAt7tu-dV zsuAykg!KA8G7>csJ`$8mj6x5a3e2_m)oKy4IFj550UnZGq&q9SIS1%5y`D4sl zlDpA3JYpvp>@gvU+hWqZTsqs2YNrDxf0@6i~M znc7*25RG5fImQ;y#d10qf@&96FUHe@wgjeTGNchq@_Awm4ph501byU1ABH*c3%^=P z8hsR@?1{02QFx;vn!Km5=G$@+Mu=2kGJPFwY*BCJGqd2m_B9E|xcV6A+hh69dzGyk z`62zY_1I6*E{JZbC=0eqA)3e@2G8q!%+c8~L?A>(!?d*2nVBD|eMJvn_B!f;kN$X8 zVf32E-__&*k<+}N;jXmGz8x5(>=x{;T}#sa&8OPcNso&rqn^HEzq+1b_q!{j;BX?6 zt;}+UJW7UsR*mYAQ@MecMZ?{`6@03uNDE$jC{Q$>{@PIK?C9gom$aA;(vc&k`Pjl9 z2Lg!K91O!o$%<3)oS0S^d}vNQdz#^ov)!UyV`cJKH%-NT_<}0aoanc4xiKiet0Peo zMT-^cQcD^r?GWfFzOz$OFs2`_se%pjNEMvdrA|K?s#p7FO+ayWo4@)tURs#k4C#Z; zQ~IFe@H+jm&-Prqqc)#r^IxUXrh7<^O>*fW##d5w{1$Ops!7;f3nlt;qib#q3haK& z`uqkq$gIeH%HF8o{h*wl@;P!j510DHRfuM7Ol0P<+lnJW%*_uo1}s$t7SX-rnmJ9v zOPsGG0>c%Q*&JLSRp(zJ_daV@ch7HgDUT+U)x#n}XhBE4B z;a|8QJyv9fo>ddME~+fK8s_lV3i=(sz7>d~9$()#LM!&p1Mc;?XMUeKv-k4r)A4(8 z!d2-=r_Bbws5a|&%Jh;xdtik4qR!GA5=lg?D}UPog;0?|o}7bbx!TV>(-?R7dmg)K zp5=tjB!262+Q2wP2v-B5Gkp&;`t-sfXsb`%)LFaV-R()#9qRZdM;UF2z&v`-(YR@Z zTwAozOL3efP47;^JlzuJV+{BbYurj`Vh~K5>SoVQ}>E)!WXlC-9?d#@b-rF13oqm$)%fH|7#?CQeYI_oFA6(Y3MmmW{>I1$U^ zG=^vioaTntnNF7t7*ESlCL*oozFe0I*orBxzhY8;%zPL)oYubtg;E9*AC))dOuNi$ zC}TN2j*QT+okO!<$-<|n+0kS?4S#DmTQ9cr`9+5eE0Ed8Pk1LJ56s zv0J1a)O4M5QhE-B+d?!W!A&0U{HpwNbcJ-yIZ!*Tt zlI&WltwQ2A!knWt{ux$MwIBVZtZzP)=Y$BoEYA5r;bV;w5mi9v*bvnqE44WIhP1k1fA84!i>h{Va{(HqvZU(M)AHf~` zbUZwCu0wS`Psmz#DEvNRHcn{x^X>Hk#?87G@`oyxA&TXd^=HCt5^B2KH(EqY5S`lw z+Szg+@EEEr85_PJeJ7r7b^ihjk{m{P0quq0l3N8)zIgVkqwv+F+fY+PCb@~n9A%}K zm@0FLa9%dMD$N>$;tK64{f!wDZS?lF6Hi{S@>B-Pe42)J( zqm-?9wP(E7ccSrDbW1!j3SAV|`x9&Jg-zR(2vk-+`Ndn&v7GNc`ttVV>htXY)A98C zL__pcx#}V;Yj+p8k(Mx;E^MfYJ7i+XZfnz{Dg+`WLsI^iJ8V`K*?YcT(H=GW$TkGK zZl>d#_I$*G6tbcXylWh58iiDCI?T-jD>O7ExH`mLQ;(q2$e+DdftjqkD@li%?`1*7 zEgEk7UM9#Ox2ZMSi<6o$hVIkJF-~=bz}!W;iWJ)73sR|P$kkRX zZX?kyrHd_bz!B4q{=sM}D6i^BB^?KN%CM^5JjQGeLL$2e;HjoTC7S#=zD-5@HbWYN z7;8c~5^1TyL8e}#CkMlx=+S1>M$8r2_n+#wQJ!v5tkU9e8{1nli}^{rFh}&#f0_{X zm{^**!0A~~sq++&v9VxrL3_@hD5+k*>0J0WvqwEv2I538uYUI==NRlT$ImA(d_n$X zjlqc~^~bRdtrRzTs`T}zE%M=a+c9N7KYo!os=>l^z{rW7=ppogyZHN{rvj=hirHJt zOdUfQKe{Z&&S!gU0n#$Lk(WxXLZMVIne6NsmY1v-;vj~P5M5@?-BbCQrfTd|K9XcY zF*$xqhc6ui@*f+8i#Uz6Ltop&{BKpXvY#rREX5Qk(bFwT~ zzJh4n>xPLt;!nk6KkQ0o6}8M5^sHXJ;+TuAKiy8*Z?S{4Zevno@mzFoNw)~+FF?&MFk0kVXu$p_-raZBY-`4r((0cOw?|)Z&p3@U7B9Sm z+2r-j1j5%tC+CgtBRcz_ck+Z~foPfy=4W0|U6pJT8(CB?(Vvv~Q1hwmx~f`L3-a|W z>wVe!XH=1pv@9CsoqGI?I*(7aD=OlV#)ITl_Bn6AMY3_yelD!HqQ~Cr^wN0qPHrdo zE311|p4f!ReSHE0FWj7YCML>~<~gF`VpB_&nLIvusJy zwV0t4b3A+1lzB}kzz@=LgApoCHLbrI&HH-7mmwJ3uB-16JI~yWgA>J^!Z+%gCdiNw zYc`fH-5gCzrt!UI!M=3INGn8=s(?|R>Y48{U2T!|J&r5SgpE2q-az;daEY%i;B^j= zr5p|UWxl;?7f69MiaAnhEI6D(Oyf-k!@buXzK&&7xT%i!)ZJs+1#D5B?>$G~AzlM?A}vw*kfm*Og5@)x z+iDDlTZ5X4Mk9*hveMdJgQ5A6dBcy*N(GH=ZVZuq>etVAscb~^mx`p^^q7=lqUImH z>tV)-xxB@W+Fo6qMRc`)_TdXPC@}@a_{_A`C9dW11?+{d z(!ql-Njh}%E1Eyt?sJu`p06m?!|Ft|2VNGOaq6Ae-_og=@r)E^d@^{>uEAGO-gwB@cz^aVp$iW!6dK zar+p`v>83RzN0k#4sZUt#^&a$81}TwZ*K5p%ung10}vT)XL#=N#({Q_&X<@+`c&P* z5s3Vud!anu*N@ThbHZ$y7JJC$EGxx@_a{2}B@e#bA55Uy%2n|^VrJ-5M>J%nhGl15^|t4CWw>HY4b&qoKx_J-`_2{(dr7K`&##-uw&K5T7;Ft&E_ zM|Z||D%c<}x*Vz>-5O>ut>b5%W=VbKzhld!vWB?Ib;tY;>#7ptjv#j6%ZC;M3lb+9 z3LT2#^vE9sinZ*wJ`kfVG?=KGZcbf> z*K+#Q*w!s^^=92Q+V1(l^&(y0a~b+ls3t&epi<>+9PqUV!j zna}WayBs3LHh0I~%)%38944#Y`Y0R7D{mDRux^}Ylnkuk3O#nWgFTPnlEH^^mC(rK zGj?7IChg2G>2ct!*u3Xz2^|!Em3K?0k=)?kv~>SQ=#p1VRDWJhmd|5nfqK^S238v5 zw!B=O?9H_&PMUKvof(b+v^Jlhy%=0ZD<`ca zj)SYkPPt^1IEuRvNBayljeW|92G?poMyL`nwiol^n?_yn~>0W^4-MvO1(A#CqLU6@YE-uwddSj{s7vU0;BLcR`NyN`42 zdUQw%Zk;?mF6zBf3z_22dF!~lZFi=!3X#nh9$h|f3cN)q$e-8;W4YWn5UINGcT0H+ z+vf?7Q*i^RW>~HiKu7vn}VB#oZ8qk6Ynk4cHbWIhFjl-9%e&I1hJgRNx z?>Cl~bb7C4hgxjjj#!su7ptE;np>xWfb6rJgTz(1JXEQ7h0ygvuvJ{XNcUM#Sjj-vsc^VJ31tI7~m{h8Ck5eBf-$J9pKr`DIT$4uRM2i^3Q8j8_bRnQ5j@)59>O* zun$3!<}rjEg3XJ$NO?l{qByn@8oGx?F0(78kfOJVaWA5ztogA#QQ_%pyT`s(6S(d; zL$-5sj>2ofRK&zw#uJ>A@M|>)yra>IFx{M5Y1c$$2M?E{c@oZJ?m&CWbUD;n)8d6Z@Kj1-O zVcotJrLt%_t=*Ik(dDZ~0d-A=4Um*Nn&GVmQS{9G1Bq8}yPe=sy1W(Noo*_TK z?5dGlTzyI`SV$MUAriQ7mBjCr*ocg9(-Eny{bXB@uIXfeF^?q z^TbSOo9iAuQY2>Wi@c{LpA;d@02l@P1Dd?Sj|Dcg(bs6(QX?-PWQoOf-z0F*CSy2nY69uM7&#v!@ZO#3R(3WI@* zyo*dRQtRsGBb+)06uEUT;)^1tmdr&J$WjxH1^sBQ{_`<6G~|jh1uUT%y}=p%r@ zvPnzMh{DAPiRcO!#q2+(xEakMr)6B|AC1{o5VLRZyrm78gpq6(sG5K}6UjPb(Z3Iz3N&;HyB39i7#3 zjUNh)!4XG(4ZV-SVMHPO1~n()QZR>KeET%^N;G{oM*3WnljxiB{Y8a%1^#flhfz2~ z{Nh*?3!``<=MZu-F2&Vq1N>mW+J~Y+U)@Sxma{8E>ajR7Hx6Gn<}Jggk8n#~xOsjs z)0HdAk&`iEkmnHPRz+p&V#l~(to_z|qHA1YLy0n6e>jtPs!l&}=L$WvXL5zeP?M~C z>*2hyu>jc@OQR6ti0khp9R204n|>5YaPO6CViCzcf=8FhhTXXkd01ba14D|?)n;Ve zD!Ep6_Ua3^Yl7G<9zH3~movw?%&i_%?u6gF4ScrJtYOeK9W)xI!0#I^BC&IODg7H! z6U~D~pKlXPpa>`s(Um2O*{5M7eDl)!3eE*^)8@M_=JD4A2XM9PPHHC<@_$v1JHLytmWOvvYuv>m!A9ClyX z)xQlVkNyTtF#S5@riaFk{vhx4y_-&LjviV8GD3{L!Gf-m*fomE!ML6EzEC>hMiIh= z9up$-Ul_S1pRHo!5TKxxM0k%!zd~DrME!=11jQ@x4n0U8RM?&aV`$++tElICmAwSOe_zw^Xh5$=mb00@MLU7 zj%*8@;fDJ#Z5;Q?t{o-S#D|OJf9YcVI%&V3WHNuK zCam49n||?-@W&WEiQ^ZeHwxTL@x#LmsAFb`JJ&+D?!{8l)jp_NSd7~x^h;kDd-(ce z|G7+rmL{4nDSD5RAD-V1rg(b=!7+1E} z!gQJ^kus8k;UA`58}`P*PHDKObbk&vn?s3>@@3F@v5dw`#m{g01M`YvU9|Ifkex;r zy`FWR;jwy) zVMM`&ua;iAyf>FO-_;a)j??{NF;&xB$!$p;GiotdJ1v|TaKVu8;=j{-&x%>8tho6B0;jQ4fUpSthtpa=;L`2 zrY|FcGTZ|@l?xvIvWep=NTfHLhtI&kKY%!$F^M?Wj`~jK^uAURBd(R`^Ov5tv*=V` zOW}DT{DXdku#MM&`YvasY!}Mn4VV{>xW(DX%JoMYDK3I%DYxrp30{)4$IwhOC>8UV zCX;V4VezoNcJLpXcVn&1Dkk;+0H0CJjj5U1S6*T=3aaU|tLckEQ9R0+6HiziwCY5yc4--`ZM`YZl!2@e3=zjbh2VTWz~x( z5<3y9a3Y=X$w?18i7Q^8q*>J}>F^fzj|lfLrNw^k$?$>`J$%f>nvyYNyHjn39Z|89 z!9QA3)5#DZif~iP&3ekV*Y|+PjPnQc{AV0Z^3y~P^{S%+!wz@xA2p4QQY#d}$Syl) zLz2YJixzG2sz{mwE`oQ~1Lx~b$J_`zsFldO&bwkDlv4&*%kB-v8^u15wdu3<`vm@H zULu`)UC2K)Zt{(uTRk?d@1X6OA4Nn|HP0u{;MfQ#Zx^ewGI;X7qxv>jm6=?B82AD^ zA)6tkT@SB7t#r2!UE!9x$7o^7TvX|mH!o!rbk)cb%oPH6*OM&-BpMCfXynH*KF{5Z zuI6~?gmuM*vaH(Rn4pUn-Ov(0v1OHIR82un&1b>tGs(T9__@#h6d!JRyJx`=yLtDp z#f(r*^chNV8Re@d?HGp~Z3GrIYmc=8o*0uAk{gZPWLdf!7SIkm+2qXkqFN&&IzG>? zy!^Ku#DV3V<8E%(HC8cx8o84MxMFDULWU}T@0?vmH(qMtzSjDg$YIdqQ%S)_4mtBr z&2Efio&h5C7~GHbF-xApkMxAX5Me3f3RgJ3^@Z*4@4AG$uB7lL6&Za}CgZTxO*3A( z2-=m{5U)Hv4rhzu6(!WyS1NW~D02T^#IjUPf??41jaop|1VhfQi^U>+*(|=CEgJ=A z=&8-1+}&8kw7O_jD^qE~`5LDCeiJBOJ#IBOpY|ykHw^Gpm`k0GuUKcAF(bIF4>cRG z1#~6vIkLYTmUpU&RXUxo@~L^WiV+er!4Zw&JE_5r>O{2K+`ZCKyCF#a zOc%$C{&NhYl#2e$cy*I);v|CYW;c>rU@w5c;*&1mC@# zEv>mM3#KcG6!{Vf*}t0H`W${+ifKs6DD<<@TkVd@1t>a~RHtU@q1Vn$|IkMZ$1%i& z1Zo2;YTQv|>(P z8oBP48$S!0T0P`@EOxWL!k|yu7XwFnLYYJIMmB;O3t&FfO#)I3%a(@`E~WMDznN{tzI#q&pO?fvjrbMYR@ zmoURkALp1197%hQI3{T^WCFeR@<^nu2k)cj~G3!Rgk@6et(t=xCrO5|+~ zy4}%o#^(3LmGuCAiwhFFA6*aYMjTvNu4n}gpjDa{7DpbNddR7IFg=S7lo6Lo*qO#O zBXj1nzW0raN~Exsn5Xdt!gragox=qADZ^J5%=7y(?`*xG=}9KL&tnf{n||P{hddD` ziCj2`Gk!04MBe3OlMp0LWh2OA@$QrcoubX)=HmwbZx2aqx>AjZlwv2BM>v|DGayeF zn%8^t%_e>4Q7IxUiY7zrDzb8<;!k+Pb5RCu39 z!9m+Ss71bJ^Ri=DQ`NIQxsUx&cbOn=Cgo*BA6Ki~j}$_wo?+&1@cvvvvBK`!j*p)> zNDI5PzxylLbVvMf`dT$Zb&cx-tiETb{QS{^;#dK!)K+7UjYIbyi=W5U9-@a+s#a_@ zaktTj28n)jW@Zc^^|-%8u(I=id%I2c(bF7TvyAP9HCn>OYH0_bBl&pK{vL5=-vds3 z2E(^*1~fl9e~1SbbnXT09kdZp9H=$cW-6Q=pf;?{8HATe+uk2{ z95A*|@fu`z%GD#Vclu0YBi*i@a~C5}d)y1Zz18tU_$$wBvyjXm^9Yol!Ea&v7Dn{( z!h0U)1Otb4ZpOnhq@jf-#OgcOvku&z$fYcu_FU(fd?!C*d`QT<;$G{SgV9gieK56aaW`KU9MJ~tu)$X@ig^)f zKfLy#Rz%DX?UH0XA#MZ%W;$v6g9n{oH_4X5(#L|_(_SVq^v-W13R&7IK>lr9T@^OZ2E^KY@ed^G_LgwZ=eqJ%9AqC z&gJo)dB@^6C3O16aSkmKd$PNv6zQIh2j}}tDLuV`FA57}TD{Y z(b89(fVlQ>Mp`B1RfE;DHIoD8FPbzh#KSkmqoc#)-*(}#hunW+lbA#FIhVG0NA78| z%6Q3g1AYM2OjJbEraNIB=fcO*-IA|g-{opPk*OAnYcKScHK#ymZ*9C>bNA*WiyeN( zQYyR=Vn zp=_8VurAQ>C2sBoV$a!lzMNhTJ?Mkwy9ju{sU#|UR7 z!-UD3=PKx=hKv1G;ncS@ozJjq)a`cW#*4FC*GP)gVH2gj73rc~=!!3!hh+CLklux4 zvmntmw-9Z#j-P#husMFqxvS8PAD767?u@zQOV@q&`QqDkCWvI~ppbkQ+LssQLRCd^ z^|h1eML`;r>~Ee1Iu23`B7OfPS2&F4HJ0^VF`b9ka@>W;NX?AY{7DO?+iUkGfA80m z2NM(VSPEw)RZ39;EEJhyD{60fycsa&8KAS3_q`o!VJPf}n}Lgn4V5MrrBotw9!aZj zi`KeE1tKFFn-IdGN2}HIBZ6o-(mL${+MDUm0{cu^8;@HphBqZ%w>&kc&3F8^P0=wF zC(u`V;~w+VPsdil-o1H80L;5%hJO#CRGO#Dz*p`oSZQ z^k1wxsA>@P@D;sE>1n_wwdkIYo|#&gUiCcV&~9jfahN(+w3E4rNGt*&fGIjUtIj0-r zN({~@O``%4C;oHZ$pHfSIrv)S#zlUD55nG${&5-Kv!E*05S%)p?=kmj{D*?5YGZ3j z858_C@%x{BzV`IM!|s5)SyF=Bylry8L_D)VHgxgm1%^C=Z@+!Z?L#5`gV6s!2Ik!VaM&6zEo^aL5TG^rT0&uy5G7gKa&I@uz(jAhm`MNagaILzC1DUqnorF+wjRWb+XXGalqQ04$G%B5Wj!s;qET1vl#yl zeZ0&>M!tj=B9_S8xFLej8`-C(MDAThJ#8|p|M~zdE7;UGDUPdrG%DLXh*aft<;_Tp zU4@(g)&A|~>?X&By94g;wT5v%D~Mu-dnQNCJBL&mNhq;%k*CA%+^NkPYkGfIglXmS zFCki+?}rj(_I25`Nf~ zw}LX;Uuk2ms>q(Xs48?gyK30$$lLdJZ_++#pp5vji6c3JIe%mpF8#dB=*LUZb}4^M zNEu^fZy`gC40rBLH_hEiLH}?%$6W4$Jl^zk%mw}n(+^oRjyQ|@kNCF^8eJJ@w>Ayy z)!MCzu)fN1SKJ6lXuB(^eci(epk6K$^uAOu0O?4?UiMW)J=ts_%VQB%|2B<9* zSKAM-MNp5{hDQzEd9>blT|07&{9D?qYZVN~mM^abGDIOnVjEH0c5SyGKX2BqQgB5N zZ9U1Nrn~C8uGq2U6nXRNJM=q{=^>_!EkCSRk=ywF-g%|hCkcgOx$kYcp1ftvs`m0Z zY`XzuN#8EN^wj9Q2-xp|zdgBPW|L1{Cvqo29l@Y=f}8ca96kFCD{a{QcJOBGL4}uk z4Qd@c;BayR(aoKg$Kv>W5Rc%#D8FUkLXDF6Y!A`ln6(8CMZ-nYHg0CAdZ|kks#083 zO_U?&5wWK>p@6X{Wf5bX_CT?2cdgShj3ix?Yhu%Pz^1-1R>`$+Xj{<9z-iK|RBL2r zE>b^!?6tP*=%&S(fc7`}Z53}

MVi6b%*=lTj#^5E$~(9fKiy?I_ubFSm=eC(l=T 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 - +