buildingproduct-library 0.2.76 → 0.2.78

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 (116) hide show
  1. package/assets/images/pdf-icon.svg +45 -0
  2. package/{buildingproduct-library-0.2.76.tgz → buildingproduct-library-0.2.78.tgz} +0 -0
  3. package/bundles/buildingproduct-library.umd.js +3471 -2489
  4. package/bundles/buildingproduct-library.umd.js.map +1 -1
  5. package/esm2015/lib/account-dropdown/account-dropdown.component.js +38 -4
  6. package/esm2015/lib/account-dropdown/account-dropdown.service.js +3 -3
  7. package/esm2015/lib/checkout/add-new-address/add-new-address.component.js +22 -13
  8. package/esm2015/lib/checkout/checkout.module.js +10 -2
  9. package/esm2015/lib/checkout/custom-checkout/custom-checkout.component.js +7 -28
  10. package/esm2015/lib/checkout/order-confirmation/order-confirmation.component.js +2 -3
  11. package/esm2015/lib/checkout/order-review/delivery-information/delivery-information.component.js +1 -1
  12. package/esm2015/lib/checkout/order-review/order-review-grid/order-review-grid.component.js +86 -16
  13. package/esm2015/lib/checkout/order-review/order-review-list/order-review-list.component.js +72 -15
  14. package/esm2015/lib/checkout/order-review/order-review.component.js +3 -27
  15. package/esm2015/lib/contact-us/contact-us.component.js +1 -1
  16. package/esm2015/lib/custom-cart/addto-saved-carts/addto-saved-carts.component.js +2 -2
  17. package/esm2015/lib/custom-cart/custom-cart.component.js +3 -27
  18. package/esm2015/lib/custom-cart/custom-cart.module.js +3 -3
  19. package/esm2015/lib/custom-mini-cart/custom-mini-cart.component.js +110 -52
  20. package/esm2015/lib/custom-mini-cart/custom-mini-cart.module.js +2 -2
  21. package/esm2015/lib/custom-navigation/custom-navigation.component.js +122 -0
  22. package/esm2015/lib/custom-navigation/custom-navigation.module.js +3 -3
  23. package/esm2015/lib/custom-order-details/custom-order-details.component.js +26 -21
  24. package/esm2015/lib/custom-order-details/custom-order-details.module.js +15 -7
  25. package/esm2015/lib/custom-order-details/download-popup/download-popup.component.js +1 -1
  26. package/esm2015/lib/custom-order-details/order-detail-grid/order-detail-grid.component.js +105 -22
  27. package/esm2015/lib/custom-order-details/order-detail-list/order-detail-list.component.js +89 -23
  28. package/esm2015/lib/custom-order-history/custom-order-history.component.js +49 -22
  29. package/esm2015/lib/custom-order-history/custom-order-history.module.js +10 -2
  30. package/esm2015/lib/custom-order-history/slider-progress/slider-progress.component.js +1 -1
  31. package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/custom-save-cart-dtl/custom-save-cart-dtl.component.js +2 -2
  32. package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/custom-saved-cart-details.module.js +2 -2
  33. package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-action/saved-cart-details-action.component.js +4 -28
  34. package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-overview/saved-cart-details-overview.component.js +1 -1
  35. package/esm2015/lib/custom-saved-cart/custom-saved-cart.component.js +6 -4
  36. package/esm2015/lib/custom-saved-cart/custom-saved-cart.module.js +2 -2
  37. package/esm2015/lib/custom-saved-cart/saved-cart.service.js +11 -2
  38. package/esm2015/lib/custom-search/custom-search.component.js +3 -3
  39. package/esm2015/lib/custom-user-account/custom-user-account.component.js +2 -2
  40. package/esm2015/lib/directives/custom-directives.module.js +1 -1
  41. package/esm2015/lib/directives/custom-paginatior.directive.js +101 -31
  42. package/esm2015/lib/find-store/find-store.component.js +2 -2
  43. package/esm2015/lib/help-support/help-support.component.js +1 -1
  44. package/esm2015/lib/my-account/account-dashboard/account-dashboard.component.js +2 -2
  45. package/esm2015/lib/my-account/account-statements/account-statements.component.js +2 -2
  46. package/esm2015/lib/my-account/invoice-credit/invoice-credit.component.js +51 -17
  47. package/esm2015/lib/my-account/my-account.component.js +2 -2
  48. package/esm2015/lib/my-account/my-account.module.js +11 -3
  49. package/esm2015/lib/my-team/my-team.component.js +25 -17
  50. package/esm2015/lib/my-team/my-team.module.js +11 -7
  51. package/esm2015/lib/services/endPointURL.js +6 -1
  52. package/esm2015/lib/services/user-account-detail-service.service.js +172 -4
  53. package/esm2015/lib/shared/CustomProduct.js +5 -4
  54. package/esm2015/lib/shared/active-saved-cart/active-saved-cart.component.js +20 -11
  55. package/esm2015/lib/shared/custom-breadcrum/custom-breadcrum.component.js +17 -7
  56. package/esm2015/lib/shared/custom-cart-detail/custom-cart-detail.component.js +1 -1
  57. package/esm2015/lib/shared/custom-cart-detail/custom-cart-grid/custom-cart-grid.component.js +198 -102
  58. package/esm2015/lib/shared/custom-cart-detail/custom-cart-list/custom-cart-list.component.js +64 -22
  59. package/esm2015/lib/shared/custom-cart-detail/custom-product-quantity-form/custom-product-quantity-form.component.js +129 -80
  60. package/esm2015/lib/shared/date-range-picker/date-range-picker.component.js +59 -9
  61. package/esm2015/lib/shared/regEx.validator.js +3 -1
  62. package/esm2015/lib/shared/saved-cart-popup/saved-cart-popup.component.js +1 -1
  63. package/esm2015/lib/shared/shared-components.module.js +21 -10
  64. package/esm2015/lib/shared/shared-download-order/shared-download-order.component.js +116 -31
  65. package/esm2015/lib/spa-custom-header.module.js +14 -13
  66. package/esm2015/public-api.js +2 -2
  67. package/fesm2015/buildingproduct-library.js +1996 -1081
  68. package/fesm2015/buildingproduct-library.js.map +1 -1
  69. package/lib/checkout/add-new-address/add-new-address.component.d.ts +1 -0
  70. package/lib/checkout/checkout.module.d.ts +12 -10
  71. package/lib/checkout/custom-checkout/custom-checkout.component.d.ts +2 -5
  72. package/lib/checkout/order-review/order-review-grid/order-review-grid.component.d.ts +8 -2
  73. package/lib/checkout/order-review/order-review-list/order-review-list.component.d.ts +5 -2
  74. package/lib/checkout/order-review/order-review.component.d.ts +1 -4
  75. package/lib/custom-cart/custom-cart.component.d.ts +1 -4
  76. package/lib/custom-mini-cart/custom-mini-cart.component.d.ts +11 -3
  77. package/lib/custom-navigation/{custom-navigation/custom-navigation.component.d.ts → custom-navigation.component.d.ts} +1 -1
  78. package/lib/custom-navigation/custom-navigation.module.d.ts +1 -1
  79. package/lib/custom-order-details/custom-order-details.component.d.ts +5 -2
  80. package/lib/custom-order-details/custom-order-details.module.d.ts +6 -4
  81. package/lib/custom-order-details/order-detail-grid/order-detail-grid.component.d.ts +14 -4
  82. package/lib/custom-order-details/order-detail-list/order-detail-list.component.d.ts +10 -3
  83. package/lib/custom-order-history/custom-order-history.component.d.ts +3 -0
  84. package/lib/custom-order-history/custom-order-history.module.d.ts +8 -6
  85. package/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-action/saved-cart-details-action.component.d.ts +1 -4
  86. package/lib/custom-saved-cart/custom-saved-cart.component.d.ts +1 -0
  87. package/lib/custom-saved-cart/saved-cart.service.d.ts +1 -0
  88. package/lib/custom-search/custom-search.component.d.ts +1 -1
  89. package/lib/directives/custom-paginatior.directive.d.ts +6 -1
  90. package/lib/find-store/find-store.component.d.ts +1 -1
  91. package/lib/my-account/account-statements/account-statements.component.d.ts +1 -1
  92. package/lib/my-account/invoice-credit/invoice-credit.component.d.ts +8 -2
  93. package/lib/my-account/my-account.component.d.ts +1 -1
  94. package/lib/my-account/my-account.module.d.ts +7 -5
  95. package/lib/my-team/my-team.component.d.ts +2 -0
  96. package/lib/my-team/my-team.module.d.ts +7 -6
  97. package/lib/services/endPointURL.d.ts +3 -0
  98. package/lib/services/user-account-detail-service.service.d.ts +27 -1
  99. package/lib/shared/CustomProduct.d.ts +1 -0
  100. package/lib/shared/active-saved-cart/active-saved-cart.component.d.ts +3 -1
  101. package/lib/shared/custom-breadcrum/custom-breadcrum.component.d.ts +3 -1
  102. package/lib/shared/custom-cart-detail/custom-cart-grid/custom-cart-grid.component.d.ts +17 -9
  103. package/lib/shared/custom-cart-detail/custom-cart-list/custom-cart-list.component.d.ts +8 -6
  104. package/lib/shared/custom-cart-detail/custom-product-quantity-form/custom-product-quantity-form.component.d.ts +11 -3
  105. package/lib/shared/date-range-picker/date-range-picker.component.d.ts +11 -3
  106. package/lib/shared/regEx.validator.d.ts +2 -0
  107. package/lib/shared/shared-components.module.d.ts +10 -8
  108. package/lib/shared/shared-download-order/shared-download-order.component.d.ts +6 -4
  109. package/lib/spa-custom-header.module.d.ts +7 -6
  110. package/package.json +3 -1
  111. package/public-api.d.ts +1 -1
  112. package/esm2015/lib/custom-navigation/custom-navigation/custom-navigation.component.js +0 -121
  113. package/esm2015/lib/preference/preference.component.js +0 -19
  114. package/esm2015/lib/preference/preference.module.js +0 -45
  115. package/lib/preference/preference.component.d.ts +0 -8
  116. package/lib/preference/preference.module.d.ts +0 -10
@@ -1,21 +1,32 @@
1
- import { Component, Input } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
1
+ import { __awaiter } from "tslib";
2
+ import { Component, Input, ViewChild } from '@angular/core';
3
+ import { NgxMasonryComponent } from 'ngx-masonry';
4
+ import { BehaviorSubject } from "rxjs";
5
+ import { CommonUtils } from '../../utils';
3
6
  import * as i0 from "@angular/core";
4
7
  import * as i1 from "../../services/cart.service";
5
- import * as i2 from "@spartacus/storefront";
6
- import * as i3 from "@angular/common";
8
+ import * as i2 from "../../services/user-account-detail-service.service";
9
+ import * as i3 from "ngx-masonry";
10
+ import * as i4 from "@spartacus/storefront";
11
+ import * as i5 from "@angular/common";
7
12
  export class OrderDetailGridComponent {
8
- constructor(cartService, cdr) {
13
+ constructor(cartService, userProfileDetailsService, cdr) {
9
14
  this.cartService = cartService;
15
+ this.userProfileDetailsService = userProfileDetailsService;
10
16
  this.cdr = cdr;
11
17
  this.showDetails = [];
12
18
  this.arrowUpDown = [];
13
19
  this.showWaitCursor = new BehaviorSubject(false);
14
20
  this.cartDetails = [];
15
- this.environment = sessionStorage.getItem('env');
16
- this.env = JSON.parse(this.environment);
21
+ this.isOrderPermissions = true;
22
+ this.env = sessionStorage.getItem('env');
23
+ this.environment = JSON.parse(this.env);
17
24
  }
18
25
  ngOnInit() {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ this.isOrderPermissions =
28
+ yield this.userProfileDetailsService.isPlaceOrdersPermission();
29
+ });
19
30
  }
20
31
  ngOnChanges(changes) {
21
32
  var _a, _b, _c;
@@ -28,7 +39,7 @@ export class OrderDetailGridComponent {
28
39
  }
29
40
  else {
30
41
  this.showWaitCursor.next(false);
31
- this.noRecord = 'No data';
42
+ this.noRecord = "No data";
32
43
  }
33
44
  for (let i = 0; i < this.cartDetails.length; i++) {
34
45
  this.showDetails.push(false);
@@ -37,36 +48,77 @@ export class OrderDetailGridComponent {
37
48
  for (let i = 0; i < this.cartDetails.length; i++) {
38
49
  this.showDetails[i] = data;
39
50
  }
51
+ if (this.masonry && CommonUtils.isDesktop()) {
52
+ this.reloadMasonaryGrid();
53
+ }
40
54
  });
41
55
  this.cdr.detectChanges();
42
56
  }
43
57
  showHide(ind) {
44
58
  this.showDetails[ind] = !this.showDetails[ind];
59
+ this.reloadMasonaryGrid();
45
60
  }
46
61
  arrowHideShow(id) {
47
62
  this.arrowUpDown[id] = !this.arrowUpDown[id];
63
+ this.reloadMasonaryGrid();
64
+ }
65
+ reloadMasonaryGrid() {
66
+ if (this.masonry && (CommonUtils.isDesktop() || CommonUtils.isTablet())) {
67
+ this.masonry.reloadItems();
68
+ this.masonry.layout();
69
+ }
70
+ }
71
+ getColourDetails(configInfo, type) {
72
+ var _a, _b, _c, _d;
73
+ let name;
74
+ let background;
75
+ if (configInfo && (configInfo === null || configInfo === void 0 ? void 0 : configInfo.length) > 0) {
76
+ const colour = configInfo === null || configInfo === void 0 ? void 0 : configInfo.filter((col) => {
77
+ var _a;
78
+ return ((_a = col === null || col === void 0 ? void 0 : col.configurationLabel) === null || _a === void 0 ? void 0 : _a.toLowerCase()) == "color";
79
+ });
80
+ if (colour && (colour === null || colour === void 0 ? void 0 : colour.length)) {
81
+ name = (_b = (_a = colour[0]) === null || _a === void 0 ? void 0 : _a.configurationValue) === null || _b === void 0 ? void 0 : _b.split('|')[1];
82
+ background = (_d = (_c = colour[0]) === null || _c === void 0 ? void 0 : _c.configurationValue) === null || _d === void 0 ? void 0 : _d.split('|')[2];
83
+ }
84
+ }
85
+ return (type == "background") ? background : name;
86
+ }
87
+ // Check if any value is empty or undefined
88
+ isNullOrEmpty(value) {
89
+ return value == null || value == undefined || value == "";
48
90
  }
49
91
  // Get the Image Details based on Products
50
92
  getImageDetails(cartDetails, thumbnail = true) {
51
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
93
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
52
94
  let imageUrl = (_a = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _a === void 0 ? void 0 : _a.images;
53
95
  if (this.isCardData) {
54
- imageUrl = (_c = (_b = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _b === void 0 ? void 0 : _b.images) === null || _c === void 0 ? void 0 : _c.find((img) => img.format == "cartIcon");
96
+ //imageUrl = cartDetails?.product?.images?.find((img: any) => img.format == "cartIcon");
97
+ const colorCode = (cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.configurationInfos) || (cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.configurationInfos[0])
98
+ ? (_c = (_b = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.configurationInfos[0]) === null || _b === void 0 ? void 0 : _b.configurationValue) === null || _c === void 0 ? void 0 : _c.split("|")[0]
99
+ : "";
100
+ imageUrl = (_e = (_d = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _d === void 0 ? void 0 : _d.images) === null || _e === void 0 ? void 0 : _e.filter((img) => {
101
+ var _a, _b;
102
+ return ((img === null || img === void 0 ? void 0 : img.format) == "cartIcon" && (img === null || img === void 0 ? void 0 : img.colorCode) == colorCode) ||
103
+ ((img === null || img === void 0 ? void 0 : img.format) == "cartIcon" &&
104
+ this.isNullOrEmpty(colorCode) &&
105
+ ((_b = (_a = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _a === void 0 ? void 0 : _a.images) === null || _b === void 0 ? void 0 : _b.length) <= 4);
106
+ });
55
107
  }
56
108
  else {
57
- imageUrl = (_f = (_e = (_d = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _d === void 0 ? void 0 : _d.images) === null || _e === void 0 ? void 0 : _e.GALLERY) === null || _f === void 0 ? void 0 : _f.cartIcon;
109
+ imageUrl = (_h = (_g = (_f = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _f === void 0 ? void 0 : _f.images) === null || _g === void 0 ? void 0 : _g.GALLERY) === null || _h === void 0 ? void 0 : _h.cartIcon;
58
110
  }
59
111
  let srcUrl;
60
112
  if ((cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) &&
61
- ((_g = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _g === void 0 ? void 0 : _g.length) &&
62
- ((_h = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _h === void 0 ? void 0 : _h.flashingProduct)) {
113
+ ((_j = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _j === void 0 ? void 0 : _j.length) &&
114
+ ((_k = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _k === void 0 ? void 0 : _k.flashingProduct)) {
63
115
  srcUrl =
64
- thumbnail && ((_j = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _j === void 0 ? void 0 : _j.length) > 1
65
- ? (_k = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[1]) === null || _k === void 0 ? void 0 : _k.downloadURL
66
- : (_l = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[0]) === null || _l === void 0 ? void 0 : _l.downloadURL;
116
+ thumbnail && ((_l = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _l === void 0 ? void 0 : _l.length) > 1
117
+ ? (_m = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[1]) === null || _m === void 0 ? void 0 : _m.downloadURL
118
+ : (_o = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[0]) === null || _o === void 0 ? void 0 : _o.downloadURL;
67
119
  imageUrl = {
68
- url: (_m = (this.env.occBaseUrl.slice(0, this.env.occBaseUrl.length - 1) +
69
- srcUrl)) === null || _m === void 0 ? void 0 : _m.replace('&attachment=true', ''),
120
+ url: (_p = (this.env.occBaseUrl.slice(0, this.env.occBaseUrl.length - 1) +
121
+ srcUrl)) === null || _p === void 0 ? void 0 : _p.replace("&attachment=true", ""),
70
122
  };
71
123
  }
72
124
  return imageUrl;
@@ -86,9 +138,37 @@ export class OrderDetailGridComponent {
86
138
  const mimeArray = ["image/png", "image/jpg", "image/jpeg"];
87
139
  return mimeArray.includes(mimeType);
88
140
  }
141
+ hasColour(cartDetails) {
142
+ var _a, _b, _c, _d, _e, _f, _g, _h;
143
+ if ((_a = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _a === void 0 ? void 0 : _a.finishedProduct) {
144
+ const code = (_b = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _b === void 0 ? void 0 : _b.code;
145
+ const colour = (_d = (_c = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _c === void 0 ? void 0 : _c.variantOptions) === null || _d === void 0 ? void 0 : _d.filter((item) => item.code == code);
146
+ if (colour && ((_e = colour[0]) === null || _e === void 0 ? void 0 : _e.colours) && ((_g = (_f = colour[0]) === null || _f === void 0 ? void 0 : _f.colours) === null || _g === void 0 ? void 0 : _g.length) > 0) {
147
+ cartDetails.colour = (_h = colour[0]) === null || _h === void 0 ? void 0 : _h.colours[0];
148
+ return true;
149
+ }
150
+ }
151
+ return false;
152
+ }
153
+ // Get Summary Heading
154
+ getClassifications(data) {
155
+ let featureArray = [];
156
+ data === null || data === void 0 ? void 0 : data.forEach((element) => {
157
+ element === null || element === void 0 ? void 0 : element.features.forEach((feature) => {
158
+ var _a, _b, _c;
159
+ if (feature === null || feature === void 0 ? void 0 : feature.featureUnit) {
160
+ featureArray.push(((_a = feature === null || feature === void 0 ? void 0 : feature.featureValues[0]) === null || _a === void 0 ? void 0 : _a.value) + ' ' + ((_b = feature === null || feature === void 0 ? void 0 : feature.featureUnit) === null || _b === void 0 ? void 0 : _b.symbol));
161
+ }
162
+ else {
163
+ featureArray.push((_c = feature === null || feature === void 0 ? void 0 : feature.featureValues[0]) === null || _c === void 0 ? void 0 : _c.value);
164
+ }
165
+ });
166
+ });
167
+ return featureArray === null || featureArray === void 0 ? void 0 : featureArray.join(" | ");
168
+ }
89
169
  }
90
- OrderDetailGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: OrderDetailGridComponent, deps: [{ token: i1.CartService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
91
- OrderDetailGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: OrderDetailGridComponent, selector: "app-order-detail-grid", inputs: { sortByVal: "sortByVal", cartDetails: "cartDetails", orderDate: "orderDate", isCardData: "isCardData" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"py-3\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"cartDetails.length; else nodata\">\r\n <div class=\"col-lg-3 col-sm-6\" *ngFor=\"let cart of cartDetails;let i = index\">\r\n <div class=\"cart-grid-tile\">\r\n <div class=\"grid-tile-top position-relative\">\r\n <div class=\"d-flex justify-content-between align-items-center mb-3\">\r\n <span class=\"sku-code\">SKU:{{cart?.product?.code}}</span>\r\n <span>#{{cart.entryNumber+1}}</span>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-4\">\r\n <ng-container *ngIf=\"cartDetails[i]?.product?.flashingProduct;else normalImage\">\r\n <a data-toggle=\"modal\" class=\"flashing-expand\" (click)=\"viewImage($event,cartDetails[i])\"\r\n [attr.data-target]=\"'#imageModal'\" *ngIf=\"hasImage(cartDetails[i]);else hasPdf\">\r\n <cx-media [container]=\"getImageDetails(cartDetails[i])\" format=\"cartIcon\" role=\"presentation\"></cx-media>\r\n </a>\r\n <ng-template #hasPdf>\r\n <a class=\"flashing-expand flashing-open\" [href]=\"getPdfLink(cartDetails[i])\" target=\"_blank\">\r\n <img class=\"pdf-icon\" src=\"../../../../../assets/images/pdf-icon.svg\" alt=\"Click to open PDF\" title=\"Click to open PDF\" />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #normalImage>\r\n <cx-media [container]=\"getImageDetails(cartDetails[i])\" format=\"cartIcon\" role=\"presentation\"></cx-media>\r\n </ng-template>\r\n </div>\r\n <div class=\"col-md-8\">\r\n <h4 class=\"productName\">{{cart?.product?.name}}</h4>\r\n </div>\r\n </div>\r\n <span class=\"expandBtn\" (click)=\"arrowHideShow(i)\">\r\n <ng-container *ngIf=\"arrowUpDown[i]==true; else arrowUp\">\r\n <i class=\"fas fa-chevron-up\"></i>\r\n </ng-container>\r\n <ng-template #arrowUp>\r\n <i class=\"fas fa-chevron-down\"></i>\r\n </ng-template>\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"arrowUpDown[i]\">\r\n <div class=\"grid-tile-middle\">\r\n <ng-container *ngIf=\"cart?.product?.classifications\">\r\n <p class=\"mt-1 mb-4 attribute\">\r\n <span *ngFor=\"let attributes of cart?.product?.classifications[0]?.features;last as isLast\">\r\n {{attributes?.featureValues[0]?.value }} <span *ngIf=\"!isLast\"> | </span>\r\n </span>\r\n mm\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"cart?.subLineConfigInfos.length>0\">\r\n <a href=\"javascript:void(0)\" (click)=\"showHide(i)\" class=\"see-more-link\">\r\n {{showDetails[i] == true ? 'Hide' : 'See'}} more details\r\n </a>\r\n <div *ngIf=\"showDetails[i]\">\r\n <ng-container>\r\n <table class=\"no-border cart-details-table\">\r\n <tr>\r\n <th>Quantity</th>\r\n <th>Length (LM)</th> \r\n <th *ngIf=\"cart?.subLineConfigInfos[i]?.bundleName\">Bundle</th> \r\n </tr>\r\n <tr *ngFor=\"let subLine of cart?.subLineConfigInfos\">\r\n <td>{{subLine?.quantity}}</td>\r\n <td>{{subLine?.length | number:'0.3-3'}}</td>\r\n <td *ngIf=\"subLine?.bundleName\">{{subLine?.bundleName}}<br>{{subLine?.reference}}</td>\r\n </tr>\r\n </table>\r\n </ng-container>\r\n </div>\r\n </ng-container> \r\n </div>\r\n <div class=\"col-sm-12 mt-3\">\r\n <div class=\"row\">\r\n <ul class=\"col-12 orderInfo\">\r\n <!-- <li>\r\n <label>Delivery #:</label>\r\n <span class=\"InfoText\">-</span>\r\n </li> -->\r\n <li>\r\n <label>Qty Shipped:</label>\r\n <span class=\"InfoText\">-</span>\r\n </li>\r\n <li>\r\n <label>Delivery Date:</label>\r\n <span class=\"InfoText\"> {{orderDate | date:\"dd/MM/yyyy\"}}</span>\r\n </li>\r\n <li>\r\n <label>Status:</label>\r\n <span class=\"InfoText\">\r\n <small class=\"statusColor\"\r\n [ngStyle]=\"{'background-color':\r\n (cart?.status=='CREATED') ? ('#F3A931') :\r\n (cart?.status=='APPROVED') ? ('#f26522') :\r\n (cart?.status=='PROCESSING') ? ('#75578A') :\r\n (cart?.status=='READY') ? ('#496471') :\r\n (cart?.status=='DELIVERING') ? ('#00ACBD') :\r\n (cart?.status=='COMPLETED') ? ('#8DC440') :\r\n (cart?.status=='RETURNED') ? ('#8DC440') :\r\n (cart?.status=='CANCELLED') ? ('#000000') :\r\n ('')}\"\r\n ></small>\r\n {{cart?.statusDisplay || '-'}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"grid-tile-bottom\">\r\n <div class=\"row\">\r\n <div class=\"col-7 border-right\">\r\n <div class=\"total-qty\">\r\n <div>\r\n <p class=\"m-0\">{{cart?.jobReference || '-'}}</p>\r\n <ng-container *ngIf=\"cart?.configurationInfos.length\">\r\n <p class=\"colors-paragraph my-2\">\r\n <span class=\"revieworder-color mr-2\"\r\n [ngStyle]=\"{ background: cart?.configurationInfos[0]?.configurationValue.split('|') | slice:2}\"></span>\r\n {{cart?.configurationInfos[0]?.configurationValue.split('|') | slice:1:2}}\r\n </p>\r\n </ng-container>\r\n </div>\r\n <span>Total Qty: {{cart.quantityDouble}}{{cart?.totalPrice?.unitType}}</span><br>\r\n <span class=\"subPrice\">@ {{cart?.totalPrice?.formattedValue}}/{{cart?.totalPrice?.unitType}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-5 px-0 d-flex flex-column\">\r\n <div class=\"total-amount text-right py-3 px-2\">\r\n <h4>{{cart?.totalPrice?.formattedValue}}</h4>\r\n <span>excl GST</span>\r\n </div>\r\n <div class=\"text-left py-3 px-2\">\r\n <span class=\"InfoText\">\r\n <small class=\"statusColor\"\r\n [ngStyle]=\"{'background-color':\r\n (cart?.status=='CREATED') ? ('#F3A931') :\r\n (cart?.status=='APPROVED') ? ('#f26522') :\r\n (cart?.status=='PROCESSING') ? ('#75578A') :\r\n (cart?.status=='READY') ? ('#496471') :\r\n (cart?.status=='DELIVERING') ? ('#00ACBD') :\r\n (cart?.status=='COMPLETED') ? ('#8DC440') :\r\n (cart?.status=='RETURNED') ? ('#8DC440') :\r\n (cart?.status=='CANCELLED') ? ('#000000') :\r\n ('')}\"\r\n ></small>\r\n {{cart?.statusDisplay ? cart?.statusDisplay : '-'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"cartDetails[i]?.product?.flashingProduct && cartDetails[i]?.productConfiguredInfos\">\r\n <div class=\"flashing-block \" *ngFor=\"let data of cartDetails[i]?.productConfiguredInfos\">\r\n <div class=\"grid-tile-top\">\r\n <div>\r\n <h6 class=\"skuId\">SKU: {{data?.product?.code}}</h6>\r\n <h3 class=\"flash-title\">{{data?.product?.name}}</h3>\r\n <span *ngIf=\"data?.girth\">Grith: +{{data?.girth}}mm</span>\r\n </div>\r\n </div>\r\n <div class=\"grid-tile-bottom\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 col-6 d-flex align-items-center border-right\">\r\n <div class=\"total-qty\">\r\n <div>Total Qty: {{data?.quantityDouble}}{{data?.unitType}}</div>\r\n <span>@{{data?.basePrice?.formattedValue}}/{{data?.unitType}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6 col-6 d-flex justify-content-end align-items-center text-right\">\r\n <div class=\"total-amount text-right\">\r\n <h4>{{data?.totalPrice?.formattedValue}}</h4>\r\n <span>excl GST</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-template #nodata>\r\n <div class=\"col-sm-12\">\r\n <p class=\"text-center\">{{noRecord}}</p>\r\n </div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n\r\n<div class=\"modal fade\" id=\"imageModal\" role=\"dialog\" aria-labelledby=\"imageModal\" aria-hidden=\"true\" #imageModal>\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <i class=\"icon-close invite-pop-close\" #closeInviteModal data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body m-4\">\r\n <img [src]=\"imageModalSrc\" alt=\"alert\" />\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";@media screen and (min-width: 1366px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: 1.063rem;--fontsize17-5: 1.1rem;--fontsize18: 1.125rem;--fontsize18-4: 1.5rem;--fontsize20: 1.25rem;--fontsize21: 1.313rem;--fontsize22: 1.375rem;--fontsize23: 1.438rem;--fontsize24: 1.5rem;--fontsize26: 1.625rem;--fontsize28: 1.75rem;--fontsize30: 1.625rem;--fontsize32: 2rem;--fontsize34: 2.125rem;--fontsize36: 2rem;--fontsize40: 2.25rem;--fontsize46: 2.875rem;--fontsize80: 5rem}}@media screen and (max-width: 1365px) and (min-width: 768px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2.875rem;--fontsize80: 3.5rem}}@media screen and (max-width: 767px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize16-5: .77rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize19: .938rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize26: 1.25rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2rem;--fontsize80: 2.5rem}}@font-face{font-family:icomoon;font-weight:400;src:url(../assets/fonts/icomoon.ttf) format(\"ttf\"),url(../assets/fonts/icomoon.woff) format(\"woff\");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:\"Arial Regular\";src:url(../assets/fonts/arial-webfont.woff) format(\"woff\"),url(../assets/fonts/arial-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Bold\";src:url(../assets/fonts/arialbold-webfont.woff) format(\"woff\"),url(../assets/fonts/arialbold-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Black\";src:url(../assets/fonts/arialblack-webfont.woff) format(\"woff\"),url(../assets/fonts/arialblack-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Reqular\";src:url(../assets/fonts/helveticaneue.woff) format(\"woff\"),url(../assets/fonts/helveticaneue.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Thin\";src:url(../assets/fonts/helveticaneuethin-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuethin-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Medium\";src:url(../assets/fonts/helveticaneuemedium-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuemedium-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;font-feature-settings:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1;text-transform:none;font-display:swap}.icon-right:before{content:\"\\e902\"}.icon-materials:before{content:\"\\e900\"}.icon-natural-lighting:before{content:\"\\e90a\"}.icon-rainwater:before{content:\"\\e901\"}.icon-roofing:before{content:\"\\e90b\"}.icon-flashing{position:relative;display:inline-block;height:32px;text-align:center;width:32px}.icon-flashing:before,.mainnav-link-level-2.show .navTagChild .icon-flashing:before{content:url(../assets/images/icon-flashing-white.svg);height:20px;width:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);line-height:15px}li.megamenuSubChild:hover .icon-flashing:before{content:url(../assets/images/icon-flashing-black.svg)}.icon-structural:before{content:\"\\e90c\"}.icon-accessories-old .path1:before{content:\"\\e903\"}.icon-accessories-old .path2:before{margin-left:-1em;content:\"\\e904\"}.icon-accessories-old .path3:before{margin-left:-1em;content:\"\\e905\"}.icon-cladding-old .path1:before{content:\"\\e90d\"}.icon-cladding-old .path2:before{margin-left:-1em;content:\"\\e90e\"}.icon-close:before{content:\"\\e90f\"}.icon-message:before{content:\"\\e910\"}.icon-search .path1:before{content:\"\\e906\"}.icon-search .path2:before{content:\"\\e907\"}.icon-search .path3:before{margin-left:-1.0156em;content:\"\\e908\"}.icon-summary:before{content:\"\\e911\"}.icon-branch:before{content:\"\\e912\"}.icon-delivery:before{content:\"\\e913\"}.icon-downloads:before{content:\"\\e909\"}.icon-drawings:before{content:\"\\e914\"}.icon-full:before{content:\"\\e915\"}.icon-manual:before{content:\"\\e916\"}.icon-payment:before{content:\"\\e917\"}.icon-empty .path1:before{content:\"\\e918\"}.icon-empty .path2:before{margin-left:-1em;content:\"\\e919\"}.icon-empty .path3:before{margin-left:-1em;content:\"\\e91a\"}.icon-product-overview:before{content:\"\\e91b\"}.icon-arrows:before{content:\"\\e91c\"}.icon-selected:before{content:\"\\e91d\"}.icon-accessories:before{content:\"\\e91b\"}.icon-cladding:before{content:\"\\e91e\"}.icon-Triangle:before{content:\"\\e91f\"}.icon-home:before{content:\"\\e920\"}.icon-faq:before{content:\"\\e921\"}.icon-temperature:before{content:\"\\e922\"}body header{font-family:\"Arial Regular\",sans-serif}header{background-color:#1d1d1b;position:sticky;top:0;background-size:100% 25%!important;background-repeat:no-repeat;z-index:10}header .header{max-width:100%;padding:0}header cx-banner cx-media img{margin-top:.7rem;margin-bottom:0}header label{display:inline-flex}header .SiteLinks{height:52px;display:flex;align-items:center;justify-content:space-between;padding-top:5px;padding-bottom:5px}header .SiteLinks cx-paragraph p{color:#fff;font-size:var(--fontsize16);line-height:var(--fontsize16);margin-bottom:0}header .SiteLinks cx-paragraph{font-size:var(--fontsize16)}header .SiteLinks app-account-dropdown,header .SiteLinks app-find-store{width:calc(25% - 25px);max-width:328px;margin-right:25px}header .SiteLinks app-contact-us{width:calc(20% - 25px);max-width:100px;margin-left:auto}header .SiteLinks app-custom-mini-cart{width:10%}header .SiteLinks .preferenceLink{margin-left:auto}header .SiteLinks .preferenceLink cx-generic-link{margin:0}header .SiteLinks .preferenceLink cx-generic-link cx-media img{height:22px;margin:0}header .SiteLogo .storeLogo{position:absolute;z-index:99;left:40px;bottom:10px}header .SiteLogo .homeLogo{max-width:28px;height:28px;position:absolute;z-index:99;bottom:47px}header .NavigationBar{flex:70%;background-color:#b61828;min-height:40px;display:flex;align-items:center;position:relative;z-index:10}header .logoutMenu{margin-top:0!important}header .logoutMenu li{cursor:pointer;background-color:#4c4c4c;color:#fff}header .logoutMenu li:hover{text-decoration:underline;background-color:#4c4c4c}header .MarketingContext{width:100%;margin:auto}.customer-service-icon{cursor:pointer}.helpSupport{width:20rem;border:0;margin-top:.5rem!important;transform:translate(-42%,36px)!important;padding:1rem 1rem 0;background-color:#393939;color:#fff;top:0}.helpSupport .arrow-up{position:absolute;top:-8px;right:44%;width:0;height:0;border-left:15px solid rgba(0,0,0,0);border-right:15px solid rgba(0,0,0,0);border-bottom:15px solid #393939}.helpSupport .contact-us-info .heading{font-family:\"Arial Bold\",sans-serif}.helpSupport .contact-us-info .detail{font-size:var(--fontsize14);line-height:2rem}.helpSupport .contact-us-info .detail .service-icon{height:20px;width:20px;margin-right:10px}.helpSupport .contact-us-info .contactLink a{font-size:var(--fontsize14);text-decoration:underline;text-transform:uppercase}.helpSupport .contact-us-info a{color:#fff;text-decoration:none}.helpSupport .contact-us-info a:hover{text-decoration:underline}.pageTitle{font-family:\"Helvetica Neue Regular\",sans-serif;font-size:var(--fontsize54)}#visualization-container{text-align:center;margin:0 auto}#cds-viewer-container-3d{width:320px;height:200px}#cds-viewer-container-2d{width:320px;height:200px}[aria-label=Close]{cursor:pointer}cx-media.is-missing{background:url(./assets/images/search-noimage.svg);background-size:cover;background-position:center;background-repeat:no-repeat}cx-global-message{position:fixed;top:9rem;width:100%;z-index:13}@media screen and (max-width: 991px){cx-global-message{top:3.75rem}cx-storefront header{background-color:#b61828}cx-storefront header cx-banner cx-media img{margin:auto}cx-storefront header .SiteLogo{width:100%;max-width:211px;margin:auto;padding-left:30px;box-sizing:border-box}cx-storefront header .SiteLogo .storeLogo{position:unset}cx-storefront header .SearchBox{margin:14px 0 10px;width:30px}cx-storefront header .SiteLinks{background-color:transparent;width:110px;margin:auto 25px auto 0}cx-storefront header .SiteLinks app-account-dropdown,cx-storefront header .SiteLinks app-find-store,cx-storefront header .SiteLinks app-contact-us,cx-storefront header .SiteLinks cx-paragraph,cx-storefront header .SiteLinks .preferenceLink{display:none}cx-storefront header .SiteLinks app-custom-mini-cart,cx-storefront header .SiteLinks app-custom-user-account{width:35px}cx-storefront header.is-expanded{overflow-y:auto;position:fixed;bottom:0;top:0;width:calc(100% - 99px)}cx-storefront header.is-expanded .header{background-color:#b61828;margin-left:0}cx-storefront header.is-expanded .PreHeader{position:absolute;right:15px;top:15px}cx-storefront header.is-expanded .SearchBox{display:none}cx-storefront header.is-expanded .SiteLogo{position:absolute;top:25px;z-index:9}cx-storefront header.is-expanded .SiteLinks{background-color:#1d1d1b;width:100%;margin:15px auto 15px 0;height:unset;padding:15px;max-width:100%;position:relative;z-index:9;top:60px}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-account-dropdown{width:100%;max-width:100%}cx-storefront header.is-expanded .SiteLinks app-find-store{width:50%;max-width:328px;min-width:328px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-right:15px;margin-left:auto;width:115px;max-width:unset}cx-storefront header.is-expanded .navigation{position:relative;top:45px}cx-storefront header.is-expanded:before{background-color:#0000004d;right:0;content:\"\";position:fixed;z-index:2;top:0;bottom:0;height:100vh;width:99px}cx-storefront header.is-expanded:after{background-color:transparent}}@media screen and (max-width: 576px){cx-storefront header .SiteLogo{max-width:80px}cx-storefront header .SiteLogo .storeLogo{display:none}cx-storefront header .searchBox{height:45px}cx-storefront header.is-expanded{width:100%}cx-storefront header.is-expanded .header,cx-storefront header.is-expanded .navigation{width:100%}cx-storefront header.is-expanded .SiteLogo{max-width:211px!important}cx-storefront header.is-expanded .SiteLogo .storeLogo{display:block}cx-storefront header.is-expanded .SiteLinks{max-width:100%;width:100%}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-find-store{width:100%;max-width:100%;margin-bottom:10px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-left:0}cx-storefront header.is-expanded .SiteLinks cx-paragraph{margin-left:auto}cx-storefront header.is-expanded:before{display:none}.pageTitle{font-size:28px}}.cart-grid-tile{border:1px solid #E0E0E0;margin-bottom:20px;color:#1d1d1b}.cart-grid-tile .grid-tile-top{background-color:#e8e8e8;border:1px solid #E0E0E0;padding:15px;color:#1d1d1b}.cart-grid-tile .grid-tile-top .sku-code{font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif;color:#707070}.cart-grid-tile .grid-tile-top .prod-img{width:70px;height:70px;background-color:#fff}.cart-grid-tile .grid-tile-top .delete-icon{cursor:pointer}.cart-grid-tile .grid-tile-top h4{margin-left:6px;font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.cart-grid-tile .grid-tile-middle{background-color:#fff;padding:15px;border-bottom:1px solid #E0E0E0}.cart-grid-tile .grid-tile-middle .see-more-link{text-decoration:underline}.cart-grid-tile .grid-tile-middle .see-more-link:hover{color:#d51317}.cart-grid-tile .grid-tile-middle .custom-input-field{width:100%;border:1px solid #E0E0E0;height:40px;margin-bottom:15px;padding-left:15px}.cart-grid-tile .grid-tile-middle .color-block{width:20px;height:20px;border:1px solid #E0E0E0}.cart-grid-tile .grid-tile-middle .more-color{cursor:pointer;color:#b61828;margin-left:10px;-webkit-text-decoration-line:underline;text-decoration-line:underline;text-underline-offset:4px;-webkit-text-decoration-style:dashed;text-decoration-style:dashed;position:relative}.cart-grid-tile .grid-tile-middle .more-detail{text-decoration:underline;cursor:pointer;margin-bottom:0}.cart-grid-tile .grid-tile-middle a{color:#262626;text-decoration:underline;cursor:pointer}.cart-grid-tile .grid-tile-middle a:hover{color:#262626}.cart-grid-tile .expandBtn{z-index:9;cursor:pointer;position:absolute;background-color:#fff;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;bottom:-24px;left:50%;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);box-shadow:0 0 6px #00000026;-webkit-box-shadow:0px 0px 6px rgba(0,0,0,.15);-moz-box-shadow:0px 0px 6px rgba(0,0,0,.15)}.cart-grid-tile .subPrice{color:#707070}.cart-grid-tile .grid-tile-bottom{background-color:#fff;padding:0 15px;border-top:1px solid #E0E0E0}.cart-grid-tile .grid-tile-bottom .total-qty{color:#1d1d1b;font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif;padding:15px 0}.cart-grid-tile .grid-tile-bottom .total-amount{color:#1d1d1b;border-bottom:1px solid #E0E0E0}.cart-grid-tile .grid-tile-bottom .total-amount h4{font-size:var(--fontsize20);margin-bottom:0}.cart-grid-tile .grid-tile-bottom .total-amount span{font-size:var(--fontsize14)}.bundling{text-align:right;top:20px;margin-bottom:15px}.bundling span.text{display:inline-block;position:relative;top:-12px;font-size:var(--fontsize14)}.switch{position:relative;display:inline-block;width:50px;margin-top:-4px;height:22px}.switch input{opacity:0;width:0;height:0}.switch input:not(:checked)+.slider:after{content:\"NO\";right:6px;position:absolute;color:#fff;top:3px;font-size:var(--fontsize12);font-family:\"Arial Bold\",sans-serif}.switch input:checked+.slider{background-color:#b61828}.switch input:checked+.slider:before{transform:translate(26px);left:5px}.switch input:checked+.slider:after{content:\"YES\";left:5px;position:absolute;color:#fff;top:3px;font-size:var(--fontsize12);font-family:\"Arial Bold\",sans-serif}.switch input:focus+.slider{box-shadow:0 0 1px #2196f3}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#a6a6a5;transition:.4s}.slider:before{position:absolute;content:\"\";height:16px;width:16px;top:3px;left:3px;bottom:3px;background-color:#fff;transition:.4s}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.cart-details-table th{font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.add-more-btn{background:none;border:none}.add-more-btn .add-more{position:relative;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2219%22 height%3D%2219%22 viewBox%3D%220 0 19 19%22%3E%0D %3Cpath id%3D%22Icon_awesome-plus-circle%22 data-name%3D%22Icon awesome-plus-circle%22 d%3D%22M10.063.563a9.5%2C9.5%2C0%2C1%2C0%2C9.5%2C9.5A9.5%2C9.5%2C0%2C0%2C0%2C10.063.563Zm5.516%2C10.573a.461.461%2C0%2C0%2C1-.46.46H11.595v3.524a.461.461%2C0%2C0%2C1-.46.46H8.99a.461.461%2C0%2C0%2C1-.46-.46V11.595H5.006a.461.461%2C0%2C0%2C1-.46-.46V8.99a.461.461%2C0%2C0%2C1%2C.46-.46H8.53V5.006a.461.461%2C0%2C0%2C1%2C.46-.46h2.145a.461.461%2C0%2C0%2C1%2C.46.46V8.53h3.524a.461.461%2C0%2C0%2C1%2C.46.46Z%22 transform%3D%22translate(-0.563 -0.563)%22%2F%3E%0D%3C%2Fsvg%3E%0D\") no-repeat center;width:20px;height:20px;display:inline-block;top:4px}.colours .colour{padding:0 15px;position:relative}.colours .colour .checkbox{display:none}.colours .colour .colour-title{position:absolute;bottom:-48px;width:40px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:var(--fontsize14);text-align:center;cursor:grabbing}.colours .colour.selected{border:1px solid #000000}.colours .colour.selected .checkbox{position:absolute;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2217.186%22 height%3D%2217.186%22 viewBox%3D%220 0 17.186 17.186%22%3E%0D %3Cg id%3D%22Group_12857%22 data-name%3D%22Group 12857%22 transform%3D%22translate(0.25 0.25)%22%3E%0D %3Ccircle id%3D%22Ellipse_14%22 data-name%3D%22Ellipse 14%22 cx%3D%228.316%22 cy%3D%228.316%22 r%3D%228.316%22 transform%3D%22translate(0 0.039)%22%2F%3E%0D %3Cpath id%3D%22Icon_ionic-md-checkmark-circle%22 data-name%3D%22Icon ionic-md-checkmark-circle%22 d%3D%22M11.718%2C3.375a8.343%2C8.343%2C0%2C1%2C0%2C8.343%2C8.343A8.367%2C8.367%2C0%2C0%2C0%2C11.718%2C3.375ZM10.005%2C16.166%2C5.729%2C11.89l1.2-1.2%2C3.08%2C3.08%2C6.5-6.5%2C1.2%2C1.2Z%22 transform%3D%22translate(-3.375 -3.375)%22 fill%3D%22%23fff%22%2F%3E%0D %3Cpath id%3D%22Icon_ionic-md-checkmark-circle_-_Outline%22 data-name%3D%22Icon ionic-md-checkmark-circle - Outline%22 d%3D%22M11.718%2C3.125a8.583%2C8.583%2C0%2C0%2C1%2C6.069%2C14.662A8.583%2C8.583%2C0%2C1%2C1%2C5.649%2C5.649%2C8.532%2C8.532%2C0%2C0%2C1%2C11.718%2C3.125Zm0%2C16.686A8.117%2C8.117%2C0%2C1%2C0%2C6%2C17.433%2C8.035%2C8.035%2C0%2C0%2C0%2C11.718%2C19.811ZM16.511%2C6.916l1.553%2C1.553-8.059%2C8.05L5.376%2C11.89l1.553-1.553%2C3.08%2C3.08Zm.846%2C1.553-.846-.846-6.5%2C6.5-3.08-3.08-.846.846%2C3.922%2C3.922Z%22 transform%3D%22translate(-3.375 -3.375)%22%2F%3E%0D %3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\") no-repeat center;width:20px;height:20px;display:inline-block;top:10px;left:10px}.colours .colour.main{box-sizing:border-box;width:40px;height:40px;display:inline-block;padding:0;border:1px solid #C6C6C6}.colours_container{width:320px;height:auto;position:absolute;z-index:1}.colors-paragraph{display:flex;align-items:center}.colors-paragraph .revieworder-color{width:20px;height:20px;border:1px solid #000000;display:inline-flex}.orderInfo li{display:flex}.orderInfo li label{font-family:\"Arial Bold\",sans-serif;width:50%}.orderInfo li .InfoText{display:inline-block;padding-left:10px;width:50%}.productImg{width:71px;height:71px}.productName{line-height:20px}.statusColor{display:inline-block;width:12px;height:12px;border-radius:50%}.attribute{font-size:14px}::ng-deep .flashing-expand{cursor:pointer}::ng-deep .flashing-expand:after{background:url(../../../../assets/images/expand-icon.svg) no-repeat center;z-index:2;width:24px;content:\"\";height:24px;position:absolute;top:0;right:0}::ng-deep .flashing-expand img{max-height:40px;max-width:40px}::ng-deep .flashing-expand.flashing-open:after{background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%0D %3Cg id%3D%22Group_14477%22 data-name%3D%22Group 14477%22 transform%3D%22translate(-5533.5 11452.992)%22%3E%0D %3Cg id%3D%22Group_14476%22 data-name%3D%22Group 14476%22%3E%0D %3Cg id%3D%22Group_14475%22 data-name%3D%22Group 14475%22 transform%3D%22translate(5164.5 -12321.992)%22%3E%0D %3Crect id%3D%22Rectangle_1116%22 data-name%3D%22Rectangle 1116%22 width%3D%2224%22 height%3D%2224%22 transform%3D%22translate(369 869)%22 fill%3D%22%23fff%22%2F%3E%0D %3C%2Fg%3E%0D %3Cpath id%3D%22Path_11366%22 data-name%3D%22Path 11366%22 d%3D%22M142.587%2C65.954v4.569a1.963%2C1.963%2C0%2C0%2C1-1.839%2C2.068H127.833a1.965%2C1.965%2C0%2C0%2C1-1.839-2.068V58.066A1.963%2C1.963%2C0%2C0%2C1%2C127.833%2C56h4.8a.83.83%2C0%2C1%2C1%2C0%2C1.659h-4.505a.516.516%2C0%2C0%2C0-.472.553V70.378a.521.521%2C0%2C0%2C0%2C.472.553h12.33a.516.516%2C0%2C0%2C0%2C.472-.553V65.954a.83.83%2C0%2C1%2C1%2C1.659%2C0Z%22 transform%3D%22translate(5411.209 -11505.287)%22 fill-rule%3D%22evenodd%22%2F%3E%0D %3C%2Fg%3E%0D %3Cpath id%3D%22Path_11367%22 data-name%3D%22Path 11367%22 d%3D%22M26.413%2C4.5H21.5a.607.607%2C0%2C0%2C0-.608.608v.009a.607.607%2C0%2C0%2C0%2C.608.608h3.4l-5.091%2C5.126a.608.608%2C0%2C0%2C0%2C.858.862l5.126-5.1v3.4a.607.607%2C0%2C0%2C0%2C.608.608h.009a.607.607%2C0%2C0%2C0%2C.608-.608V5.108A.607.607%2C0%2C0%2C0%2C26.413%2C4.5Z%22 transform%3D%22translate(5526.775 -11453.789)%22%2F%3E%0D %3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\") no-repeat center}#imageModal.show{display:flex!important;vertical-align:middle!important;align-items:center!important}#imageModal.show .modal-header{justify-content:right;border:none}#imageModal.show .modal-body{text-align:center;vertical-align:middle;margin:0 auto}#imageModal.show .modal-body img{max-width:100%;max-height:80vh}.flashing-block{background-color:#e8e8e8}.flashing-block .flash-title{font-size:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}.flashing-block .skuId{color:#707070;font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.flashing-block .gst-text{display:block;font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif}.flashing-block .total-amount{border-bottom:none!important}@media screen and (max-width: 767px){.cart-grid-tile .grid-tile-top h4{margin-top:10px;margin-left:0}.productImg{width:100%;height:100%}.total-qty span,.total-amount span{font-size:1rem}.total-qty h4,.total-amount h4{font-size:1.25rem!important}}\n"], components: [{ type: i2.MediaComponent, selector: "cx-media", inputs: ["container", "format", "alt", "role", "loading"], outputs: ["loaded"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i3.AsyncPipe, "number": i3.DecimalPipe, "date": i3.DatePipe, "slice": i3.SlicePipe } });
170
+ OrderDetailGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: OrderDetailGridComponent, deps: [{ token: i1.CartService }, { token: i2.UserAccountDetailServiceService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
171
+ OrderDetailGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: OrderDetailGridComponent, selector: "app-order-detail-grid", inputs: { sortByVal: "sortByVal", cartDetails: "cartDetails", orderDate: "orderDate", isCardData: "isCardData" }, viewQueries: [{ propertyName: "masonry", first: true, predicate: NgxMasonryComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"loading\" *ngIf=\"showWaitCursor | async\">Loading&#8230;</div>\r\n<div class=\"py-3\">\r\n <ngx-masonry class=\"row\" *ngIf=\"cartDetails.length; else nodata\">\r\n <div\r\n class=\"col-lg-3 col-sm-6\"\r\n ngxMasonryItem\r\n *ngFor=\"let cart of cartDetails; let i = index\"\r\n >\r\n <div class=\"cart-grid-tile\">\r\n <div class=\"grid-tile-top position-relative\">\r\n <div class=\"d-flex justify-content-between align-items-center mb-3\">\r\n <span class=\"sku-code\">SKU:{{ cart?.product?.code }}</span>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-4\">\r\n <ng-container\r\n *ngIf=\"\r\n cartDetails[i]?.product?.flashingProduct;\r\n else normalImage\r\n \"\r\n >\r\n <a\r\n data-toggle=\"modal\"\r\n class=\"flashing-expand\"\r\n (click)=\"viewImage($event, cartDetails[i])\"\r\n [attr.data-target]=\"'#imageModal'\"\r\n *ngIf=\"hasImage(cartDetails[i]); else hasPdf\"\r\n >\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </a>\r\n <ng-template #hasPdf>\r\n <a\r\n class=\"flashing-expand flashing-open\"\r\n [href]=\"getPdfLink(cartDetails[i])\"\r\n target=\"_blank\"\r\n >\r\n <img\r\n class=\"pdf-icon\"\r\n src=\"../../../../../assets/images/pdf-icon.svg\"\r\n alt=\"Click to open PDF\"\r\n title=\"Click to open PDF\"\r\n />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #normalImage>\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </ng-template>\r\n </div>\r\n <div class=\"col-md-8\">\r\n <h4 class=\"productName\">{{ cart?.product?.name }}</h4>\r\n </div>\r\n </div>\r\n <span class=\"expandBtn\" (click)=\"arrowHideShow(i)\">\r\n <ng-container *ngIf=\"arrowUpDown[i] == true; else arrowUp\">\r\n <i class=\"fas fa-chevron-up\"></i>\r\n </ng-container>\r\n <ng-template #arrowUp>\r\n <i class=\"fas fa-chevron-down\"></i>\r\n </ng-template>\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"arrowUpDown[i]\">\r\n <div class=\"grid-tile-middle\">\r\n <ng-container *ngIf=\"cart?.product?.classifications\">\r\n <p class=\"mt-1 mb-4 attribute\">\r\n <span *ngIf=\"cart?.product?.classifications[0]?.features\">\r\n {{\r\n getClassifications(cartDetails[i]?.product?.classifications)\r\n }}\r\n </span>\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"cart?.subLineConfigInfos.length > 0\">\r\n <a\r\n href=\"javascript:void(0)\"\r\n (click)=\"showHide(i)\"\r\n class=\"see-more-link\"\r\n >\r\n {{ showDetails[i] == true ? \"Hide\" : \"See\" }} more details\r\n </a>\r\n <div *ngIf=\"showDetails[i]\">\r\n <ng-container>\r\n <table class=\"no-border cart-details-table w-100\">\r\n <tr>\r\n <th>Quantity</th>\r\n <th>Length (LM)</th>\r\n <th *ngIf=\"cart?.subLineConfigInfos[i]?.bundleName\">\r\n Bundle\r\n </th>\r\n </tr>\r\n <tr *ngFor=\"let subLine of cart?.subLineConfigInfos\">\r\n <td>{{ subLine?.quantity }}</td>\r\n <td>{{ subLine?.length | number : \"0.3-3\" }}</td>\r\n <td *ngIf=\"subLine?.bundleName\">\r\n {{ subLine?.bundleName }}<br />{{ subLine?.reference }}\r\n </td>\r\n </tr>\r\n </table>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-sm-12 mt-3\">\r\n <div class=\"row\">\r\n <ul class=\"col-12 orderInfo\">\r\n <!-- <li>\r\n <label>Delivery #:</label>\r\n <span class=\"InfoText\">-</span>\r\n </li> -->\r\n <li>\r\n <label>Qty Shipped:</label>\r\n <span class=\"InfoText\">-</span>\r\n </li>\r\n <li>\r\n <label>Delivery Date:</label>\r\n <span class=\"InfoText\">\r\n {{ orderDate | date : \"dd/MM/yyyy\" }}</span\r\n >\r\n </li>\r\n <li>\r\n <label>Status:</label>\r\n <span class=\"InfoText\">\r\n <small\r\n class=\"statusColor\"\r\n [ngStyle]=\"{\r\n 'background-color':\r\n cart?.status == 'CREATED'\r\n ? '#F3A931'\r\n : cart?.status == 'APPROVED'\r\n ? '#f26522'\r\n : cart?.status == 'PROCESSING'\r\n ? '#75578A'\r\n : cart?.status == 'READY'\r\n ? '#496471'\r\n : cart?.status == 'DELIVERING'\r\n ? '#00ACBD'\r\n : cart?.status == 'COMPLETED'\r\n ? '#8DC440'\r\n : cart?.status == 'RETURNED'\r\n ? '#8DC440'\r\n : cart?.status == 'CANCELLED'\r\n ? '#000000'\r\n : ''\r\n }\"\r\n ></small>\r\n {{ cart?.statusDisplay || \"-\" }}</span\r\n >\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"grid-tile-bottom\">\r\n <div class=\"row\">\r\n <div class=\"col-7 border-right\">\r\n <div class=\"total-qty\">\r\n <div>\r\n <p class=\"m-0\">{{ cart?.jobReference || \"-\" }}</p>\r\n <ng-container\r\n *ngIf=\"\r\n cart?.configurationInfos.length;\r\n else accessoriesColor\r\n \"\r\n >\r\n <p\r\n class=\"colors-paragraph mb-0\"\r\n *ngIf=\"\r\n !cart?.product?.flashingProduct;\r\n else flashingColour\r\n \"\r\n >\r\n <span\r\n class=\"revieworder-color mr-2\"\r\n [ngStyle]=\"{\r\n background:\r\n cart?.configurationInfos[0]?.configurationValue.split(\r\n '|'\r\n ) | slice : 2\r\n }\"\r\n ></span>\r\n {{\r\n cart?.configurationInfos[0]?.configurationValue.split(\r\n \"|\"\r\n ) | slice : 1 : 2\r\n }}\r\n </p>\r\n <ng-template #flashingColour>\r\n <p class=\"colors-paragraph mb-0\">\r\n <span\r\n class=\"revieworder-color mr-3\"\r\n [ngStyle]=\"{\r\n background: getColourDetails(\r\n cartDetails[i]?.configurationInfos,\r\n 'background'\r\n )\r\n }\"\r\n ></span>\r\n {{\r\n getColourDetails(\r\n cartDetails[i]?.configurationInfos,\r\n \"name\"\r\n )\r\n }}\r\n </p>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #accessoriesColor>\r\n <p class=\"colors-paragraph my-2\" *ngIf=\"hasColour(cart)\">\r\n <span\r\n class=\"revieworder-color mr-2\"\r\n [ngStyle]=\"{\r\n background: cart?.colour?.hexadecimalCode\r\n }\"\r\n ></span>\r\n {{ cart?.colour?.name }}\r\n </p>\r\n </ng-template>\r\n </div>\r\n <span\r\n >Total Qty: {{ cart.quantityDouble }}\r\n {{ cart?.unit?.code }}</span\r\n ><br />\r\n <span *ngIf=\"isOrderPermissions\" class=\"subPrice\"\r\n >@ {{ cart?.totalPrice?.formattedValue }}/{{\r\n cart?.totalPrice?.unitType\r\n }}</span\r\n >\r\n </div>\r\n </div>\r\n <div class=\"col-5 px-0 d-flex flex-column\">\r\n <div class=\"total-amount text-right py-3 px-2\">\r\n <h4>{{ cart?.totalPrice?.formattedValue || \"-\" }}</h4>\r\n <span *ngIf=\"isOrderPermissions\">excl GST</span>\r\n </div>\r\n <div class=\"text-left py-3 px-2\">\r\n <span class=\"InfoText\">\r\n <small\r\n class=\"statusColor\"\r\n [ngStyle]=\"{\r\n 'background-color':\r\n cart?.status == 'CREATED'\r\n ? '#F3A931'\r\n : cart?.status == 'APPROVED'\r\n ? '#f26522'\r\n : cart?.status == 'PROCESSING'\r\n ? '#75578A'\r\n : cart?.status == 'READY'\r\n ? '#496471'\r\n : cart?.status == 'DELIVERING'\r\n ? '#00ACBD'\r\n : cart?.status == 'COMPLETED'\r\n ? '#8DC440'\r\n : cart?.status == 'RETURNED'\r\n ? '#8DC440'\r\n : cart?.status == 'CANCELLED'\r\n ? '#000000'\r\n : ''\r\n }\"\r\n ></small>\r\n {{ cart?.statusDisplay ? cart?.statusDisplay : \"-\" }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"\r\n cartDetails[i]?.product?.flashingProduct &&\r\n cartDetails[i]?.productConfiguredInfos\r\n \"\r\n >\r\n <div\r\n class=\"flashing-block\"\r\n *ngFor=\"let data of cartDetails[i]?.productConfiguredInfos\"\r\n >\r\n <div class=\"grid-tile-top\">\r\n <div>\r\n <h6 class=\"skuId\">SKU: {{ data?.product?.code }}</h6>\r\n <h3 class=\"flash-title\">{{ data?.product?.name }}</h3>\r\n <span *ngIf=\"data?.girth\">Grith: +{{ data?.girth }}mm</span>\r\n </div>\r\n </div>\r\n <div class=\"grid-tile-bottom\">\r\n <div class=\"row\">\r\n <div\r\n class=\"col-md-6 col-6 d-flex align-items-center border-right\"\r\n >\r\n <div class=\"total-qty\">\r\n <div>\r\n Total Qty: {{ data?.quantityDouble }} {{ data?.unitType }}\r\n </div>\r\n <span *ngIf=\"isOrderPermissions\"\r\n >@{{ data?.basePrice?.formattedValue }}/{{\r\n data?.unitType\r\n }}</span\r\n >\r\n </div>\r\n </div>\r\n <div\r\n class=\"col-md-6 col-6 d-flex justify-content-end align-items-center text-right\"\r\n >\r\n <div class=\"total-amount text-right\">\r\n <h4>{{ data?.totalPrice?.formattedValue || \"-\" }}</h4>\r\n <span *ngIf=\"isOrderPermissions\">excl GST</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ngx-masonry>\r\n <ng-template #nodata>\r\n <div class=\"col-sm-12\">\r\n <p class=\"text-center\">{{ noRecord }}</p>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<div\r\n class=\"modal fade\"\r\n id=\"imageModal\"\r\n role=\"dialog\"\r\n aria-labelledby=\"imageModal\"\r\n aria-hidden=\"true\"\r\n #imageModal\r\n>\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <i\r\n class=\"icon-close invite-pop-close\"\r\n #closeInviteModal\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n ></i>\r\n </div>\r\n <div class=\"modal-body m-4\">\r\n <img [src]=\"imageModalSrc\" alt=\"alert\" />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";@media screen and (min-width: 1366px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: 1.063rem;--fontsize17-5: 1.1rem;--fontsize18: 1.125rem;--fontsize18-4: 1.5rem;--fontsize20: 1.25rem;--fontsize21: 1.313rem;--fontsize22: 1.375rem;--fontsize23: 1.438rem;--fontsize24: 1.5rem;--fontsize26: 1.625rem;--fontsize28: 1.75rem;--fontsize30: 1.625rem;--fontsize32: 2rem;--fontsize34: 2.125rem;--fontsize36: 2rem;--fontsize40: 2.25rem;--fontsize46: 2.875rem;--fontsize80: 5rem}}@media screen and (max-width: 1365px) and (min-width: 768px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2.875rem;--fontsize80: 3.5rem}}@media screen and (max-width: 767px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize16-5: .77rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize19: .938rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize26: 1.25rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2rem;--fontsize80: 2.5rem}}@font-face{font-family:icomoon;font-weight:400;src:url(../assets/fonts/icomoon.ttf) format(\"ttf\"),url(../assets/fonts/icomoon.woff) format(\"woff\");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:\"Arial Regular\";src:url(../assets/fonts/arial-webfont.woff) format(\"woff\"),url(../assets/fonts/arial-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Bold\";src:url(../assets/fonts/arialbold-webfont.woff) format(\"woff\"),url(../assets/fonts/arialbold-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Black\";src:url(../assets/fonts/arialblack-webfont.woff) format(\"woff\"),url(../assets/fonts/arialblack-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Reqular\";src:url(../assets/fonts/helveticaneue.woff) format(\"woff\"),url(../assets/fonts/helveticaneue.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Thin\";src:url(../assets/fonts/helveticaneuethin-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuethin-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Medium\";src:url(../assets/fonts/helveticaneuemedium-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuemedium-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;font-feature-settings:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1;text-transform:none;font-display:swap}.icon-right:before{content:\"\\e902\"}.icon-materials:before{content:\"\\e900\"}.icon-natural-lighting:before{content:\"\\e90a\"}.icon-rainwater:before{content:\"\\e901\"}.icon-roofing:before{content:\"\\e90b\"}.icon-flashing{position:relative;display:inline-block;height:32px;text-align:center;width:32px}.icon-flashing:before,.mainnav-link-level-2.show .navTagChild .icon-flashing:before{content:url(../assets/images/icon-flashing-white.svg);height:20px;width:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);line-height:15px}li.megamenuSubChild:hover .icon-flashing:before{content:url(../assets/images/icon-flashing-black.svg)}.icon-structural:before{content:\"\\e90c\"}.icon-accessories-old .path1:before{content:\"\\e903\"}.icon-accessories-old .path2:before{margin-left:-1em;content:\"\\e904\"}.icon-accessories-old .path3:before{margin-left:-1em;content:\"\\e905\"}.icon-cladding-old .path1:before{content:\"\\e90d\"}.icon-cladding-old .path2:before{margin-left:-1em;content:\"\\e90e\"}.icon-close:before{content:\"\\e90f\"}.icon-message:before{content:\"\\e910\"}.icon-search .path1:before{content:\"\\e906\"}.icon-search .path2:before{content:\"\\e907\"}.icon-search .path3:before{margin-left:-1.0156em;content:\"\\e908\"}.icon-summary:before{content:\"\\e911\"}.icon-branch:before{content:\"\\e912\"}.icon-delivery:before{content:\"\\e913\"}.icon-downloads:before{content:\"\\e909\"}.icon-drawings:before{content:\"\\e914\"}.icon-full:before{content:\"\\e915\"}.icon-manual:before{content:\"\\e916\"}.icon-payment:before{content:\"\\e917\"}.icon-empty .path1:before{content:\"\\e918\"}.icon-empty .path2:before{margin-left:-1em;content:\"\\e919\"}.icon-empty .path3:before{margin-left:-1em;content:\"\\e91a\"}.icon-product-overview:before{content:\"\\e91b\"}.icon-arrows:before{content:\"\\e91c\"}.icon-selected:before{content:\"\\e91d\"}.icon-accessories:before{content:\"\\e91b\"}.icon-cladding:before{content:\"\\e91e\"}.icon-Triangle:before{content:\"\\e91f\"}.icon-home:before{content:\"\\e920\"}.icon-faq:before{content:\"\\e921\"}.icon-temperature:before{content:\"\\e922\"}body header{font-family:\"Arial Regular\",sans-serif}header{background-color:#1d1d1b;position:sticky;top:0;background-size:100% 25%!important;background-repeat:no-repeat;z-index:10}header .header{max-width:100%;padding:0}header cx-banner cx-media img{margin-top:.7rem;margin-bottom:0}header label{display:inline-flex}header .SiteLinks{height:52px;display:flex;align-items:center;justify-content:space-between;padding-top:5px;padding-bottom:5px}header .SiteLinks cx-paragraph p{color:#fff;font-size:var(--fontsize16);line-height:var(--fontsize16);margin-bottom:0}header .SiteLinks cx-paragraph{font-size:var(--fontsize16)}header .SiteLinks app-account-dropdown,header .SiteLinks app-find-store{width:calc(25% - 25px);max-width:328px;margin-right:25px}header .SiteLinks app-contact-us{width:calc(20% - 25px);max-width:100px;margin-left:auto}header .SiteLinks app-custom-mini-cart{width:10%}header .SiteLinks .preferenceLink{margin-left:auto}header .SiteLinks .preferenceLink cx-generic-link{margin:0}header .SiteLinks .preferenceLink cx-generic-link cx-media img{height:22px;margin:0}header .SiteLogo .storeLogo{position:absolute;z-index:99;left:40px;bottom:10px}header .SiteLogo .homeLogo{max-width:28px;height:28px;position:absolute;z-index:99;bottom:47px}header .NavigationBar{flex:70%;background-color:#b61828;min-height:40px;display:flex;align-items:center;position:relative}header .logoutMenu{margin-top:0!important}header .logoutMenu li{cursor:pointer;background-color:#4c4c4c;color:#fff}header .logoutMenu li:hover{text-decoration:underline;background-color:#4c4c4c}header .MarketingContext{width:100%;margin:auto}.customer-service-icon{cursor:pointer}.helpSupport{width:20rem;border:0;margin-top:.5rem!important;transform:translate(-42%,36px)!important;padding:1rem 1rem 0;background-color:#393939;color:#fff;top:0}.helpSupport .arrow-up{position:absolute;top:-8px;right:44%;width:0;height:0;border-left:15px solid rgba(0,0,0,0);border-right:15px solid rgba(0,0,0,0);border-bottom:15px solid #393939}.helpSupport .contact-us-info .heading{font-family:\"Arial Bold\",sans-serif}.helpSupport .contact-us-info .detail{font-size:var(--fontsize14);line-height:2rem}.helpSupport .contact-us-info .detail .service-icon{height:20px;width:20px;margin-right:10px}.helpSupport .contact-us-info .contactLink a{font-size:var(--fontsize14);text-decoration:underline;text-transform:uppercase}.helpSupport .contact-us-info a{color:#fff;text-decoration:none}.helpSupport .contact-us-info a:hover{text-decoration:underline}.pageTitle{font-family:\"Helvetica Neue Regular\",sans-serif;font-size:var(--fontsize54)}#visualization-container{text-align:center;margin:0 auto}#cds-viewer-container-3d{width:320px;height:200px}#cds-viewer-container-2d{width:320px;height:200px}[aria-label=Close]{cursor:pointer}cx-media.is-missing{background:url(./assets/images/search-noimage.svg);background-size:cover;background-position:center;background-repeat:no-repeat}cx-global-message{position:fixed;top:9rem;width:100%;z-index:13}@media screen and (max-width: 991px){cx-global-message{top:3.75rem}cx-storefront header{background-color:#b61828}cx-storefront header cx-banner cx-media img{margin:auto}cx-storefront header .SiteLogo{width:100%;max-width:211px;margin:auto;padding-left:30px;box-sizing:border-box}cx-storefront header .SiteLogo .storeLogo{position:unset}cx-storefront header .SearchBox{margin:14px 0 10px;width:30px}cx-storefront header .SiteLinks{background-color:transparent;width:110px;margin:auto 25px auto 0}cx-storefront header .SiteLinks app-account-dropdown,cx-storefront header .SiteLinks app-find-store,cx-storefront header .SiteLinks app-contact-us,cx-storefront header .SiteLinks cx-paragraph,cx-storefront header .SiteLinks .preferenceLink{display:none}cx-storefront header .SiteLinks app-custom-mini-cart,cx-storefront header .SiteLinks app-custom-user-account{width:35px}cx-storefront header.is-expanded{overflow-y:auto;position:fixed;bottom:0;top:0;width:calc(100% - 99px)}cx-storefront header.is-expanded .header{background-color:#b61828;margin-left:0}cx-storefront header.is-expanded .PreHeader{position:absolute;right:15px;top:15px}cx-storefront header.is-expanded .SearchBox{display:none}cx-storefront header.is-expanded .SiteLogo{position:absolute;top:25px;z-index:9}cx-storefront header.is-expanded .SiteLinks{background-color:#1d1d1b;width:100%;margin:15px auto 15px 0;height:unset;padding:15px;max-width:100%;position:relative;z-index:9;top:60px}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-account-dropdown{width:100%;max-width:100%}cx-storefront header.is-expanded .SiteLinks app-find-store{width:50%;max-width:328px;min-width:328px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-right:15px;margin-left:auto;width:115px;max-width:unset}cx-storefront header.is-expanded .navigation{position:relative;top:45px}cx-storefront header.is-expanded:before{background-color:#0000004d;right:0;content:\"\";position:fixed;z-index:2;top:0;bottom:0;height:100vh;width:99px}cx-storefront header.is-expanded:after{background-color:transparent}}@media screen and (max-width: 576px){cx-storefront header .SiteLogo{max-width:80px}cx-storefront header .SiteLogo .storeLogo{display:none}cx-storefront header .searchBox{height:45px}cx-storefront header.is-expanded{width:100%}cx-storefront header.is-expanded .header,cx-storefront header.is-expanded .navigation{width:100%}cx-storefront header.is-expanded .SiteLogo{max-width:211px!important}cx-storefront header.is-expanded .SiteLogo .storeLogo{display:block}cx-storefront header.is-expanded .SiteLinks{max-width:100%;width:100%}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-find-store{width:100%;max-width:100%;margin-bottom:10px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-left:0}cx-storefront header.is-expanded .SiteLinks cx-paragraph{margin-left:auto}cx-storefront header.is-expanded:before{display:none}.pageTitle{font-size:28px}}.cart-grid-tile{border:1px solid #E0E0E0;margin-bottom:20px;color:#1d1d1b}.cart-grid-tile .grid-tile-top{background-color:#e8e8e8;border:1px solid #E0E0E0;padding:15px;color:#1d1d1b}.cart-grid-tile .grid-tile-top .sku-code{font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif;color:#707070}.cart-grid-tile .grid-tile-top .prod-img{width:70px;height:70px;background-color:#fff}.cart-grid-tile .grid-tile-top .delete-icon{cursor:pointer}.cart-grid-tile .grid-tile-top h4{margin-left:6px;font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.cart-grid-tile .grid-tile-middle{background-color:#fff;padding:15px;border-bottom:1px solid #E0E0E0}.cart-grid-tile .grid-tile-middle .see-more-link{text-decoration:underline}.cart-grid-tile .grid-tile-middle .see-more-link:hover{color:#d51317}.cart-grid-tile .grid-tile-middle .custom-input-field{width:100%;border:1px solid #E0E0E0;height:40px;margin-bottom:15px;padding-left:15px}.cart-grid-tile .grid-tile-middle .color-block{width:20px;height:20px;border:1px solid #E0E0E0}.cart-grid-tile .grid-tile-middle .more-color{cursor:pointer;color:#b61828;margin-left:10px;-webkit-text-decoration-line:underline;text-decoration-line:underline;text-underline-offset:4px;-webkit-text-decoration-style:dashed;text-decoration-style:dashed;position:relative}.cart-grid-tile .grid-tile-middle .more-detail{text-decoration:underline;cursor:pointer;margin-bottom:0}.cart-grid-tile .grid-tile-middle a{color:#262626;text-decoration:underline;cursor:pointer}.cart-grid-tile .grid-tile-middle a:hover{color:#262626}.cart-grid-tile .expandBtn{z-index:9;cursor:pointer;position:absolute;background-color:#fff;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;bottom:-24px;left:50%;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);box-shadow:0 0 6px #00000026;-webkit-box-shadow:0px 0px 6px rgba(0,0,0,.15);-moz-box-shadow:0px 0px 6px rgba(0,0,0,.15)}.cart-grid-tile .subPrice{color:#707070}.cart-grid-tile .grid-tile-bottom{background-color:#fff;padding:0 15px;border-top:1px solid #E0E0E0}.cart-grid-tile .grid-tile-bottom .total-qty{color:#1d1d1b;font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif;padding:15px 0}.cart-grid-tile .grid-tile-bottom .total-amount{color:#1d1d1b;border-bottom:1px solid #E0E0E0}.cart-grid-tile .grid-tile-bottom .total-amount h4{font-size:var(--fontsize20);margin-bottom:0}.cart-grid-tile .grid-tile-bottom .total-amount span{font-size:var(--fontsize14)}.bundling{text-align:right;top:20px;margin-bottom:15px}.bundling span.text{display:inline-block;position:relative;top:-12px;font-size:var(--fontsize14)}.switch{position:relative;display:inline-block;width:50px;margin-top:-4px;height:22px}.switch input{opacity:0;width:0;height:0}.switch input:not(:checked)+.slider:after{content:\"NO\";right:6px;position:absolute;color:#fff;top:3px;font-size:var(--fontsize12);font-family:\"Arial Bold\",sans-serif}.switch input:checked+.slider{background-color:#b61828}.switch input:checked+.slider:before{transform:translate(26px);left:5px}.switch input:checked+.slider:after{content:\"YES\";left:5px;position:absolute;color:#fff;top:3px;font-size:var(--fontsize12);font-family:\"Arial Bold\",sans-serif}.switch input:focus+.slider{box-shadow:0 0 1px #2196f3}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#a6a6a5;transition:.4s}.slider:before{position:absolute;content:\"\";height:16px;width:16px;top:3px;left:3px;bottom:3px;background-color:#fff;transition:.4s}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.cart-details-table th{font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.add-more-btn{background:none;border:none}.add-more-btn .add-more{position:relative;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2219%22 height%3D%2219%22 viewBox%3D%220 0 19 19%22%3E%0D %3Cpath id%3D%22Icon_awesome-plus-circle%22 data-name%3D%22Icon awesome-plus-circle%22 d%3D%22M10.063.563a9.5%2C9.5%2C0%2C1%2C0%2C9.5%2C9.5A9.5%2C9.5%2C0%2C0%2C0%2C10.063.563Zm5.516%2C10.573a.461.461%2C0%2C0%2C1-.46.46H11.595v3.524a.461.461%2C0%2C0%2C1-.46.46H8.99a.461.461%2C0%2C0%2C1-.46-.46V11.595H5.006a.461.461%2C0%2C0%2C1-.46-.46V8.99a.461.461%2C0%2C0%2C1%2C.46-.46H8.53V5.006a.461.461%2C0%2C0%2C1%2C.46-.46h2.145a.461.461%2C0%2C0%2C1%2C.46.46V8.53h3.524a.461.461%2C0%2C0%2C1%2C.46.46Z%22 transform%3D%22translate(-0.563 -0.563)%22%2F%3E%0D%3C%2Fsvg%3E%0D\") no-repeat center;width:20px;height:20px;display:inline-block;top:4px}.colours .colour{padding:0 15px;position:relative}.colours .colour .checkbox{display:none}.colours .colour .colour-title{position:absolute;bottom:-48px;width:40px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:var(--fontsize14);text-align:center;cursor:grabbing}.colours .colour.selected{border:1px solid #000000}.colours .colour.selected .checkbox{position:absolute;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2217.186%22 height%3D%2217.186%22 viewBox%3D%220 0 17.186 17.186%22%3E%0D %3Cg id%3D%22Group_12857%22 data-name%3D%22Group 12857%22 transform%3D%22translate(0.25 0.25)%22%3E%0D %3Ccircle id%3D%22Ellipse_14%22 data-name%3D%22Ellipse 14%22 cx%3D%228.316%22 cy%3D%228.316%22 r%3D%228.316%22 transform%3D%22translate(0 0.039)%22%2F%3E%0D %3Cpath id%3D%22Icon_ionic-md-checkmark-circle%22 data-name%3D%22Icon ionic-md-checkmark-circle%22 d%3D%22M11.718%2C3.375a8.343%2C8.343%2C0%2C1%2C0%2C8.343%2C8.343A8.367%2C8.367%2C0%2C0%2C0%2C11.718%2C3.375ZM10.005%2C16.166%2C5.729%2C11.89l1.2-1.2%2C3.08%2C3.08%2C6.5-6.5%2C1.2%2C1.2Z%22 transform%3D%22translate(-3.375 -3.375)%22 fill%3D%22%23fff%22%2F%3E%0D %3Cpath id%3D%22Icon_ionic-md-checkmark-circle_-_Outline%22 data-name%3D%22Icon ionic-md-checkmark-circle - Outline%22 d%3D%22M11.718%2C3.125a8.583%2C8.583%2C0%2C0%2C1%2C6.069%2C14.662A8.583%2C8.583%2C0%2C1%2C1%2C5.649%2C5.649%2C8.532%2C8.532%2C0%2C0%2C1%2C11.718%2C3.125Zm0%2C16.686A8.117%2C8.117%2C0%2C1%2C0%2C6%2C17.433%2C8.035%2C8.035%2C0%2C0%2C0%2C11.718%2C19.811ZM16.511%2C6.916l1.553%2C1.553-8.059%2C8.05L5.376%2C11.89l1.553-1.553%2C3.08%2C3.08Zm.846%2C1.553-.846-.846-6.5%2C6.5-3.08-3.08-.846.846%2C3.922%2C3.922Z%22 transform%3D%22translate(-3.375 -3.375)%22%2F%3E%0D %3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\") no-repeat center;width:20px;height:20px;display:inline-block;top:10px;left:10px}.colours .colour.main{box-sizing:border-box;width:40px;height:40px;display:inline-block;padding:0;border:1px solid #C6C6C6}.colours_container{width:320px;height:auto;position:absolute;z-index:1}.colors-paragraph{display:flex;align-items:center}.colors-paragraph .revieworder-color{width:20px;height:20px;border:1px solid #000000;display:inline-flex}.orderInfo li{display:flex}.orderInfo li label{font-family:\"Arial Bold\",sans-serif;width:50%}.orderInfo li .InfoText{display:inline-block;padding-left:10px;width:50%}.productImg{width:71px;height:71px}.productName{line-height:20px}.statusColor{display:inline-block;width:12px;height:12px;border-radius:50%}.attribute{font-size:14px}::ng-deep .flashing-expand{cursor:pointer}::ng-deep .flashing-expand:after{background:url(../../../../assets/images/expand-icon.svg) no-repeat center;z-index:2;width:24px;content:\"\";height:24px;position:absolute;top:0;right:0}::ng-deep .flashing-expand img{max-height:55px;max-width:60px;background:#ffffff}::ng-deep .flashing-expand.flashing-open:after{background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%0D %3Cg id%3D%22Group_14477%22 data-name%3D%22Group 14477%22 transform%3D%22translate(-5533.5 11452.992)%22%3E%0D %3Cg id%3D%22Group_14476%22 data-name%3D%22Group 14476%22%3E%0D %3Cg id%3D%22Group_14475%22 data-name%3D%22Group 14475%22 transform%3D%22translate(5164.5 -12321.992)%22%3E%0D %3Crect id%3D%22Rectangle_1116%22 data-name%3D%22Rectangle 1116%22 width%3D%2224%22 height%3D%2224%22 transform%3D%22translate(369 869)%22 fill%3D%22%23fff%22%2F%3E%0D %3C%2Fg%3E%0D %3Cpath id%3D%22Path_11366%22 data-name%3D%22Path 11366%22 d%3D%22M142.587%2C65.954v4.569a1.963%2C1.963%2C0%2C0%2C1-1.839%2C2.068H127.833a1.965%2C1.965%2C0%2C0%2C1-1.839-2.068V58.066A1.963%2C1.963%2C0%2C0%2C1%2C127.833%2C56h4.8a.83.83%2C0%2C1%2C1%2C0%2C1.659h-4.505a.516.516%2C0%2C0%2C0-.472.553V70.378a.521.521%2C0%2C0%2C0%2C.472.553h12.33a.516.516%2C0%2C0%2C0%2C.472-.553V65.954a.83.83%2C0%2C1%2C1%2C1.659%2C0Z%22 transform%3D%22translate(5411.209 -11505.287)%22 fill-rule%3D%22evenodd%22%2F%3E%0D %3C%2Fg%3E%0D %3Cpath id%3D%22Path_11367%22 data-name%3D%22Path 11367%22 d%3D%22M26.413%2C4.5H21.5a.607.607%2C0%2C0%2C0-.608.608v.009a.607.607%2C0%2C0%2C0%2C.608.608h3.4l-5.091%2C5.126a.608.608%2C0%2C0%2C0%2C.858.862l5.126-5.1v3.4a.607.607%2C0%2C0%2C0%2C.608.608h.009a.607.607%2C0%2C0%2C0%2C.608-.608V5.108A.607.607%2C0%2C0%2C0%2C26.413%2C4.5Z%22 transform%3D%22translate(5526.775 -11453.789)%22%2F%3E%0D %3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\") no-repeat center}#imageModal.show{display:flex!important;vertical-align:middle!important;align-items:center!important}#imageModal.show .modal-header{justify-content:right;border:none}#imageModal.show .modal-body{text-align:center;vertical-align:middle;margin:0 auto}#imageModal.show .modal-body img{max-width:100%;max-height:80vh}.flashing-block{background-color:#e8e8e8}.flashing-block .flash-title{font-size:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}.flashing-block .skuId{color:#707070;font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.flashing-block .gst-text{display:block;font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif}.flashing-block .total-amount{border-bottom:none!important}@media screen and (max-width: 767px){.cart-grid-tile .grid-tile-top h4{margin-top:10px;margin-left:0}.productImg{width:100%;height:100%}.total-qty span,.total-amount span{font-size:1rem}.total-qty h4,.total-amount h4{font-size:1.25rem!important}}\n"], components: [{ type: i3.NgxMasonryComponent, selector: "[ngx-masonry], ngx-masonry", inputs: ["updateLayout", "ordered", "options"], outputs: ["layoutComplete", "removeComplete", "itemsLoaded"] }, { type: i4.MediaComponent, selector: "cx-media", inputs: ["container", "format", "alt", "role", "loading"], outputs: ["loaded"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgxMasonryDirective, selector: "[ngxMasonryItem], ngxMasonryItem", inputs: ["prepend"] }, { type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i5.AsyncPipe, "number": i5.DecimalPipe, "date": i5.DatePipe, "slice": i5.SlicePipe } });
92
172
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: OrderDetailGridComponent, decorators: [{
93
173
  type: Component,
94
174
  args: [{
@@ -96,8 +176,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
96
176
  templateUrl: './order-detail-grid.component.html',
97
177
  styleUrls: ['./order-detail-grid.component.scss']
98
178
  }]
99
- }], ctorParameters: function () { return [{ type: i1.CartService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { sortByVal: [{
179
+ }], ctorParameters: function () { return [{ type: i1.CartService }, { type: i2.UserAccountDetailServiceService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { sortByVal: [{
100
180
  type: Input
181
+ }], masonry: [{
182
+ type: ViewChild,
183
+ args: [NgxMasonryComponent, { static: false }]
101
184
  }], cartDetails: [{
102
185
  type: Input
103
186
  }], orderDate: [{
@@ -105,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
105
188
  }], isCardData: [{
106
189
  type: Input
107
190
  }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGV0YWlsLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnVpbGRpbmdwcm9kdWN0X2xpYnJhcnkvc3JjL2xpYi9jdXN0b20tb3JkZXItZGV0YWlscy9vcmRlci1kZXRhaWwtZ3JpZC9vcmRlci1kZXRhaWwtZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2N1c3RvbS1vcmRlci1kZXRhaWxzL29yZGVyLWRldGFpbC1ncmlkL29yZGVyLWRldGFpbC1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFRdkMsTUFBTSxPQUFPLHdCQUF3QjtJQWFuQyxZQUFvQixXQUF3QixFQUNsQyxHQUFzQjtRQURaLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ2xDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBYmhDLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLGdCQUFXLEdBQUssRUFBRSxDQUFDO1FBRW5CLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFNUMsZ0JBQVcsR0FBTSxFQUFFLENBQUM7UUFLN0IsZ0JBQVcsR0FBUSxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELFFBQUcsR0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVMLENBQUM7SUFFckMsUUFBUTtJQUVSLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7O1FBQ2hDLElBQUksQ0FBQSxNQUFBLE9BQU8sYUFBUCxPQUFP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QXRGVSx3QkFBd0I7MEdBQXhCLHdCQUF3QixvTUNUckMsNC9hQXlNTTs0RkRoTU8sd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFdBQVcsRUFBRSxvQ0FBb0M7b0JBQ2pELFNBQVMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDO2lCQUNsRDtrSUFJVSxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1vcmRlci1kZXRhaWwtZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29yZGVyLWRldGFpbC1ncmlkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vcmRlci1kZXRhaWwtZ3JpZC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRlckRldGFpbEdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgc2hvd0RldGFpbHM6IGFueSA9IFtdO1xyXG4gIGFycm93VXBEb3duOmFueT1bXTtcclxuICBASW5wdXQoKSBzb3J0QnlWYWw6IGFueTtcclxuICBzaG93V2FpdEN1cnNvciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBASW5wdXQoKSBjYXJ0RGV0YWlsczogYW55PVtdO1xyXG4gIEBJbnB1dCgpIG9yZGVyRGF0ZTphbnk7XHJcbiAgQElucHV0KCkgaXNDYXJkRGF0YTogYW55O1xyXG4gIG5vUmVjb3JkPzpzdHJpbmc7XHJcbiAgaW1hZ2VNb2RhbFNyYzogYW55O1xyXG4gIGVudmlyb25tZW50OiBhbnkgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdlbnYnKTtcclxuICBlbnYgOiBhbnkgPSBKU09OLnBhcnNlKHRoaXMuZW52aXJvbm1lbnQpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcz8uY2FydERldGFpbHM/LnByZXZpb3VzVmFsdWUgIT0gY2hhbmdlcz8uY2FydERldGFpbHM/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQodHJ1ZSk7XHJcbiAgICBpZih0aGlzLmNhcnREZXRhaWxzPy5sZW5ndGgpe1xyXG4gICAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQoZmFsc2UpXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKVxyXG4gICAgICB0aGlzLm5vUmVjb3JkPSdObyBkYXRhJztcclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jYXJ0RGV0YWlscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB0aGlzLnNob3dEZXRhaWxzLnB1c2goZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jYXJ0U2VydmljZS5leHBhbmRBbGwuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jYXJ0RGV0YWlscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHRoaXMuc2hvd0RldGFpbHNbaV0gPSBkYXRhO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgc2hvd0hpZGUoaW5kOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc2hvd0RldGFpbHNbaW5kXSA9ICF0aGlzLnNob3dEZXRhaWxzW2luZF07XHJcbiAgfVxyXG4gIGFycm93SGlkZVNob3coaWQ6IG51bWJlcil7XHJcbiAgdGhpcy5hcnJvd1VwRG93bltpZF0gPSAhdGhpcy5hcnJvd1VwRG93bltpZF07XHJcbiAgfVxyXG4gIC8vIEdldCB0aGUgSW1hZ2UgRGV0YWlscyBiYXNlZCBvbiBQcm9kdWN0c1xyXG4gIGdldEltYWdlRGV0YWlscyhjYXJ0RGV0YWlsczogYW55LCB0aHVtYm5haWw6IGFueSA9IHRydWUpOiBhbnkge1xyXG4gICAgbGV0IGltYWdlVXJsOiBhbnkgPSBjYXJ0RGV0YWlscz8ucHJvZHVjdD8uaW1hZ2VzO1xyXG4gICAgaWYgKHRoaXMuaXNDYXJkRGF0YSkge1xyXG4gICAgICBpbWFnZVVybCA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM/LmZpbmQoKGltZzogYW55KSA9PiBpbWcuZm9ybWF0ID09IFwiY2FydEljb25cIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpbWFnZVVybCA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM/LkdBTExFUlk/LmNhcnRJY29uO1xyXG4gICAgfVxyXG4gICAgbGV0IHNyY1VybDogYW55O1xyXG4gICAgaWYgKFxyXG4gICAgICBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHMgJiZcclxuICAgICAgY2FydERldGFpbHM/LmF0dGFjaG1lbnRzPy5sZW5ndGggJiZcclxuICAgICAgY2FydERldGFpbHM/LnByb2R1Y3Q/LmZsYXNoaW5nUHJvZHVjdFxyXG4gICAgKSB7XHJcbiAgICAgIHNyY1VybCA9XHJcbiAgICAgICAgdGh1bWJuYWlsICYmIGNhcnREZXRhaWxzPy5hdHRhY2htZW50cz8ubGVuZ3RoID4gMVxyXG4gICAgICAgICAgPyBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHNbMV0/LmRvd25sb2FkVVJMXHJcbiAgICAgICAgICA6IGNhcnREZXRhaWxzPy5hdHRhY2htZW50c1swXT8uZG93bmxvYWRVUkw7XHJcbiAgICAgIGltYWdlVXJsID0ge1xyXG4gICAgICAgIHVybDogKFxyXG4gICAgICAgICAgdGhpcy5lbnYub2NjQmFzZVVybC5zbGljZSgwLCB0aGlzLmVudi5vY2NCYXNlVXJsLmxlbmd0aCAtIDEpICtcclxuICAgICAgICAgIHNyY1VybFxyXG4gICAgICAgICk/LnJlcGxhY2UoJyZhdHRhY2htZW50PXRydWUnLCAnJyksXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaW1hZ2VVcmw7XHJcbiAgfVxyXG4gIHZpZXdJbWFnZShldmVudDogYW55LCBjYXJ0RGV0YWlsczogYW55KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5pbWFnZU1vZGFsU3JjID0gdGhpcy5nZXRJbWFnZURldGFpbHMoY2FydERldGFpbHMsIGZhbHNlKT8udXJsO1xyXG4gIH1cclxuIFxyXG4gIGdldFBkZkxpbmsoY2FydERldGFpbHM6IGFueSk6IHZvaWQge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VEZXRhaWxzKGNhcnREZXRhaWxzLCBmYWxzZSk/LnVybDtcclxuICB9XHJcblxyXG4gIGhhc0ltYWdlKGNhcnREZXRhaWxzOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG1pbWVUeXBlID0gY2FydERldGFpbHM/LmF0dGFjaG1lbnRzWzBdPy5taW1lO1xyXG4gICAgY29uc3QgbWltZUFycmF5ID0gW1wiaW1hZ2UvcG5nXCIsIFwiaW1hZ2UvanBnXCIsIFwiaW1hZ2UvanBlZ1wiXTtcclxuICAgIHJldHVybiBtaW1lQXJyYXkuaW5jbHVkZXMobWltZVR5cGUpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibG9hZGluZyBcIiAqbmdJZj1cInNob3dXYWl0Q3Vyc29yIHwgYXN5bmMgXCI+TG9hZGluZyYjODIzMDs8L2Rpdj5cclxuPGRpdiBjbGFzcz1cInB5LTNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydERldGFpbHMubGVuZ3RoOyBlbHNlIG5vZGF0YVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLXNtLTZcIiAqbmdGb3I9XCJsZXQgY2FydCBvZiBjYXJ0RGV0YWlscztsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FydC1ncmlkLXRpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC10aWxlLXRvcCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNrdS1jb2RlXCI+U0tVOnt7Y2FydD8ucHJvZHVjdD8uY29kZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+I3t7Y2FydC5lbnRyeU51bWJlcisxfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydERldGFpbHNbaV0/LnByb2R1Y3Q/LmZsYXNoaW5nUHJvZHVjdDtlbHNlIG5vcm1hbEltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtdG9nZ2xlPVwibW9kYWxcIiBjbGFzcz1cImZsYXNoaW5nLWV4cGFuZFwiIChjbGljayk9XCJ2aWV3SW1hZ2UoJGV2ZW50LGNhcnREZXRhaWxzW2ldKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRhcmdldF09XCInI2ltYWdlTW9kYWwnXCIgKm5nSWY9XCJoYXNJbWFnZShjYXJ0RGV0YWlsc1tpXSk7ZWxzZSBoYXNQZGZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjeC1tZWRpYSBbY29udGFpbmVyXT1cImdldEltYWdlRGV0YWlscyhjYXJ0RGV0YWlsc1tpXSlcIiBmb3JtYXQ9XCJjYXJ0SWNvblwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj48L2N4LW1lZGlhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGFzUGRmPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmbGFzaGluZy1leHBhbmQgZmxhc2hpbmctb3BlblwiIFtocmVmXT1cImdldFBkZkxpbmsoY2FydERldGFpbHNbaV0pXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJwZGYtaWNvblwiIHNyYz1cIi4uLy4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvcGRmLWljb24uc3ZnXCIgYWx0PVwiQ2xpY2sgdG8gb3BlbiBQREZcIiB0aXRsZT1cIkNsaWNrIHRvIG9wZW4gUERGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9ybWFsSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjeC1tZWRpYSBbY29udGFpbmVyXT1cImdldEltYWdlRGV0YWlscyhjYXJ0RGV0YWlsc1tpXSlcIiBmb3JtYXQ9XCJjYXJ0SWNvblwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj48L2N4LW1lZGlhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInByb2R1Y3ROYW1lXCI+e3tjYXJ0Py5wcm9kdWN0Py5uYW1lfX08L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4cGFuZEJ0blwiIChjbGljayk9XCJhcnJvd0hpZGVTaG93KGkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXJyb3dVcERvd25baV09PXRydWU7IGVsc2UgYXJyb3dVcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tdXBcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYXJyb3dVcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWRvd25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFycm93VXBEb3duW2ldXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLXRpbGUtbWlkZGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydD8ucHJvZHVjdD8uY2xhc3NpZmljYXRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtdC0xIG1iLTQgYXR0cmlidXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBhdHRyaWJ1dGVzIG9mIGNhcnQ/LnByb2R1Y3Q/LmNsYXNzaWZpY2F0aW9uc1swXT8uZmVhdHVyZXM7bGFzdCBhcyBpc0xhc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YXR0cmlidXRlcz8uZmVhdHVyZVZhbHVlc1swXT8udmFsdWUgfX0gPHNwYW4gKm5nSWY9XCIhaXNMYXN0XCI+IHwgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydD8uc3ViTGluZUNvbmZpZ0luZm9zLmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJzaG93SGlkZShpKVwiIGNsYXNzPVwic2VlLW1vcmUtbGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Nob3dEZXRhaWxzW2ldID09IHRydWUgPyAnSGlkZScgOiAnU2VlJ319IG1vcmUgZGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0RldGFpbHNbaV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cIm5vLWJvcmRlciBjYXJ0LWRldGFpbHMtdGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5RdWFudGl0eTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5MZW5ndGggKExNKTwvdGg+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJjYXJ0Py5zdWJMaW5lQ29uZmlnSW5mb3NbaV0/LmJ1bmRsZU5hbWVcIj5CdW5kbGU8L3RoPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgc3ViTGluZSBvZiBjYXJ0Py5zdWJMaW5lQ29uZmlnSW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c3ViTGluZT8ucXVhbnRpdHl9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3N1YkxpbmU/Lmxlbmd0aCB8IG51bWJlcjonMC4zLTMnfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJzdWJMaW5lPy5idW5kbGVOYW1lXCI+e3tzdWJMaW5lPy5idW5kbGVOYW1lfX08YnI+e3tzdWJMaW5lPy5yZWZlcmVuY2V9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+ICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjb2wtMTIgb3JkZXJJbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkRlbGl2ZXJ5ICM6PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiSW5mb1RleHRcIj4tPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlF0eSBTaGlwcGVkOjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIkluZm9UZXh0XCI+LTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkRlbGl2ZXJ5IERhdGU6PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiSW5mb1RleHRcIj4ge3tvcmRlckRhdGUgfCBkYXRlOlwiZGQvTU0veXl5eVwifX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5TdGF0dXM6PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiSW5mb1RleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJzdGF0dXNDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1jb2xvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdDUkVBVEVEJykgPyAoJyNGM0E5MzEnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdBUFBST1ZFRCcpID8gKCcjZjI2NTIyJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nUFJPQ0VTU0lORycpID8gKCcjNzU1NzhBJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nUkVBRFknKSA/ICgnIzQ5NjQ3MScpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J0RFTElWRVJJTkcnKSA/ICgnIzAwQUNCRCcpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J0NPTVBMRVRFRCcpID8gKCcjOERDNDQwJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nUkVUVVJORUQnKSA/ICgnIzhEQzQ0MCcpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J0NBTkNFTExFRCcpID8gKCcjMDAwMDAwJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJycpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NtYWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjYXJ0Py5zdGF0dXNEaXNwbGF5IHx8ICctJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLXRpbGUtYm90dG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC03IGJvcmRlci1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWwtcXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibS0wXCI+e3tjYXJ0Py5qb2JSZWZlcmVuY2UgIHx8ICAnLSd9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydD8uY29uZmlndXJhdGlvbkluZm9zLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImNvbG9ycy1wYXJhZ3JhcGggbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXZpZXdvcmRlci1jb2xvciBtci0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogY2FydD8uY29uZmlndXJhdGlvbkluZm9zWzBdPy5jb25maWd1cmF0aW9uVmFsdWUuc3BsaXQoJ3wnKSB8IHNsaWNlOjJ9XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjYXJ0Py5jb25maWd1cmF0aW9uSW5mb3NbMF0/LmNvbmZpZ3VyYXRpb25WYWx1ZS5zcGxpdCgnfCcpIHwgc2xpY2U6MToyfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Ub3RhbCBRdHk6IHt7Y2FydC5xdWFudGl0eURvdWJsZX19e3tjYXJ0Py50b3RhbFByaWNlPy51bml0VHlwZX19PC9zcGFuPjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViUHJpY2VcIj5AIHt7Y2FydD8udG90YWxQcmljZT8uZm9ybWF0dGVkVmFsdWV9fS97e2NhcnQ/LnRvdGFsUHJpY2U/LnVuaXRUeXBlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNSBweC0wIGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWwtYW1vdW50IHRleHQtcmlnaHQgcHktMyBweC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+e3tjYXJ0Py50b3RhbFByaWNlPy5mb3JtYXR0ZWRWYWx1ZX19PC9oND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPmV4Y2wgR1NUPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGVmdCBweS0zIHB4LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiSW5mb1RleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJzdGF0dXNDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1jb2xvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdDUkVBVEVEJykgPyAoJyNGM0E5MzEnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdBUFBST1ZFRCcpID8gKCcjZjI2NTIyJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nUFJPQ0VTU0lORycpID8gKCcjNzU1NzhBJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nUkVBRFknKSA/ICgnIzQ5NjQ3MScpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J0RFTElWRVJJTkcnKSA/ICgnIzAwQUNCRCcpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J0NPTVBMRVRFRCcpID8gKCcjOERDNDQwJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nUkVUVVJORUQnKSA/ICgnIzhEQzQ0MCcpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J0NBTkNFTExFRCcpID8gKCcjMDAwMDAwJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJycpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NtYWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjYXJ0Py5zdGF0dXNEaXNwbGF5ID8gY2FydD8uc3RhdHVzRGlzcGxheSA6ICctJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjYXJ0RGV0YWlsc1tpXT8ucHJvZHVjdD8uZmxhc2hpbmdQcm9kdWN0ICYmIGNhcnREZXRhaWxzW2ldPy5wcm9kdWN0Q29uZmlndXJlZEluZm9zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxhc2hpbmctYmxvY2sgXCIgKm5nRm9yPVwibGV0IGRhdGEgb2YgY2FydERldGFpbHNbaV0/LnByb2R1Y3RDb25maWd1cmVkSW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtdGlsZS10b3BcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwic2t1SWRcIj5TS1U6IHt7ZGF0YT8ucHJvZHVjdD8uY29kZX19PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImZsYXNoLXRpdGxlXCI+e3tkYXRhPy5wcm9kdWN0Py5uYW1lfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRhPy5naXJ0aFwiPkdyaXRoOiAre3tkYXRhPy5naXJ0aH19bW08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC10aWxlLWJvdHRvbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtNiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGJvcmRlci1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWwtcXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5Ub3RhbCBRdHk6IHt7ZGF0YT8ucXVhbnRpdHlEb3VibGV9fXt7ZGF0YT8udW5pdFR5cGV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkB7e2RhdGE/LmJhc2VQcmljZT8uZm9ybWF0dGVkVmFsdWV9fS97e2RhdGE/LnVuaXRUeXBlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLTYgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIHRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFsLWFtb3VudCB0ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0Pnt7ZGF0YT8udG90YWxQcmljZT8uZm9ybWF0dGVkVmFsdWV9fTwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+ZXhjbCBHU1Q8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9kYXRhPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyXCI+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtY2VudGVyXCI+e3tub1JlY29yZH19PC9wPlxyXG4gICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cIm1vZGFsIGZhZGVcIiBpZD1cImltYWdlTW9kYWxcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1sYWJlbGxlZGJ5PVwiaW1hZ2VNb2RhbFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiICNpbWFnZU1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1sZ1wiIHJvbGU9XCJkb2N1bWVudFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbi1jbG9zZSBpbnZpdGUtcG9wLWNsb3NlXCIgI2Nsb3NlSW52aXRlTW9kYWwgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj48L2k+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBtLTRcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZU1vZGFsU3JjXCIgYWx0PVwiYWxlcnRcIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGV0YWlsLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnVpbGRpbmdwcm9kdWN0X2xpYnJhcnkvc3JjL2xpYi9jdXN0b20tb3JkZXItZGV0YWlscy9vcmRlci1kZXRhaWwtZ3JpZC9vcmRlci1kZXRhaWwtZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2N1c3RvbS1vcmRlci1kZXRhaWxzL29yZGVyLWRldGFpbC1ncmlkL29yZGVyLWRldGFpbC1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQW9DLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7O0FBTzFDLE1BQU0sT0FBTyx3QkFBd0I7SUFpQm5DLFlBQ1UsV0FBd0IsRUFDeEIseUJBQTBELEVBQzFELEdBQXNCO1FBRnRCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBaUM7UUFDMUQsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFuQmhDLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBRXRCLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFJNUMsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFLL0IsdUJBQWtCLEdBQVksSUFBSSxDQUFDO1FBQ25DLFFBQUcsR0FBUSxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLGdCQUFXLEdBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFNdEMsQ0FBQztJQUVFLFFBQVE7O1lBQ1osSUFBSSxDQUFDLGtCQUFrQjtnQkFDckIsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNuRSxDQUFDO0tBQUE7SUFDRCxXQUFXLENBQUMsT0FBc0I7O1FBQ2hDLElBQ0UsQ0FBQSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxXQUFXLDBDQUFFLGFBQWEsTUFBSSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxXQUFXLDBDQUFFLFlBQVksQ0FBQSxFQUN6RTtZQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsTUFBTSxFQUFFO1lBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pDO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztTQUMzQjtRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzVDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7YUFDNUI7WUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMzQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsUUFBUSxDQUFDLEdBQVc7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNELGFBQWEsQ0FBQyxFQUFVO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFDRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxVQUFlLEVBQUUsSUFBUzs7UUFDekMsSUFBSSxJQUFTLENBQUM7UUFDZCxJQUFJLFVBQWUsQ0FBQztRQUNwQixJQUFJLFVBQVUsSUFBSSxDQUFBLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxNQUFNLElBQUcsQ0FBQyxFQUFFO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTs7Z0JBQzdDLE9BQU8sQ0FBQSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxrQkFBa0IsMENBQUUsV0FBVyxFQUFFLEtBQUksT0FBTyxDQUFBO1lBQzFELENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxNQUFNLEtBQUksTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE1BQU0sQ0FBQSxFQUFFO2dCQUM1QixJQUFJLEdBQUcsTUFBQSxNQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsMENBQUUsa0JBQWtCLDBDQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELFVBQVUsR0FBRyxNQUFBLE1BQUEsTUFBTSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxrQkFBa0IsMENBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUMzRDtTQUNGO1FBQ0QsT0FBTyxDQUFDLElBQUksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEQsQ0FBQztJQUNELDJDQUEyQztJQUMzQyxhQUFhLENBQUMsS0FBVTtRQUN0QixPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLFNBQVMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsZUFBZSxDQUFDLFdBQWdCLEVBQUUsWUFBaUIsSUFBSTs7UUFDckQsSUFBSSxRQUFRLEdBQVEsTUFBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsT0FBTywwQ0FBRSxNQUFNLENBQUM7UUFDakQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLHdGQUF3RjtZQUN4RixNQUFNLFNBQVMsR0FDYixDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxrQkFBa0IsTUFBSSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ25FLENBQUMsQ0FBQyxNQUFBLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQywwQ0FBRSxrQkFBa0IsMENBQUUsS0FBSyxDQUMzRCxHQUFHLEVBQ0gsQ0FBQyxDQUFDO2dCQUNOLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDVCxRQUFRLEdBQUcsTUFBQSxNQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxPQUFPLDBDQUFFLE1BQU0sMENBQUUsTUFBTSxDQUM3QyxDQUFDLEdBQVEsRUFBRSxFQUFFOztnQkFDWCxPQUFBLENBQUMsQ0FBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsTUFBTSxLQUFJLFVBQVUsSUFBSSxDQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxTQUFTLEtBQUksU0FBUyxDQUFDO29CQUMxRCxDQUFDLENBQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sS0FBSSxVQUFVO3dCQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQzt3QkFDN0IsQ0FBQSxNQUFBLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLE9BQU8sMENBQUUsTUFBTSwwQ0FBRSxNQUFNLEtBQUksQ0FBQyxDQUFDLENBQUE7YUFBQSxDQUMvQyxDQUFDO1NBQ0g7YUFBTTtZQUNMLFFBQVEsR0FBRyxNQUFBLE1BQUEsTUFBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsT0FBTywwQ0FBRSxNQUFNLDBDQUFFLE9BQU8sMENBQUUsUUFBUSxDQUFDO1NBQzVEO1FBQ0QsSUFBSSxNQUFXLENBQUM7UUFDaEIsSUFDRSxDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxXQUFXO2FBQ3hCLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLFdBQVcsMENBQUUsTUFBTSxDQUFBO2FBQ2hDLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLE9BQU8sMENBQUUsZUFBZSxDQUFBLEVBQ3JDO1lBQ0EsTUFBTTtnQkFDSixTQUFTLElBQUksQ0FBQSxNQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxXQUFXLDBDQUFFLE1BQU0sSUFBRyxDQUFDO29CQUMvQyxDQUFDLENBQUMsTUFBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQywwQ0FBRSxXQUFXO29CQUMxQyxDQUFDLENBQUMsTUFBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQywwQ0FBRSxXQUFXLENBQUM7WUFDL0MsUUFBUSxHQUFHO2dCQUNULEdBQUcsRUFBRSxNQUFBLENBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO29CQUM1RCxNQUFNLENBQ1AsMENBQUUsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQzthQUNuQyxDQUFDO1NBQ0g7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQ0QsU0FBUyxDQUFDLEtBQVUsRUFBRSxXQUFnQjs7UUFDcEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBQSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsMENBQUUsR0FBRyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxVQUFVLENBQUMsV0FBZ0I7O1FBQ3pCLE9BQU8sTUFBQSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsMENBQUUsR0FBRyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxRQUFRLENBQUMsV0FBZ0I7O1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsMENBQUUsSUFBSSxDQUFDO1FBQ25ELE1BQU0sU0FBUyxHQUFHLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMzRCxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxXQUFnQjs7UUFDeEIsSUFBSSxNQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxPQUFPLDBDQUFFLGVBQWUsRUFBRTtZQUN6QyxNQUFNLElBQUksR0FBRyxNQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxPQUFPLDBDQUFFLElBQUksQ0FBQztZQUN4QyxNQUFNLE1BQU0sR0FBRyxNQUFBLE1BQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLE9BQU8sMENBQUUsY0FBYywwQ0FBRSxNQUFNLENBQ3pELENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FDakMsQ0FBQztZQUNGLElBQUksTUFBTSxLQUFJLE1BQUEsTUFBTSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxPQUFPLENBQUEsSUFBSSxDQUFBLE1BQUEsTUFBQSxNQUFNLENBQUMsQ0FBQyxDQUFDLDBDQUFFLE9BQU8sMENBQUUsTUFBTSxJQUFHLENBQUMsRUFBRTtnQkFDbEUsV0FBVyxDQUFDLE1BQU0sR0FBRyxNQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsMENBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxzQkFBc0I7SUFDdEIsa0JBQWtCLENBQUMsSUFBUztRQUMxQixJQUFJLFlBQVksR0FBUSxFQUFFLENBQUM7UUFDM0IsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQzdCLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7O2dCQUN6QyxJQUFJLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxXQUFXLEVBQUU7b0JBQ3hCLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLDBDQUFFLEtBQUssSUFBRyxHQUFHLElBQUcsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVywwQ0FBRSxNQUFNLENBQUEsQ0FBQyxDQUFBO2lCQUN6RjtxQkFBTTtvQkFDTCxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsMENBQUUsS0FBSyxDQUFDLENBQUE7aUJBQ3BEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLElBQUksQ0FBRSxLQUFLLENBQUMsQ0FBQTtJQUNuQyxDQUFDOztzSEF2S1Usd0JBQXdCOzBHQUF4Qix3QkFBd0Isd05BTXhCLG1CQUFtQixxRUNsQmhDLGd3Y0FtV0E7NEZEdlZhLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxXQUFXLEVBQUUsb0NBQW9DO29CQUNqRCxTQUFTLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDbEQ7Z0xBSVUsU0FBUztzQkFBakIsS0FBSztnQkFJTixPQUFPO3NCQUROLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUV4QyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5neE1hc29ucnlDb21wb25lbnQgfSBmcm9tICduZ3gtbWFzb25yeSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlckFjY291bnREZXRhaWxTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VzZXItYWNjb3VudC1kZXRhaWwtc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uVXRpbHMgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1vcmRlci1kZXRhaWwtZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29yZGVyLWRldGFpbC1ncmlkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vcmRlci1kZXRhaWwtZ3JpZC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRlckRldGFpbEdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgc2hvd0RldGFpbHM6IGFueSA9IFtdO1xyXG4gIGFycm93VXBEb3duOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBzb3J0QnlWYWw6IGFueTtcclxuICBzaG93V2FpdEN1cnNvciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBAVmlld0NoaWxkKE5neE1hc29ucnlDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIG1hc29ucnk6IE5neE1hc29ucnlDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgY2FydERldGFpbHM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIG9yZGVyRGF0ZTogYW55O1xyXG4gIEBJbnB1dCgpIGlzQ2FyZERhdGE6IGFueTtcclxuICBub1JlY29yZD86IHN0cmluZztcclxuICBpbWFnZU1vZGFsU3JjOiBhbnk7XHJcbiAgaXNPcmRlclBlcm1pc3Npb25zOiBib29sZWFuID0gdHJ1ZTtcclxuICBlbnY6IGFueSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2VudicpO1xyXG4gIGVudmlyb25tZW50IDogYW55ID0gSlNPTi5wYXJzZSh0aGlzLmVudik7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlclByb2ZpbGVEZXRhaWxzU2VydmljZTogVXNlckFjY291bnREZXRhaWxTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlzT3JkZXJQZXJtaXNzaW9ucyA9XHJcbiAgICAgIGF3YWl0IHRoaXMudXNlclByb2ZpbGVEZXRhaWxzU2VydmljZS5pc1BsYWNlT3JkZXJzUGVybWlzc2lvbigpO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGNoYW5nZXM/LmNhcnREZXRhaWxzPy5wcmV2aW91c1ZhbHVlICE9IGNoYW5nZXM/LmNhcnREZXRhaWxzPy5jdXJyZW50VmFsdWVcclxuICAgICkge1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQodHJ1ZSk7XHJcbiAgICBpZiAodGhpcy5jYXJ0RGV0YWlscz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQoZmFsc2UpO1xyXG4gICAgICB0aGlzLm5vUmVjb3JkID0gXCJObyBkYXRhXCI7XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FydERldGFpbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5zaG93RGV0YWlscy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2FydFNlcnZpY2UuZXhwYW5kQWxsLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FydERldGFpbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLnNob3dEZXRhaWxzW2ldID0gZGF0YTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5tYXNvbnJ5ICYmIENvbW1vblV0aWxzLmlzRGVza3RvcCgpKSB7XHJcbiAgICAgICAgdGhpcy5yZWxvYWRNYXNvbmFyeUdyaWQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIHNob3dIaWRlKGluZDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWxzW2luZF0gPSAhdGhpcy5zaG93RGV0YWlsc1tpbmRdO1xyXG4gICAgdGhpcy5yZWxvYWRNYXNvbmFyeUdyaWQoKTtcclxuICB9XHJcbiAgYXJyb3dIaWRlU2hvdyhpZDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmFycm93VXBEb3duW2lkXSA9ICF0aGlzLmFycm93VXBEb3duW2lkXTtcclxuICAgIHRoaXMucmVsb2FkTWFzb25hcnlHcmlkKCk7XHJcbiAgfVxyXG4gIHJlbG9hZE1hc29uYXJ5R3JpZCgpIHtcclxuICAgIGlmICh0aGlzLm1hc29ucnkgJiYgKENvbW1vblV0aWxzLmlzRGVza3RvcCgpIHx8IENvbW1vblV0aWxzLmlzVGFibGV0KCkpKSB7XHJcbiAgICAgIHRoaXMubWFzb25yeS5yZWxvYWRJdGVtcygpO1xyXG4gICAgICB0aGlzLm1hc29ucnkubGF5b3V0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldENvbG91ckRldGFpbHMoY29uZmlnSW5mbzogYW55LCB0eXBlOiBhbnkpIHtcclxuICAgIGxldCBuYW1lOiBhbnk7XHJcbiAgICBsZXQgYmFja2dyb3VuZDogYW55O1xyXG4gICAgaWYgKGNvbmZpZ0luZm8gJiYgY29uZmlnSW5mbz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBjb2xvdXIgPSBjb25maWdJbmZvPy5maWx0ZXIoKGNvbDogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGNvbD8uY29uZmlndXJhdGlvbkxhYmVsPy50b0xvd2VyQ2FzZSgpID09IFwiY29sb3JcIlxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGNvbG91ciAmJiBjb2xvdXI/Lmxlbmd0aCkge1xyXG4gICAgICAgIG5hbWUgPSBjb2xvdXJbMF0/LmNvbmZpZ3VyYXRpb25WYWx1ZT8uc3BsaXQoJ3wnKVsxXTtcclxuICAgICAgICBiYWNrZ3JvdW5kID0gY29sb3VyWzBdPy5jb25maWd1cmF0aW9uVmFsdWU/LnNwbGl0KCd8JylbMl07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAodHlwZSA9PSBcImJhY2tncm91bmRcIikgPyBiYWNrZ3JvdW5kIDogbmFtZTtcclxuICB9XHJcbiAgLy8gQ2hlY2sgaWYgYW55IHZhbHVlIGlzIGVtcHR5IG9yIHVuZGVmaW5lZFxyXG4gIGlzTnVsbE9yRW1wdHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT0gdW5kZWZpbmVkIHx8IHZhbHVlID09IFwiXCI7XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgdGhlIEltYWdlIERldGFpbHMgYmFzZWQgb24gUHJvZHVjdHNcclxuICBnZXRJbWFnZURldGFpbHMoY2FydERldGFpbHM6IGFueSwgdGh1bWJuYWlsOiBhbnkgPSB0cnVlKTogYW55IHtcclxuICAgIGxldCBpbWFnZVVybDogYW55ID0gY2FydERldGFpbHM/LnByb2R1Y3Q/LmltYWdlcztcclxuICAgIGlmICh0aGlzLmlzQ2FyZERhdGEpIHtcclxuICAgICAgLy9pbWFnZVVybCA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM/LmZpbmQoKGltZzogYW55KSA9PiBpbWcuZm9ybWF0ID09IFwiY2FydEljb25cIik7XHJcbiAgICAgIGNvbnN0IGNvbG9yQ29kZSA9XHJcbiAgICAgICAgY2FydERldGFpbHM/LmNvbmZpZ3VyYXRpb25JbmZvcyB8fCBjYXJ0RGV0YWlscz8uY29uZmlndXJhdGlvbkluZm9zWzBdXHJcbiAgICAgICAgICA/IGNhcnREZXRhaWxzPy5jb25maWd1cmF0aW9uSW5mb3NbMF0/LmNvbmZpZ3VyYXRpb25WYWx1ZT8uc3BsaXQoXHJcbiAgICAgICAgICAgICAgXCJ8XCJcclxuICAgICAgICAgICAgKVswXVxyXG4gICAgICAgICAgOiBcIlwiO1xyXG4gICAgICBpbWFnZVVybCA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM/LmZpbHRlcihcclxuICAgICAgICAoaW1nOiBhbnkpID0+XHJcbiAgICAgICAgICAoaW1nPy5mb3JtYXQgPT0gXCJjYXJ0SWNvblwiICYmIGltZz8uY29sb3JDb2RlID09IGNvbG9yQ29kZSkgfHxcclxuICAgICAgICAgIChpbWc/LmZvcm1hdCA9PSBcImNhcnRJY29uXCIgJiZcclxuICAgICAgICAgICAgdGhpcy5pc051bGxPckVtcHR5KGNvbG9yQ29kZSkgJiZcclxuICAgICAgICAgICAgY2FydERldGFpbHM/LnByb2R1Y3Q/LmltYWdlcz8ubGVuZ3RoIDw9IDQpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpbWFnZVVybCA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM/LkdBTExFUlk/LmNhcnRJY29uO1xyXG4gICAgfVxyXG4gICAgbGV0IHNyY1VybDogYW55O1xyXG4gICAgaWYgKFxyXG4gICAgICBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHMgJiZcclxuICAgICAgY2FydERldGFpbHM/LmF0dGFjaG1lbnRzPy5sZW5ndGggJiZcclxuICAgICAgY2FydERldGFpbHM/LnByb2R1Y3Q/LmZsYXNoaW5nUHJvZHVjdFxyXG4gICAgKSB7XHJcbiAgICAgIHNyY1VybCA9XHJcbiAgICAgICAgdGh1bWJuYWlsICYmIGNhcnREZXRhaWxzPy5hdHRhY2htZW50cz8ubGVuZ3RoID4gMVxyXG4gICAgICAgICAgPyBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHNbMV0/LmRvd25sb2FkVVJMXHJcbiAgICAgICAgICA6IGNhcnREZXRhaWxzPy5hdHRhY2htZW50c1swXT8uZG93bmxvYWRVUkw7XHJcbiAgICAgIGltYWdlVXJsID0ge1xyXG4gICAgICAgIHVybDogKFxyXG4gICAgICAgICAgdGhpcy5lbnYub2NjQmFzZVVybC5zbGljZSgwLCB0aGlzLmVudi5vY2NCYXNlVXJsLmxlbmd0aCAtIDEpICtcclxuICAgICAgICAgIHNyY1VybFxyXG4gICAgICAgICk/LnJlcGxhY2UoXCImYXR0YWNobWVudD10cnVlXCIsIFwiXCIpLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGltYWdlVXJsO1xyXG4gIH1cclxuICB2aWV3SW1hZ2UoZXZlbnQ6IGFueSwgY2FydERldGFpbHM6IGFueSk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuaW1hZ2VNb2RhbFNyYyA9IHRoaXMuZ2V0SW1hZ2VEZXRhaWxzKGNhcnREZXRhaWxzLCBmYWxzZSk/LnVybDtcclxuICB9XHJcblxyXG4gIGdldFBkZkxpbmsoY2FydERldGFpbHM6IGFueSk6IHZvaWQge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VEZXRhaWxzKGNhcnREZXRhaWxzLCBmYWxzZSk/LnVybDtcclxuICB9XHJcblxyXG4gIGhhc0ltYWdlKGNhcnREZXRhaWxzOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG1pbWVUeXBlID0gY2FydERldGFpbHM/LmF0dGFjaG1lbnRzWzBdPy5taW1lO1xyXG4gICAgY29uc3QgbWltZUFycmF5ID0gW1wiaW1hZ2UvcG5nXCIsIFwiaW1hZ2UvanBnXCIsIFwiaW1hZ2UvanBlZ1wiXTtcclxuICAgIHJldHVybiBtaW1lQXJyYXkuaW5jbHVkZXMobWltZVR5cGUpO1xyXG4gIH1cclxuXHJcbiAgaGFzQ29sb3VyKGNhcnREZXRhaWxzOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmIChjYXJ0RGV0YWlscz8ucHJvZHVjdD8uZmluaXNoZWRQcm9kdWN0KSB7XHJcbiAgICAgIGNvbnN0IGNvZGUgPSBjYXJ0RGV0YWlscz8ucHJvZHVjdD8uY29kZTtcclxuICAgICAgY29uc3QgY29sb3VyID0gY2FydERldGFpbHM/LnByb2R1Y3Q/LnZhcmlhbnRPcHRpb25zPy5maWx0ZXIoXHJcbiAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5jb2RlID09IGNvZGVcclxuICAgICAgKTtcclxuICAgICAgaWYgKGNvbG91ciAmJiBjb2xvdXJbMF0/LmNvbG91cnMgJiYgY29sb3VyWzBdPy5jb2xvdXJzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgY2FydERldGFpbHMuY29sb3VyID0gY29sb3VyWzBdPy5jb2xvdXJzWzBdO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIC8vIEdldCBTdW1tYXJ5IEhlYWRpbmdcclxuICBnZXRDbGFzc2lmaWNhdGlvbnMoZGF0YTogYW55KTogYW55IHtcclxuICAgIGxldCBmZWF0dXJlQXJyYXk6IGFueSA9IFtdO1xyXG4gICAgZGF0YT8uZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGVsZW1lbnQ/LmZlYXR1cmVzLmZvckVhY2goKGZlYXR1cmU6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChmZWF0dXJlPy5mZWF0dXJlVW5pdCkge1xyXG4gICAgICAgICAgZmVhdHVyZUFycmF5LnB1c2goZmVhdHVyZT8uZmVhdHVyZVZhbHVlc1swXT8udmFsdWUgKyAnICcgKyBmZWF0dXJlPy5mZWF0dXJlVW5pdD8uc3ltYm9sKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmZWF0dXJlQXJyYXkucHVzaChmZWF0dXJlPy5mZWF0dXJlVmFsdWVzWzBdPy52YWx1ZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZmVhdHVyZUFycmF5Py5qb2luKCBcIiB8IFwiKVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxvYWRpbmdcIiAqbmdJZj1cInNob3dXYWl0Q3Vyc29yIHwgYXN5bmNcIj5Mb2FkaW5nJiM4MjMwOzwvZGl2PlxyXG48ZGl2IGNsYXNzPVwicHktM1wiPlxyXG4gIDxuZ3gtbWFzb25yeSBjbGFzcz1cInJvd1wiICpuZ0lmPVwiY2FydERldGFpbHMubGVuZ3RoOyBlbHNlIG5vZGF0YVwiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImNvbC1sZy0zIGNvbC1zbS02XCJcclxuICAgICAgbmd4TWFzb25yeUl0ZW1cclxuICAgICAgKm5nRm9yPVwibGV0IGNhcnQgb2YgY2FydERldGFpbHM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FydC1ncmlkLXRpbGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC10aWxlLXRvcCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbWItM1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNrdS1jb2RlXCI+U0tVOnt7IGNhcnQ/LnByb2R1Y3Q/LmNvZGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgY2FydERldGFpbHNbaV0/LnByb2R1Y3Q/LmZsYXNoaW5nUHJvZHVjdDtcclxuICAgICAgICAgICAgICAgICAgZWxzZSBub3JtYWxJbWFnZVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT1cIm1vZGFsXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGFzaGluZy1leHBhbmRcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmlld0ltYWdlKCRldmVudCwgY2FydERldGFpbHNbaV0pXCJcclxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10YXJnZXRdPVwiJyNpbWFnZU1vZGFsJ1wiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzSW1hZ2UoY2FydERldGFpbHNbaV0pOyBlbHNlIGhhc1BkZlwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxjeC1tZWRpYVxyXG4gICAgICAgICAgICAgICAgICAgIFtjb250YWluZXJdPVwiZ2V0SW1hZ2VEZXRhaWxzKGNhcnREZXRhaWxzW2ldKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0PVwiY2FydEljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA+PC9jeC1tZWRpYT5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGFzUGRmPlxyXG4gICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxhc2hpbmctZXhwYW5kIGZsYXNoaW5nLW9wZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImdldFBkZkxpbmsoY2FydERldGFpbHNbaV0pXCJcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwZGYtaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIuLi8uLi8uLi8uLi8uLi9hc3NldHMvaW1hZ2VzL3BkZi1pY29uLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJDbGljayB0byBvcGVuIFBERlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIkNsaWNrIHRvIG9wZW4gUERGXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9ybWFsSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICA8Y3gtbWVkaWFcclxuICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lcl09XCJnZXRJbWFnZURldGFpbHMoY2FydERldGFpbHNbaV0pXCJcclxuICAgICAgICAgICAgICAgICAgZm9ybWF0PVwiY2FydEljb25cIlxyXG4gICAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgICAgICAgICAgICAgID48L2N4LW1lZGlhPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJwcm9kdWN0TmFtZVwiPnt7IGNhcnQ/LnByb2R1Y3Q/Lm5hbWUgfX08L2g0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHBhbmRCdG5cIiAoY2xpY2spPVwiYXJyb3dIaWRlU2hvdyhpKVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXJyb3dVcERvd25baV0gPT0gdHJ1ZTsgZWxzZSBhcnJvd1VwXCI+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi11cFwiPjwvaT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYXJyb3dVcD5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWRvd25cIj48L2k+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFycm93VXBEb3duW2ldXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC10aWxlLW1pZGRsZVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydD8ucHJvZHVjdD8uY2xhc3NpZmljYXRpb25zXCI+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtdC0xIG1iLTQgYXR0cmlidXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNhcnQ/LnByb2R1Y3Q/LmNsYXNzaWZpY2F0aW9uc1swXT8uZmVhdHVyZXNcIj5cclxuICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICBnZXRDbGFzc2lmaWNhdGlvbnMoY2FydERldGFpbHNbaV0/LnByb2R1Y3Q/LmNsYXNzaWZpY2F0aW9ucylcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydD8uc3ViTGluZUNvbmZpZ0luZm9zLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0hpZGUoaSlcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWUtbW9yZS1saW5rXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyBzaG93RGV0YWlsc1tpXSA9PSB0cnVlID8gXCJIaWRlXCIgOiBcIlNlZVwiIH19IG1vcmUgZGV0YWlsc1xyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0RldGFpbHNbaV1cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cIm5vLWJvcmRlciBjYXJ0LWRldGFpbHMtdGFibGUgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGg+UXVhbnRpdHk8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoPkxlbmd0aCAoTE0pPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cImNhcnQ/LnN1YkxpbmVDb25maWdJbmZvc1tpXT8uYnVuZGxlTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBCdW5kbGVcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHN1YkxpbmUgb2YgY2FydD8uc3ViTGluZUNvbmZpZ0luZm9zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgc3ViTGluZT8ucXVhbnRpdHkgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHN1YkxpbmU/Lmxlbmd0aCB8IG51bWJlciA6IFwiMC4zLTNcIiB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJzdWJMaW5lPy5idW5kbGVOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN1YkxpbmU/LmJ1bmRsZU5hbWUgfX08YnIgLz57eyBzdWJMaW5lPy5yZWZlcmVuY2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBtdC0zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjb2wtMTIgb3JkZXJJbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5EZWxpdmVyeSAjOjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIkluZm9UZXh0XCI+LTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4gLS0+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbD5RdHkgU2hpcHBlZDo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIkluZm9UZXh0XCI+LTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbD5EZWxpdmVyeSBEYXRlOjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiSW5mb1RleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBvcmRlckRhdGUgfCBkYXRlIDogXCJkZC9NTS95eXl5XCIgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsPlN0YXR1czo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIkluZm9UZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXR1c0NvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNhcnQ/LnN0YXR1cyA9PSAnQ1JFQVRFRCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJyNGM0E5MzEnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNhcnQ/LnN0YXR1cyA9PSAnQVBQUk9WRUQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcjZjI2NTIyJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjYXJ0Py5zdGF0dXMgPT0gJ1BST0NFU1NJTkcnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcjNzU1NzhBJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjYXJ0Py5zdGF0dXMgPT0gJ1JFQURZJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnIzQ5NjQ3MSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY2FydD8uc3RhdHVzID09ICdERUxJVkVSSU5HJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnIzAwQUNCRCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY2FydD8uc3RhdHVzID09ICdDT01QTEVURUQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcjOERDNDQwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjYXJ0Py5zdGF0dXMgPT0gJ1JFVFVSTkVEJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnIzhEQzQ0MCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY2FydD8uc3RhdHVzID09ICdDQU5DRUxMRUQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcjMDAwMDAwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgY2FydD8uc3RhdHVzRGlzcGxheSB8fCBcIi1cIiB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtdGlsZS1ib3R0b21cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC03IGJvcmRlci1yaWdodFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3RhbC1xdHlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibS0wXCI+e3sgY2FydD8uam9iUmVmZXJlbmNlIHx8IFwiLVwiIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNhcnQ/LmNvbmZpZ3VyYXRpb25JbmZvcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgICBlbHNlIGFjY2Vzc29yaWVzQ29sb3JcclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sb3JzLXBhcmFncmFwaCBtYi0wXCJcclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICFjYXJ0Py5wcm9kdWN0Py5mbGFzaGluZ1Byb2R1Y3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgZmxhc2hpbmdDb2xvdXJcclxuICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZXZpZXdvcmRlci1jb2xvciBtci0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJ0Py5jb25maWd1cmF0aW9uSW5mb3NbMF0/LmNvbmZpZ3VyYXRpb25WYWx1ZS5zcGxpdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3wnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHwgc2xpY2UgOiAyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcnQ/LmNvbmZpZ3VyYXRpb25JbmZvc1swXT8uY29uZmlndXJhdGlvblZhbHVlLnNwbGl0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwifFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgfCBzbGljZSA6IDEgOiAyXHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ZsYXNoaW5nQ29sb3VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjb2xvcnMtcGFyYWdyYXBoIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJldmlld29yZGVyLWNvbG9yIG1yLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGdldENvbG91ckRldGFpbHMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcnREZXRhaWxzW2ldPy5jb25maWd1cmF0aW9uSW5mb3MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbG91ckRldGFpbHMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJ0RGV0YWlsc1tpXT8uY29uZmlndXJhdGlvbkluZm9zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2FjY2Vzc29yaWVzQ29sb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjb2xvcnMtcGFyYWdyYXBoIG15LTJcIiAqbmdJZj1cImhhc0NvbG91cihjYXJ0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZXZpZXdvcmRlci1jb2xvciBtci0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGNhcnQ/LmNvbG91cj8uaGV4YWRlY2ltYWxDb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7IGNhcnQ/LmNvbG91cj8ubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgPlRvdGFsIFF0eToge3sgY2FydC5xdWFudGl0eURvdWJsZSB9fVxyXG4gICAgICAgICAgICAgICAgICB7eyBjYXJ0Py51bml0Py5jb2RlIH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgICA+PGJyIC8+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzT3JkZXJQZXJtaXNzaW9uc1wiIGNsYXNzPVwic3ViUHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICA+QCB7eyBjYXJ0Py50b3RhbFByaWNlPy5mb3JtYXR0ZWRWYWx1ZSB9fS97e1xyXG4gICAgICAgICAgICAgICAgICAgIGNhcnQ/LnRvdGFsUHJpY2U/LnVuaXRUeXBlXHJcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTUgcHgtMCBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWwtYW1vdW50IHRleHQtcmlnaHQgcHktMyBweC0yXCI+XHJcbiAgICAgICAgICAgICAgICA8aDQ+e3sgY2FydD8udG90YWxQcmljZT8uZm9ybWF0dGVkVmFsdWUgfHwgXCItXCIgfX08L2g0PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpc09yZGVyUGVybWlzc2lvbnNcIj5leGNsIEdTVDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZWZ0IHB5LTMgcHgtMlwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJJbmZvVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c21hbGxcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXR1c0NvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcnQ/LnN0YXR1cyA9PSAnQ1JFQVRFRCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcjRjNBOTMxJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogY2FydD8uc3RhdHVzID09ICdBUFBST1ZFRCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcjZjI2NTIyJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogY2FydD8uc3RhdHVzID09ICdQUk9DRVNTSU5HJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gJyM3NTU3OEEnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjYXJ0Py5zdGF0dXMgPT0gJ1JFQURZJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gJyM0OTY0NzEnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjYXJ0Py5zdGF0dXMgPT0gJ0RFTElWRVJJTkcnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnIzAwQUNCRCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNhcnQ/LnN0YXR1cyA9PSAnQ09NUExFVEVEJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gJyM4REM0NDAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjYXJ0Py5zdGF0dXMgPT0gJ1JFVFVSTkVEJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gJyM4REM0NDAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjYXJ0Py5zdGF0dXMgPT0gJ0NBTkNFTExFRCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcjMDAwMDAwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcclxuICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICAgPjwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGNhcnQ/LnN0YXR1c0Rpc3BsYXkgPyBjYXJ0Py5zdGF0dXNEaXNwbGF5IDogXCItXCIgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgY2FydERldGFpbHNbaV0/LnByb2R1Y3Q/LmZsYXNoaW5nUHJvZHVjdCAmJlxyXG4gICAgICAgICAgICBjYXJ0RGV0YWlsc1tpXT8ucHJvZHVjdENvbmZpZ3VyZWRJbmZvc1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxhc2hpbmctYmxvY2tcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBjYXJ0RGV0YWlsc1tpXT8ucHJvZHVjdENvbmZpZ3VyZWRJbmZvc1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLXRpbGUtdG9wXCI+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cInNrdUlkXCI+U0tVOiB7eyBkYXRhPy5wcm9kdWN0Py5jb2RlIH19PC9oNj5cclxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImZsYXNoLXRpdGxlXCI+e3sgZGF0YT8ucHJvZHVjdD8ubmFtZSB9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGE/LmdpcnRoXCI+R3JpdGg6ICt7eyBkYXRhPy5naXJ0aCB9fW1tPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtdGlsZS1ib3R0b21cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLW1kLTYgY29sLTYgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBib3JkZXItcmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWwtcXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIFRvdGFsIFF0eToge3sgZGF0YT8ucXVhbnRpdHlEb3VibGUgfX0ge3sgZGF0YT8udW5pdFR5cGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzT3JkZXJQZXJtaXNzaW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+QHt7IGRhdGE/LmJhc2VQcmljZT8uZm9ybWF0dGVkVmFsdWUgfX0ve3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT8udW5pdFR5cGVcclxuICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1tZC02IGNvbC02IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciB0ZXh0LXJpZ2h0XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFsLWFtb3VudCB0ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg0Pnt7IGRhdGE/LnRvdGFsUHJpY2U/LmZvcm1hdHRlZFZhbHVlIHx8IFwiLVwiIH19PC9oND5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzT3JkZXJQZXJtaXNzaW9uc1wiPmV4Y2wgR1NUPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmd4LW1hc29ucnk+XHJcbiAgPG5nLXRlbXBsYXRlICNub2RhdGE+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyXCI+XHJcbiAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXJcIj57eyBub1JlY29yZCB9fTwvcD5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG5cclxuPGRpdlxyXG4gIGNsYXNzPVwibW9kYWwgZmFkZVwiXHJcbiAgaWQ9XCJpbWFnZU1vZGFsXCJcclxuICByb2xlPVwiZGlhbG9nXCJcclxuICBhcmlhLWxhYmVsbGVkYnk9XCJpbWFnZU1vZGFsXCJcclxuICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICNpbWFnZU1vZGFsXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLWxnXCIgcm9sZT1cImRvY3VtZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgIGNsYXNzPVwiaWNvbi1jbG9zZSBpbnZpdGUtcG9wLWNsb3NlXCJcclxuICAgICAgICAgICNjbG9zZUludml0ZU1vZGFsXHJcbiAgICAgICAgICBkYXRhLWRpc21pc3M9XCJtb2RhbFwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxyXG4gICAgICAgID48L2k+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBtLTRcIj5cclxuICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VNb2RhbFNyY1wiIGFsdD1cImFsZXJ0XCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==