trcc-linux 9.10.2__tar.gz → 9.10.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1160) hide show
  1. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/PKG-INFO +3 -3
  2. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/README.md +2 -2
  3. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/pyproject.toml +1 -1
  4. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/__version__.py +1 -1
  5. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/_base.py +5 -4
  6. trcc_linux-9.10.3/src/trcc/adapters/device/_pyusb_find.py +113 -0
  7. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/bulk_lcd.py +10 -4
  8. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/hid_lcd.py +11 -10
  9. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/led.py +4 -2
  10. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/ly_lcd.py +4 -3
  11. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/scsi_lcd.py +3 -2
  12. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/transport.py +97 -16
  13. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_hwinfo.py +5 -5
  14. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_smc.py +2 -2
  15. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_base.py +74 -17
  16. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_hotplug.py +91 -0
  17. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/bsd.py +5 -4
  18. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/linux.py +34 -13
  19. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/macos.py +5 -4
  20. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/spd.py +3 -1
  21. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/windows.py +21 -3
  22. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/theme/filesystem.py +2 -2
  23. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/app.py +19 -7
  24. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/__init__.py +2 -2
  25. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/_helpers.py +51 -0
  26. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/device.py +75 -64
  27. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/theme.py +3 -40
  28. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/led_protocol.py +2 -1
  29. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/libraries.py +20 -8
  30. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/logs.py +66 -0
  31. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/models.py +51 -5
  32. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/ports.py +40 -4
  33. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/protocol.py +51 -7
  34. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/registry.py +1 -1
  35. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/results.py +25 -16
  36. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/variants.py +24 -6
  37. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/_dc.py +2 -1
  38. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/display.py +2 -2
  39. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/media.py +4 -2
  40. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/settings.py +37 -5
  41. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/theme_directories.py +0 -32
  42. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/video_export.py +1 -1
  43. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/devices.py +18 -1
  44. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/display.py +24 -4
  45. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/schemas.py +18 -0
  46. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/theme.py +38 -5
  47. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/device.py +25 -0
  48. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/display.py +50 -4
  49. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/system.py +127 -3
  50. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/theme.py +14 -2
  51. trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LC14.png +0 -0
  52. trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LC14a.png +0 -0
  53. trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LC18.png +0 -0
  54. trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LC18a.png +0 -0
  55. trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LCO1.png +0 -0
  56. trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LCO1a.png +0 -0
  57. trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LCO3.png +0 -0
  58. trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LCO3a.png +0 -0
  59. trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LCO7.png +0 -0
  60. trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LCO7a.png +0 -0
  61. trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LM32.png +0 -0
  62. trcc_linux-9.10.3/src/trcc/ui/gui/assets/A1LM32a.png +0 -0
  63. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/lcd_handler.py +45 -41
  64. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_system_info.py +3 -10
  65. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qapp.py +21 -1
  66. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/_browser_base.py +17 -37
  67. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/display_panel.py +6 -32
  68. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/overlay_editor.py +18 -1
  69. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/screencast_panel.py +47 -2
  70. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/dashboard_box.py +103 -7
  71. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/video_crop.py +118 -9
  72. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/conftest.py +41 -1
  73. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/mock_platform.py +9 -2
  74. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_architecture_boundaries.py +16 -4
  75. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_audit_release_state.py +48 -6
  76. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_bulk_lcd_geometry.py +11 -0
  77. trcc_linux-9.10.3/tests/test_cli_dashboard_authoring.py +264 -0
  78. trcc_linux-9.10.3/tests/test_command_field_reach.py +287 -0
  79. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_csharp_conformance.py +1 -7
  80. trcc_linux-9.10.3/tests/test_dev_mock_platform.py +87 -0
  81. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_device_quirks.py +2 -2
  82. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_panels.py +265 -10
  83. trcc_linux-9.10.3/tests/test_hidpi_frame_is_dpi_immune.py +171 -0
  84. trcc_linux-9.10.3/tests/test_log_records_are_bounded.py +257 -0
  85. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_oracle_version.py +61 -7
  86. trcc_linux-9.10.3/tests/test_overlay_vocabulary_reaches_every_face.py +205 -0
  87. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_resolve_overlay.py +68 -0
  88. trcc_linux-9.10.3/tests/test_rotation_is_one_reload.py +256 -0
  89. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_screencast_driver.py +105 -1
  90. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_theme_directories.py +0 -68
  91. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ui_parity.py +9 -3
  92. trcc_linux-9.10.3/tests/test_usb_unit_path.py +424 -0
  93. trcc_linux-9.10.3/tests/test_variant_archives_shipped.py +119 -0
  94. trcc_linux-9.10.3/tests/test_variant_assets_exist.py +67 -0
  95. trcc_linux-9.10.3/tests/test_wake_from_sleep.py +239 -0
  96. trcc_linux-9.10.2/src/trcc/adapters/device/_pyusb_find.py +0 -44
  97. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/.gitignore +0 -0
  98. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/LICENSE +0 -0
  99. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/__init__.py +0 -0
  100. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/__main__.py +0 -0
  101. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/_boot.py +0 -0
  102. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/_entry.py +0 -0
  103. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/__init__.py +0 -0
  104. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/__init__.py +0 -0
  105. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/_f5.py +0 -0
  106. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/device/usb_bot_scsi.py +0 -0
  107. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/diagnostics/__init__.py +0 -0
  108. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/diagnostics/adapter.py +0 -0
  109. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/diagnostics/debug_report.py +0 -0
  110. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/diagnostics/doctor.py +0 -0
  111. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/diagnostics/health.py +0 -0
  112. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/diagnostics/install.py +0 -0
  113. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/__init__.py +0 -0
  114. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/_worker.py +0 -0
  115. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/data_install_runner.py +0 -0
  116. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/logging.py +0 -0
  117. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/network.py +0 -0
  118. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/send_scheduler.py +0 -0
  119. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/sysinfo_config.py +0 -0
  120. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/infra/video_export_runner.py +0 -0
  121. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/render/__init__.py +0 -0
  122. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/render/qt.py +0 -0
  123. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/repo/__init__.py +0 -0
  124. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/repo/data_install.py +0 -0
  125. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/repo/github_releases.py +0 -0
  126. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/repo/http.py +0 -0
  127. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/screencast/__init__.py +0 -0
  128. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/screencast/pipewire.py +0 -0
  129. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/screencast/qt.py +0 -0
  130. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/__init__.py +0 -0
  131. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_lhm.py +0 -0
  132. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_macos_hid.py +0 -0
  133. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_msacpi.py +0 -0
  134. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_powermetrics.py +0 -0
  135. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_sysctl.py +0 -0
  136. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/_wmi_gpu.py +0 -0
  137. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/aggregator.py +0 -0
  138. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/bsd.py +0 -0
  139. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/chain.py +0 -0
  140. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/gpu_detect.py +0 -0
  141. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/hwmon.py +0 -0
  142. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/macos.py +0 -0
  143. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/nvml.py +0 -0
  144. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/psutil_sources.py +0 -0
  145. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/sensors/windows.py +0 -0
  146. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/__init__.py +0 -0
  147. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_autostart.py +0 -0
  148. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_desktop_entry.py +0 -0
  149. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_devd.py +0 -0
  150. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_elevate.py +0 -0
  151. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_imc_timings.py +0 -0
  152. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_macos_setup.py +0 -0
  153. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_packages.py +0 -0
  154. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_selinux.py +0 -0
  155. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_udev.py +0 -0
  156. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_windows_wmi.py +0 -0
  157. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/system/_winusb.py +0 -0
  158. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/theme/__init__.py +0 -0
  159. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/adapters/theme/cloud.py +0 -0
  160. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/LibreHardwareMonitor.config +0 -0
  161. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/com.github.lexonight1.trcc.policy +0 -0
  162. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/fonts/MSYH.TTC +0 -0
  163. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/fonts/MSYHBD.TTC +0 -0
  164. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/fonts/README.md +0 -0
  165. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/app.ico +0 -0
  166. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc.png +0 -0
  167. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_128x128.png +0 -0
  168. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_16x16.png +0 -0
  169. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_24x24.png +0 -0
  170. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_256x256.png +0 -0
  171. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_32x32.png +0 -0
  172. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_48x48.png +0 -0
  173. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/icons/trcc_64x64.png +0 -0
  174. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/trcc-imc +0 -0
  175. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/trcc-linux.desktop +0 -0
  176. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/assets/trcc-quirk-fix.service +0 -0
  177. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/__init__.py +0 -0
  178. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/_colors.py +0 -0
  179. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/_frames.py +0 -0
  180. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/_safe.py +0 -0
  181. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/_version.py +0 -0
  182. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/_base.py +0 -0
  183. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/led.py +0 -0
  184. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/commands/system.py +0 -0
  185. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/device_recovery.py +0 -0
  186. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/diagnostics.py +0 -0
  187. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/errors.py +0 -0
  188. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/events.py +0 -0
  189. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/factory.py +0 -0
  190. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/geometry.py +0 -0
  191. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/i18n.py +0 -0
  192. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/led_models.py +0 -0
  193. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/core/toolchain.py +0 -0
  194. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/daemon.py +0 -0
  195. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/data/trcc_usb.te +0 -0
  196. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ipc.py +0 -0
  197. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/proxy.py +0 -0
  198. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/__init__.py +0 -0
  199. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/_clock.py +0 -0
  200. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/_send_task.py +0 -0
  201. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/audio.py +0 -0
  202. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/background.py +0 -0
  203. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/bg_cache.py +0 -0
  204. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/cloud_theme.py +0 -0
  205. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/data_install.py +0 -0
  206. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/device_sender.py +0 -0
  207. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/first_run.py +0 -0
  208. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/led_animation_loop.py +0 -0
  209. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/led_effects.py +0 -0
  210. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/led_segment.py +0 -0
  211. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/metrics_loop.py +0 -0
  212. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/metrics_personalize.py +0 -0
  213. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/migration.py +0 -0
  214. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/overlay.py +0 -0
  215. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/quickstart.py +0 -0
  216. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/screencast_driver.py +0 -0
  217. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/slideshow.py +0 -0
  218. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/services/slideshow_driver.py +0 -0
  219. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/__init__.py +0 -0
  220. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/_base.py +0 -0
  221. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/_errors.py +0 -0
  222. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/_uis.py +0 -0
  223. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/__init__.py +0 -0
  224. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/_shared.py +0 -0
  225. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/config.py +0 -0
  226. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/events.py +0 -0
  227. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/led.py +0 -0
  228. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/main.py +0 -0
  229. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/system.py +0 -0
  230. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/api/trcc.py +0 -0
  231. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/bus_bridge.py +0 -0
  232. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/__init__.py +0 -0
  233. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/_ansi.py +0 -0
  234. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/_ctx.py +0 -0
  235. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/config.py +0 -0
  236. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/led.py +0 -0
  237. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/main.py +0 -0
  238. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/cli/shell.py +0 -0
  239. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/eyedropper.py +0 -0
  240. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/__init__.py +0 -0
  241. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/_ui_state.py +0 -0
  242. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/240240.gif +0 -0
  243. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/240320.gif +0 -0
  244. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/320240.gif +0 -0
  245. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/320320.gif +0 -0
  246. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AK120 Digital.png +0 -0
  247. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AK120 Digitala.png +0 -0
  248. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AK120_Digital.png +0 -0
  249. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AK120_Digitala.png +0 -0
  250. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AS120 VISION.png +0 -0
  251. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AS120 VISIONa.png +0 -0
  252. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AS120_VISION.png +0 -0
  253. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AS120_VISIONa.png +0 -0
  254. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AX120 DIGITAL.png +0 -0
  255. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AX120 DIGITALa.png +0 -0
  256. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AX120_DIGITAL.png +0 -0
  257. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1AX120_DIGITALa.png +0 -0
  258. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1BA120 VISION.png +0 -0
  259. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1BA120 VISIONa.png +0 -0
  260. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1BA120_VISION.png +0 -0
  261. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1BA120_VISIONa.png +0 -0
  262. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CORE VISION.png +0 -0
  263. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CORE VISIONa.png +0 -0
  264. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CORE_VISION.png +0 -0
  265. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CORE_VISIONa.png +0 -0
  266. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CZ1.png +0 -0
  267. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CZ1a.png +0 -0
  268. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CZ2.png +0 -0
  269. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CZ2a.png +0 -0
  270. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CZTV.png +0 -0
  271. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1CZTVa.png +0 -0
  272. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1ELITE VISION.png +0 -0
  273. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1ELITE VISIONa.png +0 -0
  274. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1ELITE_VISION.png +0 -0
  275. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1ELITE_VISIONa.png +0 -0
  276. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PRO.png +0 -0
  277. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN HORIZON PROa.png +0 -0
  278. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PRO.png +0 -0
  279. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN MAGIC PROa.png +0 -0
  280. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN VISION V2.png +0 -0
  281. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN VISION V2a.png +0 -0
  282. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PRO.png +0 -0
  283. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME PROa.png +0 -0
  284. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SE.png +0 -0
  285. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME SEa.png +0 -0
  286. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN WARFRAME.png +0 -0
  287. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN WARFRAMEa.png +0 -0
  288. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PRO.png +0 -0
  289. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_HORIZON_PROa.png +0 -0
  290. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PRO.png +0 -0
  291. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_MAGIC_PROa.png +0 -0
  292. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2.png +0 -0
  293. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_VISION_V2a.png +0 -0
  294. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME.png +0 -0
  295. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PRO.png +0 -0
  296. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_PROa.png +0 -0
  297. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SE.png +0 -0
  298. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAME_SEa.png +0 -0
  299. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1FROZEN_WARFRAMEa.png +0 -0
  300. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1GRAND VISION.png +0 -0
  301. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1GRAND VISIONa.png +0 -0
  302. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1GRAND_VISION.png +0 -0
  303. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1GRAND_VISIONa.png +0 -0
  304. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITAL.png +0 -0
  305. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1HR10 2280 PRO DIGITALa.png +0 -0
  306. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1HYPER VISION.png +0 -0
  307. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1HYPER VISIONa.png +0 -0
  308. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1HYPER_VISION.png +0 -0
  309. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1HYPER_VISIONa.png +0 -0
  310. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1KVMALEDC6.png +0 -0
  311. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1KVMALEDC6a.png +0 -0
  312. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC1.png +0 -0
  313. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC10.png +0 -0
  314. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC10a.png +0 -0
  315. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC13.png +0 -0
  316. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC13a.png +0 -0
  317. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC15.png +0 -0
  318. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC15a.png +0 -0
  319. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC1a.png +0 -0
  320. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC2.png +0 -0
  321. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC2JD.png +0 -0
  322. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC2JDa.png +0 -0
  323. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC2a.png +0 -0
  324. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC3.png +0 -0
  325. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC3a.png +0 -0
  326. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC5.png +0 -0
  327. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC5a.png +0 -0
  328. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC7.png +0 -0
  329. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC7a.png +0 -0
  330. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC8.png +0 -0
  331. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC8a.png +0 -0
  332. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC9.png +0 -0
  333. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LC9a.png +0 -0
  334. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD10.png +0 -0
  335. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD10a.png +0 -0
  336. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD11.png +0 -0
  337. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD11a.png +0 -0
  338. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD6.png +0 -0
  339. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD6a.png +0 -0
  340. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD7.png +0 -0
  341. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD7a.png +0 -0
  342. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD8.png +0 -0
  343. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD8a.png +0 -0
  344. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD9.png +0 -0
  345. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LD9a.png +0 -0
  346. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF014.png +0 -0
  347. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF014a.png +0 -0
  348. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF10.png +0 -0
  349. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF10V.png +0 -0
  350. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF10Va.png +0 -0
  351. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF10a.png +0 -0
  352. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF11.png +0 -0
  353. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF11a.png +0 -0
  354. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF12.png +0 -0
  355. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF12a.png +0 -0
  356. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF13.png +0 -0
  357. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF13a.png +0 -0
  358. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF14.png +0 -0
  359. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF14a.png +0 -0
  360. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF15.png +0 -0
  361. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF15a.png +0 -0
  362. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF16.png +0 -0
  363. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF167.png +0 -0
  364. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF16a.png +0 -0
  365. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF17a.png +0 -0
  366. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF18.png +0 -0
  367. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF18a.png +0 -0
  368. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF19.png +0 -0
  369. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF19a.png +0 -0
  370. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF20.png +0 -0
  371. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF20a.png +0 -0
  372. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF21.png +0 -0
  373. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF21a.png +0 -0
  374. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF22.png +0 -0
  375. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF22a.png +0 -0
  376. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF25.png +0 -0
  377. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF25a.png +0 -0
  378. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF8.png +0 -0
  379. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LF8a.png +0 -0
  380. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM16SE.png +0 -0
  381. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM16SEa.png +0 -0
  382. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM19SE.png +0 -0
  383. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM19SEa.png +0 -0
  384. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM22.png +0 -0
  385. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM22a.png +0 -0
  386. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM24.png +0 -0
  387. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM24a.png +0 -0
  388. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM26.png +0 -0
  389. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM26a.png +0 -0
  390. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM27.png +0 -0
  391. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM27a.png +0 -0
  392. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM30.png +0 -0
  393. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1LM30a.png +0 -0
  394. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir VISION PRO.png +0 -0
  395. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir VISION PROa.png +0 -0
  396. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir VISION.png +0 -0
  397. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir VISIONa.png +0 -0
  398. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir_VISION.png +0 -0
  399. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PRO.png +0 -0
  400. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir_VISION_PROa.png +0 -0
  401. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Mjolnir_VISIONa.png +0 -0
  402. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1PA120 DIGITAL.png +0 -0
  403. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1PA120 DIGITALa.png +0 -0
  404. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1PA120_DIGITAL.png +0 -0
  405. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1PA120_DIGITALa.png +0 -0
  406. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1PC1.png +0 -0
  407. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1PC1a.png +0 -0
  408. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RK120 DIGITAL.png +0 -0
  409. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RK120 DIGITALa.png +0 -0
  410. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RK120_DIGITAL.png +0 -0
  411. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RK120_DIGITALa.png +0 -0
  412. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RP130 VISION.png +0 -0
  413. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RP130 VISIONa.png +0 -0
  414. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RP130_VISION.png +0 -0
  415. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RP130_VISIONa.png +0 -0
  416. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RX1.png +0 -0
  417. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1RX1a.png +0 -0
  418. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Stream Vision.png +0 -0
  419. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Stream Visiona.png +0 -0
  420. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Stream_Vision.png +0 -0
  421. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/A1Stream_Visiona.png +0 -0
  422. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/about_dropdown.png +0 -0
  423. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/about_dropdown_bg.png +0 -0
  424. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/about_dropdown_select.png +0 -0
  425. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/about_update.png +0 -0
  426. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/about_update_overlay.png +0 -0
  427. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_about_bg.png +0 -0
  428. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_brightness_0.png +0 -0
  429. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_brightness_1.png +0 -0
  430. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_brightness_2.png +0 -0
  431. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_brightness_3.png +0 -0
  432. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_export.png +0 -0
  433. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_form_bg.png +0 -0
  434. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_help.png +0 -0
  435. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_import.png +0 -0
  436. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_main_bg.png +0 -0
  437. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_power.png +0 -0
  438. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_power_hover.png +0 -0
  439. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_save.png +0 -0
  440. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_sysinfo_bg.png +0 -0
  441. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_cloud.png +0 -0
  442. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_cloud_active.png +0 -0
  443. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_local.png +0 -0
  444. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_local_active.png +0 -0
  445. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_mask.png +0 -0
  446. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_mask_active.png +0 -0
  447. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_mask_lower.png +0 -0
  448. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_settings.png +0 -0
  449. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_tab_settings_active.png +0 -0
  450. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_theme_base_bg.png +0 -0
  451. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_theme_gallery_bg.png +0 -0
  452. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/app_theme_settings_bg.png +0 -0
  453. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_1.png +0 -0
  454. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_2.png +0 -0
  455. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_3.png +0 -0
  456. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_4.png +0 -0
  457. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_5.png +0 -0
  458. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_6.png +0 -0
  459. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_btn.png +0 -0
  460. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_btn_active.png +0 -0
  461. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/carousel_select_frame.png +0 -0
  462. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_panel_eyedropper.png +0 -0
  463. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_panel_picker.png +0 -0
  464. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_panel_selector_ring.png +0 -0
  465. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_panel_slider_thumb.png +0 -0
  466. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_wheel_knob.png +0 -0
  467. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_wheel_knob_0.png +0 -0
  468. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_wheel_toggle_hover.png +0 -0
  469. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_wheel_toggle_off.png +0 -0
  470. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/color_wheel_toggle_on.png +0 -0
  471. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_12h.png +0 -0
  472. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_24h.png +0 -0
  473. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_border.png +0 -0
  474. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_border_active.png +0 -0
  475. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_crop.png +0 -0
  476. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_date_dm.png +0 -0
  477. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_date_dmy.png +0 -0
  478. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_date_md.png +0 -0
  479. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_date_ymd.png +0 -0
  480. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_digit_font.png +0 -0
  481. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_fit_height.png +0 -0
  482. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_fit_width.png +0 -0
  483. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_function.png +0 -0
  484. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_function_active.png +0 -0
  485. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon.png +0 -0
  486. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon_gif.png +0 -0
  487. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon_image.png +0 -0
  488. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon_livestream.png +0 -0
  489. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon_mask.png +0 -0
  490. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon_network.png +0 -0
  491. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_icon_video.png +0 -0
  492. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m1.png +0 -0
  493. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m1_active.png +0 -0
  494. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m2.png +0 -0
  495. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m2_active.png +0 -0
  496. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m3.png +0 -0
  497. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m3_active.png +0 -0
  498. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m4.png +0 -0
  499. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m4_active.png +0 -0
  500. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m5.png +0 -0
  501. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m5_active.png +0 -0
  502. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m6.png +0 -0
  503. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_m6_active.png +0 -0
  504. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_minus.png +0 -0
  505. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_network_btn.png +0 -0
  506. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_plus.png +0 -0
  507. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_rotate.png +0 -0
  508. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_slider_thumb.png +0 -0
  509. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_text_font.png +0 -0
  510. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_unit_c.png +0 -0
  511. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/display_mode_unit_f.png +0 -0
  512. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/frozen_warframe_ultra.png +0 -0
  513. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/frozen_warframe_ultra_active.png +0 -0
  514. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_110x480.png +0 -0
  515. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_116x480.png +0 -0
  516. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_1280x480.png +0 -0
  517. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_160x480.png +0 -0
  518. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_180x400.png +0 -0
  519. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_180x480.png +0 -0
  520. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_240x240.png +0 -0
  521. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_240x320.png +0 -0
  522. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_240x400.png +0 -0
  523. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_240x427.png +0 -0
  524. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_270x480.png +0 -0
  525. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_320x240.png +0 -0
  526. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_320x320.png +0 -0
  527. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_320x86.png +0 -0
  528. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_360x360.png +0 -0
  529. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_400x180.png +0 -0
  530. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_400x240.png +0 -0
  531. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_427x240.png +0 -0
  532. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_480x110.png +0 -0
  533. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_480x116.png +0 -0
  534. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_480x160.png +0 -0
  535. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_480x180.png +0 -0
  536. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_480x270.png +0 -0
  537. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_480x480.png +0 -0
  538. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/image_cut_86x320.png +0 -0
  539. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_aggregate.png +0 -0
  540. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_aggregate_active.png +0 -0
  541. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_cz1.png +0 -0
  542. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_kvma.png +0 -0
  543. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lc1.png +0 -0
  544. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lc2.png +0 -0
  545. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lf10.png +0 -0
  546. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lf11.png +0 -0
  547. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lf12.png +0 -0
  548. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lf13.png +0 -0
  549. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lf15.png +0 -0
  550. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_lf8.png +0 -0
  551. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_rgb_lf13.png +0 -0
  552. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_segment.png +0 -0
  553. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_bg_segment_4zone.png +0 -0
  554. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_dropdown.png +0 -0
  555. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_dropdown_2.png +0 -0
  556. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_dropdown_highlight.png +0 -0
  557. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_dropdown_highlight_2.png +0 -0
  558. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_dropdown_menu.png +0 -0
  559. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_dropdown_menu_2.png +0 -0
  560. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_external.png +0 -0
  561. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_external_active.png +0 -0
  562. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_helmet_1.png +0 -0
  563. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_helmet_2.png +0 -0
  564. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_helmet_3.png +0 -0
  565. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_helmet_4.png +0 -0
  566. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_helmet_5.png +0 -0
  567. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bar_1.png +0 -0
  568. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bar_2.png +0 -0
  569. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bar_3.png +0 -0
  570. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bar_4.png +0 -0
  571. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bar_5.png +0 -0
  572. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bar_6.png +0 -0
  573. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_1.png +0 -0
  574. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_2.png +0 -0
  575. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_3.png +0 -0
  576. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_4.png +0 -0
  577. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_5.png +0 -0
  578. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_5_active.png +0 -0
  579. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_meter_bg_6.png +0 -0
  580. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_1.png +0 -0
  581. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_10.png +0 -0
  582. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_10_active.png +0 -0
  583. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_11.png +0 -0
  584. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_11_active.png +0 -0
  585. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_12.png +0 -0
  586. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_12_active.png +0 -0
  587. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_1_active.png +0 -0
  588. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_2.png +0 -0
  589. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_2_active.png +0 -0
  590. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_3.png +0 -0
  591. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_3_active.png +0 -0
  592. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_4.png +0 -0
  593. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_4_active.png +0 -0
  594. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_5.png +0 -0
  595. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_5_active.png +0 -0
  596. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_6.png +0 -0
  597. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_6_active.png +0 -0
  598. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_7.png +0 -0
  599. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_7_active.png +0 -0
  600. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_8.png +0 -0
  601. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_8_active.png +0 -0
  602. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_9.png +0 -0
  603. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_mode_9_active.png +0 -0
  604. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_power.png +0 -0
  605. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_power_active.png +0 -0
  606. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_blue.png +0 -0
  607. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_cyan.png +0 -0
  608. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_green.png +0 -0
  609. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_orange.png +0 -0
  610. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_purple.png +0 -0
  611. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_red.png +0 -0
  612. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_white.png +0 -0
  613. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preset_yellow.png +0 -0
  614. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_ak120.png +0 -0
  615. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_ax120.png +0 -0
  616. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_cz1.png +0 -0
  617. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_frozen_horizon_pro.png +0 -0
  618. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_frozen_magic_pro.png +0 -0
  619. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lc1.png +0 -0
  620. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lc2.png +0 -0
  621. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lf10.png +0 -0
  622. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lf11.png +0 -0
  623. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lf12.png +0 -0
  624. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lf13.png +0 -0
  625. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lf15.png +0 -0
  626. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_lf8.png +0 -0
  627. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_pa120.png +0 -0
  628. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_preview_pa120_space.png +0 -0
  629. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_show_1.png +0 -0
  630. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_show_1_active.png +0 -0
  631. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_show_2.png +0 -0
  632. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_show_2_active.png +0 -0
  633. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_show_3.png +0 -0
  634. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_show_3_active.png +0 -0
  635. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_slider_thumb.png +0 -0
  636. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_1.png +0 -0
  637. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_1_active.png +0 -0
  638. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_2.png +0 -0
  639. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_2_active.png +0 -0
  640. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_3.png +0 -0
  641. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_3_active.png +0 -0
  642. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_4.png +0 -0
  643. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_btn_4_active.png +0 -0
  644. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_1.png +0 -0
  645. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_1_active.png +0 -0
  646. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_2.png +0 -0
  647. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_2_active.png +0 -0
  648. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_3.png +0 -0
  649. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_3_active.png +0 -0
  650. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_4.png +0 -0
  651. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_4_active.png +0 -0
  652. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_5.png +0 -0
  653. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_5_active.png +0 -0
  654. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_6.png +0 -0
  655. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/led_zone_mode_6_active.png +0 -0
  656. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_sysinfo.png +0 -0
  657. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_en.png +0 -0
  658. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_sysinfo_1_tc.png +0 -0
  659. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_sysinfo_en.png +0 -0
  660. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_sysinfo_tc.png +0 -0
  661. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_text.png +0 -0
  662. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_text_en.png +0 -0
  663. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_text_tc.png +0 -0
  664. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_time.png +0 -0
  665. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_time_en.png +0 -0
  666. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_label_time_tc.png +0 -0
  667. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_mode_date.png +0 -0
  668. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_mode_hardware.png +0 -0
  669. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_mode_text.png +0 -0
  670. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_mode_time.png +0 -0
  671. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_mode_weekday.png +0 -0
  672. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/overlay_select.png +0 -0
  673. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_110x480.png +0 -0
  674. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_116x480.png +0 -0
  675. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_160x480.png +0 -0
  676. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_180x400.png +0 -0
  677. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_180x480.png +0 -0
  678. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_240x240.png +0 -0
  679. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_240x320.png +0 -0
  680. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_240x400.png +0 -0
  681. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_240x427.png +0 -0
  682. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_270x480.png +0 -0
  683. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_320x240.png +0 -0
  684. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_320x320.png +0 -0
  685. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_320x320_round.png +0 -0
  686. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_320x86.png +0 -0
  687. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_360x360_round.png +0 -0
  688. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_400x180.png +0 -0
  689. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_400x240.png +0 -0
  690. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_427x240.png +0 -0
  691. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x110.png +0 -0
  692. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x116.png +0 -0
  693. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x160.png +0 -0
  694. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x180.png +0 -0
  695. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x270.png +0 -0
  696. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x480.png +0 -0
  697. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_480x480_round.png +0 -0
  698. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_86x320.png +0 -0
  699. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_animation.png +0 -0
  700. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_btn.png +0 -0
  701. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_btn_active.png +0 -0
  702. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_pause.png +0 -0
  703. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_play.png +0 -0
  704. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_player_control_bg.png +0 -0
  705. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_1280x480.png +0 -0
  706. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_1920x440.png +0 -0
  707. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_1920x462.png +0 -0
  708. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_320x960.png +0 -0
  709. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_360x800.png +0 -0
  710. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_440x1920.png +0 -0
  711. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_462x1920.png +0 -0
  712. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_480x1280.png +0 -0
  713. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_480x800.png +0 -0
  714. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_480x854.png +0 -0
  715. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_540x960.png +0 -0
  716. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_800x360.png +0 -0
  717. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_800x480.png +0 -0
  718. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_854x480.png +0 -0
  719. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_960x320.png +0 -0
  720. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_popup_960x540.png +0 -0
  721. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_res_240x240.png +0 -0
  722. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_res_240x320.png +0 -0
  723. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_res_320x240.png +0 -0
  724. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_res_320x320.png +0 -0
  725. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_round_mask_320x320.png +0 -0
  726. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_round_mask_360x360.png +0 -0
  727. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_round_mask_480x480.png +0 -0
  728. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_video_controls_bg.png +0 -0
  729. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/preview_video_controls_bg_alt.png +0 -0
  730. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/screen_led_deco_1.png +0 -0
  731. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/screen_led_deco_2.png +0 -0
  732. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/screen_led_deco_3.png +0 -0
  733. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/screen_led_deco_4.png +0 -0
  734. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/screen_led_deco_cz1.png +0 -0
  735. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg.png +0 -0
  736. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_d.png +0 -0
  737. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_e.png +0 -0
  738. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_en.png +0 -0
  739. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_f.png +0 -0
  740. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_h.png +0 -0
  741. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_p.png +0 -0
  742. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_r.png +0 -0
  743. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_tc.png +0 -0
  744. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/secondary_screen_bg_x.png +0 -0
  745. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_content.png +0 -0
  746. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_content_btn.png +0 -0
  747. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_content_mask.png +0 -0
  748. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_date.png +0 -0
  749. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_date_1.png +0 -0
  750. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_icon.png +0 -0
  751. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_link_1.png +0 -0
  752. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_text.png +0 -0
  753. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_text_1.png +0 -0
  754. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_time.png +0 -0
  755. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_time_1.png +0 -0
  756. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_weekday.png +0 -0
  757. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_add_weekday_1.png +0 -0
  758. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_anim_sync.png +0 -0
  759. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_background.png +0 -0
  760. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_brightness.png +0 -0
  761. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_keyboard_sync_1.png +0 -0
  762. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_keyboard_sync_2.png +0 -0
  763. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_keyboard_sync_3.png +0 -0
  764. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_module.png +0 -0
  765. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_overlay.png +0 -0
  766. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_overlay_add_bg.png +0 -0
  767. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_overlay_color_bg.png +0 -0
  768. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_overlay_grid_bg.png +0 -0
  769. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_overlay_table_bg.png +0 -0
  770. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/settings_params.png +0 -0
  771. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_brightness_bar.png +0 -0
  772. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_checkbox_off.png +0 -0
  773. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_checkbox_on.png +0 -0
  774. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_clip_a.png +0 -0
  775. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_clip_b.png +0 -0
  776. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_close.png +0 -0
  777. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_close_2.png +0 -0
  778. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_dropdown.png +0 -0
  779. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_dropdown_bg_2x.png +0 -0
  780. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_dropdown_bg_4x.png +0 -0
  781. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_dropdown_highlight.png +0 -0
  782. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_loading_animation.png +0 -0
  783. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_progress_bar.png +0 -0
  784. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_round_close.png +0 -0
  785. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_round_confirm.png +0 -0
  786. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_scrollbar_bg.png +0 -0
  787. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_scrollbar_thumb.png +0 -0
  788. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_shortcut_size_slider.png +0 -0
  789. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_thread_multi.png +0 -0
  790. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_thread_single.png +0 -0
  791. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_toggle_off.png +0 -0
  792. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shared_toggle_on.png +0 -0
  793. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel.png +0 -0
  794. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_d.png +0 -0
  795. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_e.png +0 -0
  796. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_en.png +0 -0
  797. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_f.png +0 -0
  798. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_p.png +0 -0
  799. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_r.png +0 -0
  800. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_tc.png +0 -0
  801. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/shortcuts_panel_x.png +0 -0
  802. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_about.png +0 -0
  803. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_about_active.png +0 -0
  804. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_about_bg.png +0 -0
  805. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_bg.png +0 -0
  806. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_no_device.png +0 -0
  807. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_sensor.png +0 -0
  808. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_sensor_active.png +0 -0
  809. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_splash.png +0 -0
  810. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sidebar_sysinfo_bg.png +0 -0
  811. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_a.png +0 -0
  812. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_a_180.png +0 -0
  813. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_a_270.png +0 -0
  814. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_a_90.png +0 -0
  815. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_b.png +0 -0
  816. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_b_180.png +0 -0
  817. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_b_270.png +0 -0
  818. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_b_90.png +0 -0
  819. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_c.png +0 -0
  820. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_c_180.png +0 -0
  821. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_c_270.png +0 -0
  822. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/split_overlay_c_90.png +0 -0
  823. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_add_group.png +0 -0
  824. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_cpu.png +0 -0
  825. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_custom.png +0 -0
  826. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_dram.png +0 -0
  827. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_fan.png +0 -0
  828. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_gpu.png +0 -0
  829. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_hdd.png +0 -0
  830. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_net.png +0 -0
  831. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_next_page.png +0 -0
  832. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_prev_page.png +0 -0
  833. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_scrollbar.png +0 -0
  834. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/sysinfo_select.png +0 -0
  835. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_browser_filter.png +0 -0
  836. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_browser_filter_active.png +0 -0
  837. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label.png +0 -0
  838. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_d.png +0 -0
  839. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_e.png +0 -0
  840. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_en.png +0 -0
  841. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_f.png +0 -0
  842. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_h.png +0 -0
  843. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_p.png +0 -0
  844. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_r.png +0 -0
  845. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_tc.png +0 -0
  846. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_cloud_label_x.png +0 -0
  847. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_carousel.png +0 -0
  848. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_carousel_active.png +0 -0
  849. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_export_all.png +0 -0
  850. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_multi_select.png +0 -0
  851. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_multi_select_active.png +0 -0
  852. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_select_frame.png +0 -0
  853. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_local_select_frame_active.png +0 -0
  854. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/theme_mask_label.png +0 -0
  855. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_110x480.png +0 -0
  856. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_116x480.png +0 -0
  857. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_1280x480.png +0 -0
  858. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_160x480.png +0 -0
  859. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_180x400.png +0 -0
  860. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_180x480.png +0 -0
  861. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_240x240.png +0 -0
  862. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_240x320.png +0 -0
  863. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_240x400.png +0 -0
  864. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_240x427.png +0 -0
  865. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_270x480.png +0 -0
  866. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_320x240.png +0 -0
  867. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_320x320.png +0 -0
  868. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_320x86.png +0 -0
  869. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_360x360.png +0 -0
  870. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_400x180.png +0 -0
  871. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_400x240.png +0 -0
  872. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_427x240.png +0 -0
  873. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_480x110.png +0 -0
  874. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_480x116.png +0 -0
  875. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_480x160.png +0 -0
  876. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_480x180.png +0 -0
  877. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_480x270.png +0 -0
  878. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_480x480.png +0 -0
  879. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_86x320.png +0 -0
  880. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_bg.png +0 -0
  881. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets/video_cut_bg_alt.png +0 -0
  882. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/assets.py +0 -0
  883. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/base.py +0 -0
  884. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/base_handler.py +0 -0
  885. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/color_and_add_panels.py +0 -0
  886. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/constants.py +0 -0
  887. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/display_mode_panels.py +0 -0
  888. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/led_handler.py +0 -0
  889. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/overlay_element.py +0 -0
  890. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/overlay_grid.py +0 -0
  891. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/panel_renderer.py +0 -0
  892. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/screen_capture.py +0 -0
  893. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/splash.py +0 -0
  894. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/trcc_app.py +0 -0
  895. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_about.py +0 -0
  896. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_activity_sidebar.py +0 -0
  897. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_color_wheel.py +0 -0
  898. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_device.py +0 -0
  899. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_image_cut.py +0 -0
  900. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_info_module.py +0 -0
  901. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_led_control.py +0 -0
  902. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_preview.py +0 -0
  903. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_screen_led.py +0 -0
  904. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_sensor_picker.py +0 -0
  905. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_theme_local.py +0 -0
  906. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_theme_mask.py +0 -0
  907. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_theme_setting.py +0 -0
  908. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_theme_web.py +0 -0
  909. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/gui/uc_video_cut.py +0 -0
  910. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/__init__.py +0 -0
  911. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/device_presentation.py +0 -0
  912. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/lcd_panel.py +0 -0
  913. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/lcd_presentation_model.py +0 -0
  914. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/led_display.py +0 -0
  915. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/led_metrics_format.py +0 -0
  916. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/led_panel.py +0 -0
  917. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/led_zone_model.py +0 -0
  918. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/overlay_model.py +0 -0
  919. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/overlay_serialization.py +0 -0
  920. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/panel_spec.py +0 -0
  921. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/preview_geometry.py +0 -0
  922. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/sensor_display.py +0 -0
  923. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/presentation/slideshow_model.py +0 -0
  924. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qt_periodic.py +0 -0
  925. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qt_tray.py +0 -0
  926. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/__init__.py +0 -0
  927. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/app.py +0 -0
  928. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/assets.py +0 -0
  929. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/base.py +0 -0
  930. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/color_wheel.py +0 -0
  931. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/device_picker.py +0 -0
  932. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/device_selection.py +0 -0
  933. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/image_crop.py +0 -0
  934. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/__init__.py +0 -0
  935. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/about_panel.py +0 -0
  936. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/cloud_theme_browser.py +0 -0
  937. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/configuration_panel.py +0 -0
  938. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/device_panel.py +0 -0
  939. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/__init__.py +0 -0
  940. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/_base.py +0 -0
  941. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/advanced_tab.py +0 -0
  942. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/color_tab.py +0 -0
  943. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/mode_tab.py +0 -0
  944. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/segment_tab.py +0 -0
  945. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led/zone_tab.py +0 -0
  946. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/led_panel.py +0 -0
  947. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/local_theme_browser.py +0 -0
  948. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/mask_browser.py +0 -0
  949. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/preview_panel.py +0 -0
  950. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/sidebar.py +0 -0
  951. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/status_panel.py +0 -0
  952. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/__init__.py +0 -0
  953. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/_base.py +0 -0
  954. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/gpu_box.py +0 -0
  955. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/health_box.py +0 -0
  956. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/maintenance_box.py +0 -0
  957. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/platform_box.py +0 -0
  958. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system/sensors_box.py +0 -0
  959. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/panels/system_panel.py +0 -0
  960. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/preview_surface.py +0 -0
  961. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/region_overlay.py +0 -0
  962. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/sensor_picker.py +0 -0
  963. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/qtgui/splash.py +0 -0
  964. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/src/trcc/ui/screen_overlay.py +0 -0
  965. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/__init__.py +0 -0
  966. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/infra/__init__.py +0 -0
  967. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/infra/test_data_install_runner.py +0 -0
  968. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/infra/test_sysinfo_config_fan_map.py +0 -0
  969. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_elevate.py +0 -0
  970. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_imc_timings.py +0 -0
  971. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_linux_imc.py +0 -0
  972. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_scsi_single_owner.py +0 -0
  973. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_spd.py +0 -0
  974. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_windows_mem_disk.py +0 -0
  975. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_windows_permissions.py +0 -0
  976. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/adapters/system/test_windows_wmi_seam.py +0 -0
  977. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_api_events.py +0 -0
  978. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_api_preview.py +0 -0
  979. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_api_routes.py +0 -0
  980. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_app_senders.py +0 -0
  981. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_app_start_session.py +0 -0
  982. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_autostart.py +0 -0
  983. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_autostart_macos.py +0 -0
  984. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_autostart_windows.py +0 -0
  985. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_backend_finish.py +0 -0
  986. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_background_origin.py +0 -0
  987. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_background_slot.py +0 -0
  988. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_bg_cache_health.py +0 -0
  989. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_bg_mask_cache.py +0 -0
  990. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_boot_animation_command.py +0 -0
  991. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_boot_animation_device.py +0 -0
  992. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_build_preview.py +0 -0
  993. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_cli_commands.py +0 -0
  994. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_cli_test_lcd.py +0 -0
  995. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_clock.py +0 -0
  996. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_cloud_themes.py +0 -0
  997. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_commands.py +0 -0
  998. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_connect_failure_hints.py +0 -0
  999. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_connection_issues.py +0 -0
  1000. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_control_center.py +0 -0
  1001. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_csharp_oracle_parity.py +0 -0
  1002. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_daemon.py +0 -0
  1003. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_daemon_commands.py +0 -0
  1004. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_data_install.py +0 -0
  1005. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_dc_codec.py +0 -0
  1006. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_dc_reader.py +0 -0
  1007. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_decompiler_artifacts_current.py +0 -0
  1008. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_desktop_entry.py +0 -0
  1009. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_device_catalog_smoke.py +0 -0
  1010. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_device_recovery.py +0 -0
  1011. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_device_sender.py +0 -0
  1012. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_device_state_contract.py +0 -0
  1013. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_device_surface_matrix.py +0 -0
  1014. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_diagnose_parse_report.py +0 -0
  1015. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_diagnostics.py +0 -0
  1016. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_display_rotation.py +0 -0
  1017. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_display_tweaks.py +0 -0
  1018. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_docs_api_consistency.py +0 -0
  1019. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_docs_cli_consistency.py +0 -0
  1020. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_docs_commands_consistency.py +0 -0
  1021. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_docs_ports_consistency.py +0 -0
  1022. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_encode_rotation.py +0 -0
  1023. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_f5_protocol.py +0 -0
  1024. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_first_run_and_migration.py +0 -0
  1025. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_frame_shape_guard.py +0 -0
  1026. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_function_weight.py +0 -0
  1027. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_geometry.py +0 -0
  1028. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_god_classes.py +0 -0
  1029. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gpu_extras_install.py +0 -0
  1030. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gpu_preference.py +0 -0
  1031. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_connect_restore.py +0 -0
  1032. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_empty_state.py +0 -0
  1033. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_entry_exit.py +0 -0
  1034. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_overlay_restore.py +0 -0
  1035. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_preview_dispatch.py +0 -0
  1036. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_raise_existing.py +0 -0
  1037. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_video_cut_persistence.py +0 -0
  1038. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_gui_video_tick_multidevice.py +0 -0
  1039. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_handshake_requests.py +0 -0
  1040. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_health_udev_paths.py +0 -0
  1041. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_hid_lcd_geometry.py +0 -0
  1042. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_hotplug.py +0 -0
  1043. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_hotplug_bsd.py +0 -0
  1044. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_hotplug_polling.py +0 -0
  1045. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_hotplug_windows.py +0 -0
  1046. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_i18n.py +0 -0
  1047. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_install_hint_shape.py +0 -0
  1048. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_install_info.py +0 -0
  1049. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_integration_pipeline.py +0 -0
  1050. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ipc_events.py +0 -0
  1051. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ipc_server.py +0 -0
  1052. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ipc_windows_fallback.py +0 -0
  1053. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ipc_wire.py +0 -0
  1054. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_jpeg_frame_cap.py +0 -0
  1055. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_lcd_panel_model.py +0 -0
  1056. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_animation_loop.py +0 -0
  1057. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_assets.py +0 -0
  1058. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_display_model.py +0 -0
  1059. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_effects.py +0 -0
  1060. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_handler_requires_app.py +0 -0
  1061. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_panel_model.py +0 -0
  1062. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_pm_registry.py +0 -0
  1063. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_remap.py +0 -0
  1064. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_segment.py +0 -0
  1065. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_segment_oracle.py +0 -0
  1066. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_send.py +0 -0
  1067. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_led_settings_commands.py +0 -0
  1068. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_library_migration.py +0 -0
  1069. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_list_devices.py +0 -0
  1070. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_list_fans.py +0 -0
  1071. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_logging_coverage.py +0 -0
  1072. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ly_lcd_geometry.py +0 -0
  1073. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_manpages.py +0 -0
  1074. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_mask_commands.py +0 -0
  1075. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_mask_rendering.py +0 -0
  1076. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_media_catalog.py +0 -0
  1077. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_metrics_personalize.py +0 -0
  1078. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_mock_reply_override.py +0 -0
  1079. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_models.py +0 -0
  1080. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_mount_orientation_seed.py +0 -0
  1081. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_oracle_transcription_complete.py +0 -0
  1082. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_orientation_cloud_background.py +0 -0
  1083. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_orientation_reload.py +0 -0
  1084. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_os_families.py +0 -0
  1085. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_clock.py +0 -0
  1086. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_element_id.py +0 -0
  1087. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_font_family.py +0 -0
  1088. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_grid_adapter.py +0 -0
  1089. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_metric_unit.py +0 -0
  1090. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_resolve.py +0 -0
  1091. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_overlay_show_unit.py +0 -0
  1092. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_packaging_entrypoints.py +0 -0
  1093. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_path_containment.py +0 -0
  1094. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_pipewire_capture.py +0 -0
  1095. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_platform_hw_probes.py +0 -0
  1096. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_portrait_mounted.py +0 -0
  1097. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_preview_is_not_rotated.py +0 -0
  1098. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_preview_size.py +0 -0
  1099. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_proxy_error_contract.py +0 -0
  1100. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_proxy_events.py +0 -0
  1101. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_pyusb_find_seam.py +0 -0
  1102. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_qtgui_browser_data_ready.py +0 -0
  1103. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_qtgui_led_tabs_snapshot.py +0 -0
  1104. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_qtgui_panel_visibility.py +0 -0
  1105. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_qtgui_sensors_on_the_bus.py +0 -0
  1106. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_qtgui_video_ticker.py +0 -0
  1107. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_quickstart.py +0 -0
  1108. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_render_led.py +0 -0
  1109. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_render_template.py +0 -0
  1110. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_replug_sender_recovery.py +0 -0
  1111. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_restore_device_state.py +0 -0
  1112. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_run_setup_order.py +0 -0
  1113. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_screencast_audio_spectrum.py +0 -0
  1114. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_screencast_capture_chain.py +0 -0
  1115. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_scsi_lcd_geometry.py +0 -0
  1116. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_selinux_install.py +0 -0
  1117. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_send_color.py +0 -0
  1118. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensor_chain.py +0 -0
  1119. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensor_dashboard.py +0 -0
  1120. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors.py +0 -0
  1121. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors_board_temps.py +0 -0
  1122. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors_bsd.py +0 -0
  1123. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors_lhm_subprocess.py +0 -0
  1124. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors_macos.py +0 -0
  1125. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors_nvml.py +0 -0
  1126. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_sensors_windows.py +0 -0
  1127. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_settings_migration.py +0 -0
  1128. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_settings_schema_migration.py +0 -0
  1129. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_shell.py +0 -0
  1130. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_single_instance_socket.py +0 -0
  1131. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_slideshow_driver.py +0 -0
  1132. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_snapshot_reads_the_cache.py +0 -0
  1133. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_system_commands.py +0 -0
  1134. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_system_resume.py +0 -0
  1135. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_theme_persistence.py +0 -0
  1136. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_theme_service.py +0 -0
  1137. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_theme_stage.py +0 -0
  1138. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_tool_gates.py +0 -0
  1139. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_toolchain.py +0 -0
  1140. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_transports.py +0 -0
  1141. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_udev.py +0 -0
  1142. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ui_bus.py +0 -0
  1143. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_ui_surfaces_smoke.py +0 -0
  1144. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_usb_power_state.py +0 -0
  1145. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_variant_display_name.py +0 -0
  1146. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_variant_presentation_audit.py +0 -0
  1147. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_video_export_command.py +0 -0
  1148. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_video_playback.py +0 -0
  1149. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_wire_frame_shape.py +0 -0
  1150. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/test_wmi_gpu_fallback.py +0 -0
  1151. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_device_presentation.py +0 -0
  1152. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_lcd_presentation_model.py +0 -0
  1153. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_led_metrics_format.py +0 -0
  1154. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_led_zone_model.py +0 -0
  1155. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_overlay_model.py +0 -0
  1156. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_overlay_view_binding.py +0 -0
  1157. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_preview_geometry.py +0 -0
  1158. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_sensor_display.py +0 -0
  1159. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_slideshow_model.py +0 -0
  1160. {trcc_linux-9.10.2 → trcc_linux-9.10.3}/tests/ui/presentation/test_theme_local_binding.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: trcc-linux
3
- Version: 9.10.2
3
+ Version: 9.10.3
4
4
  Summary: Linux implementation of Thermalright LCD Control Center
5
5
  Project-URL: Homepage, https://github.com/Lexonight1/thermalright-trcc-linux
6
6
  Project-URL: Documentation, https://github.com/Lexonight1/thermalright-trcc-linux#readme
@@ -90,8 +90,8 @@ Description-Content-Type: text/markdown
90
90
  [![Platform](https://img.shields.io/badge/platform-Linux-FCC624?logo=linux&logoColor=black)](https://github.com/Lexonight1/thermalright-trcc-linux)
91
91
 
92
92
  [![CI](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml/badge.svg)](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
93
- [![Tests](https://img.shields.io/badge/tests-5827_passed-brightgreen.svg)](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
94
- [![Coverage](https://img.shields.io/badge/coverage-8%25-brightgreen.svg)](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
93
+ [![Tests](https://img.shields.io/badge/tests-27121_passed-brightgreen.svg)](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
94
+ [![Coverage](https://img.shields.io/badge/coverage-0%25-brightgreen.svg)](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
95
95
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://python.org)
96
96
  [![Code Style](https://img.shields.io/badge/code_style-ruff-D7FF64?logo=ruff&logoColor=black)](https://docs.astral.sh/ruff/)
97
97
  [![Type Check](https://img.shields.io/badge/type_check-pyright-blue?logo=python&logoColor=white)](https://microsoft.github.io/pyright/)
@@ -17,8 +17,8 @@
17
17
  [![Platform](https://img.shields.io/badge/platform-Linux-FCC624?logo=linux&logoColor=black)](https://github.com/Lexonight1/thermalright-trcc-linux)
18
18
 
19
19
  [![CI](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml/badge.svg)](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
20
- [![Tests](https://img.shields.io/badge/tests-5827_passed-brightgreen.svg)](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
21
- [![Coverage](https://img.shields.io/badge/coverage-8%25-brightgreen.svg)](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
20
+ [![Tests](https://img.shields.io/badge/tests-27121_passed-brightgreen.svg)](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
21
+ [![Coverage](https://img.shields.io/badge/coverage-0%25-brightgreen.svg)](https://github.com/Lexonight1/thermalright-trcc-linux/actions/workflows/ci.yml)
22
22
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://python.org)
23
23
  [![Code Style](https://img.shields.io/badge/code_style-ruff-D7FF64?logo=ruff&logoColor=black)](https://docs.astral.sh/ruff/)
24
24
  [![Type Check](https://img.shields.io/badge/type_check-pyright-blue?logo=python&logoColor=white)](https://microsoft.github.io/pyright/)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "trcc-linux"
7
- version = "9.10.2"
7
+ version = "9.10.3"
8
8
  description = "Linux implementation of Thermalright LCD Control Center"
9
9
  readme = "README.md"
10
10
  license = "GPL-3.0-or-later"
@@ -1,4 +1,4 @@
1
1
  """TRCC Linux version information. History in doc/CHANGELOG.md."""
2
2
 
3
- __version__ = "9.10.2"
3
+ __version__ = "9.10.3"
4
4
  __version_info__ = tuple(int(x) for x in __version__.split("."))
@@ -29,7 +29,7 @@ from typing import Any, ClassVar
29
29
 
30
30
  from ...core.errors import DeviceNotFoundError, HandshakeError, TransportError
31
31
  from ...core.factory import Registry, Reject
32
- from ...core.logs import per_frame, trace
32
+ from ...core.logs import Blob, per_frame, trace
33
33
  from ...core.models import HandshakeResult, ProductInfo, Wire
34
34
  from ...core.ports import BulkTransport, Device, T
35
35
  from ...core.protocol import DeviceProfile
@@ -149,7 +149,7 @@ class BaseDevice(Device[T]):
149
149
  there, and the logger is the SUBCLASS's module so a report still says
150
150
  which wire spoke.
151
151
  """
152
- log.debug("_trace_reply: resp=%s", resp)
152
+ log.debug("_trace_reply: resp=%s", Blob(resp))
153
153
  trace(logging.getLogger(type(self).__module__),
154
154
  "%s raw handshake reply (%d bytes, first %d): %s",
155
155
  self.info.key, len(resp), min(len(resp), _TRACE_REPLY_BYTES),
@@ -171,7 +171,8 @@ class BaseDevice(Device[T]):
171
171
  encoding it picked, the PID variant, the LED style. Returns a string
172
172
  that already carries its own leading space, or empty.
173
173
  """
174
- log.debug("_handshake_detail: result=%s", result)
174
+ log.debug("_handshake_detail: result=%s raw=%s",
175
+ result, Blob(result.raw_response))
175
176
  return ""
176
177
 
177
178
  def _open_transport(self) -> None:
@@ -200,7 +201,7 @@ class BaseDevice(Device[T]):
200
201
  reconnect-and-retry / consecutive-failure escalation every wire
201
202
  shares (``core.ports.Device``).
202
203
  """
203
- frame_log.debug("send: payload=%s", payload)
204
+ frame_log.debug("send: payload=%s", Blob(payload))
204
205
  self._require_connected()
205
206
  frame = self._prepare_frame(payload)
206
207
  return self._send_with_recovery(partial(self._write_frame, frame))
@@ -0,0 +1,113 @@
1
+ """PyUSB ``find()`` seam — uses libusb_package's bundled backend on Windows.
2
+
3
+ PyUSB needs ``libusb-1.0`` userspace to talk to USB devices. Linux/macOS/BSD
4
+ ship it via the system package manager; **Windows has no system libusb**, so
5
+ pip-installed *and* PyInstaller-frozen users hit
6
+ ``usb.core.NoBackendError: No backend available`` (#131, and again #187/#188 once
7
+ the GUI launch crash was fixed and discovery actually ran).
8
+
9
+ The canonical fix is `libusb-package <https://github.com/pyocd/libusb-package>`_
10
+ (pyocd's project): a Windows wheel that bundles ``libusb-1.0.dll`` and exposes a
11
+ ``find()`` that loads that bundled DLL **explicitly by path** — not via the
12
+ flaky ``ctypes``/PATH search that bare ``usb.core.find`` relies on. It's a
13
+ Windows-only dependency in ``pyproject.toml``.
14
+
15
+ This module is the ONE seam every ``usb.core.find`` call goes through, so there
16
+ is exactly one place that knows about the Windows backend quirk (the cutover
17
+ dropped this seam and reverted every call site to bare ``usb.core.find``, which
18
+ is what reintroduced the crash). Importing ``libusb_package`` here is also what
19
+ makes PyInstaller bundle the module + its DLL into the frozen Windows build.
20
+ """
21
+ from __future__ import annotations
22
+
23
+ import logging
24
+ from typing import Any
25
+
26
+ log = logging.getLogger(__name__)
27
+
28
+ try:
29
+ from libusb_package import find as _find # pyright: ignore[reportMissingImports]
30
+ log.debug("pyusb backend: libusb-package (bundled libusb-1.0)")
31
+ except ImportError:
32
+ from usb.core import find as _find
33
+ log.debug("pyusb backend: system libusb via usb.core.find")
34
+
35
+
36
+ def find(*args: Any, **kwargs: Any) -> Any:
37
+ """Drop-in for ``usb.core.find()`` with a Windows-compatible backend.
38
+
39
+ Identical signature + return type. Routes through ``libusb_package.find``
40
+ where it's installed (Windows, via the bundled DLL) and falls back to
41
+ ``usb.core.find`` everywhere else (Linux/macOS/BSD system libusb).
42
+ """
43
+ log.debug("find")
44
+ return _find(*args, **kwargs)
45
+
46
+
47
+ def usb_path(dev: Any) -> str | None:
48
+ """Where this unit is PLUGGED IN, as a stable string — or ``None``.
49
+
50
+ Two identical coolers share a VID/PID and ship no serial, so nothing in
51
+ the USB descriptor tells them apart (#287). What does is the topology:
52
+ they are in different ports. ``usb_find(find_all=True)`` already yields
53
+ one object per physical unit and that object carries the answer; this
54
+ tree read ``iSerialNumber`` and ``bcdDevice`` off it and dropped the rest.
55
+
56
+ Format is the kernel's own USB topology name — ``1-14``, ``1-2.3`` —
57
+ because it is the one a user can check against ``lsusb -t`` and ``dmesg``
58
+ when a report says which panel did what.
59
+
60
+ **Port chain first, address second, and the difference matters.** The
61
+ port chain is where the cable is: it survives a replug and a reboot, so it
62
+ can key persisted settings. ``address`` is handed out by the host
63
+ controller and is reassigned on every replug — usable to tell two units
64
+ apart *right now*, never to remember which was which. It is the fallback
65
+ only, spelled ``@`` so the two can never be confused on sight.
66
+
67
+ ``None`` is a real answer. PyUSB sets ``bus`` / ``address`` /
68
+ ``port_number`` to ``None`` whenever the backend does not supply them
69
+ (``usb.core.Device.__init__``), so this is guarded on EVERY platform, not
70
+ just the ones we cannot test on. A caller that gets ``None`` has learned
71
+ that this host cannot tell two identical units apart.
72
+ """
73
+ bus = getattr(dev, "bus", None)
74
+ if bus is None:
75
+ log.debug("usb_path: backend supplied no bus — not addressable")
76
+ return None
77
+ ports = getattr(dev, "port_numbers", None) or ()
78
+ if ports:
79
+ path = f"{int(bus)}-{'.'.join(str(int(p)) for p in ports)}"
80
+ log.debug("usb_path: %s (port chain — stable across replug)", path)
81
+ return path
82
+ address = getattr(dev, "address", None)
83
+ if address is None:
84
+ log.debug("usb_path: bus %s but no ports and no address", bus)
85
+ return None
86
+ path = f"{int(bus)}@{int(address)}"
87
+ log.debug("usb_path: %s (ADDRESS — changes on replug)", path)
88
+ return path
89
+
90
+
91
+ def find_unit(vid: int, pid: int, unit: str) -> Any:
92
+ """The device of *vid:pid* plugged into *unit*, or ``None``.
93
+
94
+ ``find(idVendor=, idProduct=)`` returns whichever unit libusb lists
95
+ first, which is why two identical coolers both opened the same panel and
96
+ the second ``claim_interface`` failed with "in use by another process"
97
+ (#287). This asks for a specific one instead.
98
+
99
+ An empty *unit* means "the only one of this model" and is NOT a match-all
100
+ here — callers that mean that call :func:`find` directly, so this function
101
+ can never silently hand back an arbitrary device when the caller asked for
102
+ a named one.
103
+ """
104
+ if not unit:
105
+ log.debug("find_unit: no unit asked for")
106
+ return None
107
+ for dev in find(find_all=True, idVendor=vid, idProduct=pid) or []:
108
+ if usb_path(dev) == unit:
109
+ log.info("find_unit: %04x:%04x at %s", vid, pid, unit)
110
+ return dev
111
+ log.warning("find_unit: %04x:%04x has no unit at %s — it may have been "
112
+ "unplugged or moved to another port", vid, pid, unit)
113
+ return None
@@ -18,7 +18,7 @@ from ...core.errors import (
18
18
  HandshakeError,
19
19
  TransportError,
20
20
  )
21
- from ...core.logs import per_frame
21
+ from ...core.logs import Blob, per_frame
22
22
  from ...core.models import HandshakeResult, ProductInfo, Wire
23
23
  from ...core.ports import BulkTransport
24
24
  from ...core.protocol import (
@@ -79,7 +79,12 @@ _RGB565_PMS: set[int] = {32}
79
79
  # on the bulk path and told maintainers to keep it that way. That was read off
80
80
  # the 2.0.3 decompile, and 2.1.6 falsifies it. (#176/#169)
81
81
  _BULK_BASE_FBL = 72
82
- _BULK_KNOWN_PMS: frozenset[int] = frozenset({5, 7, 9, 10, 11, 12, 32, 64, 65})
82
+ # 20 joined in TRCC 2.1.8: FormCZTV.cs:947 extended the 854x480 branch from
83
+ # (pm 9 || 11) to (pm 9 || 11 || 20). Without it here the guard sends the panel
84
+ # to the 480x480 fallback -- `audit_devices --exhaustive-bulk` read
85
+ # `pm=20 sub=0: ours=480x480 C#=854x480` before this line.
86
+ _BULK_KNOWN_PMS: frozenset[int] = frozenset(
87
+ {5, 7, 9, 10, 11, 12, 18, 20, 32, 64, 65})
83
88
 
84
89
 
85
90
  # JPEG start-of-frame markers carry the image's real dimensions. C4/C8/CC
@@ -244,7 +249,8 @@ class BulkLcd(BaseBulkDevice, wire=Wire.BULK):
244
249
  report we had: #262 and #203 turned out to share ``PM=11 SUB=5`` and
245
250
  nobody could see it, including me, until I read the C# catalog rule.
246
251
  """
247
- log.debug("_handshake_detail: result=%s", result)
252
+ log.debug("_handshake_detail: result=%s raw=%s",
253
+ result, Blob(result.raw_response))
248
254
  if self._profile is None:
249
255
  return ""
250
256
  encoder = " (JPEG)" if self._profile.jpeg else " (RGB565)"
@@ -354,7 +360,7 @@ class BulkLcd(BaseBulkDevice, wire=Wire.BULK):
354
360
  The ZLP is exempt: it is a zero-length delimiter, so there is no
355
361
  payload to come up short.
356
362
  """
357
- log.debug("_write_frame: frame=%s", frame)
363
+ log.debug("_write_frame: frame=%s", Blob(frame))
358
364
  for offset in range(0, len(frame), _WRITE_CHUNK_SIZE):
359
365
  chunk = frame[offset:offset + _WRITE_CHUNK_SIZE]
360
366
  if self._transport.write(
@@ -25,7 +25,7 @@ from ...core.errors import (
25
25
  TransportError,
26
26
  UnsupportedOperationError,
27
27
  )
28
- from ...core.logs import per_frame
28
+ from ...core.logs import Blob, per_frame
29
29
  from ...core.models import HandshakeResult, ProductInfo, Wire
30
30
  from ...core.ports import BulkTransport
31
31
  from ...core.protocol import DeviceProfile, get_profile, pm_to_fbl
@@ -107,7 +107,8 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
107
107
 
108
108
  def _handshake_detail(self, result: HandshakeResult) -> str:
109
109
  """Which firmware variant answered — the two speak different packets."""
110
- log.debug("_handshake_detail: result=%s", result)
110
+ log.debug("_handshake_detail: result=%s raw=%s",
111
+ result, Blob(result.raw_response))
111
112
  return f" (type {self.info.device_type})"
112
113
 
113
114
  def _require_connected(self) -> None:
@@ -316,7 +317,7 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
316
317
  #228) — the magic alone is enough to accept it; PM/SUB still parse from
317
318
  [5]/[4].
318
319
  """
319
- log.debug("_validate_response_type2: resp=%s", resp)
320
+ log.debug("_validate_response_type2: resp=%s", Blob(resp))
320
321
  if not (len(resp) >= 6 and resp[0:4] == _TYPE2_MAGIC):
321
322
  return False
322
323
  if self._quirks.short_handshake:
@@ -338,7 +339,7 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
338
339
  panels share: a 1280×480 Trofeo Vision answering PM=128 was transposed
339
340
  to 480×1280 and never displayed (#244/#268).
340
341
  """
341
- log.debug("_parse_response_type2: resp=%s", resp)
342
+ log.debug("_parse_response_type2: resp=%s", Blob(resp))
342
343
  pm = resp[5]
343
344
  sub = resp[4]
344
345
  has_serial = len(resp) > 36 and resp[16] == 0x10
@@ -370,7 +371,7 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
370
371
  fall back to ``info.native_resolution`` so smoke tests that build
371
372
  frames before connect() still produce a valid header.
372
373
  """
373
- log.debug("_build_frame_type2: image_data=%s", image_data)
374
+ log.debug("_build_frame_type2: image_data=%s", Blob(image_data))
374
375
  is_jpeg = len(image_data) >= 2 and image_data[:2] == b'\xff\xd8'
375
376
  w, h = (self._profile.resolution if self._profile is not None
376
377
  else self.info.native_resolution)
@@ -406,7 +407,7 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
406
407
  duplication ``_f5`` exists to prevent — so widening the set there did not
407
408
  widen it here.
408
409
  """
409
- log.debug("_validate_response_type3: resp=%s", resp)
410
+ log.debug("_validate_response_type3: resp=%s", Blob(resp))
410
411
  return len(resp) >= 14 and resp[0] in _f5.VALID_IDENTITY
411
412
 
412
413
  def _parse_response_type3(self, resp: bytes) -> HandshakeResult:
@@ -414,7 +415,7 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
414
415
 
415
416
  Geometry comes from the FBL via ``get_profile`` (PM=FBL for Type 3).
416
417
  """
417
- log.debug("_parse_response_type3: resp=%s", resp)
418
+ log.debug("_parse_response_type3: resp=%s", Blob(resp))
418
419
  serial = resp[10:14].hex().upper()
419
420
  fbl = resp[0] - 1
420
421
  # Sized from the identity at handshake, as the vendor does — a panel
@@ -433,7 +434,7 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
433
434
 
434
435
  def _build_frame_type3(self, image_data: bytes) -> bytes:
435
436
  """Type 3 frame: 16-byte prefix + exactly this panel's payload size."""
436
- log.debug("_build_frame_type3: image_data=%s", image_data)
437
+ log.debug("_build_frame_type3: image_data=%s", Blob(image_data))
437
438
  size = getattr(self, "_f5_payload", _f5.DATA_SIZE)
438
439
  prefix = _f5.frame_header(size)
439
440
  if len(image_data) < size:
@@ -457,13 +458,13 @@ class HidLcd(BaseBulkDevice, wire=Wire.HID):
457
458
  else _f5.RESPONSE_SIZE)
458
459
 
459
460
  def _validate_response(self, resp: bytes) -> bool:
460
- log.debug("_validate_response: resp=%s", resp)
461
+ log.debug("_validate_response: resp=%s", Blob(resp))
461
462
  return (self._validate_response_type2(resp)
462
463
  if self.info.device_type == 2
463
464
  else self._validate_response_type3(resp))
464
465
 
465
466
  def _parse_response(self, resp: bytes) -> HandshakeResult:
466
- log.debug("_parse_response: resp=%s", resp)
467
+ log.debug("_parse_response: resp=%s", Blob(resp))
467
468
  return (self._parse_response_type2(resp)
468
469
  if self.info.device_type == 2
469
470
  else self._parse_response_type3(resp))
@@ -31,6 +31,7 @@ from ...core.led_protocol import (
31
31
  resolve_model_name,
32
32
  resolve_pm,
33
33
  )
34
+ from ...core.logs import Blob
34
35
  from ...core.models import HandshakeResult, LedHandshakeResult, ProductInfo, Wire
35
36
  from ...core.ports import BulkTransport
36
37
  from ._base import BaseBulkDevice
@@ -211,7 +212,8 @@ class Led(BaseBulkDevice, wire=Wire.LED):
211
212
 
212
213
  def _handshake_detail(self, result: HandshakeResult) -> str:
213
214
  """The resolved style + model — an LED's whole identity."""
214
- log.debug("_handshake_detail: result=%s", result)
215
+ log.debug("_handshake_detail: result=%s raw=%s",
216
+ result, Blob(result.raw_response))
215
217
  if self._led_handshake is None:
216
218
  return ""
217
219
  style = self._led_handshake.style
@@ -405,7 +407,7 @@ class Led(BaseBulkDevice, wire=Wire.LED):
405
407
 
406
408
  def _write_frame(self, frame: bytes) -> bool:
407
409
  """Stream the packet as 64-byte HID reports, zero-padding the last."""
408
- log.debug("_write_frame: frame=%s", frame)
410
+ log.debug("_write_frame: frame=%s", Blob(frame))
409
411
  remaining = len(frame)
410
412
  offset = 0
411
413
  while remaining > 0:
@@ -25,7 +25,7 @@ import struct
25
25
  from ...core.errors import (
26
26
  HandshakeError,
27
27
  )
28
- from ...core.logs import per_frame
28
+ from ...core.logs import Blob, per_frame
29
29
  from ...core.models import HandshakeResult, ProductInfo, Wire
30
30
  from ...core.ports import BulkTransport
31
31
  from ...core.protocol import (
@@ -204,7 +204,8 @@ class LyLcd(BaseBulkDevice, wire=Wire.LY):
204
204
 
205
205
  def _handshake_detail(self, result: HandshakeResult) -> str:
206
206
  """The PID picks the variant (LY vs LY1) — worth having on the record."""
207
- log.debug("_handshake_detail: result=%s", result)
207
+ log.debug("_handshake_detail: result=%s raw=%s",
208
+ result, Blob(result.raw_response))
208
209
  return f" (pid=0x{self.info.pid:04x})"
209
210
 
210
211
  def _prepare_frame(self, payload: bytes) -> bytes:
@@ -249,7 +250,7 @@ class LyLcd(BaseBulkDevice, wire=Wire.LY):
249
250
 
250
251
  def _write_frame(self, frame: bytes) -> bool:
251
252
  """4096-byte USB writes over the chunk buffer, then the 512-byte ACK."""
252
- log.debug("_write_frame: frame=%s", frame)
253
+ log.debug("_write_frame: frame=%s", Blob(frame))
253
254
  total_bytes = len(frame)
254
255
  pos = 0
255
256
  while pos < total_bytes:
@@ -13,7 +13,7 @@ import time
13
13
  import zlib
14
14
 
15
15
  from ...core.errors import TransportError
16
- from ...core.logs import per_frame
16
+ from ...core.logs import Blob, per_frame
17
17
  from ...core.models import HandshakeResult, Wire
18
18
  from ...core.ports import ScsiTransport
19
19
  from ...core.protocol import get_profile
@@ -132,7 +132,8 @@ class ScsiLcd(BaseDevice[ScsiTransport], wire=Wire.SCSI):
132
132
 
133
133
  def _handshake_detail(self, result: HandshakeResult) -> str:
134
134
  """SCSI reports one byte — call it FBL, since PM *is* FBL here."""
135
- log.debug("_handshake_detail: result=%s", result)
135
+ log.debug("_handshake_detail: result=%s raw=%s",
136
+ result, Blob(result.raw_response))
136
137
  return f" (FBL {result.fbl})"
137
138
 
138
139
  def _frame_size(self) -> tuple[int, int]:
@@ -19,9 +19,10 @@ import usb.core
19
19
  import usb.util
20
20
 
21
21
  from ...core.errors import PermissionError_, TransportError
22
- from ...core.logs import per_frame
22
+ from ...core.logs import Blob, per_frame
23
23
  from ...core.ports import BulkTransport, WriteBuffer
24
24
  from ._pyusb_find import find as usb_find
25
+ from ._pyusb_find import find_unit
25
26
 
26
27
  # Optional hidapi backend (the [hid] extra)
27
28
  try:
@@ -103,26 +104,40 @@ class PyUsbBulkTransport(BulkTransport):
103
104
  """
104
105
 
105
106
  def __init__(self, vid: int, pid: int,
106
- serial: str | None = None) -> None:
107
+ serial: str | None = None, unit: str = "") -> None:
107
108
  self._vid = vid
108
109
  self._pid = pid
109
110
  self._serial = serial
111
+ #: Which physical unit, when several of the model are plugged in
112
+ #: (#287). Empty means "the only one", which is every normal user.
113
+ self._unit = unit
110
114
  self._device: Any = None
111
115
  self._is_open = False
112
116
  self._ep_out: int | None = None
113
117
  self._ep_in: int | None = None
114
- log.debug("PyUsbBulkTransport.__init__: %04x:%04x serial=%s",
115
- vid, pid, serial or "(any)")
118
+ log.debug("PyUsbBulkTransport.__init__: %04x:%04x serial=%s unit=%s",
119
+ vid, pid, serial or "(any)", unit or "(only)")
116
120
 
117
121
  def open(self) -> bool:
118
- kwargs: dict[str, Any] = {'idVendor': self._vid, 'idProduct': self._pid}
119
- if self._serial:
120
- kwargs['serial_number'] = self._serial
121
-
122
- self._device = usb_find(**kwargs)
123
- if self._device is None:
124
- log.error("USB device %04X:%04X not found", self._vid, self._pid)
125
- return False
122
+ if self._unit:
123
+ # A named unit is never satisfied by "whichever one libusb lists
124
+ # first" — that is the bug (#287). Missing means unplugged or
125
+ # moved, and opening the sibling would drive the wrong panel.
126
+ self._device = find_unit(self._vid, self._pid, self._unit)
127
+ if self._device is None:
128
+ log.error("USB device %04X:%04X not present at unit %s",
129
+ self._vid, self._pid, self._unit)
130
+ return False
131
+ else:
132
+ kwargs: dict[str, Any] = {'idVendor': self._vid,
133
+ 'idProduct': self._pid}
134
+ if self._serial:
135
+ kwargs['serial_number'] = self._serial
136
+ self._device = usb_find(**kwargs)
137
+ if self._device is None:
138
+ log.error("USB device %04X:%04X not found",
139
+ self._vid, self._pid)
140
+ return False
126
141
 
127
142
  # 1. Detach kernel drivers from interfaces 0..3. USB cooler
128
143
  # firmware presents multiple interfaces (vendor + HID + mass-
@@ -457,12 +472,65 @@ class _HidBinding(ABC):
457
472
  Raises one of :meth:`open_errors` when the device is absent or
458
473
  inaccessible."""
459
474
 
475
+ @classmethod
476
+ @abstractmethod
477
+ def open_path(cls, path: bytes) -> Any:
478
+ """Open the ONE handle at *path*, hidapi's own device identifier.
479
+
480
+ ``open(vid, pid, serial)`` takes whichever unit hidapi lists first,
481
+ which is why two identical panels both opened the same one (#287).
482
+ Both supported bindings can do this — MEASURED: cython-hidapi exposes
483
+ ``device().open_path``, apmorton's constructor takes ``path=`` — so
484
+ this is a real abstraction over two real APIs, not a hook for one.
485
+ """
486
+
487
+ @classmethod
488
+ def path_for_unit(cls, vid: int, pid: int, unit: str) -> bytes | None:
489
+ """hidapi's path for the *unit* USB port, or ``None``.
490
+
491
+ Shared: ``hid.enumerate`` is identical in both bindings, and the
492
+ entry it returns carries ``bus_type``/``path`` but NOT the USB
493
+ topology — so the two are matched through PyUSB, which does know the
494
+ port. One interface's path is enough, since every interface of one
495
+ physical device hangs off the same port.
496
+ """
497
+ from ._pyusb_find import find_unit
498
+ if not unit or not HIDAPI_AVAILABLE:
499
+ return None
500
+ if find_unit(vid, pid, unit) is None:
501
+ log.warning("path_for_unit: %04x:%04x is not at unit %s",
502
+ vid, pid, unit)
503
+ return None
504
+ entries = [e for e in hidapi.enumerate(vid, pid) if e.get("path")]
505
+ log.info("path_for_unit: %04x:%04x unit=%s -> %d hid interface(s)",
506
+ vid, pid, unit, len(entries))
507
+ if len(entries) <= 1:
508
+ return entries[0]["path"] if entries else None
509
+ # More than one unit of this model is present, so the first entry is
510
+ # exactly the coin-flip this exists to avoid. Ordering hid's
511
+ # enumeration against PyUSB's is not a mapping either library
512
+ # promises, so refuse rather than guess wrong half the time.
513
+ log.warning(
514
+ "path_for_unit: %d hid entries for %04x:%04x — cannot say which "
515
+ "is the unit at %s, so it is not used (#287)",
516
+ len(entries), vid, pid, unit,
517
+ )
518
+ return None
519
+
460
520
 
461
521
  class _CythonHidBinding(_HidBinding):
462
522
  """PyPI ``hidapi`` (cython-hidapi) — ``hid.device``."""
463
523
 
464
524
  CLASS_ATTR: ClassVar[str] = "device"
465
525
 
526
+ @classmethod
527
+ def open_path(cls, path: bytes) -> Any:
528
+ log.info("_CythonHidBinding.open_path: %s", Blob(path))
529
+ handle = cls._require_class()() # ctor takes no useful args
530
+ handle.open_path(path)
531
+ handle.set_nonblocking(0)
532
+ return handle
533
+
466
534
  @classmethod
467
535
  def open(cls, vid: int, pid: int, serial: str | None) -> Any:
468
536
  log.info("_CythonHidBinding.open: %04x:%04x serial=%s",
@@ -478,6 +546,13 @@ class _ApmortonHidBinding(_HidBinding):
478
546
 
479
547
  CLASS_ATTR: ClassVar[str] = "Device"
480
548
 
549
+ @classmethod
550
+ def open_path(cls, path: bytes) -> Any:
551
+ log.info("_ApmortonHidBinding.open_path: %s", Blob(path))
552
+ handle = cls._require_class()(path=path)
553
+ handle.nonblocking = 0
554
+ return handle
555
+
481
556
  @classmethod
482
557
  def open(cls, vid: int, pid: int, serial: str | None) -> Any:
483
558
  log.info("_ApmortonHidBinding.open: %04x:%04x serial=%s",
@@ -495,7 +570,7 @@ class HidApiTransport(BulkTransport):
495
570
  """
496
571
 
497
572
  def __init__(self, vid: int, pid: int,
498
- serial: str | None = None) -> None:
573
+ serial: str | None = None, unit: str = "") -> None:
499
574
  if not HIDAPI_AVAILABLE:
500
575
  raise ImportError(
501
576
  "no hid binding installed — install EITHER python-hidapi or "
@@ -507,10 +582,12 @@ class HidApiTransport(BulkTransport):
507
582
  self._vid = vid
508
583
  self._pid = pid
509
584
  self._serial = serial
585
+ #: Which physical unit (#287); empty means "the only one".
586
+ self._unit = unit
510
587
  self._device: Any = None
511
588
  self._is_open = False
512
- log.debug("HidApiTransport.__init__: %04x:%04x serial=%s",
513
- vid, pid, serial or "(any)")
589
+ log.debug("HidApiTransport.__init__: %04x:%04x serial=%s unit=%s",
590
+ vid, pid, serial or "(any)", unit or "(only)")
514
591
 
515
592
  def open(self) -> bool:
516
593
  binding = _HidBinding.detect()
@@ -533,7 +610,11 @@ class HidApiTransport(BulkTransport):
533
610
  last: BaseException | None = None
534
611
  for attempt in range(1, _HID_OPEN_ATTEMPTS + 1):
535
612
  try:
536
- self._device = binding.open(self._vid, self._pid, self._serial)
613
+ path = binding.path_for_unit(self._vid, self._pid, self._unit)
614
+ self._device = (
615
+ binding.open_path(path) if path is not None
616
+ else binding.open(self._vid, self._pid, self._serial)
617
+ )
537
618
  if attempt > 1:
538
619
  log.info("HidApiTransport.open: %04x:%04x opened on "
539
620
  "attempt %d — the panel was re-enumerating",
@@ -37,7 +37,7 @@ from abc import ABC, abstractmethod
37
37
  from collections.abc import Callable
38
38
  from typing import Any, NamedTuple
39
39
 
40
- from ...core.logs import per_frame
40
+ from ...core.logs import Blob, per_frame
41
41
  from ...core.ports import CpuSource, GpuSource
42
42
 
43
43
  log = logging.getLogger(__name__)
@@ -80,7 +80,7 @@ _SNAPSHOT_TTL_S = 0.1
80
80
 
81
81
  def _decode_cstr(blob: bytes) -> str:
82
82
  """Decode a fixed-length NUL-terminated C string (latin-1, lossless)."""
83
- log.debug("_decode_cstr: blob=%s", blob)
83
+ log.debug("_decode_cstr: blob=%s", Blob(blob))
84
84
  return blob.split(b"\x00", 1)[0].decode("latin-1", errors="replace").strip()
85
85
 
86
86
 
@@ -100,7 +100,7 @@ class _Header(NamedTuple):
100
100
 
101
101
  def _parse_header(buf: bytes) -> _Header:
102
102
  """Decode the 44-byte header. Raises ValueError on bad magic / short buffer."""
103
- log.debug("_parse_header: buf=%s", buf)
103
+ log.debug("_parse_header: buf=%s", Blob(buf))
104
104
  if len(buf) < _HEADER_SIZE:
105
105
  raise ValueError(
106
106
  f"HWiNFO header too short: {len(buf)} < {_HEADER_SIZE}",
@@ -134,7 +134,7 @@ class _BytesMapping(_MappingPort):
134
134
  """Test seam — wraps a ``bytes`` buffer captured from a real MMF dump."""
135
135
 
136
136
  def __init__(self, data: bytes) -> None:
137
- log.debug("__init__: data=%s", data)
137
+ log.debug("__init__: data=%s", Blob(data))
138
138
  self._data = data
139
139
 
140
140
  def read(self, offset: int, length: int) -> bytes:
@@ -554,7 +554,7 @@ def discover_hwinfo_gpus(
554
554
 
555
555
  def _snapshot_from_bytes(data: bytes) -> _Snapshot:
556
556
  """Build a snapshot from a raw MMF byte buffer — used by tests."""
557
- log.debug("_snapshot_from_bytes: data=%s", data)
557
+ log.debug("_snapshot_from_bytes: data=%s", Blob(data))
558
558
  return _Snapshot(_BytesMapping(data))
559
559
 
560
560
 
@@ -33,7 +33,7 @@ import logging
33
33
  import struct
34
34
  from typing import Protocol
35
35
 
36
- from ...core.logs import per_frame
36
+ from ...core.logs import Blob, per_frame
37
37
 
38
38
  log = logging.getLogger(__name__)
39
39
  #: Per-tick readers — their records must never be CONSTRUCTED at
@@ -146,7 +146,7 @@ def _parse_smc_bytes(data_type: int, raw: bytes, size: int) -> float:
146
146
  Pure function — no ctypes I/O, no platform check. ``raw`` is the
147
147
  leading ``size`` bytes from ``SMCKeyData_t.bytes``.
148
148
  """
149
- log.debug("_parse_smc_bytes: data_type=%s raw=%s", data_type, raw)
149
+ log.debug("_parse_smc_bytes: data_type=%s raw=%s", data_type, Blob(raw))
150
150
  dt = _datatype_to_str(data_type).rstrip()
151
151
  body = bytes(raw[:size])
152
152
  if len(body) < 1: