ca-components 1.3.34 → 1.3.35

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 (154) hide show
  1. package/assets/scss/background.scss +44 -0
  2. package/assets/scss/border-radius.scss +17 -0
  3. package/assets/scss/filters.scss +151 -0
  4. package/assets/scss/icons.scss +39 -0
  5. package/assets/scss/spacing.scss +59 -0
  6. package/assets/scss/styles.scss +22 -1
  7. package/assets/scss/text-selection.scss +15 -0
  8. package/assets/theme/variables.scss +1 -1
  9. package/esm2022/lib/ca-components.module.mjs +25 -1
  10. package/esm2022/lib/components/ca-activity-log-list/ca-activity-log-list.component.mjs +3 -3
  11. package/esm2022/lib/components/ca-autoclose-popover/ca-autoclose-popover.component.mjs +6 -3
  12. package/esm2022/lib/components/ca-checkbox/ca-checkbox.component.mjs +2 -2
  13. package/esm2022/lib/components/ca-collapsible-filter/ca-collapsible-filter.component.mjs +2 -2
  14. package/esm2022/lib/components/ca-comment/ca-comment.component.mjs +2 -2
  15. package/esm2022/lib/components/ca-comment/modals/comment-modal/comment-modal.component.mjs +3 -3
  16. package/esm2022/lib/components/ca-custom-scrollbar/ca-custom-scrollbar.component.mjs +3 -3
  17. package/esm2022/lib/components/ca-details-dropdown/ca-details-dropdown.component.mjs +2 -2
  18. package/esm2022/lib/components/ca-dropdown-menu/ca-dropdown-menu.component.mjs +2 -2
  19. package/esm2022/lib/components/ca-filters/ca-filter.component.mjs +4 -4
  20. package/esm2022/lib/components/ca-filters/components/ca-dispatcher-filter/ca-dispatcher-filter.component.mjs +3 -3
  21. package/esm2022/lib/components/ca-filters/components/ca-location-filter/ca-location-filter.component.mjs +2 -2
  22. package/esm2022/lib/components/ca-filters/components/ca-money-filter/ca-money-filter.component.mjs +2 -2
  23. package/esm2022/lib/components/ca-filters/components/ca-pm-filter/ca-pm-filter.component.mjs +2 -2
  24. package/esm2022/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.mjs +2 -2
  25. package/esm2022/lib/components/ca-filters/components/ca-status-filter/ca-status-filter.component.mjs +2 -2
  26. package/esm2022/lib/components/ca-filters/components/ca-time-filter/ca-time-filter.component.mjs +4 -4
  27. package/esm2022/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.mjs +2 -2
  28. package/esm2022/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.mjs +2 -2
  29. package/esm2022/lib/components/ca-filters/components/ca-user-filter/ca-user-filter.component.mjs +2 -2
  30. package/esm2022/lib/components/ca-filters/components/ca-violation-filter/ca-violation-filter.component.mjs +2 -2
  31. package/esm2022/lib/components/ca-filters/pipes/index.mjs +7 -0
  32. package/esm2022/lib/components/ca-filters/utils/helpers/index.mjs +2 -1
  33. package/esm2022/lib/components/ca-filters/utils/helpers/time-filter.helper.mjs +117 -0
  34. package/esm2022/lib/components/ca-filters/utils/svg-routes/index.mjs +2 -0
  35. package/esm2022/lib/components/ca-input/ca-input.component.mjs +2 -2
  36. package/esm2022/lib/components/ca-input/components/ca-input-placeholder-icon/ca-input-placeholder-icon.component.mjs +3 -3
  37. package/esm2022/lib/components/ca-input/input-test/input-test.component.mjs +2 -2
  38. package/esm2022/lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component.mjs +2 -2
  39. package/esm2022/lib/components/ca-input-datetime-picker/ca-input-datetime-picker.component.mjs +2 -2
  40. package/esm2022/lib/components/ca-input-dropdown/ca-input-dropdown.component.mjs +2 -2
  41. package/esm2022/lib/components/ca-input-note/ca-input-note.component.mjs +2 -2
  42. package/esm2022/lib/components/ca-logo-change/ca-logo-change.component.mjs +3 -3
  43. package/esm2022/lib/components/ca-map/ca-map.component.mjs +2 -2
  44. package/esm2022/lib/components/ca-map-dropdown/ca-map-dropdown.component.mjs +2 -2
  45. package/esm2022/lib/components/ca-modal/ca-modal.component.mjs +2 -2
  46. package/esm2022/lib/components/ca-modal-button/ca-modal-button.component.mjs +3 -3
  47. package/esm2022/lib/components/ca-new-filter/ca-filter-dropdown.component.mjs +98 -0
  48. package/esm2022/lib/components/ca-new-filter/components/ca-filter-list-dropdown/ca-filter-list-dropdown.component.mjs +142 -0
  49. package/esm2022/lib/components/ca-new-filter/components/ca-filter-state-dropdown/ca-filter-state-dropdown.component.mjs +131 -0
  50. package/esm2022/lib/components/ca-new-filter/components/ca-filter-time-dropdown/ca-filter-time-dropdown.component.mjs +131 -0
  51. package/esm2022/lib/components/ca-new-filter/constant/filter-dropdown-icons.constant.mjs +87 -0
  52. package/esm2022/lib/components/ca-new-filter/constant/index.mjs +2 -0
  53. package/esm2022/lib/components/ca-new-filter/enums/filter-dropdown-types.enum.mjs +15 -0
  54. package/esm2022/lib/components/ca-new-filter/enums/filter-sorting-key.enum.mjs +6 -0
  55. package/esm2022/lib/components/ca-new-filter/enums/filter-time.enum.mjs +37 -0
  56. package/esm2022/lib/components/ca-new-filter/enums/index.mjs +4 -0
  57. package/esm2022/lib/components/ca-new-filter/interface/country.interface.mjs +2 -0
  58. package/esm2022/lib/components/ca-new-filter/interface/filter-action.interface.mjs +2 -0
  59. package/esm2022/lib/components/ca-new-filter/interface/filter-dropdown-configuration.interface.mjs +2 -0
  60. package/esm2022/lib/components/ca-new-filter/interface/filter-dropdown-list.mjs +2 -0
  61. package/esm2022/lib/components/ca-new-filter/interface/index.mjs +7 -0
  62. package/esm2022/lib/components/ca-new-filter/interface/sorting-emmiter.interface.mjs +2 -0
  63. package/esm2022/lib/components/ca-new-filter/interface/time-options.interface.mjs +2 -0
  64. package/esm2022/lib/components/ca-new-filter/pipes/filter-search.pipe.mjs +31 -0
  65. package/esm2022/lib/components/ca-new-filter/types/filter-dropdown.types.mjs +2 -0
  66. package/esm2022/lib/components/ca-new-filter/types/filter-sorting-key.type.mjs +2 -0
  67. package/esm2022/lib/components/ca-new-filter/types/filter-time.types.mjs +2 -0
  68. package/esm2022/lib/components/ca-new-filter/types/index.mjs +4 -0
  69. package/esm2022/lib/components/ca-new-filter/utils/configs/filter-dropdown-fields.config.mjs +37 -0
  70. package/esm2022/lib/components/ca-new-filter/utils/configs/index.mjs +2 -0
  71. package/esm2022/lib/components/ca-new-filter/utils/helpers/index.mjs +2 -0
  72. package/esm2022/lib/components/ca-new-filter/utils/helpers/time-filter.helper.mjs +133 -0
  73. package/esm2022/lib/components/ca-ngx-slider/ca-ngx-slider.component.mjs +2 -2
  74. package/esm2022/lib/components/ca-note/ca-note.component.mjs +2 -2
  75. package/esm2022/lib/components/ca-note-container/ca-note-container.component.mjs +2 -2
  76. package/esm2022/lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component.mjs +2 -2
  77. package/esm2022/lib/components/ca-period-content/ca-period-content.component.mjs +2 -2
  78. package/esm2022/lib/components/ca-period-content/components/ca-period-content-extra-info/ca-period-content-extra-info.component.mjs +3 -3
  79. package/esm2022/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.mjs +2 -2
  80. package/esm2022/lib/components/ca-period-content/components/ca-period-content-user-info/ca-period-content-user-info.component.mjs +3 -3
  81. package/esm2022/lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component.mjs +3 -3
  82. package/esm2022/lib/components/ca-pickup-delivery-block/components/ca-load/ca-load.component.mjs +3 -3
  83. package/esm2022/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-list/ca-load-list.component.mjs +3 -3
  84. package/esm2022/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component.mjs +3 -3
  85. package/esm2022/lib/components/ca-profile-image/ca-profile-image.component.mjs +3 -3
  86. package/esm2022/lib/components/ca-progress-bar/ca-progress-bar.component.mjs +2 -2
  87. package/esm2022/lib/components/ca-progress-expiration/ca-progress-expiration.component.mjs +2 -2
  88. package/esm2022/lib/components/ca-rating-review/ca-rating-review.component.mjs +2 -2
  89. package/esm2022/lib/components/ca-rating-review/components/ca-rating-review-user/ca-rating-review-user.component.mjs +2 -2
  90. package/esm2022/lib/components/ca-rating-review/components/ca-ratings-reviews-popup/ca-ratings-reviews-popup.component.mjs +2 -2
  91. package/esm2022/lib/components/ca-right-side-panel/components/ca-right-side-panel-company/ca-right-side-panel-company.component.mjs +3 -3
  92. package/esm2022/lib/components/ca-right-side-panel/components/ca-right-side-panel-menu/ca-right-side-panel-menu.component.mjs +3 -3
  93. package/esm2022/lib/components/ca-right-side-panel/components/ca-right-side-panel-top-bar/ca-right-side-panel-top-bar.component.mjs +3 -3
  94. package/esm2022/lib/components/ca-search-multiple-states/ca-search-multiple-states.component.mjs +3 -3
  95. package/esm2022/lib/components/ca-search-multiple-states/models/tab-data.model.mjs +1 -1
  96. package/esm2022/lib/components/ca-sort-dropdown/ca-sort-dropdown.component.mjs +21 -8
  97. package/esm2022/lib/components/ca-sort-dropdown/types/index.mjs +2 -0
  98. package/esm2022/lib/components/ca-sort-dropdown/types/sort-directions.type.mjs +2 -0
  99. package/esm2022/lib/components/ca-sort-dropdown/utils/svg-routes/ca-sort-dropdown-svg-routes.mjs +3 -2
  100. package/esm2022/lib/components/ca-spinner/ca-spinner.component.mjs +2 -2
  101. package/esm2022/lib/components/ca-tab-switch/ca-tab-switch.component.mjs +3 -3
  102. package/esm2022/lib/components/ca-todo/ca-todo.component.mjs +3 -3
  103. package/esm2022/lib/components/ca-todo/components/ca-todo-card.component.mjs +3 -3
  104. package/esm2022/lib/components/ca-tooltip-list/ca-tooltip-list.component.mjs +3 -3
  105. package/esm2022/lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component.mjs +2 -2
  106. package/esm2022/lib/components/ca-upload-files/ca-upload-files.component.mjs +3 -3
  107. package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/ca-upload-dropzone.component.mjs +3 -3
  108. package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/ca-upload-file.component.mjs +2 -2
  109. package/esm2022/lib/components/ca-upload-files/components/ca-upload-files-carousel/ca-upload-files-carousel.component.mjs +3 -3
  110. package/esm2022/public-api.mjs +8 -1
  111. package/fesm2022/ca-components.mjs +1093 -276
  112. package/fesm2022/ca-components.mjs.map +1 -1
  113. package/lib/ca-components.module.d.ts +38 -34
  114. package/lib/components/ca-autoclose-popover/ca-autoclose-popover.component.d.ts +2 -1
  115. package/lib/components/ca-filters/pipes/index.d.ts +6 -0
  116. package/lib/components/ca-filters/utils/helpers/index.d.ts +1 -0
  117. package/lib/components/ca-filters/utils/{constants/time-filter.constants.d.ts → helpers/time-filter.helper.d.ts} +14 -2
  118. package/lib/components/ca-filters/utils/svg-routes/index.d.ts +1 -0
  119. package/lib/components/ca-new-filter/ca-filter-dropdown.component.d.ts +35 -0
  120. package/lib/components/ca-new-filter/components/ca-filter-list-dropdown/ca-filter-list-dropdown.component.d.ts +43 -0
  121. package/lib/components/ca-new-filter/components/ca-filter-state-dropdown/ca-filter-state-dropdown.component.d.ts +35 -0
  122. package/lib/components/ca-new-filter/components/ca-filter-time-dropdown/ca-filter-time-dropdown.component.d.ts +43 -0
  123. package/lib/components/ca-new-filter/constant/filter-dropdown-icons.constant.d.ts +3 -0
  124. package/lib/components/ca-new-filter/constant/index.d.ts +1 -0
  125. package/lib/components/ca-new-filter/enums/filter-dropdown-types.enum.d.ts +13 -0
  126. package/lib/components/ca-new-filter/enums/filter-sorting-key.enum.d.ts +4 -0
  127. package/lib/components/ca-new-filter/enums/filter-time.enum.d.ts +35 -0
  128. package/lib/components/ca-new-filter/enums/index.d.ts +3 -0
  129. package/lib/components/ca-new-filter/interface/country.interface.d.ts +13 -0
  130. package/lib/components/ca-new-filter/interface/filter-action.interface.d.ts +18 -0
  131. package/lib/components/ca-new-filter/interface/filter-dropdown-configuration.interface.d.ts +13 -0
  132. package/lib/components/ca-new-filter/interface/filter-dropdown-list.d.ts +17 -0
  133. package/lib/components/ca-new-filter/interface/index.d.ts +6 -0
  134. package/lib/components/ca-new-filter/interface/sorting-emmiter.interface.d.ts +5 -0
  135. package/lib/components/ca-new-filter/interface/time-options.interface.d.ts +9 -0
  136. package/lib/components/ca-new-filter/pipes/filter-search.pipe.d.ts +8 -0
  137. package/lib/components/ca-new-filter/types/filter-dropdown.types.d.ts +2 -0
  138. package/lib/components/ca-new-filter/types/filter-sorting-key.type.d.ts +2 -0
  139. package/lib/components/ca-new-filter/types/filter-time.types.d.ts +2 -0
  140. package/lib/components/ca-new-filter/types/index.d.ts +3 -0
  141. package/lib/components/ca-new-filter/utils/configs/filter-dropdown-fields.config.d.ts +7 -0
  142. package/lib/components/ca-new-filter/utils/configs/index.d.ts +1 -0
  143. package/lib/components/ca-new-filter/utils/helpers/index.d.ts +1 -0
  144. package/lib/components/ca-new-filter/utils/helpers/time-filter.helper.d.ts +6 -0
  145. package/lib/components/ca-search-multiple-states/ca-search-multiple-states.component.d.ts +2 -2
  146. package/lib/components/ca-search-multiple-states/models/tab-data.model.d.ts +11 -11
  147. package/lib/components/ca-sort-dropdown/ca-sort-dropdown.component.d.ts +12 -5
  148. package/lib/components/ca-sort-dropdown/types/index.d.ts +1 -0
  149. package/lib/components/ca-sort-dropdown/types/sort-directions.type.d.ts +5 -0
  150. package/lib/components/ca-sort-dropdown/utils/svg-routes/ca-sort-dropdown-svg-routes.d.ts +2 -1
  151. package/package.json +1 -1
  152. package/public-api.d.ts +7 -0
  153. package/src/assets/ca-components/svg/common/ic_arrow_desc.svg +3 -0
  154. package/esm2022/lib/components/ca-filters/utils/constants/time-filter.constants.mjs +0 -102
@@ -411,11 +411,11 @@ export class CaFilterComponent {
411
411
  this.destroy$.complete();
412
412
  }
413
413
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaFilterComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
414
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CaFilterComponent, isStandalone: true, selector: "app-ca-filter", inputs: { type: "type", timeSubType: "timeSubType", subType: "subType", unselectedUser: "unselectedUser", userGroup: "userGroup", loadStatusOptionsArray: "loadStatusOptionsArray", truckTypeArray: "truckTypeArray", trailerTypeArray: "trailerTypeArray", pmFilterArray: "pmFilterArray", isRepairFilter: "isRepairFilter", hasNoLeftIcon: "hasNoLeftIcon", hasLeftSideIcon: "hasLeftSideIcon", hasLargeLeftIcon: "hasLargeLeftIcon", isMoneyFilter: "isMoneyFilter", isMilesFilter: "isMilesFilter", isButtonFilter: "isButtonFilter", isFuelType: "isFuelType", isLoadType: "isLoadType", isCollapsibleFilter: "isCollapsibleFilter", filterTitle: "filterTitle", icon: "icon", addressList: "addressList", usaStates: "usaStates", canadaStates: "canadaStates" }, outputs: { setFilter: "setFilter", clearAll: "clearAll" }, viewQueries: [{ propertyName: "t2", first: true, predicate: ["t2"], descendants: true }, { propertyName: "autoClose", first: true, predicate: CaAutoclosePopoverComponent, descendants: true }, { propertyName: "caStatusFilter", first: true, predicate: CaStatusFilterComponent, descendants: true }, { propertyName: "caMoneyFilter", first: true, predicate: CaMoneyFilterComponent, descendants: true }, { propertyName: "caTimeFilter", first: true, predicate: CaTimeFilterComponent, descendants: true }, { propertyName: "caDispatcherFilter", first: true, predicate: CaDispatcherFilterComponent, descendants: true }, { propertyName: "caStateFilter", first: true, predicate: CaStateFilterComponent, descendants: true }, { propertyName: "caTruckTypeFilter", first: true, predicate: CaTruckTypeFilterComponent, descendants: true }, { propertyName: "caTrailerTypeFilter", first: true, predicate: CaTrailerTypeFilterComponent, descendants: true }, { propertyName: "caPmFilter", first: true, predicate: CaPmFilterComponent, descendants: true }, { propertyName: "caCollapsibleFilter", first: true, predicate: CaCollapsibleFilterComponent, descendants: true }, { propertyName: "caLocationFilter", first: true, predicate: CaLocationFilterComponent, descendants: true }, { propertyName: "caUserFilter", first: true, predicate: CaUserFilterComponent, descendants: true }, { propertyName: "caViolationFilter", first: true, predicate: CaViolationFilterComponent, descendants: true }], ngImport: i0, template: "<div\n class=\"user-icon d-flex justify-content-center align-items-center\"\n app-ca-autoclose-popover\n [customClass]=\"'filterpopovermain'\"\n [placement]=\"isCollapsibleFilter ? 'right' : 'bottom-left'\"\n autoClose=\"outside\"\n (closeFilter)=\"onFilterClose()\"\n (openFilter)=\"onFilterShown()\"\n [ngClass]=\"{\n 'active-options': isFilterActive,\n 'clear-colors': isHoverClosed,\n 'filter-active-colors': isFilterActiveColor,\n 'active-collapsible': isCollapsibleFilter\n }\"\n (mouseenter)=\"isFilterHoveredOver = true\"\n (mouseleave)=\"isFilterHoveredOver = false\"\n>\n <div\n mainContent\n ngbTooltip\n mainCaTooltip=\"{{\n 'mainTooltip'\n | filterPopoverConditionsPipe\n : getComponentInstance()\n : caMoneyFilter\n : caStatusFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n }}\"\n position=\"bottom\"\n tooltipBackground=\"{{ isFilterActive ? '#CCCCCC' : '#2F2F2F' }}\"\n tooltipColor=\"{{ isFilterActive ? '#2F2F2F' : '#FFFFFF' }}\"\n tooltipTextAlign=\"center\"\n class=\"main-icon-holder d-flex justify-content-center align-items-center\"\n >\n <div>\n <svg-icon [src]=\"icon | caSvg : 'common'\"></svg-icon>\n </div>\n <ng-container *ngIf=\"isFilterActiveColor\">\n <ng-container *ngIf=\"!isFilterHoveredOver; else closeButton\">\n <ng-container\n *ngIf=\"!isNotDropdown() && getFilterCount(); else checkmark\"\n >\n <div\n class=\"filters-selected-value-holder d-flex justify-content-center align-items-center ta-font-extra-bold\"\n >\n {{ getFilterCount() }}\n </div>\n </ng-container>\n\n <ng-template #checkmark>\n <div\n class=\"filters-selected-value-holder d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-template #closeButton>\n <div\n class=\"filters-selected-value-holder d-flex justify-content-center align-items-center\"\n (mouseenter)=\"isHoverClosed = true\"\n (mouseleave)=\"isHoverClosed = false\"\n (click)=\"clearAllValues($event)\"\n >\n <svg-icon [src]=\"getSvgPath('cancelViolation')\"></svg-icon>\n </div>\n </ng-template>\n </ng-container>\n </div>\n\n <div popoverContent class=\"main-popover-body\">\n <ng-container *ngIf=\"isCollapsibleFilter\">\n <app-ca-collapsible-filter\n (onTagEmit)=\"setFilterValue($event)\"\n [filterArray]=\"pmFilterArray\"\n [type]=\"type\"\n ></app-ca-collapsible-filter>\n </ng-container>\n <ng-container *ngIf=\"!isButtonFilter && !isCollapsibleFilter\">\n <div\n [@showAnimation]=\"!!isFilterActive\"\n class=\"filter-holder d-flex justify-content-start align-items-start\"\n [class.state-filter]=\"type === 'stateFilter'\"\n [class.department-filter]=\"hasNoLeftIcon\"\n [class.status-filter]=\"type === 'statusFilter'\"\n [class.pm-filter]=\"hasLeftSideIcon\"\n [class.truck-icon-holder]=\"hasLargeLeftIcon\"\n [class.money-filter]=\"type === 'moneyFilter' || type === 'milesFilter'\"\n [class.location-filter]=\"type === 'locationFilter'\"\n >\n <div\n class=\"filter-header filter-text-part d-flex justify-content-between align-items-center\"\n [class.activeHeader]=\"!isSearchExpanded\"\n [class.inactiveHeader]=\"isSearchExpanded\"\n >\n <div\n class=\"user-title-text counter-padd-title d-flex align-items-center ca-font-bold\"\n >\n {{ filterTitle | uppercase }}\n\n <ng-container\n *ngIf=\"\n (type === 'dispatcherFilter' ||\n type === 'driverFilter' ||\n type === 'fuelStopFilter' ||\n type === 'brokerFilter') &&\n caDispatcherFilter?.selectedUser?.length\n \"\n >\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1\"\n >\n {{ caDispatcherFilter?.selectedUser?.length }}\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"\n 'userBox'\n | filterPopoverConditionsPipe\n : getComponentInstance()\n : caMoneyFilter\n : caStatusFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n \"\n >\n <ng-container\n *ngIf=\"\n type\n | filterConditionsUserBox\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caStatusFilter\n : caPmFilter as filterResult\n \"\n >\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1\"\n >\n {{ filterResult }}\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <ng-container\n *ngIf=\"\n 'sortItems'\n | filterPopoverConditionsPipe\n : getComponentInstance()\n : caMoneyFilter\n : caStatusFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter;\n else truckFilter\n \"\n >\n <div\n (click)=\"sortItems()\"\n class=\"user-title-text sort-text ta-font-medium d-flex align-items-center justify-content-end\"\n >\n {{\n type === 'statusFilter' ||\n type === 'dispatcherFilter' ||\n type === 'driverFilter' ||\n type === 'fuelStopFilter' ||\n type === 'brokerFilter'\n ? 'Count'\n : 'Name'\n }}\n <svg-icon\n class=\"sort-arrow ms-1\"\n [class.rotate]=\"!isAscendingSortOrder\"\n [src]=\"getSvgPath('sortArrowSvgRoute')\"\n [svgStyle]=\"{\n 'width.px': '18',\n 'height.px': '18',\n }\"\n ></svg-icon>\n </div>\n </ng-container>\n <ng-template #truckFilter>\n <ng-container\n *ngIf=\"\n (type === 'truckFilter' ||\n type === 'truckTypeFilter' ||\n type === 'trailerFilter') &&\n isRepairFilter;\n else stateFilter\n \"\n >\n <div\n (click)=\"sortItems()\"\n class=\"user-title-text sort-text d-flex align-items-center justify-content-end\"\n >\n Count\n <svg-icon [src]=\"getSvgPath('sortArrowSvgRoute')\"></svg-icon>\n </div>\n </ng-container>\n </ng-template>\n <ng-template #stateFilter>\n <ng-container *ngIf=\"type === 'stateFilter'; else searchState\">\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1\"\n >\n {{\n (caStateFilter?.canadaSelectedStates)!.length +\n (caStateFilter?.usaSelectedStates)!.length\n }}\n </div>\n </ng-container>\n </ng-template>\n <ng-template #searchState>\n <ng-container *ngIf=\"!searchState\">\n <div\n class=\"search-icon-holder d-flex justify-content-center align-items-center\"\n (click)=\"showSearch()\"\n >\n <svg-icon [src]=\"getSvgPath('searchIconRoute')\"></svg-icon>\n </div>\n </ng-container>\n </ng-template>\n </div>\n <div class=\"filter-body-holder\">\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'moneyFilter'\">\n <app-ca-money-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [isMoneyFilter]=\"true\"\n [isMilesFilter]=\"false\"\n [isFuelType]=\"isFuelType\"\n [isLoadType]=\"isLoadType\"\n [subType]=\"subType\"\n [isFilterActive]=\"isFilterActive\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'milesFilter'\">\n <app-ca-money-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [isMoneyFilter]=\"false\"\n [isMilesFilter]=\"true\"\n [isFuelType]=\"isFuelType\"\n [isLoadType]=\"isLoadType\"\n [subType]=\"subType\"\n [isFilterActive]=\"isFilterActive\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'statusFilter'\">\n <app-ca-status-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [loadStatusOptionsArray]=\"loadStatusOptionsArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'timeFilter'\">\n <app-ca-time-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [timeSubType]=\"timeSubType\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'dispatcherFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'driverFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'fuelStopFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'brokerFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'stateFilter'\">\n <app-ca-state-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [isSearchExpanded]=\"isSearchExpanded\"\n [usaStates]=\"usaStates\"\n [canadaStates]=\"canadaStates\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'truckTypeFilter'\">\n <app-ca-truck-type-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [isRepairFilter]=\"isRepairFilter\"\n [truckTypeArray]=\"truckTypeArray\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'trailerTypeFilter'\">\n <app-ca-trailer-type-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [trailerTypeArray]=\"trailerTypeArray\"\n [isRepairFilter]=\"isRepairFilter\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'pmFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'categoryRepairFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'fuelItemFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'departmentFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'parkingFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'tagFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'actionFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'labelFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'userFilter'\">\n <app-ca-user-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [userGroup]=\"userGroup\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'moduleFilter'\">\n <app-ca-user-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [userGroup]=\"userGroup\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'locationFilter'\">\n <app-ca-location-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [addressList]=\"addressList\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'violationFilter'\">\n <app-ca-violation-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n />\n </ng-container>\n </ng-container>\n </div>\n <div\n class=\"buttons-holder d-flex justify-content-between align-items-center\"\n [class.buttons-long]=\"type === 'locationFilter'\"\n >\n <div\n (click)=\"clearAllValues($event)\"\n class=\"button-clear d-flex justify-content-center align-items-center ca-font-bold\"\n [class.active]=\"\n type\n | filterConditionsClear\n : caMoneyFilter\n : caStatusFilter\n : caTimeFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caLocationFilter\n : caUserFilter\n : caViolationFilter\n \"\n >\n Clear All\n </div>\n <div\n (click)=\"setFilterValue($event)\"\n class=\"button-set d-flex justify-content-center align-items-center ca-font-bold\"\n [class.active]=\"\n type\n | filterConditionsSet\n : caMoneyFilter\n : caStatusFilter\n : caTimeFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caLocationFilter\n : caUserFilter\n : caViolationFilter\n \"\n >\n Set\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n<!-- <div class=\"d-flex\">\n <ng-container *ngIf=\"isCollapsibleFilter\">\n <app-ca-collapsible-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [filterArray]=\"pmFilterArray\"\n [isExpanded]=\"isFilterActive\"\n ></app-ca-collapsible-filter>\n </ng-container>\n </div> -->\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:#dadada}.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:#dadada}.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:#dadada}.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:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background:#ed929233!important;color:#ed9292!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-2{color:#fff!important}.text-color-white-2::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white-2::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!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}@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}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-fill-grey svg path{fill:#919191!important}.svg-fill-red-10 svg path{fill:#e66767!important}.svg-fill-green svg path{fill:#56b4ac!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.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-18 svg{width:18px;height:18px}.svg-size-22 svg{width:22px;height:22px}.svg-size-44-16 svg{width:44px;height:16px}*{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}.cursor-pointer{cursor:pointer}.user-icon{position:relative;width:fit-content;min-width:26px;border-radius:2px;cursor:pointer;padding:4px}.user-icon .main-icon-holder{gap:4px}.user-icon .main-icon-holder .filters-selected-value-holder{width:14px;height:14px;font-size:11px;line-height:14px;color:#fff}.user-icon .main-icon-holder .filters-selected-value-holder svg{width:14px;height:14px}.user-icon svg-icon svg{width:18px;height:18px;display:flex}.user-icon:hover{background-color:#eee}.user-icon:hover .main-icon-holder svg-icon svg path{fill:#424242!important}.user-icon .main-icon-holder svg-icon svg path{fill:#919191!important}.user-icon.active-collapsible{background-color:#2f2f2f}.user-icon.active-options{background-color:#424242}.user-icon.active-options:hover .main-icon-holder svg-icon svg path{fill:#fff!important}.user-icon.active-options .main-icon-holder svg-icon svg path{fill:#ffffff70!important}.user-icon.active-options .clear-filter{display:none!important}.user-icon.active-options:hover .main-icon-holder svg-icon svg path{fill:#dadada!important}.user-icon.filter-active-colors{background-color:#6692f1}.user-icon.filter-active-colors .main-icon-holder svg-icon svg path{fill:#bed0f9!important}.user-icon.filter-active-colors .main-icon-holder svg-icon:hover svg path{fill:#fff!important}.user-icon.filter-active-colors:hover{background-color:#0b49d1!important;transition:.2s all}.user-icon.clear-colors{background:#3b73ed!important}.user-icon.clear-colors:hover{background:#0b49d1!important}.filter-holder{position:relative;width:260px;padding:4px;border-radius:3px;background-color:#2f2f2f;box-shadow:0 0 4px #00000026;flex-direction:column;overflow:hidden}.filter-holder .filter-header{position:relative;width:100%;padding-top:2px;box-sizing:border-box;-webkit-user-select:none;user-select:none}.filter-holder .filter-header .user-filter-box{width:18px;height:18px;padding:4px;border-radius:60px;background-color:#424242;font-size:11px;color:#dadada;line-height:14px}.filter-holder .filter-header .user-title-text{line-height:14px;font-size:11px;color:#fff;padding:0 4px;box-sizing:border-box}.filter-holder .filter-header .user-title-text.sort-text{border-radius:1px;transition:background .2s ease-in-out}.filter-holder .filter-header .user-title-text.sort-text .sort-arrow{transform:rotate(0);transition:transform .2s}.filter-holder .filter-header .user-title-text.sort-text .sort-arrow.rotate{transform:rotate(180deg)}.filter-holder .filter-header .user-title-text.sort-text:hover{cursor:pointer;background:#1d1d1d}.filter-holder .filter-header .user-title-text.counter-padd-title{padding-left:2px;padding-right:6px}.filter-holder .filter-header .search-icon-holder{position:absolute;width:18px;height:18px;width:252px;top:3px;right:4px;cursor:pointer}.filter-holder .filter-header .search-icon-holder svg-icon svg{width:17.1px;height:17.1px}.filter-holder .filter-header .search-icon-holder svg-icon svg path{fill:#aaa}.filter-holder .filter-header .search-icon-holder:hover svg-icon svg path{fill:#6c6c6c}.filter-holder .filter-body-holder{width:100%}.filter-holder .buttons-long .buttons-holder{padding:0}.filter-holder .buttons-long .button-clear,.filter-holder .buttons-long .button-set{width:140px!important}.filter-holder .buttons-holder{width:100%;padding:0;box-sizing:border-box;-webkit-user-select:none;user-select:none}.filter-holder .buttons-holder .button-clear{width:124px;height:18px;border-radius:1px;background-color:#424242;font-size:11px;color:#919191;line-height:14px;text-transform:uppercase}.filter-holder .buttons-holder .button-clear.active{cursor:pointer;color:#dadada}.filter-holder .buttons-holder .button-clear.active:hover{cursor:pointer;background-color:#eee;color:#424242}.filter-holder .buttons-holder .button-set{width:124px;height:18px;border-radius:1px;background-color:#424242;font-size:11px;color:#919191;line-height:14px;text-transform:uppercase}.filter-holder .buttons-holder .button-set.active{background-color:#3b73ed;color:#dadada;cursor:pointer}.filter-holder .buttons-holder .button-set.active:hover{cursor:pointer;background-color:#e9effd;color:#0b49d1}.money-filter{padding:5px 6px 6px;width:300px}.money-filter .button-clear,.money-filter .button-set{width:142px!important}.location-filter{padding:10px 8px 6px;width:300px}\n"], dependencies: [{ kind: "ngmodule", type:
414
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CaFilterComponent, isStandalone: true, selector: "app-ca-filter", inputs: { type: "type", timeSubType: "timeSubType", subType: "subType", unselectedUser: "unselectedUser", userGroup: "userGroup", loadStatusOptionsArray: "loadStatusOptionsArray", truckTypeArray: "truckTypeArray", trailerTypeArray: "trailerTypeArray", pmFilterArray: "pmFilterArray", isRepairFilter: "isRepairFilter", hasNoLeftIcon: "hasNoLeftIcon", hasLeftSideIcon: "hasLeftSideIcon", hasLargeLeftIcon: "hasLargeLeftIcon", isMoneyFilter: "isMoneyFilter", isMilesFilter: "isMilesFilter", isButtonFilter: "isButtonFilter", isFuelType: "isFuelType", isLoadType: "isLoadType", isCollapsibleFilter: "isCollapsibleFilter", filterTitle: "filterTitle", icon: "icon", addressList: "addressList", usaStates: "usaStates", canadaStates: "canadaStates" }, outputs: { setFilter: "setFilter", clearAll: "clearAll" }, viewQueries: [{ propertyName: "t2", first: true, predicate: ["t2"], descendants: true }, { propertyName: "autoClose", first: true, predicate: CaAutoclosePopoverComponent, descendants: true }, { propertyName: "caStatusFilter", first: true, predicate: CaStatusFilterComponent, descendants: true }, { propertyName: "caMoneyFilter", first: true, predicate: CaMoneyFilterComponent, descendants: true }, { propertyName: "caTimeFilter", first: true, predicate: CaTimeFilterComponent, descendants: true }, { propertyName: "caDispatcherFilter", first: true, predicate: CaDispatcherFilterComponent, descendants: true }, { propertyName: "caStateFilter", first: true, predicate: CaStateFilterComponent, descendants: true }, { propertyName: "caTruckTypeFilter", first: true, predicate: CaTruckTypeFilterComponent, descendants: true }, { propertyName: "caTrailerTypeFilter", first: true, predicate: CaTrailerTypeFilterComponent, descendants: true }, { propertyName: "caPmFilter", first: true, predicate: CaPmFilterComponent, descendants: true }, { propertyName: "caCollapsibleFilter", first: true, predicate: CaCollapsibleFilterComponent, descendants: true }, { propertyName: "caLocationFilter", first: true, predicate: CaLocationFilterComponent, descendants: true }, { propertyName: "caUserFilter", first: true, predicate: CaUserFilterComponent, descendants: true }, { propertyName: "caViolationFilter", first: true, predicate: CaViolationFilterComponent, descendants: true }], ngImport: i0, template: "<div\n class=\"user-icon d-flex justify-content-center align-items-center\"\n app-ca-autoclose-popover\n [customClass]=\"'filterpopovermain'\"\n [placement]=\"isCollapsibleFilter ? 'right' : 'bottom-left'\"\n autoClose=\"outside\"\n (closeFilter)=\"onFilterClose()\"\n (openFilter)=\"onFilterShown()\"\n [ngClass]=\"{\n 'active-options': isFilterActive,\n 'clear-colors': isHoverClosed,\n 'filter-active-colors': isFilterActiveColor,\n 'active-collapsible': isCollapsibleFilter\n }\"\n (mouseenter)=\"isFilterHoveredOver = true\"\n (mouseleave)=\"isFilterHoveredOver = false\"\n>\n <div\n mainContent\n ngbTooltip\n mainCaTooltip=\"{{\n 'mainTooltip'\n | filterPopoverConditionsPipe\n : getComponentInstance()\n : caMoneyFilter\n : caStatusFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n }}\"\n position=\"bottom\"\n tooltipBackground=\"{{ isFilterActive ? '#CCCCCC' : '#2F2F2F' }}\"\n tooltipColor=\"{{ isFilterActive ? '#2F2F2F' : '#FFFFFF' }}\"\n tooltipTextAlign=\"center\"\n class=\"main-icon-holder d-flex justify-content-center align-items-center\"\n >\n <div>\n <svg-icon [src]=\"icon | caSvg : 'common'\"></svg-icon>\n </div>\n <ng-container *ngIf=\"isFilterActiveColor\">\n <ng-container *ngIf=\"!isFilterHoveredOver; else closeButton\">\n <ng-container\n *ngIf=\"!isNotDropdown() && getFilterCount(); else checkmark\"\n >\n <div\n class=\"filters-selected-value-holder d-flex justify-content-center align-items-center ta-font-extra-bold\"\n >\n {{ getFilterCount() }}\n </div>\n </ng-container>\n\n <ng-template #checkmark>\n <div\n class=\"filters-selected-value-holder d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-template #closeButton>\n <div\n class=\"filters-selected-value-holder d-flex justify-content-center align-items-center\"\n (mouseenter)=\"isHoverClosed = true\"\n (mouseleave)=\"isHoverClosed = false\"\n (click)=\"clearAllValues($event)\"\n >\n <svg-icon [src]=\"getSvgPath('cancelViolation')\"></svg-icon>\n </div>\n </ng-template>\n </ng-container>\n </div>\n\n <div popoverContent class=\"main-popover-body\">\n <ng-container *ngIf=\"isCollapsibleFilter\">\n <app-ca-collapsible-filter\n (onTagEmit)=\"setFilterValue($event)\"\n [filterArray]=\"pmFilterArray\"\n [type]=\"type\"\n ></app-ca-collapsible-filter>\n </ng-container>\n <ng-container *ngIf=\"!isButtonFilter && !isCollapsibleFilter\">\n <div\n [@showAnimation]=\"!!isFilterActive\"\n class=\"filter-holder d-flex justify-content-start align-items-start\"\n [class.state-filter]=\"type === 'stateFilter'\"\n [class.department-filter]=\"hasNoLeftIcon\"\n [class.status-filter]=\"type === 'statusFilter'\"\n [class.pm-filter]=\"hasLeftSideIcon\"\n [class.truck-icon-holder]=\"hasLargeLeftIcon\"\n [class.money-filter]=\"type === 'moneyFilter' || type === 'milesFilter'\"\n [class.location-filter]=\"type === 'locationFilter'\"\n >\n <div\n class=\"filter-header filter-text-part d-flex justify-content-between align-items-center\"\n [class.activeHeader]=\"!isSearchExpanded\"\n [class.inactiveHeader]=\"isSearchExpanded\"\n >\n <div\n class=\"user-title-text counter-padd-title d-flex align-items-center ca-font-bold\"\n >\n {{ filterTitle | uppercase }}\n\n <ng-container\n *ngIf=\"\n (type === 'dispatcherFilter' ||\n type === 'driverFilter' ||\n type === 'fuelStopFilter' ||\n type === 'brokerFilter') &&\n caDispatcherFilter?.selectedUser?.length\n \"\n >\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1\"\n >\n {{ caDispatcherFilter?.selectedUser?.length }}\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"\n 'userBox'\n | filterPopoverConditionsPipe\n : getComponentInstance()\n : caMoneyFilter\n : caStatusFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n \"\n >\n <ng-container\n *ngIf=\"\n type\n | filterConditionsUserBox\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caStatusFilter\n : caPmFilter as filterResult\n \"\n >\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1\"\n >\n {{ filterResult }}\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <ng-container\n *ngIf=\"\n 'sortItems'\n | filterPopoverConditionsPipe\n : getComponentInstance()\n : caMoneyFilter\n : caStatusFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter;\n else truckFilter\n \"\n >\n <div\n (click)=\"sortItems()\"\n class=\"user-title-text sort-text ta-font-medium d-flex align-items-center justify-content-end\"\n >\n {{\n type === 'statusFilter' ||\n type === 'dispatcherFilter' ||\n type === 'driverFilter' ||\n type === 'fuelStopFilter' ||\n type === 'brokerFilter'\n ? 'Count'\n : 'Name'\n }}\n <svg-icon\n class=\"sort-arrow ms-1\"\n [class.rotate]=\"!isAscendingSortOrder\"\n [src]=\"getSvgPath('sortArrowSvgRoute')\"\n [svgStyle]=\"{\n 'width.px': '18',\n 'height.px': '18',\n }\"\n ></svg-icon>\n </div>\n </ng-container>\n <ng-template #truckFilter>\n <ng-container\n *ngIf=\"\n (type === 'truckFilter' ||\n type === 'truckTypeFilter' ||\n type === 'trailerFilter') &&\n isRepairFilter;\n else stateFilter\n \"\n >\n <div\n (click)=\"sortItems()\"\n class=\"user-title-text sort-text d-flex align-items-center justify-content-end\"\n >\n Count\n <svg-icon [src]=\"getSvgPath('sortArrowSvgRoute')\"></svg-icon>\n </div>\n </ng-container>\n </ng-template>\n <ng-template #stateFilter>\n <ng-container *ngIf=\"type === 'stateFilter'; else searchState\">\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1\"\n >\n {{\n (caStateFilter?.canadaSelectedStates)!.length +\n (caStateFilter?.usaSelectedStates)!.length\n }}\n </div>\n </ng-container>\n </ng-template>\n <ng-template #searchState>\n <ng-container *ngIf=\"!searchState\">\n <div\n class=\"search-icon-holder d-flex justify-content-center align-items-center\"\n (click)=\"showSearch()\"\n >\n <svg-icon [src]=\"getSvgPath('searchIconRoute')\"></svg-icon>\n </div>\n </ng-container>\n </ng-template>\n </div>\n <div class=\"filter-body-holder\">\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'moneyFilter'\">\n <app-ca-money-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [isMoneyFilter]=\"true\"\n [isMilesFilter]=\"false\"\n [isFuelType]=\"isFuelType\"\n [isLoadType]=\"isLoadType\"\n [subType]=\"subType\"\n [isFilterActive]=\"isFilterActive\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'milesFilter'\">\n <app-ca-money-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [isMoneyFilter]=\"false\"\n [isMilesFilter]=\"true\"\n [isFuelType]=\"isFuelType\"\n [isLoadType]=\"isLoadType\"\n [subType]=\"subType\"\n [isFilterActive]=\"isFilterActive\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'statusFilter'\">\n <app-ca-status-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [loadStatusOptionsArray]=\"loadStatusOptionsArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'timeFilter'\">\n <app-ca-time-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [timeSubType]=\"timeSubType\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'dispatcherFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'driverFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'fuelStopFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'brokerFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'stateFilter'\">\n <app-ca-state-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [isSearchExpanded]=\"isSearchExpanded\"\n [usaStates]=\"usaStates\"\n [canadaStates]=\"canadaStates\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'truckTypeFilter'\">\n <app-ca-truck-type-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [isRepairFilter]=\"isRepairFilter\"\n [truckTypeArray]=\"truckTypeArray\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'trailerTypeFilter'\">\n <app-ca-trailer-type-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [trailerTypeArray]=\"trailerTypeArray\"\n [isRepairFilter]=\"isRepairFilter\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'pmFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'categoryRepairFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'fuelItemFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'departmentFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'parkingFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'tagFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'actionFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'labelFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'userFilter'\">\n <app-ca-user-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [userGroup]=\"userGroup\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'moduleFilter'\">\n <app-ca-user-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [userGroup]=\"userGroup\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'locationFilter'\">\n <app-ca-location-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [addressList]=\"addressList\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'violationFilter'\">\n <app-ca-violation-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n />\n </ng-container>\n </ng-container>\n </div>\n <div\n class=\"buttons-holder d-flex justify-content-between align-items-center\"\n [class.buttons-long]=\"type === 'locationFilter'\"\n >\n <div\n (click)=\"clearAllValues($event)\"\n class=\"button-clear d-flex justify-content-center align-items-center ca-font-bold\"\n [class.active]=\"\n type\n | filterConditionsClear\n : caMoneyFilter\n : caStatusFilter\n : caTimeFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caLocationFilter\n : caUserFilter\n : caViolationFilter\n \"\n >\n Clear All\n </div>\n <div\n (click)=\"setFilterValue($event)\"\n class=\"button-set d-flex justify-content-center align-items-center ca-font-bold\"\n [class.active]=\"\n type\n | filterConditionsSet\n : caMoneyFilter\n : caStatusFilter\n : caTimeFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caLocationFilter\n : caUserFilter\n : caViolationFilter\n \"\n >\n Set\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n<!-- <div class=\"d-flex\">\n <ng-container *ngIf=\"isCollapsibleFilter\">\n <app-ca-collapsible-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [filterArray]=\"pmFilterArray\"\n [isExpanded]=\"isFilterActive\"\n ></app-ca-collapsible-filter>\n </ng-container>\n </div> -->\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:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-16{color:#e9effd!important}.text-color-blue-16::-moz-selection{background:#66921833!important;color:#e9effd!important}.text-color-blue-16::selection{background:#66921833!important;color:#e9effd!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background:#ed929233!important;color:#ed9292!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#fff!important}.text-color-white::-moz-selection{color:#fff!important;background:#fff3!important}.text-color-white::selection{color:#fff!important;background:#fff3!important}.text-color-white-2{color:#fff!important}.text-color-white-2::-moz-selection{color:#fff!important;background:#fff3!important}.text-color-white-2::selection{color:#fff!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!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{fill:#424242!important}.svg-fill-white svg path{fill:#fff!important}.svg-fill-white-2 svg path{fill:#fff!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-8 svg path{fill:#6692f1!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-17 svg path{fill:#bed0f9!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-fill-white-4 svg path{fill:#ffffffb2!important}.svg-fill-grey svg path{fill:#919191!important}.svg-fill-red-10 svg path{fill:#e66767!important}.svg-fill-green svg path{fill:#56b4ac!important}.svg-hover-white svg path{transition:all .3s ease-in-out}.svg-hover-white:hover svg path{fill:#fff!important}.svg-hover-white-2 svg path{transition:all .3s ease-in-out}.svg-hover-white-2:hover svg path{fill:#fff!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-grey-4 svg path{transition:all .3s ease-in-out}.svg-hover-grey-4:hover svg path{fill:#ccc!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-10 svg path{transition:all .3s ease-in-out}.svg-hover-blue-10:hover svg path{fill:#bed0f9!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-blue-19 svg path{transition:all .3s ease-in-out}.svg-hover-blue-19:hover svg path{fill:#92b1f5!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.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-18 svg{width:18px;height:18px}.svg-size-22 svg{width:22px;height:22px}.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}.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}.user-icon{position:relative;width:fit-content;min-width:26px;border-radius:2px;cursor:pointer;padding:4px}.user-icon .main-icon-holder{gap:4px}.user-icon .main-icon-holder .filters-selected-value-holder{width:14px;height:14px;font-size:11px;line-height:14px;color:#fff}.user-icon .main-icon-holder .filters-selected-value-holder svg{width:14px;height:14px}.user-icon svg-icon svg{width:18px;height:18px;display:flex}.user-icon:hover{background-color:#eee}.user-icon:hover .main-icon-holder svg-icon svg path{fill:#424242!important}.user-icon .main-icon-holder svg-icon svg path{fill:#919191!important}.user-icon.active-collapsible{background-color:#2f2f2f}.user-icon.active-options{background-color:#424242}.user-icon.active-options .main-icon-holder svg-icon svg path{fill:#ffffff70!important}.user-icon.active-options .clear-filter{display:none!important}.user-icon.active-options:hover .main-icon-holder svg-icon svg path{fill:#fff!important}.user-icon.filter-active-colors{background-color:#3b73ed}.user-icon.filter-active-colors .main-icon-holder svg-icon svg path{fill:#bed0f9!important}.user-icon.filter-active-colors .main-icon-holder svg-icon:hover svg path{fill:#fff!important}.user-icon.filter-active-colors:hover{background-color:#0b49d1!important;transition:.2s all}.user-icon.clear-colors{background:#3b73ed!important}.user-icon.clear-colors:hover{background:#0b49d1!important}.filter-holder{position:relative;width:260px;padding:4px;border-radius:3px;background-color:#2f2f2f;box-shadow:0 0 4px #00000026;flex-direction:column;overflow:hidden}.filter-holder .filter-header{position:relative;width:100%;padding-top:2px;box-sizing:border-box;-webkit-user-select:none;user-select:none}.filter-holder .filter-header .user-filter-box{width:18px;height:18px;padding:4px;border-radius:60px;background-color:#424242;font-size:11px;color:#fff;line-height:14px}.filter-holder .filter-header .user-title-text{line-height:14px;font-size:11px;color:#fff;padding:0 4px;box-sizing:border-box}.filter-holder .filter-header .user-title-text.sort-text{border-radius:1px;transition:background .2s ease-in-out}.filter-holder .filter-header .user-title-text.sort-text .sort-arrow{transform:rotate(0);transition:transform .2s}.filter-holder .filter-header .user-title-text.sort-text .sort-arrow.rotate{transform:rotate(180deg)}.filter-holder .filter-header .user-title-text.sort-text:hover{cursor:pointer;background:#1d1d1d}.filter-holder .filter-header .user-title-text.counter-padd-title{padding-left:2px;padding-right:6px}.filter-holder .filter-header .search-icon-holder{position:absolute;width:18px;height:18px;width:252px;top:3px;right:4px;cursor:pointer}.filter-holder .filter-header .search-icon-holder svg-icon svg{width:17.1px;height:17.1px}.filter-holder .filter-header .search-icon-holder svg-icon svg path{fill:#aaa}.filter-holder .filter-header .search-icon-holder:hover svg-icon svg path{fill:#6c6c6c}.filter-holder .filter-body-holder{width:100%}.filter-holder .buttons-long .buttons-holder{padding:0}.filter-holder .buttons-long .button-clear,.filter-holder .buttons-long .button-set{width:140px!important}.filter-holder .buttons-holder{width:100%;padding:0;box-sizing:border-box;-webkit-user-select:none;user-select:none}.filter-holder .buttons-holder .button-clear{width:124px;height:18px;border-radius:1px;background-color:#424242;font-size:11px;color:#919191;line-height:14px;text-transform:uppercase}.filter-holder .buttons-holder .button-clear.active{cursor:pointer;color:#fff}.filter-holder .buttons-holder .button-clear.active:hover{cursor:pointer;background-color:#eee;color:#424242}.filter-holder .buttons-holder .button-set{width:124px;height:18px;border-radius:1px;background-color:#424242;font-size:11px;color:#919191;line-height:14px;text-transform:uppercase}.filter-holder .buttons-holder .button-set.active{background-color:#3b73ed;color:#fff;cursor:pointer}.filter-holder .buttons-holder .button-set.active:hover{cursor:pointer;background-color:#e9effd;color:#0b49d1}.money-filter{padding:5px 6px 6px;width:300px}.money-filter .button-clear,.money-filter .button-set{width:142px!important}.location-filter{padding:10px 8px 6px;width:300px}\n"], dependencies: [{ kind: "ngmodule", type:
415
415
  // modules
416
416
  CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: HttpClientModule }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "component", type: i2.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }, { kind: "ngmodule", type: NgbModule }, { kind: "directive", type: i3.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:
417
417
  // components
418
- CaMoneyFilterComponent, selector: "app-ca-money-filter", inputs: ["type", "subType", "isMoneyFilter", "isMilesFilter", "isFuelType", "isLoadType", "categoryType", "isRepairFilter", "isFilterActive"] }, { kind: "component", type: CaStatusFilterComponent, selector: "app-ca-status-filter", inputs: ["type", "isLegendView", "isFilterActive", "toDoSubType", "loadStatusOptionsArray"] }, { kind: "component", type: CaTimeFilterComponent, selector: "app-ca-time-filter", inputs: ["type", "timeSubType", "isFilterActive"] }, { kind: "component", type: CaDispatcherFilterComponent, selector: "app-ca-dispatcher-filter", inputs: ["type", "isFilterActive", "filterTitle", "hasLeftSideIcon", "toDoSubType", "unselectedUser", "isSearchExpanded"] }, { kind: "component", type: CaStateFilterComponent, selector: "app-ca-state-filter", inputs: ["type", "isFilterActive", "isSearchExpanded", "usaStates", "canadaStates"] }, { kind: "component", type: CaTruckTypeFilterComponent, selector: "app-ca-truck-type-filter", inputs: ["type", "isFilterActive", "hasLeftSideIcon", "truckTypeArray", "isRepairFilter", "isSearchExpanded"] }, { kind: "component", type: CaTrailerTypeFilterComponent, selector: "app-ca-trailer-type-filter", inputs: ["type", "isFilterActive", "hasLeftSideIcon", "trailerTypeArray", "isSearchExpanded", "isRepairFilter"] }, { kind: "component", type: CaPmFilterComponent, selector: "app-ca-pm-filter", inputs: ["type", "isFilterActive", "hasLeftSideIcon", "pmSubtype", "pmFilterArray"] }, { kind: "component", type: CaLocationFilterComponent, selector: "app-ca-location-filter", inputs: ["type", "toDoSubType", "isLegendView", "isFilterActive", "isAreaFilter", "addressList"] }, { kind: "component", type: CaUserFilterComponent, selector: "app-ca-user-filter", inputs: ["type", "isFilterActive", "filterTitle", "hasLeftSideIcon", "toDoSubType", "userGroup", "isSearchExpanded"] }, { kind: "component", type: CaViolationFilterComponent, selector: "app-ca-violation-filter", inputs: ["type", "isFilterActive", "toDoSubType"] }, { kind: "component", type: CaAutoclosePopoverComponent, selector: "[app-ca-autoclose-popover]", inputs: ["isDisabled", "customClass", "placement"], outputs: ["closeFilter", "openFilter"] }, { kind: "component", type: CaAppTooltipV2Component, selector: "mainCaTooltip, [mainCaTooltip]", inputs: ["mainCaTooltip", "position", "openTooltipDelay", "tooltipBackground", "tooltipColor", "tooltipTextAlign", "tooltipMarginTop", "disableTooltip"] }, { kind: "component", type: CaCollapsibleFilterComponent, selector: "app-ca-collapsible-filter", inputs: ["isExpanded", "filterArray", "type"], outputs: ["onTagEmit"] }, { kind: "pipe", type:
418
+ CaMoneyFilterComponent, selector: "app-ca-money-filter", inputs: ["type", "subType", "isMoneyFilter", "isMilesFilter", "isFuelType", "isLoadType", "categoryType", "isRepairFilter", "isFilterActive"] }, { kind: "component", type: CaStatusFilterComponent, selector: "app-ca-status-filter", inputs: ["type", "isLegendView", "isFilterActive", "toDoSubType", "loadStatusOptionsArray"] }, { kind: "component", type: CaTimeFilterComponent, selector: "app-ca-time-filter", inputs: ["type", "timeSubType", "isFilterActive"] }, { kind: "component", type: CaDispatcherFilterComponent, selector: "app-ca-dispatcher-filter", inputs: ["type", "isFilterActive", "filterTitle", "hasLeftSideIcon", "toDoSubType", "unselectedUser", "isSearchExpanded"] }, { kind: "component", type: CaStateFilterComponent, selector: "app-ca-state-filter", inputs: ["type", "isFilterActive", "isSearchExpanded", "usaStates", "canadaStates"] }, { kind: "component", type: CaTruckTypeFilterComponent, selector: "app-ca-truck-type-filter", inputs: ["type", "isFilterActive", "hasLeftSideIcon", "truckTypeArray", "isRepairFilter", "isSearchExpanded"] }, { kind: "component", type: CaTrailerTypeFilterComponent, selector: "app-ca-trailer-type-filter", inputs: ["type", "isFilterActive", "hasLeftSideIcon", "trailerTypeArray", "isSearchExpanded", "isRepairFilter"] }, { kind: "component", type: CaPmFilterComponent, selector: "app-ca-pm-filter", inputs: ["type", "isFilterActive", "hasLeftSideIcon", "pmSubtype", "pmFilterArray"] }, { kind: "component", type: CaLocationFilterComponent, selector: "app-ca-location-filter", inputs: ["type", "toDoSubType", "isLegendView", "isFilterActive", "isAreaFilter", "addressList"] }, { kind: "component", type: CaUserFilterComponent, selector: "app-ca-user-filter", inputs: ["type", "isFilterActive", "filterTitle", "hasLeftSideIcon", "toDoSubType", "userGroup", "isSearchExpanded"] }, { kind: "component", type: CaViolationFilterComponent, selector: "app-ca-violation-filter", inputs: ["type", "isFilterActive", "toDoSubType"] }, { kind: "component", type: CaAutoclosePopoverComponent, selector: "[app-ca-autoclose-popover]", inputs: ["isDisabled", "customClass", "autoClose", "placement"], outputs: ["closeFilter", "openFilter"] }, { kind: "component", type: CaAppTooltipV2Component, selector: "mainCaTooltip, [mainCaTooltip]", inputs: ["mainCaTooltip", "position", "openTooltipDelay", "tooltipBackground", "tooltipColor", "tooltipTextAlign", "tooltipMarginTop", "disableTooltip"] }, { kind: "component", type: CaCollapsibleFilterComponent, selector: "app-ca-collapsible-filter", inputs: ["isExpanded", "filterArray", "type"], outputs: ["onTagEmit"] }, { kind: "pipe", type:
419
419
  // pipes
420
420
  FilterConditionsSetPipe, name: "filterConditionsSet" }, { kind: "pipe", type: FilterConditionsClearPipe, name: "filterConditionsClear" }, { kind: "pipe", type: FilterConditionsUserBoxPipe, name: "filterConditionsUserBox" }, { kind: "pipe", type: FilterPopoverConditionsPipe, name: "filterPopoverConditionsPipe" }, { kind: "pipe", type: CaSvgPipe, name: "caSvg" }], animations: [showAnimation('showAnimation'), closeForm('closeForm')] }); }
421
421
  }
@@ -448,7 +448,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
448
448
  FilterConditionsUserBoxPipe,
449
449
  FilterPopoverConditionsPipe,
450
450
  CaSvgPipe,
451
- ], encapsulation: ViewEncapsulation.Emulated, animations: [showAnimation('showAnimation'), closeForm('closeForm')], template: "<div\n class=\"user-icon d-flex justify-content-center align-items-center\"\n app-ca-autoclose-popover\n [customClass]=\"'filterpopovermain'\"\n [placement]=\"isCollapsibleFilter ? 'right' : 'bottom-left'\"\n autoClose=\"outside\"\n (closeFilter)=\"onFilterClose()\"\n (openFilter)=\"onFilterShown()\"\n [ngClass]=\"{\n 'active-options': isFilterActive,\n 'clear-colors': isHoverClosed,\n 'filter-active-colors': isFilterActiveColor,\n 'active-collapsible': isCollapsibleFilter\n }\"\n (mouseenter)=\"isFilterHoveredOver = true\"\n (mouseleave)=\"isFilterHoveredOver = false\"\n>\n <div\n mainContent\n ngbTooltip\n mainCaTooltip=\"{{\n 'mainTooltip'\n | filterPopoverConditionsPipe\n : getComponentInstance()\n : caMoneyFilter\n : caStatusFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n }}\"\n position=\"bottom\"\n tooltipBackground=\"{{ isFilterActive ? '#CCCCCC' : '#2F2F2F' }}\"\n tooltipColor=\"{{ isFilterActive ? '#2F2F2F' : '#FFFFFF' }}\"\n tooltipTextAlign=\"center\"\n class=\"main-icon-holder d-flex justify-content-center align-items-center\"\n >\n <div>\n <svg-icon [src]=\"icon | caSvg : 'common'\"></svg-icon>\n </div>\n <ng-container *ngIf=\"isFilterActiveColor\">\n <ng-container *ngIf=\"!isFilterHoveredOver; else closeButton\">\n <ng-container\n *ngIf=\"!isNotDropdown() && getFilterCount(); else checkmark\"\n >\n <div\n class=\"filters-selected-value-holder d-flex justify-content-center align-items-center ta-font-extra-bold\"\n >\n {{ getFilterCount() }}\n </div>\n </ng-container>\n\n <ng-template #checkmark>\n <div\n class=\"filters-selected-value-holder d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-template #closeButton>\n <div\n class=\"filters-selected-value-holder d-flex justify-content-center align-items-center\"\n (mouseenter)=\"isHoverClosed = true\"\n (mouseleave)=\"isHoverClosed = false\"\n (click)=\"clearAllValues($event)\"\n >\n <svg-icon [src]=\"getSvgPath('cancelViolation')\"></svg-icon>\n </div>\n </ng-template>\n </ng-container>\n </div>\n\n <div popoverContent class=\"main-popover-body\">\n <ng-container *ngIf=\"isCollapsibleFilter\">\n <app-ca-collapsible-filter\n (onTagEmit)=\"setFilterValue($event)\"\n [filterArray]=\"pmFilterArray\"\n [type]=\"type\"\n ></app-ca-collapsible-filter>\n </ng-container>\n <ng-container *ngIf=\"!isButtonFilter && !isCollapsibleFilter\">\n <div\n [@showAnimation]=\"!!isFilterActive\"\n class=\"filter-holder d-flex justify-content-start align-items-start\"\n [class.state-filter]=\"type === 'stateFilter'\"\n [class.department-filter]=\"hasNoLeftIcon\"\n [class.status-filter]=\"type === 'statusFilter'\"\n [class.pm-filter]=\"hasLeftSideIcon\"\n [class.truck-icon-holder]=\"hasLargeLeftIcon\"\n [class.money-filter]=\"type === 'moneyFilter' || type === 'milesFilter'\"\n [class.location-filter]=\"type === 'locationFilter'\"\n >\n <div\n class=\"filter-header filter-text-part d-flex justify-content-between align-items-center\"\n [class.activeHeader]=\"!isSearchExpanded\"\n [class.inactiveHeader]=\"isSearchExpanded\"\n >\n <div\n class=\"user-title-text counter-padd-title d-flex align-items-center ca-font-bold\"\n >\n {{ filterTitle | uppercase }}\n\n <ng-container\n *ngIf=\"\n (type === 'dispatcherFilter' ||\n type === 'driverFilter' ||\n type === 'fuelStopFilter' ||\n type === 'brokerFilter') &&\n caDispatcherFilter?.selectedUser?.length\n \"\n >\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1\"\n >\n {{ caDispatcherFilter?.selectedUser?.length }}\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"\n 'userBox'\n | filterPopoverConditionsPipe\n : getComponentInstance()\n : caMoneyFilter\n : caStatusFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n \"\n >\n <ng-container\n *ngIf=\"\n type\n | filterConditionsUserBox\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caStatusFilter\n : caPmFilter as filterResult\n \"\n >\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1\"\n >\n {{ filterResult }}\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <ng-container\n *ngIf=\"\n 'sortItems'\n | filterPopoverConditionsPipe\n : getComponentInstance()\n : caMoneyFilter\n : caStatusFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter;\n else truckFilter\n \"\n >\n <div\n (click)=\"sortItems()\"\n class=\"user-title-text sort-text ta-font-medium d-flex align-items-center justify-content-end\"\n >\n {{\n type === 'statusFilter' ||\n type === 'dispatcherFilter' ||\n type === 'driverFilter' ||\n type === 'fuelStopFilter' ||\n type === 'brokerFilter'\n ? 'Count'\n : 'Name'\n }}\n <svg-icon\n class=\"sort-arrow ms-1\"\n [class.rotate]=\"!isAscendingSortOrder\"\n [src]=\"getSvgPath('sortArrowSvgRoute')\"\n [svgStyle]=\"{\n 'width.px': '18',\n 'height.px': '18',\n }\"\n ></svg-icon>\n </div>\n </ng-container>\n <ng-template #truckFilter>\n <ng-container\n *ngIf=\"\n (type === 'truckFilter' ||\n type === 'truckTypeFilter' ||\n type === 'trailerFilter') &&\n isRepairFilter;\n else stateFilter\n \"\n >\n <div\n (click)=\"sortItems()\"\n class=\"user-title-text sort-text d-flex align-items-center justify-content-end\"\n >\n Count\n <svg-icon [src]=\"getSvgPath('sortArrowSvgRoute')\"></svg-icon>\n </div>\n </ng-container>\n </ng-template>\n <ng-template #stateFilter>\n <ng-container *ngIf=\"type === 'stateFilter'; else searchState\">\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1\"\n >\n {{\n (caStateFilter?.canadaSelectedStates)!.length +\n (caStateFilter?.usaSelectedStates)!.length\n }}\n </div>\n </ng-container>\n </ng-template>\n <ng-template #searchState>\n <ng-container *ngIf=\"!searchState\">\n <div\n class=\"search-icon-holder d-flex justify-content-center align-items-center\"\n (click)=\"showSearch()\"\n >\n <svg-icon [src]=\"getSvgPath('searchIconRoute')\"></svg-icon>\n </div>\n </ng-container>\n </ng-template>\n </div>\n <div class=\"filter-body-holder\">\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'moneyFilter'\">\n <app-ca-money-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [isMoneyFilter]=\"true\"\n [isMilesFilter]=\"false\"\n [isFuelType]=\"isFuelType\"\n [isLoadType]=\"isLoadType\"\n [subType]=\"subType\"\n [isFilterActive]=\"isFilterActive\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'milesFilter'\">\n <app-ca-money-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [isMoneyFilter]=\"false\"\n [isMilesFilter]=\"true\"\n [isFuelType]=\"isFuelType\"\n [isLoadType]=\"isLoadType\"\n [subType]=\"subType\"\n [isFilterActive]=\"isFilterActive\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'statusFilter'\">\n <app-ca-status-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [loadStatusOptionsArray]=\"loadStatusOptionsArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'timeFilter'\">\n <app-ca-time-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [timeSubType]=\"timeSubType\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'dispatcherFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'driverFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'fuelStopFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'brokerFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'stateFilter'\">\n <app-ca-state-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [isSearchExpanded]=\"isSearchExpanded\"\n [usaStates]=\"usaStates\"\n [canadaStates]=\"canadaStates\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'truckTypeFilter'\">\n <app-ca-truck-type-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [isRepairFilter]=\"isRepairFilter\"\n [truckTypeArray]=\"truckTypeArray\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'trailerTypeFilter'\">\n <app-ca-trailer-type-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [trailerTypeArray]=\"trailerTypeArray\"\n [isRepairFilter]=\"isRepairFilter\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'pmFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'categoryRepairFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'fuelItemFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'departmentFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'parkingFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'tagFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'actionFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'labelFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'userFilter'\">\n <app-ca-user-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [userGroup]=\"userGroup\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'moduleFilter'\">\n <app-ca-user-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [userGroup]=\"userGroup\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'locationFilter'\">\n <app-ca-location-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [addressList]=\"addressList\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'violationFilter'\">\n <app-ca-violation-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n />\n </ng-container>\n </ng-container>\n </div>\n <div\n class=\"buttons-holder d-flex justify-content-between align-items-center\"\n [class.buttons-long]=\"type === 'locationFilter'\"\n >\n <div\n (click)=\"clearAllValues($event)\"\n class=\"button-clear d-flex justify-content-center align-items-center ca-font-bold\"\n [class.active]=\"\n type\n | filterConditionsClear\n : caMoneyFilter\n : caStatusFilter\n : caTimeFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caLocationFilter\n : caUserFilter\n : caViolationFilter\n \"\n >\n Clear All\n </div>\n <div\n (click)=\"setFilterValue($event)\"\n class=\"button-set d-flex justify-content-center align-items-center ca-font-bold\"\n [class.active]=\"\n type\n | filterConditionsSet\n : caMoneyFilter\n : caStatusFilter\n : caTimeFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caLocationFilter\n : caUserFilter\n : caViolationFilter\n \"\n >\n Set\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n<!-- <div class=\"d-flex\">\n <ng-container *ngIf=\"isCollapsibleFilter\">\n <app-ca-collapsible-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [filterArray]=\"pmFilterArray\"\n [isExpanded]=\"isFilterActive\"\n ></app-ca-collapsible-filter>\n </ng-container>\n </div> -->\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:#dadada}.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:#dadada}.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:#dadada}.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:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background:#ed929233!important;color:#ed9292!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-2{color:#fff!important}.text-color-white-2::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white-2::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!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}@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}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-fill-grey svg path{fill:#919191!important}.svg-fill-red-10 svg path{fill:#e66767!important}.svg-fill-green svg path{fill:#56b4ac!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.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-18 svg{width:18px;height:18px}.svg-size-22 svg{width:22px;height:22px}.svg-size-44-16 svg{width:44px;height:16px}*{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}.cursor-pointer{cursor:pointer}.user-icon{position:relative;width:fit-content;min-width:26px;border-radius:2px;cursor:pointer;padding:4px}.user-icon .main-icon-holder{gap:4px}.user-icon .main-icon-holder .filters-selected-value-holder{width:14px;height:14px;font-size:11px;line-height:14px;color:#fff}.user-icon .main-icon-holder .filters-selected-value-holder svg{width:14px;height:14px}.user-icon svg-icon svg{width:18px;height:18px;display:flex}.user-icon:hover{background-color:#eee}.user-icon:hover .main-icon-holder svg-icon svg path{fill:#424242!important}.user-icon .main-icon-holder svg-icon svg path{fill:#919191!important}.user-icon.active-collapsible{background-color:#2f2f2f}.user-icon.active-options{background-color:#424242}.user-icon.active-options:hover .main-icon-holder svg-icon svg path{fill:#fff!important}.user-icon.active-options .main-icon-holder svg-icon svg path{fill:#ffffff70!important}.user-icon.active-options .clear-filter{display:none!important}.user-icon.active-options:hover .main-icon-holder svg-icon svg path{fill:#dadada!important}.user-icon.filter-active-colors{background-color:#6692f1}.user-icon.filter-active-colors .main-icon-holder svg-icon svg path{fill:#bed0f9!important}.user-icon.filter-active-colors .main-icon-holder svg-icon:hover svg path{fill:#fff!important}.user-icon.filter-active-colors:hover{background-color:#0b49d1!important;transition:.2s all}.user-icon.clear-colors{background:#3b73ed!important}.user-icon.clear-colors:hover{background:#0b49d1!important}.filter-holder{position:relative;width:260px;padding:4px;border-radius:3px;background-color:#2f2f2f;box-shadow:0 0 4px #00000026;flex-direction:column;overflow:hidden}.filter-holder .filter-header{position:relative;width:100%;padding-top:2px;box-sizing:border-box;-webkit-user-select:none;user-select:none}.filter-holder .filter-header .user-filter-box{width:18px;height:18px;padding:4px;border-radius:60px;background-color:#424242;font-size:11px;color:#dadada;line-height:14px}.filter-holder .filter-header .user-title-text{line-height:14px;font-size:11px;color:#fff;padding:0 4px;box-sizing:border-box}.filter-holder .filter-header .user-title-text.sort-text{border-radius:1px;transition:background .2s ease-in-out}.filter-holder .filter-header .user-title-text.sort-text .sort-arrow{transform:rotate(0);transition:transform .2s}.filter-holder .filter-header .user-title-text.sort-text .sort-arrow.rotate{transform:rotate(180deg)}.filter-holder .filter-header .user-title-text.sort-text:hover{cursor:pointer;background:#1d1d1d}.filter-holder .filter-header .user-title-text.counter-padd-title{padding-left:2px;padding-right:6px}.filter-holder .filter-header .search-icon-holder{position:absolute;width:18px;height:18px;width:252px;top:3px;right:4px;cursor:pointer}.filter-holder .filter-header .search-icon-holder svg-icon svg{width:17.1px;height:17.1px}.filter-holder .filter-header .search-icon-holder svg-icon svg path{fill:#aaa}.filter-holder .filter-header .search-icon-holder:hover svg-icon svg path{fill:#6c6c6c}.filter-holder .filter-body-holder{width:100%}.filter-holder .buttons-long .buttons-holder{padding:0}.filter-holder .buttons-long .button-clear,.filter-holder .buttons-long .button-set{width:140px!important}.filter-holder .buttons-holder{width:100%;padding:0;box-sizing:border-box;-webkit-user-select:none;user-select:none}.filter-holder .buttons-holder .button-clear{width:124px;height:18px;border-radius:1px;background-color:#424242;font-size:11px;color:#919191;line-height:14px;text-transform:uppercase}.filter-holder .buttons-holder .button-clear.active{cursor:pointer;color:#dadada}.filter-holder .buttons-holder .button-clear.active:hover{cursor:pointer;background-color:#eee;color:#424242}.filter-holder .buttons-holder .button-set{width:124px;height:18px;border-radius:1px;background-color:#424242;font-size:11px;color:#919191;line-height:14px;text-transform:uppercase}.filter-holder .buttons-holder .button-set.active{background-color:#3b73ed;color:#dadada;cursor:pointer}.filter-holder .buttons-holder .button-set.active:hover{cursor:pointer;background-color:#e9effd;color:#0b49d1}.money-filter{padding:5px 6px 6px;width:300px}.money-filter .button-clear,.money-filter .button-set{width:142px!important}.location-filter{padding:10px 8px 6px;width:300px}\n"] }]
451
+ ], encapsulation: ViewEncapsulation.Emulated, animations: [showAnimation('showAnimation'), closeForm('closeForm')], template: "<div\n class=\"user-icon d-flex justify-content-center align-items-center\"\n app-ca-autoclose-popover\n [customClass]=\"'filterpopovermain'\"\n [placement]=\"isCollapsibleFilter ? 'right' : 'bottom-left'\"\n autoClose=\"outside\"\n (closeFilter)=\"onFilterClose()\"\n (openFilter)=\"onFilterShown()\"\n [ngClass]=\"{\n 'active-options': isFilterActive,\n 'clear-colors': isHoverClosed,\n 'filter-active-colors': isFilterActiveColor,\n 'active-collapsible': isCollapsibleFilter\n }\"\n (mouseenter)=\"isFilterHoveredOver = true\"\n (mouseleave)=\"isFilterHoveredOver = false\"\n>\n <div\n mainContent\n ngbTooltip\n mainCaTooltip=\"{{\n 'mainTooltip'\n | filterPopoverConditionsPipe\n : getComponentInstance()\n : caMoneyFilter\n : caStatusFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n }}\"\n position=\"bottom\"\n tooltipBackground=\"{{ isFilterActive ? '#CCCCCC' : '#2F2F2F' }}\"\n tooltipColor=\"{{ isFilterActive ? '#2F2F2F' : '#FFFFFF' }}\"\n tooltipTextAlign=\"center\"\n class=\"main-icon-holder d-flex justify-content-center align-items-center\"\n >\n <div>\n <svg-icon [src]=\"icon | caSvg : 'common'\"></svg-icon>\n </div>\n <ng-container *ngIf=\"isFilterActiveColor\">\n <ng-container *ngIf=\"!isFilterHoveredOver; else closeButton\">\n <ng-container\n *ngIf=\"!isNotDropdown() && getFilterCount(); else checkmark\"\n >\n <div\n class=\"filters-selected-value-holder d-flex justify-content-center align-items-center ta-font-extra-bold\"\n >\n {{ getFilterCount() }}\n </div>\n </ng-container>\n\n <ng-template #checkmark>\n <div\n class=\"filters-selected-value-holder d-flex justify-content-center align-items-center\"\n >\n <svg-icon [src]=\"getSvgPath('iconConfirm')\"></svg-icon>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-template #closeButton>\n <div\n class=\"filters-selected-value-holder d-flex justify-content-center align-items-center\"\n (mouseenter)=\"isHoverClosed = true\"\n (mouseleave)=\"isHoverClosed = false\"\n (click)=\"clearAllValues($event)\"\n >\n <svg-icon [src]=\"getSvgPath('cancelViolation')\"></svg-icon>\n </div>\n </ng-template>\n </ng-container>\n </div>\n\n <div popoverContent class=\"main-popover-body\">\n <ng-container *ngIf=\"isCollapsibleFilter\">\n <app-ca-collapsible-filter\n (onTagEmit)=\"setFilterValue($event)\"\n [filterArray]=\"pmFilterArray\"\n [type]=\"type\"\n ></app-ca-collapsible-filter>\n </ng-container>\n <ng-container *ngIf=\"!isButtonFilter && !isCollapsibleFilter\">\n <div\n [@showAnimation]=\"!!isFilterActive\"\n class=\"filter-holder d-flex justify-content-start align-items-start\"\n [class.state-filter]=\"type === 'stateFilter'\"\n [class.department-filter]=\"hasNoLeftIcon\"\n [class.status-filter]=\"type === 'statusFilter'\"\n [class.pm-filter]=\"hasLeftSideIcon\"\n [class.truck-icon-holder]=\"hasLargeLeftIcon\"\n [class.money-filter]=\"type === 'moneyFilter' || type === 'milesFilter'\"\n [class.location-filter]=\"type === 'locationFilter'\"\n >\n <div\n class=\"filter-header filter-text-part d-flex justify-content-between align-items-center\"\n [class.activeHeader]=\"!isSearchExpanded\"\n [class.inactiveHeader]=\"isSearchExpanded\"\n >\n <div\n class=\"user-title-text counter-padd-title d-flex align-items-center ca-font-bold\"\n >\n {{ filterTitle | uppercase }}\n\n <ng-container\n *ngIf=\"\n (type === 'dispatcherFilter' ||\n type === 'driverFilter' ||\n type === 'fuelStopFilter' ||\n type === 'brokerFilter') &&\n caDispatcherFilter?.selectedUser?.length\n \"\n >\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1\"\n >\n {{ caDispatcherFilter?.selectedUser?.length }}\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"\n 'userBox'\n | filterPopoverConditionsPipe\n : getComponentInstance()\n : caMoneyFilter\n : caStatusFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n \"\n >\n <ng-container\n *ngIf=\"\n type\n | filterConditionsUserBox\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caStatusFilter\n : caPmFilter as filterResult\n \"\n >\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1\"\n >\n {{ filterResult }}\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <ng-container\n *ngIf=\"\n 'sortItems'\n | filterPopoverConditionsPipe\n : getComponentInstance()\n : caMoneyFilter\n : caStatusFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter;\n else truckFilter\n \"\n >\n <div\n (click)=\"sortItems()\"\n class=\"user-title-text sort-text ta-font-medium d-flex align-items-center justify-content-end\"\n >\n {{\n type === 'statusFilter' ||\n type === 'dispatcherFilter' ||\n type === 'driverFilter' ||\n type === 'fuelStopFilter' ||\n type === 'brokerFilter'\n ? 'Count'\n : 'Name'\n }}\n <svg-icon\n class=\"sort-arrow ms-1\"\n [class.rotate]=\"!isAscendingSortOrder\"\n [src]=\"getSvgPath('sortArrowSvgRoute')\"\n [svgStyle]=\"{\n 'width.px': '18',\n 'height.px': '18',\n }\"\n ></svg-icon>\n </div>\n </ng-container>\n <ng-template #truckFilter>\n <ng-container\n *ngIf=\"\n (type === 'truckFilter' ||\n type === 'truckTypeFilter' ||\n type === 'trailerFilter') &&\n isRepairFilter;\n else stateFilter\n \"\n >\n <div\n (click)=\"sortItems()\"\n class=\"user-title-text sort-text d-flex align-items-center justify-content-end\"\n >\n Count\n <svg-icon [src]=\"getSvgPath('sortArrowSvgRoute')\"></svg-icon>\n </div>\n </ng-container>\n </ng-template>\n <ng-template #stateFilter>\n <ng-container *ngIf=\"type === 'stateFilter'; else searchState\">\n <div\n class=\"user-filter-box d-flex flex-column justify-content-center align-items-center ca-font-bold ms-1\"\n >\n {{\n (caStateFilter?.canadaSelectedStates)!.length +\n (caStateFilter?.usaSelectedStates)!.length\n }}\n </div>\n </ng-container>\n </ng-template>\n <ng-template #searchState>\n <ng-container *ngIf=\"!searchState\">\n <div\n class=\"search-icon-holder d-flex justify-content-center align-items-center\"\n (click)=\"showSearch()\"\n >\n <svg-icon [src]=\"getSvgPath('searchIconRoute')\"></svg-icon>\n </div>\n </ng-container>\n </ng-template>\n </div>\n <div class=\"filter-body-holder\">\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'moneyFilter'\">\n <app-ca-money-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [isMoneyFilter]=\"true\"\n [isMilesFilter]=\"false\"\n [isFuelType]=\"isFuelType\"\n [isLoadType]=\"isLoadType\"\n [subType]=\"subType\"\n [isFilterActive]=\"isFilterActive\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'milesFilter'\">\n <app-ca-money-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [isMoneyFilter]=\"false\"\n [isMilesFilter]=\"true\"\n [isFuelType]=\"isFuelType\"\n [isLoadType]=\"isLoadType\"\n [subType]=\"subType\"\n [isFilterActive]=\"isFilterActive\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'statusFilter'\">\n <app-ca-status-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [loadStatusOptionsArray]=\"loadStatusOptionsArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'timeFilter'\">\n <app-ca-time-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [timeSubType]=\"timeSubType\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'dispatcherFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'driverFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'fuelStopFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'brokerFilter'\">\n <app-ca-dispatcher-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [unselectedUser]=\"unselectedUser\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'stateFilter'\">\n <app-ca-state-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [isSearchExpanded]=\"isSearchExpanded\"\n [usaStates]=\"usaStates\"\n [canadaStates]=\"canadaStates\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'truckTypeFilter'\">\n <app-ca-truck-type-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [isRepairFilter]=\"isRepairFilter\"\n [truckTypeArray]=\"truckTypeArray\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'trailerTypeFilter'\">\n <app-ca-trailer-type-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [trailerTypeArray]=\"trailerTypeArray\"\n [isRepairFilter]=\"isRepairFilter\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'pmFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'categoryRepairFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'fuelItemFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'departmentFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'parkingFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'tagFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'actionFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'labelFilter'\">\n <app-ca-pm-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [pmFilterArray]=\"pmFilterArray\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'userFilter'\">\n <app-ca-user-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [userGroup]=\"userGroup\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'moduleFilter'\">\n <app-ca-user-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [userGroup]=\"userGroup\"\n [isSearchExpanded]=\"isSearchExpanded\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'locationFilter'\">\n <app-ca-location-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n [addressList]=\"addressList\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'violationFilter'\">\n <app-ca-violation-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [type]=\"type\"\n [isFilterActive]=\"isFilterActive\"\n />\n </ng-container>\n </ng-container>\n </div>\n <div\n class=\"buttons-holder d-flex justify-content-between align-items-center\"\n [class.buttons-long]=\"type === 'locationFilter'\"\n >\n <div\n (click)=\"clearAllValues($event)\"\n class=\"button-clear d-flex justify-content-center align-items-center ca-font-bold\"\n [class.active]=\"\n type\n | filterConditionsClear\n : caMoneyFilter\n : caStatusFilter\n : caTimeFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caLocationFilter\n : caUserFilter\n : caViolationFilter\n \"\n >\n Clear All\n </div>\n <div\n (click)=\"setFilterValue($event)\"\n class=\"button-set d-flex justify-content-center align-items-center ca-font-bold\"\n [class.active]=\"\n type\n | filterConditionsSet\n : caMoneyFilter\n : caStatusFilter\n : caTimeFilter\n : caDispatcherFilter\n : caStateFilter\n : caTruckTypeFilter\n : caTrailerTypeFilter\n : caPmFilter\n : caLocationFilter\n : caUserFilter\n : caViolationFilter\n \"\n >\n Set\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n<!-- <div class=\"d-flex\">\n <ng-container *ngIf=\"isCollapsibleFilter\">\n <app-ca-collapsible-filter\n (setFilter)=\"setFilterValue($event)\"\n (clearAll)=\"clearAllValues($event)\"\n [filterArray]=\"pmFilterArray\"\n [isExpanded]=\"isFilterActive\"\n ></app-ca-collapsible-filter>\n </ng-container>\n </div> -->\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:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-16{color:#e9effd!important}.text-color-blue-16::-moz-selection{background:#66921833!important;color:#e9effd!important}.text-color-blue-16::selection{background:#66921833!important;color:#e9effd!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background:#ed929233!important;color:#ed9292!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#fff!important}.text-color-white::-moz-selection{color:#fff!important;background:#fff3!important}.text-color-white::selection{color:#fff!important;background:#fff3!important}.text-color-white-2{color:#fff!important}.text-color-white-2::-moz-selection{color:#fff!important;background:#fff3!important}.text-color-white-2::selection{color:#fff!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!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{fill:#424242!important}.svg-fill-white svg path{fill:#fff!important}.svg-fill-white-2 svg path{fill:#fff!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-8 svg path{fill:#6692f1!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-17 svg path{fill:#bed0f9!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-fill-white-4 svg path{fill:#ffffffb2!important}.svg-fill-grey svg path{fill:#919191!important}.svg-fill-red-10 svg path{fill:#e66767!important}.svg-fill-green svg path{fill:#56b4ac!important}.svg-hover-white svg path{transition:all .3s ease-in-out}.svg-hover-white:hover svg path{fill:#fff!important}.svg-hover-white-2 svg path{transition:all .3s ease-in-out}.svg-hover-white-2:hover svg path{fill:#fff!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-grey-4 svg path{transition:all .3s ease-in-out}.svg-hover-grey-4:hover svg path{fill:#ccc!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-10 svg path{transition:all .3s ease-in-out}.svg-hover-blue-10:hover svg path{fill:#bed0f9!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-blue-19 svg path{transition:all .3s ease-in-out}.svg-hover-blue-19:hover svg path{fill:#92b1f5!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.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-18 svg{width:18px;height:18px}.svg-size-22 svg{width:22px;height:22px}.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}.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}.user-icon{position:relative;width:fit-content;min-width:26px;border-radius:2px;cursor:pointer;padding:4px}.user-icon .main-icon-holder{gap:4px}.user-icon .main-icon-holder .filters-selected-value-holder{width:14px;height:14px;font-size:11px;line-height:14px;color:#fff}.user-icon .main-icon-holder .filters-selected-value-holder svg{width:14px;height:14px}.user-icon svg-icon svg{width:18px;height:18px;display:flex}.user-icon:hover{background-color:#eee}.user-icon:hover .main-icon-holder svg-icon svg path{fill:#424242!important}.user-icon .main-icon-holder svg-icon svg path{fill:#919191!important}.user-icon.active-collapsible{background-color:#2f2f2f}.user-icon.active-options{background-color:#424242}.user-icon.active-options .main-icon-holder svg-icon svg path{fill:#ffffff70!important}.user-icon.active-options .clear-filter{display:none!important}.user-icon.active-options:hover .main-icon-holder svg-icon svg path{fill:#fff!important}.user-icon.filter-active-colors{background-color:#3b73ed}.user-icon.filter-active-colors .main-icon-holder svg-icon svg path{fill:#bed0f9!important}.user-icon.filter-active-colors .main-icon-holder svg-icon:hover svg path{fill:#fff!important}.user-icon.filter-active-colors:hover{background-color:#0b49d1!important;transition:.2s all}.user-icon.clear-colors{background:#3b73ed!important}.user-icon.clear-colors:hover{background:#0b49d1!important}.filter-holder{position:relative;width:260px;padding:4px;border-radius:3px;background-color:#2f2f2f;box-shadow:0 0 4px #00000026;flex-direction:column;overflow:hidden}.filter-holder .filter-header{position:relative;width:100%;padding-top:2px;box-sizing:border-box;-webkit-user-select:none;user-select:none}.filter-holder .filter-header .user-filter-box{width:18px;height:18px;padding:4px;border-radius:60px;background-color:#424242;font-size:11px;color:#fff;line-height:14px}.filter-holder .filter-header .user-title-text{line-height:14px;font-size:11px;color:#fff;padding:0 4px;box-sizing:border-box}.filter-holder .filter-header .user-title-text.sort-text{border-radius:1px;transition:background .2s ease-in-out}.filter-holder .filter-header .user-title-text.sort-text .sort-arrow{transform:rotate(0);transition:transform .2s}.filter-holder .filter-header .user-title-text.sort-text .sort-arrow.rotate{transform:rotate(180deg)}.filter-holder .filter-header .user-title-text.sort-text:hover{cursor:pointer;background:#1d1d1d}.filter-holder .filter-header .user-title-text.counter-padd-title{padding-left:2px;padding-right:6px}.filter-holder .filter-header .search-icon-holder{position:absolute;width:18px;height:18px;width:252px;top:3px;right:4px;cursor:pointer}.filter-holder .filter-header .search-icon-holder svg-icon svg{width:17.1px;height:17.1px}.filter-holder .filter-header .search-icon-holder svg-icon svg path{fill:#aaa}.filter-holder .filter-header .search-icon-holder:hover svg-icon svg path{fill:#6c6c6c}.filter-holder .filter-body-holder{width:100%}.filter-holder .buttons-long .buttons-holder{padding:0}.filter-holder .buttons-long .button-clear,.filter-holder .buttons-long .button-set{width:140px!important}.filter-holder .buttons-holder{width:100%;padding:0;box-sizing:border-box;-webkit-user-select:none;user-select:none}.filter-holder .buttons-holder .button-clear{width:124px;height:18px;border-radius:1px;background-color:#424242;font-size:11px;color:#919191;line-height:14px;text-transform:uppercase}.filter-holder .buttons-holder .button-clear.active{cursor:pointer;color:#fff}.filter-holder .buttons-holder .button-clear.active:hover{cursor:pointer;background-color:#eee;color:#424242}.filter-holder .buttons-holder .button-set{width:124px;height:18px;border-radius:1px;background-color:#424242;font-size:11px;color:#919191;line-height:14px;text-transform:uppercase}.filter-holder .buttons-holder .button-set.active{background-color:#3b73ed;color:#fff;cursor:pointer}.filter-holder .buttons-holder .button-set.active:hover{cursor:pointer;background-color:#e9effd;color:#0b49d1}.money-filter{padding:5px 6px 6px;width:300px}.money-filter .button-clear,.money-filter .button-set{width:142px!important}.location-filter{padding:10px 8px 6px;width:300px}\n"] }]
452
452
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { t2: [{
453
453
  type: ViewChild,
454
454
  args: ['t2']
@@ -544,4 +544,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
544
544
  }], clearAll: [{
545
545
  type: Output
546
546
  }] } });
547
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY2EtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY2EtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUVULGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLFVBQVU7QUFDVixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLGFBQWE7QUFDYixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBSWxFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxRQUFRO0FBQ1IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXBELFFBQVE7QUFDUixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQVM3RSxhQUFhO0FBQ2IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDaEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbkcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDN0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDL0csT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDaEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDOUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDcEgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDekcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDN0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDckcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDNUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7O0FBc0N4RyxNQUFNLE9BQU8saUJBQWlCO0lBd0Y1QixZQUFvQixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBOUM5QixnQkFBVyxHQUFXLHVCQUF1QixDQUFDLElBQUksQ0FBQztRQUNuRCxZQUFPLEdBQVcsdUJBQXVCLENBQUMsY0FBYyxDQUFDO1FBUXpELG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2hDLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUVsQyxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUM5QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0Isd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBUXBDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFFbkMsQ0FBQztRQUVNLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFFbEMsQ0FBQztRQUVJLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWhDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2hDLGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyx5QkFBb0IsR0FBWSxJQUFJLENBQUM7UUFFckMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0Isd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsd0JBQW1CLEdBQVksS0FBSyxDQUFDO0lBRUYsQ0FBQztJQUVwQyxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sYUFBYTtRQUNsQixPQUFPLENBQ0wsSUFBSSxDQUFDLElBQUksS0FBSyx1QkFBdUIsQ0FBQyxZQUFZO1lBQ2xELElBQUksQ0FBQyxJQUFJLEtBQUssdUJBQXVCLENBQUMsV0FBVztZQUNqRCxJQUFJLENBQUMsSUFBSSxLQUFLLHVCQUF1QixDQUFDLFlBQVk7WUFDbEQsSUFBSSxDQUFDLElBQUksS0FBSyx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FDdkQsQ0FBQztJQUNKLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sQ0FDTCxJQUFJLENBQUMsVUFBVSxFQUFFLHFCQUFxQixDQUFDLE1BQU07WUFDN0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsTUFBTTtZQUN4QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsd0JBQXdCLENBQUMsTUFBTTtZQUN6RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsc0JBQXNCLENBQUMsTUFBTTtZQUNyRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDNUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO1lBQzVDLElBQUksQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLENBQUMsTUFBTSxDQUNoRCxDQUFDO0lBQ0osQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFFNUIsSUFBSSxpQkFBaUIsQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyx1QkFBdUIsQ0FBQyxXQUFXO2dCQUNuRCxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUNqRCxxQkFBcUIsRUFDckIsSUFBSSxDQUNMLENBQUM7O2dCQUVGLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQ2pELGdCQUFnQixFQUNoQixJQUFJLENBQ0wsQ0FBQztRQUNOLENBQUM7UUFFRCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixLQUFLLHVCQUF1QixDQUFDLFlBQVksQ0FBQztZQUMxQyxLQUFLLHVCQUF1QixDQUFDLFlBQVk7Z0JBQ3ZDLElBQUksSUFBSSxDQUFDLGFBQWE7b0JBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDM0QsTUFBTTtZQUVSLEtBQUssdUJBQXVCLENBQUMsYUFBYTtnQkFDeEMsSUFBSSxJQUFJLENBQUMsY0FBYztvQkFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM3RCxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxXQUFXO2dCQUN0QyxJQUFJLElBQUksQ0FBQyxZQUFZO29CQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3pELE1BQU07WUFFUixLQUFLLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDO1lBQy9DLEtBQUssdUJBQXVCLENBQUMsYUFBYSxDQUFDO1lBQzNDLEtBQUssdUJBQXVCLENBQUMsZ0JBQWdCLENBQUM7WUFDOUMsS0FBSyx1QkFBdUIsQ0FBQyxhQUFhO2dCQUN4QyxJQUFJLElBQUksQ0FBQyxrQkFBa0I7b0JBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyRSxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxZQUFZO2dCQUN2QyxJQUFJLElBQUksQ0FBQyxhQUFhO29CQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzNELE1BQU07WUFFUixLQUFLLHVCQUF1QixDQUFDLGlCQUFpQjtnQkFDNUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCO29CQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDbkUsTUFBTTtZQUVSLEtBQUssdUJBQXVCLENBQUMsbUJBQW1CO2dCQUM5QyxJQUFJLElBQUksQ0FBQyxtQkFBbUI7b0JBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN2RSxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7WUFDdkMsS0FBSyx1QkFBdUIsQ0FBQyxzQkFBc0IsQ0FBQztZQUNwRCxLQUFLLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDO1lBQzlDLEtBQUssdUJBQXVCLENBQUMsaUJBQWlCLENBQUM7WUFDL0MsS0FBSyx1QkFBdUIsQ0FBQyxjQUFjLENBQUM7WUFDNUMsS0FBSyx1QkFBdUIsQ0FBQyxVQUFVLENBQUM7WUFDeEMsS0FBSyx1QkFBdUIsQ0FBQyxhQUFhLENBQUM7WUFDM0MsS0FBSyx1QkFBdUIsQ0FBQyxZQUFZO2dCQUN2QyxJQUFJLElBQUksQ0FBQyxVQUFVO29CQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JELE1BQU07WUFFUixLQUFLLHVCQUF1QixDQUFDLFdBQVcsQ0FBQztZQUN6QyxLQUFLLHVCQUF1QixDQUFDLGFBQWE7Z0JBQ3hDLElBQUksSUFBSSxDQUFDLFlBQVk7b0JBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDekQsTUFBTTtZQUVSLEtBQUssdUJBQXVCLENBQUMsZUFBZTtnQkFDMUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCO29CQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUNyRSxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxnQkFBZ0I7Z0JBQzNDLElBQUksSUFBSSxDQUFDLGlCQUFpQjtvQkFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ25FLE1BQU07WUFFUixLQUFLLHVCQUF1QixDQUFDLGVBQWU7Z0JBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUNqQixNQUFNLEVBQUUsdUJBQXVCLENBQUMsS0FBSztvQkFDckMsVUFBVSxFQUFFLHVCQUF1QixDQUFDLGVBQWU7b0JBQ25ELFFBQVEsRUFBRSxLQUFLO2lCQUNoQixDQUFDLENBQUM7Z0JBQ0gsTUFBTTtZQUVSO2dCQUNFLE1BQU07UUFDVixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUV2QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssdUJBQXVCLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxHQUFHO2dCQUNuQyxVQUFVLEVBQUUsdUJBQXVCLENBQUMsZUFBZTtnQkFDbkQsUUFBUSxFQUFFLElBQUk7YUFDZixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFNBQVM7UUFDZCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixLQUFLLHVCQUF1QixDQUFDLGFBQWE7Z0JBQ3hDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNoQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDdkUsQ0FBQztnQkFDRCxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQztZQUMvQyxLQUFLLHVCQUF1QixDQUFDLGFBQWEsQ0FBQztZQUMzQyxLQUFLLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDO1lBQzlDLEtBQUssdUJBQXVCLENBQUMsYUFBYTtnQkFDeEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNwQyxJQUFJLENBQUMsb0JBQW9CO3dCQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7Z0JBQ2pELENBQUM7Z0JBQ0QsTUFBTTtZQUVSLEtBQUssdUJBQXVCLENBQUMsaUJBQWlCO2dCQUM1QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO29CQUMzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ25DLElBQUksQ0FBQyxvQkFBb0I7d0JBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDaEQsQ0FBQztnQkFDRCxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxtQkFBbUI7Z0JBQzlDLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7b0JBQzdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDckMsSUFBSSxDQUFDLG9CQUFvQjt3QkFDdkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDO2dCQUNsRCxDQUFDO2dCQUNELE1BQU07WUFFUixLQUFLLHVCQUF1QixDQUFDLFNBQVMsQ0FBQztZQUN2QyxLQUFLLHVCQUF1QixDQUFDLHNCQUFzQixDQUFDO1lBQ3BELEtBQUssdUJBQXVCLENBQUMsZ0JBQWdCLENBQUM7WUFDOUMsS0FBSyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQztZQUMvQyxLQUFLLHVCQUF1QixDQUFDLGNBQWMsQ0FBQztZQUM1QyxLQUFLLHVCQUF1QixDQUFDLFVBQVUsQ0FBQztZQUN4QyxLQUFLLHVCQUF1QixDQUFDLGFBQWEsQ0FBQztZQUMzQyxLQUFLLHVCQUF1QixDQUFDLFlBQVk7Z0JBQ3ZDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUM1QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkUsQ0FBQztnQkFDRCxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxXQUFXLENBQUM7WUFDekMsS0FBSyx1QkFBdUIsQ0FBQyxhQUFhO2dCQUN4QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3JFLENBQUM7Z0JBQ0QsTUFBTTtZQUVSO2dCQUNFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2pDLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFZO1FBQzVCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFZO1FBQ2hDLElBQUksWUFBK0QsQ0FBQztRQUNwRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBRWhDLElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3pELFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNqQyxPQUFPO1FBQ1QsQ0FBQztRQUVELFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLEtBQUssdUJBQXVCLENBQUMsWUFBWSxDQUFDO1lBQzFDLEtBQUssdUJBQXVCLENBQUMsWUFBWTtnQkFDdkMsSUFBSSxJQUFJLENBQUMsYUFBYTtvQkFDcEIsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxRCxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxhQUFhO2dCQUN4QyxJQUFJLElBQUksQ0FBQyxjQUFjO29CQUNyQixZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdEQsTUFBTTtZQUVSLEtBQUssdUJBQXVCLENBQUMsV0FBVztnQkFDdEMsSUFBSSxJQUFJLENBQUMsWUFBWTtvQkFDbkIsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQztZQUMvQyxLQUFLLHVCQUF1QixDQUFDLGFBQWEsQ0FBQztZQUMzQyxLQUFLLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDO1lBQzlDLEtBQUssdUJBQXVCLENBQUMsYUFBYTtnQkFDeEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCO29CQUN6QixZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0QsTUFBTTtZQUVSLEtBQUssdUJBQXVCLENBQUMsWUFBWTtnQkFDdkMsSUFBSSxJQUFJLENBQUMsYUFBYTtvQkFDcEIsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3JELE1BQU07WUFFUixLQUFLLHVCQUF1QixDQUFDLGlCQUFpQjtnQkFDNUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCO29CQUN4QixZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN6RCxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxtQkFBbUI7Z0JBQzlDLElBQUksSUFBSSxDQUFDLG1CQUFtQjtvQkFDMUIsWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDM0QsTUFBTTtZQUVSLEtBQUssdUJBQXVCLENBQUMsU0FBUyxDQUFDO1lBQ3ZDLEtBQUssdUJBQXVCLENBQUMsc0JBQXNCLENBQUM7WUFDcEQsS0FBSyx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQztZQUM5QyxLQUFLLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDO1lBQy9DLEtBQUssdUJBQXVCLENBQUMsY0FBYyxDQUFDO1lBQzVDLEtBQUssdUJBQXVCLENBQUMsVUFBVSxDQUFDO1lBQ3hDLEtBQUssdUJBQXVCLENBQUMsYUFBYSxDQUFDO1lBQzNDLEtBQUssdUJBQXVCLENBQUMsWUFBWTtnQkFDdkMsSUFBSSxJQUFJLENBQUMsVUFBVTtvQkFBRSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDckUsTUFBTTtZQUVSLEtBQUssdUJBQXVCLENBQUMsV0FBVyxDQUFDO1lBQ3pDLEtBQUssdUJBQXVCLENBQUMsYUFBYTtnQkFDeEMsSUFBSSxJQUFJLENBQUMsWUFBWTtvQkFDbkIsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxlQUFlO2dCQUMxQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0I7b0JBQ3ZCLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3hELE1BQU07WUFFUixLQUFLLHVCQUF1QixDQUFDLGdCQUFnQjtnQkFDM0MsSUFBSSxJQUFJLENBQUMsaUJBQWlCO29CQUN4QixZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUQsTUFBTTtZQUVSO2dCQUNFLE1BQU0sTUFBTSxHQUFHLHVCQUF1QixDQUFDLFlBQVksQ0FBQztnQkFDcEQsTUFBTSxJQUFJLEdBQUcsdUJBQXVCLENBQUMsWUFBWSxDQUFDO2dCQUNsRCxNQUFNLFVBQVUsR0FBRyx1QkFBdUIsQ0FBQyxZQUFZLENBQUM7Z0JBQ3hELE1BQU0sSUFBSSxHQUFHO29CQUNYLE1BQU07b0JBQ04sSUFBSTtvQkFDSixVQUFVO2lCQUNYLENBQUM7Z0JBQ0YsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDcEIsTUFBTTtRQUNWLENBQUM7UUFFRCxJQUFJLFlBQVk7WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sYUFBYSxDQUNsQixJQUF1RDtRQUV2RCxJQUFJLElBQUksQ0FBQyxTQUFTO1lBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFhO1FBQ2pDLElBQUksWUFBK0QsQ0FBQztRQUNwRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTNCLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLEtBQUssdUJBQXVCLENBQUMsWUFBWSxDQUFDO1lBQzFDLEtBQUssdUJBQXVCLENBQUMsWUFBWTtnQkFDdkMsSUFBSSxJQUFJLENBQUMsYUFBYTtvQkFDcEIsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwRCxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxhQUFhO2dCQUN4QyxJQUFJLElBQUksQ0FBQyxjQUFjO29CQUNyQixZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JELE1BQU07WUFFUixLQUFLLHVCQUF1QixDQUFDLFdBQVc7Z0JBQ3RDLElBQUksSUFBSSxDQUFDLFlBQVk7b0JBQUUsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4RSxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQztZQUMvQyxLQUFLLHVCQUF1QixDQUFDLGFBQWEsQ0FBQztZQUMzQyxLQUFLLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDO1lBQzlDLEtBQUssdUJBQXVCLENBQUMsYUFBYTtnQkFDeEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCO29CQUN6QixZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekQsTUFBTTtZQUVSLEtBQUssdUJBQXVCLENBQUMsWUFBWTtnQkFDdkMsSUFBSSxJQUFJLENBQUMsYUFBYTtvQkFDcEIsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwRCxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxpQkFBaUI7Z0JBQzVDLElBQUksSUFBSSxDQUFDLGlCQUFpQjtvQkFDeEIsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hELE1BQU07WUFFUixLQUFLLHVCQUF1QixDQUFDLG1CQUFtQjtnQkFDOUMsSUFBSSxJQUFJLENBQUMsbUJBQW1CO29CQUMxQixZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUQsTUFBTTtZQUVSLEtBQUssdUJBQXVCLENBQUMsU0FBUyxDQUFDO1lBQ3ZDLEtBQUssdUJBQXVCLENBQUMsc0JBQXNCLENBQUM7WUFDcEQsS0FBSyx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQztZQUM5QyxLQUFLLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDO1lBQy9DLEtBQUssdUJBQXVCLENBQUMsY0FBYyxDQUFDO1lBQzVDLEtBQUssdUJBQXVCLENBQUMsVUFBVSxDQUFDO1lBQ3hDLEtBQUssdUJBQXVCLENBQUMsYUFBYSxDQUFDO1lBQzNDLEtBQUssdUJBQXVCLENBQUMsWUFBWTtnQkFDdkMsSUFBSSxJQUFJLENBQUMsVUFBVTtvQkFBRSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BFLE1BQU07WUFFUixLQUFLLHVCQUF1QixDQUFDLFdBQVcsQ0FBQztZQUN6QyxLQUFLLHVCQUF1QixDQUFDLGFBQWE7Z0JBQ3hDLElBQUksSUFBSSxDQUFDLFlBQVk7b0JBQUUsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4RSxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxlQUFlO2dCQUMxQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0I7b0JBQ3ZCLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2RCxNQUFNO1lBRVIsS0FBSyx1QkFBdUIsQ0FBQyxnQkFBZ0I7Z0JBQzNDLElBQUksSUFBSSxDQUFDLGlCQUFpQjtvQkFDeEIsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hELE1BQU07WUFFUjtnQkFDRSxNQUFNLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQyxZQUFZLENBQUM7Z0JBQ3BELE1BQU0sSUFBSSxHQUFHLHVCQUF1QixDQUFDLFlBQVksQ0FBQztnQkFDbEQsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUMsWUFBWSxDQUFDO2dCQUN4RCxNQUFNLElBQUksR0FBRztvQkFDWCxNQUFNO29CQUNOLElBQUk7b0JBQ0osVUFBVTtpQkFDWCxDQUFDO2dCQUNGLFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLE1BQU07UUFDVixDQUFDO1FBRUQsSUFBSSxZQUFZO1lBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU0sa0JBQWtCLENBQ3ZCLElBQXVEO1FBRXZELElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sVUFBVSxDQUFDLFlBQTZDO1FBQzdELE9BQU8sWUFBWSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQTNlVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixrK0JBRWpCLDJCQUEyQixpRkFHM0IsdUJBQXVCLGdGQUd2QixzQkFBc0IsK0VBR3RCLHFCQUFxQixxRkFHckIsMkJBQTJCLGdGQUczQixzQkFBc0Isb0ZBR3RCLDBCQUEwQixzRkFHMUIsNEJBQTRCLDZFQUc1QixtQkFBbUIsc0ZBR25CLDRCQUE0QixtRkFHNUIseUJBQXlCLCtFQUd6QixxQkFBcUIsb0ZBR3JCLDBCQUEwQixnREN2SXZDLHN5b0JBMmdCQTtnQkR4Y0ksVUFBVTtnQkFDVixZQUFZLHlkQUNaLGdCQUFnQiw4QkFDaEIsb0JBQW9CLGdPQUNwQixTQUFTO2dCQUNULGFBQWE7Z0JBQ2Isc0JBQXNCLCtNQUN0Qix1QkFBdUIsOEpBQ3ZCLHFCQUFxQixrSEFDckIsMkJBQTJCLGdNQUMzQixzQkFBc0IscUpBQ3RCLDBCQUEwQixvTEFDMUIsNEJBQTRCLHdMQUM1QixtQkFBbUIsa0pBQ25CLHlCQUF5QixxS0FDekIscUJBQXFCLHFMQUNyQiwwQkFBMEIsdUhBQzFCLDJCQUEyQixtS0FDM0IsdUJBQXVCLHFPQUN2Qiw0QkFBNEI7Z0JBQzVCLFFBQVE7Z0JBQ1IsdUJBQXVCLHVEQUN2Qix5QkFBeUIseURBQ3pCLDJCQUEyQiwyREFDM0IsMkJBQTJCLCtEQUMzQixTQUFTLGdDQUdDLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQzs7NEZBRXpELGlCQUFpQjtrQkFwQzdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FHUDt3QkFDUCxVQUFVO3dCQUNWLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQiwyQkFBMkI7d0JBQzNCLHNCQUFzQjt3QkFDdEIsMEJBQTBCO3dCQUMxQiw0QkFBNEI7d0JBQzVCLG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6QixxQkFBcUI7d0JBQ3JCLDBCQUEwQjt3QkFDMUIsMkJBQTJCO3dCQUMzQix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsUUFBUTt3QkFDUix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsMkJBQTJCO3dCQUMzQiwyQkFBMkI7d0JBQzNCLFNBQVM7cUJBQ1YsaUJBQ2MsaUJBQWlCLENBQUMsUUFBUSxjQUM3QixDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7OEVBR25ELEVBQUU7c0JBQWxCLFNBQVM7dUJBQUMsSUFBSTtnQkFFUixTQUFTO3NCQURmLFNBQVM7dUJBQUMsMkJBQTJCO2dCQUkvQixjQUFjO3NCQURwQixTQUFTO3VCQUFDLHVCQUF1QjtnQkFJM0IsYUFBYTtzQkFEbkIsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBSTFCLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMscUJBQXFCO2dCQUl6QixrQkFBa0I7c0JBRHhCLFNBQVM7dUJBQUMsMkJBQTJCO2dCQUkvQixhQUFhO3NCQURuQixTQUFTO3VCQUFDLHNCQUFzQjtnQkFJMUIsaUJBQWlCO3NCQUR2QixTQUFTO3VCQUFDLDBCQUEwQjtnQkFJOUIsbUJBQW1CO3NCQUR6QixTQUFTO3VCQUFDLDRCQUE0QjtnQkFJaEMsVUFBVTtzQkFEaEIsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBSXZCLG1CQUFtQjtzQkFEekIsU0FBUzt1QkFBQyw0QkFBNEI7Z0JBSXZDLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLHlCQUF5QjtnQkFJN0IsWUFBWTtzQkFEbEIsU0FBUzt1QkFBQyxxQkFBcUI7Z0JBSXpCLGlCQUFpQjtzQkFEdkIsU0FBUzt1QkFBQywwQkFBMEI7Z0JBRzVCLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFJRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBSZW5kZXJlcjIsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG4vLyBtb2R1bGVzXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBOZ2JNb2R1bGUsIE5nYlBvcG92ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbi8vIGFuaW1hdGlvbnNcbmltcG9ydCB7IHNob3dBbmltYXRpb24gfSBmcm9tICcuLi8uLi9hbmltYXRpb25zL3Nob3cuYW5pbWF0aW9uJztcbmltcG9ydCB7IGNsb3NlRm9ybSB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvY2xvc2UtZm9ybS5hbmltYXRpb24nO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHsgQ2FGaWx0ZXJzU3ZnUm91dGVzIH0gZnJvbSAnLi4vY2EtZmlsdGVycy91dGlscy9zdmctcm91dGVzL2NhLWZpbHRlcnMtc3ZnLXJvdXRlcyc7XG5pbXBvcnQgeyBGaWx0ZXJIZWxwZXIgfSBmcm9tICcuL3V0aWxzL2hlbHBlcnMvZmlsdGVyLmhlbHBlcic7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBGaWx0ZXJDb25kaXRpb25zU2V0UGlwZSB9IGZyb20gJy4vcGlwZXMvZmlsdGVyLWNvbmRpdGlvbnMtc2V0LnBpcGUnO1xuaW1wb3J0IHsgRmlsdGVyQ29uZGl0aW9uc0NsZWFyUGlwZSB9IGZyb20gJy4vcGlwZXMvZmlsdGVyLWNvbmRpdGlvbnMtY2xlYXIucGlwZSc7XG5pbXBvcnQgeyBGaWx0ZXJQb3BvdmVyQ29uZGl0aW9uc1BpcGUgfSBmcm9tICcuL3BpcGVzL2ZpbHRlci1wb3BvdmVyLWNvbmRpdGlvbnMucGlwZSc7XG5pbXBvcnQgeyBGaWx0ZXJDb25kaXRpb25zVXNlckJveFBpcGUgfSBmcm9tICcuL3BpcGVzL2ZpbHRlci1jb25kaXRpb25zLXVzZXItYm94LnBpcGUnO1xuaW1wb3J0IHsgQ2FTdmdQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY2Etc3ZnLnBpcGUnO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgVG9vbGJhckZpbHRlclN0cmluZ0VudW0gfSBmcm9tICcuLi9jYS1tYXAvZW51bXMvdG9vbGJhci1maWx0ZXItc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgRmlsdGVyQWN0aW9uc1N0cmluZ0VudW0gfSBmcm9tICcuL2VudW1zL2ZpbHRlci1hY3Rpb25zLXN0cmluZy5lbnVtJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBBcnJheVN0YXR1cyB9IGZyb20gJy4uLy4uL21vZGVscy9hcnJheS1zdGF0dXMubW9kZWwnO1xuaW1wb3J0IHsgZmlsdGVyT3V0cHV0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbHRlci1vdXRwdXQubW9kZWwnO1xuaW1wb3J0IHsgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB9IGZyb20gJy4uLy4uL21vZGVscy9maWx0ZXItb3V0cHV0LXBhcmFtcy5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyR3JvdXAgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtdXNlci1maWx0ZXIvbW9kZWxzL2NhLXVzZXItZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc0xpc3QgfSBmcm9tICcuLi9jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duL21vZGVscy9hZGRyZXNzLWxpc3QubW9kZWwnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgeyBDYU1vbmV5RmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLW1vbmV5LWZpbHRlci9jYS1tb25leS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhU3RhdHVzRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXN0YXR1cy1maWx0ZXIvY2Etc3RhdHVzLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FUaW1lRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXRpbWUtZmlsdGVyL2NhLXRpbWUtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYURpc3BhdGNoZXJGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtZGlzcGF0Y2hlci1maWx0ZXIvY2EtZGlzcGF0Y2hlci1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhU3RhdGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2Etc3RhdGUtZmlsdGVyL2NhLXN0YXRlLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FUcnVja1R5cGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtdHJ1Y2stdHlwZS1maWx0ZXIvY2EtdHJ1Y2stdHlwZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhVHJhaWxlclR5cGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtdHJhaWxlci10eXBlLWZpbHRlci9jYS10cmFpbGVyLXR5cGUtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYVBtRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXBtLWZpbHRlci9jYS1wbS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhTG9jYXRpb25GaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtbG9jYXRpb24tZmlsdGVyL2NhLWxvY2F0aW9uLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FVc2VyRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXVzZXItZmlsdGVyL2NhLXVzZXItZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUF1dG9jbG9zZVBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hdXRvY2xvc2UtcG9wb3Zlci9jYS1hdXRvY2xvc2UtcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FWaW9sYXRpb25GaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtdmlvbGF0aW9uLWZpbHRlci9jYS12aW9sYXRpb24tZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUNvbGxhcHNpYmxlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2EtY29sbGFwc2libGUtZmlsdGVyL2NhLWNvbGxhcHNpYmxlLWZpbHRlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY2EtZmlsdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgLy8gbW9kdWxlc1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgIE5nYk1vZHVsZSxcbiAgICAvLyBjb21wb25lbnRzXG4gICAgQ2FNb25leUZpbHRlckNvbXBvbmVudCxcbiAgICBDYVN0YXR1c0ZpbHRlckNvbXBvbmVudCxcbiAgICBDYVRpbWVGaWx0ZXJDb21wb25lbnQsXG4gICAgQ2FEaXNwYXRjaGVyRmlsdGVyQ29tcG9uZW50LFxuICAgIENhU3RhdGVGaWx0ZXJDb21wb25lbnQsXG4gICAgQ2FUcnVja1R5cGVGaWx0ZXJDb21wb25lbnQsXG4gICAgQ2FUcmFpbGVyVHlwZUZpbHRlckNvbXBvbmVudCxcbiAgICBDYVBtRmlsdGVyQ29tcG9uZW50LFxuICAgIENhTG9jYXRpb25GaWx0ZXJDb21wb25lbnQsXG4gICAgQ2FVc2VyRmlsdGVyQ29tcG9uZW50LFxuICAgIENhVmlvbGF0aW9uRmlsdGVyQ29tcG9uZW50LFxuICAgIENhQXV0b2Nsb3NlUG9wb3ZlckNvbXBvbmVudCxcbiAgICBDYUFwcFRvb2x0aXBWMkNvbXBvbmVudCxcbiAgICBDYUNvbGxhcHNpYmxlRmlsdGVyQ29tcG9uZW50LFxuICAgIC8vIHBpcGVzXG4gICAgRmlsdGVyQ29uZGl0aW9uc1NldFBpcGUsXG4gICAgRmlsdGVyQ29uZGl0aW9uc0NsZWFyUGlwZSxcbiAgICBGaWx0ZXJDb25kaXRpb25zVXNlckJveFBpcGUsXG4gICAgRmlsdGVyUG9wb3ZlckNvbmRpdGlvbnNQaXBlLFxuICAgIENhU3ZnUGlwZSxcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gIGFuaW1hdGlvbnM6IFtzaG93QW5pbWF0aW9uKCdzaG93QW5pbWF0aW9uJyksIGNsb3NlRm9ybSgnY2xvc2VGb3JtJyldLFxufSlcbmV4cG9ydCBjbGFzcyBDYUZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ3QyJykgdDIhOiBOZ2JQb3BvdmVyO1xuICBAVmlld0NoaWxkKENhQXV0b2Nsb3NlUG9wb3ZlckNvbXBvbmVudClcbiAgcHVibGljIGF1dG9DbG9zZSE6IENhQXV0b2Nsb3NlUG9wb3ZlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhU3RhdHVzRmlsdGVyQ29tcG9uZW50KVxuICBwdWJsaWMgY2FTdGF0dXNGaWx0ZXIhOiBDYVN0YXR1c0ZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhTW9uZXlGaWx0ZXJDb21wb25lbnQpXG4gIHB1YmxpYyBjYU1vbmV5RmlsdGVyITogQ2FNb25leUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhVGltZUZpbHRlckNvbXBvbmVudClcbiAgcHVibGljIGNhVGltZUZpbHRlciE6IENhVGltZUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhRGlzcGF0Y2hlckZpbHRlckNvbXBvbmVudClcbiAgcHVibGljIGNhRGlzcGF0Y2hlckZpbHRlciE6IENhRGlzcGF0Y2hlckZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhU3RhdGVGaWx0ZXJDb21wb25lbnQpXG4gIHB1YmxpYyBjYVN0YXRlRmlsdGVyITogQ2FTdGF0ZUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhVHJ1Y2tUeXBlRmlsdGVyQ29tcG9uZW50KVxuICBwdWJsaWMgY2FUcnVja1R5cGVGaWx0ZXIhOiBDYVRydWNrVHlwZUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhVHJhaWxlclR5cGVGaWx0ZXJDb21wb25lbnQpXG4gIHB1YmxpYyBjYVRyYWlsZXJUeXBlRmlsdGVyITogQ2FUcmFpbGVyVHlwZUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhUG1GaWx0ZXJDb21wb25lbnQpXG4gIHB1YmxpYyBjYVBtRmlsdGVyITogQ2FQbUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhQ29sbGFwc2libGVGaWx0ZXJDb21wb25lbnQpXG4gIHB1YmxpYyBjYUNvbGxhcHNpYmxlRmlsdGVyITogQ2FDb2xsYXBzaWJsZUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhTG9jYXRpb25GaWx0ZXJDb21wb25lbnQpXG4gIGNhTG9jYXRpb25GaWx0ZXIhOiBDYUxvY2F0aW9uRmlsdGVyQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoQ2FVc2VyRmlsdGVyQ29tcG9uZW50KVxuICBwdWJsaWMgY2FVc2VyRmlsdGVyITogQ2FVc2VyRmlsdGVyQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoQ2FWaW9sYXRpb25GaWx0ZXJDb21wb25lbnQpXG4gIHB1YmxpYyBjYVZpb2xhdGlvbkZpbHRlciE6IENhVmlvbGF0aW9uRmlsdGVyQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIHR5cGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpbWVTdWJUeXBlOiBzdHJpbmcgPSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5QQVNUO1xuICBASW5wdXQoKSBzdWJUeXBlOiBzdHJpbmcgPSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5QRU5ESU5HX1NUQVRVUztcbiAgQElucHV0KCkgdW5zZWxlY3RlZFVzZXIhOiBBcnJheVN0YXR1c1tdO1xuICBASW5wdXQoKSB1c2VyR3JvdXAhOiBVc2VyR3JvdXBbXTtcbiAgQElucHV0KCkgbG9hZFN0YXR1c09wdGlvbnNBcnJheSE6IEFycmF5U3RhdHVzW107XG4gIEBJbnB1dCgpIHRydWNrVHlwZUFycmF5ITogQXJyYXlTdGF0dXNbXTtcbiAgQElucHV0KCkgdHJhaWxlclR5cGVBcnJheSE6IEFycmF5U3RhdHVzW107XG4gIEBJbnB1dCgpIHBtRmlsdGVyQXJyYXkhOiBBcnJheVN0YXR1c1tdO1xuXG4gIEBJbnB1dCgpIGlzUmVwYWlyRmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhhc05vTGVmdEljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaGFzTGVmdFNpZGVJY29uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhhc0xhcmdlTGVmdEljb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBpc01vbmV5RmlsdGVyOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgaXNNaWxlc0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0J1dHRvbkZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0Z1ZWxUeXBlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzTG9hZFR5cGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBpc0NvbGxhcHNpYmxlRmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZpbHRlclRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKSBpY29uITogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGFkZHJlc3NMaXN0ITogQWRkcmVzc0xpc3RbXTtcbiAgQElucHV0KCkgdXNhU3RhdGVzITogQXJyYXlTdGF0dXNbXTtcbiAgQElucHV0KCkgY2FuYWRhU3RhdGVzITogQXJyYXlTdGF0dXNbXTtcblxuICBAT3V0cHV0KCkgc2V0RmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBmaWx0ZXJPdXRwdXQgfCBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zXG4gID4oKTtcblxuICBAT3V0cHV0KCkgY2xlYXJBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXNcbiAgPigpO1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgaXNTZWFyY2hFeHBhbmRlZCE6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0ZpbHRlckFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2VsZWN0ZWRVc2VyOiBBcnJheVN0YXR1c1tdID0gW107XG4gIHB1YmxpYyBpc0FzY2VuZGluZ1NvcnRPcmRlcjogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBhdXRvQ2xvc2VDb21wb25lbnQhOiBRdWVyeUxpc3Q8Q2FBdXRvY2xvc2VQb3BvdmVyQ29tcG9uZW50PjtcbiAgcHVibGljIGlzSG92ZXJDbG9zZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzRmlsdGVySG92ZXJlZE92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzQW5pbWF0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzRmlsdGVyQWN0aXZlQ29sb3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgcHVibGljIGdldENvbXBvbmVudEluc3RhbmNlKCk6IENhRmlsdGVyQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBpc05vdERyb3Bkb3duKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnR5cGUgPT09IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLk1PTkVZX0ZJTFRFUiB8fFxuICAgICAgdGhpcy50eXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5USU1FX0ZJTFRFUiB8fFxuICAgICAgdGhpcy50eXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5NSUxFU19GSUxURVIgfHxcbiAgICAgIHRoaXMudHlwZSA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVklPTEFUSU9OX0ZJTFRFUlxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmlsdGVyQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jYVBtRmlsdGVyPy5zZWxlY3RlZFBtRmlsdGVyQXJyYXkubGVuZ3RoIHx8XG4gICAgICB0aGlzLmNhU3RhdHVzRmlsdGVyPy5zZWxlY3RlZFVzZXIubGVuZ3RoIHx8XG4gICAgICB0aGlzLmNhVHJhaWxlclR5cGVGaWx0ZXI/LnNlbGVjdGVkVHJhaWxlclR5cGVBcnJheS5sZW5ndGggfHxcbiAgICAgIHRoaXMuY2FUcnVja1R5cGVGaWx0ZXI/LnNlbGVjdGVkVHJ1Y2tUeXBlQXJyYXkubGVuZ3RoIHx8XG4gICAgICB0aGlzLmNhRGlzcGF0Y2hlckZpbHRlcj8uc2VsZWN0ZWRVc2VyLmxlbmd0aCB8fFxuICAgICAgdGhpcy5jYVN0YXRlRmlsdGVyPy51c2FTZWxlY3RlZFN0YXRlcy5sZW5ndGggfHxcbiAgICAgIHRoaXMuY2FTdGF0ZUZpbHRlcj8uY2FuYWRhU2VsZWN0ZWRTdGF0ZXMubGVuZ3RoXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZpbHRlckNsb3NlKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pc0ZpbHRlckFjdGl2ZSkgcmV0dXJuIGZhbHNlO1xuICAgIHRoaXMuaXNGaWx0ZXJBY3RpdmUgPSBmYWxzZTtcblxuICAgIGxldCBtYWluRWxlbWVudEhvbGRlcjtcblxuICAgIGlmICghdGhpcy5pc0J1dHRvbkZpbHRlcikge1xuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVElNRV9GSUxURVIpXG4gICAgICAgIG1haW5FbGVtZW50SG9sZGVyID0gdGhpcy5yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudChcbiAgICAgICAgICAnLnRpbWUtZmlsdGVyLWhvbGRlcicsXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgZWxzZVxuICAgICAgICBtYWluRWxlbWVudEhvbGRlciA9IHRoaXMucmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQoXG4gICAgICAgICAgJy5maWx0ZXItaG9sZGVyJyxcbiAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTU9ORVlfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5NSUxFU19GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhTW9uZXlGaWx0ZXIpIHRoaXMuY2FNb25leUZpbHRlci5vbkZpbHRlckNsb3NlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlNUQVRVU19GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhU3RhdHVzRmlsdGVyKSB0aGlzLmNhU3RhdHVzRmlsdGVyLm9uRmlsdGVyQ2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVElNRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVGltZUZpbHRlcikgdGhpcy5jYVRpbWVGaWx0ZXIub25GaWx0ZXJDbG9zZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5ESVNQQVRDSEVSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRFJJVkVSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRlVFTF9TVE9QX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uQlJPS0VSX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FEaXNwYXRjaGVyRmlsdGVyKSB0aGlzLmNhRGlzcGF0Y2hlckZpbHRlci5vbkZpbHRlckNsb3NlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlNUQVRFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FTdGF0ZUZpbHRlcikgdGhpcy5jYVN0YXRlRmlsdGVyLm9uRmlsdGVyQ2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVFJVQ0tfVFlQRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVHJ1Y2tUeXBlRmlsdGVyKSB0aGlzLmNhVHJ1Y2tUeXBlRmlsdGVyLm9uRmlsdGVyQ2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVFJBSUxFUl9UWVBFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FUcmFpbGVyVHlwZUZpbHRlcikgdGhpcy5jYVRyYWlsZXJUeXBlRmlsdGVyLm9uRmlsdGVyQ2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uUE1fRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5DQVRFR09SWV9SRVBBSVJfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5GVUVMX0lURU1fRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5ERVBBUlRNRU5UX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uUEFSS0lOR19GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlRBR19GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkFDVElPTl9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkxBQkVMX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FQbUZpbHRlcikgdGhpcy5jYVBtRmlsdGVyLm9uRmlsdGVyQ2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVVNFUl9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLk1PRFVMRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVXNlckZpbHRlcikgdGhpcy5jYVVzZXJGaWx0ZXIub25GaWx0ZXJDbG9zZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MT0NBVElPTl9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhTG9jYXRpb25GaWx0ZXIpIHRoaXMuY2FMb2NhdGlvbkZpbHRlci5vbkFyZWFGaWx0ZXJDbG9zZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5WSU9MQVRJT05fRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYVZpb2xhdGlvbkZpbHRlcikgdGhpcy5jYVZpb2xhdGlvbkZpbHRlci5vbkZpbHRlckNsb3NlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlZBQ0FUSU9OX0ZJTFRFUjpcbiAgICAgICAgdGhpcy5jbGVhckFsbC5lbWl0KHtcbiAgICAgICAgICBhY3Rpb246IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkNMRUFSLFxuICAgICAgICAgIGZpbHRlclR5cGU6IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlZBQ0FUSU9OX0ZJTFRFUixcbiAgICAgICAgICB2YWNhdGlvbjogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgb25GaWx0ZXJTaG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmlzRmlsdGVyQWN0aXZlID0gdHJ1ZTtcbiAgICB0aGlzLmlzQW5pbWF0ZWQgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVkFDQVRJT05fRklMVEVSKSB7XG4gICAgICB0aGlzLnNldEZpbHRlci5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5TRVQsXG4gICAgICAgIGZpbHRlclR5cGU6IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlZBQ0FUSU9OX0ZJTFRFUixcbiAgICAgICAgdmFjYXRpb246IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc29ydEl0ZW1zKCk6IHZvaWQge1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlNUQVRVU19GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhU3RhdHVzRmlsdGVyKSB7XG4gICAgICAgICAgdGhpcy5jYVN0YXR1c0ZpbHRlci5zb3J0SXRlbXMoKTtcbiAgICAgICAgICB0aGlzLmlzQXNjZW5kaW5nU29ydE9yZGVyID0gdGhpcy5jYVN0YXR1c0ZpbHRlci5pc0FzY2VuZGluZ1NvcnRPcmRlcjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5ESVNQQVRDSEVSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRFJJVkVSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRlVFTF9TVE9QX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uQlJPS0VSX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FEaXNwYXRjaGVyRmlsdGVyKSB7XG4gICAgICAgICAgdGhpcy5jYURpc3BhdGNoZXJGaWx0ZXIuc29ydEl0ZW1zKCk7XG4gICAgICAgICAgdGhpcy5pc0FzY2VuZGluZ1NvcnRPcmRlciA9XG4gICAgICAgICAgICB0aGlzLmNhRGlzcGF0Y2hlckZpbHRlci5pc0FzY2VuZGluZ1NvcnRPcmRlcjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5UUlVDS19UWVBFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FUcnVja1R5cGVGaWx0ZXIpIHtcbiAgICAgICAgICB0aGlzLmNhVHJ1Y2tUeXBlRmlsdGVyLnNvcnRJdGVtcygpO1xuICAgICAgICAgIHRoaXMuaXNBc2NlbmRpbmdTb3J0T3JkZXIgPVxuICAgICAgICAgICAgdGhpcy5jYVRydWNrVHlwZUZpbHRlci5pc0FzY2VuZGluZ1NvcnRPcmRlcjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5UUkFJTEVSX1RZUEVfRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYVRyYWlsZXJUeXBlRmlsdGVyKSB7XG4gICAgICAgICAgdGhpcy5jYVRyYWlsZXJUeXBlRmlsdGVyLnNvcnRJdGVtcygpO1xuICAgICAgICAgIHRoaXMuaXNBc2NlbmRpbmdTb3J0T3JkZXIgPVxuICAgICAgICAgICAgdGhpcy5jYVRyYWlsZXJUeXBlRmlsdGVyLmlzQXNjZW5kaW5nU29ydE9yZGVyO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlBNX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uQ0FURUdPUllfUkVQQUlSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRlVFTF9JVEVNX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uREVQQVJUTUVOVF9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlBBUktJTkdfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5UQUdfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5BQ1RJT05fRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MQUJFTF9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhUG1GaWx0ZXIpIHtcbiAgICAgICAgICB0aGlzLmNhUG1GaWx0ZXIuc29ydEl0ZW1zKCk7XG4gICAgICAgICAgdGhpcy5pc0FzY2VuZGluZ1NvcnRPcmRlciA9IHRoaXMuY2FQbUZpbHRlci5pc0FzY2VuZGluZ1NvcnRPcmRlcjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5VU0VSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTU9EVUxFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FVc2VyRmlsdGVyKSB7XG4gICAgICAgICAgdGhpcy5jYVVzZXJGaWx0ZXIuc29ydEl0ZW1zKCk7XG4gICAgICAgICAgdGhpcy5pc0FzY2VuZGluZ1NvcnRPcmRlciA9IHRoaXMuY2FVc2VyRmlsdGVyLmlzQXNjZW5kaW5nU29ydE9yZGVyO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmlzQXNjZW5kaW5nU29ydE9yZGVyID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNob3dTZWFyY2gobW9kPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKG1vZCkge1xuICAgICAgdGhpcy5pc1NlYXJjaEV4cGFuZGVkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNTZWFyY2hFeHBhbmRlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEZpbHRlclZhbHVlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGxldCBmaWx0ZXJSZXN1bHQ6IGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICAgdGhpcy5pc0ZpbHRlckFjdGl2ZUNvbG9yID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLmlzQ29sbGFwc2libGVGaWx0ZXIgJiYgdGhpcy5jYUNvbGxhcHNpYmxlRmlsdGVyKSB7XG4gICAgICBmaWx0ZXJSZXN1bHQgPSB0aGlzLmNhQ29sbGFwc2libGVGaWx0ZXIuc2V0RmlsdGVyVmFsdWUoKTtcbiAgICAgIHRoaXMuc2V0RmlsdGVyRW1pdChmaWx0ZXJSZXN1bHQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLk1PTkVZX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTUlMRVNfRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYU1vbmV5RmlsdGVyKVxuICAgICAgICAgIGZpbHRlclJlc3VsdCA9IHRoaXMuY2FNb25leUZpbHRlci5zZXRGaWx0ZXJWYWx1ZShldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlNUQVRVU19GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhU3RhdHVzRmlsdGVyKVxuICAgICAgICAgIGZpbHRlclJlc3VsdCA9IHRoaXMuY2FTdGF0dXNGaWx0ZXIuc2V0RmlsdGVyVmFsdWUoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVElNRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVGltZUZpbHRlcilcbiAgICAgICAgICBmaWx0ZXJSZXN1bHQgPSB0aGlzLmNhVGltZUZpbHRlci5zZXRGaWx0ZXJWYWx1ZShldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkRJU1BBVENIRVJfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5EUklWRVJfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5GVUVMX1NUT1BfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5CUk9LRVJfRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYURpc3BhdGNoZXJGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYURpc3BhdGNoZXJGaWx0ZXIuc2V0RmlsdGVyVmFsdWUoZXZlbnQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5TVEFURV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhU3RhdGVGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVN0YXRlRmlsdGVyLnNldEZpbHRlclZhbHVlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlRSVUNLX1RZUEVfRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYVRydWNrVHlwZUZpbHRlcilcbiAgICAgICAgICBmaWx0ZXJSZXN1bHQgPSB0aGlzLmNhVHJ1Y2tUeXBlRmlsdGVyLnNldEZpbHRlclZhbHVlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlRSQUlMRVJfVFlQRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVHJhaWxlclR5cGVGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVRyYWlsZXJUeXBlRmlsdGVyLnNldEZpbHRlclZhbHVlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlBNX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uQ0FURUdPUllfUkVQQUlSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRlVFTF9JVEVNX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uREVQQVJUTUVOVF9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlBBUktJTkdfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5UQUdfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5BQ1RJT05fRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MQUJFTF9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhUG1GaWx0ZXIpIGZpbHRlclJlc3VsdCA9IHRoaXMuY2FQbUZpbHRlci5zZXRGaWx0ZXJWYWx1ZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5VU0VSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTU9EVUxFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FVc2VyRmlsdGVyKVxuICAgICAgICAgIGZpbHRlclJlc3VsdCA9IHRoaXMuY2FVc2VyRmlsdGVyLnNldEZpbHRlclZhbHVlKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTE9DQVRJT05fRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYUxvY2F0aW9uRmlsdGVyKVxuICAgICAgICAgIGZpbHRlclJlc3VsdCA9IHRoaXMuY2FMb2NhdGlvbkZpbHRlci5zZXRGaWx0ZXJWYWx1ZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5WSU9MQVRJT05fRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYVZpb2xhdGlvbkZpbHRlcilcbiAgICAgICAgICBmaWx0ZXJSZXN1bHQgPSB0aGlzLmNhVmlvbGF0aW9uRmlsdGVyLnNldEZpbHRlclZhbHVlKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IEZpbHRlckFjdGlvbnNTdHJpbmdFbnVtLkFDVElPTl9DTEVBUjtcbiAgICAgICAgY29uc3QgdHlwZSA9IEZpbHRlckFjdGlvbnNTdHJpbmdFbnVtLlRZUEVfVU5LTk9XTjtcbiAgICAgICAgY29uc3QgZmlsdGVyVHlwZSA9IEZpbHRlckFjdGlvbnNTdHJpbmdFbnVtLlRZUEVfVU5LTk9XTjtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBmaWx0ZXJUeXBlLFxuICAgICAgICB9O1xuICAgICAgICBmaWx0ZXJSZXN1bHQgPSBkYXRhO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyUmVzdWx0KSB0aGlzLmF1dG9DbG9zZS5jbG9zZUN1c3RvbVBvcG92ZXIoKTtcbiAgICB0aGlzLnNldEZpbHRlckVtaXQoZmlsdGVyUmVzdWx0KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRGaWx0ZXJFbWl0KFxuICAgIGRhdGE6IGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXMgfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2V0RmlsdGVyKSB0aGlzLnNldEZpbHRlci5lbWl0KGRhdGEpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQWxsVmFsdWVzKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgZmlsdGVyUmVzdWx0OiBmaWx0ZXJPdXRwdXQgfCBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIHwgdW5kZWZpbmVkO1xuICAgIHRoaXMuaXNGaWx0ZXJBY3RpdmVDb2xvciA9IGZhbHNlO1xuICAgIHRoaXMuaXNIb3ZlckNsb3NlZCA9IGZhbHNlO1xuXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTU9ORVlfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5NSUxFU19GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhTW9uZXlGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYU1vbmV5RmlsdGVyLmNsZWFyQWxsKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uU1RBVFVTX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FTdGF0dXNGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVN0YXR1c0ZpbHRlci5jbGVhckFsbChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlRJTUVfRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYVRpbWVGaWx0ZXIpIGZpbHRlclJlc3VsdCA9IHRoaXMuY2FUaW1lRmlsdGVyLmNsZWFyQWxsKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRElTUEFUQ0hFUl9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkRSSVZFUl9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkZVRUxfU1RPUF9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkJST0tFUl9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhRGlzcGF0Y2hlckZpbHRlcilcbiAgICAgICAgICBmaWx0ZXJSZXN1bHQgPSB0aGlzLmNhRGlzcGF0Y2hlckZpbHRlci5jbGVhckFsbChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlNUQVRFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FTdGF0ZUZpbHRlcilcbiAgICAgICAgICBmaWx0ZXJSZXN1bHQgPSB0aGlzLmNhU3RhdGVGaWx0ZXIuY2xlYXJBbGwoZXZlbnQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5UUlVDS19UWVBFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FUcnVja1R5cGVGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVRydWNrVHlwZUZpbHRlci5jbGVhckFsbChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlRSQUlMRVJfVFlQRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVHJhaWxlclR5cGVGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVRyYWlsZXJUeXBlRmlsdGVyLmNsZWFyQWxsKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uUE1fRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5DQVRFR09SWV9SRVBBSVJfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5GVUVMX0lURU1fRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5ERVBBUlRNRU5UX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uUEFSS0lOR19GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlRBR19GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkFDVElPTl9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkxBQkVMX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FQbUZpbHRlcikgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVBtRmlsdGVyLmNsZWFyQWxsKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVVNFUl9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLk1PRFVMRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVXNlckZpbHRlcikgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVVzZXJGaWx0ZXIuY2xlYXJBbGwoZXZlbnQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MT0NBVElPTl9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhTG9jYXRpb25GaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYUxvY2F0aW9uRmlsdGVyLmNsZWFyQWxsKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVklPTEFUSU9OX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FWaW9sYXRpb25GaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVZpb2xhdGlvbkZpbHRlci5jbGVhckFsbChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zdCBhY3Rpb24gPSBGaWx0ZXJBY3Rpb25zU3RyaW5nRW51bS5BQ1RJT05fQ0xFQVI7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBGaWx0ZXJBY3Rpb25zU3RyaW5nRW51bS5UWVBFX1VOS05PV047XG4gICAgICAgIGNvbnN0IGZpbHRlclR5cGUgPSBGaWx0ZXJBY3Rpb25zU3RyaW5nRW51bS5UWVBFX1VOS05PV047XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgZmlsdGVyVHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgZmlsdGVyUmVzdWx0ID0gZGF0YTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlclJlc3VsdCkgdGhpcy5hdXRvQ2xvc2UuY2xvc2VDdXN0b21Qb3BvdmVyKCk7XG4gICAgdGhpcy5jbGVhckFsbFZhbHVlc0VtaXQoZmlsdGVyUmVzdWx0KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckFsbFZhbHVlc0VtaXQoXG4gICAgZGF0YTogZmlsdGVyT3V0cHV0IHwgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB8IHVuZGVmaW5lZFxuICApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbGVhckFsbCkgdGhpcy5jbGVhckFsbC5lbWl0KGRhdGEpO1xuICB9XG5cbiAgcHVibGljIGdldFN2Z1BhdGgocHJvcGVydHlOYW1lOiBrZXlvZiB0eXBlb2YgQ2FGaWx0ZXJzU3ZnUm91dGVzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRmlsdGVySGVscGVyLmdldFN2Z1BhdGgocHJvcGVydHlOYW1lKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInVzZXItaWNvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICBhcHAtY2EtYXV0b2Nsb3NlLXBvcG92ZXJcbiAgW2N1c3RvbUNsYXNzXT1cIidmaWx0ZXJwb3BvdmVybWFpbidcIlxuICBbcGxhY2VtZW50XT1cImlzQ29sbGFwc2libGVGaWx0ZXIgPyAncmlnaHQnIDogJ2JvdHRvbS1sZWZ0J1wiXG4gIGF1dG9DbG9zZT1cIm91dHNpZGVcIlxuICAoY2xvc2VGaWx0ZXIpPVwib25GaWx0ZXJDbG9zZSgpXCJcbiAgKG9wZW5GaWx0ZXIpPVwib25GaWx0ZXJTaG93bigpXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdhY3RpdmUtb3B0aW9ucyc6IGlzRmlsdGVyQWN0aXZlLFxuICAgICdjbGVhci1jb2xvcnMnOiBpc0hvdmVyQ2xvc2VkLFxuICAgICdmaWx0ZXItYWN0aXZlLWNvbG9ycyc6IGlzRmlsdGVyQWN0aXZlQ29sb3IsXG4gICAgJ2FjdGl2ZS1jb2xsYXBzaWJsZSc6IGlzQ29sbGFwc2libGVGaWx0ZXJcbiAgfVwiXG4gIChtb3VzZWVudGVyKT1cImlzRmlsdGVySG92ZXJlZE92ZXIgPSB0cnVlXCJcbiAgKG1vdXNlbGVhdmUpPVwiaXNGaWx0ZXJIb3ZlcmVkT3ZlciA9IGZhbHNlXCJcbj5cbiAgPGRpdlxuICAgIG1haW5Db250ZW50XG4gICAgbmdiVG9vbHRpcFxuICAgIG1haW5DYVRvb2x0aXA9XCJ7e1xuICAgICAgJ21haW5Ub29sdGlwJ1xuICAgICAgICB8IGZpbHRlclBvcG92ZXJDb25kaXRpb25zUGlwZVxuICAgICAgICAgIDogZ2V0Q29tcG9uZW50SW5zdGFuY2UoKVxuICAgICAgICAgIDogY2FNb25leUZpbHRlclxuICAgICAgICAgIDogY2FTdGF0dXNGaWx0ZXJcbiAgICAgICAgICA6IGNhRGlzcGF0Y2hlckZpbHRlclxuICAgICAgICAgIDogY2FTdGF0ZUZpbHRlclxuICAgICAgICAgIDogY2FUcnVja1R5cGVGaWx0ZXJcbiAgICAgICAgICA6IGNhVHJhaWxlclR5cGVGaWx0ZXJcbiAgICAgICAgICA6IGNhUG1GaWx0ZXJcbiAgICB9fVwiXG4gICAgcG9zaXRpb249XCJib3R0b21cIlxuICAgIHRvb2x0aXBCYWNrZ3JvdW5kPVwie3sgaXNGaWx0ZXJBY3RpdmUgPyAnI0NDQ0NDQycgOiAnIzJGMkYyRicgfX1cIlxuICAgIHRvb2x0aXBDb2xvcj1cInt7IGlzRmlsdGVyQWN0aXZlID8gJyMyRjJGMkYnIDogJyNGRkZGRkYnIH19XCJcbiAgICB0b29sdGlwVGV4dEFsaWduPVwiY2VudGVyXCJcbiAgICBjbGFzcz1cIm1haW4taWNvbi1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgPlxuICAgIDxkaXY+XG4gICAgICA8c3ZnLWljb24gW3NyY109XCJpY29uIHwgY2FTdmcgOiAnY29tbW9uJ1wiPjwvc3ZnLWljb24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRmlsdGVyQWN0aXZlQ29sb3JcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNGaWx0ZXJIb3ZlcmVkT3ZlcjsgZWxzZSBjbG9zZUJ1dHRvblwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCIhaXNOb3REcm9wZG93bigpICYmIGdldEZpbHRlckNvdW50KCk7IGVsc2UgY2hlY2ttYXJrXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVycy1zZWxlY3RlZC12YWx1ZS1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHRhLWZvbnQtZXh0cmEtYm9sZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgZ2V0RmlsdGVyQ291bnQoKSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2NoZWNrbWFyaz5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZpbHRlcnMtc2VsZWN0ZWQtdmFsdWUtaG9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN2Zy1pY29uIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnaWNvbkNvbmZpcm0nKVwiPjwvc3ZnLWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNjbG9zZUJ1dHRvbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmlsdGVycy1zZWxlY3RlZC12YWx1ZS1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJpc0hvdmVyQ2xvc2VkID0gdHJ1ZVwiXG4gICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaXNIb3ZlckNsb3NlZCA9IGZhbHNlXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3ZnLWljb24gW3NyY109XCJnZXRTdmdQYXRoKCdjYW5jZWxWaW9sYXRpb24nKVwiPjwvc3ZnLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBwb3BvdmVyQ29udGVudCBjbGFzcz1cIm1haW4tcG9wb3Zlci1ib2R5XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ29sbGFwc2libGVGaWx0ZXJcIj5cbiAgICAgIDxhcHAtY2EtY29sbGFwc2libGUtZmlsdGVyXG4gICAgICAgIChvblRhZ0VtaXQpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgIFtmaWx0ZXJBcnJheV09XCJwbUZpbHRlckFycmF5XCJcbiAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICA+PC9hcHAtY2EtY29sbGFwc2libGUtZmlsdGVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNCdXR0b25GaWx0ZXIgJiYgIWlzQ29sbGFwc2libGVGaWx0ZXJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgW0BzaG93QW5pbWF0aW9uXT1cIiEhaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICBjbGFzcz1cImZpbHRlci1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1zdGFydFwiXG4gICAgICAgIFtjbGFzcy5zdGF0ZS1maWx0ZXJdPVwidHlwZSA9PT0gJ3N0YXRlRmlsdGVyJ1wiXG4gICAgICAgIFtjbGFzcy5kZXBhcnRtZW50LWZpbHRlcl09XCJoYXNOb0xlZnRJY29uXCJcbiAgICAgICAgW2NsYXNzLnN0YXR1cy1maWx0ZXJdPVwidHlwZSA9PT0gJ3N0YXR1c0ZpbHRlcidcIlxuICAgICAgICBbY2xhc3MucG0tZmlsdGVyXT1cImhhc0xlZnRTaWRlSWNvblwiXG4gICAgICAgIFtjbGFzcy50cnVjay1pY29uLWhvbGRlcl09XCJoYXNMYXJnZUxlZnRJY29uXCJcbiAgICAgICAgW2NsYXNzLm1vbmV5LWZpbHRlcl09XCJ0eXBlID09PSAnbW9uZXlGaWx0ZXInIHx8IHR5cGUgPT09ICdtaWxlc0ZpbHRlcidcIlxuICAgICAgICBbY2xhc3MubG9jYXRpb24tZmlsdGVyXT1cInR5cGUgPT09ICdsb2NhdGlvbkZpbHRlcidcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmaWx0ZXItaGVhZGVyIGZpbHRlci10ZXh0LXBhcnQgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZUhlYWRlcl09XCIhaXNTZWFyY2hFeHBhbmRlZFwiXG4gICAgICAgICAgW2NsYXNzLmluYWN0aXZlSGVhZGVyXT1cImlzU2VhcmNoRXhwYW5kZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLXRpdGxlLXRleHQgY291bnRlci1wYWRkLXRpdGxlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBmaWx0ZXJUaXRsZSB8IHVwcGVyY2FzZSB9fVxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgKHR5cGUgPT09ICdkaXNwYXRjaGVyRmlsdGVyJyB8fFxuICAgICAgICAgICAgICAgICAgdHlwZSA9PT0gJ2RyaXZlckZpbHRlcicgfHxcbiAgICAgICAgICAgICAgICAgIHR5cGUgPT09ICdmdWVsU3RvcEZpbHRlcicgfHxcbiAgICAgICAgICAgICAgICAgIHR5cGUgPT09ICdicm9rZXJGaWx0ZXInKSAmJlxuICAgICAgICAgICAgICAgIGNhRGlzcGF0Y2hlckZpbHRlcj8uc2VsZWN0ZWRVc2VyPy5sZW5ndGhcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlci1maWx0ZXItYm94IGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBjYS1mb250LWJvbGQgbXMtMVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBjYURpc3BhdGNoZXJGaWx0ZXI/LnNlbGVjdGVkVXNlcj8ubGVuZ3RoIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgJ3VzZXJCb3gnXG4gICAgICAgICAgICAgICAgICB8IGZpbHRlclBvcG92ZXJDb25kaXRpb25zUGlwZVxuICAgICAgICAgICAgICAgICAgICA6IGdldENvbXBvbmVudEluc3RhbmNlKClcbiAgICAgICAgICAgICAgICAgICAgOiBjYU1vbmV5RmlsdGVyXG4gICAgICAgICAgICAgICAgICAgIDogY2FTdGF0dXNGaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgOiBjYURpc3BhdGNoZXJGaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgOiBjYVN0YXRlRmlsdGVyXG4gICAgICAgICAgICAgICAgICAgIDogY2FUcnVja1R5cGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgOiBjYVRyYWlsZXJUeXBlRmlsdGVyXG4gICAgICAgICAgICAgICAgICAgIDogY2FQbUZpbHRlclxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgICAgICAgICAgfCBmaWx0ZXJDb25kaXRpb25zVXNlckJveFxuICAgICAgICAgICAgICAgICAgICAgIDogY2FUcnVja1R5cGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICA6IGNhVHJhaWxlclR5cGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICA6IGNhU3RhdHVzRmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgOiBjYVBtRmlsdGVyIGFzIGZpbHRlclJlc3VsdFxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXItZmlsdGVyLWJveCBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgY2EtZm9udC1ib2xkIG1zLTFcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGZpbHRlclJlc3VsdCB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgJ3NvcnRJdGVtcydcbiAgICAgICAgICAgICAgICB8IGZpbHRlclBvcG92ZXJDb25kaXRpb25zUGlwZVxuICAgICAgICAgICAgICAgICAgOiBnZXRDb21wb25lbnRJbnN0YW5jZSgpXG4gICAgICAgICAgICAgICAgICA6IGNhTW9uZXlGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FTdGF0dXNGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FEaXNwYXRjaGVyRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhU3RhdGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FUcnVja1R5cGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FUcmFpbGVyVHlwZUZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYVBtRmlsdGVyO1xuICAgICAgICAgICAgICBlbHNlIHRydWNrRmlsdGVyXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNvcnRJdGVtcygpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLXRpdGxlLXRleHQgc29ydC10ZXh0IHRhLWZvbnQtbWVkaXVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWVuZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgdHlwZSA9PT0gJ3N0YXR1c0ZpbHRlcicgfHxcbiAgICAgICAgICAgICAgICB0eXBlID09PSAnZGlzcGF0Y2hlckZpbHRlcicgfHxcbiAgICAgICAgICAgICAgICB0eXBlID09PSAnZHJpdmVyRmlsdGVyJyB8fFxuICAgICAgICAgICAgICAgIHR5cGUgPT09ICdmdWVsU3RvcEZpbHRlcicgfHxcbiAgICAgICAgICAgICAgICB0eXBlID09PSAnYnJva2VyRmlsdGVyJ1xuICAgICAgICAgICAgICAgICAgPyAnQ291bnQnXG4gICAgICAgICAgICAgICAgICA6ICdOYW1lJ1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNvcnQtYXJyb3cgbXMtMVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnJvdGF0ZV09XCIhaXNBc2NlbmRpbmdTb3J0T3JkZXJcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnc29ydEFycm93U3ZnUm91dGUnKVwiXG4gICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICd3aWR0aC5weCc6ICcxOCcsXG4gICAgICAgICAgICAgICAgICAnaGVpZ2h0LnB4JzogJzE4JyxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RydWNrRmlsdGVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICh0eXBlID09PSAndHJ1Y2tGaWx0ZXInIHx8XG4gICAgICAgICAgICAgICAgICB0eXBlID09PSAndHJ1Y2tUeXBlRmlsdGVyJyB8fFxuICAgICAgICAgICAgICAgICAgdHlwZSA9PT0gJ3RyYWlsZXJGaWx0ZXInKSAmJlxuICAgICAgICAgICAgICAgICAgaXNSZXBhaXJGaWx0ZXI7XG4gICAgICAgICAgICAgICAgZWxzZSBzdGF0ZUZpbHRlclxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNvcnRJdGVtcygpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXItdGl0bGUtdGV4dCBzb3J0LXRleHQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtZW5kXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIENvdW50XG4gICAgICAgICAgICAgICAgPHN2Zy1pY29uIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnc29ydEFycm93U3ZnUm91dGUnKVwiPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3N0YXRlRmlsdGVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICdzdGF0ZUZpbHRlcic7IGVsc2Ugc2VhcmNoU3RhdGVcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlci1maWx0ZXItYm94IGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBjYS1mb250LWJvbGQgbXMtMVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgKGNhU3RhdGVGaWx0ZXI/LmNhbmFkYVNlbGVjdGVkU3RhdGVzKSEubGVuZ3RoICtcbiAgICAgICAgICAgICAgICAgICAgKGNhU3RhdGVGaWx0ZXI/LnVzYVNlbGVjdGVkU3RhdGVzKSEubGVuZ3RoXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2VhcmNoU3RhdGU+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlYXJjaFN0YXRlXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pY29uLWhvbGRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93U2VhcmNoKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2Zy1pY29uIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnc2VhcmNoSWNvblJvdXRlJylcIj48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWJvZHktaG9sZGVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21vbmV5RmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLW1vbmV5LWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtpc01vbmV5RmlsdGVyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtpc01pbGVzRmlsdGVyXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbaXNGdWVsVHlwZV09XCJpc0Z1ZWxUeXBlXCJcbiAgICAgICAgICAgICAgICBbaXNMb2FkVHlwZV09XCJpc0xvYWRUeXBlXCJcbiAgICAgICAgICAgICAgICBbc3ViVHlwZV09XCJzdWJUeXBlXCJcbiAgICAgICAgICAgICAgICBbaXNGaWx0ZXJBY3RpdmVdPVwiaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWlsZXNGaWx0ZXInXCI+XG4gICAgICAgICAgICAgIDxhcHAtY2EtbW9uZXktZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2lzTW9uZXlGaWx0ZXJdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtpc01pbGVzRmlsdGVyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtpc0Z1ZWxUeXBlXT1cImlzRnVlbFR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0xvYWRUeXBlXT1cImlzTG9hZFR5cGVcIlxuICAgICAgICAgICAgICAgIFtzdWJUeXBlXT1cInN1YlR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzdGF0dXNGaWx0ZXInXCI+XG4gICAgICAgICAgICAgIDxhcHAtY2Etc3RhdHVzLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW2xvYWRTdGF0dXNPcHRpb25zQXJyYXldPVwibG9hZFN0YXR1c09wdGlvbnNBcnJheVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0aW1lRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLXRpbWUtZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbdGltZVN1YlR5cGVdPVwidGltZVN1YlR5cGVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGlzcGF0Y2hlckZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS1kaXNwYXRjaGVyLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW3Vuc2VsZWN0ZWRVc2VyXT1cInVuc2VsZWN0ZWRVc2VyXCJcbiAgICAgICAgICAgICAgICBbaXNTZWFyY2hFeHBhbmRlZF09XCJpc1NlYXJjaEV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RyaXZlckZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS1kaXNwYXRjaGVyLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW3Vuc2VsZWN0ZWRVc2VyXT1cInVuc2VsZWN0ZWRVc2VyXCJcbiAgICAgICAgICAgICAgICBbaXNTZWFyY2hFeHBhbmRlZF09XCJpc1NlYXJjaEV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Z1ZWxTdG9wRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLWRpc3BhdGNoZXItZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbdW5zZWxlY3RlZFVzZXJdPVwidW5zZWxlY3RlZFVzZXJcIlxuICAgICAgICAgICAgICAgIFtpc1NlYXJjaEV4cGFuZGVkXT1cImlzU2VhcmNoRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYnJva2VyRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLWRpc3BhdGNoZXItZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbdW5zZWxlY3RlZFVzZXJdPVwidW5zZWxlY3RlZFVzZXJcIlxuICAgICAgICAgICAgICAgIFtpc1NlYXJjaEV4cGFuZGVkXT1cImlzU2VhcmNoRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3RhdGVGaWx0ZXInXCI+XG4gICAgICAgICAgICAgIDxhcHAtY2Etc3RhdGUtZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbaXNTZWFyY2hFeHBhbmRlZF09XCJpc1NlYXJjaEV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICBbdXNhU3RhdGVzXT1cInVzYVN0YXRlc1wiXG4gICAgICAgICAgICAgICAgW2NhbmFkYVN0YXRlc109XCJjYW5hZGFTdGF0ZXNcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndHJ1Y2tUeXBlRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLXRydWNrLXR5cGUtZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbaXNSZXBhaXJGaWx0ZXJdPVwiaXNSZXBhaXJGaWx0ZXJcIlxuICAgICAgICAgICAgICAgIFt0cnVja1R5cGVBcnJheV09XCJ0cnVja1R5cGVBcnJheVwiXG4gICAgICAgICAgICAgICAgW2lzU2VhcmNoRXhwYW5kZWRdPVwiaXNTZWFyY2hFeHBhbmRlZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0cmFpbGVyVHlwZUZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS10cmFpbGVyLXR5cGUtZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbdHJhaWxlclR5cGVBcnJheV09XCJ0cmFpbGVyVHlwZUFycmF5XCJcbiAgICAgICAgICAgICAgICBbaXNSZXBhaXJGaWx0ZXJdPVwiaXNSZXBhaXJGaWx0ZXJcIlxuICAgICAgICAgICAgICAgIFtpc1NlYXJjaEV4cGFuZGVkXT1cImlzU2VhcmNoRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncG1GaWx0ZXInXCI+XG4gICAgICAgICAgICAgIDxhcHAtY2EtcG0tZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbcG1GaWx0ZXJBcnJheV09XCJwbUZpbHRlckFycmF5XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NhdGVnb3J5UmVwYWlyRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLXBtLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW3BtRmlsdGVyQXJyYXldPVwicG1GaWx0ZXJBcnJheVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidmdWVsSXRlbUZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS1wbS1maWx0ZXJcbiAgICAgICAgICAgICAgICAoc2V0RmlsdGVyKT1cInNldEZpbHRlclZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGVhckFsbCk9XCJjbGVhckFsbFZhbHVlcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgICAgICBbaXNGaWx0ZXJBY3RpdmVdPVwiaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgICAgIFtwbUZpbHRlckFycmF5XT1cInBtRmlsdGVyQXJyYXlcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGVwYXJ0bWVudEZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS1wbS1maWx0ZXJcbiAgICAgICAgICAgICAgICAoc2V0RmlsdGVyKT1cInNldEZpbHRlclZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGVhckFsbCk9XCJjbGVhckFsbFZhbHVlcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgICAgICBbaXNGaWx0ZXJBY3RpdmVdPVwiaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgICAgIFtwbUZpbHRlckFycmF5XT1cInBtRmlsdGVyQXJyYXlcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncGFya2luZ0ZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS1wbS1maWx0ZXJcbiAgICAgICAgICAgICAgICAoc2V0RmlsdGVyKT1cInNldEZpbHRlclZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGVhckFsbCk9XCJjbGVhckFsbFZhbHVlcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgICAgICBbaXNGaWx0ZXJBY3RpdmVdPVwiaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgICAgIFtwbUZpbHRlckFycmF5XT1cInBtRmlsdGVyQXJyYXlcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGFnRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLXBtLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW3BtRmlsdGVyQXJyYXldPVwicG1GaWx0ZXJBcnJheVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidhY3Rpb25GaWx0ZXInXCI+XG4gICAgICAgICAgICAgIDxhcHAtY2EtcG0tZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbcG1GaWx0ZXJBcnJheV09XCJwbUZpbHRlckFycmF5XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xhYmVsRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLXBtLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW3BtRmlsdGVyQXJyYXldPVwicG1GaWx0ZXJBcnJheVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid1c2VyRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLXVzZXItZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbdXNlckdyb3VwXT1cInVzZXJHcm91cFwiXG4gICAgICAgICAgICAgICAgW2lzU2VhcmNoRXhwYW5kZWRdPVwiaXNTZWFyY2hFeHBhbmRlZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtb2R1bGVGaWx0ZXInXCI+XG4gICAgICAgICAgICAgIDxhcHAtY2EtdXNlci1maWx0ZXJcbiAgICAgICAgICAgICAgICAoc2V0RmlsdGVyKT1cInNldEZpbHRlclZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGVhckFsbCk9XCJjbGVhckFsbFZhbHVlcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgICAgICBbaXNGaWx0ZXJBY3RpdmVdPVwiaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgICAgIFt1c2VyR3JvdXBdPVwidXNlckdyb3VwXCJcbiAgICAgICAgICAgICAgICBbaXNTZWFyY2hFeHBhbmRlZF09XCJpc1NlYXJjaEV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xvY2F0aW9uRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLWxvY2F0aW9uLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW2FkZHJlc3NMaXN0XT1cImFkZHJlc3NMaXN0XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3Zpb2xhdGlvbkZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS12aW9sYXRpb24tZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYnV0dG9ucy1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgW2NsYXNzLmJ1dHRvbnMtbG9uZ109XCJ0eXBlID09PSAnbG9jYXRpb25GaWx0ZXInXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhckFsbFZhbHVlcygkZXZlbnQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWNsZWFyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJcbiAgICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICAgICAgIHwgZmlsdGVyQ29uZGl0aW9uc0NsZWFyXG4gICAgICAgICAgICAgICAgICA6IGNhTW9uZXlGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FTdGF0dXNGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FUaW1lRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhRGlzcGF0Y2hlckZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYVN0YXRlRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhVHJ1Y2tUeXBlRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhVHJhaWxlclR5cGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FQbUZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYUxvY2F0aW9uRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhVXNlckZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYVZpb2xhdGlvbkZpbHRlclxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBDbGVhciBBbGxcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAoY2xpY2spPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1zZXQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIlxuICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICAgICAgfCBmaWx0ZXJDb25kaXRpb25zU2V0XG4gICAgICAgICAgICAgICAgICA6IGNhTW9uZXlGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FTdGF0dXNGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FUaW1lRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhRGlzcGF0Y2hlckZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYVN0YXRlRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhVHJ1Y2tUeXBlRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhVHJhaWxlclR5cGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FQbUZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYUxvY2F0aW9uRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhVXNlckZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYVZpb2xhdGlvbkZpbHRlclxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBTZXRcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbjwhLS0gPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0NvbGxhcHNpYmxlRmlsdGVyXCI+XG4gICAgICA8YXBwLWNhLWNvbGxhcHNpYmxlLWZpbHRlclxuICAgICAgICAoc2V0RmlsdGVyKT1cInNldEZpbHRlclZhbHVlKCRldmVudClcIlxuICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgIFtmaWx0ZXJBcnJheV09XCJwbUZpbHRlckFycmF5XCJcbiAgICAgICAgW2lzRXhwYW5kZWRdPVwiaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgPjwvYXBwLWNhLWNvbGxhcHNpYmxlLWZpbHRlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+IC0tPlxuIl19
547
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY2EtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY2EtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUVULGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLFVBQVU7QUFDVixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLGFBQWE7QUFDYixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBSWxFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxRQUFRO0FBQ1IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckYs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QXNCO3NCQUE5QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFJRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBSZW5kZXJlcjIsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG4vLyBtb2R1bGVzXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBOZ2JNb2R1bGUsIE5nYlBvcG92ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbi8vIGFuaW1hdGlvbnNcbmltcG9ydCB7IHNob3dBbmltYXRpb24gfSBmcm9tICcuLi8uLi9hbmltYXRpb25zL3Nob3cuYW5pbWF0aW9uJztcbmltcG9ydCB7IGNsb3NlRm9ybSB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvY2xvc2UtZm9ybS5hbmltYXRpb24nO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHsgQ2FGaWx0ZXJzU3ZnUm91dGVzIH0gZnJvbSAnLi4vY2EtZmlsdGVycy91dGlscy9zdmctcm91dGVzL2NhLWZpbHRlcnMtc3ZnLXJvdXRlcyc7XG5pbXBvcnQgeyBGaWx0ZXJIZWxwZXIgfSBmcm9tICcuL3V0aWxzL2hlbHBlcnMvZmlsdGVyLmhlbHBlcic7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBGaWx0ZXJDb25kaXRpb25zU2V0UGlwZSB9IGZyb20gJy4vcGlwZXMvZmlsdGVyLWNvbmRpdGlvbnMtc2V0LnBpcGUnO1xuaW1wb3J0IHsgRmlsdGVyQ29uZGl0aW9uc0NsZWFyUGlwZSB9IGZyb20gJy4vcGlwZXMvZmlsdGVyLWNvbmRpdGlvbnMtY2xlYXIucGlwZSc7XG5pbXBvcnQgeyBGaWx0ZXJQb3BvdmVyQ29uZGl0aW9uc1BpcGUgfSBmcm9tICcuL3BpcGVzL2ZpbHRlci1wb3BvdmVyLWNvbmRpdGlvbnMucGlwZSc7XG5pbXBvcnQgeyBGaWx0ZXJDb25kaXRpb25zVXNlckJveFBpcGUgfSBmcm9tICcuL3BpcGVzL2ZpbHRlci1jb25kaXRpb25zLXVzZXItYm94LnBpcGUnO1xuaW1wb3J0IHsgQ2FTdmdQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY2Etc3ZnLnBpcGUnO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgVG9vbGJhckZpbHRlclN0cmluZ0VudW0gfSBmcm9tICcuLi9jYS1tYXAvZW51bXMvdG9vbGJhci1maWx0ZXItc3RyaW5nLmVudW0nO1xuaW1wb3J0IHsgRmlsdGVyQWN0aW9uc1N0cmluZ0VudW0gfSBmcm9tICcuL2VudW1zL2ZpbHRlci1hY3Rpb25zLXN0cmluZy5lbnVtJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBBcnJheVN0YXR1cyB9IGZyb20gJy4uLy4uL21vZGVscy9hcnJheS1zdGF0dXMubW9kZWwnO1xuaW1wb3J0IHsgZmlsdGVyT3V0cHV0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbHRlci1vdXRwdXQubW9kZWwnO1xuaW1wb3J0IHsgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB9IGZyb20gJy4uLy4uL21vZGVscy9maWx0ZXItb3V0cHV0LXBhcmFtcy5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyR3JvdXAgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtdXNlci1maWx0ZXIvbW9kZWxzL2NhLXVzZXItZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc0xpc3QgfSBmcm9tICcuLi9jYS1pbnB1dC1hZGRyZXNzLWRyb3Bkb3duL21vZGVscy9hZGRyZXNzLWxpc3QubW9kZWwnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgeyBDYU1vbmV5RmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLW1vbmV5LWZpbHRlci9jYS1tb25leS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhU3RhdHVzRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXN0YXR1cy1maWx0ZXIvY2Etc3RhdHVzLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FUaW1lRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXRpbWUtZmlsdGVyL2NhLXRpbWUtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYURpc3BhdGNoZXJGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtZGlzcGF0Y2hlci1maWx0ZXIvY2EtZGlzcGF0Y2hlci1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhU3RhdGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2Etc3RhdGUtZmlsdGVyL2NhLXN0YXRlLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FUcnVja1R5cGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtdHJ1Y2stdHlwZS1maWx0ZXIvY2EtdHJ1Y2stdHlwZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhVHJhaWxlclR5cGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtdHJhaWxlci10eXBlLWZpbHRlci9jYS10cmFpbGVyLXR5cGUtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYVBtRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXBtLWZpbHRlci9jYS1wbS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhTG9jYXRpb25GaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtbG9jYXRpb24tZmlsdGVyL2NhLWxvY2F0aW9uLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FVc2VyRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXVzZXItZmlsdGVyL2NhLXVzZXItZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUF1dG9jbG9zZVBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hdXRvY2xvc2UtcG9wb3Zlci9jYS1hdXRvY2xvc2UtcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FWaW9sYXRpb25GaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtdmlvbGF0aW9uLWZpbHRlci9jYS12aW9sYXRpb24tZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUNvbGxhcHNpYmxlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2EtY29sbGFwc2libGUtZmlsdGVyL2NhLWNvbGxhcHNpYmxlLWZpbHRlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY2EtZmlsdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgLy8gbW9kdWxlc1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgIE5nYk1vZHVsZSxcbiAgICAvLyBjb21wb25lbnRzXG4gICAgQ2FNb25leUZpbHRlckNvbXBvbmVudCxcbiAgICBDYVN0YXR1c0ZpbHRlckNvbXBvbmVudCxcbiAgICBDYVRpbWVGaWx0ZXJDb21wb25lbnQsXG4gICAgQ2FEaXNwYXRjaGVyRmlsdGVyQ29tcG9uZW50LFxuICAgIENhU3RhdGVGaWx0ZXJDb21wb25lbnQsXG4gICAgQ2FUcnVja1R5cGVGaWx0ZXJDb21wb25lbnQsXG4gICAgQ2FUcmFpbGVyVHlwZUZpbHRlckNvbXBvbmVudCxcbiAgICBDYVBtRmlsdGVyQ29tcG9uZW50LFxuICAgIENhTG9jYXRpb25GaWx0ZXJDb21wb25lbnQsXG4gICAgQ2FVc2VyRmlsdGVyQ29tcG9uZW50LFxuICAgIENhVmlvbGF0aW9uRmlsdGVyQ29tcG9uZW50LFxuICAgIENhQXV0b2Nsb3NlUG9wb3ZlckNvbXBvbmVudCxcbiAgICBDYUFwcFRvb2x0aXBWMkNvbXBvbmVudCxcbiAgICBDYUNvbGxhcHNpYmxlRmlsdGVyQ29tcG9uZW50LFxuICAgIC8vIHBpcGVzXG4gICAgRmlsdGVyQ29uZGl0aW9uc1NldFBpcGUsXG4gICAgRmlsdGVyQ29uZGl0aW9uc0NsZWFyUGlwZSxcbiAgICBGaWx0ZXJDb25kaXRpb25zVXNlckJveFBpcGUsXG4gICAgRmlsdGVyUG9wb3ZlckNvbmRpdGlvbnNQaXBlLFxuICAgIENhU3ZnUGlwZSxcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gIGFuaW1hdGlvbnM6IFtzaG93QW5pbWF0aW9uKCdzaG93QW5pbWF0aW9uJyksIGNsb3NlRm9ybSgnY2xvc2VGb3JtJyldLFxufSlcbmV4cG9ydCBjbGFzcyBDYUZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ3QyJykgdDIhOiBOZ2JQb3BvdmVyO1xuICBAVmlld0NoaWxkKENhQXV0b2Nsb3NlUG9wb3ZlckNvbXBvbmVudClcbiAgcHVibGljIGF1dG9DbG9zZSE6IENhQXV0b2Nsb3NlUG9wb3ZlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhU3RhdHVzRmlsdGVyQ29tcG9uZW50KVxuICBwdWJsaWMgY2FTdGF0dXNGaWx0ZXIhOiBDYVN0YXR1c0ZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhTW9uZXlGaWx0ZXJDb21wb25lbnQpXG4gIHB1YmxpYyBjYU1vbmV5RmlsdGVyITogQ2FNb25leUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhVGltZUZpbHRlckNvbXBvbmVudClcbiAgcHVibGljIGNhVGltZUZpbHRlciE6IENhVGltZUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhRGlzcGF0Y2hlckZpbHRlckNvbXBvbmVudClcbiAgcHVibGljIGNhRGlzcGF0Y2hlckZpbHRlciE6IENhRGlzcGF0Y2hlckZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhU3RhdGVGaWx0ZXJDb21wb25lbnQpXG4gIHB1YmxpYyBjYVN0YXRlRmlsdGVyITogQ2FTdGF0ZUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhVHJ1Y2tUeXBlRmlsdGVyQ29tcG9uZW50KVxuICBwdWJsaWMgY2FUcnVja1R5cGVGaWx0ZXIhOiBDYVRydWNrVHlwZUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhVHJhaWxlclR5cGVGaWx0ZXJDb21wb25lbnQpXG4gIHB1YmxpYyBjYVRyYWlsZXJUeXBlRmlsdGVyITogQ2FUcmFpbGVyVHlwZUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhUG1GaWx0ZXJDb21wb25lbnQpXG4gIHB1YmxpYyBjYVBtRmlsdGVyITogQ2FQbUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhQ29sbGFwc2libGVGaWx0ZXJDb21wb25lbnQpXG4gIHB1YmxpYyBjYUNvbGxhcHNpYmxlRmlsdGVyITogQ2FDb2xsYXBzaWJsZUZpbHRlckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKENhTG9jYXRpb25GaWx0ZXJDb21wb25lbnQpXG4gIGNhTG9jYXRpb25GaWx0ZXIhOiBDYUxvY2F0aW9uRmlsdGVyQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoQ2FVc2VyRmlsdGVyQ29tcG9uZW50KVxuICBwdWJsaWMgY2FVc2VyRmlsdGVyITogQ2FVc2VyRmlsdGVyQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoQ2FWaW9sYXRpb25GaWx0ZXJDb21wb25lbnQpXG4gIHB1YmxpYyBjYVZpb2xhdGlvbkZpbHRlciE6IENhVmlvbGF0aW9uRmlsdGVyQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIHR5cGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpbWVTdWJUeXBlOiBzdHJpbmcgPSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5QQVNUO1xuICBASW5wdXQoKSBzdWJUeXBlOiBzdHJpbmcgPSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5QRU5ESU5HX1NUQVRVUztcbiAgQElucHV0KCkgdW5zZWxlY3RlZFVzZXIhOiBBcnJheVN0YXR1c1tdO1xuICBASW5wdXQoKSB1c2VyR3JvdXAhOiBVc2VyR3JvdXBbXTtcbiAgQElucHV0KCkgbG9hZFN0YXR1c09wdGlvbnNBcnJheSE6IEFycmF5U3RhdHVzW107XG4gIEBJbnB1dCgpIHRydWNrVHlwZUFycmF5ITogQXJyYXlTdGF0dXNbXTtcbiAgQElucHV0KCkgdHJhaWxlclR5cGVBcnJheSE6IEFycmF5U3RhdHVzW107XG4gIEBJbnB1dCgpIHBtRmlsdGVyQXJyYXkhOiBBcnJheVN0YXR1c1tdO1xuXG4gIEBJbnB1dCgpIGlzUmVwYWlyRmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhhc05vTGVmdEljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaGFzTGVmdFNpZGVJY29uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhhc0xhcmdlTGVmdEljb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBpc01vbmV5RmlsdGVyOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgaXNNaWxlc0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0J1dHRvbkZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0Z1ZWxUeXBlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzTG9hZFR5cGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBpc0NvbGxhcHNpYmxlRmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZpbHRlclRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKSBpY29uITogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGFkZHJlc3NMaXN0ITogQWRkcmVzc0xpc3RbXTtcbiAgQElucHV0KCkgdXNhU3RhdGVzITogQXJyYXlTdGF0dXNbXTtcbiAgQElucHV0KCkgY2FuYWRhU3RhdGVzITogQXJyYXlTdGF0dXNbXTtcblxuICBAT3V0cHV0KCkgc2V0RmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBmaWx0ZXJPdXRwdXQgfCBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zXG4gID4oKTtcblxuICBAT3V0cHV0KCkgY2xlYXJBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXNcbiAgPigpO1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgaXNTZWFyY2hFeHBhbmRlZCE6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0ZpbHRlckFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2VsZWN0ZWRVc2VyOiBBcnJheVN0YXR1c1tdID0gW107XG4gIHB1YmxpYyBpc0FzY2VuZGluZ1NvcnRPcmRlcjogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBhdXRvQ2xvc2VDb21wb25lbnQhOiBRdWVyeUxpc3Q8Q2FBdXRvY2xvc2VQb3BvdmVyQ29tcG9uZW50PjtcbiAgcHVibGljIGlzSG92ZXJDbG9zZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzRmlsdGVySG92ZXJlZE92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzQW5pbWF0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzRmlsdGVyQWN0aXZlQ29sb3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgcHVibGljIGdldENvbXBvbmVudEluc3RhbmNlKCk6IENhRmlsdGVyQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBpc05vdERyb3Bkb3duKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnR5cGUgPT09IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLk1PTkVZX0ZJTFRFUiB8fFxuICAgICAgdGhpcy50eXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5USU1FX0ZJTFRFUiB8fFxuICAgICAgdGhpcy50eXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5NSUxFU19GSUxURVIgfHxcbiAgICAgIHRoaXMudHlwZSA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVklPTEFUSU9OX0ZJTFRFUlxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmlsdGVyQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jYVBtRmlsdGVyPy5zZWxlY3RlZFBtRmlsdGVyQXJyYXkubGVuZ3RoIHx8XG4gICAgICB0aGlzLmNhU3RhdHVzRmlsdGVyPy5zZWxlY3RlZFVzZXIubGVuZ3RoIHx8XG4gICAgICB0aGlzLmNhVHJhaWxlclR5cGVGaWx0ZXI/LnNlbGVjdGVkVHJhaWxlclR5cGVBcnJheS5sZW5ndGggfHxcbiAgICAgIHRoaXMuY2FUcnVja1R5cGVGaWx0ZXI/LnNlbGVjdGVkVHJ1Y2tUeXBlQXJyYXkubGVuZ3RoIHx8XG4gICAgICB0aGlzLmNhRGlzcGF0Y2hlckZpbHRlcj8uc2VsZWN0ZWRVc2VyLmxlbmd0aCB8fFxuICAgICAgdGhpcy5jYVN0YXRlRmlsdGVyPy51c2FTZWxlY3RlZFN0YXRlcy5sZW5ndGggfHxcbiAgICAgIHRoaXMuY2FTdGF0ZUZpbHRlcj8uY2FuYWRhU2VsZWN0ZWRTdGF0ZXMubGVuZ3RoXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZpbHRlckNsb3NlKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pc0ZpbHRlckFjdGl2ZSkgcmV0dXJuIGZhbHNlO1xuICAgIHRoaXMuaXNGaWx0ZXJBY3RpdmUgPSBmYWxzZTtcblxuICAgIGxldCBtYWluRWxlbWVudEhvbGRlcjtcblxuICAgIGlmICghdGhpcy5pc0J1dHRvbkZpbHRlcikge1xuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVElNRV9GSUxURVIpXG4gICAgICAgIG1haW5FbGVtZW50SG9sZGVyID0gdGhpcy5yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudChcbiAgICAgICAgICAnLnRpbWUtZmlsdGVyLWhvbGRlcicsXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgZWxzZVxuICAgICAgICBtYWluRWxlbWVudEhvbGRlciA9IHRoaXMucmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQoXG4gICAgICAgICAgJy5maWx0ZXItaG9sZGVyJyxcbiAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTU9ORVlfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5NSUxFU19GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhTW9uZXlGaWx0ZXIpIHRoaXMuY2FNb25leUZpbHRlci5vbkZpbHRlckNsb3NlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlNUQVRVU19GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhU3RhdHVzRmlsdGVyKSB0aGlzLmNhU3RhdHVzRmlsdGVyLm9uRmlsdGVyQ2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVElNRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVGltZUZpbHRlcikgdGhpcy5jYVRpbWVGaWx0ZXIub25GaWx0ZXJDbG9zZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5ESVNQQVRDSEVSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRFJJVkVSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRlVFTF9TVE9QX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uQlJPS0VSX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FEaXNwYXRjaGVyRmlsdGVyKSB0aGlzLmNhRGlzcGF0Y2hlckZpbHRlci5vbkZpbHRlckNsb3NlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlNUQVRFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FTdGF0ZUZpbHRlcikgdGhpcy5jYVN0YXRlRmlsdGVyLm9uRmlsdGVyQ2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVFJVQ0tfVFlQRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVHJ1Y2tUeXBlRmlsdGVyKSB0aGlzLmNhVHJ1Y2tUeXBlRmlsdGVyLm9uRmlsdGVyQ2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVFJBSUxFUl9UWVBFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FUcmFpbGVyVHlwZUZpbHRlcikgdGhpcy5jYVRyYWlsZXJUeXBlRmlsdGVyLm9uRmlsdGVyQ2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uUE1fRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5DQVRFR09SWV9SRVBBSVJfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5GVUVMX0lURU1fRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5ERVBBUlRNRU5UX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uUEFSS0lOR19GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlRBR19GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkFDVElPTl9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkxBQkVMX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FQbUZpbHRlcikgdGhpcy5jYVBtRmlsdGVyLm9uRmlsdGVyQ2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVVNFUl9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLk1PRFVMRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVXNlckZpbHRlcikgdGhpcy5jYVVzZXJGaWx0ZXIub25GaWx0ZXJDbG9zZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MT0NBVElPTl9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhTG9jYXRpb25GaWx0ZXIpIHRoaXMuY2FMb2NhdGlvbkZpbHRlci5vbkFyZWFGaWx0ZXJDbG9zZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5WSU9MQVRJT05fRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYVZpb2xhdGlvbkZpbHRlcikgdGhpcy5jYVZpb2xhdGlvbkZpbHRlci5vbkZpbHRlckNsb3NlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlZBQ0FUSU9OX0ZJTFRFUjpcbiAgICAgICAgdGhpcy5jbGVhckFsbC5lbWl0KHtcbiAgICAgICAgICBhY3Rpb246IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkNMRUFSLFxuICAgICAgICAgIGZpbHRlclR5cGU6IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlZBQ0FUSU9OX0ZJTFRFUixcbiAgICAgICAgICB2YWNhdGlvbjogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgb25GaWx0ZXJTaG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmlzRmlsdGVyQWN0aXZlID0gdHJ1ZTtcbiAgICB0aGlzLmlzQW5pbWF0ZWQgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVkFDQVRJT05fRklMVEVSKSB7XG4gICAgICB0aGlzLnNldEZpbHRlci5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5TRVQsXG4gICAgICAgIGZpbHRlclR5cGU6IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlZBQ0FUSU9OX0ZJTFRFUixcbiAgICAgICAgdmFjYXRpb246IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc29ydEl0ZW1zKCk6IHZvaWQge1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlNUQVRVU19GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhU3RhdHVzRmlsdGVyKSB7XG4gICAgICAgICAgdGhpcy5jYVN0YXR1c0ZpbHRlci5zb3J0SXRlbXMoKTtcbiAgICAgICAgICB0aGlzLmlzQXNjZW5kaW5nU29ydE9yZGVyID0gdGhpcy5jYVN0YXR1c0ZpbHRlci5pc0FzY2VuZGluZ1NvcnRPcmRlcjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5ESVNQQVRDSEVSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRFJJVkVSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRlVFTF9TVE9QX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uQlJPS0VSX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FEaXNwYXRjaGVyRmlsdGVyKSB7XG4gICAgICAgICAgdGhpcy5jYURpc3BhdGNoZXJGaWx0ZXIuc29ydEl0ZW1zKCk7XG4gICAgICAgICAgdGhpcy5pc0FzY2VuZGluZ1NvcnRPcmRlciA9XG4gICAgICAgICAgICB0aGlzLmNhRGlzcGF0Y2hlckZpbHRlci5pc0FzY2VuZGluZ1NvcnRPcmRlcjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5UUlVDS19UWVBFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FUcnVja1R5cGVGaWx0ZXIpIHtcbiAgICAgICAgICB0aGlzLmNhVHJ1Y2tUeXBlRmlsdGVyLnNvcnRJdGVtcygpO1xuICAgICAgICAgIHRoaXMuaXNBc2NlbmRpbmdTb3J0T3JkZXIgPVxuICAgICAgICAgICAgdGhpcy5jYVRydWNrVHlwZUZpbHRlci5pc0FzY2VuZGluZ1NvcnRPcmRlcjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5UUkFJTEVSX1RZUEVfRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYVRyYWlsZXJUeXBlRmlsdGVyKSB7XG4gICAgICAgICAgdGhpcy5jYVRyYWlsZXJUeXBlRmlsdGVyLnNvcnRJdGVtcygpO1xuICAgICAgICAgIHRoaXMuaXNBc2NlbmRpbmdTb3J0T3JkZXIgPVxuICAgICAgICAgICAgdGhpcy5jYVRyYWlsZXJUeXBlRmlsdGVyLmlzQXNjZW5kaW5nU29ydE9yZGVyO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlBNX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uQ0FURUdPUllfUkVQQUlSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRlVFTF9JVEVNX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uREVQQVJUTUVOVF9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlBBUktJTkdfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5UQUdfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5BQ1RJT05fRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MQUJFTF9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhUG1GaWx0ZXIpIHtcbiAgICAgICAgICB0aGlzLmNhUG1GaWx0ZXIuc29ydEl0ZW1zKCk7XG4gICAgICAgICAgdGhpcy5pc0FzY2VuZGluZ1NvcnRPcmRlciA9IHRoaXMuY2FQbUZpbHRlci5pc0FzY2VuZGluZ1NvcnRPcmRlcjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5VU0VSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTU9EVUxFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FVc2VyRmlsdGVyKSB7XG4gICAgICAgICAgdGhpcy5jYVVzZXJGaWx0ZXIuc29ydEl0ZW1zKCk7XG4gICAgICAgICAgdGhpcy5pc0FzY2VuZGluZ1NvcnRPcmRlciA9IHRoaXMuY2FVc2VyRmlsdGVyLmlzQXNjZW5kaW5nU29ydE9yZGVyO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmlzQXNjZW5kaW5nU29ydE9yZGVyID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNob3dTZWFyY2gobW9kPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKG1vZCkge1xuICAgICAgdGhpcy5pc1NlYXJjaEV4cGFuZGVkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNTZWFyY2hFeHBhbmRlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEZpbHRlclZhbHVlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGxldCBmaWx0ZXJSZXN1bHQ6IGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXMgfCB1bmRlZmluZWQ7XG4gICAgdGhpcy5pc0ZpbHRlckFjdGl2ZUNvbG9yID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLmlzQ29sbGFwc2libGVGaWx0ZXIgJiYgdGhpcy5jYUNvbGxhcHNpYmxlRmlsdGVyKSB7XG4gICAgICBmaWx0ZXJSZXN1bHQgPSB0aGlzLmNhQ29sbGFwc2libGVGaWx0ZXIuc2V0RmlsdGVyVmFsdWUoKTtcbiAgICAgIHRoaXMuc2V0RmlsdGVyRW1pdChmaWx0ZXJSZXN1bHQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLk1PTkVZX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTUlMRVNfRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYU1vbmV5RmlsdGVyKVxuICAgICAgICAgIGZpbHRlclJlc3VsdCA9IHRoaXMuY2FNb25leUZpbHRlci5zZXRGaWx0ZXJWYWx1ZShldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlNUQVRVU19GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhU3RhdHVzRmlsdGVyKVxuICAgICAgICAgIGZpbHRlclJlc3VsdCA9IHRoaXMuY2FTdGF0dXNGaWx0ZXIuc2V0RmlsdGVyVmFsdWUoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVElNRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVGltZUZpbHRlcilcbiAgICAgICAgICBmaWx0ZXJSZXN1bHQgPSB0aGlzLmNhVGltZUZpbHRlci5zZXRGaWx0ZXJWYWx1ZShldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkRJU1BBVENIRVJfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5EUklWRVJfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5GVUVMX1NUT1BfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5CUk9LRVJfRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYURpc3BhdGNoZXJGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYURpc3BhdGNoZXJGaWx0ZXIuc2V0RmlsdGVyVmFsdWUoZXZlbnQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5TVEFURV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhU3RhdGVGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVN0YXRlRmlsdGVyLnNldEZpbHRlclZhbHVlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlRSVUNLX1RZUEVfRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYVRydWNrVHlwZUZpbHRlcilcbiAgICAgICAgICBmaWx0ZXJSZXN1bHQgPSB0aGlzLmNhVHJ1Y2tUeXBlRmlsdGVyLnNldEZpbHRlclZhbHVlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlRSQUlMRVJfVFlQRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVHJhaWxlclR5cGVGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVRyYWlsZXJUeXBlRmlsdGVyLnNldEZpbHRlclZhbHVlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlBNX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uQ0FURUdPUllfUkVQQUlSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRlVFTF9JVEVNX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uREVQQVJUTUVOVF9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlBBUktJTkdfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5UQUdfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5BQ1RJT05fRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MQUJFTF9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhUG1GaWx0ZXIpIGZpbHRlclJlc3VsdCA9IHRoaXMuY2FQbUZpbHRlci5zZXRGaWx0ZXJWYWx1ZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5VU0VSX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTU9EVUxFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FVc2VyRmlsdGVyKVxuICAgICAgICAgIGZpbHRlclJlc3VsdCA9IHRoaXMuY2FVc2VyRmlsdGVyLnNldEZpbHRlclZhbHVlKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTE9DQVRJT05fRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYUxvY2F0aW9uRmlsdGVyKVxuICAgICAgICAgIGZpbHRlclJlc3VsdCA9IHRoaXMuY2FMb2NhdGlvbkZpbHRlci5zZXRGaWx0ZXJWYWx1ZSgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5WSU9MQVRJT05fRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYVZpb2xhdGlvbkZpbHRlcilcbiAgICAgICAgICBmaWx0ZXJSZXN1bHQgPSB0aGlzLmNhVmlvbGF0aW9uRmlsdGVyLnNldEZpbHRlclZhbHVlKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IEZpbHRlckFjdGlvbnNTdHJpbmdFbnVtLkFDVElPTl9DTEVBUjtcbiAgICAgICAgY29uc3QgdHlwZSA9IEZpbHRlckFjdGlvbnNTdHJpbmdFbnVtLlRZUEVfVU5LTk9XTjtcbiAgICAgICAgY29uc3QgZmlsdGVyVHlwZSA9IEZpbHRlckFjdGlvbnNTdHJpbmdFbnVtLlRZUEVfVU5LTk9XTjtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBmaWx0ZXJUeXBlLFxuICAgICAgICB9O1xuICAgICAgICBmaWx0ZXJSZXN1bHQgPSBkYXRhO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyUmVzdWx0KSB0aGlzLmF1dG9DbG9zZS5jbG9zZUN1c3RvbVBvcG92ZXIoKTtcbiAgICB0aGlzLnNldEZpbHRlckVtaXQoZmlsdGVyUmVzdWx0KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRGaWx0ZXJFbWl0KFxuICAgIGRhdGE6IGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXMgfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2V0RmlsdGVyKSB0aGlzLnNldEZpbHRlci5lbWl0KGRhdGEpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQWxsVmFsdWVzKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgZmlsdGVyUmVzdWx0OiBmaWx0ZXJPdXRwdXQgfCBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIHwgdW5kZWZpbmVkO1xuICAgIHRoaXMuaXNGaWx0ZXJBY3RpdmVDb2xvciA9IGZhbHNlO1xuICAgIHRoaXMuaXNIb3ZlckNsb3NlZCA9IGZhbHNlO1xuXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uTU9ORVlfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5NSUxFU19GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhTW9uZXlGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYU1vbmV5RmlsdGVyLmNsZWFyQWxsKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uU1RBVFVTX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FTdGF0dXNGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVN0YXR1c0ZpbHRlci5jbGVhckFsbChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlRJTUVfRklMVEVSOlxuICAgICAgICBpZiAodGhpcy5jYVRpbWVGaWx0ZXIpIGZpbHRlclJlc3VsdCA9IHRoaXMuY2FUaW1lRmlsdGVyLmNsZWFyQWxsKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRElTUEFUQ0hFUl9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkRSSVZFUl9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkZVRUxfU1RPUF9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkJST0tFUl9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhRGlzcGF0Y2hlckZpbHRlcilcbiAgICAgICAgICBmaWx0ZXJSZXN1bHQgPSB0aGlzLmNhRGlzcGF0Y2hlckZpbHRlci5jbGVhckFsbChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlNUQVRFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FTdGF0ZUZpbHRlcilcbiAgICAgICAgICBmaWx0ZXJSZXN1bHQgPSB0aGlzLmNhU3RhdGVGaWx0ZXIuY2xlYXJBbGwoZXZlbnQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5UUlVDS19UWVBFX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FUcnVja1R5cGVGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVRydWNrVHlwZUZpbHRlci5jbGVhckFsbChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlRSQUlMRVJfVFlQRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVHJhaWxlclR5cGVGaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVRyYWlsZXJUeXBlRmlsdGVyLmNsZWFyQWxsKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uUE1fRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5DQVRFR09SWV9SRVBBSVJfRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5GVUVMX0lURU1fRklMVEVSOlxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5ERVBBUlRNRU5UX0ZJTFRFUjpcbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uUEFSS0lOR19GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlRBR19GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkFDVElPTl9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkxBQkVMX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FQbUZpbHRlcikgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVBtRmlsdGVyLmNsZWFyQWxsKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVVNFUl9GSUxURVI6XG4gICAgICBjYXNlIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLk1PRFVMRV9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhVXNlckZpbHRlcikgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVVzZXJGaWx0ZXIuY2xlYXJBbGwoZXZlbnQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5MT0NBVElPTl9GSUxURVI6XG4gICAgICAgIGlmICh0aGlzLmNhTG9jYXRpb25GaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYUxvY2F0aW9uRmlsdGVyLmNsZWFyQWxsKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVklPTEFUSU9OX0ZJTFRFUjpcbiAgICAgICAgaWYgKHRoaXMuY2FWaW9sYXRpb25GaWx0ZXIpXG4gICAgICAgICAgZmlsdGVyUmVzdWx0ID0gdGhpcy5jYVZpb2xhdGlvbkZpbHRlci5jbGVhckFsbChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zdCBhY3Rpb24gPSBGaWx0ZXJBY3Rpb25zU3RyaW5nRW51bS5BQ1RJT05fQ0xFQVI7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBGaWx0ZXJBY3Rpb25zU3RyaW5nRW51bS5UWVBFX1VOS05PV047XG4gICAgICAgIGNvbnN0IGZpbHRlclR5cGUgPSBGaWx0ZXJBY3Rpb25zU3RyaW5nRW51bS5UWVBFX1VOS05PV047XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgZmlsdGVyVHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgZmlsdGVyUmVzdWx0ID0gZGF0YTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlclJlc3VsdCkgdGhpcy5hdXRvQ2xvc2UuY2xvc2VDdXN0b21Qb3BvdmVyKCk7XG4gICAgdGhpcy5jbGVhckFsbFZhbHVlc0VtaXQoZmlsdGVyUmVzdWx0KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckFsbFZhbHVlc0VtaXQoXG4gICAgZGF0YTogZmlsdGVyT3V0cHV0IHwgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB8IHVuZGVmaW5lZFxuICApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbGVhckFsbCkgdGhpcy5jbGVhckFsbC5lbWl0KGRhdGEpO1xuICB9XG5cbiAgcHVibGljIGdldFN2Z1BhdGgocHJvcGVydHlOYW1lOiBrZXlvZiB0eXBlb2YgQ2FGaWx0ZXJzU3ZnUm91dGVzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRmlsdGVySGVscGVyLmdldFN2Z1BhdGgocHJvcGVydHlOYW1lKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInVzZXItaWNvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICBhcHAtY2EtYXV0b2Nsb3NlLXBvcG92ZXJcbiAgW2N1c3RvbUNsYXNzXT1cIidmaWx0ZXJwb3BvdmVybWFpbidcIlxuICBbcGxhY2VtZW50XT1cImlzQ29sbGFwc2libGVGaWx0ZXIgPyAncmlnaHQnIDogJ2JvdHRvbS1sZWZ0J1wiXG4gIGF1dG9DbG9zZT1cIm91dHNpZGVcIlxuICAoY2xvc2VGaWx0ZXIpPVwib25GaWx0ZXJDbG9zZSgpXCJcbiAgKG9wZW5GaWx0ZXIpPVwib25GaWx0ZXJTaG93bigpXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdhY3RpdmUtb3B0aW9ucyc6IGlzRmlsdGVyQWN0aXZlLFxuICAgICdjbGVhci1jb2xvcnMnOiBpc0hvdmVyQ2xvc2VkLFxuICAgICdmaWx0ZXItYWN0aXZlLWNvbG9ycyc6IGlzRmlsdGVyQWN0aXZlQ29sb3IsXG4gICAgJ2FjdGl2ZS1jb2xsYXBzaWJsZSc6IGlzQ29sbGFwc2libGVGaWx0ZXJcbiAgfVwiXG4gIChtb3VzZWVudGVyKT1cImlzRmlsdGVySG92ZXJlZE92ZXIgPSB0cnVlXCJcbiAgKG1vdXNlbGVhdmUpPVwiaXNGaWx0ZXJIb3ZlcmVkT3ZlciA9IGZhbHNlXCJcbj5cbiAgPGRpdlxuICAgIG1haW5Db250ZW50XG4gICAgbmdiVG9vbHRpcFxuICAgIG1haW5DYVRvb2x0aXA9XCJ7e1xuICAgICAgJ21haW5Ub29sdGlwJ1xuICAgICAgICB8IGZpbHRlclBvcG92ZXJDb25kaXRpb25zUGlwZVxuICAgICAgICAgIDogZ2V0Q29tcG9uZW50SW5zdGFuY2UoKVxuICAgICAgICAgIDogY2FNb25leUZpbHRlclxuICAgICAgICAgIDogY2FTdGF0dXNGaWx0ZXJcbiAgICAgICAgICA6IGNhRGlzcGF0Y2hlckZpbHRlclxuICAgICAgICAgIDogY2FTdGF0ZUZpbHRlclxuICAgICAgICAgIDogY2FUcnVja1R5cGVGaWx0ZXJcbiAgICAgICAgICA6IGNhVHJhaWxlclR5cGVGaWx0ZXJcbiAgICAgICAgICA6IGNhUG1GaWx0ZXJcbiAgICB9fVwiXG4gICAgcG9zaXRpb249XCJib3R0b21cIlxuICAgIHRvb2x0aXBCYWNrZ3JvdW5kPVwie3sgaXNGaWx0ZXJBY3RpdmUgPyAnI0NDQ0NDQycgOiAnIzJGMkYyRicgfX1cIlxuICAgIHRvb2x0aXBDb2xvcj1cInt7IGlzRmlsdGVyQWN0aXZlID8gJyMyRjJGMkYnIDogJyNGRkZGRkYnIH19XCJcbiAgICB0b29sdGlwVGV4dEFsaWduPVwiY2VudGVyXCJcbiAgICBjbGFzcz1cIm1haW4taWNvbi1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgPlxuICAgIDxkaXY+XG4gICAgICA8c3ZnLWljb24gW3NyY109XCJpY29uIHwgY2FTdmcgOiAnY29tbW9uJ1wiPjwvc3ZnLWljb24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRmlsdGVyQWN0aXZlQ29sb3JcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNGaWx0ZXJIb3ZlcmVkT3ZlcjsgZWxzZSBjbG9zZUJ1dHRvblwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCIhaXNOb3REcm9wZG93bigpICYmIGdldEZpbHRlckNvdW50KCk7IGVsc2UgY2hlY2ttYXJrXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVycy1zZWxlY3RlZC12YWx1ZS1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHRhLWZvbnQtZXh0cmEtYm9sZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgZ2V0RmlsdGVyQ291bnQoKSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2NoZWNrbWFyaz5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZpbHRlcnMtc2VsZWN0ZWQtdmFsdWUtaG9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN2Zy1pY29uIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnaWNvbkNvbmZpcm0nKVwiPjwvc3ZnLWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNjbG9zZUJ1dHRvbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmlsdGVycy1zZWxlY3RlZC12YWx1ZS1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJpc0hvdmVyQ2xvc2VkID0gdHJ1ZVwiXG4gICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaXNIb3ZlckNsb3NlZCA9IGZhbHNlXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3ZnLWljb24gW3NyY109XCJnZXRTdmdQYXRoKCdjYW5jZWxWaW9sYXRpb24nKVwiPjwvc3ZnLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBwb3BvdmVyQ29udGVudCBjbGFzcz1cIm1haW4tcG9wb3Zlci1ib2R5XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ29sbGFwc2libGVGaWx0ZXJcIj5cbiAgICAgIDxhcHAtY2EtY29sbGFwc2libGUtZmlsdGVyXG4gICAgICAgIChvblRhZ0VtaXQpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgIFtmaWx0ZXJBcnJheV09XCJwbUZpbHRlckFycmF5XCJcbiAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICA+PC9hcHAtY2EtY29sbGFwc2libGUtZmlsdGVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNCdXR0b25GaWx0ZXIgJiYgIWlzQ29sbGFwc2libGVGaWx0ZXJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgW0BzaG93QW5pbWF0aW9uXT1cIiEhaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICBjbGFzcz1cImZpbHRlci1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1zdGFydFwiXG4gICAgICAgIFtjbGFzcy5zdGF0ZS1maWx0ZXJdPVwidHlwZSA9PT0gJ3N0YXRlRmlsdGVyJ1wiXG4gICAgICAgIFtjbGFzcy5kZXBhcnRtZW50LWZpbHRlcl09XCJoYXNOb0xlZnRJY29uXCJcbiAgICAgICAgW2NsYXNzLnN0YXR1cy1maWx0ZXJdPVwidHlwZSA9PT0gJ3N0YXR1c0ZpbHRlcidcIlxuICAgICAgICBbY2xhc3MucG0tZmlsdGVyXT1cImhhc0xlZnRTaWRlSWNvblwiXG4gICAgICAgIFtjbGFzcy50cnVjay1pY29uLWhvbGRlcl09XCJoYXNMYXJnZUxlZnRJY29uXCJcbiAgICAgICAgW2NsYXNzLm1vbmV5LWZpbHRlcl09XCJ0eXBlID09PSAnbW9uZXlGaWx0ZXInIHx8IHR5cGUgPT09ICdtaWxlc0ZpbHRlcidcIlxuICAgICAgICBbY2xhc3MubG9jYXRpb24tZmlsdGVyXT1cInR5cGUgPT09ICdsb2NhdGlvbkZpbHRlcidcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmaWx0ZXItaGVhZGVyIGZpbHRlci10ZXh0LXBhcnQgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZUhlYWRlcl09XCIhaXNTZWFyY2hFeHBhbmRlZFwiXG4gICAgICAgICAgW2NsYXNzLmluYWN0aXZlSGVhZGVyXT1cImlzU2VhcmNoRXhwYW5kZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLXRpdGxlLXRleHQgY291bnRlci1wYWRkLXRpdGxlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBmaWx0ZXJUaXRsZSB8IHVwcGVyY2FzZSB9fVxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgKHR5cGUgPT09ICdkaXNwYXRjaGVyRmlsdGVyJyB8fFxuICAgICAgICAgICAgICAgICAgdHlwZSA9PT0gJ2RyaXZlckZpbHRlcicgfHxcbiAgICAgICAgICAgICAgICAgIHR5cGUgPT09ICdmdWVsU3RvcEZpbHRlcicgfHxcbiAgICAgICAgICAgICAgICAgIHR5cGUgPT09ICdicm9rZXJGaWx0ZXInKSAmJlxuICAgICAgICAgICAgICAgIGNhRGlzcGF0Y2hlckZpbHRlcj8uc2VsZWN0ZWRVc2VyPy5sZW5ndGhcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlci1maWx0ZXItYm94IGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBjYS1mb250LWJvbGQgbXMtMVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBjYURpc3BhdGNoZXJGaWx0ZXI/LnNlbGVjdGVkVXNlcj8ubGVuZ3RoIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgJ3VzZXJCb3gnXG4gICAgICAgICAgICAgICAgICB8IGZpbHRlclBvcG92ZXJDb25kaXRpb25zUGlwZVxuICAgICAgICAgICAgICAgICAgICA6IGdldENvbXBvbmVudEluc3RhbmNlKClcbiAgICAgICAgICAgICAgICAgICAgOiBjYU1vbmV5RmlsdGVyXG4gICAgICAgICAgICAgICAgICAgIDogY2FTdGF0dXNGaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgOiBjYURpc3BhdGNoZXJGaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgOiBjYVN0YXRlRmlsdGVyXG4gICAgICAgICAgICAgICAgICAgIDogY2FUcnVja1R5cGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgOiBjYVRyYWlsZXJUeXBlRmlsdGVyXG4gICAgICAgICAgICAgICAgICAgIDogY2FQbUZpbHRlclxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgICAgICAgICAgfCBmaWx0ZXJDb25kaXRpb25zVXNlckJveFxuICAgICAgICAgICAgICAgICAgICAgIDogY2FUcnVja1R5cGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICA6IGNhVHJhaWxlclR5cGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICA6IGNhU3RhdHVzRmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgOiBjYVBtRmlsdGVyIGFzIGZpbHRlclJlc3VsdFxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXItZmlsdGVyLWJveCBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgY2EtZm9udC1ib2xkIG1zLTFcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGZpbHRlclJlc3VsdCB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgJ3NvcnRJdGVtcydcbiAgICAgICAgICAgICAgICB8IGZpbHRlclBvcG92ZXJDb25kaXRpb25zUGlwZVxuICAgICAgICAgICAgICAgICAgOiBnZXRDb21wb25lbnRJbnN0YW5jZSgpXG4gICAgICAgICAgICAgICAgICA6IGNhTW9uZXlGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FTdGF0dXNGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FEaXNwYXRjaGVyRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhU3RhdGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FUcnVja1R5cGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FUcmFpbGVyVHlwZUZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYVBtRmlsdGVyO1xuICAgICAgICAgICAgICBlbHNlIHRydWNrRmlsdGVyXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNvcnRJdGVtcygpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLXRpdGxlLXRleHQgc29ydC10ZXh0IHRhLWZvbnQtbWVkaXVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWVuZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgdHlwZSA9PT0gJ3N0YXR1c0ZpbHRlcicgfHxcbiAgICAgICAgICAgICAgICB0eXBlID09PSAnZGlzcGF0Y2hlckZpbHRlcicgfHxcbiAgICAgICAgICAgICAgICB0eXBlID09PSAnZHJpdmVyRmlsdGVyJyB8fFxuICAgICAgICAgICAgICAgIHR5cGUgPT09ICdmdWVsU3RvcEZpbHRlcicgfHxcbiAgICAgICAgICAgICAgICB0eXBlID09PSAnYnJva2VyRmlsdGVyJ1xuICAgICAgICAgICAgICAgICAgPyAnQ291bnQnXG4gICAgICAgICAgICAgICAgICA6ICdOYW1lJ1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNvcnQtYXJyb3cgbXMtMVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnJvdGF0ZV09XCIhaXNBc2NlbmRpbmdTb3J0T3JkZXJcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnc29ydEFycm93U3ZnUm91dGUnKVwiXG4gICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICd3aWR0aC5weCc6ICcxOCcsXG4gICAgICAgICAgICAgICAgICAnaGVpZ2h0LnB4JzogJzE4JyxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RydWNrRmlsdGVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICh0eXBlID09PSAndHJ1Y2tGaWx0ZXInIHx8XG4gICAgICAgICAgICAgICAgICB0eXBlID09PSAndHJ1Y2tUeXBlRmlsdGVyJyB8fFxuICAgICAgICAgICAgICAgICAgdHlwZSA9PT0gJ3RyYWlsZXJGaWx0ZXInKSAmJlxuICAgICAgICAgICAgICAgICAgaXNSZXBhaXJGaWx0ZXI7XG4gICAgICAgICAgICAgICAgZWxzZSBzdGF0ZUZpbHRlclxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNvcnRJdGVtcygpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXItdGl0bGUtdGV4dCBzb3J0LXRleHQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtZW5kXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIENvdW50XG4gICAgICAgICAgICAgICAgPHN2Zy1pY29uIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnc29ydEFycm93U3ZnUm91dGUnKVwiPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3N0YXRlRmlsdGVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICdzdGF0ZUZpbHRlcic7IGVsc2Ugc2VhcmNoU3RhdGVcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlci1maWx0ZXItYm94IGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBjYS1mb250LWJvbGQgbXMtMVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgKGNhU3RhdGVGaWx0ZXI/LmNhbmFkYVNlbGVjdGVkU3RhdGVzKSEubGVuZ3RoICtcbiAgICAgICAgICAgICAgICAgICAgKGNhU3RhdGVGaWx0ZXI/LnVzYVNlbGVjdGVkU3RhdGVzKSEubGVuZ3RoXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2VhcmNoU3RhdGU+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlYXJjaFN0YXRlXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pY29uLWhvbGRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93U2VhcmNoKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2Zy1pY29uIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnc2VhcmNoSWNvblJvdXRlJylcIj48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWJvZHktaG9sZGVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21vbmV5RmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLW1vbmV5LWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtpc01vbmV5RmlsdGVyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtpc01pbGVzRmlsdGVyXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbaXNGdWVsVHlwZV09XCJpc0Z1ZWxUeXBlXCJcbiAgICAgICAgICAgICAgICBbaXNMb2FkVHlwZV09XCJpc0xvYWRUeXBlXCJcbiAgICAgICAgICAgICAgICBbc3ViVHlwZV09XCJzdWJUeXBlXCJcbiAgICAgICAgICAgICAgICBbaXNGaWx0ZXJBY3RpdmVdPVwiaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWlsZXNGaWx0ZXInXCI+XG4gICAgICAgICAgICAgIDxhcHAtY2EtbW9uZXktZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2lzTW9uZXlGaWx0ZXJdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtpc01pbGVzRmlsdGVyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtpc0Z1ZWxUeXBlXT1cImlzRnVlbFR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0xvYWRUeXBlXT1cImlzTG9hZFR5cGVcIlxuICAgICAgICAgICAgICAgIFtzdWJUeXBlXT1cInN1YlR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzdGF0dXNGaWx0ZXInXCI+XG4gICAgICAgICAgICAgIDxhcHAtY2Etc3RhdHVzLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW2xvYWRTdGF0dXNPcHRpb25zQXJyYXldPVwibG9hZFN0YXR1c09wdGlvbnNBcnJheVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0aW1lRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLXRpbWUtZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbdGltZVN1YlR5cGVdPVwidGltZVN1YlR5cGVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGlzcGF0Y2hlckZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS1kaXNwYXRjaGVyLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW3Vuc2VsZWN0ZWRVc2VyXT1cInVuc2VsZWN0ZWRVc2VyXCJcbiAgICAgICAgICAgICAgICBbaXNTZWFyY2hFeHBhbmRlZF09XCJpc1NlYXJjaEV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RyaXZlckZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS1kaXNwYXRjaGVyLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW3Vuc2VsZWN0ZWRVc2VyXT1cInVuc2VsZWN0ZWRVc2VyXCJcbiAgICAgICAgICAgICAgICBbaXNTZWFyY2hFeHBhbmRlZF09XCJpc1NlYXJjaEV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Z1ZWxTdG9wRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLWRpc3BhdGNoZXItZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbdW5zZWxlY3RlZFVzZXJdPVwidW5zZWxlY3RlZFVzZXJcIlxuICAgICAgICAgICAgICAgIFtpc1NlYXJjaEV4cGFuZGVkXT1cImlzU2VhcmNoRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYnJva2VyRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLWRpc3BhdGNoZXItZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbdW5zZWxlY3RlZFVzZXJdPVwidW5zZWxlY3RlZFVzZXJcIlxuICAgICAgICAgICAgICAgIFtpc1NlYXJjaEV4cGFuZGVkXT1cImlzU2VhcmNoRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3RhdGVGaWx0ZXInXCI+XG4gICAgICAgICAgICAgIDxhcHAtY2Etc3RhdGUtZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbaXNTZWFyY2hFeHBhbmRlZF09XCJpc1NlYXJjaEV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICBbdXNhU3RhdGVzXT1cInVzYVN0YXRlc1wiXG4gICAgICAgICAgICAgICAgW2NhbmFkYVN0YXRlc109XCJjYW5hZGFTdGF0ZXNcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndHJ1Y2tUeXBlRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLXRydWNrLXR5cGUtZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbaXNSZXBhaXJGaWx0ZXJdPVwiaXNSZXBhaXJGaWx0ZXJcIlxuICAgICAgICAgICAgICAgIFt0cnVja1R5cGVBcnJheV09XCJ0cnVja1R5cGVBcnJheVwiXG4gICAgICAgICAgICAgICAgW2lzU2VhcmNoRXhwYW5kZWRdPVwiaXNTZWFyY2hFeHBhbmRlZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0cmFpbGVyVHlwZUZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS10cmFpbGVyLXR5cGUtZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbdHJhaWxlclR5cGVBcnJheV09XCJ0cmFpbGVyVHlwZUFycmF5XCJcbiAgICAgICAgICAgICAgICBbaXNSZXBhaXJGaWx0ZXJdPVwiaXNSZXBhaXJGaWx0ZXJcIlxuICAgICAgICAgICAgICAgIFtpc1NlYXJjaEV4cGFuZGVkXT1cImlzU2VhcmNoRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncG1GaWx0ZXInXCI+XG4gICAgICAgICAgICAgIDxhcHAtY2EtcG0tZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbcG1GaWx0ZXJBcnJheV09XCJwbUZpbHRlckFycmF5XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NhdGVnb3J5UmVwYWlyRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLXBtLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW3BtRmlsdGVyQXJyYXldPVwicG1GaWx0ZXJBcnJheVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidmdWVsSXRlbUZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS1wbS1maWx0ZXJcbiAgICAgICAgICAgICAgICAoc2V0RmlsdGVyKT1cInNldEZpbHRlclZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGVhckFsbCk9XCJjbGVhckFsbFZhbHVlcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgICAgICBbaXNGaWx0ZXJBY3RpdmVdPVwiaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgICAgIFtwbUZpbHRlckFycmF5XT1cInBtRmlsdGVyQXJyYXlcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGVwYXJ0bWVudEZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS1wbS1maWx0ZXJcbiAgICAgICAgICAgICAgICAoc2V0RmlsdGVyKT1cInNldEZpbHRlclZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGVhckFsbCk9XCJjbGVhckFsbFZhbHVlcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgICAgICBbaXNGaWx0ZXJBY3RpdmVdPVwiaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgICAgIFtwbUZpbHRlckFycmF5XT1cInBtRmlsdGVyQXJyYXlcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncGFya2luZ0ZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS1wbS1maWx0ZXJcbiAgICAgICAgICAgICAgICAoc2V0RmlsdGVyKT1cInNldEZpbHRlclZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGVhckFsbCk9XCJjbGVhckFsbFZhbHVlcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgICAgICBbaXNGaWx0ZXJBY3RpdmVdPVwiaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgICAgIFtwbUZpbHRlckFycmF5XT1cInBtRmlsdGVyQXJyYXlcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGFnRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLXBtLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW3BtRmlsdGVyQXJyYXldPVwicG1GaWx0ZXJBcnJheVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidhY3Rpb25GaWx0ZXInXCI+XG4gICAgICAgICAgICAgIDxhcHAtY2EtcG0tZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbcG1GaWx0ZXJBcnJheV09XCJwbUZpbHRlckFycmF5XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xhYmVsRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLXBtLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW3BtRmlsdGVyQXJyYXldPVwicG1GaWx0ZXJBcnJheVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid1c2VyRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLXVzZXItZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbdXNlckdyb3VwXT1cInVzZXJHcm91cFwiXG4gICAgICAgICAgICAgICAgW2lzU2VhcmNoRXhwYW5kZWRdPVwiaXNTZWFyY2hFeHBhbmRlZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtb2R1bGVGaWx0ZXInXCI+XG4gICAgICAgICAgICAgIDxhcHAtY2EtdXNlci1maWx0ZXJcbiAgICAgICAgICAgICAgICAoc2V0RmlsdGVyKT1cInNldEZpbHRlclZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGVhckFsbCk9XCJjbGVhckFsbFZhbHVlcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgICAgICBbaXNGaWx0ZXJBY3RpdmVdPVwiaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAgICAgICAgIFt1c2VyR3JvdXBdPVwidXNlckdyb3VwXCJcbiAgICAgICAgICAgICAgICBbaXNTZWFyY2hFeHBhbmRlZF09XCJpc1NlYXJjaEV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xvY2F0aW9uRmlsdGVyJ1wiPlxuICAgICAgICAgICAgICA8YXBwLWNhLWxvY2F0aW9uLWZpbHRlclxuICAgICAgICAgICAgICAgIChzZXRGaWx0ZXIpPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsZWFyQWxsKT1cImNsZWFyQWxsVmFsdWVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgW2FkZHJlc3NMaXN0XT1cImFkZHJlc3NMaXN0XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3Zpb2xhdGlvbkZpbHRlcidcIj5cbiAgICAgICAgICAgICAgPGFwcC1jYS12aW9sYXRpb24tZmlsdGVyXG4gICAgICAgICAgICAgICAgKHNldEZpbHRlcik9XCJzZXRGaWx0ZXJWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgW2lzRmlsdGVyQWN0aXZlXT1cImlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYnV0dG9ucy1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgW2NsYXNzLmJ1dHRvbnMtbG9uZ109XCJ0eXBlID09PSAnbG9jYXRpb25GaWx0ZXInXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhckFsbFZhbHVlcygkZXZlbnQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWNsZWFyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJcbiAgICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICAgICAgIHwgZmlsdGVyQ29uZGl0aW9uc0NsZWFyXG4gICAgICAgICAgICAgICAgICA6IGNhTW9uZXlGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FTdGF0dXNGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FUaW1lRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhRGlzcGF0Y2hlckZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYVN0YXRlRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhVHJ1Y2tUeXBlRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhVHJhaWxlclR5cGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FQbUZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYUxvY2F0aW9uRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhVXNlckZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYVZpb2xhdGlvbkZpbHRlclxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBDbGVhciBBbGxcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAoY2xpY2spPVwic2V0RmlsdGVyVmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1zZXQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIlxuICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICAgICAgfCBmaWx0ZXJDb25kaXRpb25zU2V0XG4gICAgICAgICAgICAgICAgICA6IGNhTW9uZXlGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FTdGF0dXNGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FUaW1lRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhRGlzcGF0Y2hlckZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYVN0YXRlRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhVHJ1Y2tUeXBlRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhVHJhaWxlclR5cGVGaWx0ZXJcbiAgICAgICAgICAgICAgICAgIDogY2FQbUZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYUxvY2F0aW9uRmlsdGVyXG4gICAgICAgICAgICAgICAgICA6IGNhVXNlckZpbHRlclxuICAgICAgICAgICAgICAgICAgOiBjYVZpb2xhdGlvbkZpbHRlclxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBTZXRcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbjwhLS0gPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0NvbGxhcHNpYmxlRmlsdGVyXCI+XG4gICAgICA8YXBwLWNhLWNvbGxhcHNpYmxlLWZpbHRlclxuICAgICAgICAoc2V0RmlsdGVyKT1cInNldEZpbHRlclZhbHVlKCRldmVudClcIlxuICAgICAgICAoY2xlYXJBbGwpPVwiY2xlYXJBbGxWYWx1ZXMoJGV2ZW50KVwiXG4gICAgICAgIFtmaWx0ZXJBcnJheV09XCJwbUZpbHRlckFycmF5XCJcbiAgICAgICAgW2lzRXhwYW5kZWRdPVwiaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgPjwvYXBwLWNhLWNvbGxhcHNpYmxlLWZpbHRlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+IC0tPlxuIl19