@onekeyfe/hd-core 1.2.0-alpha.184 → 1.2.0-alpha.186

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.
@@ -33,8 +33,6 @@ const validComponentIntegrity = {
33
33
  const release: IFirmwareReleaseInfo = {
34
34
  required: true,
35
35
  version: [2, 0, 0],
36
- url: 'https://example.com/application-p1.bin',
37
- fingerprint: 'release-fingerprint',
38
36
  changelog: {
39
37
  'zh-CN': '更新',
40
38
  'en-US': 'Update',
@@ -16,8 +16,6 @@ jest.mock('../src/data/config', () => ({
16
16
  const release: IFirmwareReleaseInfo = {
17
17
  required: false,
18
18
  version: [2, 0, 0],
19
- url: 'https://example.com/application-p1.okpkg',
20
- fingerprint: 'release-fingerprint',
21
19
  changelog: {
22
20
  'zh-CN': '更新',
23
21
  'en-US': 'Update',
@@ -36,7 +36,12 @@ describe('FirmwareUpdateV4 install polling', () => {
36
36
  records: [
37
37
  {
38
38
  target_id: 4,
39
- status: 'FW_MGMT_UPDATER_TASK_STATUS_PENDING',
39
+ status: 'FW_MGMT_UPDATER_TASK_STATUS_IN_PROGRESS',
40
+ progress_percent: 42,
41
+ phase_info: {
42
+ phase: 'FW_MGMT_UPDATER_PHASE_INSTALL',
43
+ progress_percent: 60,
44
+ },
40
45
  path: 'vol0:/application_p1.bin',
41
46
  },
42
47
  ],
@@ -101,13 +106,26 @@ describe('FirmwareUpdateV4 install polling', () => {
101
106
  await firmwareUpdate.waitForProtocolV2FirmwareUpdateComplete(targets, true);
102
107
 
103
108
  expect(typedCall.mock.calls[1]?.[0]).toBe('DeviceFirmwareUpdateStatusGet');
104
- expect(method.postProgressMessage).toHaveBeenCalledWith(1, 'installingFirmware');
109
+ expect(typedCall.mock.calls[1]?.[2]).toEqual({
110
+ fields: {
111
+ status: true,
112
+ progress_percent: true,
113
+ phase_info: true,
114
+ payload_version: true,
115
+ path: true,
116
+ },
117
+ });
118
+ expect(method.postProgressMessage).toHaveBeenCalledWith(42, 'installingFirmware', {
119
+ installTargetId: 4,
120
+ installPhase: 'install',
121
+ installPhaseProgress: 60,
122
+ });
105
123
  expect(method.postProgressMessage).toHaveBeenCalledWith(100, 'installingFirmware');
106
124
  expect(call.mock.invocationCallOrder[0]).toBeLessThan(typedCall.mock.invocationCallOrder[1]);
107
125
  expect(setCancelableAction).toHaveBeenCalledTimes(2);
108
126
  });
109
127
 
110
- test('accepts finished USB status after the Request terminal Success arrives', async () => {
128
+ test('accepts path-less finished USB status after the Request terminal Success arrives', async () => {
111
129
  const method = new FirmwareUpdateV4({
112
130
  id: 1,
113
131
  payload: {
@@ -126,7 +144,6 @@ describe('FirmwareUpdateV4 install polling', () => {
126
144
  {
127
145
  target_id: 4,
128
146
  status: 'FW_MGMT_UPDATER_TASK_STATUS_FINISHED',
129
- path: 'vol0:/application_p1.bin',
130
147
  },
131
148
  ],
132
149
  },
@@ -318,6 +335,142 @@ describe('FirmwareUpdateV4 install polling', () => {
318
335
  expect(method.postProgressMessage).toHaveBeenCalledWith(100, 'installingFirmware');
319
336
  });
320
337
 
338
+ test('accepts stable finished BLE status after an actual install disconnect hides in-progress', async () => {
339
+ const method = new FirmwareUpdateV4({
340
+ id: 1,
341
+ payload: {
342
+ method: 'firmwareUpdateV4',
343
+ connectId: 'pro2-ble',
344
+ },
345
+ });
346
+ const targets = [{ target_id: 6, path: 'vol0:/coprocessor.bin' }];
347
+ const finishedStatus = {
348
+ type: 'DeviceFirmwareUpdateStatus',
349
+ message: {
350
+ records: [
351
+ {
352
+ target_id: 6,
353
+ status: 'FW_MGMT_UPDATER_TASK_STATUS_FINISHED',
354
+ payload_version: 65_556,
355
+ path: 'vol0:/coprocessor.bin',
356
+ },
357
+ ],
358
+ },
359
+ };
360
+ const typedCall = jest
361
+ .fn()
362
+ .mockResolvedValueOnce(finishedStatus)
363
+ .mockImplementationOnce(() => {
364
+ expect(method.postProgressMessage).not.toHaveBeenCalled();
365
+ throw new Error('device was disconnected');
366
+ })
367
+ .mockResolvedValueOnce(finishedStatus)
368
+ .mockImplementationOnce(() => {
369
+ expect(method.postProgressMessage).toHaveBeenCalledTimes(1);
370
+ expect(method.postProgressMessage).toHaveBeenCalledWith(1, 'installingFirmware');
371
+ return finishedStatus;
372
+ })
373
+ .mockResolvedValueOnce(finishedStatus)
374
+ .mockResolvedValueOnce(finishedStatus)
375
+ .mockRejectedValueOnce(ERRORS.TypedError(HardwareErrorCode.ActionCancelled));
376
+ const reconnectProtocolV2Device = jest.fn().mockResolvedValue(undefined);
377
+
378
+ (method as any).params = {
379
+ expectedTargetVersions: { coprocessor: '1.0.20' },
380
+ };
381
+
382
+ method.device = {
383
+ getCommands: () => ({ typedCall }),
384
+ setCancelableAction: jest.fn(),
385
+ } as unknown as Device;
386
+ method.postProgressMessage = jest.fn();
387
+
388
+ const firmwareUpdate = method as unknown as {
389
+ waitForProtocolV2FirmwareUpdateComplete: (
390
+ value: typeof targets,
391
+ requireCurrentInstallStatus: boolean
392
+ ) => Promise<void>;
393
+ reconnectProtocolV2Device: (options: { skipProtocolProbe: boolean }) => Promise<void>;
394
+ };
395
+ firmwareUpdate.reconnectProtocolV2Device = reconnectProtocolV2Device;
396
+ (method as any).isBleReconnect = jest.fn(() => true);
397
+
398
+ await firmwareUpdate.waitForProtocolV2FirmwareUpdateComplete(targets, true);
399
+
400
+ expect(reconnectProtocolV2Device).toHaveBeenCalledWith({ skipProtocolProbe: true });
401
+ expect(typedCall).toHaveBeenCalledTimes(6);
402
+ expect(method.postProgressMessage).toHaveBeenNthCalledWith(1, 1, 'installingFirmware');
403
+ expect(method.postProgressMessage).toHaveBeenNthCalledWith(2, 100, 'installingFirmware');
404
+ expect(method.postProgressMessage).toHaveBeenCalledTimes(2);
405
+ }, 10_000);
406
+
407
+ test('rejects stable stale finished BLE status after a status response timeout', async () => {
408
+ const method = new FirmwareUpdateV4({
409
+ id: 1,
410
+ payload: {
411
+ method: 'firmwareUpdateV4',
412
+ connectId: 'pro2-ble',
413
+ },
414
+ });
415
+ const targets = [{ target_id: 6, path: 'vol0:/coprocessor.bin' }];
416
+ const finishedStatus = {
417
+ type: 'DeviceFirmwareUpdateStatus',
418
+ message: {
419
+ records: [
420
+ {
421
+ target_id: 6,
422
+ status: 'FW_MGMT_UPDATER_TASK_STATUS_FINISHED',
423
+ payload_version: 65_556,
424
+ path: 'vol0:/coprocessor.bin',
425
+ },
426
+ ],
427
+ },
428
+ };
429
+ const typedCall = jest
430
+ .fn()
431
+ .mockResolvedValueOnce(finishedStatus)
432
+ .mockRejectedValueOnce(
433
+ ERRORS.TypedError(
434
+ HardwareErrorCode.BleTimeoutError,
435
+ 'Lowlevel response timeout after 15000ms for DeviceFirmwareUpdateStatusGet'
436
+ )
437
+ )
438
+ .mockResolvedValueOnce(finishedStatus)
439
+ .mockResolvedValueOnce(finishedStatus)
440
+ .mockResolvedValueOnce(finishedStatus)
441
+ .mockResolvedValueOnce(finishedStatus)
442
+ .mockRejectedValueOnce(ERRORS.TypedError(HardwareErrorCode.ActionCancelled));
443
+ const reconnectProtocolV2Device = jest.fn().mockResolvedValue(undefined);
444
+
445
+ (method as any).params = {
446
+ expectedTargetVersions: { coprocessor: '1.0.20' },
447
+ };
448
+ method.device = {
449
+ getCommands: () => ({ typedCall }),
450
+ setCancelableAction: jest.fn(),
451
+ } as unknown as Device;
452
+ method.postProgressMessage = jest.fn();
453
+
454
+ const firmwareUpdate = method as unknown as {
455
+ waitForProtocolV2FirmwareUpdateComplete: (
456
+ value: typeof targets,
457
+ requireCurrentInstallStatus: boolean
458
+ ) => Promise<void>;
459
+ reconnectProtocolV2Device: (options: { skipProtocolProbe: boolean }) => Promise<void>;
460
+ };
461
+ firmwareUpdate.reconnectProtocolV2Device = reconnectProtocolV2Device;
462
+ (method as any).isBleReconnect = jest.fn(() => true);
463
+
464
+ await expect(
465
+ firmwareUpdate.waitForProtocolV2FirmwareUpdateComplete(targets, true)
466
+ ).rejects.toMatchObject({
467
+ errorCode: HardwareErrorCode.ActionCancelled,
468
+ });
469
+
470
+ expect(reconnectProtocolV2Device).toHaveBeenCalledWith({ skipProtocolProbe: true });
471
+ expect(method.postProgressMessage).not.toHaveBeenCalled();
472
+ }, 10_000);
473
+
321
474
  test('confirms App mode when BLE status becomes empty after current install progress', async () => {
322
475
  const method = new FirmwareUpdateV4({
323
476
  id: 1,
@@ -66,8 +66,6 @@ const createRemoteConfig = (): RemoteConfigResponse =>
66
66
  {
67
67
  required: false,
68
68
  version: [1, 0, 0],
69
- url: 'https://example.com/pro2.okpkg',
70
- fingerprint: 'a'.repeat(64),
71
69
  changelog: { 'zh-CN': 'Pro2', 'en-US': 'Pro2' },
72
70
  resources: { source: resourceSource },
73
71
  },
@@ -79,8 +77,6 @@ const createRemoteConfig = (): RemoteConfigResponse =>
79
77
  {
80
78
  required: false,
81
79
  version: [1, 0, 0],
82
- url: 'https://example.com/neo.okpkg',
83
- fingerprint: 'b'.repeat(64),
84
80
  changelog: { 'zh-CN': 'Neo', 'en-US': 'Neo' },
85
81
  resources: { source: neoResourceSource },
86
82
  },
@@ -5391,6 +5391,108 @@ describe('Protocol V2 firmware update targets', () => {
5391
5391
  });
5392
5392
  });
5393
5393
 
5394
+ test('treats a typed BLE disconnect during Protocol V2 normal reboot as expected', async () => {
5395
+ const method = new FirmwareUpdateV4({
5396
+ id: 1,
5397
+ payload: {
5398
+ method: 'firmwareUpdateV4',
5399
+ },
5400
+ });
5401
+ const typedCall = jest
5402
+ .fn()
5403
+ .mockRejectedValue(ERRORS.TypedError(HardwareErrorCode.BleDeviceDisconnected));
5404
+
5405
+ (method as any).device = stubDevice({
5406
+ getCommands: () => ({ typedCall }),
5407
+ });
5408
+
5409
+ await expect((method as any).protocolV2Reboot(DeviceRebootType.Normal)).resolves.toEqual({
5410
+ message: 'Device rebooted successfully',
5411
+ });
5412
+ expect((method as any).device.markProtocolV2Reboot).toHaveBeenCalledWith(
5413
+ DeviceRebootType.Normal
5414
+ );
5415
+ });
5416
+
5417
+ test('uses a short timeout and continues after a BLE reboot response timeout', async () => {
5418
+ const method = new FirmwareUpdateV4({
5419
+ id: 1,
5420
+ payload: {
5421
+ method: 'firmwareUpdateV4',
5422
+ },
5423
+ });
5424
+ const typedCall = jest
5425
+ .fn()
5426
+ .mockRejectedValue(
5427
+ ERRORS.TypedError(
5428
+ HardwareErrorCode.BleTimeoutError,
5429
+ 'Lowlevel response timeout after 5000ms for DeviceReboot'
5430
+ )
5431
+ );
5432
+
5433
+ (method as any).device = stubDevice({
5434
+ getCommands: () => ({ typedCall }),
5435
+ });
5436
+
5437
+ await expect((method as any).protocolV2Reboot(DeviceRebootType.Normal)).resolves.toEqual({
5438
+ message: 'Device rebooted successfully',
5439
+ });
5440
+ expect(typedCall).toHaveBeenCalledWith(
5441
+ 'DeviceReboot',
5442
+ 'Success',
5443
+ { reboot_type: DeviceRebootType.Normal },
5444
+ { timeoutMs: 5000 }
5445
+ );
5446
+ expect((method as any).device.markProtocolV2Reboot).toHaveBeenCalledWith(
5447
+ DeviceRebootType.Normal
5448
+ );
5449
+ });
5450
+
5451
+ test('continues after a USB Protocol V2 reboot response timeout', async () => {
5452
+ const method = new FirmwareUpdateV4({
5453
+ id: 1,
5454
+ payload: {
5455
+ method: 'firmwareUpdateV4',
5456
+ },
5457
+ });
5458
+ const timeoutError = Object.assign(
5459
+ new Error('Protocol V2 response timeout after 5000ms for DeviceReboot'),
5460
+ { code: 'response-timeout' }
5461
+ );
5462
+ const typedCall = jest.fn().mockRejectedValue(timeoutError);
5463
+
5464
+ (method as any).device = stubDevice({
5465
+ getCommands: () => ({ typedCall }),
5466
+ });
5467
+
5468
+ await expect((method as any).protocolV2Reboot(DeviceRebootType.Normal)).resolves.toEqual({
5469
+ message: 'Device rebooted successfully',
5470
+ });
5471
+ expect((method as any).device.markProtocolV2Reboot).toHaveBeenCalledWith(
5472
+ DeviceRebootType.Normal
5473
+ );
5474
+ });
5475
+
5476
+ test('propagates non-transport errors from a Protocol V2 reboot', async () => {
5477
+ const method = new FirmwareUpdateV4({
5478
+ id: 1,
5479
+ payload: {
5480
+ method: 'firmwareUpdateV4',
5481
+ },
5482
+ });
5483
+ const rebootError = new Error('Device rejected reboot');
5484
+ const typedCall = jest.fn().mockRejectedValue(rebootError);
5485
+
5486
+ (method as any).device = stubDevice({
5487
+ getCommands: () => ({ typedCall }),
5488
+ });
5489
+
5490
+ await expect((method as any).protocolV2Reboot(DeviceRebootType.Normal)).rejects.toBe(
5491
+ rebootError
5492
+ );
5493
+ expect((method as any).device.markProtocolV2Reboot).not.toHaveBeenCalled();
5494
+ });
5495
+
5394
5496
  test('treats Android BLE transport release during Protocol V2 reboot as expected', async () => {
5395
5497
  const method = new FirmwareUpdateV4({
5396
5498
  id: 1,
@@ -6896,6 +6998,8 @@ describe('Protocol V2 firmware update targets', () => {
6896
6998
  {
6897
6999
  fields: {
6898
7000
  status: true,
7001
+ progress_percent: true,
7002
+ phase_info: true,
6899
7003
  payload_version: true,
6900
7004
  path: true,
6901
7005
  },
@@ -9429,7 +9533,16 @@ describe('Protocol V2 firmware update method', () => {
9429
9533
  test('passes firmware update status fields through to Protocol V2', async () => {
9430
9534
  const typedCall = jest.fn().mockResolvedValue({
9431
9535
  message: {
9432
- records: [{ target_id: 4, status: 2, payload_version: 1, path: 'vol1:application_p1.bin' }],
9536
+ records: [
9537
+ {
9538
+ target_id: 4,
9539
+ status: 1,
9540
+ progress_percent: 42,
9541
+ phase_info: { phase: 1, progress_percent: 60 },
9542
+ payload_version: 1,
9543
+ path: 'vol1:application_p1.bin',
9544
+ },
9545
+ ],
9433
9546
  },
9434
9547
  });
9435
9548
  const method = new DeviceGetFirmwareUpdateStatus({
@@ -9438,6 +9551,8 @@ describe('Protocol V2 firmware update method', () => {
9438
9551
  method: 'deviceGetFirmwareUpdateStatus',
9439
9552
  fields: {
9440
9553
  status: true,
9554
+ progress_percent: true,
9555
+ phase_info: true,
9441
9556
  payload_version: true,
9442
9557
  path: true,
9443
9558
  },
@@ -9449,7 +9564,16 @@ describe('Protocol V2 firmware update method', () => {
9449
9564
  });
9450
9565
 
9451
9566
  await expect(method.run()).resolves.toEqual({
9452
- records: [{ target_id: 4, status: 2, payload_version: 1, path: 'vol1:application_p1.bin' }],
9567
+ records: [
9568
+ {
9569
+ target_id: 4,
9570
+ status: 1,
9571
+ progress_percent: 42,
9572
+ phase_info: { phase: 1, progress_percent: 60 },
9573
+ payload_version: 1,
9574
+ path: 'vol1:application_p1.bin',
9575
+ },
9576
+ ],
9453
9577
  });
9454
9578
  expect(typedCall).toHaveBeenCalledWith(
9455
9579
  'DeviceFirmwareUpdateStatusGet',
@@ -9457,6 +9581,8 @@ describe('Protocol V2 firmware update method', () => {
9457
9581
  {
9458
9582
  fields: {
9459
9583
  status: true,
9584
+ progress_percent: true,
9585
+ phase_info: true,
9460
9586
  payload_version: true,
9461
9587
  path: true,
9462
9588
  },
@@ -1 +1 @@
1
- {"version":3,"file":"FirmwareUpdateV4.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV4.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FirmwareUpdateV4.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV4.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import type { Deferred } from '@onekeyfe/hd-shared';
7
7
  import type { TypedResponseMessage } from '../../device/DeviceCommands';
8
8
  import type { FirmwareByteSource } from './FirmwareArtifactSource';
9
9
  export declare const BOOTLOADER_POLL_INITIALIZE_TIMEOUT_MS = 5000;
10
- type FirmwareTransferMetrics = Pick<FirmwareProgress['payload'], 'transferredBytes' | 'totalBytes' | 'rateBytesPerSecond' | 'elapsedMs'>;
10
+ type FirmwareProgressMetadata = Pick<FirmwareProgress['payload'], 'transferredBytes' | 'totalBytes' | 'rateBytesPerSecond' | 'elapsedMs' | 'installTargetId' | 'installPhase' | 'installPhaseProgress'>;
11
11
  export declare class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
12
12
  checkPromise: Deferred<any> | null;
13
13
  init(): void;
@@ -15,7 +15,7 @@ export declare class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params>
15
15
  isBleReconnect(): boolean;
16
16
  postTipMessage: (message: IFirmwareUpdateTipMessage) => void;
17
17
  postProcessingMessage: (type: 'firmware' | 'ble' | 'bootloader' | 'resource') => void;
18
- postProgressMessage: (progress: number, progressType: IFirmwareUpdateProgressType, metrics?: FirmwareTransferMetrics) => void;
18
+ postProgressMessage: (progress: number, progressType: IFirmwareUpdateProgressType, metrics?: FirmwareProgressMetadata) => void;
19
19
  protected _promptDeviceInBootloaderForWebDevice(): Promise<unknown>;
20
20
  protected _promptDeviceForSwitchFirmwareWebDevice(): Promise<unknown>;
21
21
  checkDeviceToBootloader(connectId: string | undefined): void;
@@ -1 +1 @@
1
- {"version":3,"file":"FirmwareUpdateBaseMethod.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdateBaseMethod.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAcnE,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAE1D,KAAK,uBAAuB,GAAG,IAAI,CACjC,gBAAgB,CAAC,SAAS,CAAC,EAC3B,kBAAkB,GAAG,YAAY,GAAG,oBAAoB,GAAG,WAAW,CACvE,CAAC;AAWF,qBAAa,wBAAwB,CAAC,MAAM,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;IACtE,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI,IAAI,IAAI;IAEZ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAInB,cAAc,IAAI,OAAO;IASzB,cAAc,YAAa,yBAAyB,UASlD;IAMF,qBAAqB,SAAU,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,UAM3E;IAMF,mBAAmB,aACP,MAAM,gBACF,2BAA2B,YAC/B,uBAAuB,UAUjC;cAEc,qCAAqC;cAkBrC,uCAAuC;IAkBvD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;YAyJvC,4BAA4B;IAyBpC,mBAAmB;IA8CnB,uBAAuB,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IA6BlD,8BAA8B,CAAC,IAAI,EAAE,MAAM;IAW3C,uBAAuB,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,KAAK,CAAC,cAAc,GAAG;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IA4CK,iCAAiC,CAAC,EACtC,MAAM,EACN,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE;QACD,MAAM,EAAE,kBAAkB,CAAC;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IAsCK,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,GAAG,MAAM,EAC3B,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgFnB,MAAM,CAAC,UAAU,EAAE,UAAU;CAsBpC"}
1
+ {"version":3,"file":"FirmwareUpdateBaseMethod.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdateBaseMethod.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAcnE,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAE1D,KAAK,wBAAwB,GAAG,IAAI,CAClC,gBAAgB,CAAC,SAAS,CAAC,EACzB,kBAAkB,GAClB,YAAY,GACZ,oBAAoB,GACpB,WAAW,GACX,iBAAiB,GACjB,cAAc,GACd,sBAAsB,CACzB,CAAC;AAWF,qBAAa,wBAAwB,CAAC,MAAM,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;IACtE,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI,IAAI,IAAI;IAEZ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAInB,cAAc,IAAI,OAAO;IASzB,cAAc,YAAa,yBAAyB,UASlD;IAMF,qBAAqB,SAAU,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,UAM3E;IAMF,mBAAmB,aACP,MAAM,gBACF,2BAA2B,YAC/B,wBAAwB,UAUlC;cAEc,qCAAqC;cAkBrC,uCAAuC;IAkBvD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;YAyJvC,4BAA4B;IAyBpC,mBAAmB;IA8CnB,uBAAuB,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IA6BlD,8BAA8B,CAAC,IAAI,EAAE,MAAM;IAW3C,uBAAuB,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,KAAK,CAAC,cAAc,GAAG;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IA4CK,iCAAiC,CAAC,EACtC,MAAM,EACN,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE;QACD,MAAM,EAAE,kBAAkB,CAAC;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IAsCK,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,GAAG,MAAM,EAC3B,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgFnB,MAAM,CAAC,UAAU,EAAE,UAAU;CAsBpC"}
@@ -17,7 +17,7 @@ interface GetBinaryProps extends GetInfoProps {
17
17
  export declare const getBinary: ({ features, updateType, version, isUpdateBootloader, firmwareType, requestOptions, }: GetBinaryProps) => Promise<{
18
18
  binary: FirmwareBinary;
19
19
  required: boolean;
20
- url: string;
20
+ url?: string | undefined;
21
21
  firmwareType?: EFirmwareType | undefined;
22
22
  resource?: string | undefined;
23
23
  resourceFingerprint?: string | undefined;
@@ -40,7 +40,7 @@ export declare const getBinary: ({ features, updateType, version, isUpdateBootlo
40
40
  "zh-CN": string;
41
41
  "en-US": string;
42
42
  } | undefined;
43
- fingerprint: string;
43
+ fingerprint?: string | undefined;
44
44
  expectedSize?: number | undefined;
45
45
  version: import("../../types").IVersionArray;
46
46
  changelog: {
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceGetFirmwareUpdateStatus.d.ts","sourceRoot":"","sources":["../../../src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,WAAW,CAAC;AAiCrE,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,UAAU,CAAC,mCAAmC,CAAC;IACxG,qBAAqB;IAIrB,IAAI;IAQE,GAAG;CAQV"}
1
+ {"version":3,"file":"DeviceGetFirmwareUpdateStatus.d.ts","sourceRoot":"","sources":["../../../src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,WAAW,CAAC;AAuCrE,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,UAAU,CAAC,mCAAmC,CAAC;IACxG,qBAAqB;IAIrB,IAAI;IAQE,GAAG;CAQV"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/api/protocol-v2/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK1D,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,gCAAgC,EAChC,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,MAAM,OAAO,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GACjC,oBAAoB,GACpB;IACE,QAAQ,CAAC,EAAE,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;IACtD,SAAS,CAAC,EAAE,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;IACvD,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEN,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;IACtD,SAAS,CAAC,EAAE,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,MAAM,CAAC,EAAE,gCAAgC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAaF,eAAO,MAAM,mCAAmC,EAAE,oBAEjD,CAAC;AAEF,eAAO,MAAM,0CAA0C,EAAE,CACrD,SAAS,GACT,4BAA4B,CAC/B,EAA8C,CAAC;AAEhD,eAAO,MAAM,6BAA6B,UAAW,OAAO,WA6B3D,CAAC;AAEF,eAAO,MAAM,mCAAmC,UAAW,OAAO,YAsBjE,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,gBAAgB,CAQxF;AAsCD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,0BAA0B,GACjC,oBAAoB,EAAE,CA0BxB"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/api/protocol-v2/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM1D,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,gCAAgC,EAChC,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,MAAM,OAAO,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GACjC,oBAAoB,GACpB;IACE,QAAQ,CAAC,EAAE,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;IACtD,SAAS,CAAC,EAAE,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;IACvD,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEN,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;IACtD,SAAS,CAAC,EAAE,wBAAwB,GAAG,MAAM,GAAG,MAAM,CAAC;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,MAAM,CAAC,EAAE,gCAAgC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAaF,eAAO,MAAM,mCAAmC,EAAE,oBAEjD,CAAC;AAEF,eAAO,MAAM,0CAA0C,EAAE,CACrD,SAAS,GACT,4BAA4B,CAC/B,EAA8C,CAAC;AAEhD,eAAO,MAAM,6BAA6B,UAAW,OAAO,WA6B3D,CAAC;AAEF,eAAO,MAAM,mCAAmC,UAAW,OAAO,YA6BjE,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,gBAAgB,CAQxF;AAsCD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,0BAA0B,GACjC,oBAAoB,EAAE,CA0BxB"}
@@ -147,6 +147,9 @@ export interface FirmwareProgress {
147
147
  totalBytes?: number;
148
148
  rateBytesPerSecond?: number;
149
149
  elapsedMs?: number;
150
+ installTargetId?: number;
151
+ installPhase?: 'prepare' | 'install' | 'verify';
152
+ installPhaseProgress?: number;
150
153
  };
151
154
  }
152
155
  export interface FirmwareTip {
@@ -1 +1 @@
1
- {"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/events/ui-request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/events/ui-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Cb,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAC/B,oBAAoB,GACpB,4BAA4B,GAC5B,kBAAkB,CAAC;AAEvB,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG,qBAAqB,CAAC;AAE7E,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,YAAY,GAAG,sBAAsB,GAAG,QAAQ,GAAG,YAAY,CAAC;IAC/E,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC5C,OAAO,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,cAAc,CAAC;IAC9E,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,yBAAyB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,OAAO,UAAU,CAAC,eAAe,CAAC;IACxC,OAAO,EAAE,yBAAyB,CAAC;CACpC,GACD;IACE,IAAI,EAAE,OAAO,UAAU,CAAC,mBAAmB,CAAC;IAC5C,OAAO,EAAE,yBAAyB,CAAC;CACpC,GACD;IACE,IAAI,EAAE,OAAO,UAAU,CAAC,eAAe,CAAC;IACxC,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,GACD;IACE,IAAI,EAAE,OAAO,UAAU,CAAC,mBAAmB,CAAC;IAC5C,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AAEN,MAAM,WAAW,uBAAuB;IACtC,IAAI,EACA,OAAO,UAAU,CAAC,oBAAoB,GACtC,OAAO,UAAU,CAAC,qBAAqB,GACvC,OAAO,UAAU,CAAC,qBAAqB,GACvC,OAAO,UAAU,CAAC,8CAA8C,GAChE,OAAO,UAAU,CAAC,mBAAmB,GACrC,OAAO,UAAU,CAAC,2BAA2B,GAC7C,OAAO,UAAU,CAAC,mBAAmB,GACrC,OAAO,UAAU,CAAC,mCAAmC,CAAC;IAC1D,OAAO,CAAC,EAAE,OAAO,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,OAAO,UAAU,CAAC,mBAAmB,CAAC;IAC5C,OAAO,EAAE;QACP,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,CAAC;KACtD,CAAC;CACH;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,OAAO,UAAU,CAAC,WAAW,CAAC;IACpC,OAAO,EAAE,yBAAyB,GAAG;QACnC,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,KAAK,CAAC,oBAAoB,GAAG,wBAAwB,GAAG,yBAAyB,CAAC;QACzF,mBAAmB,CAAC,EAAE,qBAAqB,CAAC;KAC7C,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,UAAU,CAAC,cAAc,CAAC;IACvC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,yBAAyB,CAAC;CACrE;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,UAAU,CAAC,kBAAkB,CAAC;IAC3C,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,MAAM,CAAC,EAAE,4BAA4B,CAAC;QACtC,MAAM,CAAC,EAAE,aAAa,GAAG,kBAAkB,CAAC;QAC5C,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,WAAW,CAAC,EAAE,yBAAyB,CAAC;QACxC,mBAAmB,CAAC,EAAE,qBAAqB,CAAC;KAC7C,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,OAAO,UAAU,CAAC,4BAA4B,CAAC;IACrD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,4BAA4B,CAAC;QACtC,MAAM,CAAC,EAAE,aAAa,GAAG,kBAAkB,CAAC;QAC5C,WAAW,CAAC,EAAE,yBAAyB,CAAC;KACzC,CAAC;CACH;AAED,MAAM,WAAW,6CAA6C;IAC5D,IAAI,EAAE,OAAO,UAAU,CAAC,2CAA2C,CAAC;IACpE,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,+CAA+C;IAC9D,IAAI,EAAE,OAAO,UAAU,CAAC,6CAA6C,CAAC;IACtE,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,UAAU,CAAC,mBAAmB,CAAC;IAC5C,OAAO,EAAE;QACP,IAAI,EAAE,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,CAAC;KACtD,CAAC;CACH;AAED,MAAM,MAAM,2BAA2B,GAAG,cAAc,GAAG,oBAAoB,CAAC;AAChF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,UAAU,CAAC,iBAAiB,CAAC;IAC1C,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,2BAA2B,CAAC;QAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;QAChD,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,UAAU,CAAC,YAAY,CAAC;IACrC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,UAAU,CAAC,eAAe,CAAC;IACxC,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,UAAU,CAAC,uBAAuB,CAAC;IAChD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE;YACJ,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;CACH;AAED,MAAM,MAAM,OAAO,GACf,uBAAuB,GACvB,oBAAoB,GACpB,qBAAqB,GACrB,eAAe,GACf,2BAA2B,GAC3B,mBAAmB,GACnB,6CAA6C,GAC7C,+CAA+C,GAC/C,kBAAkB,GAClB,6CAA6C,GAC7C,gBAAgB,GAChB,WAAW,GACX,cAAc,GACd,qBAAqB,CAAC;AAE1B,oBAAY,wBAAwB;IAClC,qBAAqB,0BAA0B;IAE/C,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,wBAAwB,6BAA6B;IACrD,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,gCAAgC,qCAAqC;IAErE,+BAA+B,oCAAoC;IACnE,uBAAuB,4BAA4B;IACnD,0BAA0B,+BAA+B;IACzD,uCAAuC,4CAA4C;IAEnF,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,oCAAoC,yCAAyC;IAC7E,6BAA6B,kCAAkC;IAC/D,eAAe,oBAAoB;IACnC,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,gBAAgB,qBAAqB;IACrC,uBAAuB,4BAA4B;IACnD,iBAAiB,sBAAsB;IACvC,wBAAwB,6BAA6B;IACrD,gBAAgB,qBAAqB;IACrC,uBAAuB,4BAA4B;CACpD;AAED,MAAM,MAAM,yBAAyB,GAAG,GAAG,wBAAwB,EAAE,CAAC;AAEtE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,QAAQ,CAAA;CAAE,CAAC;AAElE,eAAO,MAAM,eAAe,EAAE,gBAAgB,CAAC,OAAO,QAAQ,EAAE,OAAO,CAK5D,CAAC"}