ca-components 1.3.997 → 1.3.998

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/esm2022/lib/animations/index.mjs +11 -0
  2. package/esm2022/lib/animations/slide-in-out.animation.mjs +20 -0
  3. package/esm2022/lib/ca-components.module.mjs +7 -1
  4. package/esm2022/lib/components/ca-checkbox/ca-checkbox.component.mjs +3 -3
  5. package/esm2022/lib/components/ca-dropdown-menu/ca-dropdown-menu.component.mjs +8 -5
  6. package/esm2022/lib/components/ca-dropdown-menu/enums/dropdown-menu.enum.mjs +2 -2
  7. package/esm2022/lib/components/ca-dropdown-menu/interfaces/dropdown-menu-item.interface.mjs +1 -1
  8. package/esm2022/lib/components/ca-input-dropdown-test/ca-input-dropdown-test.component.mjs +19 -35
  9. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-default-template/ca-input-dropdown-default-template.component.mjs +1 -1
  10. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-details-template/ca-input-dropdown-details-template.component.mjs +1 -1
  11. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-dispatch/ca-input-dropdown-dispatch.component.mjs +1 -1
  12. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-double-text-template/ca-input-dropdown-double-text-template.component.mjs +1 -1
  13. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-fuel-franchise/ca-input-dropdown-fuel-franchise.component.mjs +1 -1
  14. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-groups/ca-input-dropdown-groups.component.mjs +1 -1
  15. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-labels/ca-input-dropdown-labels.component.mjs +1 -1
  16. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker-item/ca-input-dropdown-load-broker-item.component.mjs +1 -1
  17. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker.component.mjs +1 -1
  18. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact-item/ca-input-dropdown-load-broker-contact-item.component.mjs +1 -1
  19. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact.component.mjs +1 -1
  20. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper-item/ca-input-dropdown-load-broker-shipper-item.component.mjs +1 -1
  21. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper.component.mjs +1 -1
  22. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher-item/ca-input-dropdown-load-dispatcher-item.component.mjs +1 -1
  23. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher.component.mjs +1 -1
  24. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd-item/ca-input-dropdown-load-dispatches-ttd-item.mjs +1 -1
  25. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd.component.mjs +1 -1
  26. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-multiselect/ca-input-dropdown-multiselect.component.mjs +1 -1
  27. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-payroll-trucks/ca-input-dropdown-payroll-trucks.component.mjs +1 -1
  28. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svg-template/ca-input-dropdown-svg-template.component.mjs +1 -1
  29. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-dispatch-template/ca-input-dropdown-svgtext-dispatch-template.component.mjs +1 -1
  30. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template-item/ca-input-dropdown-svgtext-template-item.component.mjs +1 -1
  31. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template.component.mjs +1 -1
  32. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-text-counter/ca-input-dropdown-text-counter.component.mjs +1 -1
  33. package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-triple-text-template/ca-input-dropdown-triple-text-template.component.mjs +1 -1
  34. package/esm2022/lib/components/ca-input-dropdown-test/interfaces/input-dropdown-option.interface.mjs +2 -0
  35. package/esm2022/lib/components/ca-input-dropdown-test/pipes/dropdown-options.pipe.mjs +4 -2
  36. package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-default-template-class.pipe.mjs +1 -1
  37. package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-fuel-franchise-class.pipe.mjs +1 -1
  38. package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-get-icon.pipe.mjs +1 -1
  39. package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-label-class.pipe.mjs +1 -1
  40. package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-load-broker-container.pipe.mjs +1 -1
  41. package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-multiselect-class.pipe.mjs +1 -1
  42. package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-svgtext-template-container.pipe.mjs +1 -1
  43. package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-svgtext-template-icon.pipe.mjs +1 -1
  44. package/esm2022/lib/components/ca-input-dropdown-test/types/index.mjs +2 -0
  45. package/esm2022/lib/components/ca-input-dropdown-test/types/input-dropdown-forms.type.mjs +2 -0
  46. package/esm2022/lib/components/ca-input-dropdown-test/types/select-dropdown-value.type.mjs +2 -0
  47. package/esm2022/lib/components/ca-input-dropdown-test/validators/dropdown-empty-value.validator.mjs +1 -1
  48. package/esm2022/lib/components/ca-last-fuel-price-progress/ca-last-fuel-price-progress.component.mjs +22 -13
  49. package/esm2022/lib/components/ca-last-fuel-price-progress/interfaces/last-fuel-price-progress-config.interface.mjs +1 -1
  50. package/esm2022/lib/components/ca-last-fuel-price-progress/interfaces/last-fuel-price-progress-data.interface.mjs +1 -1
  51. package/esm2022/lib/components/ca-map/ca-map.component.mjs +53 -81
  52. package/esm2022/lib/components/ca-map/utils/helpers/map-marker-icon.helper.mjs +5 -4
  53. package/esm2022/lib/components/ca-map/utils/services/map-marker-icon.service.mjs +23 -5
  54. package/esm2022/lib/components/ca-map-dropdown/ca-map-dropdown.component.mjs +41 -8
  55. package/esm2022/lib/components/ca-map-dropdown/enums/map-dropdown-string.enum.mjs +3 -1
  56. package/esm2022/lib/components/ca-map-dropdown/models/map-dropdown-content.model.mjs +1 -1
  57. package/esm2022/lib/components/ca-new-filter/components/ca-filter-list-dropdown/ca-filter-list-dropdown.component.mjs +31 -23
  58. package/esm2022/lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component.mjs +3 -3
  59. package/esm2022/lib/components/ca-search-multiple-states-2/ca-search-multiple-states-2.component.mjs +112 -0
  60. package/esm2022/lib/components/ca-search-multiple-states-2/enums/index.mjs +2 -0
  61. package/esm2022/lib/components/ca-search-multiple-states-2/enums/search-multiple-state-action.enum.mjs +5 -0
  62. package/esm2022/lib/components/ca-search-multiple-states-2/util/index.mjs +2 -0
  63. package/esm2022/lib/components/ca-search-multiple-states-2/util/routes/multiple-search-state-svg.route.mjs +6 -0
  64. package/esm2022/lib/enums/general-actions.enum.mjs +27 -11
  65. package/esm2022/lib/enums/string-placeholder.enum.mjs +2 -1
  66. package/esm2022/lib/pipes/date-from-string.pipe.mjs +4 -1
  67. package/esm2022/public-api.mjs +2 -1
  68. package/fesm2022/ca-components.mjs +450 -275
  69. package/fesm2022/ca-components.mjs.map +1 -1
  70. package/lib/animations/index.d.ts +10 -0
  71. package/lib/animations/slide-in-out.animation.d.ts +1 -0
  72. package/lib/ca-components.module.d.ts +24 -23
  73. package/lib/components/ca-dropdown-menu/enums/dropdown-menu.enum.d.ts +1 -1
  74. package/lib/components/ca-dropdown-menu/interfaces/dropdown-menu-item.interface.d.ts +1 -1
  75. package/lib/components/ca-filters/ca-filter.component.d.ts +2 -2
  76. package/lib/components/ca-input-dropdown-test/ca-input-dropdown-test.component.d.ts +29 -34
  77. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-default-template/ca-input-dropdown-default-template.component.d.ts +6 -6
  78. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-details-template/ca-input-dropdown-details-template.component.d.ts +6 -6
  79. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-dispatch/ca-input-dropdown-dispatch.component.d.ts +6 -6
  80. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-double-text-template/ca-input-dropdown-double-text-template.component.d.ts +6 -6
  81. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-fuel-franchise/ca-input-dropdown-fuel-franchise.component.d.ts +10 -10
  82. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-groups/ca-input-dropdown-groups.component.d.ts +6 -6
  83. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-labels/ca-input-dropdown-labels.component.d.ts +6 -6
  84. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker-item/ca-input-dropdown-load-broker-item.component.d.ts +3 -3
  85. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker.component.d.ts +6 -6
  86. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact-item/ca-input-dropdown-load-broker-contact-item.component.d.ts +3 -3
  87. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact.component.d.ts +6 -6
  88. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper-item/ca-input-dropdown-load-broker-shipper-item.component.d.ts +4 -4
  89. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper.component.d.ts +6 -6
  90. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher-item/ca-input-dropdown-load-dispatcher-item.component.d.ts +4 -4
  91. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher.component.d.ts +6 -6
  92. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd-item/ca-input-dropdown-load-dispatches-ttd-item.d.ts +4 -4
  93. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd.component.d.ts +6 -6
  94. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-multiselect/ca-input-dropdown-multiselect.component.d.ts +6 -6
  95. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-payroll-trucks/ca-input-dropdown-payroll-trucks.component.d.ts +6 -6
  96. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svg-template/ca-input-dropdown-svg-template.component.d.ts +6 -6
  97. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-dispatch-template/ca-input-dropdown-svgtext-dispatch-template.component.d.ts +6 -6
  98. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template-item/ca-input-dropdown-svgtext-template-item.component.d.ts +4 -4
  99. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template.component.d.ts +6 -6
  100. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-text-counter/ca-input-dropdown-text-counter.component.d.ts +6 -6
  101. package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-triple-text-template/ca-input-dropdown-triple-text-template.component.d.ts +6 -6
  102. package/lib/components/ca-input-dropdown-test/{models/input-dropdown-option.model.d.ts → interfaces/input-dropdown-option.interface.d.ts} +1 -1
  103. package/lib/components/ca-input-dropdown-test/pipes/dropdown-options.pipe.d.ts +3 -3
  104. package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-default-template-class.pipe.d.ts +2 -2
  105. package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-fuel-franchise-class.pipe.d.ts +2 -2
  106. package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-get-icon.pipe.d.ts +2 -2
  107. package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-label-class.pipe.d.ts +2 -2
  108. package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-load-broker-container.pipe.d.ts +2 -2
  109. package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-multiselect-class.pipe.d.ts +2 -2
  110. package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-svgtext-template-container.pipe.d.ts +2 -2
  111. package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-svgtext-template-icon.pipe.d.ts +2 -2
  112. package/lib/components/ca-input-dropdown-test/types/index.d.ts +1 -0
  113. package/lib/components/ca-input-dropdown-test/types/input-dropdown-forms.type.d.ts +7 -0
  114. package/lib/components/ca-input-dropdown-test/types/select-dropdown-value.type.d.ts +7 -0
  115. package/lib/components/ca-last-fuel-price-progress/ca-last-fuel-price-progress.component.d.ts +1 -0
  116. package/lib/components/ca-last-fuel-price-progress/interfaces/last-fuel-price-progress-config.interface.d.ts +1 -0
  117. package/lib/components/ca-last-fuel-price-progress/interfaces/last-fuel-price-progress-data.interface.d.ts +2 -0
  118. package/lib/components/ca-map/ca-map.component.d.ts +12 -18
  119. package/lib/components/ca-map/utils/helpers/map-marker-icon.helper.d.ts +1 -1
  120. package/lib/components/ca-map/utils/services/map-marker-icon.service.d.ts +2 -2
  121. package/lib/components/ca-map-dropdown/ca-map-dropdown.component.d.ts +5 -1
  122. package/lib/components/ca-map-dropdown/enums/map-dropdown-string.enum.d.ts +3 -1
  123. package/lib/components/ca-map-dropdown/models/map-dropdown-content.model.d.ts +2 -1
  124. package/lib/components/ca-new-filter/components/ca-filter-list-dropdown/ca-filter-list-dropdown.component.d.ts +5 -5
  125. package/lib/components/ca-search-multiple-states-2/ca-search-multiple-states-2.component.d.ts +32 -0
  126. package/lib/components/ca-search-multiple-states-2/enums/index.d.ts +1 -0
  127. package/lib/components/ca-search-multiple-states-2/enums/search-multiple-state-action.enum.d.ts +3 -0
  128. package/lib/components/ca-search-multiple-states-2/util/index.d.ts +1 -0
  129. package/lib/components/ca-search-multiple-states-2/util/routes/multiple-search-state-svg.route.d.ts +5 -0
  130. package/lib/enums/general-actions.enum.d.ts +26 -10
  131. package/lib/enums/string-placeholder.enum.d.ts +2 -1
  132. package/package.json +1 -1
  133. package/public-api.d.ts +1 -0
  134. package/esm2022/lib/components/ca-input-dropdown-test/models/index.mjs +0 -4
  135. package/esm2022/lib/components/ca-input-dropdown-test/models/input-dropdown-option.model.mjs +0 -2
  136. package/esm2022/lib/components/ca-input-dropdown-test/models/load-modal-status.model.mjs +0 -2
  137. package/esm2022/lib/components/ca-input-dropdown-test/models/status-order.model.mjs +0 -2
  138. package/lib/components/ca-input-dropdown-test/models/index.d.ts +0 -3
  139. package/lib/components/ca-input-dropdown-test/models/load-modal-status.model.d.ts +0 -5
  140. package/lib/components/ca-input-dropdown-test/models/status-order.model.d.ts +0 -4
@@ -5,6 +5,7 @@ import { AngularSvgIconModule, SvgIconRegistryService } from 'angular-svg-icon';
5
5
  import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
6
6
  // components
7
7
  import { CaAppTooltipV2Component } from '../ca-app-tooltip-v2/ca-app-tooltip-v2.component';
8
+ import { CaLastFuelPriceProgressComponent } from '../ca-last-fuel-price-progress/ca-last-fuel-price-progress.component';
8
9
  // json
9
10
  import taDetailDropdownJson from '../../../assets/json/ta-detail-dropdown.json';
10
11
  // svg-routes
@@ -12,6 +13,9 @@ import { MapDropdownSvgRoutes } from '../ca-map-dropdown/utils/svg-routes';
12
13
  // pipes
13
14
  import { CaSvgPipe } from '../../pipes/ca-svg.pipe';
14
15
  import { MapDropdownContentPipe, MapDropdownClusterContentPipe, MapDropdownValuePipe, } from './pipes';
16
+ import { DatePipe } from '@angular/common';
17
+ import { FormatCurrencyPipe } from '../../pipes/format-currency.pipe';
18
+ import { DateFromStringPipe } from '../../pipes/date-from-string.pipe';
15
19
  // enums
16
20
  import { eMapDropdownString } from './enums';
17
21
  import * as i0 from "@angular/core";
@@ -27,12 +31,21 @@ export class CaMapDropdownComponent {
27
31
  this.isShowAllDaysActive = false;
28
32
  this.data = taDetailDropdownJson.taDetailDropDown;
29
33
  this._markerData = null;
34
+ this._infoWindowContent = null;
35
+ this.fuelPriceRangeData = null;
30
36
  this.mapDropdownSvgRoutes = MapDropdownSvgRoutes;
31
37
  this.eMapDropdownString = eMapDropdownString;
32
38
  }
39
+ set infoWindowContent(values) {
40
+ this._infoWindowContent = values;
41
+ if (values?.selectedClusterItemData?.data?.pricePerGallon)
42
+ this.setFuelPriceData(values?.selectedClusterItemData?.data);
43
+ }
33
44
  set markerData(values) {
34
45
  this._markerData = values;
35
46
  this.isHidden = true;
47
+ if (values?.hasOwnProperty('pricePerGallon'))
48
+ this.setFuelPriceData(values);
36
49
  }
37
50
  showHiddenData(event) {
38
51
  this.preventEventPropagation(event, true);
@@ -54,8 +67,8 @@ export class CaMapDropdownComponent {
54
67
  }
55
68
  onClusterListScroll(event) {
56
69
  this.preventEventPropagation(event);
57
- if (this.infoWindowContent?.clusterData &&
58
- this.infoWindowContent?.clusterData?.length >= 25) {
70
+ if (this._infoWindowContent?.clusterData &&
71
+ this._infoWindowContent?.clusterData?.length >= 25) {
59
72
  const scrollElement = document.querySelector('.cluster-marker-container');
60
73
  if (scrollElement?.offsetHeight + scrollElement?.scrollTop >=
61
74
  scrollElement?.scrollHeight - 105)
@@ -67,14 +80,30 @@ export class CaMapDropdownComponent {
67
80
  event.preventDefault();
68
81
  event.stopPropagation();
69
82
  }
83
+ setFuelPriceData(markerData) {
84
+ const { pricePerGallon, lowestPricePerGallon, highestPricePerGallon, priceOutDated, defPrice, defLowestPrice, defHighestPrice, defPriceOutDated, dieselLastUsed, } = markerData;
85
+ if (markerData)
86
+ this.fuelPriceRangeData = {
87
+ pricePerGallon,
88
+ lowestPricePerGallon,
89
+ highestPricePerGallon,
90
+ priceOutDated,
91
+ defPrice,
92
+ defLowestPrice,
93
+ defHighestPrice,
94
+ defPriceOutDated,
95
+ dieselLastUsed,
96
+ isMapView: true,
97
+ };
98
+ }
70
99
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaMapDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CaMapDropdownComponent, isStandalone: true, selector: "app-ca-map-dropdown", inputs: { infoWindowContent: "infoWindowContent", markerData: "markerData" }, outputs: { onClusterItemClick: "onClusterItemClick", onClusterListScrollToEnd: "onClusterListScrollToEnd", onBackButtonClick: "onBackButtonClick", bodyActions: "bodyActions" }, providers: [SvgIconRegistryService], ngImport: i0, template: "@if (infoWindowContent?.clusterData) {\n @if (infoWindowContent?.selectedClusterItemData) {\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"preventEventPropagation($event)\"\n >\n @for (\n item of infoWindowContent?.selectedClusterItemData.mainContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData\n .data,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of infoWindowContent?.selectedClusterItemData\n .expandedContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData\n .data,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n } @else {\n <div\n class=\"cluster-marker-container d-flex flex-column gap-1\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"onClusterListScroll($event)\"\n >\n @for (\n item of infoWindowContent?.clusterData;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n clusterContentTemplate;\n context: {\n content: item,\n }\n \"\n ></ng-container>\n }\n </div>\n }\n} @else {\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"preventEventPropagation($event)\"\n >\n @for (item of infoWindowContent?.mainContent; let i = $index; track i) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _markerData,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of infoWindowContent?.expandedContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _markerData,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n}\n\n<ng-template #clusterContentTemplate let-content=\"content\">\n @let item = content | mapDropdownClusterContentType;\n @if (item) {\n <div\n class=\"d-flex align-items-center justify-content-between cluster-marker-item\"\n (click)=\"clusterItemClick(item)\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n [ngStyle]=\"{\n 'max-width': item.favourite ? 'calc(100% - 18px)' : '100%',\n }\"\n >\n @if (item.isClosed) {\n <svg-icon\n class=\"d-flex svg-size-18\"\n [src]=\"mapDropdownSvgRoutes.permanentlyClosedRoute\"\n ></svg-icon>\n }\n <div\n class=\"regular-text dark-gray-text uppercase text-ellipsis\"\n >\n {{ item.name }}\n </div>\n </div>\n @if (item.favourite) {\n <svg-icon\n class=\"d-flex svg-size-18\"\n [src]=\"mapDropdownSvgRoutes.favoriteRoute\"\n ></svg-icon>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #dropdownContentTemplate let-content=\"content\" let-data=\"data\">\n @let item = content | mapDropdownContentType;\n @if (item) {\n @if (!item.sideBySideInfo) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item,\n data: data,\n }\n \"\n ></ng-container>\n } @else {\n <!-- Side by Side Data -->\n <div class=\"d-flex align-items-center\">\n <!-- Left Side -->\n @if (item.sideBySideInfo.leftSide) {\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.leftSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n }\n\n <!-- Right Side -->\n @if (item.sideBySideInfo.rightSide) {\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.rightSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template\n #dropdownContentItemTemplates\n let-content=\"content\"\n let-data=\"data\"\n>\n @let item = content | mapDropdownContentType;\n @if (item) {\n @switch (item?.template) {\n @case (eMapDropdownString.HEADER_TITLE) {\n <div\n class=\"heading d-flex justify-content-between align-items-center {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"header-text-container d-flex align-items-center gap-1 w-100\"\n >\n @if (item.hasBackButton) {\n <div\n class=\"header-back-button d-flex align-items-center justify-content-center\"\n (click)=\"backButtonClick($event)\"\n >\n <svg-icon\n class=\"d-flex svg-size-14\"\n [src]=\"mapDropdownSvgRoutes.backButtonRoute\"\n >\n </svg-icon>\n </div>\n }\n <span\n class=\"header ca-font-extra-bold dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n </div>\n }\n\n <!-- Rating Review -->\n @case (eMapDropdownString.RATING_REVIEW) {\n <div\n class=\"d-flex justify-content-start align-items-center align-content-center gap-3 {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].likeCount\"\n >\n <svg-icon\n class=\"rating-icon like-icon d-flex svg-size-14\"\n [class.active]=\"data[item.field].hasLiked\"\n [src]=\"mapDropdownSvgRoutes.likeRoute\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].likeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].dislikeCount\"\n >\n <svg-icon\n class=\"rating-icon dislike-icon d-flex svg-size-14\"\n [class.active]=\"data[item.field].hasDislike\"\n [src]=\"mapDropdownSvgRoutes.dislikeRoute\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].dislikeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].reviewCount\"\n >\n <svg-icon\n class=\"rating-icon review-icon d-flex svg-size-14\"\n [src]=\"mapDropdownSvgRoutes.reviewRoute\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].reviewCount ?? 0 }}\n </span>\n </div>\n </div>\n }\n\n <!-- Border Divider -->\n @case (eMapDropdownString.DIVIDER) {\n <div class=\"info-divider\"></div>\n }\n\n <!-- Repair Shop Services -->\n @case (eMapDropdownString.REPAIR_SHOP_SERVICES) {\n <div\n class=\"d-flex align-items-center justify-content-between {{\n item.customClassContainer\n }}\"\n >\n @for (\n service of data[item.field];\n let i = $index;\n track i\n ) {\n <div\n class=\"d-flex align-items-center justify-content-center\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"service.serviceType.name\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"repair-service-icon svg-size-18\"\n [class.active]=\"service.active\"\n [src]=\"\n service.logoName\n | caSvg: 'common' : 'repair-services'\n \"\n ></svg-icon>\n </div>\n }\n </div>\n }\n\n <!-- Icon and Text -->\n @case (eMapDropdownString.ICON_TEXT) {\n <div\n class=\"d-flex align-items-start gap-1 {{\n item.customClassContainer\n }}\"\n >\n @if (item.url) {\n <div\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"item.iconTooltipText\"\n position=\"bottom\"\n [disableTooltip]=\"!item.iconTooltipText\"\n >\n <svg-icon\n class=\"d-flex align-items-center justify-content-center svg-size-18\"\n [src]=\"item.url\"\n ></svg-icon>\n </div>\n }\n <span\n class=\"regular-text dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n }\n\n <!-- Title -->\n @case (eMapDropdownString.TITLE) {\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </div>\n }\n\n <!-- Title and Count -->\n @case (eMapDropdownString.TITLE_COUNT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text dark-gray-text ca-font-extra-bold\">\n {{ item.title }}\n </div>\n <div\n class=\"count-number white-text d-flex align-items-center justify-content-center ca-font-bold\"\n >\n {{ data[item.field] }}\n </div>\n </div>\n }\n\n <!-- Money Text -->\n @case (eMapDropdownString.MONEY_TEXT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text ca-font-bold blue-text\">\n {{\n data?.[item.field] !== '' ? data[item.field] : '$0'\n }}\n </div>\n <div class=\"regular-text light-gray-text ca-font-bold\">\n {{ item.title }}\n </div>\n </div>\n }\n\n <!-- Open Hours -->\n @case (eMapDropdownString.OPEN_HOURS) {\n <div class=\"d-flex flex-column gap-2\">\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n <div class=\"open-hours-grid\">\n @if (\n data[item.field]?.openHoursToday &&\n !isShowAllDaysActive\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ data[item.field].openHoursToday.status }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{ data[item.field].openHoursToday.info }}\n </div>\n </div>\n }\n\n @if (data[item.field]?.openHours?.length) {\n @if (isShowAllDaysActive) {\n @for (\n day of data[item.field].openHours;\n let i = $index;\n track i\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ day.dayOfWeek }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{\n day.startTime +\n ' - ' +\n day.endTime\n }}\n </div>\n </div>\n }\n }\n <div\n class=\"d-flex flex-column flex-1 justify-content-end show-all-days-container\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n (click)=\"showAllDaysClick()\"\n >\n <svg-icon\n class=\"d-flex svg-size-14\"\n [src]=\"\n mapDropdownSvgRoutes.accidentCalenderRoute\n \"\n ></svg-icon>\n <div\n class=\"regular-text gray-text cursor-pointer\"\n >\n {{\n isShowAllDaysActive\n ? 'Show today'\n : 'Show all days'\n }}\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Text and Count -->\n @case (eMapDropdownString.TEXT_COUNT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text {{ item.customClassText }}\">\n {{ item.title }}\n </div>\n <div\n class=\"regular-text ca-font-semi-bold {{\n item.customClassText\n }}\"\n >\n {{ data | mapDropdownValue: item }}\n </div>\n </div>\n }\n\n <!-- Subtitle -->\n @case (eMapDropdownString.SUBTITLE) {\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n }\n\n <!-- Regular Text -->\n @case (eMapDropdownString.TEXT) {\n <div class=\"regular-text black-text {{ item.customClassText }}\">\n {{ data | mapDropdownValue: item }}\n </div>\n }\n\n <!-- Small Subtitle -->\n @case (eMapDropdownString.SMALL_SUBTITLE) {\n <div\n class=\"small-text dark-gray-text {{ item.customClassText }}\"\n >\n {{ item.title }}\n </div>\n }\n }\n }\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#fff}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#fff}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#fff}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background-color:#42424233!important;color:#424242!important}.text-color-black::selection{background-color:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background-color:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background-color:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background-color:#91919133!important;color:#919191!important}.text-color-muted::selection{background-color:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background-color:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background-color:#56b4ac33!important;color:#56b4ac!important}.text-color-green-2{color:#259f94!important}.text-color-green-2::-moz-selection{background-color:#259f9433!important;color:#259f94!important}.text-color-green-2::selection{background-color:#259f9433!important;color:#259f94!important}.text-color-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background-color:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background-color:#86c9c333!important;color:#86c9c3!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background-color:#6692f133!important;color:#6692f1!important}.text-color-blue-13::selection{background-color:#6692f133!important;color:#6692f1!important}.text-color-blue-16{color:#e9effd!important}.text-color-blue-16::-moz-selection{background-color:#e9effd33!important;color:#e9effd!important}.text-color-blue-16::selection{background-color:#e9effd33!important;color:#e9effd!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background-color:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background-color:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background-color:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background-color:#92b1f533!important;color:#92b1f5!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background-color:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background-color:#e6676733!important;color:#e66767!important}.text-color-red-11{color:#df3c3c!important}.text-color-red-11::-moz-selection{background-color:#df3c3c33!important;color:#df3c3c!important}.text-color-red-11::selection{background-color:#df3c3c33!important;color:#df3c3c!important}.text-color-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background-color:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background-color:#ed929233!important;color:#ed9292!important}.text-color-yellow{color:#fab15c!important}.text-color-yellow::-moz-selection{background-color:#fab15c33!important;color:#fab15c!important}.text-color-yellow::selection{background-color:#fab15c33!important;color:#fab15c!important}.text-color-purple{color:#b370f0!important}.text-color-purple::-moz-selection{background-color:#b370f033!important;color:#b370f0!important}.text-color-purple::selection{background-color:#b370f033!important;color:#b370f0!important}.text-color-special-filter-purple{color:#9e47ec!important}.text-color-special-filter-purple::-moz-selection{background-color:#9e47ec33!important;color:#9e47ec!important}.text-color-special-filter-purple::selection{background-color:#9e47ec33!important;color:#9e47ec!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background-color:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background-color:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background-color:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background-color:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{background-color:#ccc3!important;color:#ccc!important}.text-color-light-grey-6::selection{background-color:#ccc3!important;color:#ccc!important}.text-color-white{color:#fff!important}.text-color-white::-moz-selection{background-color:#fff3!important;color:#fff!important}.text-color-white::selection{background-color:#fff3!important;color:#fff!important}.text-color-white-2{color:#fff!important}.text-color-white-2::-moz-selection{background-color:#fff3!important;color:#fff!important}.text-color-white-2::selection{background-color:#fff3!important;color:#fff!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{background-color:#fff3!important;color:#ffffffb2!important}.text-color-white-4::selection{background-color:#fff3!important;color:#ffffffb2!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{background-color:#6c6c6c33!important;color:#6c6c6c!important}.text-color-bw6-2::selection{background-color:#6c6c6c33!important;color:#6c6c6c!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{background-color:#dadada33!important;color:#dadada!important}.text-color-bw-9::selection{background-color:#dadada33!important;color:#dadada!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{background-color:#91919133!important;color:#919191!important}.text-color-grey::selection{background-color:#91919133!important;color:#919191!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{background-color:#91919133!important;color:#919191!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{background-color:#91919133!important;color:#919191!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}.svg-fill-black svg path,.svg-fill-black svg circle{fill:#424242!important}.svg-fill-white svg path,.svg-fill-white svg circle{fill:#fff!important}.svg-fill-white-2 svg path,.svg-fill-white-2 svg circle{fill:#fff!important}.svg-fill-muted svg path,.svg-fill-muted svg circle{fill:#919191!important}.svg-fill-bw-9 svg path,.svg-fill-bw-9 svg circle{fill:#dadada!important}.svg-fill-light-grey-2 svg path,.svg-fill-light-grey-2 svg circle{fill:#aaa!important}.svg-fill-light-grey-6 svg path,.svg-fill-light-grey-6 svg circle{fill:#ccc!important}.svg-fill-blue-8 svg path,.svg-fill-blue-8 svg circle{fill:#6692f1!important}.svg-fill-blue-13 svg path,.svg-fill-blue-13 svg circle{fill:#6692f1!important}.svg-fill-blue-14 svg path,.svg-fill-blue-14 svg circle{fill:#3b73ed!important}.svg-fill-blue-17 svg path,.svg-fill-blue-17 svg circle{fill:#bed0f9!important}.svg-fill-blue-19 svg path,.svg-fill-blue-19 svg circle{fill:#92b1f5!important}.svg-fill-blue-26 svg path,.svg-fill-blue-26 svg circle{fill:#4dc5eb!important}.svg-fill-green svg path,.svg-fill-green svg circle{fill:#56b4ac!important}.svg-fill-green-2 svg path,.svg-fill-green-2 svg circle{fill:#259f94!important}.svg-fill-green-4 svg path,.svg-fill-green-4 svg circle{fill:#86c9c3!important}.svg-fill-yellow-1 svg path,.svg-fill-yellow-1 svg circle{fill:#fab15c!important}.svg-fill-yellow-4 svg path,.svg-fill-yellow-4 svg circle{fill:#fbc88b!important}.svg-fill-yellow-5 svg path,.svg-fill-yellow-5 svg circle{fill:#f89b2e!important}.svg-fill-white-4 svg path,.svg-fill-white-4 svg circle{fill:#ffffffb2!important}.svg-fill-grey svg path,.svg-fill-grey svg circle{fill:#919191!important}.svg-fill-red-10 svg path,.svg-fill-red-10 svg circle{fill:#e66767!important}.svg-fill-red-11 svg path,.svg-fill-red-11 svg circle{fill:#df3c3c!important}.svg-fill-red-14 svg path,.svg-fill-red-14 svg circle{fill:#c20c0c!important}.svg-hover-white svg path{transition:fill .3s ease-in-out}.svg-hover-white:hover svg path{fill:#fff!important}.svg-hover-white-2 svg path{transition:fill .3s ease-in-out}.svg-hover-white-2:hover svg path{fill:#fff!important}.svg-hover-muted svg path{transition:fill .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-grey-4 svg path{transition:fill .3s ease-in-out}.svg-hover-grey-4:hover svg path{fill:#ccc!important}.svg-hover-black svg path{transition:fill .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-10 svg path{transition:fill .3s ease-in-out}.svg-hover-blue-10:hover svg path{fill:#bed0f9!important}.svg-hover-blue-15 svg path{transition:fill .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-blue-19 svg path{transition:fill .3s ease-in-out}.svg-hover-blue-19:hover svg path{fill:#92b1f5!important}.svg-hover-bw6-2 svg path{transition:fill .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:fill .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:fill .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-6 svg{width:6px;height:6px}.svg-size-10 svg{width:10px;height:10px}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-17 svg{width:17px;height:17px}.svg-size-18 svg{width:18px;height:18px}.svg-size-22 svg{width:22px;height:22px}.svg-size-23 svg{width:23px;height:23px}.svg-size-26 svg{width:26px;height:26px}.svg-size-44-16 svg{width:44px;height:16px}.background-black{background-color:#424242}.background-black-2{background-color:#2f2f2f}.background-blue-13{background-color:#6692f1}.background-blue-14{background-color:#3b73ed}.background-dark-2{background-color:#91919133}.background-hover-bw2{transition:background-color .3s ease-in-out}.background-hover-bw2:hover{background-color:#eee!important}.background-hover-blue-15{transition:background-color .3s ease-in-out}.background-hover-blue-15:hover{background-color:#0b49d1!important}.br-1{border-radius:1px}.br-2{border-radius:2px}.br-3{border-radius:3px}.br-10{border-radius:10px}.br-circle{border-radius:50%}.padding-2{padding:2px}.padding-4{padding:4px}.padding-y-2{padding-top:2px;padding-bottom:2px}.padding-y-4{padding-top:4px;padding-bottom:4px}.padding-x-4{padding-left:4px;padding-right:4px}.padding-x-5{padding-left:5px;padding-right:5px}.margin-t-4{margin-top:4px}.margin-r-4{margin-right:4px}.margin-b-4{margin-bottom:4px}.margin-t-6{margin-top:6px}.margin-r-6{margin-right:6px}.margin-b-6{margin-bottom:6px}.margin-t-24{margin-top:24px}.margin-r-24{margin-right:24px}.margin-b-24{margin-bottom:24px}.gap-xs{gap:2px}.height-1{height:1px}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.filter-dropdown-popover{width:260px;position:relative;top:-4px;left:-4px}.filter-dropdown-popover-max-height{max-height:360px}.filter-dropdown-list{max-height:260px;overflow-y:auto}.filter-dropdown-list-icon{height:26px;transition:background-color .3s ease-in-out}.filter-dropdown-list-icon-value{height:14px;width:14px}.filter-dropdown-list-icon-remove{display:none}.filter-dropdown-list-icon:hover{background-color:#424242}.filter-dropdown-list-icon:hover .filter-dropdown-icon-count{display:none}.filter-dropdown-list-icon-selected:hover{background-color:#0b49d1}.filter-dropdown-list-item-icons{transition:opacity .3s ease-in-out;opacity:0}.filter-dropdown-list-item-status-circle{height:10px;width:10px}.filter-dropdown-list-item-remove{display:none}.filter-dropdown-list-item:hover{background-color:#424242}.filter-dropdown-list-item:hover .filter-dropdown-list-item-icons{opacity:1}.filter-dropdown-list-item:hover .filter-dropdown-list-item-icons svg path{fill:var(--svg-fill-color, #e66767)}.filter-dropdown-list-item-hover:hover .filter-dropdown-list-item-remove{display:flex}.filter-dropdown-list-item-hover:hover .filter-dropdown-list-item-remove svg path{fill:#e66767!important}.filter-dropdown-list-item-hover:hover .filter-dropdown-list-item-count{display:none!important}.filter-dropdown-icon{height:26px;width:26px}.filter-dropdown-count{height:14px;width:14px}.filter-dropdown-count-remove,.filter-dropdown-count-hover:hover .filter-dropdown-count-value{display:none}.filter-dropdown-count-hover:hover .filter-dropdown-count-remove{display:flex}.filter-dropdown-button{height:26px}.filter-dropdown-footer-button{color:#dadada;transition:color .3s ease-in-out,background-color .3s ease-in-out;height:18px;width:50%}.filter-dropdown-footer-button-set{color:#fff;background-color:#3b73ed}.filter-dropdown-footer-button-set:hover{background-color:#e9effd;color:#0b49d1}.filter-dropdown-footer-button-clear{color:#dadada}.filter-dropdown-footer-button-clear:hover{background-color:#eee;color:#424242}.filter-dropdown-list-badge{min-width:18px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.c-pointer{cursor:pointer}.ca-scroll-bar{overflow-y:scroll}.ca-scroll-bar::-webkit-scrollbar{width:2px}.ca-scroll-bar::-webkit-scrollbar-thumb{background:#ccc;border-radius:1px}.ca-scroll-bar::-webkit-scrollbar-track{background:#2f2f2f}:host{display:block;height:100%;width:100%}.cluster-marker-container{width:354px;max-height:244px;margin:4px 2px 4px 4px;overflow-y:scroll;cursor:default}.cluster-marker-container::-webkit-scrollbar{width:2px}.cluster-marker-container::-webkit-scrollbar-thumb{background-color:#ccc;border:2px solid #cccccc;border-radius:1px}.cluster-marker-container::-webkit-scrollbar-track{width:2px;background-color:#fff}.cluster-marker-container .cluster-marker-item{max-width:100%;padding:4px;cursor:pointer;border-radius:2px}.cluster-marker-container .cluster-marker-item:hover{background:#eee}.marker-container{width:360px;max-height:214px;padding:8px;transition:max-height .2s ease-in-out;cursor:default}.marker-container.expanded{max-height:396px}.marker-container .heading{max-width:100%;margin-bottom:3px}.marker-container .heading .header-text-container{max-width:calc(100% - 26px)}.marker-container .heading .header-text-container .header-back-button{min-width:18px;min-height:18px;background:#eee;border-radius:1px;cursor:pointer}.marker-container .heading .header-text-container .header-back-button svg-icon svg path{fill:#919191}.marker-container .heading .header-text-container .header{font-family:Montserrat,sans-serif;font-size:16px;line-height:20px;color:#424242}.marker-container .heading .dropdown-icon{min-width:26px;min-height:26px}.marker-container .action .side-space{padding-right:4px}.marker-container .action .side-space .count{font-family:Montserrat,sans-serif;font-size:11px;color:#424242;padding:0 7px;position:relative;left:-1px}.marker-container .action .side-space .grey-color{color:#919191}.marker-container .repair-service-icon svg path{fill:#ccc;fill-opacity:1}.marker-container .repair-service-icon.active svg path{fill:#919191;fill-opacity:1}.marker-container .personal-info-items{font-family:Montserrat,sans-serif}.marker-container .personal-info-items .info{max-width:100%;font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.marker-container .working-info-detail{font-family:Montserrat,sans-serif}.marker-container .working-info-detail .working-info-item{font-size:11px;line-height:14px;color:#424242}.marker-container .working-info-detail .working-info-item .working-time{font-size:14px;line-height:18px}.marker-container .load-info .load-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.marker-container .load-info .load-heading .load-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail{font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail .load-info-item{font-size:12px;line-height:18px;color:#2f2f2f}.marker-container .load-info .load-info-detail .loading-hours{font-size:10px;color:#919191}.marker-container .load-info .load-info-detail .loading-hours .load-time{color:#919191}.marker-container .avg-info .avg-info-detail{font-family:Montserrat,sans-serif}.marker-container .avg-info .avg-info-detail .avg-item .item-date{padding:0 7px;color:#2f2f2f}.infowindow-container{width:300px;padding:2px 9px 9px 0}.infowindow-container .heading-container .heading{margin-top:15px;margin-bottom:3px}.infowindow-container .heading-container .heading .header{font-family:Montserrat,sans-serif;font-size:15px;line-height:19.5px}.infowindow-container .personal-info .personal-info-items{padding:1px 0;margin-bottom:3px;font-family:Montserrat,sans-serif}.infowindow-container .personal-info .personal-info-items .info{font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.infowindow-container .weight-info .weight-heading .weight-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail{font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail .weight-info-item{font-size:12px;line-height:18px;color:#424242}.infowindow-container .weight-info .weight-info-detail .weight-info-item .weight-time{color:#424242;padding:0 5px}.infowindow-container .transport-info .transport-container{margin-top:15px;font-family:Montserrat,sans-serif;margin-bottom:10px}.infowindow-container .transport-info .transport-container .driver-info .side-space{margin-left:20px}.infowindow-container .transport-info .transport-container .driver-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .driver-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.infowindow-container .transport-info .transport-container .truck-info .side-space{margin-left:50px}.infowindow-container .transport-info .transport-container .truck-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .truck-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.info-divider{margin:8px 0;width:100%;height:1px;background:#dadada;border-radius:2px}.dropdown-arrow{position:absolute;right:6px;bottom:6px}.dropdown-arrow svg{transition:transform .2s ease-in-out;transform:rotate(0)}.dropdown-arrow svg path{transition:fill .2s ease-in-out;fill:#919191}.dropdown-arrow.rotate-arrow svg{transform:rotate(180deg)}.dropdown-arrow.rotate-arrow svg path{fill:#6692f1}.dropdown-arrow:hover{cursor:pointer}.dropdown-arrow:hover svg path{fill:#6692f1}.expanded-info{max-height:0px;overflow:hidden;transition:max-height .2s ease-in-out}.expanded-info.active{max-height:300px}.gap-8{gap:8px}.count-number{padding:0 5px;background:#6c6c6c;border-radius:60px;font-size:11px;line-height:14px;-webkit-user-select:none;user-select:none}.rating-icon svg path{fill:#919191;fill-opacity:1}.rating-icon.active.like-icon svg path{fill:#56b4ac}.rating-icon.active.dislike-icon svg path{fill:#e66767}.text-ellipsis{max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis.two-rows-ellipsis{max-width:90%;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;white-space:initial}.blue-text{color:#6692f1!important}.blue-text::-moz-selection{color:#6692f1;background:#3b73ed33}.blue-text::selection{color:#6692f1;background:#3b73ed33}.red-text{color:#df3c3c!important}.red-text::-moz-selection{color:#df3c3c;background:#df3c3c33}.red-text::selection{color:#df3c3c;background:#df3c3c33}.gray-text{color:#919191!important}.gray-text::-moz-selection{color:#919191;background:#91919133}.gray-text::selection{color:#919191;background:#91919133}.light-gray-text{color:#6c6c6c}.light-gray-text::-moz-selection{color:#6c6c6c;background:#6c6c6c33}.light-gray-text::selection{color:#6c6c6c;background:#6c6c6c33}.dark-gray-text{color:#424242}.dark-gray-text::-moz-selection{color:#424242;background:#42424233}.dark-gray-text::selection{color:#424242;background:#42424233}.black-text{color:#2f2f2f}.black-text::-moz-selection{color:#2f2f2f;background:#2f2f2f33}.black-text::selection{color:#2f2f2f;background:#2f2f2f33}.white-text{color:#fff}.white-text::-moz-selection{color:#fff;background:#fff3}.white-text::selection{color:#fff;background:#fff3}.opacity-40{opacity:.4}.regular-text{font-size:14px;line-height:18px;font-family:Montserrat,sans-serif}.small-text{font-size:11px;line-height:14px;font-family:Montserrat,sans-serif}.open-hours-grid{display:grid;grid-template-columns:50% 50%;grid-row-gap:8px}.cursor-pointer{cursor:pointer}.show-all-days-container{grid-column:2/span 1}\n"], dependencies: [{ kind: "ngmodule", type:
100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CaMapDropdownComponent, isStandalone: true, selector: "app-ca-map-dropdown", inputs: { infoWindowContent: "infoWindowContent", markerData: "markerData" }, outputs: { onClusterItemClick: "onClusterItemClick", onClusterListScrollToEnd: "onClusterListScrollToEnd", onBackButtonClick: "onBackButtonClick", bodyActions: "bodyActions" }, providers: [SvgIconRegistryService], ngImport: i0, template: "@if (_infoWindowContent?.clusterData) {\n @if (_infoWindowContent?.selectedClusterItemData) {\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"preventEventPropagation($event)\"\n >\n @for (\n item of _infoWindowContent?.selectedClusterItemData.mainContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _infoWindowContent?.selectedClusterItemData\n .data,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of _infoWindowContent?.selectedClusterItemData\n .expandedContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _infoWindowContent\n ?.selectedClusterItemData.data,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n } @else {\n <div\n class=\"cluster-marker-container d-flex flex-column gap-1\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"onClusterListScroll($event)\"\n >\n @for (\n item of _infoWindowContent?.clusterData;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n clusterContentTemplate;\n context: {\n content: item,\n }\n \"\n ></ng-container>\n }\n </div>\n }\n} @else {\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"preventEventPropagation($event)\"\n >\n @for (\n item of _infoWindowContent?.mainContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _markerData,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of _infoWindowContent?.expandedContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _markerData,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n}\n\n<ng-template #clusterContentTemplate let-content=\"content\">\n @let item = content | mapDropdownClusterContentType;\n @if (item) {\n <div\n class=\"d-flex align-items-center justify-content-between cluster-marker-item\"\n (click)=\"clusterItemClick(item)\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n [ngStyle]=\"{\n 'max-width': item.favourite ? 'calc(100% - 18px)' : '100%',\n }\"\n >\n @if (item.isClosed) {\n <svg-icon\n class=\"d-flex svg-size-18\"\n [src]=\"mapDropdownSvgRoutes.permanentlyClosedRoute\"\n ></svg-icon>\n }\n <div\n class=\"regular-text dark-gray-text uppercase text-ellipsis\"\n >\n {{ item.name }}\n </div>\n </div>\n\n @if (item.favourite) {\n <svg-icon\n class=\"d-flex svg-size-18\"\n [src]=\"mapDropdownSvgRoutes.favoriteRoute\"\n ></svg-icon>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #dropdownContentTemplate let-content=\"content\" let-data=\"data\">\n @let item = content | mapDropdownContentType;\n @if (item) {\n @if (!item.sideBySideInfo) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item,\n data: data,\n }\n \"\n ></ng-container>\n } @else {\n <!-- Side by Side Data -->\n <div class=\"d-flex align-items-center\">\n <!-- Left Side -->\n @if (item.sideBySideInfo.leftSide) {\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.leftSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n }\n\n <!-- Right Side -->\n @if (item.sideBySideInfo.rightSide) {\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.rightSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template\n #dropdownContentItemTemplates\n let-content=\"content\"\n let-data=\"data\"\n>\n @let item = content | mapDropdownContentType;\n @if (item) {\n @switch (item?.template) {\n @case (eMapDropdownString.HEADER_TITLE) {\n <div\n class=\"heading d-flex justify-content-between align-items-center {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"header-text-container d-flex align-items-center gap-1 w-100\"\n >\n @if (item.hasBackButton) {\n <div\n class=\"header-back-button d-flex align-items-center justify-content-center\"\n (click)=\"backButtonClick($event)\"\n >\n <svg-icon\n class=\"d-flex svg-size-14\"\n [src]=\"mapDropdownSvgRoutes.backButtonRoute\"\n >\n </svg-icon>\n </div>\n }\n\n <span\n class=\"header ca-font-extra-bold dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n </div>\n }\n\n <!-- Rating Review -->\n @case (eMapDropdownString.RATING_REVIEW) {\n <div\n class=\"d-flex justify-content-start align-items-center align-content-center gap-3 {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].likeCount\"\n >\n <svg-icon\n class=\"rating-icon like-icon d-flex svg-size-14\"\n [class.active]=\"data[item.field].hasLiked\"\n [src]=\"mapDropdownSvgRoutes.likeRoute\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].likeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].dislikeCount\"\n >\n <svg-icon\n class=\"rating-icon dislike-icon d-flex svg-size-14\"\n [class.active]=\"data[item.field].hasDislike\"\n [src]=\"mapDropdownSvgRoutes.dislikeRoute\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].dislikeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].reviewCount\"\n >\n <svg-icon\n class=\"rating-icon review-icon d-flex svg-size-14\"\n [src]=\"mapDropdownSvgRoutes.reviewRoute\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].reviewCount ?? 0 }}\n </span>\n </div>\n </div>\n }\n\n <!-- Border Divider -->\n @case (eMapDropdownString.DIVIDER) {\n <div class=\"info-divider\"></div>\n }\n\n <!-- Repair Shop Services -->\n @case (eMapDropdownString.REPAIR_SHOP_SERVICES) {\n <div\n class=\"d-flex align-items-center justify-content-between {{\n item.customClassContainer\n }}\"\n >\n @for (\n service of data[item.field];\n let i = $index;\n track i\n ) {\n <div\n class=\"d-flex align-items-center justify-content-center\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"service.serviceType.name\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"repair-service-icon svg-size-18\"\n [class.active]=\"service.active\"\n [src]=\"\n service.logoName\n | caSvg: 'common' : 'repair-services'\n \"\n ></svg-icon>\n </div>\n }\n </div>\n }\n\n <!-- Icon and Text -->\n @case (eMapDropdownString.ICON_TEXT) {\n <div\n class=\"d-flex align-items-start gap-1 {{\n item.customClassContainer\n }}\"\n >\n @if (item.url) {\n <div\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"item.iconTooltipText\"\n position=\"bottom\"\n [disableTooltip]=\"!item.iconTooltipText\"\n >\n <svg-icon\n class=\"d-flex align-items-center justify-content-center svg-size-18\"\n [src]=\"item.url\"\n ></svg-icon>\n </div>\n }\n\n <span\n class=\"regular-text dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{\n item.isDate\n ? (data[item.field] | date: 'MM/dd/yy')\n : (data | mapDropdownValue: item)\n }}\n </span>\n </div>\n }\n\n <!-- Title -->\n @case (eMapDropdownString.TITLE) {\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </div>\n }\n\n <!-- Title and Count -->\n @case (eMapDropdownString.TITLE_COUNT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text dark-gray-text ca-font-extra-bold\">\n {{ item.title }}\n </div>\n <div\n class=\"count-number white-text d-flex align-items-center justify-content-center ca-font-bold\"\n >\n {{ data[item.field] }}\n </div>\n </div>\n }\n\n <!-- Money Text -->\n @case (eMapDropdownString.MONEY_TEXT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text ca-font-bold blue-text\">\n {{\n data?.[item.field] !== ''\n ? (data[item.field] | formatCurrency)\n : '$0'\n }}\n </div>\n <div class=\"regular-text light-gray-text ca-font-bold\">\n {{ item.title }}\n </div>\n </div>\n }\n\n <!-- Open Hours -->\n @case (eMapDropdownString.OPEN_HOURS) {\n <div class=\"d-flex flex-column gap-2\">\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n <div class=\"open-hours-grid\">\n @if (\n data[item.field]?.openHoursToday &&\n !isShowAllDaysActive\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ data[item.field].openHoursToday.status }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{ data[item.field].openHoursToday.info }}\n </div>\n </div>\n }\n\n @if (data[item.field]?.openHours?.length) {\n @if (isShowAllDaysActive) {\n @for (\n day of data[item.field].openHours;\n let i = $index;\n track i\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ day.dayOfWeek }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{\n day.startTime +\n ' - ' +\n day.endTime\n }}\n </div>\n </div>\n }\n }\n <div\n class=\"d-flex flex-column flex-1 justify-content-end show-all-days-container\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n (click)=\"showAllDaysClick()\"\n >\n <svg-icon\n class=\"d-flex svg-size-14\"\n [src]=\"\n mapDropdownSvgRoutes.accidentCalenderRoute\n \"\n ></svg-icon>\n <div\n class=\"regular-text gray-text cursor-pointer\"\n >\n {{\n isShowAllDaysActive\n ? 'Show today'\n : 'Show all days'\n }}\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Text and Count -->\n @case (eMapDropdownString.TEXT_COUNT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text {{ item.customClassText }}\">\n {{ item.title }}\n </div>\n <div\n class=\"regular-text ca-font-semi-bold {{\n item.customClassText\n }}\"\n >\n {{ data | mapDropdownValue: item }}\n </div>\n </div>\n }\n\n <!-- Subtitle -->\n @case (eMapDropdownString.SUBTITLE) {\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n }\n\n <!-- Regular Text -->\n @case (eMapDropdownString.TEXT) {\n <div class=\"regular-text black-text {{ item.customClassText }}\">\n {{ data | mapDropdownValue: item }}\n </div>\n }\n\n <!-- Small Subtitle -->\n @case (eMapDropdownString.SMALL_SUBTITLE) {\n <div\n class=\"small-text dark-gray-text {{ item.customClassText }}\"\n >\n {{ item.title }}\n </div>\n }\n\n <!-- Date -->\n @case (eMapDropdownString.DATE) {\n <div class=\"regular-text black-text {{ item.customClassText }}\">\n {{ data[item.field] | date }}\n </div>\n }\n\n @case (eMapDropdownString.FUEL_PRICE_RANGE) {\n @if (fuelPriceRangeData) {\n <div\n class=\"d-flex align-items-center justify-content-between gap-1\"\n >\n <div class=\"d-flex flex-column\">\n <div\n class=\"text-size-14 text-color-black ca-font-semi-bold\"\n >\n {{\n fuelPriceRangeData.pricePerGallon\n | formatCurrency\n }}\n </div>\n <div class=\"text-size-11 text-color-muted\">\n {{\n fuelPriceRangeData.dieselLastUsed\n | dateFromStringPipe: 'time-ago'\n }}\n </div>\n </div>\n\n <app-ca-last-fuel-price-progress\n [lastFuelPriceData]=\"fuelPriceRangeData\"\n ></app-ca-last-fuel-price-progress>\n </div>\n }\n }\n }\n }\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#fff}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#fff}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#fff}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background-color:#42424233!important;color:#424242!important}.text-color-black::selection{background-color:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background-color:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background-color:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background-color:#91919133!important;color:#919191!important}.text-color-muted::selection{background-color:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background-color:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background-color:#56b4ac33!important;color:#56b4ac!important}.text-color-green-2{color:#259f94!important}.text-color-green-2::-moz-selection{background-color:#259f9433!important;color:#259f94!important}.text-color-green-2::selection{background-color:#259f9433!important;color:#259f94!important}.text-color-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background-color:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background-color:#86c9c333!important;color:#86c9c3!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background-color:#6692f133!important;color:#6692f1!important}.text-color-blue-13::selection{background-color:#6692f133!important;color:#6692f1!important}.text-color-blue-16{color:#e9effd!important}.text-color-blue-16::-moz-selection{background-color:#e9effd33!important;color:#e9effd!important}.text-color-blue-16::selection{background-color:#e9effd33!important;color:#e9effd!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background-color:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background-color:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background-color:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background-color:#92b1f533!important;color:#92b1f5!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background-color:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background-color:#e6676733!important;color:#e66767!important}.text-color-red-11{color:#df3c3c!important}.text-color-red-11::-moz-selection{background-color:#df3c3c33!important;color:#df3c3c!important}.text-color-red-11::selection{background-color:#df3c3c33!important;color:#df3c3c!important}.text-color-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background-color:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background-color:#ed929233!important;color:#ed9292!important}.text-color-yellow{color:#fab15c!important}.text-color-yellow::-moz-selection{background-color:#fab15c33!important;color:#fab15c!important}.text-color-yellow::selection{background-color:#fab15c33!important;color:#fab15c!important}.text-color-purple{color:#b370f0!important}.text-color-purple::-moz-selection{background-color:#b370f033!important;color:#b370f0!important}.text-color-purple::selection{background-color:#b370f033!important;color:#b370f0!important}.text-color-special-filter-purple{color:#9e47ec!important}.text-color-special-filter-purple::-moz-selection{background-color:#9e47ec33!important;color:#9e47ec!important}.text-color-special-filter-purple::selection{background-color:#9e47ec33!important;color:#9e47ec!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background-color:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background-color:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background-color:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background-color:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{background-color:#ccc3!important;color:#ccc!important}.text-color-light-grey-6::selection{background-color:#ccc3!important;color:#ccc!important}.text-color-white{color:#fff!important}.text-color-white::-moz-selection{background-color:#fff3!important;color:#fff!important}.text-color-white::selection{background-color:#fff3!important;color:#fff!important}.text-color-white-2{color:#fff!important}.text-color-white-2::-moz-selection{background-color:#fff3!important;color:#fff!important}.text-color-white-2::selection{background-color:#fff3!important;color:#fff!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{background-color:#fff3!important;color:#ffffffb2!important}.text-color-white-4::selection{background-color:#fff3!important;color:#ffffffb2!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{background-color:#6c6c6c33!important;color:#6c6c6c!important}.text-color-bw6-2::selection{background-color:#6c6c6c33!important;color:#6c6c6c!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{background-color:#dadada33!important;color:#dadada!important}.text-color-bw-9::selection{background-color:#dadada33!important;color:#dadada!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{background-color:#91919133!important;color:#919191!important}.text-color-grey::selection{background-color:#91919133!important;color:#919191!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{background-color:#91919133!important;color:#919191!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{background-color:#91919133!important;color:#919191!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}.svg-fill-black svg path,.svg-fill-black svg circle{fill:#424242!important}.svg-fill-white svg path,.svg-fill-white svg circle{fill:#fff!important}.svg-fill-white-2 svg path,.svg-fill-white-2 svg circle{fill:#fff!important}.svg-fill-muted svg path,.svg-fill-muted svg circle{fill:#919191!important}.svg-fill-bw-9 svg path,.svg-fill-bw-9 svg circle{fill:#dadada!important}.svg-fill-light-grey-2 svg path,.svg-fill-light-grey-2 svg circle{fill:#aaa!important}.svg-fill-light-grey-6 svg path,.svg-fill-light-grey-6 svg circle{fill:#ccc!important}.svg-fill-blue-8 svg path,.svg-fill-blue-8 svg circle{fill:#6692f1!important}.svg-fill-blue-13 svg path,.svg-fill-blue-13 svg circle{fill:#6692f1!important}.svg-fill-blue-14 svg path,.svg-fill-blue-14 svg circle{fill:#3b73ed!important}.svg-fill-blue-17 svg path,.svg-fill-blue-17 svg circle{fill:#bed0f9!important}.svg-fill-blue-19 svg path,.svg-fill-blue-19 svg circle{fill:#92b1f5!important}.svg-fill-blue-26 svg path,.svg-fill-blue-26 svg circle{fill:#4dc5eb!important}.svg-fill-green svg path,.svg-fill-green svg circle{fill:#56b4ac!important}.svg-fill-green-2 svg path,.svg-fill-green-2 svg circle{fill:#259f94!important}.svg-fill-green-4 svg path,.svg-fill-green-4 svg circle{fill:#86c9c3!important}.svg-fill-yellow-1 svg path,.svg-fill-yellow-1 svg circle{fill:#fab15c!important}.svg-fill-yellow-4 svg path,.svg-fill-yellow-4 svg circle{fill:#fbc88b!important}.svg-fill-yellow-5 svg path,.svg-fill-yellow-5 svg circle{fill:#f89b2e!important}.svg-fill-white-4 svg path,.svg-fill-white-4 svg circle{fill:#ffffffb2!important}.svg-fill-grey svg path,.svg-fill-grey svg circle{fill:#919191!important}.svg-fill-red-10 svg path,.svg-fill-red-10 svg circle{fill:#e66767!important}.svg-fill-red-11 svg path,.svg-fill-red-11 svg circle{fill:#df3c3c!important}.svg-fill-red-14 svg path,.svg-fill-red-14 svg circle{fill:#c20c0c!important}.svg-hover-white svg path{transition:fill .3s ease-in-out}.svg-hover-white:hover svg path{fill:#fff!important}.svg-hover-white-2 svg path{transition:fill .3s ease-in-out}.svg-hover-white-2:hover svg path{fill:#fff!important}.svg-hover-muted svg path{transition:fill .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-grey-4 svg path{transition:fill .3s ease-in-out}.svg-hover-grey-4:hover svg path{fill:#ccc!important}.svg-hover-black svg path{transition:fill .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-10 svg path{transition:fill .3s ease-in-out}.svg-hover-blue-10:hover svg path{fill:#bed0f9!important}.svg-hover-blue-15 svg path{transition:fill .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-blue-19 svg path{transition:fill .3s ease-in-out}.svg-hover-blue-19:hover svg path{fill:#92b1f5!important}.svg-hover-bw6-2 svg path{transition:fill .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:fill .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:fill .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-6 svg{width:6px;height:6px}.svg-size-10 svg{width:10px;height:10px}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-17 svg{width:17px;height:17px}.svg-size-18 svg{width:18px;height:18px}.svg-size-22 svg{width:22px;height:22px}.svg-size-23 svg{width:23px;height:23px}.svg-size-26 svg{width:26px;height:26px}.svg-size-44-16 svg{width:44px;height:16px}.background-black{background-color:#424242}.background-black-2{background-color:#2f2f2f}.background-blue-13{background-color:#6692f1}.background-blue-14{background-color:#3b73ed}.background-dark-2{background-color:#91919133}.background-hover-bw2{transition:background-color .3s ease-in-out}.background-hover-bw2:hover{background-color:#eee!important}.background-hover-blue-15{transition:background-color .3s ease-in-out}.background-hover-blue-15:hover{background-color:#0b49d1!important}.br-1{border-radius:1px}.br-2{border-radius:2px}.br-3{border-radius:3px}.br-10{border-radius:10px}.br-circle{border-radius:50%}.padding-2{padding:2px}.padding-4{padding:4px}.padding-y-2{padding-top:2px;padding-bottom:2px}.padding-y-4{padding-top:4px;padding-bottom:4px}.padding-x-4{padding-left:4px;padding-right:4px}.padding-x-5{padding-left:5px;padding-right:5px}.margin-t-4{margin-top:4px}.margin-r-4{margin-right:4px}.margin-b-4{margin-bottom:4px}.margin-t-6{margin-top:6px}.margin-r-6{margin-right:6px}.margin-b-6{margin-bottom:6px}.margin-t-24{margin-top:24px}.margin-r-24{margin-right:24px}.margin-b-24{margin-bottom:24px}.gap-xs{gap:2px}.height-1{height:1px}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.filter-dropdown-popover{width:260px;position:relative;top:-4px;left:-4px}.filter-dropdown-popover-max-height{max-height:360px}.filter-dropdown-list{max-height:260px;overflow-y:auto}.filter-dropdown-list-icon{height:26px;transition:background-color .3s ease-in-out}.filter-dropdown-list-icon-value{height:14px;width:14px}.filter-dropdown-list-icon-remove{display:none}.filter-dropdown-list-icon:hover{background-color:#424242}.filter-dropdown-list-icon:hover .filter-dropdown-icon-count{display:none}.filter-dropdown-list-icon-selected:hover{background-color:#0b49d1}.filter-dropdown-list-item-icons{transition:opacity .3s ease-in-out;opacity:0}.filter-dropdown-list-item-status-circle{height:10px;width:10px}.filter-dropdown-list-item-remove{display:none}.filter-dropdown-list-item:hover{background-color:#424242}.filter-dropdown-list-item:hover .filter-dropdown-list-item-icons{opacity:1}.filter-dropdown-list-item:hover .filter-dropdown-list-item-icons svg path{fill:var(--svg-fill-color, #e66767)}.filter-dropdown-list-item-hover:hover .filter-dropdown-list-item-remove{display:flex}.filter-dropdown-list-item-hover:hover .filter-dropdown-list-item-remove svg path{fill:#e66767!important}.filter-dropdown-list-item-hover:hover .filter-dropdown-list-item-count{display:none!important}.filter-dropdown-icon{height:26px;width:26px}.filter-dropdown-count{height:14px;width:14px}.filter-dropdown-count-remove,.filter-dropdown-count-hover:hover .filter-dropdown-count-value{display:none}.filter-dropdown-count-hover:hover .filter-dropdown-count-remove{display:flex}.filter-dropdown-button{height:26px}.filter-dropdown-footer-button{color:#dadada;transition:color .3s ease-in-out,background-color .3s ease-in-out;height:18px;width:50%}.filter-dropdown-footer-button-set{color:#fff;background-color:#3b73ed}.filter-dropdown-footer-button-set:hover{background-color:#e9effd;color:#0b49d1}.filter-dropdown-footer-button-clear{color:#dadada}.filter-dropdown-footer-button-clear:hover{background-color:#eee;color:#424242}.filter-dropdown-list-badge{min-width:18px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.c-pointer{cursor:pointer}.ca-scroll-bar{overflow-y:scroll}.ca-scroll-bar::-webkit-scrollbar{width:2px}.ca-scroll-bar::-webkit-scrollbar-thumb{background:#ccc;border-radius:1px}.ca-scroll-bar::-webkit-scrollbar-track{background:#2f2f2f}:host{display:block;height:100%;width:100%}.cluster-marker-container{width:354px;max-height:244px;margin:4px 2px 4px 4px;overflow-y:scroll;cursor:default}.cluster-marker-container::-webkit-scrollbar{width:2px}.cluster-marker-container::-webkit-scrollbar-thumb{background-color:#ccc;border:2px solid #cccccc;border-radius:1px}.cluster-marker-container::-webkit-scrollbar-track{width:2px;background-color:#fff}.cluster-marker-container .cluster-marker-item{max-width:100%;padding:4px;cursor:pointer;border-radius:2px}.cluster-marker-container .cluster-marker-item:hover{background:#eee}.marker-container{width:360px;max-height:214px;padding:8px;transition:max-height .2s ease-in-out;cursor:default}.marker-container.expanded{max-height:396px}.marker-container .heading{max-width:100%;margin-bottom:3px}.marker-container .heading .header-text-container{max-width:calc(100% - 26px)}.marker-container .heading .header-text-container .header-back-button{min-width:18px;min-height:18px;background:#eee;border-radius:1px;cursor:pointer}.marker-container .heading .header-text-container .header-back-button svg-icon svg path{fill:#919191}.marker-container .heading .header-text-container .header{font-family:Montserrat,sans-serif;font-size:16px;line-height:20px;color:#424242}.marker-container .heading .dropdown-icon{min-width:26px;min-height:26px}.marker-container .action .side-space{padding-right:4px}.marker-container .action .side-space .count{font-family:Montserrat,sans-serif;font-size:11px;color:#424242;padding:0 7px;position:relative;left:-1px}.marker-container .action .side-space .grey-color{color:#919191}.marker-container .repair-service-icon svg path{fill:#ccc;fill-opacity:1}.marker-container .repair-service-icon.active svg path{fill:#919191;fill-opacity:1}.marker-container .personal-info-items{font-family:Montserrat,sans-serif}.marker-container .personal-info-items .info{max-width:100%;font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.marker-container .working-info-detail{font-family:Montserrat,sans-serif}.marker-container .working-info-detail .working-info-item{font-size:11px;line-height:14px;color:#424242}.marker-container .working-info-detail .working-info-item .working-time{font-size:14px;line-height:18px}.marker-container .load-info .load-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.marker-container .load-info .load-heading .load-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail{font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail .load-info-item{font-size:12px;line-height:18px;color:#2f2f2f}.marker-container .load-info .load-info-detail .loading-hours{font-size:10px;color:#919191}.marker-container .load-info .load-info-detail .loading-hours .load-time{color:#919191}.marker-container .avg-info .avg-info-detail{font-family:Montserrat,sans-serif}.marker-container .avg-info .avg-info-detail .avg-item .item-date{padding:0 7px;color:#2f2f2f}.infowindow-container{width:300px;padding:2px 9px 9px 0}.infowindow-container .heading-container .heading{margin-top:15px;margin-bottom:3px}.infowindow-container .heading-container .heading .header{font-family:Montserrat,sans-serif;font-size:15px;line-height:19.5px}.infowindow-container .personal-info .personal-info-items{padding:1px 0;margin-bottom:3px;font-family:Montserrat,sans-serif}.infowindow-container .personal-info .personal-info-items .info{font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.infowindow-container .weight-info .weight-heading .weight-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail{font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail .weight-info-item{font-size:12px;line-height:18px;color:#424242}.infowindow-container .weight-info .weight-info-detail .weight-info-item .weight-time{color:#424242;padding:0 5px}.infowindow-container .transport-info .transport-container{margin-top:15px;font-family:Montserrat,sans-serif;margin-bottom:10px}.infowindow-container .transport-info .transport-container .driver-info .side-space{margin-left:20px}.infowindow-container .transport-info .transport-container .driver-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .driver-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.infowindow-container .transport-info .transport-container .truck-info .side-space{margin-left:50px}.infowindow-container .transport-info .transport-container .truck-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .truck-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.info-divider{margin:8px 0;width:100%;height:1px;background:#dadada;border-radius:2px}.dropdown-arrow{position:absolute;right:6px;bottom:6px}.dropdown-arrow svg{transition:transform .2s ease-in-out;transform:rotate(0)}.dropdown-arrow svg path{transition:fill .2s ease-in-out;fill:#919191}.dropdown-arrow.rotate-arrow svg{transform:rotate(180deg)}.dropdown-arrow.rotate-arrow svg path{fill:#6692f1}.dropdown-arrow:hover{cursor:pointer}.dropdown-arrow:hover svg path{fill:#6692f1}.expanded-info{max-height:0px;overflow:hidden;transition:max-height .2s ease-in-out}.expanded-info.active{max-height:300px}.gap-8{gap:8px}.count-number{padding:0 5px;background:#6c6c6c;border-radius:60px;font-size:11px;line-height:14px;-webkit-user-select:none;user-select:none}.rating-icon svg path{fill:#919191;fill-opacity:1}.rating-icon.active.like-icon svg path{fill:#56b4ac}.rating-icon.active.dislike-icon svg path{fill:#e66767}.text-ellipsis{max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis.two-rows-ellipsis{max-width:90%;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;white-space:initial}.blue-text{color:#6692f1!important}.blue-text::-moz-selection{color:#6692f1;background:#3b73ed33}.blue-text::selection{color:#6692f1;background:#3b73ed33}.red-text{color:#df3c3c!important}.red-text::-moz-selection{color:#df3c3c;background:#df3c3c33}.red-text::selection{color:#df3c3c;background:#df3c3c33}.gray-text{color:#919191!important}.gray-text::-moz-selection{color:#919191;background:#91919133}.gray-text::selection{color:#919191;background:#91919133}.light-gray-text{color:#6c6c6c}.light-gray-text::-moz-selection{color:#6c6c6c;background:#6c6c6c33}.light-gray-text::selection{color:#6c6c6c;background:#6c6c6c33}.dark-gray-text{color:#424242}.dark-gray-text::-moz-selection{color:#424242;background:#42424233}.dark-gray-text::selection{color:#424242;background:#42424233}.black-text{color:#2f2f2f}.black-text::-moz-selection{color:#2f2f2f;background:#2f2f2f33}.black-text::selection{color:#2f2f2f;background:#2f2f2f33}.white-text{color:#fff}.white-text::-moz-selection{color:#fff;background:#fff3}.white-text::selection{color:#fff;background:#fff3}.opacity-40{opacity:.4}.regular-text{font-size:14px;line-height:18px;font-family:Montserrat,sans-serif}.small-text{font-size:11px;line-height:14px;font-family:Montserrat,sans-serif}.open-hours-grid{display:grid;grid-template-columns:50% 50%;grid-row-gap:8px}.cursor-pointer{cursor:pointer}.show-all-days-container{grid-column:2/span 1}\n"], dependencies: [{ kind: "ngmodule", type:
72
101
  //modules
73
- CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "component", type: i2.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type:
102
+ CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "component", type: i2.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type:
74
103
  // components
75
- CaAppTooltipV2Component, selector: "mainCaTooltip, [mainCaTooltip]", inputs: ["mainCaTooltip", "position", "openTooltipDelay", "tooltipBackground", "tooltipColor", "tooltipTextAlign", "tooltipMarginTop", "disableTooltip"] }, { kind: "pipe", type:
104
+ CaAppTooltipV2Component, selector: "mainCaTooltip, [mainCaTooltip]", inputs: ["mainCaTooltip", "position", "openTooltipDelay", "tooltipBackground", "tooltipColor", "tooltipTextAlign", "tooltipMarginTop", "disableTooltip"] }, { kind: "component", type: CaLastFuelPriceProgressComponent, selector: "app-ca-last-fuel-price-progress", inputs: ["lastFuelPriceData"] }, { kind: "pipe", type:
76
105
  // pipes
77
- CaSvgPipe, name: "caSvg" }, { kind: "pipe", type: MapDropdownContentPipe, name: "mapDropdownContentType" }, { kind: "pipe", type: MapDropdownClusterContentPipe, name: "mapDropdownClusterContentType" }, { kind: "pipe", type: MapDropdownValuePipe, name: "mapDropdownValue" }] }); }
106
+ CaSvgPipe, name: "caSvg" }, { kind: "pipe", type: MapDropdownContentPipe, name: "mapDropdownContentType" }, { kind: "pipe", type: MapDropdownClusterContentPipe, name: "mapDropdownClusterContentType" }, { kind: "pipe", type: MapDropdownValuePipe, name: "mapDropdownValue" }, { kind: "pipe", type: DateFromStringPipe, name: "dateFromStringPipe" }, { kind: "pipe", type: FormatCurrencyPipe, name: "formatCurrency" }] }); }
78
107
  }
79
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaMapDropdownComponent, decorators: [{
80
109
  type: Component,
@@ -85,12 +114,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
85
114
  NgbTooltip,
86
115
  // components
87
116
  CaAppTooltipV2Component,
117
+ CaLastFuelPriceProgressComponent,
88
118
  // pipes
89
119
  CaSvgPipe,
90
120
  MapDropdownContentPipe,
91
121
  MapDropdownClusterContentPipe,
92
122
  MapDropdownValuePipe,
93
- ], providers: [SvgIconRegistryService], template: "@if (infoWindowContent?.clusterData) {\n @if (infoWindowContent?.selectedClusterItemData) {\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"preventEventPropagation($event)\"\n >\n @for (\n item of infoWindowContent?.selectedClusterItemData.mainContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData\n .data,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of infoWindowContent?.selectedClusterItemData\n .expandedContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: infoWindowContent?.selectedClusterItemData\n .data,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n } @else {\n <div\n class=\"cluster-marker-container d-flex flex-column gap-1\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"onClusterListScroll($event)\"\n >\n @for (\n item of infoWindowContent?.clusterData;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n clusterContentTemplate;\n context: {\n content: item,\n }\n \"\n ></ng-container>\n }\n </div>\n }\n} @else {\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"preventEventPropagation($event)\"\n >\n @for (item of infoWindowContent?.mainContent; let i = $index; track i) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _markerData,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of infoWindowContent?.expandedContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _markerData,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n}\n\n<ng-template #clusterContentTemplate let-content=\"content\">\n @let item = content | mapDropdownClusterContentType;\n @if (item) {\n <div\n class=\"d-flex align-items-center justify-content-between cluster-marker-item\"\n (click)=\"clusterItemClick(item)\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n [ngStyle]=\"{\n 'max-width': item.favourite ? 'calc(100% - 18px)' : '100%',\n }\"\n >\n @if (item.isClosed) {\n <svg-icon\n class=\"d-flex svg-size-18\"\n [src]=\"mapDropdownSvgRoutes.permanentlyClosedRoute\"\n ></svg-icon>\n }\n <div\n class=\"regular-text dark-gray-text uppercase text-ellipsis\"\n >\n {{ item.name }}\n </div>\n </div>\n @if (item.favourite) {\n <svg-icon\n class=\"d-flex svg-size-18\"\n [src]=\"mapDropdownSvgRoutes.favoriteRoute\"\n ></svg-icon>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #dropdownContentTemplate let-content=\"content\" let-data=\"data\">\n @let item = content | mapDropdownContentType;\n @if (item) {\n @if (!item.sideBySideInfo) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item,\n data: data,\n }\n \"\n ></ng-container>\n } @else {\n <!-- Side by Side Data -->\n <div class=\"d-flex align-items-center\">\n <!-- Left Side -->\n @if (item.sideBySideInfo.leftSide) {\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.leftSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n }\n\n <!-- Right Side -->\n @if (item.sideBySideInfo.rightSide) {\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.rightSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template\n #dropdownContentItemTemplates\n let-content=\"content\"\n let-data=\"data\"\n>\n @let item = content | mapDropdownContentType;\n @if (item) {\n @switch (item?.template) {\n @case (eMapDropdownString.HEADER_TITLE) {\n <div\n class=\"heading d-flex justify-content-between align-items-center {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"header-text-container d-flex align-items-center gap-1 w-100\"\n >\n @if (item.hasBackButton) {\n <div\n class=\"header-back-button d-flex align-items-center justify-content-center\"\n (click)=\"backButtonClick($event)\"\n >\n <svg-icon\n class=\"d-flex svg-size-14\"\n [src]=\"mapDropdownSvgRoutes.backButtonRoute\"\n >\n </svg-icon>\n </div>\n }\n <span\n class=\"header ca-font-extra-bold dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n </div>\n }\n\n <!-- Rating Review -->\n @case (eMapDropdownString.RATING_REVIEW) {\n <div\n class=\"d-flex justify-content-start align-items-center align-content-center gap-3 {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].likeCount\"\n >\n <svg-icon\n class=\"rating-icon like-icon d-flex svg-size-14\"\n [class.active]=\"data[item.field].hasLiked\"\n [src]=\"mapDropdownSvgRoutes.likeRoute\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].likeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].dislikeCount\"\n >\n <svg-icon\n class=\"rating-icon dislike-icon d-flex svg-size-14\"\n [class.active]=\"data[item.field].hasDislike\"\n [src]=\"mapDropdownSvgRoutes.dislikeRoute\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].dislikeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].reviewCount\"\n >\n <svg-icon\n class=\"rating-icon review-icon d-flex svg-size-14\"\n [src]=\"mapDropdownSvgRoutes.reviewRoute\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].reviewCount ?? 0 }}\n </span>\n </div>\n </div>\n }\n\n <!-- Border Divider -->\n @case (eMapDropdownString.DIVIDER) {\n <div class=\"info-divider\"></div>\n }\n\n <!-- Repair Shop Services -->\n @case (eMapDropdownString.REPAIR_SHOP_SERVICES) {\n <div\n class=\"d-flex align-items-center justify-content-between {{\n item.customClassContainer\n }}\"\n >\n @for (\n service of data[item.field];\n let i = $index;\n track i\n ) {\n <div\n class=\"d-flex align-items-center justify-content-center\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"service.serviceType.name\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"repair-service-icon svg-size-18\"\n [class.active]=\"service.active\"\n [src]=\"\n service.logoName\n | caSvg: 'common' : 'repair-services'\n \"\n ></svg-icon>\n </div>\n }\n </div>\n }\n\n <!-- Icon and Text -->\n @case (eMapDropdownString.ICON_TEXT) {\n <div\n class=\"d-flex align-items-start gap-1 {{\n item.customClassContainer\n }}\"\n >\n @if (item.url) {\n <div\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"item.iconTooltipText\"\n position=\"bottom\"\n [disableTooltip]=\"!item.iconTooltipText\"\n >\n <svg-icon\n class=\"d-flex align-items-center justify-content-center svg-size-18\"\n [src]=\"item.url\"\n ></svg-icon>\n </div>\n }\n <span\n class=\"regular-text dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n }\n\n <!-- Title -->\n @case (eMapDropdownString.TITLE) {\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </div>\n }\n\n <!-- Title and Count -->\n @case (eMapDropdownString.TITLE_COUNT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text dark-gray-text ca-font-extra-bold\">\n {{ item.title }}\n </div>\n <div\n class=\"count-number white-text d-flex align-items-center justify-content-center ca-font-bold\"\n >\n {{ data[item.field] }}\n </div>\n </div>\n }\n\n <!-- Money Text -->\n @case (eMapDropdownString.MONEY_TEXT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text ca-font-bold blue-text\">\n {{\n data?.[item.field] !== '' ? data[item.field] : '$0'\n }}\n </div>\n <div class=\"regular-text light-gray-text ca-font-bold\">\n {{ item.title }}\n </div>\n </div>\n }\n\n <!-- Open Hours -->\n @case (eMapDropdownString.OPEN_HOURS) {\n <div class=\"d-flex flex-column gap-2\">\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n <div class=\"open-hours-grid\">\n @if (\n data[item.field]?.openHoursToday &&\n !isShowAllDaysActive\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ data[item.field].openHoursToday.status }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{ data[item.field].openHoursToday.info }}\n </div>\n </div>\n }\n\n @if (data[item.field]?.openHours?.length) {\n @if (isShowAllDaysActive) {\n @for (\n day of data[item.field].openHours;\n let i = $index;\n track i\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ day.dayOfWeek }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{\n day.startTime +\n ' - ' +\n day.endTime\n }}\n </div>\n </div>\n }\n }\n <div\n class=\"d-flex flex-column flex-1 justify-content-end show-all-days-container\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n (click)=\"showAllDaysClick()\"\n >\n <svg-icon\n class=\"d-flex svg-size-14\"\n [src]=\"\n mapDropdownSvgRoutes.accidentCalenderRoute\n \"\n ></svg-icon>\n <div\n class=\"regular-text gray-text cursor-pointer\"\n >\n {{\n isShowAllDaysActive\n ? 'Show today'\n : 'Show all days'\n }}\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Text and Count -->\n @case (eMapDropdownString.TEXT_COUNT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text {{ item.customClassText }}\">\n {{ item.title }}\n </div>\n <div\n class=\"regular-text ca-font-semi-bold {{\n item.customClassText\n }}\"\n >\n {{ data | mapDropdownValue: item }}\n </div>\n </div>\n }\n\n <!-- Subtitle -->\n @case (eMapDropdownString.SUBTITLE) {\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n }\n\n <!-- Regular Text -->\n @case (eMapDropdownString.TEXT) {\n <div class=\"regular-text black-text {{ item.customClassText }}\">\n {{ data | mapDropdownValue: item }}\n </div>\n }\n\n <!-- Small Subtitle -->\n @case (eMapDropdownString.SMALL_SUBTITLE) {\n <div\n class=\"small-text dark-gray-text {{ item.customClassText }}\"\n >\n {{ item.title }}\n </div>\n }\n }\n }\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#fff}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#fff}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#fff}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background-color:#42424233!important;color:#424242!important}.text-color-black::selection{background-color:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background-color:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background-color:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background-color:#91919133!important;color:#919191!important}.text-color-muted::selection{background-color:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background-color:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background-color:#56b4ac33!important;color:#56b4ac!important}.text-color-green-2{color:#259f94!important}.text-color-green-2::-moz-selection{background-color:#259f9433!important;color:#259f94!important}.text-color-green-2::selection{background-color:#259f9433!important;color:#259f94!important}.text-color-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background-color:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background-color:#86c9c333!important;color:#86c9c3!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background-color:#6692f133!important;color:#6692f1!important}.text-color-blue-13::selection{background-color:#6692f133!important;color:#6692f1!important}.text-color-blue-16{color:#e9effd!important}.text-color-blue-16::-moz-selection{background-color:#e9effd33!important;color:#e9effd!important}.text-color-blue-16::selection{background-color:#e9effd33!important;color:#e9effd!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background-color:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background-color:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background-color:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background-color:#92b1f533!important;color:#92b1f5!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background-color:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background-color:#e6676733!important;color:#e66767!important}.text-color-red-11{color:#df3c3c!important}.text-color-red-11::-moz-selection{background-color:#df3c3c33!important;color:#df3c3c!important}.text-color-red-11::selection{background-color:#df3c3c33!important;color:#df3c3c!important}.text-color-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background-color:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background-color:#ed929233!important;color:#ed9292!important}.text-color-yellow{color:#fab15c!important}.text-color-yellow::-moz-selection{background-color:#fab15c33!important;color:#fab15c!important}.text-color-yellow::selection{background-color:#fab15c33!important;color:#fab15c!important}.text-color-purple{color:#b370f0!important}.text-color-purple::-moz-selection{background-color:#b370f033!important;color:#b370f0!important}.text-color-purple::selection{background-color:#b370f033!important;color:#b370f0!important}.text-color-special-filter-purple{color:#9e47ec!important}.text-color-special-filter-purple::-moz-selection{background-color:#9e47ec33!important;color:#9e47ec!important}.text-color-special-filter-purple::selection{background-color:#9e47ec33!important;color:#9e47ec!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background-color:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background-color:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background-color:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background-color:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{background-color:#ccc3!important;color:#ccc!important}.text-color-light-grey-6::selection{background-color:#ccc3!important;color:#ccc!important}.text-color-white{color:#fff!important}.text-color-white::-moz-selection{background-color:#fff3!important;color:#fff!important}.text-color-white::selection{background-color:#fff3!important;color:#fff!important}.text-color-white-2{color:#fff!important}.text-color-white-2::-moz-selection{background-color:#fff3!important;color:#fff!important}.text-color-white-2::selection{background-color:#fff3!important;color:#fff!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{background-color:#fff3!important;color:#ffffffb2!important}.text-color-white-4::selection{background-color:#fff3!important;color:#ffffffb2!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{background-color:#6c6c6c33!important;color:#6c6c6c!important}.text-color-bw6-2::selection{background-color:#6c6c6c33!important;color:#6c6c6c!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{background-color:#dadada33!important;color:#dadada!important}.text-color-bw-9::selection{background-color:#dadada33!important;color:#dadada!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{background-color:#91919133!important;color:#919191!important}.text-color-grey::selection{background-color:#91919133!important;color:#919191!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{background-color:#91919133!important;color:#919191!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{background-color:#91919133!important;color:#919191!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}.svg-fill-black svg path,.svg-fill-black svg circle{fill:#424242!important}.svg-fill-white svg path,.svg-fill-white svg circle{fill:#fff!important}.svg-fill-white-2 svg path,.svg-fill-white-2 svg circle{fill:#fff!important}.svg-fill-muted svg path,.svg-fill-muted svg circle{fill:#919191!important}.svg-fill-bw-9 svg path,.svg-fill-bw-9 svg circle{fill:#dadada!important}.svg-fill-light-grey-2 svg path,.svg-fill-light-grey-2 svg circle{fill:#aaa!important}.svg-fill-light-grey-6 svg path,.svg-fill-light-grey-6 svg circle{fill:#ccc!important}.svg-fill-blue-8 svg path,.svg-fill-blue-8 svg circle{fill:#6692f1!important}.svg-fill-blue-13 svg path,.svg-fill-blue-13 svg circle{fill:#6692f1!important}.svg-fill-blue-14 svg path,.svg-fill-blue-14 svg circle{fill:#3b73ed!important}.svg-fill-blue-17 svg path,.svg-fill-blue-17 svg circle{fill:#bed0f9!important}.svg-fill-blue-19 svg path,.svg-fill-blue-19 svg circle{fill:#92b1f5!important}.svg-fill-blue-26 svg path,.svg-fill-blue-26 svg circle{fill:#4dc5eb!important}.svg-fill-green svg path,.svg-fill-green svg circle{fill:#56b4ac!important}.svg-fill-green-2 svg path,.svg-fill-green-2 svg circle{fill:#259f94!important}.svg-fill-green-4 svg path,.svg-fill-green-4 svg circle{fill:#86c9c3!important}.svg-fill-yellow-1 svg path,.svg-fill-yellow-1 svg circle{fill:#fab15c!important}.svg-fill-yellow-4 svg path,.svg-fill-yellow-4 svg circle{fill:#fbc88b!important}.svg-fill-yellow-5 svg path,.svg-fill-yellow-5 svg circle{fill:#f89b2e!important}.svg-fill-white-4 svg path,.svg-fill-white-4 svg circle{fill:#ffffffb2!important}.svg-fill-grey svg path,.svg-fill-grey svg circle{fill:#919191!important}.svg-fill-red-10 svg path,.svg-fill-red-10 svg circle{fill:#e66767!important}.svg-fill-red-11 svg path,.svg-fill-red-11 svg circle{fill:#df3c3c!important}.svg-fill-red-14 svg path,.svg-fill-red-14 svg circle{fill:#c20c0c!important}.svg-hover-white svg path{transition:fill .3s ease-in-out}.svg-hover-white:hover svg path{fill:#fff!important}.svg-hover-white-2 svg path{transition:fill .3s ease-in-out}.svg-hover-white-2:hover svg path{fill:#fff!important}.svg-hover-muted svg path{transition:fill .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-grey-4 svg path{transition:fill .3s ease-in-out}.svg-hover-grey-4:hover svg path{fill:#ccc!important}.svg-hover-black svg path{transition:fill .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-10 svg path{transition:fill .3s ease-in-out}.svg-hover-blue-10:hover svg path{fill:#bed0f9!important}.svg-hover-blue-15 svg path{transition:fill .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-blue-19 svg path{transition:fill .3s ease-in-out}.svg-hover-blue-19:hover svg path{fill:#92b1f5!important}.svg-hover-bw6-2 svg path{transition:fill .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:fill .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:fill .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-6 svg{width:6px;height:6px}.svg-size-10 svg{width:10px;height:10px}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-17 svg{width:17px;height:17px}.svg-size-18 svg{width:18px;height:18px}.svg-size-22 svg{width:22px;height:22px}.svg-size-23 svg{width:23px;height:23px}.svg-size-26 svg{width:26px;height:26px}.svg-size-44-16 svg{width:44px;height:16px}.background-black{background-color:#424242}.background-black-2{background-color:#2f2f2f}.background-blue-13{background-color:#6692f1}.background-blue-14{background-color:#3b73ed}.background-dark-2{background-color:#91919133}.background-hover-bw2{transition:background-color .3s ease-in-out}.background-hover-bw2:hover{background-color:#eee!important}.background-hover-blue-15{transition:background-color .3s ease-in-out}.background-hover-blue-15:hover{background-color:#0b49d1!important}.br-1{border-radius:1px}.br-2{border-radius:2px}.br-3{border-radius:3px}.br-10{border-radius:10px}.br-circle{border-radius:50%}.padding-2{padding:2px}.padding-4{padding:4px}.padding-y-2{padding-top:2px;padding-bottom:2px}.padding-y-4{padding-top:4px;padding-bottom:4px}.padding-x-4{padding-left:4px;padding-right:4px}.padding-x-5{padding-left:5px;padding-right:5px}.margin-t-4{margin-top:4px}.margin-r-4{margin-right:4px}.margin-b-4{margin-bottom:4px}.margin-t-6{margin-top:6px}.margin-r-6{margin-right:6px}.margin-b-6{margin-bottom:6px}.margin-t-24{margin-top:24px}.margin-r-24{margin-right:24px}.margin-b-24{margin-bottom:24px}.gap-xs{gap:2px}.height-1{height:1px}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.filter-dropdown-popover{width:260px;position:relative;top:-4px;left:-4px}.filter-dropdown-popover-max-height{max-height:360px}.filter-dropdown-list{max-height:260px;overflow-y:auto}.filter-dropdown-list-icon{height:26px;transition:background-color .3s ease-in-out}.filter-dropdown-list-icon-value{height:14px;width:14px}.filter-dropdown-list-icon-remove{display:none}.filter-dropdown-list-icon:hover{background-color:#424242}.filter-dropdown-list-icon:hover .filter-dropdown-icon-count{display:none}.filter-dropdown-list-icon-selected:hover{background-color:#0b49d1}.filter-dropdown-list-item-icons{transition:opacity .3s ease-in-out;opacity:0}.filter-dropdown-list-item-status-circle{height:10px;width:10px}.filter-dropdown-list-item-remove{display:none}.filter-dropdown-list-item:hover{background-color:#424242}.filter-dropdown-list-item:hover .filter-dropdown-list-item-icons{opacity:1}.filter-dropdown-list-item:hover .filter-dropdown-list-item-icons svg path{fill:var(--svg-fill-color, #e66767)}.filter-dropdown-list-item-hover:hover .filter-dropdown-list-item-remove{display:flex}.filter-dropdown-list-item-hover:hover .filter-dropdown-list-item-remove svg path{fill:#e66767!important}.filter-dropdown-list-item-hover:hover .filter-dropdown-list-item-count{display:none!important}.filter-dropdown-icon{height:26px;width:26px}.filter-dropdown-count{height:14px;width:14px}.filter-dropdown-count-remove,.filter-dropdown-count-hover:hover .filter-dropdown-count-value{display:none}.filter-dropdown-count-hover:hover .filter-dropdown-count-remove{display:flex}.filter-dropdown-button{height:26px}.filter-dropdown-footer-button{color:#dadada;transition:color .3s ease-in-out,background-color .3s ease-in-out;height:18px;width:50%}.filter-dropdown-footer-button-set{color:#fff;background-color:#3b73ed}.filter-dropdown-footer-button-set:hover{background-color:#e9effd;color:#0b49d1}.filter-dropdown-footer-button-clear{color:#dadada}.filter-dropdown-footer-button-clear:hover{background-color:#eee;color:#424242}.filter-dropdown-list-badge{min-width:18px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.c-pointer{cursor:pointer}.ca-scroll-bar{overflow-y:scroll}.ca-scroll-bar::-webkit-scrollbar{width:2px}.ca-scroll-bar::-webkit-scrollbar-thumb{background:#ccc;border-radius:1px}.ca-scroll-bar::-webkit-scrollbar-track{background:#2f2f2f}:host{display:block;height:100%;width:100%}.cluster-marker-container{width:354px;max-height:244px;margin:4px 2px 4px 4px;overflow-y:scroll;cursor:default}.cluster-marker-container::-webkit-scrollbar{width:2px}.cluster-marker-container::-webkit-scrollbar-thumb{background-color:#ccc;border:2px solid #cccccc;border-radius:1px}.cluster-marker-container::-webkit-scrollbar-track{width:2px;background-color:#fff}.cluster-marker-container .cluster-marker-item{max-width:100%;padding:4px;cursor:pointer;border-radius:2px}.cluster-marker-container .cluster-marker-item:hover{background:#eee}.marker-container{width:360px;max-height:214px;padding:8px;transition:max-height .2s ease-in-out;cursor:default}.marker-container.expanded{max-height:396px}.marker-container .heading{max-width:100%;margin-bottom:3px}.marker-container .heading .header-text-container{max-width:calc(100% - 26px)}.marker-container .heading .header-text-container .header-back-button{min-width:18px;min-height:18px;background:#eee;border-radius:1px;cursor:pointer}.marker-container .heading .header-text-container .header-back-button svg-icon svg path{fill:#919191}.marker-container .heading .header-text-container .header{font-family:Montserrat,sans-serif;font-size:16px;line-height:20px;color:#424242}.marker-container .heading .dropdown-icon{min-width:26px;min-height:26px}.marker-container .action .side-space{padding-right:4px}.marker-container .action .side-space .count{font-family:Montserrat,sans-serif;font-size:11px;color:#424242;padding:0 7px;position:relative;left:-1px}.marker-container .action .side-space .grey-color{color:#919191}.marker-container .repair-service-icon svg path{fill:#ccc;fill-opacity:1}.marker-container .repair-service-icon.active svg path{fill:#919191;fill-opacity:1}.marker-container .personal-info-items{font-family:Montserrat,sans-serif}.marker-container .personal-info-items .info{max-width:100%;font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.marker-container .working-info-detail{font-family:Montserrat,sans-serif}.marker-container .working-info-detail .working-info-item{font-size:11px;line-height:14px;color:#424242}.marker-container .working-info-detail .working-info-item .working-time{font-size:14px;line-height:18px}.marker-container .load-info .load-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.marker-container .load-info .load-heading .load-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail{font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail .load-info-item{font-size:12px;line-height:18px;color:#2f2f2f}.marker-container .load-info .load-info-detail .loading-hours{font-size:10px;color:#919191}.marker-container .load-info .load-info-detail .loading-hours .load-time{color:#919191}.marker-container .avg-info .avg-info-detail{font-family:Montserrat,sans-serif}.marker-container .avg-info .avg-info-detail .avg-item .item-date{padding:0 7px;color:#2f2f2f}.infowindow-container{width:300px;padding:2px 9px 9px 0}.infowindow-container .heading-container .heading{margin-top:15px;margin-bottom:3px}.infowindow-container .heading-container .heading .header{font-family:Montserrat,sans-serif;font-size:15px;line-height:19.5px}.infowindow-container .personal-info .personal-info-items{padding:1px 0;margin-bottom:3px;font-family:Montserrat,sans-serif}.infowindow-container .personal-info .personal-info-items .info{font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.infowindow-container .weight-info .weight-heading .weight-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail{font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail .weight-info-item{font-size:12px;line-height:18px;color:#424242}.infowindow-container .weight-info .weight-info-detail .weight-info-item .weight-time{color:#424242;padding:0 5px}.infowindow-container .transport-info .transport-container{margin-top:15px;font-family:Montserrat,sans-serif;margin-bottom:10px}.infowindow-container .transport-info .transport-container .driver-info .side-space{margin-left:20px}.infowindow-container .transport-info .transport-container .driver-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .driver-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.infowindow-container .transport-info .transport-container .truck-info .side-space{margin-left:50px}.infowindow-container .transport-info .transport-container .truck-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .truck-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.info-divider{margin:8px 0;width:100%;height:1px;background:#dadada;border-radius:2px}.dropdown-arrow{position:absolute;right:6px;bottom:6px}.dropdown-arrow svg{transition:transform .2s ease-in-out;transform:rotate(0)}.dropdown-arrow svg path{transition:fill .2s ease-in-out;fill:#919191}.dropdown-arrow.rotate-arrow svg{transform:rotate(180deg)}.dropdown-arrow.rotate-arrow svg path{fill:#6692f1}.dropdown-arrow:hover{cursor:pointer}.dropdown-arrow:hover svg path{fill:#6692f1}.expanded-info{max-height:0px;overflow:hidden;transition:max-height .2s ease-in-out}.expanded-info.active{max-height:300px}.gap-8{gap:8px}.count-number{padding:0 5px;background:#6c6c6c;border-radius:60px;font-size:11px;line-height:14px;-webkit-user-select:none;user-select:none}.rating-icon svg path{fill:#919191;fill-opacity:1}.rating-icon.active.like-icon svg path{fill:#56b4ac}.rating-icon.active.dislike-icon svg path{fill:#e66767}.text-ellipsis{max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis.two-rows-ellipsis{max-width:90%;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;white-space:initial}.blue-text{color:#6692f1!important}.blue-text::-moz-selection{color:#6692f1;background:#3b73ed33}.blue-text::selection{color:#6692f1;background:#3b73ed33}.red-text{color:#df3c3c!important}.red-text::-moz-selection{color:#df3c3c;background:#df3c3c33}.red-text::selection{color:#df3c3c;background:#df3c3c33}.gray-text{color:#919191!important}.gray-text::-moz-selection{color:#919191;background:#91919133}.gray-text::selection{color:#919191;background:#91919133}.light-gray-text{color:#6c6c6c}.light-gray-text::-moz-selection{color:#6c6c6c;background:#6c6c6c33}.light-gray-text::selection{color:#6c6c6c;background:#6c6c6c33}.dark-gray-text{color:#424242}.dark-gray-text::-moz-selection{color:#424242;background:#42424233}.dark-gray-text::selection{color:#424242;background:#42424233}.black-text{color:#2f2f2f}.black-text::-moz-selection{color:#2f2f2f;background:#2f2f2f33}.black-text::selection{color:#2f2f2f;background:#2f2f2f33}.white-text{color:#fff}.white-text::-moz-selection{color:#fff;background:#fff3}.white-text::selection{color:#fff;background:#fff3}.opacity-40{opacity:.4}.regular-text{font-size:14px;line-height:18px;font-family:Montserrat,sans-serif}.small-text{font-size:11px;line-height:14px;font-family:Montserrat,sans-serif}.open-hours-grid{display:grid;grid-template-columns:50% 50%;grid-row-gap:8px}.cursor-pointer{cursor:pointer}.show-all-days-container{grid-column:2/span 1}\n"] }]
123
+ DatePipe,
124
+ DateFromStringPipe,
125
+ FormatCurrencyPipe,
126
+ ], providers: [SvgIconRegistryService], template: "@if (_infoWindowContent?.clusterData) {\n @if (_infoWindowContent?.selectedClusterItemData) {\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"preventEventPropagation($event)\"\n >\n @for (\n item of _infoWindowContent?.selectedClusterItemData.mainContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _infoWindowContent?.selectedClusterItemData\n .data,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of _infoWindowContent?.selectedClusterItemData\n .expandedContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _infoWindowContent\n ?.selectedClusterItemData.data,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n } @else {\n <div\n class=\"cluster-marker-container d-flex flex-column gap-1\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"onClusterListScroll($event)\"\n >\n @for (\n item of _infoWindowContent?.clusterData;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n clusterContentTemplate;\n context: {\n content: item,\n }\n \"\n ></ng-container>\n }\n </div>\n }\n} @else {\n <div\n class=\"marker-container relative\"\n [class.expanded]=\"!isHidden\"\n (click)=\"preventEventPropagation($event, true)\"\n (mousewheel)=\"preventEventPropagation($event)\"\n >\n @for (\n item of _infoWindowContent?.mainContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _markerData,\n }\n \"\n ></ng-container>\n }\n\n <div class=\"expanded-info\" [class.active]=\"!isHidden\">\n @for (\n item of _infoWindowContent?.expandedContent;\n let i = $index;\n track i\n ) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentTemplate;\n context: {\n content: item,\n data: _markerData,\n }\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"dropdown-arrow align-self-end\"\n [class.rotate-arrow]=\"!isHidden\"\n >\n <svg-icon\n [src]=\"mapDropdownSvgRoutes.cornerDownArrowRoute\"\n (click)=\"showHiddenData($event)\"\n ></svg-icon>\n </div>\n </div>\n}\n\n<ng-template #clusterContentTemplate let-content=\"content\">\n @let item = content | mapDropdownClusterContentType;\n @if (item) {\n <div\n class=\"d-flex align-items-center justify-content-between cluster-marker-item\"\n (click)=\"clusterItemClick(item)\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n [ngStyle]=\"{\n 'max-width': item.favourite ? 'calc(100% - 18px)' : '100%',\n }\"\n >\n @if (item.isClosed) {\n <svg-icon\n class=\"d-flex svg-size-18\"\n [src]=\"mapDropdownSvgRoutes.permanentlyClosedRoute\"\n ></svg-icon>\n }\n <div\n class=\"regular-text dark-gray-text uppercase text-ellipsis\"\n >\n {{ item.name }}\n </div>\n </div>\n\n @if (item.favourite) {\n <svg-icon\n class=\"d-flex svg-size-18\"\n [src]=\"mapDropdownSvgRoutes.favoriteRoute\"\n ></svg-icon>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #dropdownContentTemplate let-content=\"content\" let-data=\"data\">\n @let item = content | mapDropdownContentType;\n @if (item) {\n @if (!item.sideBySideInfo) {\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item,\n data: data,\n }\n \"\n ></ng-container>\n } @else {\n <!-- Side by Side Data -->\n <div class=\"d-flex align-items-center\">\n <!-- Left Side -->\n @if (item.sideBySideInfo.leftSide) {\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.leftSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n }\n\n <!-- Right Side -->\n @if (item.sideBySideInfo.rightSide) {\n <div class=\"flex-1\">\n <ng-container\n *ngTemplateOutlet=\"\n dropdownContentItemTemplates;\n context: {\n content: item.sideBySideInfo?.rightSide,\n data: data,\n }\n \"\n >\n </ng-container>\n </div>\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template\n #dropdownContentItemTemplates\n let-content=\"content\"\n let-data=\"data\"\n>\n @let item = content | mapDropdownContentType;\n @if (item) {\n @switch (item?.template) {\n @case (eMapDropdownString.HEADER_TITLE) {\n <div\n class=\"heading d-flex justify-content-between align-items-center {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"header-text-container d-flex align-items-center gap-1 w-100\"\n >\n @if (item.hasBackButton) {\n <div\n class=\"header-back-button d-flex align-items-center justify-content-center\"\n (click)=\"backButtonClick($event)\"\n >\n <svg-icon\n class=\"d-flex svg-size-14\"\n [src]=\"mapDropdownSvgRoutes.backButtonRoute\"\n >\n </svg-icon>\n </div>\n }\n\n <span\n class=\"header ca-font-extra-bold dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </span>\n </div>\n </div>\n }\n\n <!-- Rating Review -->\n @case (eMapDropdownString.RATING_REVIEW) {\n <div\n class=\"d-flex justify-content-start align-items-center align-content-center gap-3 {{\n item.customClassContainer\n }}\"\n >\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].likeCount\"\n >\n <svg-icon\n class=\"rating-icon like-icon d-flex svg-size-14\"\n [class.active]=\"data[item.field].hasLiked\"\n [src]=\"mapDropdownSvgRoutes.likeRoute\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].likeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].dislikeCount\"\n >\n <svg-icon\n class=\"rating-icon dislike-icon d-flex svg-size-14\"\n [class.active]=\"data[item.field].hasDislike\"\n [src]=\"mapDropdownSvgRoutes.dislikeRoute\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].dislikeCount }}\n </span>\n </div>\n <div\n class=\"d-flex justify-content-start align-items-center gap-2\"\n [class.opacity-40]=\"!data[item.field].reviewCount\"\n >\n <svg-icon\n class=\"rating-icon review-icon d-flex svg-size-14\"\n [src]=\"mapDropdownSvgRoutes.reviewRoute\"\n ></svg-icon>\n <span\n class=\"small-text dark-gray-text ca-font-semi-bold user-select-none\"\n >{{ data[item.field].reviewCount ?? 0 }}\n </span>\n </div>\n </div>\n }\n\n <!-- Border Divider -->\n @case (eMapDropdownString.DIVIDER) {\n <div class=\"info-divider\"></div>\n }\n\n <!-- Repair Shop Services -->\n @case (eMapDropdownString.REPAIR_SHOP_SERVICES) {\n <div\n class=\"d-flex align-items-center justify-content-between {{\n item.customClassContainer\n }}\"\n >\n @for (\n service of data[item.field];\n let i = $index;\n track i\n ) {\n <div\n class=\"d-flex align-items-center justify-content-center\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"service.serviceType.name\"\n position=\"bottom\"\n >\n <svg-icon\n class=\"repair-service-icon svg-size-18\"\n [class.active]=\"service.active\"\n [src]=\"\n service.logoName\n | caSvg: 'common' : 'repair-services'\n \"\n ></svg-icon>\n </div>\n }\n </div>\n }\n\n <!-- Icon and Text -->\n @case (eMapDropdownString.ICON_TEXT) {\n <div\n class=\"d-flex align-items-start gap-1 {{\n item.customClassContainer\n }}\"\n >\n @if (item.url) {\n <div\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"item.iconTooltipText\"\n position=\"bottom\"\n [disableTooltip]=\"!item.iconTooltipText\"\n >\n <svg-icon\n class=\"d-flex align-items-center justify-content-center svg-size-18\"\n [src]=\"item.url\"\n ></svg-icon>\n </div>\n }\n\n <span\n class=\"regular-text dark-gray-text {{\n item.customClassText\n }}\"\n >\n {{\n item.isDate\n ? (data[item.field] | date: 'MM/dd/yy')\n : (data | mapDropdownValue: item)\n }}\n </span>\n </div>\n }\n\n <!-- Title -->\n @case (eMapDropdownString.TITLE) {\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ data[item.field] }}\n </div>\n }\n\n <!-- Title and Count -->\n @case (eMapDropdownString.TITLE_COUNT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text dark-gray-text ca-font-extra-bold\">\n {{ item.title }}\n </div>\n <div\n class=\"count-number white-text d-flex align-items-center justify-content-center ca-font-bold\"\n >\n {{ data[item.field] }}\n </div>\n </div>\n }\n\n <!-- Money Text -->\n @case (eMapDropdownString.MONEY_TEXT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text ca-font-bold blue-text\">\n {{\n data?.[item.field] !== ''\n ? (data[item.field] | formatCurrency)\n : '$0'\n }}\n </div>\n <div class=\"regular-text light-gray-text ca-font-bold\">\n {{ item.title }}\n </div>\n </div>\n }\n\n <!-- Open Hours -->\n @case (eMapDropdownString.OPEN_HOURS) {\n <div class=\"d-flex flex-column gap-2\">\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n <div class=\"open-hours-grid\">\n @if (\n data[item.field]?.openHoursToday &&\n !isShowAllDaysActive\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ data[item.field].openHoursToday.status }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{ data[item.field].openHoursToday.info }}\n </div>\n </div>\n }\n\n @if (data[item.field]?.openHours?.length) {\n @if (isShowAllDaysActive) {\n @for (\n day of data[item.field].openHours;\n let i = $index;\n track i\n ) {\n <div class=\"d-flex flex-column flex-1\">\n <div\n class=\"small-text dark-gray-text ca-font-bold\"\n >\n {{ day.dayOfWeek }}\n </div>\n <div\n class=\"regular-text dark-gray-text text-ellipsis\"\n >\n {{\n day.startTime +\n ' - ' +\n day.endTime\n }}\n </div>\n </div>\n }\n }\n <div\n class=\"d-flex flex-column flex-1 justify-content-end show-all-days-container\"\n >\n <div\n class=\"d-flex align-items-center gap-1\"\n (click)=\"showAllDaysClick()\"\n >\n <svg-icon\n class=\"d-flex svg-size-14\"\n [src]=\"\n mapDropdownSvgRoutes.accidentCalenderRoute\n \"\n ></svg-icon>\n <div\n class=\"regular-text gray-text cursor-pointer\"\n >\n {{\n isShowAllDaysActive\n ? 'Show today'\n : 'Show all days'\n }}\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Text and Count -->\n @case (eMapDropdownString.TEXT_COUNT) {\n <div\n class=\"d-flex align-items-center gap-1 {{\n item.customClassContainer\n }}\"\n >\n <div class=\"regular-text {{ item.customClassText }}\">\n {{ item.title }}\n </div>\n <div\n class=\"regular-text ca-font-semi-bold {{\n item.customClassText\n }}\"\n >\n {{ data | mapDropdownValue: item }}\n </div>\n </div>\n }\n\n <!-- Subtitle -->\n @case (eMapDropdownString.SUBTITLE) {\n <div\n class=\"regular-text dark-gray-text ca-font-extra-bold {{\n item.customClassText\n }}\"\n >\n {{ item.title }}\n </div>\n }\n\n <!-- Regular Text -->\n @case (eMapDropdownString.TEXT) {\n <div class=\"regular-text black-text {{ item.customClassText }}\">\n {{ data | mapDropdownValue: item }}\n </div>\n }\n\n <!-- Small Subtitle -->\n @case (eMapDropdownString.SMALL_SUBTITLE) {\n <div\n class=\"small-text dark-gray-text {{ item.customClassText }}\"\n >\n {{ item.title }}\n </div>\n }\n\n <!-- Date -->\n @case (eMapDropdownString.DATE) {\n <div class=\"regular-text black-text {{ item.customClassText }}\">\n {{ data[item.field] | date }}\n </div>\n }\n\n @case (eMapDropdownString.FUEL_PRICE_RANGE) {\n @if (fuelPriceRangeData) {\n <div\n class=\"d-flex align-items-center justify-content-between gap-1\"\n >\n <div class=\"d-flex flex-column\">\n <div\n class=\"text-size-14 text-color-black ca-font-semi-bold\"\n >\n {{\n fuelPriceRangeData.pricePerGallon\n | formatCurrency\n }}\n </div>\n <div class=\"text-size-11 text-color-muted\">\n {{\n fuelPriceRangeData.dieselLastUsed\n | dateFromStringPipe: 'time-ago'\n }}\n </div>\n </div>\n\n <app-ca-last-fuel-price-progress\n [lastFuelPriceData]=\"fuelPriceRangeData\"\n ></app-ca-last-fuel-price-progress>\n </div>\n }\n }\n }\n }\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#fff}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#fff}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#fff}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background-color:#42424233!important;color:#424242!important}.text-color-black::selection{background-color:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background-color:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background-color:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background-color:#91919133!important;color:#919191!important}.text-color-muted::selection{background-color:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background-color:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background-color:#56b4ac33!important;color:#56b4ac!important}.text-color-green-2{color:#259f94!important}.text-color-green-2::-moz-selection{background-color:#259f9433!important;color:#259f94!important}.text-color-green-2::selection{background-color:#259f9433!important;color:#259f94!important}.text-color-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background-color:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background-color:#86c9c333!important;color:#86c9c3!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background-color:#6692f133!important;color:#6692f1!important}.text-color-blue-13::selection{background-color:#6692f133!important;color:#6692f1!important}.text-color-blue-16{color:#e9effd!important}.text-color-blue-16::-moz-selection{background-color:#e9effd33!important;color:#e9effd!important}.text-color-blue-16::selection{background-color:#e9effd33!important;color:#e9effd!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background-color:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background-color:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background-color:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background-color:#92b1f533!important;color:#92b1f5!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background-color:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background-color:#e6676733!important;color:#e66767!important}.text-color-red-11{color:#df3c3c!important}.text-color-red-11::-moz-selection{background-color:#df3c3c33!important;color:#df3c3c!important}.text-color-red-11::selection{background-color:#df3c3c33!important;color:#df3c3c!important}.text-color-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background-color:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background-color:#ed929233!important;color:#ed9292!important}.text-color-yellow{color:#fab15c!important}.text-color-yellow::-moz-selection{background-color:#fab15c33!important;color:#fab15c!important}.text-color-yellow::selection{background-color:#fab15c33!important;color:#fab15c!important}.text-color-purple{color:#b370f0!important}.text-color-purple::-moz-selection{background-color:#b370f033!important;color:#b370f0!important}.text-color-purple::selection{background-color:#b370f033!important;color:#b370f0!important}.text-color-special-filter-purple{color:#9e47ec!important}.text-color-special-filter-purple::-moz-selection{background-color:#9e47ec33!important;color:#9e47ec!important}.text-color-special-filter-purple::selection{background-color:#9e47ec33!important;color:#9e47ec!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background-color:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background-color:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background-color:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background-color:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{background-color:#ccc3!important;color:#ccc!important}.text-color-light-grey-6::selection{background-color:#ccc3!important;color:#ccc!important}.text-color-white{color:#fff!important}.text-color-white::-moz-selection{background-color:#fff3!important;color:#fff!important}.text-color-white::selection{background-color:#fff3!important;color:#fff!important}.text-color-white-2{color:#fff!important}.text-color-white-2::-moz-selection{background-color:#fff3!important;color:#fff!important}.text-color-white-2::selection{background-color:#fff3!important;color:#fff!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{background-color:#fff3!important;color:#ffffffb2!important}.text-color-white-4::selection{background-color:#fff3!important;color:#ffffffb2!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{background-color:#6c6c6c33!important;color:#6c6c6c!important}.text-color-bw6-2::selection{background-color:#6c6c6c33!important;color:#6c6c6c!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{background-color:#dadada33!important;color:#dadada!important}.text-color-bw-9::selection{background-color:#dadada33!important;color:#dadada!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{background-color:#91919133!important;color:#919191!important}.text-color-grey::selection{background-color:#91919133!important;color:#919191!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{background-color:#91919133!important;color:#919191!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{background-color:#91919133!important;color:#919191!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}.svg-fill-black svg path,.svg-fill-black svg circle{fill:#424242!important}.svg-fill-white svg path,.svg-fill-white svg circle{fill:#fff!important}.svg-fill-white-2 svg path,.svg-fill-white-2 svg circle{fill:#fff!important}.svg-fill-muted svg path,.svg-fill-muted svg circle{fill:#919191!important}.svg-fill-bw-9 svg path,.svg-fill-bw-9 svg circle{fill:#dadada!important}.svg-fill-light-grey-2 svg path,.svg-fill-light-grey-2 svg circle{fill:#aaa!important}.svg-fill-light-grey-6 svg path,.svg-fill-light-grey-6 svg circle{fill:#ccc!important}.svg-fill-blue-8 svg path,.svg-fill-blue-8 svg circle{fill:#6692f1!important}.svg-fill-blue-13 svg path,.svg-fill-blue-13 svg circle{fill:#6692f1!important}.svg-fill-blue-14 svg path,.svg-fill-blue-14 svg circle{fill:#3b73ed!important}.svg-fill-blue-17 svg path,.svg-fill-blue-17 svg circle{fill:#bed0f9!important}.svg-fill-blue-19 svg path,.svg-fill-blue-19 svg circle{fill:#92b1f5!important}.svg-fill-blue-26 svg path,.svg-fill-blue-26 svg circle{fill:#4dc5eb!important}.svg-fill-green svg path,.svg-fill-green svg circle{fill:#56b4ac!important}.svg-fill-green-2 svg path,.svg-fill-green-2 svg circle{fill:#259f94!important}.svg-fill-green-4 svg path,.svg-fill-green-4 svg circle{fill:#86c9c3!important}.svg-fill-yellow-1 svg path,.svg-fill-yellow-1 svg circle{fill:#fab15c!important}.svg-fill-yellow-4 svg path,.svg-fill-yellow-4 svg circle{fill:#fbc88b!important}.svg-fill-yellow-5 svg path,.svg-fill-yellow-5 svg circle{fill:#f89b2e!important}.svg-fill-white-4 svg path,.svg-fill-white-4 svg circle{fill:#ffffffb2!important}.svg-fill-grey svg path,.svg-fill-grey svg circle{fill:#919191!important}.svg-fill-red-10 svg path,.svg-fill-red-10 svg circle{fill:#e66767!important}.svg-fill-red-11 svg path,.svg-fill-red-11 svg circle{fill:#df3c3c!important}.svg-fill-red-14 svg path,.svg-fill-red-14 svg circle{fill:#c20c0c!important}.svg-hover-white svg path{transition:fill .3s ease-in-out}.svg-hover-white:hover svg path{fill:#fff!important}.svg-hover-white-2 svg path{transition:fill .3s ease-in-out}.svg-hover-white-2:hover svg path{fill:#fff!important}.svg-hover-muted svg path{transition:fill .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-grey-4 svg path{transition:fill .3s ease-in-out}.svg-hover-grey-4:hover svg path{fill:#ccc!important}.svg-hover-black svg path{transition:fill .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-10 svg path{transition:fill .3s ease-in-out}.svg-hover-blue-10:hover svg path{fill:#bed0f9!important}.svg-hover-blue-15 svg path{transition:fill .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-blue-19 svg path{transition:fill .3s ease-in-out}.svg-hover-blue-19:hover svg path{fill:#92b1f5!important}.svg-hover-bw6-2 svg path{transition:fill .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:fill .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:fill .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-6 svg{width:6px;height:6px}.svg-size-10 svg{width:10px;height:10px}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-17 svg{width:17px;height:17px}.svg-size-18 svg{width:18px;height:18px}.svg-size-22 svg{width:22px;height:22px}.svg-size-23 svg{width:23px;height:23px}.svg-size-26 svg{width:26px;height:26px}.svg-size-44-16 svg{width:44px;height:16px}.background-black{background-color:#424242}.background-black-2{background-color:#2f2f2f}.background-blue-13{background-color:#6692f1}.background-blue-14{background-color:#3b73ed}.background-dark-2{background-color:#91919133}.background-hover-bw2{transition:background-color .3s ease-in-out}.background-hover-bw2:hover{background-color:#eee!important}.background-hover-blue-15{transition:background-color .3s ease-in-out}.background-hover-blue-15:hover{background-color:#0b49d1!important}.br-1{border-radius:1px}.br-2{border-radius:2px}.br-3{border-radius:3px}.br-10{border-radius:10px}.br-circle{border-radius:50%}.padding-2{padding:2px}.padding-4{padding:4px}.padding-y-2{padding-top:2px;padding-bottom:2px}.padding-y-4{padding-top:4px;padding-bottom:4px}.padding-x-4{padding-left:4px;padding-right:4px}.padding-x-5{padding-left:5px;padding-right:5px}.margin-t-4{margin-top:4px}.margin-r-4{margin-right:4px}.margin-b-4{margin-bottom:4px}.margin-t-6{margin-top:6px}.margin-r-6{margin-right:6px}.margin-b-6{margin-bottom:6px}.margin-t-24{margin-top:24px}.margin-r-24{margin-right:24px}.margin-b-24{margin-bottom:24px}.gap-xs{gap:2px}.height-1{height:1px}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.filter-dropdown-popover{width:260px;position:relative;top:-4px;left:-4px}.filter-dropdown-popover-max-height{max-height:360px}.filter-dropdown-list{max-height:260px;overflow-y:auto}.filter-dropdown-list-icon{height:26px;transition:background-color .3s ease-in-out}.filter-dropdown-list-icon-value{height:14px;width:14px}.filter-dropdown-list-icon-remove{display:none}.filter-dropdown-list-icon:hover{background-color:#424242}.filter-dropdown-list-icon:hover .filter-dropdown-icon-count{display:none}.filter-dropdown-list-icon-selected:hover{background-color:#0b49d1}.filter-dropdown-list-item-icons{transition:opacity .3s ease-in-out;opacity:0}.filter-dropdown-list-item-status-circle{height:10px;width:10px}.filter-dropdown-list-item-remove{display:none}.filter-dropdown-list-item:hover{background-color:#424242}.filter-dropdown-list-item:hover .filter-dropdown-list-item-icons{opacity:1}.filter-dropdown-list-item:hover .filter-dropdown-list-item-icons svg path{fill:var(--svg-fill-color, #e66767)}.filter-dropdown-list-item-hover:hover .filter-dropdown-list-item-remove{display:flex}.filter-dropdown-list-item-hover:hover .filter-dropdown-list-item-remove svg path{fill:#e66767!important}.filter-dropdown-list-item-hover:hover .filter-dropdown-list-item-count{display:none!important}.filter-dropdown-icon{height:26px;width:26px}.filter-dropdown-count{height:14px;width:14px}.filter-dropdown-count-remove,.filter-dropdown-count-hover:hover .filter-dropdown-count-value{display:none}.filter-dropdown-count-hover:hover .filter-dropdown-count-remove{display:flex}.filter-dropdown-button{height:26px}.filter-dropdown-footer-button{color:#dadada;transition:color .3s ease-in-out,background-color .3s ease-in-out;height:18px;width:50%}.filter-dropdown-footer-button-set{color:#fff;background-color:#3b73ed}.filter-dropdown-footer-button-set:hover{background-color:#e9effd;color:#0b49d1}.filter-dropdown-footer-button-clear{color:#dadada}.filter-dropdown-footer-button-clear:hover{background-color:#eee;color:#424242}.filter-dropdown-list-badge{min-width:18px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.c-pointer{cursor:pointer}.ca-scroll-bar{overflow-y:scroll}.ca-scroll-bar::-webkit-scrollbar{width:2px}.ca-scroll-bar::-webkit-scrollbar-thumb{background:#ccc;border-radius:1px}.ca-scroll-bar::-webkit-scrollbar-track{background:#2f2f2f}:host{display:block;height:100%;width:100%}.cluster-marker-container{width:354px;max-height:244px;margin:4px 2px 4px 4px;overflow-y:scroll;cursor:default}.cluster-marker-container::-webkit-scrollbar{width:2px}.cluster-marker-container::-webkit-scrollbar-thumb{background-color:#ccc;border:2px solid #cccccc;border-radius:1px}.cluster-marker-container::-webkit-scrollbar-track{width:2px;background-color:#fff}.cluster-marker-container .cluster-marker-item{max-width:100%;padding:4px;cursor:pointer;border-radius:2px}.cluster-marker-container .cluster-marker-item:hover{background:#eee}.marker-container{width:360px;max-height:214px;padding:8px;transition:max-height .2s ease-in-out;cursor:default}.marker-container.expanded{max-height:396px}.marker-container .heading{max-width:100%;margin-bottom:3px}.marker-container .heading .header-text-container{max-width:calc(100% - 26px)}.marker-container .heading .header-text-container .header-back-button{min-width:18px;min-height:18px;background:#eee;border-radius:1px;cursor:pointer}.marker-container .heading .header-text-container .header-back-button svg-icon svg path{fill:#919191}.marker-container .heading .header-text-container .header{font-family:Montserrat,sans-serif;font-size:16px;line-height:20px;color:#424242}.marker-container .heading .dropdown-icon{min-width:26px;min-height:26px}.marker-container .action .side-space{padding-right:4px}.marker-container .action .side-space .count{font-family:Montserrat,sans-serif;font-size:11px;color:#424242;padding:0 7px;position:relative;left:-1px}.marker-container .action .side-space .grey-color{color:#919191}.marker-container .repair-service-icon svg path{fill:#ccc;fill-opacity:1}.marker-container .repair-service-icon.active svg path{fill:#919191;fill-opacity:1}.marker-container .personal-info-items{font-family:Montserrat,sans-serif}.marker-container .personal-info-items .info{max-width:100%;font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.marker-container .working-info-detail{font-family:Montserrat,sans-serif}.marker-container .working-info-detail .working-info-item{font-size:11px;line-height:14px;color:#424242}.marker-container .working-info-detail .working-info-item .working-time{font-size:14px;line-height:18px}.marker-container .load-info .load-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.marker-container .load-info .load-heading .load-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail{font-family:Montserrat,sans-serif}.marker-container .load-info .load-info-detail .load-info-item{font-size:12px;line-height:18px;color:#2f2f2f}.marker-container .load-info .load-info-detail .loading-hours{font-size:10px;color:#919191}.marker-container .load-info .load-info-detail .loading-hours .load-time{color:#919191}.marker-container .avg-info .avg-info-detail{font-family:Montserrat,sans-serif}.marker-container .avg-info .avg-info-detail .avg-item .item-date{padding:0 7px;color:#2f2f2f}.infowindow-container{width:300px;padding:2px 9px 9px 0}.infowindow-container .heading-container .heading{margin-top:15px;margin-bottom:3px}.infowindow-container .heading-container .heading .header{font-family:Montserrat,sans-serif;font-size:15px;line-height:19.5px}.infowindow-container .personal-info .personal-info-items{padding:1px 0;margin-bottom:3px;font-family:Montserrat,sans-serif}.infowindow-container .personal-info .personal-info-items .info{font-size:14px;line-height:18px;padding:0 5px;color:#2f2f2f;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-heading{font-family:Montserrat,sans-serif;font-size:13px;margin-bottom:5px}.infowindow-container .weight-info .weight-heading .weight-head-count{background-color:#6c6c6c;border-radius:50%;padding:3px 4px;color:#fff;font-size:7px;margin:1px 4px 0;font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail{font-family:Montserrat,sans-serif}.infowindow-container .weight-info .weight-info-detail .weight-info-item{font-size:12px;line-height:18px;color:#424242}.infowindow-container .weight-info .weight-info-detail .weight-info-item .weight-time{color:#424242;padding:0 5px}.infowindow-container .transport-info .transport-container{margin-top:15px;font-family:Montserrat,sans-serif;margin-bottom:10px}.infowindow-container .transport-info .transport-container .driver-info .side-space{margin-left:20px}.infowindow-container .transport-info .transport-container .driver-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .driver-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.infowindow-container .transport-info .transport-container .truck-info .side-space{margin-left:50px}.infowindow-container .transport-info .transport-container .truck-info .title{font-size:11px;line-height:14px}.infowindow-container .transport-info .transport-container .truck-info .detail{font-size:13px;line-height:18px;color:#2f2f2f}.info-divider{margin:8px 0;width:100%;height:1px;background:#dadada;border-radius:2px}.dropdown-arrow{position:absolute;right:6px;bottom:6px}.dropdown-arrow svg{transition:transform .2s ease-in-out;transform:rotate(0)}.dropdown-arrow svg path{transition:fill .2s ease-in-out;fill:#919191}.dropdown-arrow.rotate-arrow svg{transform:rotate(180deg)}.dropdown-arrow.rotate-arrow svg path{fill:#6692f1}.dropdown-arrow:hover{cursor:pointer}.dropdown-arrow:hover svg path{fill:#6692f1}.expanded-info{max-height:0px;overflow:hidden;transition:max-height .2s ease-in-out}.expanded-info.active{max-height:300px}.gap-8{gap:8px}.count-number{padding:0 5px;background:#6c6c6c;border-radius:60px;font-size:11px;line-height:14px;-webkit-user-select:none;user-select:none}.rating-icon svg path{fill:#919191;fill-opacity:1}.rating-icon.active.like-icon svg path{fill:#56b4ac}.rating-icon.active.dislike-icon svg path{fill:#e66767}.text-ellipsis{max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis.two-rows-ellipsis{max-width:90%;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;white-space:initial}.blue-text{color:#6692f1!important}.blue-text::-moz-selection{color:#6692f1;background:#3b73ed33}.blue-text::selection{color:#6692f1;background:#3b73ed33}.red-text{color:#df3c3c!important}.red-text::-moz-selection{color:#df3c3c;background:#df3c3c33}.red-text::selection{color:#df3c3c;background:#df3c3c33}.gray-text{color:#919191!important}.gray-text::-moz-selection{color:#919191;background:#91919133}.gray-text::selection{color:#919191;background:#91919133}.light-gray-text{color:#6c6c6c}.light-gray-text::-moz-selection{color:#6c6c6c;background:#6c6c6c33}.light-gray-text::selection{color:#6c6c6c;background:#6c6c6c33}.dark-gray-text{color:#424242}.dark-gray-text::-moz-selection{color:#424242;background:#42424233}.dark-gray-text::selection{color:#424242;background:#42424233}.black-text{color:#2f2f2f}.black-text::-moz-selection{color:#2f2f2f;background:#2f2f2f33}.black-text::selection{color:#2f2f2f;background:#2f2f2f33}.white-text{color:#fff}.white-text::-moz-selection{color:#fff;background:#fff3}.white-text::selection{color:#fff;background:#fff3}.opacity-40{opacity:.4}.regular-text{font-size:14px;line-height:18px;font-family:Montserrat,sans-serif}.small-text{font-size:11px;line-height:14px;font-family:Montserrat,sans-serif}.open-hours-grid{display:grid;grid-template-columns:50% 50%;grid-row-gap:8px}.cursor-pointer{cursor:pointer}.show-all-days-container{grid-column:2/span 1}\n"] }]
94
127
  }], propDecorators: { infoWindowContent: [{
95
128
  type: Input
96
129
  }], markerData: [{
@@ -104,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
104
137
  }], bodyActions: [{
105
138
  type: Output
106
139
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbWFwLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC1kcm9wZG93bi9jYS1tYXAtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwLWRyb3Bkb3duL2NhLW1hcC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLFVBQVU7QUFDVixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELGFBQWE7QUFDYixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUUzRixPQUFPO0FBQ1AsT0FBTyxvQkFBb0IsTUFBTSw4Q0FBOEMsQ0FBQztBQUVoRixhQUFhO0FBQ2IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFTM0UsUUFBUTtBQUNSLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixvQkFBb0IsR0FDdkIsTUFBTSxTQUFTLENBQUM7QUFFakIsUUFBUTtBQUNSLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7OztBQXNCN0MsTUFBTSxPQUFPLHNCQUFzQjtJQXBCbkM7UUEyQmMsdUJBQWtCLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUQsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQW1DLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEUsYUFBUSxHQUFZLElBQUksQ0FBQztRQUN6Qix3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFFckMsU0FBSSxHQUFtQixvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3RCxnQkFBVyxHQUFhLElBQUksQ0FBQztRQUU3Qix5QkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztRQUM1Qyx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztLQW9EbEQ7SUFyRUcsSUFBYSxVQUFVLENBQUMsTUFBUztRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBZ0JNLGNBQWMsQ0FBQyxLQUFZO1FBQzlCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUF3QjtRQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsSUFBNEI7UUFDaEQsSUFBSSxJQUFJLEVBQUUsRUFBRTtZQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxlQUFlLENBQUMsS0FBWTtRQUMvQixJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxnQkFBZ0I7UUFDbkIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3pELENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxLQUFZO1FBQ25DLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQyxJQUNJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXO1lBQ25DLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFDbkQsQ0FBQztZQUNDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQ3hDLDJCQUEyQixDQUNmLENBQUM7WUFFakIsSUFDSSxhQUFhLEVBQUUsWUFBWSxHQUFHLGFBQWEsRUFBRSxTQUFTO2dCQUN0RCxhQUFhLEVBQUUsWUFBWSxHQUFHLEdBQUc7Z0JBRWpDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHVCQUF1QixDQUMxQixLQUFZLEVBQ1osY0FBd0I7UUFFeEIsSUFBSSxjQUFjO1lBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzNDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM1QixDQUFDOytHQXRFUSxzQkFBc0I7bUdBQXRCLHNCQUFzQixpVUFGcEIsQ0FBQyxzQkFBc0IsQ0FBQywwQkNwRHZDLGdyckJBdWlCQTtnQkRqZ0JRLFNBQVM7Z0JBQ1QsWUFBWSwwUkFDWixvQkFBb0IsaU9BQ3BCLFVBQVU7Z0JBQ1YsYUFBYTtnQkFDYix1QkFBdUI7Z0JBQ3ZCLFFBQVE7Z0JBQ1IsU0FBUyx5Q0FDVCxzQkFBc0IsMERBQ3RCLDZCQUE2QixpRUFDN0Isb0JBQW9COzs0RkFNZixzQkFBc0I7a0JBcEJsQyxTQUFTOytCQUNJLHFCQUFxQixjQUNuQixJQUFJLFdBQ1A7d0JBQ0wsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsVUFBVTt3QkFDVixhQUFhO3dCQUNiLHVCQUF1Qjt3QkFDdkIsUUFBUTt3QkFDUixTQUFTO3dCQUNULHNCQUFzQjt3QkFDdEIsNkJBQTZCO3dCQUM3QixvQkFBb0I7cUJBQ3ZCLGFBR1UsQ0FBQyxzQkFBc0IsQ0FBQzs4QkFHMUIsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBS0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLHdCQUF3QjtzQkFBakMsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSwgU3ZnSWNvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuaW1wb3J0IHsgTmdiVG9vbHRpcCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuXG4vLyBqc29uXG5pbXBvcnQgdGFEZXRhaWxEcm9wZG93bkpzb24gZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2pzb24vdGEtZGV0YWlsLWRyb3Bkb3duLmpzb24nO1xuXG4vLyBzdmctcm91dGVzXG5pbXBvcnQgeyBNYXBEcm9wZG93blN2Z1JvdXRlcyB9IGZyb20gJy4uL2NhLW1hcC1kcm9wZG93bi91dGlscy9zdmctcm91dGVzJztcblxuLy8gbW9kZWxzXG5pbXBvcnQge1xuICAgIERyb3BEb3duRGF0YSxcbiAgICBJRHJvcERvd25BY3Rpb25zLFxufSBmcm9tICcuLi9jYS1kZXRhaWxzLWRyb3Bkb3duL21vZGVscy9kZXRhaWwtZHJvcGRvd24ubW9kZWwnO1xuaW1wb3J0IHsgTWFwRHJvcGRvd25DbHVzdGVySXRlbSwgTWFwRHJvcGRvd25Db250ZW50IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHsgQ2FTdmdQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY2Etc3ZnLnBpcGUnO1xuaW1wb3J0IHtcbiAgICBNYXBEcm9wZG93bkNvbnRlbnRQaXBlLFxuICAgIE1hcERyb3Bkb3duQ2x1c3RlckNvbnRlbnRQaXBlLFxuICAgIE1hcERyb3Bkb3duVmFsdWVQaXBlLFxufSBmcm9tICcuL3BpcGVzJztcblxuLy8gZW51bXNcbmltcG9ydCB7IGVNYXBEcm9wZG93blN0cmluZyB9IGZyb20gJy4vZW51bXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1jYS1tYXAtZHJvcGRvd24nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvL21vZHVsZXNcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgTmdiVG9vbHRpcCxcbiAgICAgICAgLy8gY29tcG9uZW50c1xuICAgICAgICBDYUFwcFRvb2x0aXBWMkNvbXBvbmVudCxcbiAgICAgICAgLy8gcGlwZXNcbiAgICAgICAgQ2FTdmdQaXBlLFxuICAgICAgICBNYXBEcm9wZG93bkNvbnRlbnRQaXBlLFxuICAgICAgICBNYXBEcm9wZG93bkNsdXN0ZXJDb250ZW50UGlwZSxcbiAgICAgICAgTWFwRHJvcGRvd25WYWx1ZVBpcGUsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2EtbWFwLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS1tYXAtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtTdmdJY29uUmVnaXN0cnlTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FNYXBEcm9wZG93bkNvbXBvbmVudDxUPiB7XG4gICAgQElucHV0KCkgaW5mb1dpbmRvd0NvbnRlbnQ/OiBNYXBEcm9wZG93bkNvbnRlbnQgfCBudWxsO1xuICAgIEBJbnB1dCgpIHNldCBtYXJrZXJEYXRhKHZhbHVlczogVCkge1xuICAgICAgICB0aGlzLl9tYXJrZXJEYXRhID0gdmFsdWVzO1xuICAgICAgICB0aGlzLmlzSGlkZGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgb25DbHVzdGVySXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25DbHVzdGVyTGlzdFNjcm9sbFRvRW5kID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvbkJhY2tCdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYm9keUFjdGlvbnM6IEV2ZW50RW1pdHRlcjxJRHJvcERvd25BY3Rpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBpc0hpZGRlbjogYm9vbGVhbiA9IHRydWU7XG4gICAgcHVibGljIGlzU2hvd0FsbERheXNBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBkYXRhOiBEcm9wRG93bkRhdGFbXSA9IHRhRGV0YWlsRHJvcGRvd25Kc29uLnRhRGV0YWlsRHJvcERvd247XG4gICAgcHVibGljIF9tYXJrZXJEYXRhOiBUIHwgbnVsbCA9IG51bGw7XG4gICAgXG4gICAgcHVibGljIG1hcERyb3Bkb3duU3ZnUm91dGVzID0gTWFwRHJvcGRvd25TdmdSb3V0ZXM7XG4gICAgcHVibGljIGVNYXBEcm9wZG93blN0cmluZyA9IGVNYXBEcm9wZG93blN0cmluZztcblxuICAgIHB1YmxpYyBzaG93SGlkZGVuRGF0YShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmV2ZW50RXZlbnRQcm9wYWdhdGlvbihldmVudCwgdHJ1ZSk7XG5cbiAgICAgICAgdGhpcy5pc0hpZGRlbiA9ICF0aGlzLmlzSGlkZGVuO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYWxsQm9keUFjdGlvbihhY3Rpb246IElEcm9wRG93bkFjdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ib2R5QWN0aW9ucy5lbWl0KGFjdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIGNsdXN0ZXJJdGVtQ2xpY2soaXRlbTogTWFwRHJvcGRvd25DbHVzdGVySXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAoaXRlbT8uaWQpIHRoaXMub25DbHVzdGVySXRlbUNsaWNrPy5lbWl0KGl0ZW0uaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBiYWNrQnV0dG9uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmVudEV2ZW50UHJvcGFnYXRpb24oZXZlbnQpO1xuXG4gICAgICAgIHRoaXMub25CYWNrQnV0dG9uQ2xpY2suZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93QWxsRGF5c0NsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2hvd0FsbERheXNBY3RpdmUgPSAhdGhpcy5pc1Nob3dBbGxEYXlzQWN0aXZlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsdXN0ZXJMaXN0U2Nyb2xsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZlbnRFdmVudFByb3BhZ2F0aW9uKGV2ZW50KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmluZm9XaW5kb3dDb250ZW50Py5jbHVzdGVyRGF0YSAmJlxuICAgICAgICAgICAgdGhpcy5pbmZvV2luZG93Q29udGVudD8uY2x1c3RlckRhdGE/Lmxlbmd0aCA+PSAyNVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICcuY2x1c3Rlci1tYXJrZXItY29udGFpbmVyJ1xuICAgICAgICAgICAgKSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHNjcm9sbEVsZW1lbnQ/Lm9mZnNldEhlaWdodCArIHNjcm9sbEVsZW1lbnQ/LnNjcm9sbFRvcCA+PVxuICAgICAgICAgICAgICAgIHNjcm9sbEVsZW1lbnQ/LnNjcm9sbEhlaWdodCAtIDEwNVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIHRoaXMub25DbHVzdGVyTGlzdFNjcm9sbFRvRW5kLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBwcmV2ZW50RXZlbnRQcm9wYWdhdGlvbihcbiAgICAgICAgZXZlbnQ6IEV2ZW50LFxuICAgICAgICBwcmV2ZW50RGVmYXVsdD86IGJvb2xlYW5cbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKHByZXZlbnREZWZhdWx0KSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG59XG4iLCJAaWYgKGluZm9XaW5kb3dDb250ZW50Py5jbHVzdGVyRGF0YSkge1xuICAgIEBpZiAoaW5mb1dpbmRvd0NvbnRlbnQ/LnNlbGVjdGVkQ2x1c3Rlckl0ZW1EYXRhKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibWFya2VyLWNvbnRhaW5lciByZWxhdGl2ZVwiXG4gICAgICAgICAgICBbY2xhc3MuZXhwYW5kZWRdPVwiIWlzSGlkZGVuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJwcmV2ZW50RXZlbnRQcm9wYWdhdGlvbigkZXZlbnQsIHRydWUpXCJcbiAgICAgICAgICAgIChtb3VzZXdoZWVsKT1cInByZXZlbnRFdmVudFByb3BhZ2F0aW9uKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICBpdGVtIG9mIGluZm9XaW5kb3dDb250ZW50Py5zZWxlY3RlZENsdXN0ZXJJdGVtRGF0YS5tYWluQ29udGVudDtcbiAgICAgICAgICAgICAgICBsZXQgaSA9ICRpbmRleDtcbiAgICAgICAgICAgICAgICB0cmFjayBpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkNvbnRlbnRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGluZm9XaW5kb3dDb250ZW50Py5zZWxlY3RlZENsdXN0ZXJJdGVtRGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleHBhbmRlZC1pbmZvXCIgW2NsYXNzLmFjdGl2ZV09XCIhaXNIaWRkZW5cIj5cbiAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgaXRlbSBvZiBpbmZvV2luZG93Q29udGVudD8uc2VsZWN0ZWRDbHVzdGVySXRlbURhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIC5leHBhbmRlZENvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gJGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0cmFjayBpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25Db250ZW50VGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBpbmZvV2luZG93Q29udGVudD8uc2VsZWN0ZWRDbHVzdGVySXRlbURhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24tYXJyb3cgYWxpZ24tc2VsZi1lbmRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5yb3RhdGUtYXJyb3ddPVwiIWlzSGlkZGVuXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJtYXBEcm9wZG93blN2Z1JvdXRlcy5jb3JuZXJEb3duQXJyb3dSb3V0ZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93SGlkZGVuRGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjbHVzdGVyLW1hcmtlci1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0xXCJcbiAgICAgICAgICAgIChjbGljayk9XCJwcmV2ZW50RXZlbnRQcm9wYWdhdGlvbigkZXZlbnQsIHRydWUpXCJcbiAgICAgICAgICAgIChtb3VzZXdoZWVsKT1cIm9uQ2x1c3Rlckxpc3RTY3JvbGwoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgIGl0ZW0gb2YgaW5mb1dpbmRvd0NvbnRlbnQ/LmNsdXN0ZXJEYXRhO1xuICAgICAgICAgICAgICAgIGxldCBpID0gJGluZGV4O1xuICAgICAgICAgICAgICAgIHRyYWNrIGlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJDb250ZW50VGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbn0gQGVsc2Uge1xuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJtYXJrZXItY29udGFpbmVyIHJlbGF0aXZlXCJcbiAgICAgICAgW2NsYXNzLmV4cGFuZGVkXT1cIiFpc0hpZGRlblwiXG4gICAgICAgIChjbGljayk9XCJwcmV2ZW50RXZlbnRQcm9wYWdhdGlvbigkZXZlbnQsIHRydWUpXCJcbiAgICAgICAgKG1vdXNld2hlZWwpPVwicHJldmVudEV2ZW50UHJvcGFnYXRpb24oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICBAZm9yIChpdGVtIG9mIGluZm9XaW5kb3dDb250ZW50Py5tYWluQ29udGVudDsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGkpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkNvbnRlbnRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IF9tYXJrZXJEYXRhLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleHBhbmRlZC1pbmZvXCIgW2NsYXNzLmFjdGl2ZV09XCIhaXNIaWRkZW5cIj5cbiAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgIGl0ZW0gb2YgaW5mb1dpbmRvd0NvbnRlbnQ/LmV4cGFuZGVkQ29udGVudDtcbiAgICAgICAgICAgICAgICBsZXQgaSA9ICRpbmRleDtcbiAgICAgICAgICAgICAgICB0cmFjayBpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkNvbnRlbnRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IF9tYXJrZXJEYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1hcnJvdyBhbGlnbi1zZWxmLWVuZFwiXG4gICAgICAgICAgICBbY2xhc3Mucm90YXRlLWFycm93XT1cIiFpc0hpZGRlblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgIFtzcmNdPVwibWFwRHJvcGRvd25TdmdSb3V0ZXMuY29ybmVyRG93bkFycm93Um91dGVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93SGlkZGVuRGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbn1cblxuPG5nLXRlbXBsYXRlICNjbHVzdGVyQ29udGVudFRlbXBsYXRlIGxldC1jb250ZW50PVwiY29udGVudFwiPlxuICAgIEBsZXQgaXRlbSA9IGNvbnRlbnQgfCBtYXBEcm9wZG93bkNsdXN0ZXJDb250ZW50VHlwZTtcbiAgICBAaWYgKGl0ZW0pIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGNsdXN0ZXItbWFya2VyLWl0ZW1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsdXN0ZXJJdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICAgICdtYXgtd2lkdGgnOiBpdGVtLmZhdm91cml0ZSA/ICdjYWxjKDEwMCUgLSAxOHB4KScgOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLmlzQ2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggc3ZnLXNpemUtMThcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJtYXBEcm9wZG93blN2Z1JvdXRlcy5wZXJtYW5lbnRseUNsb3NlZFJvdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQgdXBwZXJjYXNlIHRleHQtZWxsaXBzaXNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5mYXZvdXJpdGUpIHtcbiAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggc3ZnLXNpemUtMThcIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIm1hcERyb3Bkb3duU3ZnUm91dGVzLmZhdm9yaXRlUm91dGVcIlxuICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duQ29udGVudFRlbXBsYXRlIGxldC1jb250ZW50PVwiY29udGVudFwiIGxldC1kYXRhPVwiZGF0YVwiPlxuICAgIEBsZXQgaXRlbSA9IGNvbnRlbnQgfCBtYXBEcm9wZG93bkNvbnRlbnRUeXBlO1xuICAgIEBpZiAoaXRlbSkge1xuICAgICAgICBAaWYgKCFpdGVtLnNpZGVCeVNpZGVJbmZvKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25Db250ZW50SXRlbVRlbXBsYXRlcztcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDwhLS0gU2lkZSBieSBTaWRlIERhdGEgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDwhLS0gTGVmdCBTaWRlIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5zaWRlQnlTaWRlSW5mby5sZWZ0U2lkZSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25Db250ZW50SXRlbVRlbXBsYXRlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogaXRlbS5zaWRlQnlTaWRlSW5mbz8ubGVmdFNpZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8IS0tIFJpZ2h0IFNpZGUgLS0+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLnNpZGVCeVNpZGVJbmZvLnJpZ2h0U2lkZSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25Db250ZW50SXRlbVRlbXBsYXRlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogaXRlbS5zaWRlQnlTaWRlSW5mbz8ucmlnaHRTaWRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgICAjZHJvcGRvd25Db250ZW50SXRlbVRlbXBsYXRlc1xuICAgIGxldC1jb250ZW50PVwiY29udGVudFwiXG4gICAgbGV0LWRhdGE9XCJkYXRhXCJcbj5cbiAgICBAbGV0IGl0ZW0gPSBjb250ZW50IHwgbWFwRHJvcGRvd25Db250ZW50VHlwZTtcbiAgICBAaWYgKGl0ZW0pIHtcbiAgICAgICAgQHN3aXRjaCAoaXRlbT8udGVtcGxhdGUpIHtcbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuSEVBREVSX1RJVExFKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhlYWRpbmcgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhlYWRlci10ZXh0LWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmhhc0JhY2tCdXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyLWJhY2stYnV0dG9uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJiYWNrQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IHN2Zy1zaXplLTE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwibWFwRHJvcGRvd25TdmdSb3V0ZXMuYmFja0J1dHRvblJvdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhlYWRlciBjYS1mb250LWV4dHJhLWJvbGQgZGFyay1ncmF5LXRleHQge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc1RleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0YVtpdGVtLmZpZWxkXSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBSYXRpbmcgUmV2aWV3IC0tPlxuICAgICAgICAgICAgQGNhc2UgKGVNYXBEcm9wZG93blN0cmluZy5SQVRJTkdfUkVWSUVXKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGFsaWduLWNvbnRlbnQtY2VudGVyIGdhcC0zIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm9wYWNpdHktNDBdPVwiIWRhdGFbaXRlbS5maWVsZF0ubGlrZUNvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyYXRpbmctaWNvbiBsaWtlLWljb24gZC1mbGV4IHN2Zy1zaXplLTE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImRhdGFbaXRlbS5maWVsZF0uaGFzTGlrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwibWFwRHJvcGRvd25TdmdSb3V0ZXMubGlrZVJvdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNtYWxsLXRleHQgZGFyay1ncmF5LXRleHQgY2EtZm9udC1zZW1pLWJvbGQgdXNlci1zZWxlY3Qtbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGRhdGFbaXRlbS5maWVsZF0ubGlrZUNvdW50IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5vcGFjaXR5LTQwXT1cIiFkYXRhW2l0ZW0uZmllbGRdLmRpc2xpa2VDb3VudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmF0aW5nLWljb24gZGlzbGlrZS1pY29uIGQtZmxleCBzdmctc2l6ZS0xNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJkYXRhW2l0ZW0uZmllbGRdLmhhc0Rpc2xpa2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwibWFwRHJvcGRvd25TdmdSb3V0ZXMuZGlzbGlrZVJvdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNtYWxsLXRleHQgZGFyay1ncmF5LXRleHQgY2EtZm9udC1zZW1pLWJvbGQgdXNlci1zZWxlY3Qtbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGRhdGFbaXRlbS5maWVsZF0uZGlzbGlrZUNvdW50IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5vcGFjaXR5LTQwXT1cIiFkYXRhW2l0ZW0uZmllbGRdLnJldmlld0NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyYXRpbmctaWNvbiByZXZpZXctaWNvbiBkLWZsZXggc3ZnLXNpemUtMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwibWFwRHJvcGRvd25TdmdSb3V0ZXMucmV2aWV3Um91dGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic21hbGwtdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LXNlbWktYm9sZCB1c2VyLXNlbGVjdC1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgZGF0YVtpdGVtLmZpZWxkXS5yZXZpZXdDb3VudCA/PyAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIEJvcmRlciBEaXZpZGVyIC0tPlxuICAgICAgICAgICAgQGNhc2UgKGVNYXBEcm9wZG93blN0cmluZy5ESVZJREVSKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIFJlcGFpciBTaG9wIFNlcnZpY2VzIC0tPlxuICAgICAgICAgICAgQGNhc2UgKGVNYXBEcm9wZG93blN0cmluZy5SRVBBSVJfU0hPUF9TRVJWSUNFUykge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZSBvZiBkYXRhW2l0ZW0uZmllbGRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBCYWNrZ3JvdW5kXT1cIicjNDI0MjQyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21haW5DYVRvb2x0aXBdPVwic2VydmljZS5zZXJ2aWNlVHlwZS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVwYWlyLXNlcnZpY2UtaWNvbiBzdmctc2l6ZS0xOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VydmljZS5hY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZS5sb2dvTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2FTdmc6ICdjb21tb24nIDogJ3JlcGFpci1zZXJ2aWNlcydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gSWNvbiBhbmQgVGV4dCAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuSUNPTl9URVhUKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBnYXAtMSB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0udXJsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwQmFja2dyb3VuZF09XCInIzQyNDI0MidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYWluQ2FUb29sdGlwXT1cIml0ZW0uaWNvblRvb2x0aXBUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVUb29sdGlwXT1cIiFpdGVtLmljb25Ub29sdGlwVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHN2Zy1zaXplLTE4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpdGVtLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhW2l0ZW0uZmllbGRdIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBUaXRsZSAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuVElUTEUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVndWxhci10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtZXh0cmEtYm9sZCB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc1RleHRcbiAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZGF0YVtpdGVtLmZpZWxkXSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIFRpdGxlIGFuZCBDb3VudCAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuVElUTEVfQ09VTlQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVndWxhci10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtZXh0cmEtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudC1udW1iZXIgd2hpdGUtdGV4dCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0YVtpdGVtLmZpZWxkXSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBNb25leSBUZXh0ICAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuTU9ORVlfVEVYVCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWd1bGFyLXRleHQgY2EtZm9udC1ib2xkIGJsdWUtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPy5baXRlbS5maWVsZF0gIT09ICcnID8gZGF0YVtpdGVtLmZpZWxkXSA6ICckMCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVndWxhci10ZXh0IGxpZ2h0LWdyYXktdGV4dCBjYS1mb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gT3BlbiBIb3VycyAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuT1BFTl9IT1VSUykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQgY2EtZm9udC1leHRyYS1ib2xkIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc1RleHRcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wZW4taG91cnMtZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2l0ZW0uZmllbGRdPy5vcGVuSG91cnNUb2RheSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpc1Nob3dBbGxEYXlzQWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNtYWxsLXRleHQgZGFyay1ncmF5LXRleHQgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0YVtpdGVtLmZpZWxkXS5vcGVuSG91cnNUb2RheS5zdGF0dXMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVndWxhci10ZXh0IGRhcmstZ3JheS10ZXh0IHRleHQtZWxsaXBzaXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhW2l0ZW0uZmllbGRdLm9wZW5Ib3Vyc1RvZGF5LmluZm8gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZGF0YVtpdGVtLmZpZWxkXT8ub3BlbkhvdXJzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGlzU2hvd0FsbERheXNBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXkgb2YgZGF0YVtpdGVtLmZpZWxkXS5vcGVuSG91cnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaSA9ICRpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrIGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbC10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXkuZGF5T2ZXZWVrIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlZ3VsYXItdGV4dCBkYXJrLWdyYXktdGV4dCB0ZXh0LWVsbGlwc2lzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXkuc3RhcnRUaW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIC0gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5LmVuZFRpbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC0xIGp1c3RpZnktY29udGVudC1lbmQgc2hvdy1hbGwtZGF5cy1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93QWxsRGF5c0NsaWNrKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBzdmctc2l6ZS0xNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRHJvcGRvd25TdmdSb3V0ZXMuYWNjaWRlbnRDYWxlbmRlclJvdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVndWxhci10ZXh0IGdyYXktdGV4dCBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTaG93QWxsRGF5c0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnU2hvdyB0b2RheSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ1Nob3cgYWxsIGRheXMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gVGV4dCBhbmQgQ291bnQgLS0+XG4gICAgICAgICAgICBAY2FzZSAoZU1hcERyb3Bkb3duU3RyaW5nLlRFWFRfQ09VTlQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVndWxhci10ZXh0IHt7IGl0ZW0uY3VzdG9tQ2xhc3NUZXh0IH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlZ3VsYXItdGV4dCBjYS1mb250LXNlbWktYm9sZCB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGEgfCBtYXBEcm9wZG93blZhbHVlOiBpdGVtIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIFN1YnRpdGxlIC0tPlxuICAgICAgICAgICAgQGNhc2UgKGVNYXBEcm9wZG93blN0cmluZy5TVUJUSVRMRSkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQgY2EtZm9udC1leHRyYS1ib2xkIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzVGV4dFxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gUmVndWxhciBUZXh0IC0tPlxuICAgICAgICAgICAgQGNhc2UgKGVNYXBEcm9wZG93blN0cmluZy5URVhUKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXItdGV4dCBibGFjay10ZXh0IHt7IGl0ZW0uY3VzdG9tQ2xhc3NUZXh0IH19XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGRhdGEgfCBtYXBEcm9wZG93blZhbHVlOiBpdGVtIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gU21hbGwgU3VidGl0bGUgLS0+XG4gICAgICAgICAgICBAY2FzZSAoZU1hcERyb3Bkb3duU3RyaW5nLlNNQUxMX1NVQlRJVExFKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNtYWxsLXRleHQgZGFyay1ncmF5LXRleHQge3sgaXRlbS5jdXN0b21DbGFzc1RleHQgfX1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbWFwLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC1kcm9wZG93bi9jYS1tYXAtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFwLWRyb3Bkb3duL2NhLW1hcC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLFVBQVU7QUFDVixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELGFBQWE7QUFDYixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUV4SCxPQUFPO0FBQ1AsT0FBTyxvQkFBb0IsTUFBTSw4Q0FBOEMsQ0FBQztBQUVoRixhQUFhO0FBQ2IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFVM0UsUUFBUTtBQUNSLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixvQkFBb0IsR0FDdkIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXZFLFFBQVE7QUFDUixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7QUEwQjdDLE1BQU0sT0FBTyxzQkFBc0I7SUF4Qm5DO1FBdUNjLHVCQUFrQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlELDZCQUF3QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QyxnQkFBVyxHQUFtQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBFLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBRXJDLFNBQUksR0FBbUIsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUM7UUFDN0QsZ0JBQVcsR0FBYSxJQUFJLENBQUM7UUFDN0IsdUJBQWtCLEdBQThCLElBQUksQ0FBQztRQUNyRCx1QkFBa0IsR0FBc0MsSUFBSSxDQUFDO1FBRTdELHlCQUFvQixHQUFHLG9CQUFvQixDQUFDO1FBQzVDLHVCQUFrQixHQUFHLGtCQUFrQixDQUFDO0tBZ0ZsRDtJQTVHRyxJQUFhLGlCQUFpQixDQUFDLE1BQWlDO1FBQzVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFFakMsSUFBSSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLGNBQWM7WUFDckQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBYSxVQUFVLENBQUMsTUFBUztRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUVyQixJQUFJLE1BQU0sRUFBRSxjQUFjLENBQUMsZ0JBQWdCLENBQUM7WUFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFrQk0sY0FBYyxDQUFDLEtBQVk7UUFDOUIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQXdCO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUE0QjtRQUNoRCxJQUFJLElBQUksRUFBRSxFQUFFO1lBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFZO1FBQy9CLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLGdCQUFnQjtRQUNuQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDekQsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQVk7UUFDbkMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBDLElBQ0ksSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVc7WUFDcEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLElBQUksRUFBRSxFQUNwRCxDQUFDO1lBQ0MsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FDeEMsMkJBQTJCLENBQ2YsQ0FBQztZQUVqQixJQUNJLGFBQWEsRUFBRSxZQUFZLEdBQUcsYUFBYSxFQUFFLFNBQVM7Z0JBQ3RELGFBQWEsRUFBRSxZQUFZLEdBQUcsR0FBRztnQkFFakMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdDLENBQUM7SUFDTCxDQUFDO0lBRU0sdUJBQXVCLENBQzFCLEtBQVksRUFDWixjQUF3QjtRQUV4QixJQUFJLGNBQWM7WUFBRSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDM0MsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxVQUFhO1FBQ2pDLE1BQU0sRUFDRixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IsUUFBUSxFQUNSLGNBQWMsRUFDZCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGNBQWMsR0FDakIsR0FBRyxVQUF3QyxDQUFDO1FBRTdDLElBQUksVUFBVTtZQUNWLElBQUksQ0FBQyxrQkFBa0IsR0FBRztnQkFDdEIsY0FBYztnQkFDZCxvQkFBb0I7Z0JBQ3BCLHFCQUFxQjtnQkFDckIsYUFBYTtnQkFDYixRQUFRO2dCQUNSLGNBQWM7Z0JBQ2QsZUFBZTtnQkFDZixnQkFBZ0I7Z0JBQ2hCLGNBQWM7Z0JBQ2QsU0FBUyxFQUFFLElBQUk7YUFDbEIsQ0FBQztJQUNWLENBQUM7K0dBNUdRLHNCQUFzQjttR0FBdEIsc0JBQXNCLGlVQUZwQixDQUFDLHNCQUFzQixDQUFDLDBCQzdEdkMsOGh2QkF3bEJBO2dCRDdpQlEsU0FBUztnQkFDVCxZQUFZLDZVQUNaLG9CQUFvQixpT0FDcEIsVUFBVTtnQkFDVixhQUFhO2dCQUNiLHVCQUF1QixxT0FDdkIsZ0NBQWdDO2dCQUNoQyxRQUFRO2dCQUNSLFNBQVMseUNBQ1Qsc0JBQXNCLDBEQUN0Qiw2QkFBNkIsaUVBQzdCLG9CQUFvQixvREFFcEIsa0JBQWtCLHNEQUNsQixrQkFBa0I7OzRGQU1iLHNCQUFzQjtrQkF4QmxDLFNBQVM7K0JBQ0kscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDTCxTQUFTO3dCQUNULFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2QixnQ0FBZ0M7d0JBQ2hDLFFBQVE7d0JBQ1IsU0FBUzt3QkFDVCxzQkFBc0I7d0JBQ3RCLDZCQUE2Qjt3QkFDN0Isb0JBQW9CO3dCQUNwQixRQUFRO3dCQUNSLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3FCQUNyQixhQUdVLENBQUMsc0JBQXNCLENBQUM7OEJBR3RCLGlCQUFpQjtzQkFBN0IsS0FBSztnQkFNTyxVQUFVO3NCQUF0QixLQUFLO2dCQVFJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBtb2R1bGVzXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhclN2Z0ljb25Nb2R1bGUsIFN2Z0ljb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLXN2Zy1pY29uJztcbmltcG9ydCB7IE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IENhQXBwVG9vbHRpcFYyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2EtYXBwLXRvb2x0aXAtdjIvY2EtYXBwLXRvb2x0aXAtdjIuY29tcG9uZW50JztcbmltcG9ydCB7IENhTGFzdEZ1ZWxQcmljZVByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi4vY2EtbGFzdC1mdWVsLXByaWNlLXByb2dyZXNzL2NhLWxhc3QtZnVlbC1wcmljZS1wcm9ncmVzcy5jb21wb25lbnQnO1xuXG4vLyBqc29uXG5pbXBvcnQgdGFEZXRhaWxEcm9wZG93bkpzb24gZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2pzb24vdGEtZGV0YWlsLWRyb3Bkb3duLmpzb24nO1xuXG4vLyBzdmctcm91dGVzXG5pbXBvcnQgeyBNYXBEcm9wZG93blN2Z1JvdXRlcyB9IGZyb20gJy4uL2NhLW1hcC1kcm9wZG93bi91dGlscy9zdmctcm91dGVzJztcblxuLy8gbW9kZWxzXG5pbXBvcnQge1xuICAgIERyb3BEb3duRGF0YSxcbiAgICBJRHJvcERvd25BY3Rpb25zLFxufSBmcm9tICcuLi9jYS1kZXRhaWxzLWRyb3Bkb3duL21vZGVscy9kZXRhaWwtZHJvcGRvd24ubW9kZWwnO1xuaW1wb3J0IHsgTWFwRHJvcGRvd25DbHVzdGVySXRlbSwgTWFwRHJvcGRvd25Db250ZW50IH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgSUxhc3RGdWVsUHJpY2VQcm9ncmVzc0RhdGEgfSBmcm9tICcuLi9jYS1sYXN0LWZ1ZWwtcHJpY2UtcHJvZ3Jlc3MvaW50ZXJmYWNlcyc7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBDYVN2Z1BpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9jYS1zdmcucGlwZSc7XG5pbXBvcnQge1xuICAgIE1hcERyb3Bkb3duQ29udGVudFBpcGUsXG4gICAgTWFwRHJvcGRvd25DbHVzdGVyQ29udGVudFBpcGUsXG4gICAgTWFwRHJvcGRvd25WYWx1ZVBpcGUsXG59IGZyb20gJy4vcGlwZXMnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybWF0Q3VycmVuY3lQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvZm9ybWF0LWN1cnJlbmN5LnBpcGUnO1xuaW1wb3J0IHsgRGF0ZUZyb21TdHJpbmdQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvZGF0ZS1mcm9tLXN0cmluZy5waXBlJztcblxuLy8gZW51bXNcbmltcG9ydCB7IGVNYXBEcm9wZG93blN0cmluZyB9IGZyb20gJy4vZW51bXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1jYS1tYXAtZHJvcGRvd24nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvL21vZHVsZXNcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgTmdiVG9vbHRpcCxcbiAgICAgICAgLy8gY29tcG9uZW50c1xuICAgICAgICBDYUFwcFRvb2x0aXBWMkNvbXBvbmVudCxcbiAgICAgICAgQ2FMYXN0RnVlbFByaWNlUHJvZ3Jlc3NDb21wb25lbnQsXG4gICAgICAgIC8vIHBpcGVzXG4gICAgICAgIENhU3ZnUGlwZSxcbiAgICAgICAgTWFwRHJvcGRvd25Db250ZW50UGlwZSxcbiAgICAgICAgTWFwRHJvcGRvd25DbHVzdGVyQ29udGVudFBpcGUsXG4gICAgICAgIE1hcERyb3Bkb3duVmFsdWVQaXBlLFxuICAgICAgICBEYXRlUGlwZSxcbiAgICAgICAgRGF0ZUZyb21TdHJpbmdQaXBlLFxuICAgICAgICBGb3JtYXRDdXJyZW5jeVBpcGUsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2EtbWFwLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS1tYXAtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtTdmdJY29uUmVnaXN0cnlTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FNYXBEcm9wZG93bkNvbXBvbmVudDxUPiB7XG4gICAgQElucHV0KCkgc2V0IGluZm9XaW5kb3dDb250ZW50KHZhbHVlczogTWFwRHJvcGRvd25Db250ZW50IHwgbnVsbCkge1xuICAgICAgICB0aGlzLl9pbmZvV2luZG93Q29udGVudCA9IHZhbHVlcztcblxuICAgICAgICBpZiAodmFsdWVzPy5zZWxlY3RlZENsdXN0ZXJJdGVtRGF0YT8uZGF0YT8ucHJpY2VQZXJHYWxsb24pXG4gICAgICAgICAgICB0aGlzLnNldEZ1ZWxQcmljZURhdGEodmFsdWVzPy5zZWxlY3RlZENsdXN0ZXJJdGVtRGF0YT8uZGF0YSk7XG4gICAgfVxuICAgIEBJbnB1dCgpIHNldCBtYXJrZXJEYXRhKHZhbHVlczogVCkge1xuICAgICAgICB0aGlzLl9tYXJrZXJEYXRhID0gdmFsdWVzO1xuICAgICAgICB0aGlzLmlzSGlkZGVuID0gdHJ1ZTtcblxuICAgICAgICBpZiAodmFsdWVzPy5oYXNPd25Qcm9wZXJ0eSgncHJpY2VQZXJHYWxsb24nKSlcbiAgICAgICAgICAgIHRoaXMuc2V0RnVlbFByaWNlRGF0YSh2YWx1ZXMpO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBvbkNsdXN0ZXJJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvbkNsdXN0ZXJMaXN0U2Nyb2xsVG9FbmQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uQmFja0J1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBib2R5QWN0aW9uczogRXZlbnRFbWl0dGVyPElEcm9wRG93bkFjdGlvbnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGlzSGlkZGVuOiBib29sZWFuID0gdHJ1ZTtcbiAgICBwdWJsaWMgaXNTaG93QWxsRGF5c0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGRhdGE6IERyb3BEb3duRGF0YVtdID0gdGFEZXRhaWxEcm9wZG93bkpzb24udGFEZXRhaWxEcm9wRG93bjtcbiAgICBwdWJsaWMgX21hcmtlckRhdGE6IFQgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgX2luZm9XaW5kb3dDb250ZW50OiBNYXBEcm9wZG93bkNvbnRlbnQgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgZnVlbFByaWNlUmFuZ2VEYXRhOiBJTGFzdEZ1ZWxQcmljZVByb2dyZXNzRGF0YSB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIG1hcERyb3Bkb3duU3ZnUm91dGVzID0gTWFwRHJvcGRvd25TdmdSb3V0ZXM7XG4gICAgcHVibGljIGVNYXBEcm9wZG93blN0cmluZyA9IGVNYXBEcm9wZG93blN0cmluZztcblxuICAgIHB1YmxpYyBzaG93SGlkZGVuRGF0YShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmV2ZW50RXZlbnRQcm9wYWdhdGlvbihldmVudCwgdHJ1ZSk7XG5cbiAgICAgICAgdGhpcy5pc0hpZGRlbiA9ICF0aGlzLmlzSGlkZGVuO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYWxsQm9keUFjdGlvbihhY3Rpb246IElEcm9wRG93bkFjdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ib2R5QWN0aW9ucy5lbWl0KGFjdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIGNsdXN0ZXJJdGVtQ2xpY2soaXRlbTogTWFwRHJvcGRvd25DbHVzdGVySXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAoaXRlbT8uaWQpIHRoaXMub25DbHVzdGVySXRlbUNsaWNrPy5lbWl0KGl0ZW0uaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBiYWNrQnV0dG9uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmVudEV2ZW50UHJvcGFnYXRpb24oZXZlbnQpO1xuXG4gICAgICAgIHRoaXMub25CYWNrQnV0dG9uQ2xpY2suZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93QWxsRGF5c0NsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2hvd0FsbERheXNBY3RpdmUgPSAhdGhpcy5pc1Nob3dBbGxEYXlzQWN0aXZlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsdXN0ZXJMaXN0U2Nyb2xsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZlbnRFdmVudFByb3BhZ2F0aW9uKGV2ZW50KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLl9pbmZvV2luZG93Q29udGVudD8uY2x1c3RlckRhdGEgJiZcbiAgICAgICAgICAgIHRoaXMuX2luZm9XaW5kb3dDb250ZW50Py5jbHVzdGVyRGF0YT8ubGVuZ3RoID49IDI1XG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgJy5jbHVzdGVyLW1hcmtlci1jb250YWluZXInXG4gICAgICAgICAgICApIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgc2Nyb2xsRWxlbWVudD8ub2Zmc2V0SGVpZ2h0ICsgc2Nyb2xsRWxlbWVudD8uc2Nyb2xsVG9wID49XG4gICAgICAgICAgICAgICAgc2Nyb2xsRWxlbWVudD8uc2Nyb2xsSGVpZ2h0IC0gMTA1XG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgdGhpcy5vbkNsdXN0ZXJMaXN0U2Nyb2xsVG9FbmQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHByZXZlbnRFdmVudFByb3BhZ2F0aW9uKFxuICAgICAgICBldmVudDogRXZlbnQsXG4gICAgICAgIHByZXZlbnREZWZhdWx0PzogYm9vbGVhblxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAocHJldmVudERlZmF1bHQpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRGdWVsUHJpY2VEYXRhKG1hcmtlckRhdGE6IFQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgcHJpY2VQZXJHYWxsb24sXG4gICAgICAgICAgICBsb3dlc3RQcmljZVBlckdhbGxvbixcbiAgICAgICAgICAgIGhpZ2hlc3RQcmljZVBlckdhbGxvbixcbiAgICAgICAgICAgIHByaWNlT3V0RGF0ZWQsXG4gICAgICAgICAgICBkZWZQcmljZSxcbiAgICAgICAgICAgIGRlZkxvd2VzdFByaWNlLFxuICAgICAgICAgICAgZGVmSGlnaGVzdFByaWNlLFxuICAgICAgICAgICAgZGVmUHJpY2VPdXREYXRlZCxcbiAgICAgICAgICAgIGRpZXNlbExhc3RVc2VkLFxuICAgICAgICB9ID0gbWFya2VyRGF0YSBhcyBJTGFzdEZ1ZWxQcmljZVByb2dyZXNzRGF0YTtcblxuICAgICAgICBpZiAobWFya2VyRGF0YSlcbiAgICAgICAgICAgIHRoaXMuZnVlbFByaWNlUmFuZ2VEYXRhID0ge1xuICAgICAgICAgICAgICAgIHByaWNlUGVyR2FsbG9uLFxuICAgICAgICAgICAgICAgIGxvd2VzdFByaWNlUGVyR2FsbG9uLFxuICAgICAgICAgICAgICAgIGhpZ2hlc3RQcmljZVBlckdhbGxvbixcbiAgICAgICAgICAgICAgICBwcmljZU91dERhdGVkLFxuICAgICAgICAgICAgICAgIGRlZlByaWNlLFxuICAgICAgICAgICAgICAgIGRlZkxvd2VzdFByaWNlLFxuICAgICAgICAgICAgICAgIGRlZkhpZ2hlc3RQcmljZSxcbiAgICAgICAgICAgICAgICBkZWZQcmljZU91dERhdGVkLFxuICAgICAgICAgICAgICAgIGRpZXNlbExhc3RVc2VkLFxuICAgICAgICAgICAgICAgIGlzTWFwVmlldzogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgfVxufVxuIiwiQGlmIChfaW5mb1dpbmRvd0NvbnRlbnQ/LmNsdXN0ZXJEYXRhKSB7XG4gICAgQGlmIChfaW5mb1dpbmRvd0NvbnRlbnQ/LnNlbGVjdGVkQ2x1c3Rlckl0ZW1EYXRhKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibWFya2VyLWNvbnRhaW5lciByZWxhdGl2ZVwiXG4gICAgICAgICAgICBbY2xhc3MuZXhwYW5kZWRdPVwiIWlzSGlkZGVuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJwcmV2ZW50RXZlbnRQcm9wYWdhdGlvbigkZXZlbnQsIHRydWUpXCJcbiAgICAgICAgICAgIChtb3VzZXdoZWVsKT1cInByZXZlbnRFdmVudFByb3BhZ2F0aW9uKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICBpdGVtIG9mIF9pbmZvV2luZG93Q29udGVudD8uc2VsZWN0ZWRDbHVzdGVySXRlbURhdGEubWFpbkNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgdHJhY2sgaVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25Db250ZW50VGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBfaW5mb1dpbmRvd0NvbnRlbnQ/LnNlbGVjdGVkQ2x1c3Rlckl0ZW1EYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuZGVkLWluZm9cIiBbY2xhc3MuYWN0aXZlXT1cIiFpc0hpZGRlblwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICBpdGVtIG9mIF9pbmZvV2luZG93Q29udGVudD8uc2VsZWN0ZWRDbHVzdGVySXRlbURhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIC5leHBhbmRlZENvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gJGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0cmFjayBpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25Db250ZW50VGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBfaW5mb1dpbmRvd0NvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uc2VsZWN0ZWRDbHVzdGVySXRlbURhdGEuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWFycm93IGFsaWduLXNlbGYtZW5kXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Mucm90YXRlLWFycm93XT1cIiFpc0hpZGRlblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwibWFwRHJvcGRvd25TdmdSb3V0ZXMuY29ybmVyRG93bkFycm93Um91dGVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0hpZGRlbkRhdGEoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2x1c3Rlci1tYXJrZXItY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMVwiXG4gICAgICAgICAgICAoY2xpY2spPVwicHJldmVudEV2ZW50UHJvcGFnYXRpb24oJGV2ZW50LCB0cnVlKVwiXG4gICAgICAgICAgICAobW91c2V3aGVlbCk9XCJvbkNsdXN0ZXJMaXN0U2Nyb2xsKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICBpdGVtIG9mIF9pbmZvV2luZG93Q29udGVudD8uY2x1c3RlckRhdGE7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgdHJhY2sgaVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlckNvbnRlbnRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxufSBAZWxzZSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm1hcmtlci1jb250YWluZXIgcmVsYXRpdmVcIlxuICAgICAgICBbY2xhc3MuZXhwYW5kZWRdPVwiIWlzSGlkZGVuXCJcbiAgICAgICAgKGNsaWNrKT1cInByZXZlbnRFdmVudFByb3BhZ2F0aW9uKCRldmVudCwgdHJ1ZSlcIlxuICAgICAgICAobW91c2V3aGVlbCk9XCJwcmV2ZW50RXZlbnRQcm9wYWdhdGlvbigkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgaXRlbSBvZiBfaW5mb1dpbmRvd0NvbnRlbnQ/Lm1haW5Db250ZW50O1xuICAgICAgICAgICAgbGV0IGkgPSAkaW5kZXg7XG4gICAgICAgICAgICB0cmFjayBpXG4gICAgICAgICkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIGRyb3Bkb3duQ29udGVudFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogX21hcmtlckRhdGEsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV4cGFuZGVkLWluZm9cIiBbY2xhc3MuYWN0aXZlXT1cIiFpc0hpZGRlblwiPlxuICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgaXRlbSBvZiBfaW5mb1dpbmRvd0NvbnRlbnQ/LmV4cGFuZGVkQ29udGVudDtcbiAgICAgICAgICAgICAgICBsZXQgaSA9ICRpbmRleDtcbiAgICAgICAgICAgICAgICB0cmFjayBpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkNvbnRlbnRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IF9tYXJrZXJEYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1hcnJvdyBhbGlnbi1zZWxmLWVuZFwiXG4gICAgICAgICAgICBbY2xhc3Mucm90YXRlLWFycm93XT1cIiFpc0hpZGRlblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgIFtzcmNdPVwibWFwRHJvcGRvd25TdmdSb3V0ZXMuY29ybmVyRG93bkFycm93Um91dGVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93SGlkZGVuRGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbn1cblxuPG5nLXRlbXBsYXRlICNjbHVzdGVyQ29udGVudFRlbXBsYXRlIGxldC1jb250ZW50PVwiY29udGVudFwiPlxuICAgIEBsZXQgaXRlbSA9IGNvbnRlbnQgfCBtYXBEcm9wZG93bkNsdXN0ZXJDb250ZW50VHlwZTtcbiAgICBAaWYgKGl0ZW0pIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGNsdXN0ZXItbWFya2VyLWl0ZW1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsdXN0ZXJJdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICAgICdtYXgtd2lkdGgnOiBpdGVtLmZhdm91cml0ZSA/ICdjYWxjKDEwMCUgLSAxOHB4KScgOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLmlzQ2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggc3ZnLXNpemUtMThcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJtYXBEcm9wZG93blN2Z1JvdXRlcy5wZXJtYW5lbnRseUNsb3NlZFJvdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQgdXBwZXJjYXNlIHRleHQtZWxsaXBzaXNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgQGlmIChpdGVtLmZhdm91cml0ZSkge1xuICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBzdmctc2l6ZS0xOFwiXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwibWFwRHJvcGRvd25TdmdSb3V0ZXMuZmF2b3JpdGVSb3V0ZVwiXG4gICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZHJvcGRvd25Db250ZW50VGVtcGxhdGUgbGV0LWNvbnRlbnQ9XCJjb250ZW50XCIgbGV0LWRhdGE9XCJkYXRhXCI+XG4gICAgQGxldCBpdGVtID0gY29udGVudCB8IG1hcERyb3Bkb3duQ29udGVudFR5cGU7XG4gICAgQGlmIChpdGVtKSB7XG4gICAgICAgIEBpZiAoIWl0ZW0uc2lkZUJ5U2lkZUluZm8pIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkNvbnRlbnRJdGVtVGVtcGxhdGVzO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPCEtLSBTaWRlIGJ5IFNpZGUgRGF0YSAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBMZWZ0IFNpZGUgLS0+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLnNpZGVCeVNpZGVJbmZvLmxlZnRTaWRlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkNvbnRlbnRJdGVtVGVtcGxhdGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLnNpZGVCeVNpZGVJbmZvPy5sZWZ0U2lkZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDwhLS0gUmlnaHQgU2lkZSAtLT5cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uc2lkZUJ5U2lkZUluZm8ucmlnaHRTaWRlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkNvbnRlbnRJdGVtVGVtcGxhdGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBpdGVtLnNpZGVCeVNpZGVJbmZvPy5yaWdodFNpZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAgICNkcm9wZG93bkNvbnRlbnRJdGVtVGVtcGxhdGVzXG4gICAgbGV0LWNvbnRlbnQ9XCJjb250ZW50XCJcbiAgICBsZXQtZGF0YT1cImRhdGFcIlxuPlxuICAgIEBsZXQgaXRlbSA9IGNvbnRlbnQgfCBtYXBEcm9wZG93bkNvbnRlbnRUeXBlO1xuICAgIEBpZiAoaXRlbSkge1xuICAgICAgICBAc3dpdGNoIChpdGVtPy50ZW1wbGF0ZSkge1xuICAgICAgICAgICAgQGNhc2UgKGVNYXBEcm9wZG93blN0cmluZy5IRUFERVJfVElUTEUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGluZyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyLXRleHQtY29udGFpbmVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEgdy0xMDBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaGFzQmFja0J1dHRvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXItYmFjay1idXR0b24gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJhY2tCdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggc3ZnLXNpemUtMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJtYXBEcm9wZG93blN2Z1JvdXRlcy5iYWNrQnV0dG9uUm91dGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXIgY2EtZm9udC1leHRyYS1ib2xkIGRhcmstZ3JheS10ZXh0IHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGFbaXRlbS5maWVsZF0gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gUmF0aW5nIFJldmlldyAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuUkFUSU5HX1JFVklFVykge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBhbGlnbi1jb250ZW50LWNlbnRlciBnYXAtMyB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5vcGFjaXR5LTQwXT1cIiFkYXRhW2l0ZW0uZmllbGRdLmxpa2VDb3VudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmF0aW5nLWljb24gbGlrZS1pY29uIGQtZmxleCBzdmctc2l6ZS0xNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJkYXRhW2l0ZW0uZmllbGRdLmhhc0xpa2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIm1hcERyb3Bkb3duU3ZnUm91dGVzLmxpa2VSb3V0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbC10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtc2VtaS1ib2xkIHVzZXItc2VsZWN0LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBkYXRhW2l0ZW0uZmllbGRdLmxpa2VDb3VudCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mub3BhY2l0eS00MF09XCIhZGF0YVtpdGVtLmZpZWxkXS5kaXNsaWtlQ291bnRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJhdGluZy1pY29uIGRpc2xpa2UtaWNvbiBkLWZsZXggc3ZnLXNpemUtMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiZGF0YVtpdGVtLmZpZWxkXS5oYXNEaXNsaWtlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIm1hcERyb3Bkb3duU3ZnUm91dGVzLmRpc2xpa2VSb3V0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbC10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtc2VtaS1ib2xkIHVzZXItc2VsZWN0LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBkYXRhW2l0ZW0uZmllbGRdLmRpc2xpa2VDb3VudCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mub3BhY2l0eS00MF09XCIhZGF0YVtpdGVtLmZpZWxkXS5yZXZpZXdDb3VudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmF0aW5nLWljb24gcmV2aWV3LWljb24gZC1mbGV4IHN2Zy1zaXplLTE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIm1hcERyb3Bkb3duU3ZnUm91dGVzLnJldmlld1JvdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNtYWxsLXRleHQgZGFyay1ncmF5LXRleHQgY2EtZm9udC1zZW1pLWJvbGQgdXNlci1zZWxlY3Qtbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGRhdGFbaXRlbS5maWVsZF0ucmV2aWV3Q291bnQgPz8gMCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBCb3JkZXIgRGl2aWRlciAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuRElWSURFUikge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBSZXBhaXIgU2hvcCBTZXJ2aWNlcyAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuUkVQQUlSX1NIT1BfU0VSVklDRVMpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2Ugb2YgZGF0YVtpdGVtLmZpZWxkXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpID0gJGluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgaVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwQmFja2dyb3VuZF09XCInIzQyNDI0MidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYWluQ2FUb29sdGlwXT1cInNlcnZpY2Uuc2VydmljZVR5cGUubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlcGFpci1zZXJ2aWNlLWljb24gc3ZnLXNpemUtMThcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInNlcnZpY2UuYWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2UubG9nb05hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGNhU3ZnOiAnY29tbW9uJyA6ICdyZXBhaXItc2VydmljZXMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIEljb24gYW5kIFRleHQgLS0+XG4gICAgICAgICAgICBAY2FzZSAoZU1hcERyb3Bkb3duU3RyaW5nLklDT05fVEVYVCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQgZ2FwLTEge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLnVybCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcEJhY2tncm91bmRdPVwiJyM0MjQyNDInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFpbkNhVG9vbHRpcF09XCJpdGVtLmljb25Ub29sdGlwVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlVG9vbHRpcF09XCIhaXRlbS5pY29uVG9vbHRpcFRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBzdmctc2l6ZS0xOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaXNEYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKGRhdGFbaXRlbS5maWVsZF0gfCBkYXRlOiAnTU0vZGQveXknKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChkYXRhIHwgbWFwRHJvcGRvd25WYWx1ZTogaXRlbSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBUaXRsZSAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuVElUTEUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVndWxhci10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtZXh0cmEtYm9sZCB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc1RleHRcbiAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZGF0YVtpdGVtLmZpZWxkXSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIFRpdGxlIGFuZCBDb3VudCAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuVElUTEVfQ09VTlQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVndWxhci10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtZXh0cmEtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudC1udW1iZXIgd2hpdGUtdGV4dCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0YVtpdGVtLmZpZWxkXSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBNb25leSBUZXh0ICAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuTU9ORVlfVEVYVCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWd1bGFyLXRleHQgY2EtZm9udC1ib2xkIGJsdWUtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPy5baXRlbS5maWVsZF0gIT09ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKGRhdGFbaXRlbS5maWVsZF0gfCBmb3JtYXRDdXJyZW5jeSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJDAnXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXItdGV4dCBsaWdodC1ncmF5LXRleHQgY2EtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIE9wZW4gSG91cnMgLS0+XG4gICAgICAgICAgICBAY2FzZSAoZU1hcERyb3Bkb3duU3RyaW5nLk9QRU5fSE9VUlMpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVndWxhci10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtZXh0cmEtYm9sZCB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcGVuLWhvdXJzLWdyaWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtpdGVtLmZpZWxkXT8ub3BlbkhvdXJzVG9kYXkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhaXNTaG93QWxsRGF5c0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbC10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGFbaXRlbS5maWVsZF0ub3BlbkhvdXJzVG9kYXkuc3RhdHVzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlZ3VsYXItdGV4dCBkYXJrLWdyYXktdGV4dCB0ZXh0LWVsbGlwc2lzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0YVtpdGVtLmZpZWxkXS5vcGVuSG91cnNUb2RheS5pbmZvIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGRhdGFbaXRlbS5maWVsZF0/Lm9wZW5Ib3Vycz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpc1Nob3dBbGxEYXlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5IG9mIGRhdGFbaXRlbS5maWVsZF0ub3BlbkhvdXJzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic21hbGwtdGV4dCBkYXJrLWdyYXktdGV4dCBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF5LmRheU9mV2VlayB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgZGFyay1ncmF5LXRleHQgdGV4dC1lbGxpcHNpc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5LnN0YXJ0VGltZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAtICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheS5lbmRUaW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtMSBqdXN0aWZ5LWNvbnRlbnQtZW5kIHNob3ctYWxsLWRheXMtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0FsbERheXNDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggc3ZnLXNpemUtMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERyb3Bkb3duU3ZnUm91dGVzLmFjY2lkZW50Q2FsZW5kZXJSb3V0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlZ3VsYXItdGV4dCBncmF5LXRleHQgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2hvd0FsbERheXNBY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ1Nob3cgdG9kYXknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdTaG93IGFsbCBkYXlzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIFRleHQgYW5kIENvdW50IC0tPlxuICAgICAgICAgICAgQGNhc2UgKGVNYXBEcm9wZG93blN0cmluZy5URVhUX0NPVU5UKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VzdG9tQ2xhc3NDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXItdGV4dCB7eyBpdGVtLmN1c3RvbUNsYXNzVGV4dCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWd1bGFyLXRleHQgY2EtZm9udC1zZW1pLWJvbGQge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmN1c3RvbUNsYXNzVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhIHwgbWFwRHJvcGRvd25WYWx1ZTogaXRlbSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBTdWJ0aXRsZSAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuU1VCVElUTEUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVndWxhci10ZXh0IGRhcmstZ3JheS10ZXh0IGNhLWZvbnQtZXh0cmEtYm9sZCB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jdXN0b21DbGFzc1RleHRcbiAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIFJlZ3VsYXIgVGV4dCAtLT5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuVEVYVCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWd1bGFyLXRleHQgYmxhY2stdGV4dCB7eyBpdGVtLmN1c3RvbUNsYXNzVGV4dCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBkYXRhIHwgbWFwRHJvcGRvd25WYWx1ZTogaXRlbSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIFNtYWxsIFN1YnRpdGxlIC0tPlxuICAgICAgICAgICAgQGNhc2UgKGVNYXBEcm9wZG93blN0cmluZy5TTUFMTF9TVUJUSVRMRSkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbC10ZXh0IGRhcmstZ3JheS10ZXh0IHt7IGl0ZW0uY3VzdG9tQ2xhc3NUZXh0IH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBEYXRlIC0tPlxuICAgICAgICAgICAgQGNhc2UgKGVNYXBEcm9wZG93blN0cmluZy5EQVRFKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ3VsYXItdGV4dCBibGFjay10ZXh0IHt7IGl0ZW0uY3VzdG9tQ2xhc3NUZXh0IH19XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGRhdGFbaXRlbS5maWVsZF0gfCBkYXRlIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBjYXNlIChlTWFwRHJvcGRvd25TdHJpbmcuRlVFTF9QUklDRV9SQU5HRSkge1xuICAgICAgICAgICAgICAgIEBpZiAoZnVlbFByaWNlUmFuZ2VEYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBnYXAtMVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zaXplLTE0IHRleHQtY29sb3ItYmxhY2sgY2EtZm9udC1zZW1pLWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1ZWxQcmljZVJhbmdlRGF0YS5wcmljZVBlckdhbGxvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZm9ybWF0Q3VycmVuY3lcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zaXplLTExIHRleHQtY29sb3ItbXV0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1ZWxQcmljZVJhbmdlRGF0YS5kaWVzZWxMYXN0VXNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZGF0ZUZyb21TdHJpbmdQaXBlOiAndGltZS1hZ28nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jYS1sYXN0LWZ1ZWwtcHJpY2UtcHJvZ3Jlc3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFzdEZ1ZWxQcmljZURhdGFdPVwiZnVlbFByaWNlUmFuZ2VEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2FwcC1jYS1sYXN0LWZ1ZWwtcHJpY2UtcHJvZ3Jlc3M+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=