sunuid-sdk 1.0.16 → 1.0.18
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.
- package/dist/sunuid-sdk.esm.js +153 -96
- package/dist/sunuid-sdk.esm.js.map +1 -1
- package/dist/sunuid-sdk.js +153 -96
- package/dist/sunuid-sdk.js.map +1 -1
- package/dist/sunuid-sdk.min.js +2 -2
- package/dist/sunuid-sdk.min.js.map +1 -1
- package/package.json +1 -1
package/dist/sunuid-sdk.esm.js
CHANGED
|
@@ -210,8 +210,7 @@ function _toPropertyKey(t) {
|
|
|
210
210
|
refreshInterval: 30000,
|
|
211
211
|
// 30 secondes
|
|
212
212
|
onSuccess: null,
|
|
213
|
-
onError: null
|
|
214
|
-
onExpired: null
|
|
213
|
+
onError: null
|
|
215
214
|
};
|
|
216
215
|
|
|
217
216
|
/**
|
|
@@ -267,7 +266,7 @@ function _toPropertyKey(t) {
|
|
|
267
266
|
_context.p = 1;
|
|
268
267
|
_context.n = 2;
|
|
269
268
|
return this.makeRequest('/qr-generate', _objectSpread2({
|
|
270
|
-
type:
|
|
269
|
+
type: 1
|
|
271
270
|
}, options));
|
|
272
271
|
case 2:
|
|
273
272
|
response = _context.v;
|
|
@@ -333,7 +332,7 @@ function _toPropertyKey(t) {
|
|
|
333
332
|
_context2.p = 1;
|
|
334
333
|
_context2.n = 2;
|
|
335
334
|
return this.makeRequest('/qr-generate', _objectSpread2({
|
|
336
|
-
type:
|
|
335
|
+
type: 2
|
|
337
336
|
}, options));
|
|
338
337
|
case 2:
|
|
339
338
|
response = _context2.v;
|
|
@@ -373,17 +372,23 @@ function _toPropertyKey(t) {
|
|
|
373
372
|
return generateKYCQR;
|
|
374
373
|
}()
|
|
375
374
|
/**
|
|
376
|
-
*
|
|
375
|
+
* Générer un QR code avec un type personnalisé
|
|
377
376
|
*/
|
|
378
377
|
)
|
|
379
378
|
}, {
|
|
380
|
-
key: "
|
|
379
|
+
key: "generateCustomQR",
|
|
381
380
|
value: (function () {
|
|
382
|
-
var
|
|
383
|
-
var
|
|
381
|
+
var _generateCustomQR = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(containerId, type) {
|
|
382
|
+
var options,
|
|
383
|
+
response,
|
|
384
|
+
imageBaseUrl,
|
|
385
|
+
qrImageUrl,
|
|
386
|
+
_args3 = arguments,
|
|
387
|
+
_t3;
|
|
384
388
|
return _regenerator().w(function (_context3) {
|
|
385
389
|
while (1) switch (_context3.p = _context3.n) {
|
|
386
390
|
case 0:
|
|
391
|
+
options = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {};
|
|
387
392
|
if (this.isInitialized) {
|
|
388
393
|
_context3.n = 1;
|
|
389
394
|
break;
|
|
@@ -392,32 +397,92 @@ function _toPropertyKey(t) {
|
|
|
392
397
|
case 1:
|
|
393
398
|
_context3.p = 1;
|
|
394
399
|
_context3.n = 2;
|
|
395
|
-
return this.makeRequest('/qr-
|
|
396
|
-
|
|
397
|
-
});
|
|
400
|
+
return this.makeRequest('/qr-generate', _objectSpread2({
|
|
401
|
+
type: type
|
|
402
|
+
}, options));
|
|
398
403
|
case 2:
|
|
399
404
|
response = _context3.v;
|
|
400
405
|
if (!response.success) {
|
|
401
406
|
_context3.n = 3;
|
|
402
407
|
break;
|
|
403
408
|
}
|
|
404
|
-
|
|
409
|
+
// Construire l'URL complète de l'image QR avec la base URL pour les images
|
|
410
|
+
imageBaseUrl = 'https://sunuid.fayma.sn';
|
|
411
|
+
qrImageUrl = "".concat(imageBaseUrl).concat(response.data.qrcode);
|
|
412
|
+
this.displayQRCode(containerId, qrImageUrl, type, options);
|
|
413
|
+
this.startAutoRefresh(containerId, type, options);
|
|
414
|
+
return _context3.a(2, _objectSpread2(_objectSpread2({}, response.data), {}, {
|
|
415
|
+
qrCodeUrl: qrImageUrl,
|
|
416
|
+
sessionId: response.data.service_id
|
|
417
|
+
}));
|
|
405
418
|
case 3:
|
|
406
|
-
throw new Error(response.message || 'Erreur lors de la
|
|
419
|
+
throw new Error(response.message || 'Erreur lors de la génération du QR code');
|
|
407
420
|
case 4:
|
|
408
421
|
_context3.n = 6;
|
|
409
422
|
break;
|
|
410
423
|
case 5:
|
|
411
424
|
_context3.p = 5;
|
|
412
425
|
_t3 = _context3.v;
|
|
413
|
-
|
|
414
|
-
|
|
426
|
+
console.error('Erreur API détectée:', _t3.message);
|
|
427
|
+
console.log('Affichage du message "Service non disponible" pour type ' + type);
|
|
428
|
+
this.displayServiceUnavailable(containerId, type);
|
|
429
|
+
throw new Error('Service non disponible');
|
|
415
430
|
case 6:
|
|
416
431
|
return _context3.a(2);
|
|
417
432
|
}
|
|
418
433
|
}, _callee3, this, [[1, 5]]);
|
|
419
434
|
}));
|
|
420
|
-
function
|
|
435
|
+
function generateCustomQR(_x3, _x4) {
|
|
436
|
+
return _generateCustomQR.apply(this, arguments);
|
|
437
|
+
}
|
|
438
|
+
return generateCustomQR;
|
|
439
|
+
}()
|
|
440
|
+
/**
|
|
441
|
+
* Vérifier le statut d'un QR code
|
|
442
|
+
*/
|
|
443
|
+
)
|
|
444
|
+
}, {
|
|
445
|
+
key: "checkQRStatus",
|
|
446
|
+
value: (function () {
|
|
447
|
+
var _checkQRStatus = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(sessionId) {
|
|
448
|
+
var response, _t4;
|
|
449
|
+
return _regenerator().w(function (_context4) {
|
|
450
|
+
while (1) switch (_context4.p = _context4.n) {
|
|
451
|
+
case 0:
|
|
452
|
+
if (this.isInitialized) {
|
|
453
|
+
_context4.n = 1;
|
|
454
|
+
break;
|
|
455
|
+
}
|
|
456
|
+
throw new Error('SunuID: SDK non initialisé');
|
|
457
|
+
case 1:
|
|
458
|
+
_context4.p = 1;
|
|
459
|
+
_context4.n = 2;
|
|
460
|
+
return this.makeRequest('/qr-status', {
|
|
461
|
+
serviceId: sessionId
|
|
462
|
+
});
|
|
463
|
+
case 2:
|
|
464
|
+
response = _context4.v;
|
|
465
|
+
if (!response.success) {
|
|
466
|
+
_context4.n = 3;
|
|
467
|
+
break;
|
|
468
|
+
}
|
|
469
|
+
return _context4.a(2, response.data);
|
|
470
|
+
case 3:
|
|
471
|
+
throw new Error(response.message || 'Erreur lors de la vérification du statut');
|
|
472
|
+
case 4:
|
|
473
|
+
_context4.n = 6;
|
|
474
|
+
break;
|
|
475
|
+
case 5:
|
|
476
|
+
_context4.p = 5;
|
|
477
|
+
_t4 = _context4.v;
|
|
478
|
+
this.handleError(_t4);
|
|
479
|
+
throw _t4;
|
|
480
|
+
case 6:
|
|
481
|
+
return _context4.a(2);
|
|
482
|
+
}
|
|
483
|
+
}, _callee4, this, [[1, 5]]);
|
|
484
|
+
}));
|
|
485
|
+
function checkQRStatus(_x5) {
|
|
421
486
|
return _checkQRStatus.apply(this, arguments);
|
|
422
487
|
}
|
|
423
488
|
return checkQRStatus;
|
|
@@ -441,12 +506,9 @@ function _toPropertyKey(t) {
|
|
|
441
506
|
// Créer l'élément QR code
|
|
442
507
|
var qrElement = document.createElement('div');
|
|
443
508
|
qrElement.className = 'sunuid-qr-code';
|
|
444
|
-
qrElement.innerHTML = "\n <div class=\"sunuid-qr-header\">\n <h3>".concat(type ===
|
|
509
|
+
qrElement.innerHTML = "\n <div class=\"sunuid-qr-header\">\n <h3>".concat(type === 1 ? 'Authentification' : type === 2 ? 'Vérification KYC' : 'Service Type ' + type, "</h3>\n </div>\n <div class=\"sunuid-qr-image\">\n <img src=\"").concat(qrUrl, "\" alt=\"QR Code SunuID\" style=\"max-width: 300px; height: auto;\">\n </div>\n <div class=\"sunuid-qr-instructions\">\n <p>Scannez ce QR code avec l'application SunuID pour vous connecter</p>\n </div>\n <div class=\"sunuid-qr-status\" id=\"sunuid-status\">\n <p>En attente de scan...</p>\n </div>\n ");
|
|
445
510
|
container.appendChild(qrElement);
|
|
446
511
|
|
|
447
|
-
// Démarrer le timer
|
|
448
|
-
this.startTimer();
|
|
449
|
-
|
|
450
512
|
// Appliquer le thème
|
|
451
513
|
this.applyTheme(options.theme || this.config.theme);
|
|
452
514
|
}
|
|
@@ -472,47 +534,61 @@ function _toPropertyKey(t) {
|
|
|
472
534
|
}, {
|
|
473
535
|
key: "refreshQR",
|
|
474
536
|
value: (function () {
|
|
475
|
-
var _refreshQR = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
537
|
+
var _refreshQR = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(containerId, type) {
|
|
476
538
|
var options,
|
|
477
539
|
result,
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
540
|
+
_args5 = arguments,
|
|
541
|
+
_t5,
|
|
542
|
+
_t6,
|
|
543
|
+
_t7;
|
|
544
|
+
return _regenerator().w(function (_context5) {
|
|
545
|
+
while (1) switch (_context5.p = _context5.n) {
|
|
483
546
|
case 0:
|
|
484
|
-
options =
|
|
485
|
-
|
|
486
|
-
if (!(type ===
|
|
487
|
-
|
|
547
|
+
options = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : {};
|
|
548
|
+
_context5.p = 1;
|
|
549
|
+
if (!(type === 1)) {
|
|
550
|
+
_context5.n = 3;
|
|
488
551
|
break;
|
|
489
552
|
}
|
|
490
|
-
|
|
553
|
+
_context5.n = 2;
|
|
491
554
|
return this.generateAuthQR(containerId, options);
|
|
492
555
|
case 2:
|
|
493
|
-
|
|
494
|
-
|
|
556
|
+
_t5 = _context5.v;
|
|
557
|
+
_context5.n = 8;
|
|
495
558
|
break;
|
|
496
559
|
case 3:
|
|
497
|
-
|
|
560
|
+
if (!(type === 2)) {
|
|
561
|
+
_context5.n = 5;
|
|
562
|
+
break;
|
|
563
|
+
}
|
|
564
|
+
_context5.n = 4;
|
|
498
565
|
return this.generateKYCQR(containerId, options);
|
|
499
566
|
case 4:
|
|
500
|
-
|
|
567
|
+
_t6 = _context5.v;
|
|
568
|
+
_context5.n = 7;
|
|
569
|
+
break;
|
|
501
570
|
case 5:
|
|
502
|
-
|
|
503
|
-
return
|
|
571
|
+
_context5.n = 6;
|
|
572
|
+
return this.generateCustomQR(containerId, type, options);
|
|
504
573
|
case 6:
|
|
505
|
-
|
|
506
|
-
_t5 = _context4.v;
|
|
507
|
-
console.error('Erreur lors du rafraîchissement:', _t5.message);
|
|
508
|
-
this.displayServiceUnavailable(containerId, type);
|
|
509
|
-
throw _t5;
|
|
574
|
+
_t6 = _context5.v;
|
|
510
575
|
case 7:
|
|
511
|
-
|
|
576
|
+
_t5 = _t6;
|
|
577
|
+
case 8:
|
|
578
|
+
result = _t5;
|
|
579
|
+
return _context5.a(2, result);
|
|
580
|
+
case 9:
|
|
581
|
+
_context5.p = 9;
|
|
582
|
+
_t7 = _context5.v;
|
|
583
|
+
console.error('Erreur lors du rafraîchissement:', _t7.message);
|
|
584
|
+
this.displayServiceUnavailable(containerId, type);
|
|
585
|
+
throw _t7;
|
|
586
|
+
case 10:
|
|
587
|
+
return _context5.a(2);
|
|
512
588
|
}
|
|
513
|
-
},
|
|
589
|
+
}, _callee5, this, [[1, 9]]);
|
|
514
590
|
}));
|
|
515
|
-
function refreshQR(
|
|
591
|
+
function refreshQR(_x6, _x7) {
|
|
516
592
|
return _refreshQR.apply(this, arguments);
|
|
517
593
|
}
|
|
518
594
|
return refreshQR;
|
|
@@ -526,50 +602,31 @@ function _toPropertyKey(t) {
|
|
|
526
602
|
value: function startAutoRefresh(containerId, type, options) {
|
|
527
603
|
var _this = this;
|
|
528
604
|
if (!this.config.autoRefresh) return;
|
|
529
|
-
this.refreshTimer = setInterval(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
530
|
-
var
|
|
531
|
-
return _regenerator().w(function (
|
|
532
|
-
while (1) switch (
|
|
605
|
+
this.refreshTimer = setInterval(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6() {
|
|
606
|
+
var _t8;
|
|
607
|
+
return _regenerator().w(function (_context6) {
|
|
608
|
+
while (1) switch (_context6.p = _context6.n) {
|
|
533
609
|
case 0:
|
|
534
|
-
|
|
535
|
-
|
|
610
|
+
_context6.p = 0;
|
|
611
|
+
_context6.n = 1;
|
|
536
612
|
return _this.refreshQR(containerId, type, options);
|
|
537
613
|
case 1:
|
|
538
|
-
|
|
614
|
+
_context6.n = 3;
|
|
539
615
|
break;
|
|
540
616
|
case 2:
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
console.warn('Erreur lors du rafraîchissement automatique:',
|
|
617
|
+
_context6.p = 2;
|
|
618
|
+
_t8 = _context6.v;
|
|
619
|
+
console.warn('Erreur lors du rafraîchissement automatique:', _t8);
|
|
544
620
|
case 3:
|
|
545
|
-
return
|
|
621
|
+
return _context6.a(2);
|
|
546
622
|
}
|
|
547
|
-
},
|
|
623
|
+
}, _callee6, null, [[0, 2]]);
|
|
548
624
|
})), this.config.refreshInterval);
|
|
549
625
|
}
|
|
550
626
|
|
|
551
627
|
/**
|
|
552
628
|
* Démarrer le timer de compte à rebours
|
|
553
629
|
*/
|
|
554
|
-
}, {
|
|
555
|
-
key: "startTimer",
|
|
556
|
-
value: function startTimer() {
|
|
557
|
-
var _this2 = this;
|
|
558
|
-
var timeLeft = 30;
|
|
559
|
-
var timerElement = document.getElementById('sunuid-timer');
|
|
560
|
-
var timer = setInterval(function () {
|
|
561
|
-
timeLeft--;
|
|
562
|
-
if (timerElement) {
|
|
563
|
-
timerElement.textContent = timeLeft;
|
|
564
|
-
}
|
|
565
|
-
if (timeLeft <= 0) {
|
|
566
|
-
clearInterval(timer);
|
|
567
|
-
if (_this2.config.onExpired) {
|
|
568
|
-
_this2.config.onExpired();
|
|
569
|
-
}
|
|
570
|
-
}
|
|
571
|
-
}, 1000);
|
|
572
|
-
}
|
|
573
630
|
|
|
574
631
|
/**
|
|
575
632
|
* Effectuer une requête API
|
|
@@ -577,17 +634,17 @@ function _toPropertyKey(t) {
|
|
|
577
634
|
}, {
|
|
578
635
|
key: "makeRequest",
|
|
579
636
|
value: (function () {
|
|
580
|
-
var _makeRequest = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
637
|
+
var _makeRequest = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7(endpoint, data) {
|
|
581
638
|
var _window$SunuIDConfig2;
|
|
582
|
-
var endpointPath, url, response, errorText, errorData, result,
|
|
583
|
-
return _regenerator().w(function (
|
|
584
|
-
while (1) switch (
|
|
639
|
+
var endpointPath, url, response, errorText, errorData, result, _t9;
|
|
640
|
+
return _regenerator().w(function (_context7) {
|
|
641
|
+
while (1) switch (_context7.p = _context7.n) {
|
|
585
642
|
case 0:
|
|
586
643
|
// Utiliser l'endpoint depuis la configuration si disponible
|
|
587
644
|
endpointPath = ((_window$SunuIDConfig2 = window.SunuIDConfig) === null || _window$SunuIDConfig2 === void 0 || (_window$SunuIDConfig2 = _window$SunuIDConfig2.endpoints) === null || _window$SunuIDConfig2 === void 0 ? void 0 : _window$SunuIDConfig2[endpoint.replace('/', '')]) || endpoint;
|
|
588
645
|
url = "".concat(this.config.apiUrl).concat(endpointPath);
|
|
589
|
-
|
|
590
|
-
|
|
646
|
+
_context7.p = 1;
|
|
647
|
+
_context7.n = 2;
|
|
591
648
|
return fetch(url, {
|
|
592
649
|
method: 'POST',
|
|
593
650
|
headers: {
|
|
@@ -601,15 +658,15 @@ function _toPropertyKey(t) {
|
|
|
601
658
|
}))
|
|
602
659
|
});
|
|
603
660
|
case 2:
|
|
604
|
-
response =
|
|
661
|
+
response = _context7.v;
|
|
605
662
|
if (response.ok) {
|
|
606
|
-
|
|
663
|
+
_context7.n = 4;
|
|
607
664
|
break;
|
|
608
665
|
}
|
|
609
|
-
|
|
666
|
+
_context7.n = 3;
|
|
610
667
|
return response.text();
|
|
611
668
|
case 3:
|
|
612
|
-
errorText =
|
|
669
|
+
errorText = _context7.v;
|
|
613
670
|
try {
|
|
614
671
|
errorData = JSON.parse(errorText);
|
|
615
672
|
} catch (e) {
|
|
@@ -619,22 +676,22 @@ function _toPropertyKey(t) {
|
|
|
619
676
|
}
|
|
620
677
|
throw new Error(errorData.message || "Erreur HTTP: ".concat(response.status));
|
|
621
678
|
case 4:
|
|
622
|
-
|
|
679
|
+
_context7.n = 5;
|
|
623
680
|
return response.json();
|
|
624
681
|
case 5:
|
|
625
|
-
result =
|
|
626
|
-
return
|
|
682
|
+
result = _context7.v;
|
|
683
|
+
return _context7.a(2, result);
|
|
627
684
|
case 6:
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
console.error('Erreur API SunuID:',
|
|
631
|
-
throw
|
|
685
|
+
_context7.p = 6;
|
|
686
|
+
_t9 = _context7.v;
|
|
687
|
+
console.error('Erreur API SunuID:', _t9);
|
|
688
|
+
throw _t9;
|
|
632
689
|
case 7:
|
|
633
|
-
return
|
|
690
|
+
return _context7.a(2);
|
|
634
691
|
}
|
|
635
|
-
},
|
|
692
|
+
}, _callee7, this, [[1, 6]]);
|
|
636
693
|
}));
|
|
637
|
-
function makeRequest(
|
|
694
|
+
function makeRequest(_x8, _x9) {
|
|
638
695
|
return _makeRequest.apply(this, arguments);
|
|
639
696
|
}
|
|
640
697
|
return makeRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sunuid-sdk.esm.js","sources":["../src/sunuid-sdk.js"],"sourcesContent":["/**\n * SunuID SDK - Package d'intégration pour partenaires\n * \n * @version 1.0.0\n * @author SunuID Team\n * @license MIT\n */\n\n(function(window) {\n 'use strict';\n\n // Configuration par défaut\n const DEFAULT_CONFIG = {\n apiUrl: window.SunuIDConfig?.apiUrl || 'https://api.sunuid.fayma.sn',\n clientId: null,\n secretId: null,\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: null,\n onExpired: null\n };\n\n /**\n * Classe principale SunuID\n */\n class SunuID {\n constructor(config = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.qrCode = null;\n this.refreshTimer = null;\n this.isInitialized = false;\n \n this.init();\n }\n\n /**\n * Initialisation du SDK\n */\n init() {\n if (!this.config.clientId || !this.config.secretId) {\n throw new Error('SunuID: clientId et secretId sont requis');\n }\n\n this.isInitialized = true;\n console.log('SunuID SDK initialisé avec succès');\n }\n\n /**\n * Générer un QR code d'authentification\n */\n async generateAuthQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: 'auth',\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, 'auth', options);\n this.startAutoRefresh(containerId, 'auth', options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour auth');\n this.displayServiceUnavailable(containerId, 'auth');\n throw new Error('Service non disponible');\n }\n }\n\n /**\n * Générer un QR code KYC\n */\n async generateKYCQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: 'kyc',\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, 'kyc', options);\n this.startAutoRefresh(containerId, 'kyc', options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code KYC');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour kyc');\n this.displayServiceUnavailable(containerId, 'kyc');\n throw new Error('Service non disponible');\n }\n }\n\n /**\n * Vérifier le statut d'un QR code\n */\n async checkQRStatus(sessionId) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-status', {\n serviceId: sessionId\n });\n\n if (response.success) {\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la vérification du statut');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Afficher un QR code dans un conteneur\n */\n displayQRCode(containerId, qrUrl, type, options = {}) {\n const container = document.getElementById(containerId);\n if (!container) {\n throw new Error(`Conteneur avec l'ID \"${containerId}\" non trouvé`);\n }\n\n // Nettoyer le conteneur\n container.innerHTML = '';\n\n // Créer l'élément QR code\n const qrElement = document.createElement('div');\n qrElement.className = 'sunuid-qr-code';\n qrElement.innerHTML = `\n <div class=\"sunuid-qr-header\">\n <h3>${type === 'auth' ? 'Authentification' : 'Vérification KYC'}</h3>\n <div class=\"sunuid-timer\">\n <span>Expire dans: </span>\n <span id=\"sunuid-timer\">30</span>\n <span> secondes</span>\n </div>\n </div>\n <div class=\"sunuid-qr-image\">\n <img src=\"${qrUrl}\" alt=\"QR Code SunuID\" style=\"max-width: 300px; height: auto;\">\n </div>\n <div class=\"sunuid-qr-instructions\">\n <p>Scannez ce QR code avec l'application SunuID pour vous connecter</p>\n </div>\n <div class=\"sunuid-qr-status\" id=\"sunuid-status\">\n <p>En attente de scan...</p>\n </div>\n `;\n\n container.appendChild(qrElement);\n\n // Démarrer le timer\n this.startTimer();\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Afficher \"Service non disponible\"\n */\n displayServiceUnavailable(containerId, type) {\n console.log(`displayServiceUnavailable appelée pour ${containerId}, type: ${type}`);\n const container = document.getElementById(containerId);\n if (!container) {\n console.error(`Container ${containerId} non trouvé`);\n return;\n }\n\n container.innerHTML = `\n <div class=\"sunuid-service-unavailable\" style=\"\n text-align: center;\n padding: 40px 20px;\n background: #f8f9fa;\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n color: #6c757d;\n font-family: Arial, sans-serif;\n \">\n <div style=\"font-size: 48px; margin-bottom: 20px;\">⚠️</div>\n <h3 style=\"margin: 0 0 10px 0; color: #495057;\">Service Non Disponible</h3>\n <p style=\"margin: 0; font-size: 14px;\">\n Le service d'authentification est temporairement indisponible.<br>\n Veuillez réessayer plus tard.\n </p>\n <div style=\"margin-top: 20px; font-size: 12px; color: #adb5bd;\">\n Type: ${type.toUpperCase()}\n </div>\n </div>\n `;\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, type, options = {}) {\n try {\n const result = type === 'auth' \n ? await this.generateAuthQR(containerId, options)\n : await this.generateKYCQR(containerId, options);\n \n return result;\n } catch (error) {\n console.error('Erreur lors du rafraîchissement:', error.message);\n this.displayServiceUnavailable(containerId, type);\n throw error;\n }\n }\n\n /**\n * Démarrer le rafraîchissement automatique\n */\n startAutoRefresh(containerId, type, options) {\n if (!this.config.autoRefresh) return;\n\n this.refreshTimer = setInterval(async () => {\n try {\n await this.refreshQR(containerId, type, options);\n } catch (error) {\n console.warn('Erreur lors du rafraîchissement automatique:', error);\n }\n }, this.config.refreshInterval);\n }\n\n /**\n * Démarrer le timer de compte à rebours\n */\n startTimer() {\n let timeLeft = 30;\n const timerElement = document.getElementById('sunuid-timer');\n \n const timer = setInterval(() => {\n timeLeft--;\n if (timerElement) {\n timerElement.textContent = timeLeft;\n }\n \n if (timeLeft <= 0) {\n clearInterval(timer);\n if (this.config.onExpired) {\n this.config.onExpired();\n }\n }\n }, 1000);\n }\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n // Utiliser l'endpoint depuis la configuration si disponible\n const endpointPath = window.SunuIDConfig?.endpoints?.[endpoint.replace('/', '')] || endpoint;\n const url = `${this.config.apiUrl}${endpointPath}`;\n \n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${this.config.clientId}:${this.config.secretId}`,\n 'Accept': 'application/json'\n },\n body: JSON.stringify({\n ...data,\n client_id: this.config.clientId,\n secret_id: this.config.secretId\n })\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n let errorData;\n try {\n errorData = JSON.parse(errorText);\n } catch (e) {\n errorData = { message: errorText };\n }\n \n throw new Error(errorData.message || `Erreur HTTP: ${response.status}`);\n }\n\n const result = await response.json();\n return result;\n } catch (error) {\n console.error('Erreur API SunuID:', error);\n throw error;\n }\n }\n\n /**\n * Appliquer le thème\n */\n applyTheme(theme) {\n const container = document.querySelector('.sunuid-qr-code');\n if (container) {\n container.className = `sunuid-qr-code sunuid-theme-${theme}`;\n }\n }\n\n /**\n * Gérer les erreurs\n */\n handleError(error) {\n console.error('SunuID SDK Error:', error);\n \n if (this.config.onError) {\n this.config.onError(error);\n }\n }\n\n /**\n * Nettoyer les ressources\n */\n destroy() {\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n }\n \n this.isInitialized = false;\n console.log('SunuID SDK détruit');\n }\n }\n\n // Exposer la classe globalement\n window.SunuID = SunuID;\n window.sunuidInstance = null;\n\n // Fonction d'initialisation globale\n window.initSunuID = function(config) {\n try {\n window.sunuidInstance = new SunuID(config);\n return window.sunuidInstance;\n } catch (error) {\n console.error('Erreur lors de l\\'initialisation de SunuID:', error);\n throw error;\n }\n };\n\n})(window); "],"names":["window","_window$SunuIDConfig","DEFAULT_CONFIG","apiUrl","SunuIDConfig","clientId","secretId","theme","language","autoRefresh","refreshInterval","onSuccess","onError","onExpired","SunuID","config","arguments","length","undefined","_classCallCheck","_objectSpread","qrCode","refreshTimer","isInitialized","init","_createClass","key","value","Error","console","log","_generateAuthQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","imageBaseUrl","qrImageUrl","_args","_t","w","_context","p","n","makeRequest","type","v","success","concat","data","qrcode","displayQRCode","startAutoRefresh","a","qrCodeUrl","sessionId","service_id","message","error","displayServiceUnavailable","generateAuthQR","_x","apply","_generateKYCQR","_callee2","_args2","_t2","_context2","generateKYCQR","_x2","_checkQRStatus","_callee3","_t3","_context3","serviceId","handleError","checkQRStatus","_x3","qrUrl","container","document","getElementById","innerHTML","qrElement","createElement","className","appendChild","startTimer","applyTheme","toUpperCase","_refreshQR","_callee4","result","_args4","_t4","_t5","_context4","refreshQR","_x4","_x5","_this","setInterval","_callee5","_t6","_context5","warn","_this2","timeLeft","timerElement","timer","textContent","clearInterval","_makeRequest","_callee6","endpoint","_window$SunuIDConfig2","endpointPath","url","errorText","errorData","_t7","_context6","endpoints","replace","fetch","method","headers","body","JSON","stringify","client_id","secret_id","ok","text","parse","e","status","json","_x6","_x7","querySelector","destroy","sunuidInstance","initSunuID"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sunuid-sdk.esm.js","sources":["../src/sunuid-sdk.js"],"sourcesContent":["/**\n * SunuID SDK - Package d'intégration pour partenaires\n * \n * @version 1.0.0\n * @author SunuID Team\n * @license MIT\n */\n\n(function(window) {\n 'use strict';\n\n // Configuration par défaut\n const DEFAULT_CONFIG = {\n apiUrl: window.SunuIDConfig?.apiUrl || 'https://api.sunuid.fayma.sn',\n clientId: null,\n secretId: null,\n theme: 'light',\n language: 'fr',\n autoRefresh: true,\n refreshInterval: 30000, // 30 secondes\n onSuccess: null,\n onError: null\n };\n\n /**\n * Classe principale SunuID\n */\n class SunuID {\n constructor(config = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.qrCode = null;\n this.refreshTimer = null;\n this.isInitialized = false;\n \n this.init();\n }\n\n /**\n * Initialisation du SDK\n */\n init() {\n if (!this.config.clientId || !this.config.secretId) {\n throw new Error('SunuID: clientId et secretId sont requis');\n }\n\n this.isInitialized = true;\n console.log('SunuID SDK initialisé avec succès');\n }\n\n /**\n * Générer un QR code d'authentification\n */\n async generateAuthQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: 1, // Type 1 pour authentification\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, 'auth', options);\n this.startAutoRefresh(containerId, 'auth', options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour auth');\n this.displayServiceUnavailable(containerId, 'auth');\n throw new Error('Service non disponible');\n }\n }\n\n /**\n * Générer un QR code KYC\n */\n async generateKYCQR(containerId, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: 2, // Type 2 pour KYC\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, 'kyc', options);\n this.startAutoRefresh(containerId, 'kyc', options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code KYC');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour kyc');\n this.displayServiceUnavailable(containerId, 'kyc');\n throw new Error('Service non disponible');\n }\n }\n\n /**\n * Générer un QR code avec un type personnalisé\n */\n async generateCustomQR(containerId, type, options = {}) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-generate', {\n type: type, // Type personnalisé (1, 2, 3, etc.)\n ...options\n });\n\n if (response.success) {\n // Construire l'URL complète de l'image QR avec la base URL pour les images\n const imageBaseUrl = 'https://sunuid.fayma.sn';\n const qrImageUrl = `${imageBaseUrl}${response.data.qrcode}`;\n this.displayQRCode(containerId, qrImageUrl, type, options);\n this.startAutoRefresh(containerId, type, options);\n return {\n ...response.data,\n qrCodeUrl: qrImageUrl,\n sessionId: response.data.service_id\n };\n } else {\n throw new Error(response.message || 'Erreur lors de la génération du QR code');\n }\n } catch (error) {\n console.error('Erreur API détectée:', error.message);\n console.log('Affichage du message \"Service non disponible\" pour type ' + type);\n this.displayServiceUnavailable(containerId, type);\n throw new Error('Service non disponible');\n }\n }\n\n /**\n * Vérifier le statut d'un QR code\n */\n async checkQRStatus(sessionId) {\n if (!this.isInitialized) {\n throw new Error('SunuID: SDK non initialisé');\n }\n\n try {\n const response = await this.makeRequest('/qr-status', {\n serviceId: sessionId\n });\n\n if (response.success) {\n return response.data;\n } else {\n throw new Error(response.message || 'Erreur lors de la vérification du statut');\n }\n } catch (error) {\n this.handleError(error);\n throw error;\n }\n }\n\n /**\n * Afficher un QR code dans un conteneur\n */\n displayQRCode(containerId, qrUrl, type, options = {}) {\n const container = document.getElementById(containerId);\n if (!container) {\n throw new Error(`Conteneur avec l'ID \"${containerId}\" non trouvé`);\n }\n\n // Nettoyer le conteneur\n container.innerHTML = '';\n\n // Créer l'élément QR code\n const qrElement = document.createElement('div');\n qrElement.className = 'sunuid-qr-code';\n qrElement.innerHTML = `\n <div class=\"sunuid-qr-header\">\n <h3>${type === 1 ? 'Authentification' : type === 2 ? 'Vérification KYC' : 'Service Type ' + type}</h3>\n </div>\n <div class=\"sunuid-qr-image\">\n <img src=\"${qrUrl}\" alt=\"QR Code SunuID\" style=\"max-width: 300px; height: auto;\">\n </div>\n <div class=\"sunuid-qr-instructions\">\n <p>Scannez ce QR code avec l'application SunuID pour vous connecter</p>\n </div>\n <div class=\"sunuid-qr-status\" id=\"sunuid-status\">\n <p>En attente de scan...</p>\n </div>\n `;\n\n container.appendChild(qrElement);\n\n // Appliquer le thème\n this.applyTheme(options.theme || this.config.theme);\n }\n\n /**\n * Afficher \"Service non disponible\"\n */\n displayServiceUnavailable(containerId, type) {\n console.log(`displayServiceUnavailable appelée pour ${containerId}, type: ${type}`);\n const container = document.getElementById(containerId);\n if (!container) {\n console.error(`Container ${containerId} non trouvé`);\n return;\n }\n\n container.innerHTML = `\n <div class=\"sunuid-service-unavailable\" style=\"\n text-align: center;\n padding: 40px 20px;\n background: #f8f9fa;\n border: 2px dashed #dee2e6;\n border-radius: 10px;\n color: #6c757d;\n font-family: Arial, sans-serif;\n \">\n <div style=\"font-size: 48px; margin-bottom: 20px;\">⚠️</div>\n <h3 style=\"margin: 0 0 10px 0; color: #495057;\">Service Non Disponible</h3>\n <p style=\"margin: 0; font-size: 14px;\">\n Le service d'authentification est temporairement indisponible.<br>\n Veuillez réessayer plus tard.\n </p>\n <div style=\"margin-top: 20px; font-size: 12px; color: #adb5bd;\">\n Type: ${type.toUpperCase()}\n </div>\n </div>\n `;\n }\n\n /**\n * Rafraîchir un QR code\n */\n async refreshQR(containerId, type, options = {}) {\n try {\n const result = type === 1 \n ? await this.generateAuthQR(containerId, options)\n : type === 2 \n ? await this.generateKYCQR(containerId, options)\n : await this.generateCustomQR(containerId, type, options);\n \n return result;\n } catch (error) {\n console.error('Erreur lors du rafraîchissement:', error.message);\n this.displayServiceUnavailable(containerId, type);\n throw error;\n }\n }\n\n /**\n * Démarrer le rafraîchissement automatique\n */\n startAutoRefresh(containerId, type, options) {\n if (!this.config.autoRefresh) return;\n\n this.refreshTimer = setInterval(async () => {\n try {\n await this.refreshQR(containerId, type, options);\n } catch (error) {\n console.warn('Erreur lors du rafraîchissement automatique:', error);\n }\n }, this.config.refreshInterval);\n }\n\n /**\n * Démarrer le timer de compte à rebours\n */\n\n\n /**\n * Effectuer une requête API\n */\n async makeRequest(endpoint, data) {\n // Utiliser l'endpoint depuis la configuration si disponible\n const endpointPath = window.SunuIDConfig?.endpoints?.[endpoint.replace('/', '')] || endpoint;\n const url = `${this.config.apiUrl}${endpointPath}`;\n \n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${this.config.clientId}:${this.config.secretId}`,\n 'Accept': 'application/json'\n },\n body: JSON.stringify({\n ...data,\n client_id: this.config.clientId,\n secret_id: this.config.secretId\n })\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n let errorData;\n try {\n errorData = JSON.parse(errorText);\n } catch (e) {\n errorData = { message: errorText };\n }\n \n throw new Error(errorData.message || `Erreur HTTP: ${response.status}`);\n }\n\n const result = await response.json();\n return result;\n } catch (error) {\n console.error('Erreur API SunuID:', error);\n throw error;\n }\n }\n\n /**\n * Appliquer le thème\n */\n applyTheme(theme) {\n const container = document.querySelector('.sunuid-qr-code');\n if (container) {\n container.className = `sunuid-qr-code sunuid-theme-${theme}`;\n }\n }\n\n /**\n * Gérer les erreurs\n */\n handleError(error) {\n console.error('SunuID SDK Error:', error);\n \n if (this.config.onError) {\n this.config.onError(error);\n }\n }\n\n /**\n * Nettoyer les ressources\n */\n destroy() {\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n }\n \n this.isInitialized = false;\n console.log('SunuID SDK détruit');\n }\n }\n\n // Exposer la classe globalement\n window.SunuID = SunuID;\n window.sunuidInstance = null;\n\n // Fonction d'initialisation globale\n window.initSunuID = function(config) {\n try {\n window.sunuidInstance = new SunuID(config);\n return window.sunuidInstance;\n } catch (error) {\n console.error('Erreur lors de l\\'initialisation de SunuID:', error);\n throw error;\n }\n };\n\n})(window); "],"names":["window","_window$SunuIDConfig","DEFAULT_CONFIG","apiUrl","SunuIDConfig","clientId","secretId","theme","language","autoRefresh","refreshInterval","onSuccess","onError","SunuID","config","arguments","length","undefined","_classCallCheck","_objectSpread","qrCode","refreshTimer","isInitialized","init","_createClass","key","value","Error","console","log","_generateAuthQR","_asyncToGenerator","_regenerator","m","_callee","containerId","options","response","imageBaseUrl","qrImageUrl","_args","_t","w","_context","p","n","makeRequest","type","v","success","concat","data","qrcode","displayQRCode","startAutoRefresh","a","qrCodeUrl","sessionId","service_id","message","error","displayServiceUnavailable","generateAuthQR","_x","apply","_generateKYCQR","_callee2","_args2","_t2","_context2","generateKYCQR","_x2","_generateCustomQR","_callee3","_args3","_t3","_context3","generateCustomQR","_x3","_x4","_checkQRStatus","_callee4","_t4","_context4","serviceId","handleError","checkQRStatus","_x5","qrUrl","container","document","getElementById","innerHTML","qrElement","createElement","className","appendChild","applyTheme","toUpperCase","_refreshQR","_callee5","result","_args5","_t5","_t6","_t7","_context5","refreshQR","_x6","_x7","_this","setInterval","_callee6","_t8","_context6","warn","_makeRequest","_callee7","endpoint","_window$SunuIDConfig2","endpointPath","url","errorText","errorData","_t9","_context7","endpoints","replace","fetch","method","headers","body","JSON","stringify","client_id","secret_id","ok","text","parse","e","status","json","_x8","_x9","querySelector","destroy","clearInterval","sunuidInstance","initSunuID"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,UAASA,MAAM,EAAAC,oBAAA,EAAE;;AAGd;AACA,EAAA,IAAMC,cAAc,GAAG;AACnBC,IAAAA,MAAM,EAAE,CAAA,CAAAF,oBAAA,GAAAD,MAAM,CAACI,YAAY,MAAAH,IAAAA,IAAAA,oBAAA,KAAnBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAqBE,MAAM,KAAI,6BAA6B;AACpEE,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,KAAK,EAAE,OAAO;AACdC,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,WAAW,EAAE,IAAI;AACjBC,IAAAA,eAAe,EAAE,KAAK;AAAE;AACxBC,IAAAA,SAAS,EAAE,IAAI;AACfC,IAAAA,OAAO,EAAE,IAAA;GACZ,CAAA;;AAED;AACJ;AACA;AAFI,EAAA,IAGMC,MAAM,gBAAA,YAAA;AACR,IAAA,SAAAA,SAAyB;AAAA,MAAA,IAAbC,MAAM,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAAG,MAAAA,eAAA,OAAAL,MAAA,CAAA,CAAA;MACnB,IAAI,CAACC,MAAM,GAAAK,cAAA,CAAAA,cAAA,CAAQjB,EAAAA,EAAAA,cAAc,CAAKY,EAAAA,MAAM,CAAE,CAAA;MAC9C,IAAI,CAACM,MAAM,GAAG,IAAI,CAAA;MAClB,IAAI,CAACC,YAAY,GAAG,IAAI,CAAA;MACxB,IAAI,CAACC,aAAa,GAAG,KAAK,CAAA;MAE1B,IAAI,CAACC,IAAI,EAAE,CAAA;AACf,KAAA;;AAEA;AACR;AACA;IAFQ,OAAAC,YAAA,CAAAX,MAAA,EAAA,CAAA;MAAAY,GAAA,EAAA,MAAA;AAAAC,MAAAA,KAAA,EAGA,SAAAH,IAAIA,GAAG;AACH,QAAA,IAAI,CAAC,IAAI,CAACT,MAAM,CAACT,QAAQ,IAAI,CAAC,IAAI,CAACS,MAAM,CAACR,QAAQ,EAAE;AAChD,UAAA,MAAM,IAAIqB,KAAK,CAAC,0CAA0C,CAAC,CAAA;AAC/D,SAAA;QAEA,IAAI,CAACL,aAAa,GAAG,IAAI,CAAA;AACzBM,QAAAA,OAAO,CAACC,GAAG,CAAC,mCAAmC,CAAC,CAAA;AACpD,OAAA;;AAEA;AACR;AACA;AAFQ,KAAA,EAAA;MAAAJ,GAAA,EAAA,gBAAA;MAAAC,KAAA,GAAA,YAAA;QAAA,IAAAI,eAAA,GAAAC,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAGA,SAAAC,OAAAA,CAAqBC,WAAW,EAAA;AAAA,UAAA,IAAAC,OAAA;YAAAC,QAAA;YAAAC,YAAA;YAAAC,UAAA;AAAAC,YAAAA,KAAA,GAAAzB,SAAA;YAAA0B,EAAA,CAAA;AAAA,UAAA,OAAAT,YAAA,EAAA,CAAAU,CAAA,CAAA,UAAAC,QAAA,EAAA;AAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,CAAA,GAAAD,QAAA,CAAAE,CAAA;AAAA,cAAA,KAAA,CAAA;AAAET,gBAAAA,OAAO,GAAAI,KAAA,CAAAxB,MAAA,GAAAwB,CAAAA,IAAAA,KAAA,CAAAvB,CAAAA,CAAAA,KAAAA,SAAA,GAAAuB,KAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;gBAAA,IACrC,IAAI,CAAClB,aAAa,EAAA;AAAAqB,kBAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA,CAAA;AAAA,kBAAA,MAAA;AAAA,iBAAA;AAAA,gBAAA,MACb,IAAIlB,KAAK,CAAC,4BAA4B,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAgB,gBAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA,CAAA;AAAAD,gBAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,OAItB,IAAI,CAACC,WAAW,CAAC,cAAc,EAAA3B,cAAA,CAAA;AAClD4B,kBAAAA,IAAI,EAAE,CAAA;iBACHX,EAAAA,OAAO,CACb,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;gBAHIC,QAAQ,GAAAM,QAAA,CAAAK,CAAA,CAAA;gBAAA,IAKVX,CAAAA,QAAQ,CAACY,OAAO,EAAA;AAAAN,kBAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA,CAAA;AAAA,kBAAA,MAAA;AAAA,iBAAA;AAChB;AACMP,gBAAAA,YAAY,GAAG,yBAAyB,CAAA;gBACxCC,UAAU,GAAA,EAAA,CAAAW,MAAA,CAAMZ,YAAY,CAAA,CAAAY,MAAA,CAAGb,QAAQ,CAACc,IAAI,CAACC,MAAM,CAAA,CAAA;gBACzD,IAAI,CAACC,aAAa,CAAClB,WAAW,EAAEI,UAAU,EAAE,MAAM,EAAEH,OAAO,CAAC,CAAA;gBAC5D,IAAI,CAACkB,gBAAgB,CAACnB,WAAW,EAAE,MAAM,EAAEC,OAAO,CAAC,CAAA;gBAAC,OAAAO,QAAA,CAAAY,CAAA,CAAApC,CAAAA,EAAAA,cAAA,CAAAA,cAAA,CAAA,EAAA,EAE7CkB,QAAQ,CAACc,IAAI,CAAA,EAAA,EAAA,EAAA;AAChBK,kBAAAA,SAAS,EAAEjB,UAAU;AACrBkB,kBAAAA,SAAS,EAAEpB,QAAQ,CAACc,IAAI,CAACO,UAAAA;AAAU,iBAAA,CAAA,CAAA,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAA,MAGjC,IAAI/B,KAAK,CAACU,QAAQ,CAACsB,OAAO,IAAI,yCAAyC,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAhB,gBAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,cAAA,KAAA,CAAA;AAAAF,gBAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA,CAAA;gBAAAH,EAAA,GAAAE,QAAA,CAAAK,CAAA,CAAA;gBAGlFpB,OAAO,CAACgC,KAAK,CAAC,sBAAsB,EAAEnB,EAAA,CAAMkB,OAAO,CAAC,CAAA;AACpD/B,gBAAAA,OAAO,CAACC,GAAG,CAAC,yDAAyD,CAAC,CAAA;AACtE,gBAAA,IAAI,CAACgC,yBAAyB,CAAC1B,WAAW,EAAE,MAAM,CAAC,CAAA;AAAC,gBAAA,MAC9C,IAAIR,KAAK,CAAC,wBAAwB,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAA,OAAAgB,QAAA,CAAAY,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,aAAA;AAAA,WAAA,EAAArB,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;SAEhD,CAAA,CAAA,CAAA;QAAA,SA/BK4B,cAAcA,CAAAC,EAAA,EAAA;AAAA,UAAA,OAAAjC,eAAA,CAAAkC,KAAA,CAAA,IAAA,EAAAjD,SAAA,CAAA,CAAA;AAAA,SAAA;AAAA,QAAA,OAAd+C,cAAc,CAAA;AAAA,OAAA,EAAA;AAiCpB;AACR;AACA;AAFQ,OAAA;AAAA,KAAA,EAAA;MAAArC,GAAA,EAAA,eAAA;MAAAC,KAAA,GAAA,YAAA;QAAA,IAAAuC,cAAA,GAAAlC,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAGA,SAAAiC,QAAAA,CAAoB/B,WAAW,EAAA;AAAA,UAAA,IAAAC,OAAA;YAAAC,QAAA;YAAAC,YAAA;YAAAC,UAAA;AAAA4B,YAAAA,MAAA,GAAApD,SAAA;YAAAqD,GAAA,CAAA;AAAA,UAAA,OAAApC,YAAA,EAAA,CAAAU,CAAA,CAAA,UAAA2B,SAAA,EAAA;AAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAzB,CAAA,GAAAyB,SAAA,CAAAxB,CAAA;AAAA,cAAA,KAAA,CAAA;AAAET,gBAAAA,OAAO,GAAA+B,MAAA,CAAAnD,MAAA,GAAAmD,CAAAA,IAAAA,MAAA,CAAAlD,CAAAA,CAAAA,KAAAA,SAAA,GAAAkD,MAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;gBAAA,IACpC,IAAI,CAAC7C,aAAa,EAAA;AAAA+C,kBAAAA,SAAA,CAAAxB,CAAA,GAAA,CAAA,CAAA;AAAA,kBAAA,MAAA;AAAA,iBAAA;AAAA,gBAAA,MACb,IAAIlB,KAAK,CAAC,4BAA4B,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;AAAA0C,gBAAAA,SAAA,CAAAzB,CAAA,GAAA,CAAA,CAAA;AAAAyB,gBAAAA,SAAA,CAAAxB,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,OAItB,IAAI,CAACC,WAAW,CAAC,cAAc,EAAA3B,cAAA,CAAA;AAClD4B,kBAAAA,IAAI,EAAE,CAAA;iBACHX,EAAAA,OAAO,CACb,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;gBAHIC,QAAQ,GAAAgC,SAAA,CAAArB,CAAA,CAAA;gBAAA,IAKVX,CAAAA,QAAQ,CAACY,OAAO,EAAA;AAAAoB,kBAAAA,SAAA,CAAAxB,CAAA,GAAA,CAAA,CAAA;AAAA,kBAAA,MAAA;AAAA,iBAAA;AAChB;AACMP,gBAAAA,YAAY,GAAG,yBAAyB,CAAA;gBACxCC,UAAU,GAAA,EAAA,CAAAW,MAAA,CAAMZ,YAAY,CAAA,CAAAY,MAAA,CAAGb,QAAQ,CAACc,IAAI,CAACC,MAAM,CAAA,CAAA;gBACzD,IAAI,CAACC,aAAa,CAAClB,WAAW,EAAEI,UAAU,EAAE,KAAK,EAAEH,OAAO,CAAC,CAAA;gBAC3D,IAAI,CAACkB,gBAAgB,CAACnB,WAAW,EAAE,KAAK,EAAEC,OAAO,CAAC,CAAA;gBAAC,OAAAiC,SAAA,CAAAd,CAAA,CAAApC,CAAAA,EAAAA,cAAA,CAAAA,cAAA,CAAA,EAAA,EAE5CkB,QAAQ,CAACc,IAAI,CAAA,EAAA,EAAA,EAAA;AAChBK,kBAAAA,SAAS,EAAEjB,UAAU;AACrBkB,kBAAAA,SAAS,EAAEpB,QAAQ,CAACc,IAAI,CAACO,UAAAA;AAAU,iBAAA,CAAA,CAAA,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAA,MAGjC,IAAI/B,KAAK,CAACU,QAAQ,CAACsB,OAAO,IAAI,6CAA6C,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAU,gBAAAA,SAAA,CAAAxB,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,cAAA,KAAA,CAAA;AAAAwB,gBAAAA,SAAA,CAAAzB,CAAA,GAAA,CAAA,CAAA;gBAAAwB,GAAA,GAAAC,SAAA,CAAArB,CAAA,CAAA;gBAGtFpB,OAAO,CAACgC,KAAK,CAAC,sBAAsB,EAAEQ,GAAA,CAAMT,OAAO,CAAC,CAAA;AACpD/B,gBAAAA,OAAO,CAACC,GAAG,CAAC,wDAAwD,CAAC,CAAA;AACrE,gBAAA,IAAI,CAACgC,yBAAyB,CAAC1B,WAAW,EAAE,KAAK,CAAC,CAAA;AAAC,gBAAA,MAC7C,IAAIR,KAAK,CAAC,wBAAwB,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAA,OAAA0C,SAAA,CAAAd,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,aAAA;AAAA,WAAA,EAAAW,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;SAEhD,CAAA,CAAA,CAAA;QAAA,SA/BKI,aAAaA,CAAAC,GAAA,EAAA;AAAA,UAAA,OAAAN,cAAA,CAAAD,KAAA,CAAA,IAAA,EAAAjD,SAAA,CAAA,CAAA;AAAA,SAAA;AAAA,QAAA,OAAbuD,aAAa,CAAA;AAAA,OAAA,EAAA;AAiCnB;AACR;AACA;AAFQ,OAAA;AAAA,KAAA,EAAA;MAAA7C,GAAA,EAAA,kBAAA;MAAAC,KAAA,GAAA,YAAA;AAAA,QAAA,IAAA8C,iBAAA,GAAAzC,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAGA,SAAAwC,QAAAA,CAAuBtC,WAAW,EAAEY,IAAI,EAAA;AAAA,UAAA,IAAAX,OAAA;YAAAC,QAAA;YAAAC,YAAA;YAAAC,UAAA;AAAAmC,YAAAA,MAAA,GAAA3D,SAAA;YAAA4D,GAAA,CAAA;AAAA,UAAA,OAAA3C,YAAA,EAAA,CAAAU,CAAA,CAAA,UAAAkC,SAAA,EAAA;AAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhC,CAAA,GAAAgC,SAAA,CAAA/B,CAAA;AAAA,cAAA,KAAA,CAAA;AAAET,gBAAAA,OAAO,GAAAsC,MAAA,CAAA1D,MAAA,GAAA0D,CAAAA,IAAAA,MAAA,CAAAzD,CAAAA,CAAAA,KAAAA,SAAA,GAAAyD,MAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;gBAAA,IAC7C,IAAI,CAACpD,aAAa,EAAA;AAAAsD,kBAAAA,SAAA,CAAA/B,CAAA,GAAA,CAAA,CAAA;AAAA,kBAAA,MAAA;AAAA,iBAAA;AAAA,gBAAA,MACb,IAAIlB,KAAK,CAAC,4BAA4B,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAiD,gBAAAA,SAAA,CAAAhC,CAAA,GAAA,CAAA,CAAA;AAAAgC,gBAAAA,SAAA,CAAA/B,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,OAItB,IAAI,CAACC,WAAW,CAAC,cAAc,EAAA3B,cAAA,CAAA;AAClD4B,kBAAAA,IAAI,EAAEA,IAAAA;iBACHX,EAAAA,OAAO,CACb,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;gBAHIC,QAAQ,GAAAuC,SAAA,CAAA5B,CAAA,CAAA;gBAAA,IAKVX,CAAAA,QAAQ,CAACY,OAAO,EAAA;AAAA2B,kBAAAA,SAAA,CAAA/B,CAAA,GAAA,CAAA,CAAA;AAAA,kBAAA,MAAA;AAAA,iBAAA;AAChB;AACMP,gBAAAA,YAAY,GAAG,yBAAyB,CAAA;gBACxCC,UAAU,GAAA,EAAA,CAAAW,MAAA,CAAMZ,YAAY,CAAA,CAAAY,MAAA,CAAGb,QAAQ,CAACc,IAAI,CAACC,MAAM,CAAA,CAAA;gBACzD,IAAI,CAACC,aAAa,CAAClB,WAAW,EAAEI,UAAU,EAAEQ,IAAI,EAAEX,OAAO,CAAC,CAAA;gBAC1D,IAAI,CAACkB,gBAAgB,CAACnB,WAAW,EAAEY,IAAI,EAAEX,OAAO,CAAC,CAAA;gBAAC,OAAAwC,SAAA,CAAArB,CAAA,CAAApC,CAAAA,EAAAA,cAAA,CAAAA,cAAA,CAAA,EAAA,EAE3CkB,QAAQ,CAACc,IAAI,CAAA,EAAA,EAAA,EAAA;AAChBK,kBAAAA,SAAS,EAAEjB,UAAU;AACrBkB,kBAAAA,SAAS,EAAEpB,QAAQ,CAACc,IAAI,CAACO,UAAAA;AAAU,iBAAA,CAAA,CAAA,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAA,MAGjC,IAAI/B,KAAK,CAACU,QAAQ,CAACsB,OAAO,IAAI,yCAAyC,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAiB,gBAAAA,SAAA,CAAA/B,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,cAAA,KAAA,CAAA;AAAA+B,gBAAAA,SAAA,CAAAhC,CAAA,GAAA,CAAA,CAAA;gBAAA+B,GAAA,GAAAC,SAAA,CAAA5B,CAAA,CAAA;gBAGlFpB,OAAO,CAACgC,KAAK,CAAC,sBAAsB,EAAEe,GAAA,CAAMhB,OAAO,CAAC,CAAA;AACpD/B,gBAAAA,OAAO,CAACC,GAAG,CAAC,0DAA0D,GAAGkB,IAAI,CAAC,CAAA;AAC9E,gBAAA,IAAI,CAACc,yBAAyB,CAAC1B,WAAW,EAAEY,IAAI,CAAC,CAAA;AAAC,gBAAA,MAC5C,IAAIpB,KAAK,CAAC,wBAAwB,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAA,OAAAiD,SAAA,CAAArB,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,aAAA;AAAA,WAAA,EAAAkB,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;SAEhD,CAAA,CAAA,CAAA;AAAA,QAAA,SA/BKI,gBAAgBA,CAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,UAAA,OAAAP,iBAAA,CAAAR,KAAA,CAAA,IAAA,EAAAjD,SAAA,CAAA,CAAA;AAAA,SAAA;AAAA,QAAA,OAAhB8D,gBAAgB,CAAA;AAAA,OAAA,EAAA;AAiCtB;AACR;AACA;AAFQ,OAAA;AAAA,KAAA,EAAA;MAAApD,GAAA,EAAA,eAAA;MAAAC,KAAA,GAAA,YAAA;QAAA,IAAAsD,cAAA,GAAAjD,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAGA,SAAAgD,QAAAA,CAAoBxB,SAAS,EAAA;UAAA,IAAApB,QAAA,EAAA6C,GAAA,CAAA;AAAA,UAAA,OAAAlD,YAAA,EAAA,CAAAU,CAAA,CAAA,UAAAyC,SAAA,EAAA;AAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAvC,CAAA,GAAAuC,SAAA,CAAAtC,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAA,IACpB,IAAI,CAACvB,aAAa,EAAA;AAAA6D,kBAAAA,SAAA,CAAAtC,CAAA,GAAA,CAAA,CAAA;AAAA,kBAAA,MAAA;AAAA,iBAAA;AAAA,gBAAA,MACb,IAAIlB,KAAK,CAAC,4BAA4B,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAwD,gBAAAA,SAAA,CAAAvC,CAAA,GAAA,CAAA,CAAA;AAAAuC,gBAAAA,SAAA,CAAAtC,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,OAItB,IAAI,CAACC,WAAW,CAAC,YAAY,EAAE;AAClDsC,kBAAAA,SAAS,EAAE3B,SAAAA;AACf,iBAAC,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;gBAFIpB,QAAQ,GAAA8C,SAAA,CAAAnC,CAAA,CAAA;gBAAA,IAIVX,CAAAA,QAAQ,CAACY,OAAO,EAAA;AAAAkC,kBAAAA,SAAA,CAAAtC,CAAA,GAAA,CAAA,CAAA;AAAA,kBAAA,MAAA;AAAA,iBAAA;AAAA,gBAAA,OAAAsC,SAAA,CAAA5B,CAAA,CACTlB,CAAAA,EAAAA,QAAQ,CAACc,IAAI,CAAA,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAA,MAEd,IAAIxB,KAAK,CAACU,QAAQ,CAACsB,OAAO,IAAI,0CAA0C,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAwB,gBAAAA,SAAA,CAAAtC,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,cAAA,KAAA,CAAA;AAAAsC,gBAAAA,SAAA,CAAAvC,CAAA,GAAA,CAAA,CAAA;gBAAAsC,GAAA,GAAAC,SAAA,CAAAnC,CAAA,CAAA;AAGnF,gBAAA,IAAI,CAACqC,WAAW,CAAAH,GAAM,CAAC,CAAA;AAAC,gBAAA,MAAAA,GAAA,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAA,OAAAC,SAAA,CAAA5B,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,aAAA;AAAA,WAAA,EAAA0B,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;SAG/B,CAAA,CAAA,CAAA;QAAA,SAnBKK,aAAaA,CAAAC,GAAA,EAAA;AAAA,UAAA,OAAAP,cAAA,CAAAhB,KAAA,CAAA,IAAA,EAAAjD,SAAA,CAAA,CAAA;AAAA,SAAA;AAAA,QAAA,OAAbuE,aAAa,CAAA;AAAA,OAAA,EAAA;AAqBnB;AACR;AACA;AAFQ,OAAA;AAAA,KAAA,EAAA;MAAA7D,GAAA,EAAA,eAAA;MAAAC,KAAA,EAGA,SAAA2B,aAAaA,CAAClB,WAAW,EAAEqD,KAAK,EAAEzC,IAAI,EAAgB;AAAA,QAAA,IAAdX,OAAO,GAAArB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAChD,QAAA,IAAM0E,SAAS,GAAGC,QAAQ,CAACC,cAAc,CAACxD,WAAW,CAAC,CAAA;QACtD,IAAI,CAACsD,SAAS,EAAE;AACZ,UAAA,MAAM,IAAI9D,KAAK,CAAA,wBAAA,CAAAuB,MAAA,CAAyBf,WAAW,qBAAc,CAAC,CAAA;AACtE,SAAA;;AAEA;QACAsD,SAAS,CAACG,SAAS,GAAG,EAAE,CAAA;;AAExB;AACA,QAAA,IAAMC,SAAS,GAAGH,QAAQ,CAACI,aAAa,CAAC,KAAK,CAAC,CAAA;QAC/CD,SAAS,CAACE,SAAS,GAAG,gBAAgB,CAAA;QACtCF,SAAS,CAACD,SAAS,GAAA,kFAAA,CAAA1C,MAAA,CAELH,IAAI,KAAK,CAAC,GAAG,kBAAkB,GAAGA,IAAI,KAAK,CAAC,GAAG,kBAAkB,GAAG,eAAe,GAAGA,IAAI,EAAAG,qHAAAA,CAAAA,CAAAA,MAAA,CAGpFsC,KAAK,EAQxB,kbAAA,CAAA,CAAA;AAEDC,QAAAA,SAAS,CAACO,WAAW,CAACH,SAAS,CAAC,CAAA;;AAEhC;AACA,QAAA,IAAI,CAACI,UAAU,CAAC7D,OAAO,CAAC7B,KAAK,IAAI,IAAI,CAACO,MAAM,CAACP,KAAK,CAAC,CAAA;AACvD,OAAA;;AAEA;AACR;AACA;AAFQ,KAAA,EAAA;MAAAkB,GAAA,EAAA,2BAAA;AAAAC,MAAAA,KAAA,EAGA,SAAAmC,yBAAyBA,CAAC1B,WAAW,EAAEY,IAAI,EAAE;QACzCnB,OAAO,CAACC,GAAG,CAAA,4CAAA,CAAAqB,MAAA,CAA2Cf,WAAW,EAAA,UAAA,CAAA,CAAAe,MAAA,CAAWH,IAAI,CAAE,CAAC,CAAA;AACnF,QAAA,IAAM0C,SAAS,GAAGC,QAAQ,CAACC,cAAc,CAACxD,WAAW,CAAC,CAAA;QACtD,IAAI,CAACsD,SAAS,EAAE;AACZ7D,UAAAA,OAAO,CAACgC,KAAK,CAAA,YAAA,CAAAV,MAAA,CAAcf,WAAW,mBAAa,CAAC,CAAA;AACpD,UAAA,OAAA;AACJ,SAAA;QAEAsD,SAAS,CAACG,SAAS,GAAA,m7BAAA,CAAA1C,MAAA,CAiBCH,IAAI,CAACmD,WAAW,EAAE,EAGrC,oEAAA,CAAA,CAAA;AACL,OAAA;;AAEA;AACR;AACA;AAFQ,KAAA,EAAA;MAAAzE,GAAA,EAAA,WAAA;MAAAC,KAAA,GAAA,YAAA;AAAA,QAAA,IAAAyE,UAAA,GAAApE,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAGA,SAAAmE,QAAAA,CAAgBjE,WAAW,EAAEY,IAAI,EAAA;AAAA,UAAA,IAAAX,OAAA;YAAAiE,MAAA;AAAAC,YAAAA,MAAA,GAAAvF,SAAA;YAAAwF,GAAA;YAAAC,GAAA;YAAAC,GAAA,CAAA;AAAA,UAAA,OAAAzE,YAAA,EAAA,CAAAU,CAAA,CAAA,UAAAgE,SAAA,EAAA;AAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA9D,CAAA,GAAA8D,SAAA,CAAA7D,CAAA;AAAA,cAAA,KAAA,CAAA;AAAET,gBAAAA,OAAO,GAAAkE,MAAA,CAAAtF,MAAA,GAAAsF,CAAAA,IAAAA,MAAA,CAAArF,CAAAA,CAAAA,KAAAA,SAAA,GAAAqF,MAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;AAAAI,gBAAAA,SAAA,CAAA9D,CAAA,GAAA,CAAA,CAAA;gBAAA,IAExBG,EAAAA,IAAI,KAAK,CAAC,CAAA,EAAA;AAAA2D,kBAAAA,SAAA,CAAA7D,CAAA,GAAA,CAAA,CAAA;AAAA,kBAAA,MAAA;AAAA,iBAAA;AAAA6D,gBAAAA,SAAA,CAAA7D,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,OACb,IAAI,CAACiB,cAAc,CAAC3B,WAAW,EAAEC,OAAO,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAAmE,GAAA,GAAAG,SAAA,CAAA1D,CAAA,CAAA;AAAA0D,gBAAAA,SAAA,CAAA7D,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,cAAA,KAAA,CAAA;gBAAA,IAC/CE,EAAAA,IAAI,KAAK,CAAC,CAAA,EAAA;AAAA2D,kBAAAA,SAAA,CAAA7D,CAAA,GAAA,CAAA,CAAA;AAAA,kBAAA,MAAA;AAAA,iBAAA;AAAA6D,gBAAAA,SAAA,CAAA7D,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,OACJ,IAAI,CAACyB,aAAa,CAACnC,WAAW,EAAEC,OAAO,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAAoE,GAAA,GAAAE,SAAA,CAAA1D,CAAA,CAAA;AAAA0D,gBAAAA,SAAA,CAAA7D,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,cAAA,KAAA,CAAA;AAAA6D,gBAAAA,SAAA,CAAA7D,CAAA,GAAA,CAAA,CAAA;gBAAA,OACxC,IAAI,CAACgC,gBAAgB,CAAC1C,WAAW,EAAEY,IAAI,EAAEX,OAAO,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAAoE,GAAA,GAAAE,SAAA,CAAA1D,CAAA,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAuD,gBAAAA,GAAA,GAAAC,GAAA,CAAA;AAAA,cAAA,KAAA,CAAA;AAJvDH,gBAAAA,MAAM,GAAAE,GAAA,CAAA;AAAA,gBAAA,OAAAG,SAAA,CAAAnD,CAAA,CAAA,CAAA,EAML8C,MAAM,CAAA,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAK,gBAAAA,SAAA,CAAA9D,CAAA,GAAA,CAAA,CAAA;gBAAA6D,GAAA,GAAAC,SAAA,CAAA1D,CAAA,CAAA;gBAEbpB,OAAO,CAACgC,KAAK,CAAC,kCAAkC,EAAE6C,GAAA,CAAM9C,OAAO,CAAC,CAAA;AAChE,gBAAA,IAAI,CAACE,yBAAyB,CAAC1B,WAAW,EAAEY,IAAI,CAAC,CAAA;AAAC,gBAAA,MAAA0D,GAAA,CAAA;AAAA,cAAA,KAAA,EAAA;gBAAA,OAAAC,SAAA,CAAAnD,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,aAAA;AAAA,WAAA,EAAA6C,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;SAGzD,CAAA,CAAA,CAAA;AAAA,QAAA,SAdKO,SAASA,CAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,UAAA,OAAAV,UAAA,CAAAnC,KAAA,CAAA,IAAA,EAAAjD,SAAA,CAAA,CAAA;AAAA,SAAA;AAAA,QAAA,OAAT4F,SAAS,CAAA;AAAA,OAAA,EAAA;AAgBf;AACR;AACA;AAFQ,OAAA;AAAA,KAAA,EAAA;MAAAlF,GAAA,EAAA,kBAAA;MAAAC,KAAA,EAGA,SAAA4B,gBAAgBA,CAACnB,WAAW,EAAEY,IAAI,EAAEX,OAAO,EAAE;AAAA,QAAA,IAAA0E,KAAA,GAAA,IAAA,CAAA;AACzC,QAAA,IAAI,CAAC,IAAI,CAAChG,MAAM,CAACL,WAAW,EAAE,OAAA;AAE9B,QAAA,IAAI,CAACY,YAAY,GAAG0F,WAAW,cAAAhF,iBAAA,cAAAC,YAAA,EAAAC,CAAAA,CAAA,CAAC,SAAA+E,QAAA,GAAA;AAAA,UAAA,IAAAC,GAAA,CAAA;AAAA,UAAA,OAAAjF,YAAA,EAAA,CAAAU,CAAA,CAAA,UAAAwE,SAAA,EAAA;AAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAtE,CAAA,GAAAsE,SAAA,CAAArE,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAqE,gBAAAA,SAAA,CAAAtE,CAAA,GAAA,CAAA,CAAA;AAAAsE,gBAAAA,SAAA,CAAArE,CAAA,GAAA,CAAA,CAAA;gBAAA,OAElBiE,KAAI,CAACH,SAAS,CAACxE,WAAW,EAAEY,IAAI,EAAEX,OAAO,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;AAAA8E,gBAAAA,SAAA,CAAArE,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,cAAA,KAAA,CAAA;AAAAqE,gBAAAA,SAAA,CAAAtE,CAAA,GAAA,CAAA,CAAA;gBAAAqE,GAAA,GAAAC,SAAA,CAAAlE,CAAA,CAAA;AAEhDpB,gBAAAA,OAAO,CAACuF,IAAI,CAAC,8CAA8C,EAAAF,GAAO,CAAC,CAAA;AAAC,cAAA,KAAA,CAAA;gBAAA,OAAAC,SAAA,CAAA3D,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,aAAA;AAAA,WAAA,EAAAyD,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,SAE3E,IAAE,IAAI,CAAClG,MAAM,CAACJ,eAAe,CAAC,CAAA;AACnC,OAAA;;AAEA;AACR;AACA;;AAGQ;AACR;AACA;AAFQ,KAAA,EAAA;MAAAe,GAAA,EAAA,aAAA;MAAAC,KAAA,GAAA,YAAA;AAAA,QAAA,IAAA0F,YAAA,GAAArF,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAGA,SAAAoF,QAAAA,CAAkBC,QAAQ,EAAEnE,IAAI,EAAA;AAAA,UAAA,IAAAoE,qBAAA,CAAA;AAAA,UAAA,IAAAC,YAAA,EAAAC,GAAA,EAAApF,QAAA,EAAAqF,SAAA,EAAAC,SAAA,EAAAtB,MAAA,EAAAuB,GAAA,CAAA;AAAA,UAAA,OAAA5F,YAAA,EAAA,CAAAU,CAAA,CAAA,UAAAmF,SAAA,EAAA;AAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjF,CAAA,GAAAiF,SAAA,CAAAhF,CAAA;AAAA,cAAA,KAAA,CAAA;AAC5B;AACM2E,gBAAAA,YAAY,GAAG,CAAA,CAAAD,qBAAA,GAAAvH,MAAM,CAACI,YAAY,MAAA,IAAA,IAAAmH,qBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,qBAAA,GAAnBA,qBAAA,CAAqBO,SAAS,MAAAP,IAAAA,IAAAA,qBAAA,KAA9BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAiCD,QAAQ,CAACS,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAIT,QAAQ,CAAA;gBACtFG,GAAG,GAAA,EAAA,CAAAvE,MAAA,CAAM,IAAI,CAACpC,MAAM,CAACX,MAAM,CAAA,CAAA+C,MAAA,CAAGsE,YAAY,CAAA,CAAA;AAAAK,gBAAAA,SAAA,CAAAjF,CAAA,GAAA,CAAA,CAAA;AAAAiF,gBAAAA,SAAA,CAAAhF,CAAA,GAAA,CAAA,CAAA;gBAAA,OAGrBmF,KAAK,CAACP,GAAG,EAAE;AAC9BQ,kBAAAA,MAAM,EAAE,MAAM;AACdC,kBAAAA,OAAO,EAAE;AACL,oBAAA,cAAc,EAAE,kBAAkB;AAClC,oBAAA,eAAe,YAAAhF,MAAA,CAAY,IAAI,CAACpC,MAAM,CAACT,QAAQ,EAAA6C,GAAAA,CAAAA,CAAAA,MAAA,CAAI,IAAI,CAACpC,MAAM,CAACR,QAAQ,CAAE;AACzE,oBAAA,QAAQ,EAAE,kBAAA;mBACb;kBACD6H,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAAlH,cAAA,CAAAA,cAAA,CAAA,EAAA,EACbgC,IAAI,CAAA,EAAA,EAAA,EAAA;AACPmF,oBAAAA,SAAS,EAAE,IAAI,CAACxH,MAAM,CAACT,QAAQ;AAC/BkI,oBAAAA,SAAS,EAAE,IAAI,CAACzH,MAAM,CAACR,QAAAA;mBAC1B,CAAA,CAAA;AACL,iBAAC,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;gBAZI+B,QAAQ,GAAAwF,SAAA,CAAA7E,CAAA,CAAA;gBAAA,IAcTX,QAAQ,CAACmG,EAAE,EAAA;AAAAX,kBAAAA,SAAA,CAAAhF,CAAA,GAAA,CAAA,CAAA;AAAA,kBAAA,MAAA;AAAA,iBAAA;AAAAgF,gBAAAA,SAAA,CAAAhF,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,OACYR,QAAQ,CAACoG,IAAI,EAAE,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAjCf,SAAS,GAAAG,SAAA,CAAA7E,CAAA,CAAA;gBAEf,IAAI;AACA2E,kBAAAA,SAAS,GAAGS,IAAI,CAACM,KAAK,CAAChB,SAAS,CAAC,CAAA;iBACpC,CAAC,OAAOiB,CAAC,EAAE;AACRhB,kBAAAA,SAAS,GAAG;AAAEhE,oBAAAA,OAAO,EAAE+D,SAAAA;mBAAW,CAAA;AACtC,iBAAA;AAAC,gBAAA,MAEK,IAAI/F,KAAK,CAACgG,SAAS,CAAChE,OAAO,IAAAT,eAAAA,CAAAA,MAAA,CAAoBb,QAAQ,CAACuG,MAAM,CAAE,CAAC,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAf,gBAAAA,SAAA,CAAAhF,CAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,OAGtDR,QAAQ,CAACwG,IAAI,EAAE,CAAA;AAAA,cAAA,KAAA,CAAA;gBAA9BxC,MAAM,GAAAwB,SAAA,CAAA7E,CAAA,CAAA;AAAA,gBAAA,OAAA6E,SAAA,CAAAtE,CAAA,CAAA,CAAA,EACL8C,MAAM,CAAA,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAwB,gBAAAA,SAAA,CAAAjF,CAAA,GAAA,CAAA,CAAA;gBAAAgF,GAAA,GAAAC,SAAA,CAAA7E,CAAA,CAAA;AAEbpB,gBAAAA,OAAO,CAACgC,KAAK,CAAC,oBAAoB,EAAAgE,GAAO,CAAC,CAAA;AAAC,gBAAA,MAAAA,GAAA,CAAA;AAAA,cAAA,KAAA,CAAA;gBAAA,OAAAC,SAAA,CAAAtE,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,aAAA;AAAA,WAAA,EAAA8D,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;SAGlD,CAAA,CAAA,CAAA;AAAA,QAAA,SAtCKvE,WAAWA,CAAAgG,GAAA,EAAAC,GAAA,EAAA;AAAA,UAAA,OAAA3B,YAAA,CAAApD,KAAA,CAAA,IAAA,EAAAjD,SAAA,CAAA,CAAA;AAAA,SAAA;AAAA,QAAA,OAAX+B,WAAW,CAAA;AAAA,OAAA,EAAA;AAwCjB;AACR;AACA;AAFQ,OAAA;AAAA,KAAA,EAAA;MAAArB,GAAA,EAAA,YAAA;AAAAC,MAAAA,KAAA,EAGA,SAAAuE,UAAUA,CAAC1F,KAAK,EAAE;AACd,QAAA,IAAMkF,SAAS,GAAGC,QAAQ,CAACsD,aAAa,CAAC,iBAAiB,CAAC,CAAA;AAC3D,QAAA,IAAIvD,SAAS,EAAE;AACXA,UAAAA,SAAS,CAACM,SAAS,GAAA,8BAAA,CAAA7C,MAAA,CAAkC3C,KAAK,CAAE,CAAA;AAChE,SAAA;AACJ,OAAA;;AAEA;AACR;AACA;AAFQ,KAAA,EAAA;MAAAkB,GAAA,EAAA,aAAA;AAAAC,MAAAA,KAAA,EAGA,SAAA2D,WAAWA,CAACzB,KAAK,EAAE;AACfhC,QAAAA,OAAO,CAACgC,KAAK,CAAC,mBAAmB,EAAEA,KAAK,CAAC,CAAA;AAEzC,QAAA,IAAI,IAAI,CAAC9C,MAAM,CAACF,OAAO,EAAE;AACrB,UAAA,IAAI,CAACE,MAAM,CAACF,OAAO,CAACgD,KAAK,CAAC,CAAA;AAC9B,SAAA;AACJ,OAAA;;AAEA;AACR;AACA;AAFQ,KAAA,EAAA;MAAAnC,GAAA,EAAA,SAAA;AAAAC,MAAAA,KAAA,EAGA,SAAAuH,OAAOA,GAAG;QACN,IAAI,IAAI,CAAC5H,YAAY,EAAE;AACnB6H,UAAAA,aAAa,CAAC,IAAI,CAAC7H,YAAY,CAAC,CAAA;AACpC,SAAA;QAEA,IAAI,CAACC,aAAa,GAAG,KAAK,CAAA;AAC1BM,QAAAA,OAAO,CAACC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AACrC,OAAA;AAAC,KAAA,CAAA,CAAA,CAAA;GAGL,EAAA,CAAA;EACA7B,MAAM,CAACa,MAAM,GAAGA,MAAM,CAAA;EACtBb,MAAM,CAACmJ,cAAc,GAAG,IAAI,CAAA;;AAE5B;AACAnJ,EAAAA,MAAM,CAACoJ,UAAU,GAAG,UAAStI,MAAM,EAAE;IACjC,IAAI;AACAd,MAAAA,MAAM,CAACmJ,cAAc,GAAG,IAAItI,MAAM,CAACC,MAAM,CAAC,CAAA;MAC1C,OAAOd,MAAM,CAACmJ,cAAc,CAAA;KAC/B,CAAC,OAAOvF,KAAK,EAAE;AACZhC,MAAAA,OAAO,CAACgC,KAAK,CAAC,6CAA6C,EAAEA,KAAK,CAAC,CAAA;AACnE,MAAA,MAAMA,KAAK,CAAA;AACf,KAAA;GACH,CAAA;AAEL,CAAC,EAAE5D,MAAM,CAAC"}
|