From 0a2d33924a534d1dcdcdc02b92c82b9a36e594bc Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Fri, 19 Sep 2025 14:11:04 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=B1=D0=B5=D1=82=D0=B0=20uart=20=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- botterm/.vs/botterm/v16/.suo | Bin 72192 -> 67584 bytes botterm/botterm/BootloaderCommands.cs | 2 + botterm/botterm/CanInterface.cs | 8 +- botterm/botterm/Program.cs | 245 +++++++++++++----- botterm/botterm/UartInterface.cs | 199 ++++++++++++++ botterm/botterm/bin/Debug/botterm.exe | Bin 29184 -> 33792 bytes botterm/botterm/bin/Debug/botterm.pdb | Bin 69120 -> 81408 bytes botterm/botterm/botterm.csproj | 5 +- .../DesignTimeResolveAssemblyReferences.cache | Bin 277 -> 11 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 7163 -> 7227 bytes .../botterm.csproj.AssemblyReference.cache | Bin 1623 -> 6035 bytes .../botterm.csproj.CoreCompileInputs.cache | 2 +- botterm/botterm/obj/Debug/botterm.exe | Bin 29184 -> 33792 bytes botterm/botterm/obj/Debug/botterm.pdb | Bin 69120 -> 81408 bytes 14 files changed, 386 insertions(+), 75 deletions(-) create mode 100644 botterm/botterm/UartInterface.cs diff --git a/botterm/.vs/botterm/v16/.suo b/botterm/.vs/botterm/v16/.suo index 09b380d9161da4d31cb07f72cc387611e1bfcd0a..59c698317c8ecc891c1ac509f1631d9a5447180e 100644 GIT binary patch delta 5273 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 diff --git a/botterm/botterm/BootloaderCommands.cs b/botterm/botterm/BootloaderCommands.cs index c9a533f..03dd5f3 100644 --- a/botterm/botterm/BootloaderCommands.cs +++ b/botterm/botterm/BootloaderCommands.cs @@ -16,6 +16,8 @@ namespace BootloaderGUI public const byte RESET = 0x05; public const byte GO_TO_BOOT = 0x06; + public const byte PING = 0xAA; + public const int PAGE_SIZE = 2048; public const int CAN_ID_BOOTLOADER = 0x123; // Если нужно, можно добавить дополнительные команды diff --git a/botterm/botterm/CanInterface.cs b/botterm/botterm/CanInterface.cs index 1637aab..41b7adc 100644 --- a/botterm/botterm/CanInterface.cs +++ b/botterm/botterm/CanInterface.cs @@ -7,7 +7,7 @@ using System.Collections.Concurrent; namespace BootloaderGUI { - public class CanInterface + public class CanInterface : IBootTransport { private const string DLL_NAME = "slcan.dll"; public IntPtr hDevice { get; private set; } = IntPtr.Zero; @@ -198,6 +198,7 @@ namespace BootloaderGUI return false; } + StartBackgroundReceive(); statusText = $"Connected to device 0 (devices: {count}) at {bitrateCode}"; return true; } @@ -406,7 +407,10 @@ namespace BootloaderGUI } - + public bool Connect(ushort bitrateCode, out string statusText) + { + return ConnectFirstDevice(bitrateCode, out statusText); + } public void Disconnect() diff --git a/botterm/botterm/Program.cs b/botterm/botterm/Program.cs index 82b4f99..8bdda65 100644 --- a/botterm/botterm/Program.cs +++ b/botterm/botterm/Program.cs @@ -5,8 +5,67 @@ using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; +using System; +using System.IO.Ports; +using System.Windows.Forms; + namespace BootloaderGUI { + public class SelectUartDialog : Form + { + private ComboBox comboPorts; + private ComboBox comboBaud; + private Button ok, cancel; + + public string SelectedPort => comboPorts.SelectedItem?.ToString(); + public int SelectedBaudRate => int.Parse(comboBaud.SelectedItem?.ToString()); + + public SelectUartDialog() + { + this.Text = "Select UART Port"; + this.Width = 300; + this.Height = 180; + this.FormBorderStyle = FormBorderStyle.FixedDialog; + this.StartPosition = FormStartPosition.CenterParent; + this.MaximizeBox = false; + this.MinimizeBox = false; + + Label lbl1 = new Label() { Text = "COM Port:", Left = 10, Top = 20, Width = 80 }; + comboPorts = new ComboBox() { Left = 100, Top = 20, Width = 150 }; + comboPorts.Items.AddRange(SerialPort.GetPortNames()); + if (comboPorts.Items.Count > 0) comboPorts.SelectedIndex = 0; + + Label lbl2 = new Label() { Text = "Baud Rate:", Left = 10, Top = 60, Width = 80 }; + comboBaud = new ComboBox() { Left = 100, Top = 60, Width = 150 }; + comboBaud.Items.AddRange(new object[] { "115200", "57600", "38400", "19200", "9600" }); + comboBaud.SelectedIndex = 0; + + ok = new Button() { Text = "OK", Left = 50, Top = 100, Width = 80, DialogResult = DialogResult.OK }; + cancel = new Button() { Text = "Cancel", Left = 150, Top = 100, Width = 80, DialogResult = DialogResult.Cancel }; + + this.Controls.Add(lbl1); + this.Controls.Add(comboPorts); + this.Controls.Add(lbl2); + this.Controls.Add(comboBaud); + this.Controls.Add(ok); + this.Controls.Add(cancel); + this.AcceptButton = ok; + this.CancelButton = cancel; + } + } + + public interface IBootTransport + { + bool Connect(ushort bitrateCode, out string statusText); + void Disconnect(); + bool SendData(byte[] data); + bool SendCmd(byte cmd, out UInt16 error); + bool WaitForResponse(uint timeout, out UInt16 error); + event Action ErrorReceived; + void StopBackgroundReceive(); + void Free(); + } + static class Program { [STAThread] @@ -24,11 +83,13 @@ namespace BootloaderGUI private BootloaderTab regTab; private LowLevelBootloaderTab llTab; private Label lblStatus; - private ProgressBar progressBar; - private Button btnSelect, btnConnect; + private Button btnPing; + private ProgressBar progressBar; + private Button btnSelect, btnConnect, btnDisconnect; + private ComboBox comboTransport; + private IBootTransport transport; // CAN SETTINGS - private CanInterface can; private byte[] fwData = null; @@ -40,7 +101,6 @@ namespace BootloaderGUI public MainForm() { InitializeUI(); - can = new CanInterface(); regTab = new BootloaderTab( @@ -67,7 +127,7 @@ namespace BootloaderGUI { this.Text = "Bootloader Tool"; this.Width = 520; - this.Height = 420; + this.Height = 450; this.FormBorderStyle = FormBorderStyle.FixedDialog; this.MaximizeBox = false; @@ -76,16 +136,59 @@ namespace BootloaderGUI { Top = 10, Left = 10, - Width = 480, - Height = 20, - Text = "Ready" + Width = 340, // подгоняем под нужную ширину + Height = 25, + Text = "Ready", + TextAlign = System.Drawing.ContentAlignment.MiddleLeft }; this.Controls.Add(lblStatus); + // Кнопка Ping справа + btnPing = new Button() + { + Text = "Ping", + Top = 10, + Width = 60, + Height = 25, + Left = lblStatus.Right + 10 // небольшой отступ + }; + btnPing.Click += (s, e) => + { + if (transport == null) + { + MessageBox.Show("Device not connected", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + if (SendCmdSync(BootloaderCommands.PING)) // PING должен быть определён + UpdateStatusOnUI("PING Ok"); + else + UpdateStatusOnUI("PING failed"); + }; + this.Controls.Add(btnPing); + + // Чтобы статус расширялся при ресайзе формы (опционально) + lblStatus.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + btnPing.Anchor = AnchorStyles.Top | AnchorStyles.Right; + + + + // ComboBox выбора транспорта + comboTransport = new ComboBox() + { + Top = lblStatus.Bottom + 10, + Left = 10, + Width = 200, + DropDownStyle = ComboBoxStyle.DropDownList + }; + comboTransport.Items.AddRange(new object[] { "CAN", "UART" }); + comboTransport.SelectedIndex = 0; + this.Controls.Add(comboTransport); + // Кнопки Select Firmware и Connect CAN btnSelect = new Button() { - Top = lblStatus.Bottom + 10, + Top = comboTransport.Bottom + 10, Left = 10, Width = 200, Text = "Select Firmware" @@ -103,32 +206,72 @@ namespace BootloaderGUI Top = lblStatus.Bottom + 10, Left = btnSelect.Right + 10, Width = 200, - Text = "Connect CAN" + Text = "Connect MCU" }; btnConnect.Click += (s, e) => { - ushort? bitrate = CanInterface.CanSpeedDialog.ShowDialog(); - if (bitrate == null) return; - string status; - if (can.ConnectFirstDevice(bitrate.Value, out status)) - { - lblStatus.Text = status; - // запуск фонового приёма - can.ErrorReceived -= Can_ErrorReceived; // безопасно удалить старую подписку - can.ErrorReceived += Can_ErrorReceived; - can.StartBackgroundReceive(); - } - else + if (comboTransport.SelectedItem.ToString() == "CAN") { - lblStatus.Text = "Connect failed"; + transport = new CanInterface(); + ushort? bitrate = CanInterface.CanSpeedDialog.ShowDialog(); + if (bitrate == null) return; + + if (transport.Connect(bitrate.Value, out status)) + { + lblStatus.Text = status; + transport.ErrorReceived += Can_ErrorReceived; + } + else + { + lblStatus.Text = "CAN connect failed"; + MessageBox.Show("CAN connect failed", "Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + } + else if (comboTransport.SelectedItem.ToString() == "UART") + { + transport = new UartInterface(); + if (transport.Connect(0, out status)) // для UART bitrateCode не используется + { + lblStatus.Text = status; + transport.ErrorReceived += Can_ErrorReceived; + } + else + { + lblStatus.Text = "UART connect failed"; + MessageBox.Show("UART connect failed", "Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } } }; + btnDisconnect = new Button() + { + Top = comboTransport.Bottom + 10, + Left = btnSelect.Right + 10, + Width = 200, + Text = "Disconnect" + }; + btnDisconnect.Click += (s, e) => + { + try + { + transport?.StopBackgroundReceive(); + transport?.Disconnect(); + transport?.Free(); + lblStatus.Text = "Disconnected"; + } + catch (Exception ex) + { + MessageBox.Show($"Error during disconnect: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + }; + + this.Controls.Add(btnSelect); this.Controls.Add(btnConnect); + this.Controls.Add(btnDisconnect); // создаём TabControl ниже кнопок tabControl = new TabControl() @@ -166,54 +309,14 @@ namespace BootloaderGUI { try { - can?.StopBackgroundReceive(); - can?.Disconnect(); - can?.Free(); + transport?.StopBackgroundReceive(); + transport?.Disconnect(); + transport?.Free(); } catch { } } - private void ConnectCan() - { - using (var dlg = new Form()) - { - dlg.Text = "Select CAN Speed"; - dlg.Width = 300; - dlg.Height = 200; - var combo = new ComboBox() { Left = 20, Top = 20, Width = 200 }; - combo.Items.AddRange(new object[] - { - new { Text="1000K", Value=CanInterface.SLCAN_BR_CIA_1000K }, - new { Text="800K", Value=CanInterface.SLCAN_BR_CIA_800K }, - new { Text="500K", Value=CanInterface.SLCAN_BR_CIA_500K }, - new { Text="250K", Value=CanInterface.SLCAN_BR_CIA_250K }, - new { Text="125K", Value=CanInterface.SLCAN_BR_CIA_125K }, - }); - combo.DisplayMember = "Text"; - combo.ValueMember = "Value"; - combo.SelectedIndex = 3; // по умолчанию 250K - - var ok = new Button() { Text = "OK", Left = 20, Top = 60, DialogResult = DialogResult.OK }; - dlg.Controls.Add(combo); - dlg.Controls.Add(ok); - dlg.AcceptButton = ok; - - if (dlg.ShowDialog() == DialogResult.OK) - { - ushort bitrate = (ushort)((dynamic)combo.SelectedItem).Value; - - if (can.ConnectFirstDevice(bitrate, out string status)) - lblStatus.Text = status; - else - { - MessageBox.Show(status, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - lblStatus.Text = status; - } - } - } - } - private int ReadFirmware() { @@ -287,7 +390,7 @@ namespace BootloaderGUI byte[] chunk = new byte[8]; Array.Copy(full, offset, chunk, 0, chunkLen); - if (!can.SendData(chunk)) + if (!transport.SendData(chunk)) { UpdateStatusOnUI($"Failed to send data chunk at offset {offset}"); return; @@ -297,13 +400,13 @@ namespace BootloaderGUI int percent = (int)((sentBytes * 100L) / totalBytes); UpdateProgressOnUI(percent); - Thread.Sleep(1); // throttle + Thread.Sleep(5); // throttle } UpdateProgressOnUI(100); - if(can.WaitForResponse(timeout, out error)) + if(transport.WaitForResponse(timeout, out error)) { UpdateStatusOnUI($"Page {pageNum} sent (RECEIVE)"); } @@ -326,13 +429,13 @@ namespace BootloaderGUI private bool SendCmdSync(byte cmd) { - if (can == null) + if (transport == null) { MessageBox.Show("CAN device not connected", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } - if (!can.SendCmd(cmd, out UInt16 error)) + if (!transport.SendCmd(cmd, out UInt16 error)) { if ((error == 0xFFFF) && cmd != (BootloaderCommands.RESET) && (cmd != BootloaderCommands.JUMP)) { diff --git a/botterm/botterm/UartInterface.cs b/botterm/botterm/UartInterface.cs new file mode 100644 index 0000000..ec0fa4c --- /dev/null +++ b/botterm/botterm/UartInterface.cs @@ -0,0 +1,199 @@ +using System; +using System.IO.Ports; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Concurrent; + +namespace BootloaderGUI +{ + public class UartInterface : IBootTransport + { + private SerialPort port; + private CancellationTokenSource rxCts; + private ConcurrentQueue rxQueue = new ConcurrentQueue(); + private bool waitingForResponse = false; + + public event Action ErrorReceived; + public bool Connect(ushort bitrateCode, out string status) + { + status = ""; + + using (var dlg = new SelectUartDialog()) + { + if (dlg.ShowDialog() != System.Windows.Forms.DialogResult.OK) + { + status = "UART connect cancelled"; + return false; + } + + try + { + port = new SerialPort(dlg.SelectedPort, dlg.SelectedBaudRate) + { + Parity = Parity.None, + StopBits = StopBits.One, + DataBits = 8, + Handshake = Handshake.None, + ReadTimeout = 500, + WriteTimeout = 500 + }; + port.Open(); + + StartBackgroundReceive(); + status = $"UART connected ({dlg.SelectedPort}, {dlg.SelectedBaudRate} baud)"; + return true; + } + catch (Exception ex) + { + status = $"UART connect failed: {ex.Message}"; + return false; + } + } + } + + + public void Disconnect() + { + try + { + StopBackgroundReceive(); + port?.Close(); + port = null; + } + catch { } + } + + public bool SendData(byte[] data) + { + if (port == null || !port.IsOpen) return false; + try + { + port.Write(data, 0, data.Length); + return true; + } + catch { return false; } + } + + public bool SendCmd(byte cmd, out UInt16 error) + { + error = 0; + if (port == null || !port.IsOpen) return false; + + byte[] frame = new byte[1] { cmd }; + if (!SendData(frame)) return false; + + // Таймаут: ERASE — 10с, остальные — 1с + uint timeout = (cmd == BootloaderCommands.ERASE) ? 10000u : 1000u; + + if (cmd != BootloaderCommands.JUMP) + { + return WaitForResponse(timeout, out error); + } + else + { + return true; + } + } + + public bool WaitForResponse(uint timeoutMs, out UInt16 error) + { + error = 0; + waitingForResponse = true; + + DateTime start = DateTime.Now; + while ((DateTime.Now - start).TotalMilliseconds < timeoutMs) + { + if (rxQueue.TryDequeue(out var response)) + { + waitingForResponse = false; + if (response.Length > 0 && response[0] == 0) + return true; + else if (response.Length >= 3) + { + error = (UInt16)((response[1] << 8) | response[2]); + return false; + } + } + Thread.Sleep(1); + } + + waitingForResponse = false; + error = 0xFFFF; + return false; + } + + private void StartBackgroundReceive() + { + rxCts = new CancellationTokenSource(); + Task.Run(() => + { + try + { + byte[] packetBuffer = new byte[3]; + int packetIndex = 0; + bool accumulating = false; + + while (!rxCts.Token.IsCancellationRequested && port != null && port.IsOpen) + { + try + { + int b = port.ReadByte(); // читаем один байт + if (b == -1) continue; + + byte received = (byte)b; + + if (!accumulating) + { + if (received == 0) // ответ на команду + { + if (waitingForResponse) + rxQueue.Enqueue(new byte[] { 0, 0, 0 }); + } + else + { + // начинаем собирать пакет + packetBuffer[0] = received; + packetIndex = 1; + accumulating = true; + } + } + else + { + packetBuffer[packetIndex++] = received; + if (packetIndex == 3) + { + UInt16 err = (UInt16)((packetBuffer[1] << 8) | packetBuffer[2]); + ErrorReceived?.Invoke(err); + + packetIndex = 0; + accumulating = false; + } + } + } + catch (TimeoutException) { } + } + } + catch { } + }, rxCts.Token); + } + + + + public void StopBackgroundReceive() + { + try + { + rxCts?.Cancel(); + } + catch { } + } + + public void Free() + { + // Для UART освобождать особо нечего, + // можно просто вызвать Disconnect() + Disconnect(); + } + + } +} diff --git a/botterm/botterm/bin/Debug/botterm.exe b/botterm/botterm/bin/Debug/botterm.exe index 0de060a8d2768a30b244efb61841d4cda1a5d510..d09761665805967bdd14b741382d933ae1cddb5b 100644 GIT binary patch literal 33792 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 Gf&T*~km7v+ delta 13445 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 b8@(^Q@e9MBcmJ26?}qQQFaJzztF!(GfH5R0 diff --git a/botterm/botterm/bin/Debug/botterm.pdb b/botterm/botterm/bin/Debug/botterm.pdb index f6f96b792b31b88b27893653616890f4a6576831..db0d3993e7a4417abb9c6ab48b34a94744bac3c6 100644 GIT binary patch literal 81408 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 Kv;_XK68Qgt;H6Li literal 69120 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 diff --git a/botterm/botterm/botterm.csproj b/botterm/botterm/botterm.csproj index 9d9e726..899b417 100644 --- a/botterm/botterm/botterm.csproj +++ b/botterm/botterm/botterm.csproj @@ -52,8 +52,11 @@ - + + Form + + ResXFileCodeGenerator diff --git a/botterm/botterm/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/botterm/botterm/obj/Debug/DesignTimeResolveAssemblyReferences.cache index 6af2086f186e193566089edbd1be0dbe07ebbbdf..f5e894aea93a73e58fa9d4feab241bc197ee1a40 100644 GIT binary patch literal 11 QcmeZu3JP{+WMlvW01Ze1dH?_b literal 277 zcmeZu3JP{+WMpDsU|>vhwu%WT%1eiPV~h+8En}SXb8}1c eGD|AKto%Il7*7}1$rpH(7(>X^yjh0#J|6&qjW6H; delta 26 icmdmO@!NdEG9E^^$v-5tCV%8nocvuvdvh%BJw5=QuL~mp diff --git a/botterm/botterm/obj/Debug/botterm.csproj.AssemblyReference.cache b/botterm/botterm/obj/Debug/botterm.csproj.AssemblyReference.cache index 1228a24771f4934fb130b98dc1bd273a04565ada..a7d294a47148da075df7dd11acbe878c06c049d9 100644 GIT binary patch literal 6035 zcmeHLO>fgc5cPgfXvIe_sHCYl&{F2`J6`a|1y#d$0SRNw|7T^lAbsH$ z=^JR9y_U(!^2*a!9_%%841cOLi%Sl1#fA=`<<1FL?HNlxaF#tx&+S3WEWe)y9~M`C zd`aIJEBCW)x``O@;Y3o+6H&?Hx7T}T3+L@MXR)1G{1iu(?BqSO*78vvH5p~&EP2Pp zVM(|xUC_df6C8l+7eTHOV1T6zsGW(>JZ8jalGBKvR;NH7I)J$usU)l6Vvz$!O>$s^ zYD(;v&vfrZGog$WR0$)j-q0A~Vr4h35i1-@IA^*EGH|>R;ASO(bo~*PBxD4qE!@t#mu>$&`gdcSIm^XBObD9QOx^S z6wv2J1;oZtGL4zgB{I5!DI>=;pM?|2^|Tg-SbDT^7+U`KRH%p)3g%RsB~G~ zv%D_paXr}-X*q0^mKP3}a1ym+!GPbPhSl{HBi(4XvduJkt999Z=bsBTlG2J1j+^9i zPR=EaZewOyJjDb2&)AkJ7n7d9HSxH$9-8}u;`=&eEf#MdghPcB`>axH#Z ztEe{jAVvIyj%)0chCDYD3!7A@oz@f^2-LP5qsrWMVA_VqKaA>4#PDZzMbsMY`|MDm a1UA(98U}1w_f(gPQQ9#|Ip{EW3@a<6FaWF`)=$=A3#C+G6E0p)ThyYNd* fwiM`@d|kK+DBsM_z`)2=W};`HXKY|>XvqKo9o!hG diff --git a/botterm/botterm/obj/Debug/botterm.csproj.CoreCompileInputs.cache b/botterm/botterm/obj/Debug/botterm.csproj.CoreCompileInputs.cache index e30f43b..7109b84 100644 --- a/botterm/botterm/obj/Debug/botterm.csproj.CoreCompileInputs.cache +++ b/botterm/botterm/obj/Debug/botterm.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -6e4f7064cd453f33ddf5825a7ce97a1c149aef21 +53453d69e3ea95b15cdc39cca4e57903e0f3fae9 diff --git a/botterm/botterm/obj/Debug/botterm.exe b/botterm/botterm/obj/Debug/botterm.exe index 0de060a8d2768a30b244efb61841d4cda1a5d510..d09761665805967bdd14b741382d933ae1cddb5b 100644 GIT binary patch literal 33792 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 Gf&T*~km7v+ delta 13445 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 b8@(^Q@e9MBcmJ26?}qQQFaJzztF!(GfH5R0 diff --git a/botterm/botterm/obj/Debug/botterm.pdb b/botterm/botterm/obj/Debug/botterm.pdb index f6f96b792b31b88b27893653616890f4a6576831..db0d3993e7a4417abb9c6ab48b34a94744bac3c6 100644 GIT binary patch literal 81408 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 Kv;_XK68Qgt;H6Li literal 69120 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