@softheon/armature 17.5.2 → 17.5.4

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.
@@ -256,6 +256,10 @@ mat-button-toggle-group {
256
256
  letter-spacing: 0.05em !important;
257
257
  text-align: center !important;
258
258
  color: black !important;
259
+ // remove selected check indicator
260
+ .mat-pseudo-checkbox {
261
+ display: none!important;
262
+ }
259
263
  }
260
264
 
261
265
  .mat-button-toggle-button {
@@ -377,11 +381,11 @@ button.mat-mdc-button {
377
381
  font-size: 16px !important;
378
382
  line-height: 24px !important;
379
383
  letter-spacing: 0.05em !important;
380
- text-transform: uppercase !important;
384
+ text-transform: uppercase !important;
381
385
 
382
386
 
383
387
  &.fixed-width {
384
- width: 200px !important; // Use this is to match specific sizing
388
+ width: 200px !important; // Use this is to match specific sizing
385
389
  }
386
390
 
387
391
  &.full-width {
@@ -393,7 +397,7 @@ button.mat-mdc-button {
393
397
  color: mat.get-color-from-palette($arm-primary, 500);
394
398
 
395
399
  &:hover {
396
- background-color: mat.get-color-from-palette($arm-primary, 50);
400
+ background-color: mat.get-color-from-palette($arm-primary, 500);
397
401
  }
398
402
 
399
403
  &:focus {
@@ -520,7 +524,7 @@ button.mat-mdc-button {
520
524
  color: mat.get-color-from-palette($arm-primary, 500);
521
525
 
522
526
  &:hover {
523
- background-color: mat.get-color-from-palette($arm-primary, 50);
527
+ background-color: mat.get-color-from-palette($arm-primary, 500);
524
528
  }
525
529
 
526
530
  &:focus {
@@ -634,6 +638,8 @@ button.mat-mdc-button {
634
638
  min-width: 56px !important;
635
639
  font-size: 26px !important;
636
640
  }
641
+ // Secondary Button Styles
642
+
637
643
  }
638
644
 
639
645
  button.mat-mdc-unelevated-button {
@@ -641,8 +647,9 @@ button.mat-mdc-unelevated-button {
641
647
  --mdc-filled-button-label-text-color: none !important;
642
648
  --mat-filled-button-ripple-color: rgba(255, 255, 255, 0.1)!important;
643
649
 
650
+
644
651
  &.sof-flat-button {
645
- padding: 0px 24px !important;
652
+ padding: 0px 24px !important;
646
653
  height: 48px !important;
647
654
  border-radius: 6px !important;
648
655
  font-family: Poppins !important;
@@ -651,7 +658,8 @@ button.mat-mdc-unelevated-button {
651
658
  font-size: 16px !important;
652
659
  line-height: 24px !important;
653
660
  letter-spacing: 0.05em !important;
654
- text-transform: uppercase !important;
661
+ text-transform: uppercase !important;
662
+
655
663
 
656
664
  &.fixed-width {
657
665
  width: 200px !important; // Use this is to match specific sizing
@@ -666,27 +674,24 @@ button.mat-mdc-unelevated-button {
666
674
  &.mat-primary {
667
675
  background: mat.get-color-from-palette($arm-primary, 500);
668
676
  color: map-get($arm-primary, contrast, 500);
669
-
670
- &:hover {
677
+
678
+ &:hover{
671
679
  background-color: mat.get-color-from-palette($arm-primary, 700);
672
680
  color: map-get($arm-primary, contrast, 700);
673
681
  }
674
-
682
+
675
683
  &:focus {
676
- outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
684
+ outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
677
685
  outline-offset: 2px !important;
678
686
  }
679
687
  }
680
-
681
688
  &.mat-accent {
682
689
  background: mat.get-color-from-palette($arm-accent, 500);
683
690
  color: map-get($arm-accent, contrast, 500);
684
-
685
691
  &:hover {
686
692
  background-color: mat.get-color-from-palette($arm-accent, 700);
687
693
  color: map-get($arm-accent, contrast, 700);
688
694
  }
689
-
690
695
  &:focus {
691
696
  outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
692
697
  outline-offset: 2px !important;
@@ -703,7 +708,7 @@ button.mat-mdc-unelevated-button {
703
708
  }
704
709
 
705
710
  &:focus {
706
- outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
711
+ outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
707
712
  outline-offset: 2px !important;
708
713
  }
709
714
  }
@@ -718,7 +723,7 @@ button.mat-mdc-unelevated-button {
718
723
  }
719
724
 
720
725
  &:focus {
721
- outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
726
+ outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
722
727
  outline-offset: 2px !important;
723
728
  }
724
729
  }
@@ -733,7 +738,7 @@ button.mat-mdc-unelevated-button {
733
738
  }
734
739
 
735
740
  &:focus {
736
- outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
741
+ outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
737
742
  outline-offset: 2px !important;
738
743
  }
739
744
  }
@@ -748,7 +753,7 @@ button.mat-mdc-unelevated-button {
748
753
  }
749
754
 
750
755
  &:focus {
751
- outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
756
+ outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
752
757
  outline-offset: 2px !important;
753
758
  }
754
759
  }
@@ -810,17 +815,15 @@ button.mat-mdc-unelevated-button {
810
815
  background: mat.get-color-from-palette($arm-primary, 500);
811
816
  color: map-get($arm-primary, contrast, 500);
812
817
 
818
+ &:focus {
819
+ outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
820
+ outline-offset: 2px !important;
821
+ }
813
822
  &:hover {
814
823
  background-color: mat.get-color-from-palette($arm-primary, 700);
815
824
  color: map-get($arm-primary, contrast, 700);
816
825
  }
817
-
818
- &:focus {
819
- outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
820
- outline-offset: 2px !important;
821
- }
822
826
  }
823
-
824
827
  &.mat-accent {
825
828
  background: mat.get-color-from-palette($arm-accent, 500);
826
829
  color: map-get($arm-accent, contrast, 500);
@@ -844,9 +847,8 @@ button.mat-mdc-unelevated-button {
844
847
  background-color: mat.get-color-from-palette($arm-warn, 700);
845
848
  color: map-get($arm-warn, contrast, 700);
846
849
  }
847
-
848
- &:focus {
849
- outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
850
+ &:focus {
851
+ outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
850
852
  outline-offset: 2px !important;
851
853
  }
852
854
  }
@@ -859,9 +861,8 @@ button.mat-mdc-unelevated-button {
859
861
  background-color: mat.get-color-from-palette($arm-success, 700);
860
862
  color: map-get($arm-success, contrast, 700);
861
863
  }
862
-
863
- &:focus {
864
- outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
864
+ &:focus {
865
+ outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
865
866
  outline-offset: 2px !important;
866
867
  }
867
868
  }
@@ -874,9 +875,8 @@ button.mat-mdc-unelevated-button {
874
875
  background-color: mat.get-color-from-palette($arm-error, 700);
875
876
  color: map-get($arm-error, contrast, 700);
876
877
  }
877
-
878
- &:focus {
879
- outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
878
+ &:focus {
879
+ outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
880
880
  outline-offset: 2px !important;
881
881
  }
882
882
  }
@@ -889,9 +889,8 @@ button.mat-mdc-unelevated-button {
889
889
  background-color: mat.get-color-from-palette($arm-info, 700);
890
890
  color: map-get($arm-info, contrast, 700);
891
891
  }
892
-
893
- &:focus {
894
- outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
892
+ &:focus {
893
+ outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
895
894
  outline-offset: 2px !important;
896
895
  }
897
896
  }
@@ -904,9 +903,8 @@ button.mat-mdc-unelevated-button {
904
903
  background-color: mat.get-color-from-palette($arm-neutral, 700);
905
904
  color: map-get($arm-neutral, contrast, 700);
906
905
  }
907
-
908
- &:focus {
909
- outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
906
+ &:focus {
907
+ outline: 4px solid mat.get-color-from-palette($arm-primary, 500);
910
908
  outline-offset: 2px !important;
911
909
  }
912
910
  }
@@ -914,7 +912,7 @@ button.mat-mdc-unelevated-button {
914
912
 
915
913
  &:disabled {
916
914
  background: #f7f7f7 !important;
917
- color: rgba(0, 0, 0, 0.6) !important;
915
+ color:rgba(0, 0, 0, 0.6) !important;
918
916
  opacity: 1 !important;
919
917
  }
920
918
  }
@@ -960,7 +958,7 @@ button.mat-mdc-outlined-button {
960
958
  text-transform: uppercase !important;
961
959
 
962
960
  &.fixed-width {
963
- width: 200px !important; // Use this is to match specific sizing
961
+ width: 200px !important; // Use this is to match specific sizing
964
962
  }
965
963
 
966
964
  &.full-width {
@@ -1088,7 +1086,7 @@ button.mat-mdc-outlined-button {
1088
1086
  text-transform: uppercase !important;
1089
1087
 
1090
1088
  &.fixed-width {
1091
- width: 200px !important; // Use this is to match specific sizing
1089
+ width: 200px !important; // Use this is to match specific sizing
1092
1090
  }
1093
1091
 
1094
1092
  &.full-width {
@@ -1468,7 +1466,7 @@ button.mat-mdc-outlined-button {
1468
1466
  height: 48px !important;
1469
1467
  width: 48px !important;
1470
1468
  min-width: 48px !important;
1471
- font-size: 26px !important;
1469
+ font-size: 24px !important;
1472
1470
  }
1473
1471
 
1474
1472
  &.sof-stroked-icon-button[size="large"],
@@ -1480,6 +1478,197 @@ button.mat-mdc-outlined-button {
1480
1478
  }
1481
1479
  }
1482
1480
 
1481
+ // Button Redesign
1482
+
1483
+ button.sof-button-v2{
1484
+ display: flex;
1485
+ justify-content: center;
1486
+ align-items: center;
1487
+ padding:8px!important;
1488
+ height: 40px !important;
1489
+ border-radius: 8px !important;
1490
+ font-family: Poppins !important;
1491
+ font-style: normal !important;
1492
+ font-weight: 500 !important;
1493
+ font-size: 16px !important;
1494
+ line-height: normal !important;
1495
+ letter-spacing: 0.05em !important;
1496
+ text-transform: capitalize !important;
1497
+ &.mat-button-focus-overlay{
1498
+ pointer-events: none !important;
1499
+ }
1500
+ &.mat-mdc-unelevated-button span.mdc-button__label.mdc-button__label{
1501
+ display: flex;
1502
+ align-items: center;
1503
+ justify-content: space-evenly !important;
1504
+ width: 100% !important;
1505
+ }
1506
+ &.fixed-width {
1507
+ width: 120px !important; // Use this is to match specific sizing
1508
+ }
1509
+
1510
+ &.full-width {
1511
+ width: 100% !important; // Use this is button width will take size of flex percentage
1512
+ }
1513
+ &:enabled{
1514
+ &.mat-primary{
1515
+ color:white;
1516
+
1517
+ &:hover{
1518
+ background-color: mat.get-color-from-palette($arm-primary, 500);
1519
+ }
1520
+ &:focus{
1521
+ outline: 3px solid mat.get-color-from-palette($arm-primary, 300);
1522
+ outline-offset: 2px !important;
1523
+ }
1524
+
1525
+ }
1526
+ &.mat-secondary{
1527
+ background: #FAFAFA !important;
1528
+ color: var(--primary-color-contrast-50-parts);
1529
+ &:hover{
1530
+ background-color: #FAFAFA !important;
1531
+ }
1532
+ &:focus{
1533
+ outline: 3px solid mat.get-color-from-palette($arm-primary, 300);
1534
+ outline-offset: 2px !important;
1535
+ }
1536
+
1537
+ }
1538
+ &.mat-tertiary{
1539
+ color: var(--primary-color-contrast-50-parts);
1540
+ background: none !important;
1541
+ &:hover{
1542
+ background-color: mat.get-color-from-palette($arm-primary, 500);
1543
+ }
1544
+ &:focus{
1545
+ outline: 3px solid mat.get-color-from-palette($arm-primary, 300);
1546
+ outline-offset: 2px !important;
1547
+ }
1548
+ }
1549
+ &.mat-error{
1550
+ background: mat.get-color-from-palette($arm-error, 900);
1551
+ color: map-get($arm-error, contrast, 900);
1552
+
1553
+ &:hover {
1554
+ background-color: mat.get-color-from-palette($arm-error, 700);
1555
+ color: map-get($arm-error, contrast, 700);
1556
+ }
1557
+
1558
+ &:focus {
1559
+ outline: 3px solid mat.get-color-from-palette($arm-primary, 300);
1560
+ outline-offset: 2px !important;
1561
+ }
1562
+ }
1563
+
1564
+ }
1565
+
1566
+ &:disabled {
1567
+ background: #f7f7f7 !important;
1568
+ color:rgba(0, 0, 0, 0.6) !important;
1569
+ opacity: 1 !important;
1570
+ &:hover{
1571
+ background-color: mat.get-color-from-palette($arm-primary, 500);
1572
+ }
1573
+ &:focus{
1574
+ outline: 3px solid mat.get-color-from-palette($arm-primary, 300);
1575
+ outline-offset: 2px !important;
1576
+ }
1577
+ }
1578
+
1579
+ }
1580
+ button.soft-button-icon-v2{
1581
+ display: flex !important;
1582
+ padding: 8px 16px !important;
1583
+ border-radius: 8px !important;
1584
+ height: 40px !important;
1585
+ justify-content: center !important;
1586
+ align-items: center !important;
1587
+ gap: 8px !important;
1588
+ flex: 1 0 0 !important;
1589
+
1590
+ &.mat-mdc-unelevated-button span.mdc-button__label.mdc-button__label{
1591
+ display: flex;
1592
+ align-items: center;
1593
+ font-size: 24px;
1594
+ }
1595
+
1596
+
1597
+ &.fixed-width {
1598
+ max-width: 36px !important; // Use this is to match specific sizing
1599
+ }
1600
+ &.full-width {
1601
+ width: 100% !important; // Use this is button width will take size of flex percentage
1602
+ }
1603
+ &:enabled{
1604
+ &.mat-primary{
1605
+ color:white;
1606
+ border-radius: 8px !important;
1607
+
1608
+ &:hover{
1609
+ background-color: mat.get-color-from-palette($arm-primary, 500);
1610
+ }
1611
+ &:focus{
1612
+ outline: 3px solid mat.get-color-from-palette($arm-primary, 300);
1613
+ outline-offset: 2px !important;
1614
+ }
1615
+
1616
+ }
1617
+ &.mat-secondary{
1618
+ background: #FAFAFA !important;
1619
+ color: var(--primary-color-contrast-50-parts);
1620
+ &:hover{
1621
+ background-color: mat.get-color-from-palette($arm-primary, 500);
1622
+ }
1623
+ &:focus{
1624
+ outline: 3px solid mat.get-color-from-palette($arm-primary, 300);
1625
+ outline-offset: 2px !important;
1626
+ }
1627
+
1628
+ }
1629
+ &.mat-tertiary{
1630
+ color: var(--primary-color-contrast-50-parts);
1631
+ background: none !important;
1632
+ &:hover{
1633
+ background-color: mat.get-color-from-palette($arm-primary, 500);
1634
+ }
1635
+ &:focus{
1636
+ outline: 3px solid mat.get-color-from-palette($arm-primary, 300);
1637
+ outline-offset: 2px !important;
1638
+ }
1639
+ }
1640
+ &.mat-error{
1641
+ background: mat.get-color-from-palette($arm-error, 900);
1642
+ color: map-get($arm-error, contrast, 900);
1643
+
1644
+ &:hover {
1645
+ background-color: mat.get-color-from-palette($arm-error, 700);
1646
+ color: map-get($arm-error, contrast, 700);
1647
+ }
1648
+
1649
+ &:focus {
1650
+ outline: 3px solid mat.get-color-from-palette($arm-primary, 300);
1651
+ outline-offset: 2px !important;
1652
+ }
1653
+ }
1654
+ }
1655
+
1656
+ &:disabled {
1657
+ background: #f7f7f7 !important;
1658
+ color:rgba(0, 0, 0, 0.6) !important;
1659
+ opacity: 1 !important;
1660
+
1661
+ &:hover{
1662
+ background-color: mat.get-color-from-palette($arm-primary, 500);
1663
+ }
1664
+ &:focus{
1665
+ outline: 3px solid mat.get-color-from-palette($arm-primary, 300);
1666
+ outline-offset: 2px !important;
1667
+ }
1668
+ }
1669
+ }
1670
+
1671
+
1483
1672
  mat-card {
1484
1673
  &.mat-mdc-card.item-list {
1485
1674
  box-shadow: 0px 1px 7px rgb(166 159 159 / 25%) !important;
@@ -73,13 +73,6 @@ export class SofInputStepperComponent {
73
73
  this.setDefinedValidators();
74
74
  }));
75
75
  }
76
- /** After View Initialization */
77
- ngAfterViewInit() {
78
- if (this.customValue != undefined && this.customValue != null) {
79
- this.derivedFormControl?.markAsTouched();
80
- this.derivedFormControl?.updateValueAndValidity();
81
- }
82
- }
83
76
  /** Triggered when control is changed
84
77
  * @param fn The callback function.
85
78
  */
@@ -183,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
183
176
  }], valueChange: [{
184
177
  type: Output
185
178
  }] } });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mLWlucHV0LXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9iYXNlLWNvbXBvbmVudHMvc29mLWlucHV0LXN0ZXBwZXIvc29mLWlucHV0LXN0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9iYXNlLWNvbXBvbmVudHMvc29mLWlucHV0LXN0ZXBwZXIvc29mLWlucHV0LXN0ZXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBb0QsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7OztBQUVwQzs7R0FFRztBQU1ILE1BQU0sT0FBTyx3QkFBd0I7SUFzQ2pDLCtCQUErQjtJQUMvQixJQUFXLGtCQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFXRDs7O09BR0c7SUFDSCxZQUFnRCxPQUFrQjtRQUFsQixZQUFPLEdBQVAsT0FBTyxDQUFXO1FBbkRsRSx3QkFBd0I7UUFDUixRQUFHLEdBQVcsSUFBSSxDQUFDO1FBRW5DLG9CQUFvQjtRQUNKLFFBQUcsR0FBVyxJQUFJLENBQUM7UUFFbkMsdURBQXVEO1FBQ3ZDLFNBQUksR0FBVyxDQUFDLENBQUM7UUFFakMscUJBQXFCO1FBQ0wsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUV2QyxzQ0FBc0M7UUFDWixlQUFVLEdBQVksSUFBSSxDQUFDO1FBRXJE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QUNoRjtJQUNMLENBQUM7OEdBcktRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLGdXQ1pyQywwc0RBb0JNOzsyRkRSTyx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0ksbUJBQW1COzswQkE0RGhCLElBQUk7OzBCQUFJLFFBQVE7OzBCQUFJLElBQUk7eUNBckRyQixXQUFXO3NCQUExQixLQUFLO2dCQUdVLEdBQUc7c0JBQWxCLEtBQUs7Z0JBR1UsR0FBRztzQkFBbEIsS0FBSztnQkFHVSxJQUFJO3NCQUFuQixLQUFLO2dCQUdVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBR29CLFVBQVU7c0JBQW5DLEtBQUs7dUJBQUMsVUFBVTtnQkFHRCxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBR1Usa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUdVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBR1csV0FBVztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBDdXN0b20gSW5wdXQgU3RlcHBlciBDb21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzb2YtaW5wdXQtc3RlcHBlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ3NvZi1pbnB1dC1zdGVwcGVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NvZi1pbnB1dC1zdGVwcGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNvZklucHV0U3RlcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgLyoqIFRoZSB2YWx1ZSAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGN1c3RvbVZhbHVlOiBudW1iZXI7XHJcblxyXG4gICAgLyoqIFRoZSBtaW5pbXVtIHZhbHVlICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbWluOiBudW1iZXIgPSBudWxsO1xyXG5cclxuICAgIC8qKiBUaGUgbWF4IHZhbHVlICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbWF4OiBudW1iZXIgPSBudWxsO1xyXG5cclxuICAgIC8qKiBUaGUgc3RlcCBieSB3aGljaCB0aGUgbnVtYmVyIGluY3JlYXNlcy9kZWNyZWFzZXMgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzdGVwOiBudW1iZXIgPSAxO1xyXG5cclxuICAgIC8qKiBUaGUgbGFiZWwgdGV4dCAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGxhYmVsVGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqIElmIHRoZSBpbnB1dCBpcyByZXF1aXJlZCBvciBub3QgKi9cclxuICAgIEBJbnB1dChcInJlcXVpcmVkXCIpIHB1YmxpYyBpc1JlcXVpcmVkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogVGhlIGVycm9yIG1lc3NhZ2UgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZEVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqIFRoZSBtaW4gbWF4IGVycm9yIG1lc3NhZ2UgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBtaW5NYXhFcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIC8qKiBUaGUgYXJpYSBsYWJlbCAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGFyaWFMYWJlbDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqIFRoZSB2YWx1ZSBjaGFuZ2UgZXZlbnQgZW1pdHRlciAqL1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgICAvKiogSWYgdGhlIGlucHV0IGlzIGRpc2FibGVkIG9yIG5vdCAqL1xyXG4gICAgcHVibGljIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogVGhlIGNvbnRyb2wgbmFtZSAqL1xyXG4gICAgcHVibGljIGNvbnRyb2xOYW1lOiBzdHJpbmcgfCBudW1iZXIgPSBcIlwiO1xyXG5cclxuICAgIC8qKiBUaGUgZGVyaXZlZCBmb3JtIGNvbnRyb2wgKi9cclxuICAgIHB1YmxpYyBnZXQgZGVyaXZlZEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbD8uY29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVGhlIE9uQ2hhbmdlIGZvcm0gY29udHJvbCBtZXRob2QgKi9cclxuICAgIHByaXZhdGUgb25DaGFuZ2UgPSAodG9nZ2xlVmFsOiBhbnkpOiB2b2lkID0+IHsgfTtcclxuXHJcbiAgICAvKiogVGhlIE9uVG91Y2hlZCBmb3JtIGNvbnRyb2wgbWV0aG9kICovXHJcbiAgICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHsgfTtcclxuXHJcbiAgICAvKiogVGhlIGNvbXBvbmVudCBzdWJzY3JpcHRpb24gKi9cclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3Rvci5cclxuICAgICAqIEBwYXJhbSBjb250cm9sIFRoZSBuZyBjb250cm9sXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKEBTZWxmKCkgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIGNvbnRyb2w6IE5nQ29udHJvbCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbE5hbWUgPSB0aGlzLmNvbnRyb2wubmFtZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcG9uZW50IEluaXRpYWxpemF0aW9uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuYXJpYUxhYmVsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXJpYUxhYmVsID0gdGhpcy5sYWJlbFRleHQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldERlZmluZWRWYWxpZGF0b3JzKCk7XHJcblxyXG4gICAgICAgIC8vIFN1YnNjcmliZSB0byBmb3JtIGNvbnRyb2wncyB2YWxpZGF0aW9uXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMuZGVyaXZlZEZvcm1Db250cm9sPy52YWx1ZUNoYW5nZXM/LnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21WYWx1ZSA9IHg7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RGVmaW5lZFZhbGlkYXRvcnMoKTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEFmdGVyIFZpZXcgSW5pdGlhbGl6YXRpb24gKi9cclxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tVmFsdWUgIT0gdW5kZWZpbmVkICYmIHRoaXMuY3VzdG9tVmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmRlcml2ZWRGb3JtQ29udHJvbD8ubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICB0aGlzLmRlcml2ZWRGb3JtQ29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogVHJpZ2dlcmVkIHdoZW4gY29udHJvbCBpcyBjaGFuZ2VkXHJcbiAgICAgKiBAcGFyYW0gZm4gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBUcmlnZ2VyZWQgd2hlbiBjb250cm9sIGlzIHRvdWNoZWRcclxuICAgICAqIEBwYXJhbSBmbiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLyoqIFNldHMgdGhlIGRpc2FibGVkIHN0YXRlXHJcbiAgICAgKiBAcGFyYW0gaXNEaXNhYmxlZCBJZiB0aGUgY29udHJvbCBpcyBkaXNhYmxlZCBvciBub3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKiBDb21wb25lbnQgRGVzdHJ1Y3Rpb24gKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBUcmlnZ2VyZWQgd2hlbiB0aGUgZm9ybSBjb250cm9sIHZhbHVlIGlzIHNldCBvdXRzaWRlIHRoZSBjb21wb25lbnRcclxuICAgICAqIEBwYXJhbSBuZXdWYWwgVGhlIG5ldyB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHdyaXRlVmFsdWUobmV3VmFsOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1c3RvbVZhbHVlID0gbmV3VmFsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBJbmNyZWFzZSB0aGUgdmFsdWUgYnkgc3RlcCAqL1xyXG4gICAgcHVibGljIGluY3JlYXNlVmFsKCk6IHZvaWQge1xyXG4gICAgICAgIGxldCBuZXdWYWwgPSB0aGlzLmN1c3RvbVZhbHVlO1xyXG4gICAgICAgIGlmICghbmV3VmFsKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbCA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG5ld1ZhbCArPSB0aGlzLnN0ZXA7XHJcbiAgICAgICAgaWYgKHRoaXMubWF4ICE9IG51bGwgJiYgbmV3VmFsID4gdGhpcy5tYXgpIHtcclxuICAgICAgICAgICAgbmV3VmFsID0gdGhpcy5tYXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3VzdG9tVmFsdWUgPSBuZXdWYWw7XHJcbiAgICAgICAgdGhpcy5kZXJpdmVkRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5jdXN0b21WYWx1ZSk7XHJcbiAgICAgICAgdGhpcy5kZXJpdmVkRm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBEZWNyZWFzZSB0aGUgdmFsdWUgYnkgc3RlcCAqL1xyXG4gICAgcHVibGljIGRlY3JlYXNlVmFsKCk6IHZvaWQge1xyXG4gICAgICAgIGxldCBuZXdWYWwgPSB0aGlzLmN1c3RvbVZhbHVlO1xyXG4gICAgICAgIGlmICghbmV3VmFsKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbCA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG5ld1ZhbCAtPSB0aGlzLnN0ZXA7XHJcbiAgICAgICAgaWYgKHRoaXMubWluICE9IG51bGwgJiYgbmV3VmFsIDwgdGhpcy5taW4pIHtcclxuICAgICAgICAgICAgbmV3VmFsID0gdGhpcy5taW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3VzdG9tVmFsdWUgPSBuZXdWYWw7XHJcbiAgICAgICAgdGhpcy5kZXJpdmVkRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5jdXN0b21WYWx1ZSk7XHJcbiAgICAgICAgdGhpcy5kZXJpdmVkRm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBVcGRhdGVzIHRoZSBpc1JlcXVpcmVkIGZpZWxkIGJhc2VkIG9uIHRoZSBjb250cm9sICovXHJcbiAgICBwcml2YXRlIHNldERlZmluZWRWYWxpZGF0b3JzKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIGlmIGEgY29udHJvbCBpcyBhdmFpbGFibGVcclxuICAgICAgICBpZiAodGhpcy5kZXJpdmVkRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbFZhbGlkYXRvciA9IHRoaXMuY29udHJvbC5jb250cm9sLnZhbGlkYXRvcjtcclxuICAgICAgICAgICAgLy8gIFNldCB0aGUgcmVxdWlyZWQgc3RhdGUgZmFsc2Ugd2hlbiBubyBjb250cm9sIHZhbGlkYXRvciBmdW5jdGlvbiBpcyBwcm92aWRlZFxyXG4gICAgICAgICAgICBpZiAoIWNvbnRyb2xWYWxpZGF0b3IpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IHRoaXMuZGVyaXZlZEZvcm1Db250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiPGRpdiAqbmdJZj1cImRlcml2ZWRGb3JtQ29udHJvbFwiIGZ4TGF5b3V0QWxpZ249XCJyb3dcIiBjbGFzcz1cImlucHV0LXN0ZXBwZXItY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImZ1bGwtd2lkdGggc29mLWZvcm0tZmllbGRcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7IGxhYmVsVGV4dCB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJkZXJpdmVkRm9ybUNvbnRyb2xcIiBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgW25hbWVdPVwiY29udHJvbE5hbWVcIiBpZD1cInN0ZXBwZXIte3tjb250cm9sTmFtZX19XCJcclxuICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3thcmlhTGFiZWwgfCB0cmFuc2xhdGV9fVwiIFtyZXF1aXJlZF09XCJpc1JlcXVpcmVkXCIgW3ZhbHVlXT1cImN1c3RvbVZhbHVlXCIgW3N0ZXBdPVwic3RlcFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgbGFiZWxUZXh0IHwgdHJhbnNsYXRlfX1cIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiPlxyXG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJkZXJpdmVkRm9ybUNvbnRyb2w/LmVycm9ycz8ucmVxdWlyZWRcIj57eyByZXF1aXJlZEVycm9yTWVzc2FnZSB8IHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImRlcml2ZWRGb3JtQ29udHJvbD8uZXJyb3JzPy5taW4gfHwgZGVyaXZlZEZvcm1Db250cm9sPy5lcnJvcnM/Lm1heFwiPnt7IG1pbk1heEVycm9yTWVzc2FnZSB8IHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgPHNwYW4gbWF0U3VmZml4IGNsYXNzPVwiZXJyb3JcIiAqbmdJZj1cImRlcml2ZWRGb3JtQ29udHJvbD8udG91Y2hlZCAmJiBkZXJpdmVkRm9ybUNvbnRyb2w/LmludmFsaWRcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1jaXJjbGUtZXhjbGFtYXRpb25cIj48L2k+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIFtuZ0NsYXNzXT1cInsnaW52YWxpZCc6IGRlcml2ZWRGb3JtQ29udHJvbD8udG91Y2hlZCAmJiBkZXJpdmVkRm9ybUNvbnRyb2w/LmludmFsaWR9XCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxyXG4gICAgICAgIGNsYXNzPVwic29mLWZsYXQtaWNvbi1idXR0b25cIiBzaXplPVwibGFyZ2VcIiBpZD1cImRlY3JlYXNlLXN0ZXAte3tjb250cm9sTmFtZX19XCIgKGNsaWNrKT1cImRlY3JlYXNlVmFsKClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtbWludXNcIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIFtuZ0NsYXNzXT1cInsnaW52YWxpZCc6IGRlcml2ZWRGb3JtQ29udHJvbD8udG91Y2hlZCAmJiBkZXJpdmVkRm9ybUNvbnRyb2w/LmludmFsaWR9XCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxyXG4gICAgICAgIGNsYXNzPVwic29mLWZsYXQtaWNvbi1idXR0b25cIiBzaXplPVwibGFyZ2VcIiBpZD1cImluY3JlYXNlLXN0ZXAte3tjb250cm9sTmFtZX19XCIgKGNsaWNrKT1cImluY3JlYXNlVmFsKClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtcGx1c1wiPjwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG48L2Rpdj4iXX0=
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mLWlucHV0LXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9iYXNlLWNvbXBvbmVudHMvc29mLWlucHV0LXN0ZXBwZXIvc29mLWlucHV0LXN0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9iYXNlLWNvbXBvbmVudHMvc29mLWlucHV0LXN0ZXBwZXIvc29mLWlucHV0LXN0ZXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFvRCxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBRXBDOztHQUVHO0FBTUgsTUFBTSxPQUFPLHdCQUF3QjtJQXNDakMsK0JBQStCO0lBQy9CLElBQVcsa0JBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDakMsQ0FBQztJQVdEOzs7T0FHRztJQUNILFlBQWdELE9BQWtCO1FBQWxCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFuRGxFLHdCQUF3QjtRQUNSLFFBQUcsR0FBVyxJQUFJLENBQUM7UUFFbkMsb0JBQW9CO1FBQ0osUUFBRyxHQUFXLElBQUksQ0FBQztRQUVuQyx1REFBdUQ7UUFDdkMsU0FBSSxHQUFXLENBQUMsQ0FBQztRQUVqQyxxQkFBcUI7UUFDTCxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBRXZDLHNDQUFzQztRQUNaLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFFckQsd0JBQXdCO1FBQ1IseUJBQW9CLEdBQVcsRUFBRSxDQUFDO1FBRWxELGdDQUFnQztRQUNoQix1QkFBa0IsR0FBVyxFQUFFLENBQUM7UUFFaEQscUJBQXFCO1FBQ0wsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUV2QyxxQ0FBcUM7UUFDcEIsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVoRixzQ0FBc0M7UUFDL0IsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVuQyx1QkFBdUI7UUFDaEIsZ0JBQVcsR0FBb0IsRUFBRSxDQUFDO1FBT3pDLHVDQUF1QztRQUMvQixhQUFRLEdBQUcsQ0FBQyxTQUFjLEVBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVqRCx3Q0FBd0M7UUFDaEMsY0FBUyxHQUFHLEdBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVwQyxpQ0FBaUM7UUFDekIsaUJBQVksR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU9wRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDbEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ25DO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFFNUIseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxFQUFPO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQixDQUFDLEVBQU87UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCLENBQUMsVUFBbUI7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUVELDRCQUE0QjtJQUNyQixXQUFXO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsTUFBVztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztJQUM5QixDQUFDO0lBRUQsaUNBQWlDO0lBQzFCLFdBQVc7UUFDZCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ2Q7UUFDRCxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxpQ0FBaUM7SUFDMUIsV0FBVztRQUNkLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDOUIsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDZDtRQUNELE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7U0FDckI7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELHdEQUF3RDtJQUNoRCxvQkFBb0I7UUFDeEIsd0NBQXdDO1FBQ3hDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3pCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ3hELCtFQUErRTtZQUMvRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2dCQUN4QixPQUFPO2FBQ1Y7WUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hGO0lBQ0wsQ0FBQzs4R0E3SlEsd0JBQXdCO2tHQUF4Qix3QkFBd0IsZ1dDWnJDLDBzREFvQk07OzJGRFJPLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDSSxtQkFBbUI7OzBCQTREaEIsSUFBSTs7MEJBQUksUUFBUTs7MEJBQUksSUFBSTt5Q0FyRHJCLFdBQVc7c0JBQTFCLEtBQUs7Z0JBR1UsR0FBRztzQkFBbEIsS0FBSztnQkFHVSxHQUFHO3NCQUFsQixLQUFLO2dCQUdVLElBQUk7c0JBQW5CLEtBQUs7Z0JBR1UsU0FBUztzQkFBeEIsS0FBSztnQkFHb0IsVUFBVTtzQkFBbkMsS0FBSzt1QkFBQyxVQUFVO2dCQUdELG9CQUFvQjtzQkFBbkMsS0FBSztnQkFHVSxrQkFBa0I7c0JBQWpDLEtBQUs7Z0JBR1UsU0FBUztzQkFBeEIsS0FBSztnQkFHVyxXQUFXO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuLyoqXHJcbiAqIEN1c3RvbSBJbnB1dCBTdGVwcGVyIENvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NvZi1pbnB1dC1zdGVwcGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnc29mLWlucHV0LXN0ZXBwZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc29mLWlucHV0LXN0ZXBwZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU29mSW5wdXRTdGVwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICAvKiogVGhlIHZhbHVlICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tVmFsdWU6IG51bWJlcjtcclxuXHJcbiAgICAvKiogVGhlIG1pbmltdW0gdmFsdWUgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBtaW46IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgLyoqIFRoZSBtYXggdmFsdWUgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXg6IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgLyoqIFRoZSBzdGVwIGJ5IHdoaWNoIHRoZSBudW1iZXIgaW5jcmVhc2VzL2RlY3JlYXNlcyAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHN0ZXA6IG51bWJlciA9IDE7XHJcblxyXG4gICAgLyoqIFRoZSBsYWJlbCB0ZXh0ICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbGFiZWxUZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKiogSWYgdGhlIGlucHV0IGlzIHJlcXVpcmVkIG9yIG5vdCAqL1xyXG4gICAgQElucHV0KFwicmVxdWlyZWRcIikgcHVibGljIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKiBUaGUgZXJyb3IgbWVzc2FnZSAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkRXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKiogVGhlIG1pbiBtYXggZXJyb3IgbWVzc2FnZSAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIG1pbk1heEVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqIFRoZSBhcmlhIGxhYmVsICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgYXJpYUxhYmVsOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKiogVGhlIHZhbHVlIGNoYW5nZSBldmVudCBlbWl0dGVyICovXHJcbiAgICBAT3V0cHV0KCkgcHVibGljIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAgIC8qKiBJZiB0aGUgaW5wdXQgaXMgZGlzYWJsZWQgb3Igbm90ICovXHJcbiAgICBwdWJsaWMgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBUaGUgY29udHJvbCBuYW1lICovXHJcbiAgICBwdWJsaWMgY29udHJvbE5hbWU6IHN0cmluZyB8IG51bWJlciA9IFwiXCI7XHJcblxyXG4gICAgLyoqIFRoZSBkZXJpdmVkIGZvcm0gY29udHJvbCAqL1xyXG4gICAgcHVibGljIGdldCBkZXJpdmVkRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sPy5jb250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBUaGUgT25DaGFuZ2UgZm9ybSBjb250cm9sIG1ldGhvZCAqL1xyXG4gICAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh0b2dnbGVWYWw6IGFueSk6IHZvaWQgPT4geyB9O1xyXG5cclxuICAgIC8qKiBUaGUgT25Ub3VjaGVkIGZvcm0gY29udHJvbCBtZXRob2QgKi9cclxuICAgIHByaXZhdGUgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4geyB9O1xyXG5cclxuICAgIC8qKiBUaGUgY29tcG9uZW50IHN1YnNjcmlwdGlvbiAqL1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yLlxyXG4gICAgICogQHBhcmFtIGNvbnRyb2wgVGhlIG5nIGNvbnRyb2xcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoQFNlbGYoKSBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgY29udHJvbDogTmdDb250cm9sKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250cm9sTmFtZSA9IHRoaXMuY29udHJvbC5uYW1lO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wb25lbnQgSW5pdGlhbGl6YXRpb25cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5hcmlhTGFiZWwpIHtcclxuICAgICAgICAgICAgdGhpcy5hcmlhTGFiZWwgPSB0aGlzLmxhYmVsVGV4dDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2V0RGVmaW5lZFZhbGlkYXRvcnMoKTtcclxuXHJcbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIGZvcm0gY29udHJvbCdzIHZhbGlkYXRpb25cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy5kZXJpdmVkRm9ybUNvbnRyb2w/LnZhbHVlQ2hhbmdlcz8uc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbVZhbHVlID0geDtcclxuICAgICAgICAgICAgdGhpcy5zZXREZWZpbmVkVmFsaWRhdG9ycygpO1xyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVHJpZ2dlcmVkIHdoZW4gY29udHJvbCBpcyBjaGFuZ2VkXHJcbiAgICAgKiBAcGFyYW0gZm4gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBUcmlnZ2VyZWQgd2hlbiBjb250cm9sIGlzIHRvdWNoZWRcclxuICAgICAqIEBwYXJhbSBmbiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLyoqIFNldHMgdGhlIGRpc2FibGVkIHN0YXRlXHJcbiAgICAgKiBAcGFyYW0gaXNEaXNhYmxlZCBJZiB0aGUgY29udHJvbCBpcyBkaXNhYmxlZCBvciBub3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKiBDb21wb25lbnQgRGVzdHJ1Y3Rpb24gKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBUcmlnZ2VyZWQgd2hlbiB0aGUgZm9ybSBjb250cm9sIHZhbHVlIGlzIHNldCBvdXRzaWRlIHRoZSBjb21wb25lbnRcclxuICAgICAqIEBwYXJhbSBuZXdWYWwgVGhlIG5ldyB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHdyaXRlVmFsdWUobmV3VmFsOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1c3RvbVZhbHVlID0gbmV3VmFsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBJbmNyZWFzZSB0aGUgdmFsdWUgYnkgc3RlcCAqL1xyXG4gICAgcHVibGljIGluY3JlYXNlVmFsKCk6IHZvaWQge1xyXG4gICAgICAgIGxldCBuZXdWYWwgPSB0aGlzLmN1c3RvbVZhbHVlO1xyXG4gICAgICAgIGlmICghbmV3VmFsKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbCA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG5ld1ZhbCArPSB0aGlzLnN0ZXA7XHJcbiAgICAgICAgaWYgKHRoaXMubWF4ICE9IG51bGwgJiYgbmV3VmFsID4gdGhpcy5tYXgpIHtcclxuICAgICAgICAgICAgbmV3VmFsID0gdGhpcy5tYXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3VzdG9tVmFsdWUgPSBuZXdWYWw7XHJcbiAgICAgICAgdGhpcy5kZXJpdmVkRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5jdXN0b21WYWx1ZSk7XHJcbiAgICAgICAgdGhpcy5kZXJpdmVkRm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBEZWNyZWFzZSB0aGUgdmFsdWUgYnkgc3RlcCAqL1xyXG4gICAgcHVibGljIGRlY3JlYXNlVmFsKCk6IHZvaWQge1xyXG4gICAgICAgIGxldCBuZXdWYWwgPSB0aGlzLmN1c3RvbVZhbHVlO1xyXG4gICAgICAgIGlmICghbmV3VmFsKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbCA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG5ld1ZhbCAtPSB0aGlzLnN0ZXA7XHJcbiAgICAgICAgaWYgKHRoaXMubWluICE9IG51bGwgJiYgbmV3VmFsIDwgdGhpcy5taW4pIHtcclxuICAgICAgICAgICAgbmV3VmFsID0gdGhpcy5taW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3VzdG9tVmFsdWUgPSBuZXdWYWw7XHJcbiAgICAgICAgdGhpcy5kZXJpdmVkRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5jdXN0b21WYWx1ZSk7XHJcbiAgICAgICAgdGhpcy5kZXJpdmVkRm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBVcGRhdGVzIHRoZSBpc1JlcXVpcmVkIGZpZWxkIGJhc2VkIG9uIHRoZSBjb250cm9sICovXHJcbiAgICBwcml2YXRlIHNldERlZmluZWRWYWxpZGF0b3JzKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIGlmIGEgY29udHJvbCBpcyBhdmFpbGFibGVcclxuICAgICAgICBpZiAodGhpcy5kZXJpdmVkRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbFZhbGlkYXRvciA9IHRoaXMuY29udHJvbC5jb250cm9sLnZhbGlkYXRvcjtcclxuICAgICAgICAgICAgLy8gIFNldCB0aGUgcmVxdWlyZWQgc3RhdGUgZmFsc2Ugd2hlbiBubyBjb250cm9sIHZhbGlkYXRvciBmdW5jdGlvbiBpcyBwcm92aWRlZFxyXG4gICAgICAgICAgICBpZiAoIWNvbnRyb2xWYWxpZGF0b3IpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IHRoaXMuZGVyaXZlZEZvcm1Db250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiPGRpdiAqbmdJZj1cImRlcml2ZWRGb3JtQ29udHJvbFwiIGZ4TGF5b3V0QWxpZ249XCJyb3dcIiBjbGFzcz1cImlucHV0LXN0ZXBwZXItY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImZ1bGwtd2lkdGggc29mLWZvcm0tZmllbGRcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7IGxhYmVsVGV4dCB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJkZXJpdmVkRm9ybUNvbnRyb2xcIiBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgW25hbWVdPVwiY29udHJvbE5hbWVcIiBpZD1cInN0ZXBwZXIte3tjb250cm9sTmFtZX19XCJcclxuICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3thcmlhTGFiZWwgfCB0cmFuc2xhdGV9fVwiIFtyZXF1aXJlZF09XCJpc1JlcXVpcmVkXCIgW3ZhbHVlXT1cImN1c3RvbVZhbHVlXCIgW3N0ZXBdPVwic3RlcFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgbGFiZWxUZXh0IHwgdHJhbnNsYXRlfX1cIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiPlxyXG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJkZXJpdmVkRm9ybUNvbnRyb2w/LmVycm9ycz8ucmVxdWlyZWRcIj57eyByZXF1aXJlZEVycm9yTWVzc2FnZSB8IHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImRlcml2ZWRGb3JtQ29udHJvbD8uZXJyb3JzPy5taW4gfHwgZGVyaXZlZEZvcm1Db250cm9sPy5lcnJvcnM/Lm1heFwiPnt7IG1pbk1heEVycm9yTWVzc2FnZSB8IHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgPHNwYW4gbWF0U3VmZml4IGNsYXNzPVwiZXJyb3JcIiAqbmdJZj1cImRlcml2ZWRGb3JtQ29udHJvbD8udG91Y2hlZCAmJiBkZXJpdmVkRm9ybUNvbnRyb2w/LmludmFsaWRcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1jaXJjbGUtZXhjbGFtYXRpb25cIj48L2k+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIFtuZ0NsYXNzXT1cInsnaW52YWxpZCc6IGRlcml2ZWRGb3JtQ29udHJvbD8udG91Y2hlZCAmJiBkZXJpdmVkRm9ybUNvbnRyb2w/LmludmFsaWR9XCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxyXG4gICAgICAgIGNsYXNzPVwic29mLWZsYXQtaWNvbi1idXR0b25cIiBzaXplPVwibGFyZ2VcIiBpZD1cImRlY3JlYXNlLXN0ZXAte3tjb250cm9sTmFtZX19XCIgKGNsaWNrKT1cImRlY3JlYXNlVmFsKClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtbWludXNcIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIFtuZ0NsYXNzXT1cInsnaW52YWxpZCc6IGRlcml2ZWRGb3JtQ29udHJvbD8udG91Y2hlZCAmJiBkZXJpdmVkRm9ybUNvbnRyb2w/LmludmFsaWR9XCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxyXG4gICAgICAgIGNsYXNzPVwic29mLWZsYXQtaWNvbi1idXR0b25cIiBzaXplPVwibGFyZ2VcIiBpZD1cImluY3JlYXNlLXN0ZXAte3tjb250cm9sTmFtZX19XCIgKGNsaWNrKT1cImluY3JlYXNlVmFsKClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtcGx1c1wiPjwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG48L2Rpdj4iXX0=
@@ -5216,13 +5216,6 @@ class SofInputStepperComponent {
5216
5216
  this.setDefinedValidators();
5217
5217
  }));
5218
5218
  }
5219
- /** After View Initialization */
5220
- ngAfterViewInit() {
5221
- if (this.customValue != undefined && this.customValue != null) {
5222
- this.derivedFormControl?.markAsTouched();
5223
- this.derivedFormControl?.updateValueAndValidity();
5224
- }
5225
- }
5226
5219
  /** Triggered when control is changed
5227
5220
  * @param fn The callback function.
5228
5221
  */