diff --git a/core/.changelog.d/4019.fixed b/core/.changelog.d/4019.fixed new file mode 100644 index 0000000000..69ab9e5f5e --- /dev/null +++ b/core/.changelog.d/4019.fixed @@ -0,0 +1 @@ +[T3T1] Display menu items on two lines when one line is not enough. diff --git a/core/embed/rust/src/ui/display/font.rs b/core/embed/rust/src/ui/display/font.rs index fd410a43bf..04600d7371 100644 --- a/core/embed/rust/src/ui/display/font.rs +++ b/core/embed/rust/src/ui/display/font.rs @@ -308,6 +308,26 @@ impl Font { } } + /// Get the longest prefix of a given `text` (breaking at word boundaries) + /// that will fit into the area `width` pixels wide. + pub fn longest_prefix(self, width: i16, text: &str) -> &str { + let mut prev_word_boundary = 0; + let mut text_width = 0; + for (i, c) in text.char_indices() { + let c_width = self.char_width(c); + if text_width + c_width > width { + // Another character would not fit => split at the previous word boundary + return &text[0..prev_word_boundary]; + } + if c == ' ' { + prev_word_boundary = i; + } + text_width += c_width; + } + + text // the whole text fits + } + /// Get the length of the longest suffix from a given `text` /// that will fit into the area `width` pixels wide. pub fn longest_suffix(self, width: i16, text: &str) -> usize { diff --git a/core/embed/rust/src/ui/model_mercury/component/button.rs b/core/embed/rust/src/ui/model_mercury/component/button.rs index 46f2cd56fe..a68cb4f77f 100644 --- a/core/embed/rust/src/ui/model_mercury/component/button.rs +++ b/core/embed/rust/src/ui/model_mercury/component/button.rs @@ -10,6 +10,7 @@ use crate::{ geometry::{Alignment, Alignment2D, Insets, Offset, Point, Rect}, shape, shape::Renderer, + util::split_two_lines, }, }; @@ -517,6 +518,7 @@ impl IconText { ); } } + pub fn render<'s>( &self, target: &mut impl Renderer<'s>, @@ -525,46 +527,39 @@ impl IconText { baseline_offset: Offset, alpha: u8, ) { - let width = self.text.map(|t| style.font.text_width(t)); + let mut show_text = |text: &str, rect: Rect| { + let text_pos = rect.left_center() + baseline_offset; + let text_pos = Point::new(rect.top_left().x + Self::ICON_SPACE, text_pos.y); + shape::Text::new(text_pos, text) + .with_font(style.font) + .with_fg(style.text_color) + .with_alpha(alpha) + .render(target) + }; - let mut use_icon = false; - let mut use_text = false; + self.text.map(|t| { + let (t1, t2) = split_two_lines( + t, + style.font, + area.width() - Self::ICON_SPACE - Self::TEXT_MARGIN, + ); - let mut icon_pos = Point::new( + if t1.is_empty() || t2.is_empty() { + show_text(t, area); + } else { + show_text(t1, Rect::new(area.top_left(), area.right_center())); + show_text(t2, Rect::new(area.left_center(), area.bottom_right())); + } + }); + + let icon_pos = Point::new( area.top_left().x + ((Self::ICON_SPACE + Self::ICON_MARGIN) / 2), area.center().y, ); - let mut text_pos = area.left_center() + baseline_offset; - - if area.width() > (Self::ICON_SPACE + Self::TEXT_MARGIN + width) { - //display both icon and text - text_pos = Point::new(area.top_left().x + Self::ICON_SPACE, text_pos.y); - use_text = true; - use_icon = true; - } else if area.width() > (width + Self::TEXT_MARGIN) { - use_text = true; - } else { - //if we can't fit the text, retreat to centering the icon - icon_pos = area.center(); - use_icon = true; - } - - if use_text { - self.text.map(|t| { - shape::Text::new(text_pos, t) - .with_font(style.font) - .with_fg(style.text_color) - .with_alpha(alpha) - .render(target) - }); - } - - if use_icon { - shape::ToifImage::new(icon_pos, self.icon.toif) - .with_align(Alignment2D::CENTER) - .with_fg(style.icon_color) - .with_alpha(alpha) - .render(target); - } + shape::ToifImage::new(icon_pos, self.icon.toif) + .with_align(Alignment2D::CENTER) + .with_fg(style.icon_color) + .with_alpha(alpha) + .render(target); } } diff --git a/core/embed/rust/src/ui/util.rs b/core/embed/rust/src/ui/util.rs index 1537a5f520..03c3ea67e5 100644 --- a/core/embed/rust/src/ui/util.rs +++ b/core/embed/rust/src/ui/util.rs @@ -131,6 +131,21 @@ pub fn char_to_string(ch: char) -> ShortString { s } +/// Splits `text` in two lines: +/// the first line has to fit in the `available_width`, +/// while the 2nd line contains the rest of the text. +pub fn split_two_lines(text: &str, text_font: Font, available_width: i16) -> (&str, &str) { + let p = text_font.longest_prefix(available_width, text); + if p.is_empty() { + // If we cannot find a space to split on, we won't split at all. + // It is the caller's responsibility to deal with the extra long 2nd line. + // (Remember, 2nd line can always be longer than the width, anyway!) + ("", text) + } else { + (p, text[p.len()..].trim()) + } +} + /// Returns text to be fit on one line of a given length. /// When the text is too long to fit, it is truncated with ellipsis /// on the left side. diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json index 6b2a1bc14b..76d5edf2d4 100644 --- a/tests/ui_tests/fixtures.json +++ b/tests/ui_tests/fixtures.json @@ -18266,10 +18266,10 @@ "T3T1_cs_test_reset_slip39_basic.py::test_reset_slip39_basic[16of16]": "005acfecee63449fc5aeaf80ce87b444508dc02e091050232e100c5fdf518b8a", "T3T1_cs_test_reset_slip39_basic.py::test_reset_slip39_basic[1of1]": "576d26a4cb02a5924a6dea6b46c6f3082e871339ed400e22e8135f3a8a583b65", "T3T1_cs_test_tutorial_mercury.py::test_tutorial_ignore_menu": "a14c3b143c24b398bd41379d0dd963dd12084a81e6e81e7697d1468ae99124a9", -"T3T1_cs_test_tutorial_mercury.py::test_tutorial_menu_exit": "b58037cf8a9d9f0df9bb59d706d76511cd2a195700ce50617c88185fa53b687f", -"T3T1_cs_test_tutorial_mercury.py::test_tutorial_menu_funfact": "f572c5eb1f9522c137e4efe1820d9a3800c8b43cb1c949416f569a6a1a287640", -"T3T1_cs_test_tutorial_mercury.py::test_tutorial_menu_open_close": "57b5982a004053465ba2c9457e901b428d3dd3eaef3fe3e7da31032b8a0a9c93", -"T3T1_cs_test_tutorial_mercury.py::test_tutorial_menu_repeat": "2f4565aa5dc8b4d6372591267c434cbe48947977775b6d72a0744869b938655a", +"T3T1_cs_test_tutorial_mercury.py::test_tutorial_menu_exit": "d34cd3549e23cc0e34a1e0db0119ba7bbcb073cfd6489a9259723167482c10ae", +"T3T1_cs_test_tutorial_mercury.py::test_tutorial_menu_funfact": "d026824ab581b90d8bbc8d115fdb17a18881bc615bd413dffdf7415d38e8a661", +"T3T1_cs_test_tutorial_mercury.py::test_tutorial_menu_open_close": "66f2666d0f8b2aef8d51c2be44f80a6546c7e5c0e51325eed3c5379c6dcdaaaf", +"T3T1_cs_test_tutorial_mercury.py::test_tutorial_menu_repeat": "064ddc4ec5949ab6a9ba9cdbe5c24989f1b9d48404e9b6502af2f8c2f7d108c3", "T3T1_de_test_autolock.py::test_autolock_does_not_interrupt_preauthorized": "b9d3819c2edd3313c08a39e0f2a1e62289b1084cf5c2275a7fdb005a147e0bd6", "T3T1_de_test_autolock.py::test_autolock_does_not_interrupt_signing": "945e5b4d0f325e3da850dc37c75b175458c4f8d44a50adfac540f171277e04f1", "T3T1_de_test_autolock.py::test_autolock_interrupts_passphrase": "a3e97d19a9b9e966091b25801ad44bfc09d2ca02cf6ed540825a287fc77a353d", @@ -18278,9 +18278,9 @@ "T3T1_de_test_autolock.py::test_dryrun_enter_word_slowly": "a57575ede01f3ed97e0b701061772b6742d5df7df8b8a2e14e60e0702320a7f2", "T3T1_de_test_autolock.py::test_dryrun_locks_at_number_of_words": "3087c9a7481b296cd5c48283ec5f4b69ae251fc421ab2b445324362f3f0665db", "T3T1_de_test_autolock.py::test_dryrun_locks_at_word_entry": "fca850436a8d2d4c22ef25a01e186afde094ef375818e95126153c5e4aa605a2", -"T3T1_de_test_backup_slip39_custom.py::test_backup_slip39_custom[1of1]": "cfb48403af7b3c67c51606072fa1be83497252a9d13ff56318b72f142833e8ac", -"T3T1_de_test_backup_slip39_custom.py::test_backup_slip39_custom[2of3]": "7d31d671fbe5c8cb76e58cff256648599db82d8a55c35c01b6a5db801d7ea6a9", -"T3T1_de_test_backup_slip39_custom.py::test_backup_slip39_custom[5of5]": "e271367931f483a13c2e19bb346673bfe19d973c494c8324b894fb2430c79da7", +"T3T1_de_test_backup_slip39_custom.py::test_backup_slip39_custom[1of1]": "301300dc86bd2b1c484a59a5f70c8d52d94d039ac62444470f416650e33ae812", +"T3T1_de_test_backup_slip39_custom.py::test_backup_slip39_custom[2of3]": "9af5f76e6aec9eb9a67fed534b2eb0f1772f04208369e9b12eeb22daac265501", +"T3T1_de_test_backup_slip39_custom.py::test_backup_slip39_custom[5of5]": "66144676b4021c9672e23e3e23f67dcb5c16b59864a489d4b4a679bc0920586e", "T3T1_de_test_lock.py::test_hold_to_lock": "b2136906b71a65f5e949f79e80f381b44a5b87e59f67f23ee22767abb588dfcf", "T3T1_de_test_passphrase_mercury.py::test_cycle_through_last_character": "647c3264abafcab0cae3878325582d584bca258d0d65ad8391d2e34b67f41db9", "T3T1_de_test_passphrase_mercury.py::test_passphrase_click_same_button_many_times": "759f4b7a9c06322d0a83aec0690da7456538dca361579c7403ec71fce2477798", @@ -18320,10 +18320,10 @@ "T3T1_de_test_reset_slip39_basic.py::test_reset_slip39_basic[16of16]": "34fa7b2ce06e8aee7a4fa59febacbda3a2c93aa75fc5b914b18bb4a595766b5d", "T3T1_de_test_reset_slip39_basic.py::test_reset_slip39_basic[1of1]": "79cc9a6a7ba8d63ada3d3ca69e40606ec4db280b1795bd6db20b01c337d935f2", "T3T1_de_test_tutorial_mercury.py::test_tutorial_ignore_menu": "1da46bd298cc19ceb1e344054808984a044264af254e5c6104e99912ac4edb8d", -"T3T1_de_test_tutorial_mercury.py::test_tutorial_menu_exit": "02aa86a92acad43c0f9d7aca015967da7854e0b571e5bbe61caa8d8f80db4045", -"T3T1_de_test_tutorial_mercury.py::test_tutorial_menu_funfact": "350b8f9a2dad034cab50d334f606cd50e7a574ae5f6396581a2c74aafd5f6f1d", -"T3T1_de_test_tutorial_mercury.py::test_tutorial_menu_open_close": "ffcec7619c54a89522d56b320df1750964c625bb86195066e310b5c2266ce506", -"T3T1_de_test_tutorial_mercury.py::test_tutorial_menu_repeat": "b946daffc5c8e62738ec27afdc614d6d00c722e24112c018bfad571e4ada47a3", +"T3T1_de_test_tutorial_mercury.py::test_tutorial_menu_exit": "8250669856a36de98107aae9738de6358154aaa47d838bac29dd455b1a8b14d2", +"T3T1_de_test_tutorial_mercury.py::test_tutorial_menu_funfact": "46588fb65320a04d558fbbf0eaa1d883750eafe92e8734db00a65e4b375c8d20", +"T3T1_de_test_tutorial_mercury.py::test_tutorial_menu_open_close": "b061d1f83b7b192193f1caa70a86cc68540bb67b3109f52d2cd18c736a9f690d", +"T3T1_de_test_tutorial_mercury.py::test_tutorial_menu_repeat": "4d273b1287b8c04aac4ca4ed579783a249e67e9db62e84089720f7ea023983e1", "T3T1_en_test_autolock.py::test_autolock_does_not_interrupt_preauthorized": "f3c13ecaeeb748e40206c337cc53e73d0cc3c54ea09c4292c0374479da95a7df", "T3T1_en_test_autolock.py::test_autolock_does_not_interrupt_signing": "a28905faec2a54e67df6f9c67a94dd84ed76fc976ca4e8b60bf2cc7f6ce3415c", "T3T1_en_test_autolock.py::test_autolock_interrupts_passphrase": "b77e0edc22959c2d16a403b1742e911e27c7eb2da10736a5969d66583fd04d4c", @@ -18440,9 +18440,9 @@ "T3T1_fr_test_autolock.py::test_dryrun_enter_word_slowly": "d226bbf65da2021a057ee1e3ec99b548475d2fa4a102cfa5e86c84a728103cf1", "T3T1_fr_test_autolock.py::test_dryrun_locks_at_number_of_words": "11a16599f57bd8a4969112cfd9a349df836f0eee99d5ae04b5c6a239868ed234", "T3T1_fr_test_autolock.py::test_dryrun_locks_at_word_entry": "b05a4d9eb62c4cf9faa83965851e4440847d68e28c5118de449d6af15b4d8666", -"T3T1_fr_test_backup_slip39_custom.py::test_backup_slip39_custom[1of1]": "4503071e43c78a687a4f7946a472aeb1d129648e44e03c39a5f316b6e0f061f2", -"T3T1_fr_test_backup_slip39_custom.py::test_backup_slip39_custom[2of3]": "0fc85242e40ec5377f4d747f90bd7476150445f438b1b3237fdc578b06f5be7e", -"T3T1_fr_test_backup_slip39_custom.py::test_backup_slip39_custom[5of5]": "f86672cf199af224c3669b1c0849cfcd879ecb3f19b0b2543c0e48bec4f0c687", +"T3T1_fr_test_backup_slip39_custom.py::test_backup_slip39_custom[1of1]": "8c56aa4e447017000d73188e74ddc0125914510c530cbd4eed3a0fcace1d8378", +"T3T1_fr_test_backup_slip39_custom.py::test_backup_slip39_custom[2of3]": "5c2aa45150b0897fd70f243669d759ac6693f17845f88d893cf0a80e0b44d5b3", +"T3T1_fr_test_backup_slip39_custom.py::test_backup_slip39_custom[5of5]": "fe3a7f7df38a227294b9ed96dee72fde21c7c0c131c3adc871a9a0427395c853", "T3T1_fr_test_lock.py::test_hold_to_lock": "31961b0cba116a3a786e5758e4753f703fb9b8499d4c6cc7bffc8a162de70e82", "T3T1_fr_test_passphrase_mercury.py::test_cycle_through_last_character": "805f240368de40f5d64dc5e07743a4164c9a577ea11ff02af291a4ac83cb99a6", "T3T1_fr_test_passphrase_mercury.py::test_passphrase_click_same_button_many_times": "2d1d8a838ee6f60713349569c6948d9ccb2e5c3a4e8621243b614a1e162b25ec", @@ -18482,10 +18482,10 @@ "T3T1_fr_test_reset_slip39_basic.py::test_reset_slip39_basic[16of16]": "7a629a82cdf7f0055cdcff190897e1c0cee1c8874c11aca5b127cc42df191fb3", "T3T1_fr_test_reset_slip39_basic.py::test_reset_slip39_basic[1of1]": "d762349e62fef9dfb2bedf5d6991f6416168788880e833694c7477848d656e92", "T3T1_fr_test_tutorial_mercury.py::test_tutorial_ignore_menu": "204db8befa27a853788bcd7ae567b83b7d277506057a1bad5abb925849f7df29", -"T3T1_fr_test_tutorial_mercury.py::test_tutorial_menu_exit": "46e27a34d414fe6e2c5665642bbbc789efcb091361bd129f05ec58deeacad624", -"T3T1_fr_test_tutorial_mercury.py::test_tutorial_menu_funfact": "7ab45074491cb3f03676267628544443084f7e7fc32efb6346fd00a7f8fccc3b", -"T3T1_fr_test_tutorial_mercury.py::test_tutorial_menu_open_close": "0100f3195efe6e4180a2ea23f61609924cb575858e92b080b888bf0bfc9e6d9d", -"T3T1_fr_test_tutorial_mercury.py::test_tutorial_menu_repeat": "0e6c3f381ced7ae9401067b4046fe06c7fde3e8f9328e6bced3d2e5df075f678", +"T3T1_fr_test_tutorial_mercury.py::test_tutorial_menu_exit": "021bcc85cf098bea34f7b18a98326dd299bf2e6de4f3fca81b0ae990847a9674", +"T3T1_fr_test_tutorial_mercury.py::test_tutorial_menu_funfact": "1734b0fe9024c25fe35c2d4911c128f2cbbe760af323506bf052ad7a4dd8774d", +"T3T1_fr_test_tutorial_mercury.py::test_tutorial_menu_open_close": "019665cc17f064b88928f1a26fb4efbae96e7d24add624e00fba53067a765ba1", +"T3T1_fr_test_tutorial_mercury.py::test_tutorial_menu_repeat": "28acd4a915fd1b3c03ef366671bc6c32a8fa7a5add00f38133c38fe0beb71d10", "T3T1_pt_test_autolock.py::test_autolock_does_not_interrupt_preauthorized": "305a9fd66f6390c8b4308ab71f514dba2739e0b6d01c4898a77eb7e6a2055258", "T3T1_pt_test_autolock.py::test_autolock_does_not_interrupt_signing": "aa529249c6c7d21d827169d0df3c51c5b01fb7a60d838098769a94a2c5eb1e1d", "T3T1_pt_test_autolock.py::test_autolock_interrupts_passphrase": "0824e53377fcf503fadd9dbb2c7ced09a90fd6b59609223702a38e5498e170c4", @@ -19804,7 +19804,7 @@ "T3T1_cs_test_msg_changepin_t2.py::test_change_failed": "f569b30a08d22a0eb0ee005248524d1eea5a1628dd9be32dd8692d8f27b34c99", "T3T1_cs_test_msg_changepin_t2.py::test_change_invalid_current": "132a0329f43e94423f0241be426612d1f7b13af298fd53145552d56919eee198", "T3T1_cs_test_msg_changepin_t2.py::test_change_pin": "2e4ef1eaf8a0b48856e18a7dacff17c38b573f531b6731da0947aa538e498c74", -"T3T1_cs_test_msg_changepin_t2.py::test_pin_menu_cancel_setup": "a596131e04b11288252167292f6611c4f327a97a7fd307661106932b99dd8e6a", +"T3T1_cs_test_msg_changepin_t2.py::test_pin_menu_cancel_setup": "fb680d2f381b0135ed5da21cb54a825ecd894760cd414008f5bb1be1046bc0b0", "T3T1_cs_test_msg_changepin_t2.py::test_remove_pin": "9b2cc28cd84593a0799a0d00fead8a037a02e618a83f8c31523ddca76d13d4dc", "T3T1_cs_test_msg_changepin_t2.py::test_set_failed": "4a8c7ed7780d1a901dcefd042b28a47ffcd6161729d6aa519628136cacb340a7", "T3T1_cs_test_msg_changepin_t2.py::test_set_pin": "31e24828ceadf86a2b793bb806a0780715cc4f6d727df235f35df28863082380", @@ -20200,9 +20200,9 @@ "T3T1_de_bitcoin-test_signtx.py::test_incorrect_input_script_type[InputScriptType.SPENDADDRESS]": "3e00d5e908ec6e4bb329cea527a4e2548eda55ec942db8f9805836426e7b4bbc", "T3T1_de_bitcoin-test_signtx.py::test_incorrect_output_script_type[OutputScriptType.PAYTOADDRESS]": "3e00d5e908ec6e4bb329cea527a4e2548eda55ec942db8f9805836426e7b4bbc", "T3T1_de_bitcoin-test_signtx.py::test_incorrect_output_script_type[OutputScriptType.PAYTOSCRIPTHASH]": "3e00d5e908ec6e4bb329cea527a4e2548eda55ec942db8f9805836426e7b4bbc", -"T3T1_de_bitcoin-test_signtx.py::test_information": "d5245947731b492a6809ee9a5866c1085c5c1728f5cf4b6abb4def8608033ae5", -"T3T1_de_bitcoin-test_signtx.py::test_information_cancel": "67caf3b19f66898a28df9d946f646b92dac4ebbbda218029cab5aa842d065e57", -"T3T1_de_bitcoin-test_signtx.py::test_information_mixed": "4af60a489986e9d8defdba5b43f2c8f268a3dd3e4ab391f34bcd75f72ae411fe", +"T3T1_de_bitcoin-test_signtx.py::test_information": "7acf6d632cf3c962738bf0cb4e3eceefcaa660033cac9aefc6e82c8cd24d4514", +"T3T1_de_bitcoin-test_signtx.py::test_information_cancel": "6c8de5aa9e4f8f015f8e629f137f7c926a532cb441acfe1f677361141a70c044", +"T3T1_de_bitcoin-test_signtx.py::test_information_mixed": "3123abc7eeea8a39a2cac0259d459d9854d12fbbd5b7c9f9f88013f24971446b", "T3T1_de_bitcoin-test_signtx.py::test_lock_time[1-4294967295]": "5af3799c0b7814d982fa36d00a42f6f82ea54527f3fa2c77d44f899cf1a13829", "T3T1_de_bitcoin-test_signtx.py::test_lock_time[499999999-4294967294]": "667361a8d8cfd5408f87d8f9b35bcd37f32faccaf17636a1783120e799e15ea3", "T3T1_de_bitcoin-test_signtx.py::test_lock_time[500000000-4294967294]": "7381c585cf6b31cff9eb5f95891ca8cb6efd711206a301d5808193613a70ea81", @@ -20824,19 +20824,19 @@ "T3T1_de_ethereum-test_signtx.py::test_signtx_eip1559[True-nodata]": "c9dc599990082bf3a7dd07beec9ad97354265f2f2e73fbc51a5814b5070dca41", "T3T1_de_ethereum-test_signtx.py::test_signtx_eip1559_access_list": "fe02b97c28cec0b8f6c03cd93fe6219b3b732390bb98badf5a6f35a82cb997ef", "T3T1_de_ethereum-test_signtx.py::test_signtx_eip1559_access_list_larger": "fe02b97c28cec0b8f6c03cd93fe6219b3b732390bb98badf5a6f35a82cb997ef", -"T3T1_de_ethereum-test_signtx.py::test_signtx_fee_info": "17a4d8511d786f95410c1cfe55ab6df1c54edd581637839380d504a9a943192e", -"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[False-claim_holesky]": "01a2c3ba8e06b320a7fbb348516ae62e9d99422e2097dd3f5f0a162f839392fd", -"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[False-claim_mainnet]": "d59749c52f8647c6374edd05b70bed5eef46f303059aa090bf6222f8a13985e4", -"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[False-stake_holesky]": "14814ca58bf22c0a6fbdb170b84534601ba3594c914b65ef4e6384cdba595a68", -"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[False-stake_main]": "78e70b2cde765afa66e7ec6d37b0ec3af0ddcfec02e8fe4f09139e1fd25d3d5f", -"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[False-unstake_holesky]": "584092291c0e354f42108c4ed823a1e46d19aae0656ed0eb611efc997f78f3e1", -"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[False-unstake_main]": "3a2839baf13e396eec5b9e60f021c2c404f454b27c5a18808f1e2e5a4312e9e9", -"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[True-claim_holesky]": "01a2c3ba8e06b320a7fbb348516ae62e9d99422e2097dd3f5f0a162f839392fd", -"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[True-claim_mainnet]": "d59749c52f8647c6374edd05b70bed5eef46f303059aa090bf6222f8a13985e4", -"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[True-stake_holesky]": "14814ca58bf22c0a6fbdb170b84534601ba3594c914b65ef4e6384cdba595a68", -"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[True-stake_main]": "78e70b2cde765afa66e7ec6d37b0ec3af0ddcfec02e8fe4f09139e1fd25d3d5f", -"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[True-unstake_holesky]": "584092291c0e354f42108c4ed823a1e46d19aae0656ed0eb611efc997f78f3e1", -"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[True-unstake_main]": "3a2839baf13e396eec5b9e60f021c2c404f454b27c5a18808f1e2e5a4312e9e9", +"T3T1_de_ethereum-test_signtx.py::test_signtx_fee_info": "2bc7b40844af607d43b02b80b9d0a2cc023e33bce589efe22b370b9463d78254", +"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[False-claim_holesky]": "84f51e5dc53aea17bfe4aa4072b6744118d3fa46be251ea1fb972f031b09d8fc", +"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[False-claim_mainnet]": "2f614b4341f41a291effa35bcf81885c27de6c502bd4b104649dd3228e129322", +"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[False-stake_holesky]": "bda2c2a0518ac441bea3f1319d639d7446d573de75b6fc1802afc0bb6dc57f5e", +"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[False-stake_main]": "b93a74ee1f40634f63874c3a0f13a41f4ff17fb9bfc33bf3d65879999eaddd4b", +"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[False-unstake_holesky]": "2d920f023d16a46f3446b26ab2a1b9bce6f31f47a4303da0f5c89ab735512e92", +"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[False-unstake_main]": "36bc665e3acfdc2b5d9f79e92d82e7bc4732f8eabb99372ff4a8f6c89ac061f1", +"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[True-claim_holesky]": "84f51e5dc53aea17bfe4aa4072b6744118d3fa46be251ea1fb972f031b09d8fc", +"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[True-claim_mainnet]": "2f614b4341f41a291effa35bcf81885c27de6c502bd4b104649dd3228e129322", +"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[True-stake_holesky]": "bda2c2a0518ac441bea3f1319d639d7446d573de75b6fc1802afc0bb6dc57f5e", +"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[True-stake_main]": "b93a74ee1f40634f63874c3a0f13a41f4ff17fb9bfc33bf3d65879999eaddd4b", +"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[True-unstake_holesky]": "2d920f023d16a46f3446b26ab2a1b9bce6f31f47a4303da0f5c89ab735512e92", +"T3T1_de_ethereum-test_signtx.py::test_signtx_staking[True-unstake_main]": "36bc665e3acfdc2b5d9f79e92d82e7bc4732f8eabb99372ff4a8f6c89ac061f1", "T3T1_de_ethereum-test_signtx.py::test_signtx_staking_bad_inputs[claim_bad_inputs_1]": "adfe275fcc2caed0137079330cbc85aaccecf9e5fdc0404238db121212124edf", "T3T1_de_ethereum-test_signtx.py::test_signtx_staking_bad_inputs[stake_bad_inputs_1]": "adfe275fcc2caed0137079330cbc85aaccecf9e5fdc0404238db121212124edf", "T3T1_de_ethereum-test_signtx.py::test_signtx_staking_bad_inputs[stake_bad_inputs_2]": "adfe275fcc2caed0137079330cbc85aaccecf9e5fdc0404238db121212124edf", @@ -20899,8 +20899,8 @@ "T3T1_de_reset_recovery-test_recovery_slip39_advanced.py::test_same_share": "d585bf013c0c6526bd9dc17f33bb21c0de19e2d5e653159d5821921f32da2705", "T3T1_de_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares0-c2d2e26ad06023c60145f1-afc2dad5": "03437b32a72c828dbb6365be52090ca3bdabdc969cd8e238b88b8fff868b0417", "T3T1_de_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares1-c41d5cf80fed71a008a3a0-eb47093e": "aca43fcd50b60741f3dda0e06adb01d74c41cf92853368759c476e6fe55326a9", -"T3T1_de_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares0-c2d2-850ffa77": "a3a2bac040945e7114e69d408a8a35d0d1591486f4dc0957ee6efcabd9932b4e", -"T3T1_de_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares1-c41d-ca9ddec8": "9914af5c20bb94696f4ab18ba31cbfff7a3db695a143ae6d0a4cd8fbe3c5e55e", +"T3T1_de_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares0-c2d2-850ffa77": "cab541800fa8f338d6b675b2c9221f2aaf1e59bb82d26394207f2c60d9edf8ac", +"T3T1_de_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares1-c41d-ca9ddec8": "4ba8ff2dac44a5e275bf9c0fe501ae78ff463eb62a04b174cb896a51a48ad8ea", "T3T1_de_reset_recovery-test_recovery_slip39_advanced_dryrun.py::test_2of3_dryrun": "af836476467f13d07ca7689fef5e9703e85f0ec489c0f3528b5fa9ccc9531041", "T3T1_de_reset_recovery-test_recovery_slip39_advanced_dryrun.py::test_2of3_invalid_seed_dryrun": "f238d4b9f4f6d13fb082a2b048a7aed6a3f25281ce637d973f3a3cdfedbb5909", "T3T1_de_reset_recovery-test_recovery_slip39_basic.py::test_1of1": "2fc4b3a3ab644a339238a7291a162b1e1fbed9714cae4de49b7e1e10814af2bf", @@ -20919,9 +20919,9 @@ "T3T1_de_reset_recovery-test_recovery_slip39_basic.py::test_wrong_nth_word[2]": "940e96515bf3a58404844395502a3f41c74458df97cd1fcbfd0a78156ffdb836", "T3T1_de_reset_recovery-test_recovery_slip39_basic_dryrun.py::test_2of3_dryrun": "7df941dabce59246d82e377e5b5c00576d6d28e1235e4e3fbdad805f098d162b", "T3T1_de_reset_recovery-test_recovery_slip39_basic_dryrun.py::test_2of3_invalid_seed_dryrun": "3cde82437fec7d6f0159cd4634c26f915684720c920bd0b529c726be7eb86dee", -"T3T1_de_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Bip39-backup_flow_bip39]": "946b7d98190e282f0a8545a7d11f143a5faa5645485f3c3f224ecbc783a7e55b", -"T3T1_de_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Advanced_Ext-10ea47d6": "72cb3756c7947395bee9bc8560e4d3ea721d88a92c0069fd6a604702876f2021", -"T3T1_de_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Basic_Extend-5dbe8b0f": "1e1001aca0b3f59ca7addc8b93c142671b67028c7e3e8360559ac11f7cd26b8f", +"T3T1_de_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Bip39-backup_flow_bip39]": "c032ff12179b32d6697e490c59d9241bebed0fd5441b6b2094ed090fb6da5d92", +"T3T1_de_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Advanced_Ext-10ea47d6": "1b429e49faa174301507b0f09b178afe06a669225cc5efa64cf1a38335e5767c", +"T3T1_de_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Basic_Extend-5dbe8b0f": "952ca9128d05bbefd897a79bb25c338225d2b4e667d8e7cb7b2aca86f217c6e1", "T3T1_de_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Bip39-backup_flow_bip39]": "f2369b4bc86d59e4bb24f9ffbc8ee622cfcce6aeb8c6329d8c6a887ef87f8df6", "T3T1_de_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Advanced_Extend-8b11c1dc": "c09a20b9fd3a52f1e8d7a0f5a410e58696466ea5e9a3c1f4a57081b6a94dae11", "T3T1_de_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Basic_Extendabl-cc19e908": "1738fd456cc223bc27fb31b4f99e415bc845e3b74b267ae569303277bb2c6098", @@ -21162,7 +21162,7 @@ "T3T1_de_test_msg_changepin_t2.py::test_change_failed": "5f74ac63ce5285be5f34c6f2dd27419408c82d9ddd881ba35f9653c231e36e7a", "T3T1_de_test_msg_changepin_t2.py::test_change_invalid_current": "39586d549775e5f70e69022ab4e4671e21378767b2636eb37830c8bc6facb930", "T3T1_de_test_msg_changepin_t2.py::test_change_pin": "a82af54fa18329dc43c93d99e72d5516639df773f49be6d11ef806dd62ba7242", -"T3T1_de_test_msg_changepin_t2.py::test_pin_menu_cancel_setup": "efa912893b7dc06358d6ed480cde3299d5c8631ffef0c668c74d75dc2a5b0d22", +"T3T1_de_test_msg_changepin_t2.py::test_pin_menu_cancel_setup": "d5914c7176493b1f2f8339e8895389eac4606504ed08f953941c9a6f28345d8b", "T3T1_de_test_msg_changepin_t2.py::test_remove_pin": "017034e61e6872f267ab031df6f858c75ca5a85fce9428630be89f2996cc1a25", "T3T1_de_test_msg_changepin_t2.py::test_set_failed": "3f8b99be1bedfb6f469e3412e6c6dc28ab01ddb54c14d318fa8de5c25223d579", "T3T1_de_test_msg_changepin_t2.py::test_set_pin": "c26019a23456522d7ff39e2ecd80f345013a3dbcdfe69b9062389d66547a69fa", @@ -23608,23 +23608,23 @@ "T3T1_es_reset_recovery-test_recovery_bip39_t2.py::test_already_initialized": "a44ee27c95d20bca090bfe76b46e7fdbffb1f12802a0a80a87e3e22251b3fe90", "T3T1_es_reset_recovery-test_recovery_bip39_t2.py::test_tt_nopin_nopassphrase": "b21b9b245a4b8beb1aa97b2ae215c728e4149164240a477e78b5d261c76bf20c", "T3T1_es_reset_recovery-test_recovery_bip39_t2.py::test_tt_pin_passphrase": "a7753a8d13c62a226921d061839d3db04304fbaee03e82222d23d6fbdb497bc6", -"T3T1_es_reset_recovery-test_recovery_slip39_advanced.py::test_abort": "1da3ba4f179f60728cbe012c56120b2b1adbfd777ee282b802ef7a44a7c53915", +"T3T1_es_reset_recovery-test_recovery_slip39_advanced.py::test_abort": "39299ea1b13527e219399f9c50f6510d5a272b0b72342b65f9e770771d734f3d", "T3T1_es_reset_recovery-test_recovery_slip39_advanced.py::test_extra_share_entered": "5da7f134310e41b1a304a86b2160c00ce2cbeb49e11af3a5f720d0800083f6e6", "T3T1_es_reset_recovery-test_recovery_slip39_advanced.py::test_group_threshold_reached": "d809fa837f26ea930315af0e24ccd13555e13139dd73fbd20d97146e4912de87", -"T3T1_es_reset_recovery-test_recovery_slip39_advanced.py::test_noabort": "bdc0c72734662bed63ee63143ecdb343bfd779e3983e96b13ae33816bcbb294a", +"T3T1_es_reset_recovery-test_recovery_slip39_advanced.py::test_noabort": "4485ec1f2b6025afe85d7e1dd6b0f686086577f126034e85fbb2cf4357d9b3fd", "T3T1_es_reset_recovery-test_recovery_slip39_advanced.py::test_same_share": "bfcc90188c0e704f2b2ee4afd7c616e116493bf0f9ef08aeb006c8eae23e3130", "T3T1_es_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares0-c2d2e26ad06023c60145f1-afc2dad5": "c86b3f84b601aa162ebfa59e49f7a83ece8b3d03f780ca6cffba01e257f9e631", "T3T1_es_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares1-c41d5cf80fed71a008a3a0-eb47093e": "739e3359b4c0d22da0ce39c1949d36e50942fa6855941c19bb5ef8a33b10e63a", -"T3T1_es_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares0-c2d2-850ffa77": "f9e163760798dbd11e0dd188f329cd5869e6025b09f08d6d782c8bbaa7325b94", -"T3T1_es_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares1-c41d-ca9ddec8": "fb053aabd6f466faac3a4603f71a4995756034b3aecd166dbd8861a1f19d78b0", +"T3T1_es_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares0-c2d2-850ffa77": "7f607422a3244d420cc26424731859addf15df0f2ec0561e3f5b267e2d19246b", +"T3T1_es_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares1-c41d-ca9ddec8": "a543c9c0e0e1e14fb8fe8f8711ac0a1f5e3ce9e69b6078c8844dd2d08da947ae", "T3T1_es_reset_recovery-test_recovery_slip39_advanced_dryrun.py::test_2of3_dryrun": "95dc3c3561517b60adb1c2021ea23b9ec11e6b63851e11b4586fbf1762bea32b", "T3T1_es_reset_recovery-test_recovery_slip39_advanced_dryrun.py::test_2of3_invalid_seed_dryrun": "83bbf55f0a13974b9f7832554aa3019ae16d56555f017ecb5130c7594637e775", "T3T1_es_reset_recovery-test_recovery_slip39_basic.py::test_1of1": "e046d946894f3308666456016642ae88826ddcfb4253e7d90f29e410b3dc14fe", -"T3T1_es_reset_recovery-test_recovery_slip39_basic.py::test_abort": "1da3ba4f179f60728cbe012c56120b2b1adbfd777ee282b802ef7a44a7c53915", -"T3T1_es_reset_recovery-test_recovery_slip39_basic.py::test_abort_between_shares": "1f8540603708c55638db91f3cd3a186e096fcc2d98e34428de0d307f7e9f465a", +"T3T1_es_reset_recovery-test_recovery_slip39_basic.py::test_abort": "39299ea1b13527e219399f9c50f6510d5a272b0b72342b65f9e770771d734f3d", +"T3T1_es_reset_recovery-test_recovery_slip39_basic.py::test_abort_between_shares": "68fe498fcf2865e29726b98cf7227a04aa9b363efe50258a45b281868968967e", "T3T1_es_reset_recovery-test_recovery_slip39_basic.py::test_invalid_mnemonic_first_share": "aaafb3665ca17749efcf55d9b865560c9fc7037682cdc6b2eb27a2cb16e93b64", "T3T1_es_reset_recovery-test_recovery_slip39_basic.py::test_invalid_mnemonic_second_share": "530ce8cf762cbb732a1f675fb1380821d8bb8951917d4d74b34047d952354633", -"T3T1_es_reset_recovery-test_recovery_slip39_basic.py::test_noabort": "cd39189f226230308eeba0acb69bc61a47b987d14ec467456f6210d396489da8", +"T3T1_es_reset_recovery-test_recovery_slip39_basic.py::test_noabort": "dee8e259863575dd0a07dce860ab219e8ed545ebe1d97481427f8b5fb7642f14", "T3T1_es_reset_recovery-test_recovery_slip39_basic.py::test_recover_with_pin_passphrase": "4197cae4a38a26edafa852b67130229801a3c4d25863a230dd09ca5182979931", "T3T1_es_reset_recovery-test_recovery_slip39_basic.py::test_same_share": "00faa2c692dd39e72daa257ad1bd645a2658415b2809d8731b77107dfa6f6ad7", "T3T1_es_reset_recovery-test_recovery_slip39_basic.py::test_secret[shares0-491b795b80fc21ccdf466c0fb-ad8c45c0": "52f456554d9c47d36d8c7b4d259b627dcdde0feb9fc4e609e4d7c1fb182b7813", @@ -23878,7 +23878,7 @@ "T3T1_es_test_msg_changepin_t2.py::test_change_failed": "ccadcfefc6c4b8f4e77b25350da107807195b2354a60603b2400516f020dc296", "T3T1_es_test_msg_changepin_t2.py::test_change_invalid_current": "581bde3e9837568342206a6de599d7d65fcc548c1bb30b4483b66c0c42c25bfb", "T3T1_es_test_msg_changepin_t2.py::test_change_pin": "d08a27ec7290cca154cec843581692aa281987dfd9dd2ba9b271a41d43049f98", -"T3T1_es_test_msg_changepin_t2.py::test_pin_menu_cancel_setup": "58597f0ea23dc1b1ba2009cc073df5672385484cdeef261ca6835c3b8d66fc2e", +"T3T1_es_test_msg_changepin_t2.py::test_pin_menu_cancel_setup": "5ec307ed15e23d1b34194bc65dd9fa9db68f959d15b45e6500bbfa77f4261b07", "T3T1_es_test_msg_changepin_t2.py::test_remove_pin": "f39167480c935cd286d4ccdbf25eaa76797ea2370f6507a1c914605120a7b39a", "T3T1_es_test_msg_changepin_t2.py::test_set_failed": "98eeb009e044e3ad3f27630a701f5b39243cd5fe7c8ea43916cfd7c9f35b262e", "T3T1_es_test_msg_changepin_t2.py::test_set_pin": "cd8d5f6ca5fa423cae01ff7a18189304f0feda07d034e21b505bf01ee0f131b2", @@ -24993,9 +24993,9 @@ "T3T1_fr_reset_recovery-test_recovery_slip39_basic.py::test_wrong_nth_word[2]": "5aa9bf8ade52e7c7909ec98f72a1b6daae8960e0dd364ccebc4f8f437aeab5bd", "T3T1_fr_reset_recovery-test_recovery_slip39_basic_dryrun.py::test_2of3_dryrun": "0ba21f8a7dc2554235b60c92981b927d091b0a649f1ddb38bcb2a46b96c163fa", "T3T1_fr_reset_recovery-test_recovery_slip39_basic_dryrun.py::test_2of3_invalid_seed_dryrun": "b4274e13a05ff1edc4d5b6cc5eb3e8707d218dfc9912e1ef804f7520600ef16b", -"T3T1_fr_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Bip39-backup_flow_bip39]": "2950c80e78eb92dbf0db6458fdddae6c9721a786815344c9119bb013b9e0ac7b", -"T3T1_fr_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Advanced_Ext-10ea47d6": "f2252ca4f23a3b3cd6c91da95c67be0d2d10c02aabbbf2c211be892ce36f63e3", -"T3T1_fr_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Basic_Extend-5dbe8b0f": "de344e0f084c7a03443369cc876df8ff08544725027bc853e22c4dbf09de8024", +"T3T1_fr_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Bip39-backup_flow_bip39]": "0331d2470a9f4dbdfaf5b03081d1b0102fd3728f54a48c7c3d14531754250f75", +"T3T1_fr_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Advanced_Ext-10ea47d6": "6e440ea8a39d0d94219fbeb1aa8e4fbcf497db6cc6fd08d173552cfd767b6afb", +"T3T1_fr_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Basic_Extend-5dbe8b0f": "d361e84962e734cce91b34424ee8726083b0707f8f170f431de0d585b12907ea", "T3T1_fr_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Bip39-backup_flow_bip39]": "9affc2740b927e15fe844551c296858006d5dba0d2c8e492a5a44730778d24c7", "T3T1_fr_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Advanced_Extend-8b11c1dc": "f83501fb40b5122f23f2e1b10d76a67bf93dbc67524cb675a86ef985f08bff69", "T3T1_fr_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Basic_Extendabl-cc19e908": "43c381203ff9aafcc18aaef3c2fb5994068f7f0368a296256a9bebca36494b56", @@ -25236,7 +25236,7 @@ "T3T1_fr_test_msg_changepin_t2.py::test_change_failed": "ebb63b62fd00d5c8c74219a7da0d0e6c5268d8508c7a515131e7dac75fcf20a1", "T3T1_fr_test_msg_changepin_t2.py::test_change_invalid_current": "0d0a17776b2978c6e4bfa87433e385ae60d9c20442b7c05f5941345487dc9977", "T3T1_fr_test_msg_changepin_t2.py::test_change_pin": "b87c978b4896a1b6d28467d25c941ece8eea4504a95be8bee9afa8af0d2b77ca", -"T3T1_fr_test_msg_changepin_t2.py::test_pin_menu_cancel_setup": "ef0fca1345fb5bf320a37dd2fadff4b21ee4f8062b19061ca7110e0ef5ef7707", +"T3T1_fr_test_msg_changepin_t2.py::test_pin_menu_cancel_setup": "28e23b960f7b49f8acfa819819a17c4ebdb5b65fb84fd73870462fe44c95a648", "T3T1_fr_test_msg_changepin_t2.py::test_remove_pin": "286040ef10dc2e691fa57615d97686a6d6e713129a2eb879c32479620881b115", "T3T1_fr_test_msg_changepin_t2.py::test_set_failed": "41af53080a9c6b57e4c3b0e9e1c8e75d7122d335be770939602cfb7c2e9868a9", "T3T1_fr_test_msg_changepin_t2.py::test_set_pin": "8deb5558089d7a8e13af17f2f4c3878d5791dbec7e5cf1329c93f7f2571e41c0", @@ -26324,23 +26324,23 @@ "T3T1_pt_reset_recovery-test_recovery_bip39_t2.py::test_already_initialized": "708b1d45065e8456dc4d87f675b4014305d7e197b88b33485c30c10523577104", "T3T1_pt_reset_recovery-test_recovery_bip39_t2.py::test_tt_nopin_nopassphrase": "11695d9558609863cb0f0d013d5281bb3d2fc9adf7394e702ad8fc492a3b5ed6", "T3T1_pt_reset_recovery-test_recovery_bip39_t2.py::test_tt_pin_passphrase": "a953c6699a75506582bd667caf4d22c2cdbda06fb76f05ec05958239ab2348de", -"T3T1_pt_reset_recovery-test_recovery_slip39_advanced.py::test_abort": "c56a99597812da647d0d19b3661c41986b2dd7bad468efde08995b74d3ec399e", +"T3T1_pt_reset_recovery-test_recovery_slip39_advanced.py::test_abort": "e6fcd4408cf3cb94267e9aab685f4b0e0847e307898dcd25a0e743490db0996f", "T3T1_pt_reset_recovery-test_recovery_slip39_advanced.py::test_extra_share_entered": "5ba998a1746d6e650c051be14469388ad39399324d65910610433cd53db3b897", "T3T1_pt_reset_recovery-test_recovery_slip39_advanced.py::test_group_threshold_reached": "1e3806a2607baa341068ed455cd50aad6aecc33601885aa2c11178e0414a012b", -"T3T1_pt_reset_recovery-test_recovery_slip39_advanced.py::test_noabort": "ed15638aa6e324181a37e0ec2ec5b31c4dfeb1b926ceb0c1225048fbb81a4b42", +"T3T1_pt_reset_recovery-test_recovery_slip39_advanced.py::test_noabort": "525a45ddff3d1a842b2cd6f99e1a59a98de51c579cc9cf5a0a6a434396615aa0", "T3T1_pt_reset_recovery-test_recovery_slip39_advanced.py::test_same_share": "a214ad790a1e16d9cca4637678c57479e3d88cd75ef7e04433628dd77c4b3132", "T3T1_pt_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares0-c2d2e26ad06023c60145f1-afc2dad5": "cccd1da03a7bc17af8c4cf47f76b36b70c9e8378478464f397616fa726f5835b", "T3T1_pt_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares1-c41d5cf80fed71a008a3a0-eb47093e": "88281d62551233bcb18fd7f3f634fe9ea7ec86bff9124b7474daa191ba65618c", -"T3T1_pt_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares0-c2d2-850ffa77": "c30dce534cc3eddf6bfa4a6a9f7bc0ae049c4f6eaba35a52a28fa3175da64c8f", -"T3T1_pt_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares1-c41d-ca9ddec8": "adc64792859f7643699ef441e14229095aadb514103fda9b861fcad93ec6cecf", +"T3T1_pt_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares0-c2d2-850ffa77": "5819080ca921144d8aff529f779bfc8a07d4eb4c18fcdcabcef8d01f5a8258d8", +"T3T1_pt_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares1-c41d-ca9ddec8": "b8b85fbcd733801a738b79ddbef7995ebb88c4a0b921b12491ca1e517121554f", "T3T1_pt_reset_recovery-test_recovery_slip39_advanced_dryrun.py::test_2of3_dryrun": "69a829ec4883af360f9fcf46d507dccd1fdb38cfd93612f9033ce3814a338f4c", "T3T1_pt_reset_recovery-test_recovery_slip39_advanced_dryrun.py::test_2of3_invalid_seed_dryrun": "b56fcb93d67b45cc8de51a31d45ef2c49caf87a98247b2c832342ae89b4613f5", "T3T1_pt_reset_recovery-test_recovery_slip39_basic.py::test_1of1": "cf07de9c662e9d09230f66a5009444bb59177765eb6be4f57dddb7b788ed8b4f", -"T3T1_pt_reset_recovery-test_recovery_slip39_basic.py::test_abort": "c56a99597812da647d0d19b3661c41986b2dd7bad468efde08995b74d3ec399e", -"T3T1_pt_reset_recovery-test_recovery_slip39_basic.py::test_abort_between_shares": "833a068f5f0a1d8fff4ee9bfbda87050d292716522c9f695944f0e32a538d342", +"T3T1_pt_reset_recovery-test_recovery_slip39_basic.py::test_abort": "e6fcd4408cf3cb94267e9aab685f4b0e0847e307898dcd25a0e743490db0996f", +"T3T1_pt_reset_recovery-test_recovery_slip39_basic.py::test_abort_between_shares": "895f0363c07ac6e6af4de9d3ddf2c301b670d7a33271f57cb7d3c323c93586f1", "T3T1_pt_reset_recovery-test_recovery_slip39_basic.py::test_invalid_mnemonic_first_share": "b9240f68c18f0d1c50e4a2fdbd7a10851abbfa2c891faa74084de5f9a0a93155", "T3T1_pt_reset_recovery-test_recovery_slip39_basic.py::test_invalid_mnemonic_second_share": "747968e348a7ef4aa6e645a8b5aa3c9027d43cf5b71e689bc373ce9492129630", -"T3T1_pt_reset_recovery-test_recovery_slip39_basic.py::test_noabort": "b5abfb9e2c24e56971d230861b18c9cf9b85e6a3c379d334b03f844dc6ceec0c", +"T3T1_pt_reset_recovery-test_recovery_slip39_basic.py::test_noabort": "b8606bec76492b08aed49c49276310129b852aa3f83f9420f80cb960107598a1", "T3T1_pt_reset_recovery-test_recovery_slip39_basic.py::test_recover_with_pin_passphrase": "45195b62b1006777731134823f8e155d66fd38154b0319132b5f41417103a876", "T3T1_pt_reset_recovery-test_recovery_slip39_basic.py::test_same_share": "3d9905258f9364bee0934bde65fb450b314869af28b042dda8dfe36ce50506f0", "T3T1_pt_reset_recovery-test_recovery_slip39_basic.py::test_secret[shares0-491b795b80fc21ccdf466c0fb-ad8c45c0": "6ae69cda58bc0ca54a5d0c2faedc6709f646333b4bbbb6827a3d7ce21dbfc812",