ng-miam 9.2.0 → 9.2.2

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 (104) hide show
  1. package/bundles/ng-miam.umd.js +927 -634
  2. package/bundles/ng-miam.umd.js.map +1 -1
  3. package/bundles/ng-miam.umd.min.js +1 -1
  4. package/bundles/ng-miam.umd.min.js.map +1 -1
  5. package/esm2015/lib/_components/accordion/accordion.component.js +2 -2
  6. package/esm2015/lib/_components/addon-link/addon-link.component.js +3 -3
  7. package/esm2015/lib/_components/counter-input/counter-input.component.js +14 -12
  8. package/esm2015/lib/_components/guests-dropdown/guests-dropdown.component.js +8 -5
  9. package/esm2015/lib/_components/icon/icon.component.js +2 -2
  10. package/esm2015/lib/_components/like-button/like-button.component.js +6 -5
  11. package/esm2015/lib/_components/modal/modal.component.js +39 -36
  12. package/esm2015/lib/_components/no-pos-selected/no-pos-selected.component.js +2 -2
  13. package/esm2015/lib/_components/product-card/out-of-stock-overlay/out-of-stock-overlay.component.js +15 -6
  14. package/esm2015/lib/_components/product-card/product-card-skeleton/product-card-skeleton.component.js +1 -1
  15. package/esm2015/lib/_components/product-card/product-card.component.js +25 -7
  16. package/esm2015/lib/_components/products-picker/products-picker.component.js +2 -2
  17. package/esm2015/lib/_components/recipe-promotion-badge/recipe-promotion-badge.component.js +2 -2
  18. package/esm2015/lib/_components/sponsor-blocks/sponsor-image-and-text-block/sponsor-image-and-text-block.component.js +4 -4
  19. package/esm2015/lib/_components/sponsor-blocks/sponsor-logo-block/sponsor-logo-block.component.js +4 -4
  20. package/esm2015/lib/_components/sponsor-blocks/sponsor-picture-block/sponsor-picture-block.component.js +3 -3
  21. package/esm2015/lib/_components/sponsor-blocks/sponsor-small-picture-block/sponsor-small-picture-block.component.js +3 -3
  22. package/esm2015/lib/_components/sponsor-blocks/sponsor-text-and-image-block/sponsor-text-and-image-block.component.js +4 -4
  23. package/esm2015/lib/_models/basket-actions/basket-action.js +2 -2
  24. package/esm2015/lib/_services/basket-recipe-cleanup.service.js +62 -0
  25. package/esm2015/lib/_services/basket-transfer.service.js +3 -2
  26. package/esm2015/lib/_services/baskets-synchronizing/baskets-synchronizer.service.js +9 -3
  27. package/esm2015/lib/_services/context.service.js +17 -13
  28. package/esm2015/lib/_services/interceptor.service.js +10 -3
  29. package/esm2015/lib/_services/recipe-details.service.js +22 -7
  30. package/esm2015/lib/_services/recipes.service.js +5 -5
  31. package/esm2015/lib/_services/store-locator.service.js +10 -3
  32. package/esm2015/lib/_services/store-out-of-stock.service.js +57 -0
  33. package/esm2015/lib/_services/user.service.js +3 -3
  34. package/esm2015/lib/_types/builded/mealz-interface.js +1 -1
  35. package/esm2015/lib/_web-components/basket-preview/basket-preview-block/basket-preview-block.component.js +3 -2
  36. package/esm2015/lib/_web-components/basket-preview/basket-preview-line/basket-preview-line.component.js +130 -122
  37. package/esm2015/lib/_web-components/basket-preview/basket-preview-product/basket-preview-product.component.js +44 -34
  38. package/esm2015/lib/_web-components/basket-preview/replace-item/replace-item.component.js +14 -7
  39. package/esm2015/lib/_web-components/list-scan/files-inputs/files-inputs.component.js +2 -2
  40. package/esm2015/lib/_web-components/meals-planner/meals-planner-form/meals-planner-form.component.js +13 -13
  41. package/esm2015/lib/_web-components/no-supplier-onboarding/no-supplier-onboarding.component.js +8 -12
  42. package/esm2015/lib/_web-components/preferences/preferences-search/preferences-search.component.js +2 -2
  43. package/esm2015/lib/_web-components/preferences/preferences.component.js +28 -28
  44. package/esm2015/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.js +118 -97
  45. package/esm2015/lib/_web-components/recipe-cards/recipe-card-cta/recipe-card-cta.component.js +21 -14
  46. package/esm2015/lib/_web-components/recipe-catalog/catalog-article-card/catalog-article-card.component.js +9 -8
  47. package/esm2015/lib/_web-components/recipe-catalog/catalog-category/catalog-category.component.js +10 -8
  48. package/esm2015/lib/_web-components/recipe-catalog/catalog-header/catalog-header.component.js +3 -3
  49. package/esm2015/lib/_web-components/recipe-catalog/catalog-toolbar/catalog-toolbar.component.js +14 -10
  50. package/esm2015/lib/_web-components/recipe-catalog/recipe-catalog.component.js +42 -37
  51. package/esm2015/lib/_web-components/recipe-details/last-order-modal/last-order-modal.component.js +2 -2
  52. package/esm2015/lib/_web-components/recipe-details/recipe-addon/recipe-addon.component.js +4 -3
  53. package/esm2015/lib/_web-components/recipe-details/recipe-details-infos/recipe-details-infos.component.js +16 -13
  54. package/esm2015/lib/_web-components/recipe-details/recipe-details-ingredients/recipe-details-ingredients.component.js +4 -3
  55. package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +98 -103
  56. package/esm2015/lib/_web-components/recipe-details/store-locator-link/store-locator-link.component.js +8 -7
  57. package/esm2015/lib/_web-components/recipe-modal/recipe-modal.component.js +7 -2
  58. package/esm2015/lib/environments/environment.js +2 -2
  59. package/esm2015/lib/environments/environment.prod.js +2 -2
  60. package/esm2015/lib/environments/version.js +2 -2
  61. package/esm2015/lib/ng-miam.module.js +4 -1
  62. package/fesm2015/ng-miam.js +882 -627
  63. package/fesm2015/ng-miam.js.map +1 -1
  64. package/lib/_components/components.module.d.ts +2 -1
  65. package/lib/_components/components.module.d.ts.map +1 -1
  66. package/lib/_components/product-card/out-of-stock-overlay/out-of-stock-overlay.component.d.ts +7 -3
  67. package/lib/_components/product-card/out-of-stock-overlay/out-of-stock-overlay.component.d.ts.map +1 -1
  68. package/lib/_components/product-card/product-card.component.d.ts +2 -0
  69. package/lib/_components/product-card/product-card.component.d.ts.map +1 -1
  70. package/lib/_models/basket-actions/basket-action.d.ts.map +1 -1
  71. package/lib/_services/basket-recipe-cleanup.service.d.ts +21 -0
  72. package/lib/_services/basket-recipe-cleanup.service.d.ts.map +1 -0
  73. package/lib/_services/basket-transfer.service.d.ts.map +1 -1
  74. package/lib/_services/baskets-synchronizing/baskets-synchronizer.service.d.ts +1 -1
  75. package/lib/_services/baskets-synchronizing/baskets-synchronizer.service.d.ts.map +1 -1
  76. package/lib/_services/context.service.d.ts +3 -1
  77. package/lib/_services/context.service.d.ts.map +1 -1
  78. package/lib/_services/interceptor.service.d.ts +1 -0
  79. package/lib/_services/interceptor.service.d.ts.map +1 -1
  80. package/lib/_services/recipe-details.service.d.ts +8 -2
  81. package/lib/_services/recipe-details.service.d.ts.map +1 -1
  82. package/lib/_services/recipes.service.d.ts +2 -6
  83. package/lib/_services/recipes.service.d.ts.map +1 -1
  84. package/lib/_services/store-locator.service.d.ts +1 -0
  85. package/lib/_services/store-locator.service.d.ts.map +1 -1
  86. package/lib/_services/store-out-of-stock.service.d.ts +13 -0
  87. package/lib/_services/store-out-of-stock.service.d.ts.map +1 -0
  88. package/lib/_services/user.service.d.ts +2 -2
  89. package/lib/_services/user.service.d.ts.map +1 -1
  90. package/lib/_types/builded/mealz-interface.d.ts +4 -0
  91. package/lib/_types/builded/mealz-interface.d.ts.map +1 -1
  92. package/lib/_web-components/basket-preview/replace-item/replace-item.component.d.ts +1 -0
  93. package/lib/_web-components/basket-preview/replace-item/replace-item.component.d.ts.map +1 -1
  94. package/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.d.ts +1 -0
  95. package/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.d.ts.map +1 -1
  96. package/lib/_web-components/recipe-cards/recipe-card-cta/recipe-card-cta.component.d.ts +1 -1
  97. package/lib/_web-components/recipe-cards/recipe-card-cta/recipe-card-cta.component.d.ts.map +1 -1
  98. package/lib/_web-components/recipe-details/recipe-details.component.d.ts +1 -1
  99. package/lib/_web-components/recipe-details/recipe-details.component.d.ts.map +1 -1
  100. package/lib/_web-components/recipe-modal/recipe-modal.component.d.ts.map +1 -1
  101. package/lib/environments/version.d.ts +1 -1
  102. package/lib/ng-miam.module.d.ts.map +1 -1
  103. package/miam-style.css +1 -1
  104. package/package.json +1 -1
@@ -23,52 +23,56 @@ import * as i9 from "../basket-preview-disabled/basket-preview-disabled.componen
23
23
  import * as i10 from "../../../_components/loader/loader.component";
24
24
  import * as i11 from "../../../_utils/pipes/capitalize-first-letter/capitalize-first-letter.pipe";
25
25
  function BasketPreviewLineComponent_ng_container_0_div_5_Template(rf, ctx) { if (rf & 1) {
26
- i0.ɵɵelementStart(0, "div", 20);
27
- i0.ɵɵelementStart(1, "span", 21);
26
+ i0.ɵɵelementStart(0, "div", 22);
27
+ i0.ɵɵelementStart(1, "span", 23);
28
28
  i0.ɵɵtext(2);
29
29
  i0.ɵɵelementEnd();
30
- i0.ɵɵelement(3, "img", 22);
30
+ i0.ɵɵelement(3, "img", 24);
31
31
  i0.ɵɵelementEnd();
32
32
  } if (rf & 2) {
33
33
  const ctx_r3 = i0.ɵɵnextContext(2);
34
+ i0.ɵɵattribute("aria-label", "Pour " + ctx_r3.line.count + " personnes");
34
35
  i0.ɵɵadvance(2);
35
36
  i0.ɵɵtextInterpolate(ctx_r3.line.count);
36
37
  } }
37
38
  function BasketPreviewLineComponent_ng_container_0_span_16_Template(rf, ctx) { if (rf & 1) {
38
- i0.ɵɵelementStart(0, "span");
39
- i0.ɵɵi18n(1, 23);
39
+ i0.ɵɵelementStart(0, "span", 12);
40
+ i0.ɵɵi18n(1, 25);
40
41
  i0.ɵɵelementEnd();
41
42
  } }
42
43
  function BasketPreviewLineComponent_ng_container_0_span_17_Template(rf, ctx) { if (rf & 1) {
43
- i0.ɵɵelementStart(0, "span");
44
- i0.ɵɵi18n(1, 24);
44
+ i0.ɵɵelementStart(0, "span", 12);
45
+ i0.ɵɵi18n(1, 26);
45
46
  i0.ɵɵelementEnd();
46
47
  } }
47
48
  function BasketPreviewLineComponent_ng_container_0_ng_container_18_Template(rf, ctx) { if (rf & 1) {
48
49
  i0.ɵɵelementContainerStart(0);
49
- i0.ɵɵelement(1, "ng-miam-price", 25);
50
+ i0.ɵɵelement(1, "ng-miam-price", 27);
50
51
  i0.ɵɵpipe(2, "currency");
51
- i0.ɵɵelementStart(3, "div", 26);
52
- i0.ɵɵelementStart(4, "span");
53
- i0.ɵɵi18n(5, 27);
52
+ i0.ɵɵelementStart(3, "div", 28);
53
+ i0.ɵɵpipe(4, "currency");
54
+ i0.ɵɵelementStart(5, "span", 12);
55
+ i0.ɵɵi18n(6, 29);
54
56
  i0.ɵɵelementEnd();
55
- i0.ɵɵelement(6, "ng-miam-price", 28);
56
- i0.ɵɵpipe(7, "currency");
57
- i0.ɵɵelementStart(8, "span");
58
- i0.ɵɵi18n(9, 29);
57
+ i0.ɵɵelement(7, "ng-miam-price", 30);
58
+ i0.ɵɵpipe(8, "currency");
59
+ i0.ɵɵelementStart(9, "span", 12);
60
+ i0.ɵɵi18n(10, 31);
59
61
  i0.ɵɵelementEnd();
60
62
  i0.ɵɵelementEnd();
61
63
  i0.ɵɵelementContainerEnd();
62
64
  } if (rf & 2) {
63
65
  const ctx_r6 = i0.ɵɵnextContext(2);
64
66
  i0.ɵɵadvance(1);
65
- i0.ɵɵproperty("price", i0.ɵɵpipeBind2(2, 2, ctx_r6.line.price, ctx_r6.currencyService.code));
66
- i0.ɵɵadvance(5);
67
- i0.ɵɵproperty("price", i0.ɵɵpipeBind2(7, 5, +ctx_r6.line.price / +ctx_r6.line.count, ctx_r6.currencyService.code));
67
+ i0.ɵɵproperty("price", i0.ɵɵpipeBind2(2, 3, ctx_r6.line.price, ctx_r6.currencyService.code));
68
+ i0.ɵɵadvance(2);
69
+ i0.ɵɵattribute("aria-label", "soit " + i0.ɵɵpipeBind2(4, 6, +ctx_r6.line.price / +ctx_r6.line.count, ctx_r6.currencyService.code) + " par personne");
70
+ i0.ɵɵadvance(4);
71
+ i0.ɵɵproperty("price", i0.ɵɵpipeBind2(8, 9, +ctx_r6.line.price / +ctx_r6.line.count, ctx_r6.currencyService.code));
68
72
  } }
69
73
  function BasketPreviewLineComponent_ng_container_0_ng_miam_guests_dropdown_19_Template(rf, ctx) { if (rf & 1) {
70
74
  const _r12 = i0.ɵɵgetCurrentView();
71
- i0.ɵɵelementStart(0, "ng-miam-guests-dropdown", 30);
75
+ i0.ɵɵelementStart(0, "ng-miam-guests-dropdown", 32);
72
76
  i0.ɵɵlistener("optionSelected", function BasketPreviewLineComponent_ng_container_0_ng_miam_guests_dropdown_19_Template_ng_miam_guests_dropdown_optionSelected_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(2); return ctx_r11.changeCount($event); });
73
77
  i0.ɵɵelementEnd();
74
78
  } if (rf & 2) {
@@ -76,10 +80,10 @@ function BasketPreviewLineComponent_ng_container_0_ng_miam_guests_dropdown_19_Te
76
80
  i0.ɵɵproperty("selectedOption", ctx_r7.line.count)("options", ctx_r7.guestsOptions);
77
81
  } }
78
82
  function BasketPreviewLineComponent_ng_container_0_img_21_Template(rf, ctx) { if (rf & 1) {
79
- i0.ɵɵelement(0, "img", 31);
83
+ i0.ɵɵelement(0, "img", 33);
80
84
  } }
81
85
  function BasketPreviewLineComponent_ng_container_0_ng_template_22_Template(rf, ctx) { if (rf & 1) {
82
- i0.ɵɵelement(0, "div", 32);
86
+ i0.ɵɵelement(0, "div", 34);
83
87
  } }
84
88
  const _c10 = function (a0) { return { "miam-basket-preview-line__left__big": a0 }; };
85
89
  const _c11 = function (a0) { return { "disabled": a0 }; };
@@ -93,7 +97,7 @@ function BasketPreviewLineComponent_ng_container_0_Template(rf, ctx) { if (rf &
93
97
  i0.ɵɵlistener("click", function BasketPreviewLineComponent_ng_container_0_Template_img_click_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return ctx_r13.toggleRecipeDisplay($event); })("error", function BasketPreviewLineComponent_ng_container_0_Template_img_error_4_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r15 = i0.ɵɵnextContext(); return ($event.target["src"] = ctx_r15.line.isRecipe ? ctx_r15.contextService.defaultRecipePicture : ctx_r15.contextService.defaultIngredientPicture); });
94
98
  i0.ɵɵelementEnd();
95
99
  i0.ɵɵelementEnd();
96
- i0.ɵɵtemplate(5, BasketPreviewLineComponent_ng_container_0_div_5_Template, 4, 1, "div", 6);
100
+ i0.ɵɵtemplate(5, BasketPreviewLineComponent_ng_container_0_div_5_Template, 4, 2, "div", 6);
97
101
  i0.ɵɵelementEnd();
98
102
  i0.ɵɵelementStart(6, "div", 7);
99
103
  i0.ɵɵelementStart(7, "div", 8);
@@ -106,27 +110,27 @@ function BasketPreviewLineComponent_ng_container_0_Template(rf, ctx) { if (rf &
106
110
  i0.ɵɵelementEnd();
107
111
  i0.ɵɵelementEnd();
108
112
  i0.ɵɵelementStart(13, "div", 11);
109
- i0.ɵɵelementStart(14, "span");
113
+ i0.ɵɵelementStart(14, "span", 12);
110
114
  i0.ɵɵtext(15);
111
115
  i0.ɵɵelementEnd();
112
- i0.ɵɵtemplate(16, BasketPreviewLineComponent_ng_container_0_span_16_Template, 2, 0, "span", 12);
113
- i0.ɵɵtemplate(17, BasketPreviewLineComponent_ng_container_0_span_17_Template, 2, 0, "span", 12);
116
+ i0.ɵɵtemplate(16, BasketPreviewLineComponent_ng_container_0_span_16_Template, 2, 0, "span", 13);
117
+ i0.ɵɵtemplate(17, BasketPreviewLineComponent_ng_container_0_span_17_Template, 2, 0, "span", 13);
114
118
  i0.ɵɵelementEnd();
115
- i0.ɵɵtemplate(18, BasketPreviewLineComponent_ng_container_0_ng_container_18_Template, 10, 8, "ng-container", 12);
116
- i0.ɵɵtemplate(19, BasketPreviewLineComponent_ng_container_0_ng_miam_guests_dropdown_19_Template, 1, 2, "ng-miam-guests-dropdown", 13);
119
+ i0.ɵɵtemplate(18, BasketPreviewLineComponent_ng_container_0_ng_container_18_Template, 11, 12, "ng-container", 14);
120
+ i0.ɵɵtemplate(19, BasketPreviewLineComponent_ng_container_0_ng_miam_guests_dropdown_19_Template, 1, 2, "ng-miam-guests-dropdown", 15);
117
121
  i0.ɵɵelementEnd();
118
- i0.ɵɵelementStart(20, "button", 14);
122
+ i0.ɵɵelementStart(20, "button", 16);
119
123
  i0.ɵɵlistener("click", function BasketPreviewLineComponent_ng_container_0_Template_button_click_20_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r17 = i0.ɵɵnextContext(); return !ctx_r17.removing && ctx_r17.removeLine($event); });
120
- i0.ɵɵtemplate(21, BasketPreviewLineComponent_ng_container_0_img_21_Template, 1, 0, "img", 15);
121
- i0.ɵɵtemplate(22, BasketPreviewLineComponent_ng_container_0_ng_template_22_Template, 1, 0, "ng-template", null, 16, i0.ɵɵtemplateRefExtractor);
124
+ i0.ɵɵtemplate(21, BasketPreviewLineComponent_ng_container_0_img_21_Template, 1, 0, "img", 17);
125
+ i0.ɵɵtemplate(22, BasketPreviewLineComponent_ng_container_0_ng_template_22_Template, 1, 0, "ng-template", null, 18, i0.ɵɵtemplateRefExtractor);
122
126
  i0.ɵɵelementEnd();
123
127
  i0.ɵɵelementEnd();
124
- i0.ɵɵelementStart(24, "button", 17);
128
+ i0.ɵɵelementStart(24, "button", 19);
125
129
  i0.ɵɵlistener("click", function BasketPreviewLineComponent_ng_container_0_Template_button_click_24_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r18 = i0.ɵɵnextContext(); return ctx_r18.toggleRecipeDisplay($event); });
126
130
  i0.ɵɵelementStart(25, "span");
127
- i0.ɵɵi18n(26, 18);
131
+ i0.ɵɵi18n(26, 20);
128
132
  i0.ɵɵelementEnd();
129
- i0.ɵɵelement(27, "img", 19);
133
+ i0.ɵɵelement(27, "img", 21);
130
134
  i0.ɵɵelementEnd();
131
135
  i0.ɵɵelementEnd();
132
136
  i0.ɵɵelementEnd();
@@ -137,14 +141,16 @@ function BasketPreviewLineComponent_ng_container_0_Template(rf, ctx) { if (rf &
137
141
  i0.ɵɵadvance(1);
138
142
  i0.ɵɵpropertyInterpolate("id", ctx_r0.line.id);
139
143
  i0.ɵɵadvance(1);
140
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(16, _c10, ctx_r0.contextService.guestsInputOnMyMeals));
144
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(17, _c10, ctx_r0.contextService.guestsInputOnMyMeals));
141
145
  i0.ɵɵadvance(2);
142
- i0.ɵɵproperty("alt", (ctx_r0.line.isRecipe ? "recipe" : "product") + " picture")("src", ctx_r0.line.picture, i0.ɵɵsanitizeUrl);
146
+ i0.ɵɵproperty("alt", ctx_r0.line.title || (ctx_r0.line.isRecipe ? "Image de recette" : "Image de produit"))("src", ctx_r0.line.picture, i0.ɵɵsanitizeUrl);
143
147
  i0.ɵɵadvance(1);
144
148
  i0.ɵɵproperty("ngIf", !ctx_r0.contextService.guestsInputOnMyMeals);
145
149
  i0.ɵɵadvance(6);
146
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 14, ctx_r0.line.title));
147
- i0.ɵɵadvance(4);
150
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 15, ctx_r0.line.title));
151
+ i0.ɵɵadvance(2);
152
+ i0.ɵɵattribute("aria-label", ctx_r0.countProducts + " " + (ctx_r0.countProducts <= 1 ? "produit" : "produits"));
153
+ i0.ɵɵadvance(2);
148
154
  i0.ɵɵtextInterpolate(ctx_r0.countProducts);
149
155
  i0.ɵɵadvance(1);
150
156
  i0.ɵɵproperty("ngIf", ctx_r0.countProducts <= 1);
@@ -155,26 +161,26 @@ function BasketPreviewLineComponent_ng_container_0_Template(rf, ctx) { if (rf &
155
161
  i0.ɵɵadvance(1);
156
162
  i0.ɵɵproperty("ngIf", ctx_r0.contextService.guestsInputOnMyMeals);
157
163
  i0.ɵɵadvance(1);
158
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(18, _c11, ctx_r0.disableRemove));
164
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(19, _c11, ctx_r0.disableRemove));
159
165
  i0.ɵɵadvance(1);
160
166
  i0.ɵɵproperty("ngIf", !ctx_r0.removing)("ngIfElse", _r9);
161
167
  } }
162
168
  function BasketPreviewLineComponent_ng_template_1_button_3_ng_miam_icon_1_Template(rf, ctx) { if (rf & 1) {
163
- i0.ɵɵelement(0, "ng-miam-icon", 58);
169
+ i0.ɵɵelement(0, "ng-miam-icon", 60);
164
170
  } if (rf & 2) {
165
171
  const ctx_r34 = i0.ɵɵnextContext(3);
166
172
  i0.ɵɵproperty("iconName", ctx_r34.icon.Trash_greyTextDark)("height", 16)("width", 16);
167
173
  } }
168
174
  function BasketPreviewLineComponent_ng_template_1_button_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {
169
- i0.ɵɵelement(0, "div", 32);
175
+ i0.ɵɵelement(0, "div", 34);
170
176
  } }
171
177
  const _c12 = function (a0, a1) { return { "disabled": a0, "loading": a1 }; };
172
178
  function BasketPreviewLineComponent_ng_template_1_button_3_Template(rf, ctx) { if (rf & 1) {
173
179
  const _r38 = i0.ɵɵgetCurrentView();
174
- i0.ɵɵelementStart(0, "button", 56);
180
+ i0.ɵɵelementStart(0, "button", 58);
175
181
  i0.ɵɵlistener("click", function BasketPreviewLineComponent_ng_template_1_button_3_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r38); const ctx_r37 = i0.ɵɵnextContext(2); return ctx_r37.removeLine($event); });
176
- i0.ɵɵtemplate(1, BasketPreviewLineComponent_ng_template_1_button_3_ng_miam_icon_1_Template, 1, 3, "ng-miam-icon", 57);
177
- i0.ɵɵtemplate(2, BasketPreviewLineComponent_ng_template_1_button_3_ng_template_2_Template, 1, 0, "ng-template", null, 16, i0.ɵɵtemplateRefExtractor);
182
+ i0.ɵɵtemplate(1, BasketPreviewLineComponent_ng_template_1_button_3_ng_miam_icon_1_Template, 1, 3, "ng-miam-icon", 59);
183
+ i0.ɵɵtemplate(2, BasketPreviewLineComponent_ng_template_1_button_3_ng_template_2_Template, 1, 0, "ng-template", null, 18, i0.ɵɵtemplateRefExtractor);
178
184
  i0.ɵɵelementEnd();
179
185
  } if (rf & 2) {
180
186
  const _r35 = i0.ɵɵreference(3);
@@ -184,9 +190,9 @@ function BasketPreviewLineComponent_ng_template_1_button_3_Template(rf, ctx) { i
184
190
  i0.ɵɵproperty("ngIf", !ctx_r19.removing)("ngIfElse", _r35);
185
191
  } }
186
192
  function BasketPreviewLineComponent_ng_template_1_div_7_Template(rf, ctx) { if (rf & 1) {
187
- i0.ɵɵelementStart(0, "div", 59);
193
+ i0.ɵɵelementStart(0, "div", 61);
188
194
  i0.ɵɵelementStart(1, "span");
189
- i0.ɵɵi18n(2, 60);
195
+ i0.ɵɵi18n(2, 62);
190
196
  i0.ɵɵelementEnd();
191
197
  i0.ɵɵelementEnd();
192
198
  } }
@@ -200,7 +206,7 @@ function BasketPreviewLineComponent_ng_template_1_div_13_Template(rf, ctx) { if
200
206
  i0.ɵɵtextInterpolate(ctx_r21.line.description[0]);
201
207
  } }
202
208
  function BasketPreviewLineComponent_ng_template_1_div_14_span_1_Template(rf, ctx) { if (rf & 1) {
203
- i0.ɵɵelementStart(0, "span", 63);
209
+ i0.ɵɵelementStart(0, "span", 65);
204
210
  i0.ɵɵtext(1);
205
211
  i0.ɵɵelementEnd();
206
212
  } if (rf & 2) {
@@ -210,7 +216,7 @@ function BasketPreviewLineComponent_ng_template_1_div_14_span_1_Template(rf, ctx
210
216
  } }
211
217
  function BasketPreviewLineComponent_ng_template_1_div_14_Template(rf, ctx) { if (rf & 1) {
212
218
  i0.ɵɵelementStart(0, "div");
213
- i0.ɵɵtemplate(1, BasketPreviewLineComponent_ng_template_1_div_14_span_1_Template, 2, 1, "span", 61);
219
+ i0.ɵɵtemplate(1, BasketPreviewLineComponent_ng_template_1_div_14_span_1_Template, 2, 1, "span", 63);
214
220
  i0.ɵɵelementStart(2, "span");
215
221
  i0.ɵɵtext(3);
216
222
  i0.ɵɵelementEnd();
@@ -218,7 +224,7 @@ function BasketPreviewLineComponent_ng_template_1_div_14_Template(rf, ctx) { if
218
224
  i0.ɵɵtext(5, " /");
219
225
  i0.ɵɵelementEnd();
220
226
  i0.ɵɵelementStart(6, "span");
221
- i0.ɵɵi18n(7, 62);
227
+ i0.ɵɵi18n(7, 64);
222
228
  i0.ɵɵelementEnd();
223
229
  i0.ɵɵelementEnd();
224
230
  } if (rf & 2) {
@@ -230,19 +236,19 @@ function BasketPreviewLineComponent_ng_template_1_div_14_Template(rf, ctx) { if
230
236
  } }
231
237
  function BasketPreviewLineComponent_ng_template_1_div_16_span_1_Template(rf, ctx) { if (rf & 1) {
232
238
  i0.ɵɵelementStart(0, "span");
233
- i0.ɵɵi18n(1, 65);
239
+ i0.ɵɵi18n(1, 67);
234
240
  i0.ɵɵelementEnd();
235
241
  } }
236
242
  function BasketPreviewLineComponent_ng_template_1_div_16_span_2_Template(rf, ctx) { if (rf & 1) {
237
243
  i0.ɵɵelementStart(0, "span");
238
- i0.ɵɵi18n(1, 66);
244
+ i0.ɵɵi18n(1, 68);
239
245
  i0.ɵɵelementEnd();
240
246
  } }
241
247
  const _c21 = function (a0) { return { "expanded": a0 }; };
242
248
  function BasketPreviewLineComponent_ng_template_1_div_16_Template(rf, ctx) { if (rf & 1) {
243
- i0.ɵɵelementStart(0, "div", 64);
244
- i0.ɵɵtemplate(1, BasketPreviewLineComponent_ng_template_1_div_16_span_1_Template, 2, 0, "span", 12);
245
- i0.ɵɵtemplate(2, BasketPreviewLineComponent_ng_template_1_div_16_span_2_Template, 2, 0, "span", 12);
249
+ i0.ɵɵelementStart(0, "div", 66);
250
+ i0.ɵɵtemplate(1, BasketPreviewLineComponent_ng_template_1_div_16_span_1_Template, 2, 0, "span", 14);
251
+ i0.ɵɵtemplate(2, BasketPreviewLineComponent_ng_template_1_div_16_span_2_Template, 2, 0, "span", 14);
246
252
  i0.ɵɵelementEnd();
247
253
  } if (rf & 2) {
248
254
  const ctx_r23 = i0.ɵɵnextContext(2);
@@ -253,17 +259,17 @@ function BasketPreviewLineComponent_ng_template_1_div_16_Template(rf, ctx) { if
253
259
  i0.ɵɵproperty("ngIf", !ctx_r23.expanded);
254
260
  } }
255
261
  function BasketPreviewLineComponent_ng_template_1_div_17_Template(rf, ctx) { if (rf & 1) {
256
- i0.ɵɵelementStart(0, "div", 67);
257
- i0.ɵɵi18n(1, 68);
262
+ i0.ɵɵelementStart(0, "div", 69);
263
+ i0.ɵɵi18n(1, 70);
258
264
  i0.ɵɵelementEnd();
259
265
  } }
260
266
  const _c26 = function (a0) { return { "disable": a0 }; };
261
267
  function BasketPreviewLineComponent_ng_template_1_div_18_Template(rf, ctx) { if (rf & 1) {
262
268
  const _r44 = i0.ɵɵgetCurrentView();
263
- i0.ɵɵelementStart(0, "div", 69);
269
+ i0.ɵɵelementStart(0, "div", 71);
264
270
  i0.ɵɵlistener("click", function BasketPreviewLineComponent_ng_template_1_div_18_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r44); const ctx_r43 = i0.ɵɵnextContext(2); return ctx_r43.changeProduct(ctx_r43.line); });
265
- i0.ɵɵelementStart(1, "a", 70);
266
- i0.ɵɵi18n(2, 71);
271
+ i0.ɵɵelementStart(1, "a", 72);
272
+ i0.ɵɵi18n(2, 73);
267
273
  i0.ɵɵelementEnd();
268
274
  i0.ɵɵelementEnd();
269
275
  } if (rf & 2) {
@@ -281,9 +287,9 @@ function BasketPreviewLineComponent_ng_template_1_div_19_span_2_Template(rf, ctx
281
287
  i0.ɵɵtextInterpolate(word_r46);
282
288
  } }
283
289
  function BasketPreviewLineComponent_ng_template_1_div_19_Template(rf, ctx) { if (rf & 1) {
284
- i0.ɵɵelementStart(0, "div", 72);
285
- i0.ɵɵelementStart(1, "div", 73);
286
- i0.ɵɵtemplate(2, BasketPreviewLineComponent_ng_template_1_div_19_span_2_Template, 2, 1, "span", 74);
290
+ i0.ɵɵelementStart(0, "div", 74);
291
+ i0.ɵɵelementStart(1, "div", 75);
292
+ i0.ɵɵtemplate(2, BasketPreviewLineComponent_ng_template_1_div_19_span_2_Template, 2, 1, "span", 76);
287
293
  i0.ɵɵelementEnd();
288
294
  i0.ɵɵelementEnd();
289
295
  } if (rf & 2) {
@@ -292,7 +298,7 @@ function BasketPreviewLineComponent_ng_template_1_div_19_Template(rf, ctx) { if
292
298
  i0.ɵɵproperty("ngForOf", ctx_r26.line.inlineTag.split(" "));
293
299
  } }
294
300
  function BasketPreviewLineComponent_ng_template_1_div_21_Template(rf, ctx) { if (rf & 1) {
295
- i0.ɵɵelementStart(0, "div", 75);
301
+ i0.ɵɵelementStart(0, "div", 77);
296
302
  i0.ɵɵelementStart(1, "span");
297
303
  i0.ɵɵtext(2);
298
304
  i0.ɵɵelementEnd();
@@ -313,30 +319,30 @@ function BasketPreviewLineComponent_ng_template_1_div_21_Template(rf, ctx) { if
313
319
  i0.ɵɵtextInterpolate1(" ", ctx_r27.currencyService.symbol, "");
314
320
  } }
315
321
  function BasketPreviewLineComponent_ng_template_1_ng_template_22_Template(rf, ctx) { if (rf & 1) {
316
- i0.ɵɵelement(0, "ng-miam-recipe-pricing", 76);
322
+ i0.ɵɵelement(0, "ng-miam-recipe-pricing", 78);
317
323
  } if (rf & 2) {
318
324
  const ctx_r29 = i0.ɵɵnextContext(2);
319
325
  i0.ɵɵproperty("recipeId", ctx_r29.line.id)("serves", ctx_r29.line.count);
320
326
  } }
321
327
  function BasketPreviewLineComponent_ng_template_1_div_25_Template(rf, ctx) { if (rf & 1) {
322
- i0.ɵɵelementStart(0, "div", 77);
323
- i0.ɵɵi18n(1, 78);
328
+ i0.ɵɵelementStart(0, "div", 79);
329
+ i0.ɵɵi18n(1, 80);
324
330
  i0.ɵɵelementEnd();
325
331
  } }
326
332
  function BasketPreviewLineComponent_ng_template_1_div_27_span_1_Template(rf, ctx) { if (rf & 1) {
327
- i0.ɵɵelementStart(0, "span");
328
- i0.ɵɵi18n(1, 80);
333
+ i0.ɵɵelementStart(0, "span", 12);
334
+ i0.ɵɵi18n(1, 82);
329
335
  i0.ɵɵelementEnd();
330
336
  } }
331
337
  function BasketPreviewLineComponent_ng_template_1_div_27_span_2_Template(rf, ctx) { if (rf & 1) {
332
- i0.ɵɵelementStart(0, "span");
333
- i0.ɵɵi18n(1, 81);
338
+ i0.ɵɵelementStart(0, "span", 12);
339
+ i0.ɵɵi18n(1, 83);
334
340
  i0.ɵɵelementEnd();
335
341
  } }
336
342
  function BasketPreviewLineComponent_ng_template_1_div_27_Template(rf, ctx) { if (rf & 1) {
337
- i0.ɵɵelementStart(0, "div", 79);
338
- i0.ɵɵtemplate(1, BasketPreviewLineComponent_ng_template_1_div_27_span_1_Template, 2, 0, "span", 12);
339
- i0.ɵɵtemplate(2, BasketPreviewLineComponent_ng_template_1_div_27_span_2_Template, 2, 0, "span", 12);
343
+ i0.ɵɵelementStart(0, "div", 81);
344
+ i0.ɵɵtemplate(1, BasketPreviewLineComponent_ng_template_1_div_27_span_1_Template, 2, 0, "span", 13);
345
+ i0.ɵɵtemplate(2, BasketPreviewLineComponent_ng_template_1_div_27_span_2_Template, 2, 0, "span", 13);
340
346
  i0.ɵɵelementEnd();
341
347
  } if (rf & 2) {
342
348
  const ctx_r31 = i0.ɵɵnextContext(2);
@@ -347,10 +353,10 @@ function BasketPreviewLineComponent_ng_template_1_div_27_Template(rf, ctx) { if
347
353
  } }
348
354
  function BasketPreviewLineComponent_ng_template_1_div_28_Template(rf, ctx) { if (rf & 1) {
349
355
  const _r50 = i0.ɵɵgetCurrentView();
350
- i0.ɵɵelementStart(0, "div", 82);
351
- i0.ɵɵelementStart(1, "button", 83);
356
+ i0.ɵɵelementStart(0, "div", 84);
357
+ i0.ɵɵelementStart(1, "button", 85);
352
358
  i0.ɵɵlistener("click", function BasketPreviewLineComponent_ng_template_1_div_28_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r50); const ctx_r49 = i0.ɵɵnextContext(2); return ctx_r49.toggleRecipeDisplay($event, true); });
353
- i0.ɵɵelement(2, "ng-miam-icon", 84);
359
+ i0.ɵɵelement(2, "ng-miam-icon", 86);
354
360
  i0.ɵɵelementEnd();
355
361
  i0.ɵɵelementEnd();
356
362
  } if (rf & 2) {
@@ -360,7 +366,7 @@ function BasketPreviewLineComponent_ng_template_1_div_28_Template(rf, ctx) { if
360
366
  } }
361
367
  function BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_line_1_Template(rf, ctx) { if (rf & 1) {
362
368
  const _r60 = i0.ɵɵgetCurrentView();
363
- i0.ɵɵelementStart(0, "ng-miam-basket-preview-line", 91);
369
+ i0.ɵɵelementStart(0, "ng-miam-basket-preview-line", 93);
364
370
  i0.ɵɵlistener("removed", function BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_line_1_Template_ng_miam_basket_preview_line_removed_0_listener($event) { i0.ɵɵrestoreView(_r60); const ctx_r59 = i0.ɵɵnextContext(4); return ctx_r59.deleteEntry($event); })("replaceItem", function BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_line_1_Template_ng_miam_basket_preview_line_replaceItem_0_listener() { i0.ɵɵrestoreView(_r60); const ctx_r61 = i0.ɵɵnextContext(4); return ctx_r61.replaceItem.emit(ctx_r61.line); });
365
371
  i0.ɵɵelementEnd();
366
372
  } if (rf & 2) {
@@ -369,14 +375,14 @@ function BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_pr
369
375
  i0.ɵɵproperty("line", entryLine_r58)("sponsorised", ctx_r54.isEntrySponsorised[entryLine_r58.id])("displayItemsUnitaryPrice", ctx_r54.displayItemsUnitaryPrice)("originTrace", ctx_r54.eventTrace)("blockStates", ctx_r54.blockStates)("legacyMode", ctx_r54.legacyMode);
370
376
  } }
371
377
  function BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_disabled_3_Template(rf, ctx) { if (rf & 1) {
372
- i0.ɵɵelement(0, "ng-miam-basket-preview-disabled", 92);
378
+ i0.ɵɵelement(0, "ng-miam-basket-preview-disabled", 94);
373
379
  } if (rf & 2) {
374
380
  const ctx_r55 = i0.ɵɵnextContext(4);
375
381
  i0.ɵɵproperty("entries", ctx_r55.line.entries.notFound)("alwaysExpanded", ctx_r55.itemsAlwaysExpanded);
376
382
  } }
377
383
  function BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_disabled_4_Template(rf, ctx) { if (rf & 1) {
378
384
  const _r63 = i0.ɵɵgetCurrentView();
379
- i0.ɵɵelementStart(0, "ng-miam-basket-preview-disabled", 93);
385
+ i0.ɵɵelementStart(0, "ng-miam-basket-preview-disabled", 95);
380
386
  i0.ɵɵlistener("entryAdded", function BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_disabled_4_Template_ng_miam_basket_preview_disabled_entryAdded_0_listener($event) { i0.ɵɵrestoreView(_r63); const ctx_r62 = i0.ɵɵnextContext(4); return ctx_r62.addEntry($event); });
381
387
  i0.ɵɵelementEnd();
382
388
  } if (rf & 2) {
@@ -385,7 +391,7 @@ function BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_pr
385
391
  } }
386
392
  function BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_disabled_5_Template(rf, ctx) { if (rf & 1) {
387
393
  const _r65 = i0.ɵɵgetCurrentView();
388
- i0.ɵɵelementStart(0, "ng-miam-basket-preview-disabled", 94);
394
+ i0.ɵɵelementStart(0, "ng-miam-basket-preview-disabled", 96);
389
395
  i0.ɵɵlistener("entryAdded", function BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_disabled_5_Template_ng_miam_basket_preview_disabled_entryAdded_0_listener($event) { i0.ɵɵrestoreView(_r65); const ctx_r64 = i0.ɵɵnextContext(4); return ctx_r64.addEntry($event); });
390
396
  i0.ɵɵelementEnd();
391
397
  } if (rf & 2) {
@@ -394,11 +400,11 @@ function BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_pr
394
400
  } }
395
401
  function BasketPreviewLineComponent_ng_template_1_div_29_div_1_Template(rf, ctx) { if (rf & 1) {
396
402
  i0.ɵɵelementStart(0, "div");
397
- i0.ɵɵtemplate(1, BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_line_1_Template, 1, 6, "ng-miam-basket-preview-line", 87);
403
+ i0.ɵɵtemplate(1, BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_line_1_Template, 1, 6, "ng-miam-basket-preview-line", 89);
398
404
  i0.ɵɵpipe(2, "async");
399
- i0.ɵɵtemplate(3, BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_disabled_3_Template, 1, 2, "ng-miam-basket-preview-disabled", 88);
400
- i0.ɵɵtemplate(4, BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_disabled_4_Template, 1, 2, "ng-miam-basket-preview-disabled", 89);
401
- i0.ɵɵtemplate(5, BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_disabled_5_Template, 1, 3, "ng-miam-basket-preview-disabled", 90);
405
+ i0.ɵɵtemplate(3, BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_disabled_3_Template, 1, 2, "ng-miam-basket-preview-disabled", 90);
406
+ i0.ɵɵtemplate(4, BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_disabled_4_Template, 1, 2, "ng-miam-basket-preview-disabled", 91);
407
+ i0.ɵɵtemplate(5, BasketPreviewLineComponent_ng_template_1_div_29_div_1_ng_miam_basket_preview_disabled_5_Template, 1, 3, "ng-miam-basket-preview-disabled", 92);
402
408
  i0.ɵɵelementEnd();
403
409
  } if (rf & 2) {
404
410
  const ctx_r51 = i0.ɵɵnextContext(3);
@@ -412,17 +418,17 @@ function BasketPreviewLineComponent_ng_template_1_div_29_div_1_Template(rf, ctx)
412
418
  i0.ɵɵproperty("ngIf", ctx_r51.line.entries.removed.length > 0);
413
419
  } }
414
420
  function BasketPreviewLineComponent_ng_template_1_div_29_ng_template_2_Template(rf, ctx) { if (rf & 1) {
415
- i0.ɵɵelementStart(0, "div", 95);
421
+ i0.ɵɵelementStart(0, "div", 97);
416
422
  i0.ɵɵelement(1, "ng-miam-loader");
417
423
  i0.ɵɵelementStart(2, "div");
418
- i0.ɵɵi18n(3, 96);
424
+ i0.ɵɵi18n(3, 98);
419
425
  i0.ɵɵelementEnd();
420
426
  i0.ɵɵelementEnd();
421
427
  } }
422
428
  function BasketPreviewLineComponent_ng_template_1_div_29_Template(rf, ctx) { if (rf & 1) {
423
- i0.ɵɵelementStart(0, "div", 85);
429
+ i0.ɵɵelementStart(0, "div", 87);
424
430
  i0.ɵɵtemplate(1, BasketPreviewLineComponent_ng_template_1_div_29_div_1_Template, 6, 6, "div", 0);
425
- i0.ɵɵtemplate(2, BasketPreviewLineComponent_ng_template_1_div_29_ng_template_2_Template, 4, 0, "ng-template", null, 86, i0.ɵɵtemplateRefExtractor);
431
+ i0.ɵɵtemplate(2, BasketPreviewLineComponent_ng_template_1_div_29_ng_template_2_Template, 4, 0, "ng-template", null, 88, i0.ɵɵtemplateRefExtractor);
426
432
  i0.ɵɵelementEnd();
427
433
  } if (rf & 2) {
428
434
  const _r52 = i0.ɵɵreference(3);
@@ -434,67 +440,67 @@ const _c35 = function (a0, a1, a2) { return { clickable: a0, expanded: a1, eleva
434
440
  const _c36 = function (a0) { return { "with-inline-tag": a0 }; };
435
441
  function BasketPreviewLineComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
436
442
  const _r67 = i0.ɵɵgetCurrentView();
437
- i0.ɵɵelementStart(0, "div", 33);
443
+ i0.ɵɵelementStart(0, "div", 35);
438
444
  i0.ɵɵlistener("click", function BasketPreviewLineComponent_ng_template_1_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r67); const ctx_r66 = i0.ɵɵnextContext(); return ctx_r66.line.displayMode ? ctx_r66.toggleRecipeDisplay($event) : ctx_r66.toggleExpanded($event); });
439
- i0.ɵɵelementStart(1, "div", 34);
440
- i0.ɵɵelementStart(2, "div", 35);
441
- i0.ɵɵtemplate(3, BasketPreviewLineComponent_ng_template_1_button_3_Template, 4, 6, "button", 36);
442
- i0.ɵɵelementStart(4, "div", 37);
445
+ i0.ɵɵelementStart(1, "div", 36);
446
+ i0.ɵɵelementStart(2, "div", 37);
447
+ i0.ɵɵtemplate(3, BasketPreviewLineComponent_ng_template_1_button_3_Template, 4, 6, "button", 38);
448
+ i0.ɵɵelementStart(4, "div", 39);
443
449
  i0.ɵɵelementStart(5, "img", 5);
444
450
  i0.ɵɵlistener("click", function BasketPreviewLineComponent_ng_template_1_Template_img_click_5_listener($event) { i0.ɵɵrestoreView(_r67); const ctx_r68 = i0.ɵɵnextContext(); return ctx_r68.toggleRecipeDisplay($event); })("error", function BasketPreviewLineComponent_ng_template_1_Template_img_error_5_listener($event) { i0.ɵɵrestoreView(_r67); const ctx_r69 = i0.ɵɵnextContext(); return ($event.target["src"] = ctx_r69.line.isRecipe ? ctx_r69.contextService.defaultRecipePicture : ctx_r69.contextService.defaultIngredientPicture); });
445
451
  i0.ɵɵelementEnd();
446
452
  i0.ɵɵelementEnd();
447
- i0.ɵɵelementStart(6, "div", 38);
448
- i0.ɵɵtemplate(7, BasketPreviewLineComponent_ng_template_1_div_7_Template, 3, 0, "div", 39);
449
- i0.ɵɵelementStart(8, "div", 40);
453
+ i0.ɵɵelementStart(6, "div", 40);
454
+ i0.ɵɵtemplate(7, BasketPreviewLineComponent_ng_template_1_div_7_Template, 3, 0, "div", 41);
455
+ i0.ɵɵelementStart(8, "div", 42);
450
456
  i0.ɵɵlistener("click", function BasketPreviewLineComponent_ng_template_1_Template_div_click_8_listener($event) { i0.ɵɵrestoreView(_r67); const ctx_r70 = i0.ɵɵnextContext(); return ctx_r70.toggleRecipeDisplay($event); });
451
457
  i0.ɵɵelementStart(9, "strong");
452
458
  i0.ɵɵtext(10);
453
459
  i0.ɵɵpipe(11, "capitalizeFirstLetter");
454
460
  i0.ɵɵelementEnd();
455
461
  i0.ɵɵelementEnd();
456
- i0.ɵɵelementStart(12, "div", 41);
457
- i0.ɵɵtemplate(13, BasketPreviewLineComponent_ng_template_1_div_13_Template, 2, 1, "div", 12);
458
- i0.ɵɵtemplate(14, BasketPreviewLineComponent_ng_template_1_div_14_Template, 8, 2, "div", 12);
462
+ i0.ɵɵelementStart(12, "div", 43);
463
+ i0.ɵɵtemplate(13, BasketPreviewLineComponent_ng_template_1_div_13_Template, 2, 1, "div", 14);
464
+ i0.ɵɵtemplate(14, BasketPreviewLineComponent_ng_template_1_div_14_Template, 8, 2, "div", 14);
459
465
  i0.ɵɵelementEnd();
460
- i0.ɵɵelementStart(15, "div", 42);
461
- i0.ɵɵtemplate(16, BasketPreviewLineComponent_ng_template_1_div_16_Template, 3, 5, "div", 43);
462
- i0.ɵɵtemplate(17, BasketPreviewLineComponent_ng_template_1_div_17_Template, 2, 0, "div", 44);
463
- i0.ɵɵtemplate(18, BasketPreviewLineComponent_ng_template_1_div_18_Template, 3, 3, "div", 45);
464
- i0.ɵɵtemplate(19, BasketPreviewLineComponent_ng_template_1_div_19_Template, 3, 1, "div", 46);
466
+ i0.ɵɵelementStart(15, "div", 44);
467
+ i0.ɵɵtemplate(16, BasketPreviewLineComponent_ng_template_1_div_16_Template, 3, 5, "div", 45);
468
+ i0.ɵɵtemplate(17, BasketPreviewLineComponent_ng_template_1_div_17_Template, 2, 0, "div", 46);
469
+ i0.ɵɵtemplate(18, BasketPreviewLineComponent_ng_template_1_div_18_Template, 3, 3, "div", 47);
470
+ i0.ɵɵtemplate(19, BasketPreviewLineComponent_ng_template_1_div_19_Template, 3, 1, "div", 48);
465
471
  i0.ɵɵelementEnd();
466
472
  i0.ɵɵelementEnd();
467
473
  i0.ɵɵelementEnd();
468
- i0.ɵɵelementStart(20, "div", 47);
469
- i0.ɵɵtemplate(21, BasketPreviewLineComponent_ng_template_1_div_21_Template, 7, 3, "div", 48);
470
- i0.ɵɵtemplate(22, BasketPreviewLineComponent_ng_template_1_ng_template_22_Template, 1, 2, "ng-template", null, 49, i0.ɵɵtemplateRefExtractor);
471
- i0.ɵɵelementStart(24, "div", 50);
472
- i0.ɵɵtemplate(25, BasketPreviewLineComponent_ng_template_1_div_25_Template, 2, 0, "div", 51);
473
- i0.ɵɵelementStart(26, "ng-miam-counter-input", 52);
474
+ i0.ɵɵelementStart(20, "div", 49);
475
+ i0.ɵɵtemplate(21, BasketPreviewLineComponent_ng_template_1_div_21_Template, 7, 3, "div", 50);
476
+ i0.ɵɵtemplate(22, BasketPreviewLineComponent_ng_template_1_ng_template_22_Template, 1, 2, "ng-template", null, 51, i0.ɵɵtemplateRefExtractor);
477
+ i0.ɵɵelementStart(24, "div", 52);
478
+ i0.ɵɵtemplate(25, BasketPreviewLineComponent_ng_template_1_div_25_Template, 2, 0, "div", 53);
479
+ i0.ɵɵelementStart(26, "ng-miam-counter-input", 54);
474
480
  i0.ɵɵlistener("valueChange", function BasketPreviewLineComponent_ng_template_1_Template_ng_miam_counter_input_valueChange_26_listener($event) { i0.ɵɵrestoreView(_r67); const ctx_r71 = i0.ɵɵnextContext(); return ctx_r71.changeCount($event); });
475
481
  i0.ɵɵelementEnd();
476
- i0.ɵɵtemplate(27, BasketPreviewLineComponent_ng_template_1_div_27_Template, 3, 2, "div", 53);
482
+ i0.ɵɵtemplate(27, BasketPreviewLineComponent_ng_template_1_div_27_Template, 3, 2, "div", 55);
477
483
  i0.ɵɵelementEnd();
478
- i0.ɵɵtemplate(28, BasketPreviewLineComponent_ng_template_1_div_28_Template, 3, 3, "div", 54);
484
+ i0.ɵɵtemplate(28, BasketPreviewLineComponent_ng_template_1_div_28_Template, 3, 3, "div", 56);
479
485
  i0.ɵɵelementEnd();
480
486
  i0.ɵɵelementEnd();
481
487
  i0.ɵɵelementEnd();
482
- i0.ɵɵtemplate(29, BasketPreviewLineComponent_ng_template_1_div_29_Template, 4, 2, "div", 55);
488
+ i0.ɵɵtemplate(29, BasketPreviewLineComponent_ng_template_1_div_29_Template, 4, 2, "div", 57);
483
489
  } if (rf & 2) {
484
490
  const _r28 = i0.ɵɵreference(23);
485
491
  const ctx_r2 = i0.ɵɵnextContext();
486
492
  i0.ɵɵpropertyInterpolate("id", ctx_r2.line.id);
487
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(26, _c35, ctx_r2.line.hasEntries() || ctx_r2.line.displayMode, ctx_r2.expanded, ctx_r2.selectItem));
493
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(27, _c35, ctx_r2.line.hasEntries() || ctx_r2.line.displayMode, ctx_r2.expanded, ctx_r2.selectItem));
488
494
  i0.ɵɵadvance(3);
489
495
  i0.ɵɵproperty("ngIf", !ctx_r2.uniqueLine && !ctx_r2.line.displayMode);
490
496
  i0.ɵɵadvance(2);
491
- i0.ɵɵproperty("alt", (ctx_r2.line.isRecipe ? "recipe" : "product") + " picture")("src", ctx_r2.line.picture, i0.ɵɵsanitizeUrl);
497
+ i0.ɵɵproperty("alt", ctx_r2.line.title || (ctx_r2.line.isRecipe ? "Image de recette" : "Image de produit"))("src", ctx_r2.line.picture, i0.ɵɵsanitizeUrl);
492
498
  i0.ɵɵadvance(1);
493
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(30, _c36, ctx_r2.line.inlineTag));
499
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(31, _c36, ctx_r2.line.inlineTag));
494
500
  i0.ɵɵadvance(1);
495
501
  i0.ɵɵproperty("ngIf", ctx_r2.sponsorised);
496
502
  i0.ɵɵadvance(3);
497
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 24, ctx_r2.line.title));
503
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 25, ctx_r2.line.title));
498
504
  i0.ɵɵadvance(3);
499
505
  i0.ɵɵproperty("ngIf", ctx_r2.line.description.length > 0);
500
506
  i0.ɵɵadvance(1);
@@ -509,7 +515,9 @@ function BasketPreviewLineComponent_ng_template_1_Template(rf, ctx) { if (rf & 1
509
515
  i0.ɵɵproperty("ngIf", ctx_r2.line.inlineTag);
510
516
  i0.ɵɵadvance(2);
511
517
  i0.ɵɵproperty("ngIf", ctx_r2.displayTotalPricing || !ctx_r2.line.isRecipe)("ngIfElse", _r28);
512
- i0.ɵɵadvance(4);
518
+ i0.ɵɵadvance(3);
519
+ i0.ɵɵattribute("aria-label", ctx_r2.line.isRecipe ? "pour " + ctx_r2.line.count + " " + (ctx_r2.line.count > 1 ? "personnes" : "personne") : "");
520
+ i0.ɵɵadvance(1);
513
521
  i0.ɵɵproperty("ngIf", ctx_r2.line.isRecipe);
514
522
  i0.ɵɵadvance(1);
515
523
  i0.ɵɵproperty("debounceTime", 300)("value", ctx_r2.line.count)("minRange", ctx_r2.line.isRecipe ? 1 : 0)("disable", ctx_r2.disableCounter);
@@ -928,13 +936,13 @@ BasketPreviewLineComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BasketPreviewL
928
936
  }
929
937
  else {
930
938
  i18n_33 = $localize `:␟1eacd4f46056d28691469ea02279e20c0642e699␟8327069019640670106:Calcul des ingrédients...`;
931
- } return [[4, "ngIf", "ngIfElse"], ["legacyView", ""], [1, "miam-basket-preview-line", 3, "id"], [1, "miam-basket-preview-line__left", 3, "ngClass"], [1, "miam-basket-preview-line__picture"], [3, "alt", "src", "click", "error"], ["class", "miam-basket-preview-line__counter", 4, "ngIf"], [1, "miam-basket-preview-line__right"], [1, "miam-basket-preview-line__top"], [1, "miam-basket-preview-line__infos"], [1, "miam-basket-preview-line__title", "miam-ds-text", "weight-xxl", "size-m", 3, "click"], [1, "miam-basket-preview-line__product-count", "miam-ds-text", "weight-l", "size-s"], [4, "ngIf"], [3, "selectedOption", "options", "optionSelected", 4, "ngIf"], [1, "miam-basket-preview-line__remove", "miam-ds-button", "ghost", 3, "ngClass", "click"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/trash.svg", "alt", "remove recipe", 4, "ngIf", "ngIfElse"], ["removeLoader", ""], [1, "miam-basket-preview-line__link", "miam-ds-button", "ghost", 3, "click"], i18n_0, ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/arrow-right.svg", "alt", "arrow right"], [1, "miam-basket-preview-line__counter"], [1, "miam-ds-text", "weight-xxl", "size-m"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/recipe-counter.svg", "alt", "people"], i18n_2, i18n_4, [1, "miam-basket-preview-line__price-label", "miam-ds-text", "weight-xxl", 3, "price"], [1, "miam-basket-preview-line__price-per-person-label", "miam-ds-text", "weight-l", "size-xs"], i18n_6, [3, "price"], i18n_8, [3, "selectedOption", "options", "optionSelected"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/trash.svg", "alt", "remove recipe"], [1, "miam-ds-loader"], [1, "miam-basket-preview-line", "legacy", 3, "id", "ngClass", "click"], [1, "miam-basket-preview-line__item"], [1, "miam-basket-preview-line__item__left"], ["class", "miam-ds-button ghost square miam-basket-preview-line__item__remove", 3, "ngClass", "click", 4, "ngIf"], [1, "miam-basket-preview-line__item__picture"], [1, "miam-basket-preview-line__item__details", 3, "ngClass"], ["class", "miam-basket-preview-line__item__sponsorised", 4, "ngIf"], [1, "miam-basket-preview-line__item__title", 3, "click"], [1, "miam-basket-preview-line__item__description"], [1, "miam-basket-preview-line__item__actions"], ["class", "miam-basket-preview-line__item__showDetails", 3, "ngClass", 4, "ngIf"], ["class", "miam-basket-preview-line__item__showDetails", 4, "ngIf"], ["class", "miam-basket-preview-line__item__change", 3, "click", 4, "ngIf"], ["class", "miam-basket-preview-line__item__inlineTag__container", 4, "ngIf"], [1, "miam-basket-preview-line__item__right"], ["class", "miam-basket-preview-line__item__price", 4, "ngIf", "ngIfElse"], ["pricePerguest", ""], [1, "miam-basket-preview-line__item__count"], ["class", "miam-basket-preview-line__item__count__for", 4, "ngIf"], [3, "debounceTime", "value", "minRange", "disable", "valueChange"], ["class", "miam-basket-preview-line__item__count__people", 4, "ngIf"], ["class", "miam-basket-preview-line__add__button", 4, "ngIf"], ["class", "miam-basket-preview-lines", 4, "ngIf"], [1, "miam-ds-button", "ghost", "square", "miam-basket-preview-line__item__remove", 3, "ngClass", "click"], [3, "iconName", "height", "width", 4, "ngIf", "ngIfElse"], [3, "iconName", "height", "width"], [1, "miam-basket-preview-line__item__sponsorised"], i18n_13, ["class", "miam-basket-preview-line__item__description__part", 4, "ngFor", "ngForOf"], i18n_15, [1, "miam-basket-preview-line__item__description__part"], [1, "miam-basket-preview-line__item__showDetails", 3, "ngClass"], i18n_17, i18n_19, [1, "miam-basket-preview-line__item__showDetails"], i18n_22, [1, "miam-basket-preview-line__item__change", 3, "click"], [1, "miam-basket-preview-line__item__change__link", 3, "ngClass"], i18n_24, [1, "miam-basket-preview-line__item__inlineTag__container"], [1, "miam-basket-preview-line__item__inlineTag"], [4, "ngFor", "ngForOf"], [1, "miam-basket-preview-line__item__price"], [3, "recipeId", "serves"], [1, "miam-basket-preview-line__item__count__for"], i18n_27, [1, "miam-basket-preview-line__item__count__people"], i18n_29, i18n_31, [1, "miam-basket-preview-line__add__button"], [1, "m-button-primary", 3, "click"], ["primaryColor", "#fff", 3, "width", "height", "iconName"], [1, "miam-basket-preview-lines"], ["loader", ""], [3, "line", "sponsorised", "displayItemsUnitaryPrice", "originTrace", "blockStates", "legacyMode", "removed", "replaceItem", 4, "ngFor", "ngForOf"], ["mode", "unavailable", 3, "entries", "alwaysExpanded", 4, "ngIf"], ["mode", "oftenDeleted", 3, "entries", "alwaysExpanded", "entryAdded", 4, "ngIf"], ["mode", "removed", 3, "entries", "alwaysExpanded", "reduced", "entryAdded", 4, "ngIf"], [3, "line", "sponsorised", "displayItemsUnitaryPrice", "originTrace", "blockStates", "legacyMode", "removed", "replaceItem"], ["mode", "unavailable", 3, "entries", "alwaysExpanded"], ["mode", "oftenDeleted", 3, "entries", "alwaysExpanded", "entryAdded"], ["mode", "removed", 3, "entries", "alwaysExpanded", "reduced", "entryAdded"], [1, "miam-basket-preview-line__loader-container"], i18n_33]; }, template: function BasketPreviewLineComponent_Template(rf, ctx) { if (rf & 1) {
932
- i0.ɵɵtemplate(0, BasketPreviewLineComponent_ng_container_0_Template, 28, 20, "ng-container", 0);
933
- i0.ɵɵtemplate(1, BasketPreviewLineComponent_ng_template_1_Template, 30, 32, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
939
+ } return [[4, "ngIf", "ngIfElse"], ["legacyView", ""], [1, "miam-basket-preview-line", 3, "id"], [1, "miam-basket-preview-line__left", 3, "ngClass"], [1, "miam-basket-preview-line__picture"], [3, "alt", "src", "click", "error"], ["class", "miam-basket-preview-line__counter", 4, "ngIf"], [1, "miam-basket-preview-line__right"], [1, "miam-basket-preview-line__top"], [1, "miam-basket-preview-line__infos"], [1, "miam-basket-preview-line__title", "miam-ds-text", "weight-xxl", "size-m", 3, "click"], [1, "miam-basket-preview-line__product-count", "miam-ds-text", "weight-l", "size-s"], ["aria-hidden", "true"], ["aria-hidden", "true", 4, "ngIf"], [4, "ngIf"], [3, "selectedOption", "options", "optionSelected", 4, "ngIf"], ["aria-label", "Supprimer", 1, "miam-basket-preview-line__remove", "miam-ds-button", "ghost", 3, "ngClass", "click"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/trash.svg", "alt", "", "aria-hidden", "true", 4, "ngIf", "ngIfElse"], ["removeLoader", ""], [1, "miam-basket-preview-line__link", "miam-ds-button", "ghost", 3, "click"], i18n_0, ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/arrow-right.svg", "alt", "", "aria-hidden", "true"], [1, "miam-basket-preview-line__counter"], ["aria-hidden", "true", 1, "miam-ds-text", "weight-xxl", "size-m"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/recipe-counter.svg", "alt", "", "aria-hidden", "true"], i18n_2, i18n_4, [1, "miam-basket-preview-line__price-label", "miam-ds-text", "weight-xxl", 3, "price"], [1, "miam-basket-preview-line__price-per-person-label", "miam-ds-text", "weight-l", "size-xs"], i18n_6, ["aria-hidden", "true", 3, "price"], i18n_8, [3, "selectedOption", "options", "optionSelected"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/trash.svg", "alt", "", "aria-hidden", "true"], [1, "miam-ds-loader"], [1, "miam-basket-preview-line", "legacy", 3, "id", "ngClass", "click"], [1, "miam-basket-preview-line__item"], [1, "miam-basket-preview-line__item__left"], ["class", "miam-ds-button ghost square miam-basket-preview-line__item__remove", "aria-label", "Supprimer", 3, "ngClass", "click", 4, "ngIf"], [1, "miam-basket-preview-line__item__picture"], [1, "miam-basket-preview-line__item__details", 3, "ngClass"], ["class", "miam-basket-preview-line__item__sponsorised", 4, "ngIf"], [1, "miam-basket-preview-line__item__title", 3, "click"], [1, "miam-basket-preview-line__item__description"], [1, "miam-basket-preview-line__item__actions"], ["class", "miam-basket-preview-line__item__showDetails", 3, "ngClass", 4, "ngIf"], ["class", "miam-basket-preview-line__item__showDetails", 4, "ngIf"], ["class", "miam-basket-preview-line__item__change", 3, "click", 4, "ngIf"], ["class", "miam-basket-preview-line__item__inlineTag__container", 4, "ngIf"], [1, "miam-basket-preview-line__item__right"], ["class", "miam-basket-preview-line__item__price", 4, "ngIf", "ngIfElse"], ["pricePerguest", ""], [1, "miam-basket-preview-line__item__count"], ["class", "miam-basket-preview-line__item__count__for", "aria-hidden", "true", 4, "ngIf"], [3, "debounceTime", "value", "minRange", "disable", "valueChange"], ["class", "miam-basket-preview-line__item__count__people", "aria-hidden", "true", 4, "ngIf"], ["class", "miam-basket-preview-line__add__button", 4, "ngIf"], ["class", "miam-basket-preview-lines", 4, "ngIf"], ["aria-label", "Supprimer", 1, "miam-ds-button", "ghost", "square", "miam-basket-preview-line__item__remove", 3, "ngClass", "click"], [3, "iconName", "height", "width", 4, "ngIf", "ngIfElse"], [3, "iconName", "height", "width"], [1, "miam-basket-preview-line__item__sponsorised"], i18n_13, ["class", "miam-basket-preview-line__item__description__part", 4, "ngFor", "ngForOf"], i18n_15, [1, "miam-basket-preview-line__item__description__part"], [1, "miam-basket-preview-line__item__showDetails", 3, "ngClass"], i18n_17, i18n_19, [1, "miam-basket-preview-line__item__showDetails"], i18n_22, [1, "miam-basket-preview-line__item__change", 3, "click"], [1, "miam-basket-preview-line__item__change__link", 3, "ngClass"], i18n_24, [1, "miam-basket-preview-line__item__inlineTag__container"], [1, "miam-basket-preview-line__item__inlineTag"], [4, "ngFor", "ngForOf"], [1, "miam-basket-preview-line__item__price"], [3, "recipeId", "serves"], ["aria-hidden", "true", 1, "miam-basket-preview-line__item__count__for"], i18n_27, ["aria-hidden", "true", 1, "miam-basket-preview-line__item__count__people"], i18n_29, i18n_31, [1, "miam-basket-preview-line__add__button"], ["aria-label", "Ajouter au panier", 1, "m-button-primary", 3, "click"], ["primaryColor", "#fff", 3, "width", "height", "iconName"], [1, "miam-basket-preview-lines"], ["loader", ""], [3, "line", "sponsorised", "displayItemsUnitaryPrice", "originTrace", "blockStates", "legacyMode", "removed", "replaceItem", 4, "ngFor", "ngForOf"], ["mode", "unavailable", 3, "entries", "alwaysExpanded", 4, "ngIf"], ["mode", "oftenDeleted", 3, "entries", "alwaysExpanded", "entryAdded", 4, "ngIf"], ["mode", "removed", 3, "entries", "alwaysExpanded", "reduced", "entryAdded", 4, "ngIf"], [3, "line", "sponsorised", "displayItemsUnitaryPrice", "originTrace", "blockStates", "legacyMode", "removed", "replaceItem"], ["mode", "unavailable", 3, "entries", "alwaysExpanded"], ["mode", "oftenDeleted", 3, "entries", "alwaysExpanded", "entryAdded"], ["mode", "removed", 3, "entries", "alwaysExpanded", "reduced", "entryAdded"], [1, "miam-basket-preview-line__loader-container"], i18n_33]; }, template: function BasketPreviewLineComponent_Template(rf, ctx) { if (rf & 1) {
940
+ i0.ɵɵtemplate(0, BasketPreviewLineComponent_ng_container_0_Template, 28, 21, "ng-container", 0);
941
+ i0.ɵɵtemplate(1, BasketPreviewLineComponent_ng_template_1_Template, 30, 33, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
934
942
  } if (rf & 2) {
935
943
  const _r1 = i0.ɵɵreference(2);
936
944
  i0.ɵɵproperty("ngIf", !ctx.legacyMode)("ngIfElse", _r1);
937
- } }, directives: [i3.NgIf, i3.NgClass, i4.PriceComponent, i5.GuestsDropdownComponent, i6.CounterInputComponent, i7.IconComponent, i3.NgForOf, i8.RecipePricingComponent, BasketPreviewLineComponent, i9.BasketPreviewDisabledComponent, i10.LoaderComponent], pipes: [i11.CapitalizeFirstLetterPipe, i3.CurrencyPipe, i3.AsyncPipe], styles: [".miam-basket-preview-line:not(.legacy){display:flex;padding:12px;align-items:flex-start;gap:16px;align-self:stretch;border-radius:12px;border:1px solid var(--miam-ds-color-border,#d6e1ec);background:var(--miam-ds-color-background-primary,#fff)}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left{position:relative;width:144px;height:144px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left__big{height:unset;min-height:144px;align-self:stretch}@media (max-width:360px){.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left{width:112px;height:112px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left__big{height:unset;min-height:112px;align-self:stretch}}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left .miam-basket-preview-line__picture{height:100%;width:100%;border-radius:12px;cursor:pointer}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left .miam-basket-preview-line__picture img{height:100%;width:100%;-o-object-fit:cover;object-fit:cover;border-radius:12px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left .miam-basket-preview-line__counter{position:absolute;right:8px;bottom:8px;display:flex;padding:4px 8px;align-items:center;gap:4px;border-radius:100px;background:var(--miam-ds-color-neutral-white,#fff);color:var(--miam-color-neutral-black);height:-moz-fit-content;height:fit-content}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left .miam-basket-preview-line__counter span{line-height:100%}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left .miam-basket-preview-line__counter img{width:16px;height:16px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:1 0 0;align-self:stretch}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top{display:flex;align-items:flex-start;gap:8px;flex:1 0 0;align-self:stretch}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0;gap:4px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos .miam-basket-preview-line__title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;align-self:stretch;overflow:hidden;color:var(--miam-ds-color-neutral-black,#02182b);text-overflow:ellipsis;cursor:pointer}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos .miam-basket-preview-line__product-count{display:flex;color:var(--text-subtle,rgba(31,53,67,.5));gap:4px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos .miam-basket-preview-line__price-label{line-height:0;color:var(--miam-ds-color-primary,#24748f)}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos .miam-basket-preview-line__price-per-person-label{color:var(--text-subtle,rgba(31,53,67,.5))}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__remove{flex-shrink:0}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__remove .miam-loader,.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__remove img{height:24px;width:24px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__link{padding:4px 16px;gap:8px}@media (max-width:375px){.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__link img{display:none}}:root{--price-color:var(--miam-price-color,green) ;--tag-color:var(--miam-tag-color,#fcecce)}.miam-basket-preview-line.legacy{overflow:hidden;padding-left:10px;-webkit-tap-highlight-color:transparent}.miam-basket-preview-line.legacy.clickable{cursor:pointer;border-radius:4px;margin-bottom:6px;border:1px solid var(--m-color-grey);box-shadow:none;transition:var(--m-default-transition)}.miam-basket-preview-line.legacy.elevate{position:relative;z-index:var(--m-z-index-modal)}.miam-basket-preview-line.legacy.expanded{position:relative;background:#fff;box-shadow:var(--m-shadow-small);border-color:var(--m-color-grey);margin-top:10px;margin-bottom:15px}.miam-basket-preview-line.legacy .miam-basket-preview-line__item{display:flex;justify-content:space-between;padding:16px 0}.miam-basket-preview-line.legacy .miam-basket-preview-line__item.clickable{cursor:pointer}.miam-basket-preview-line.legacy .miam-basket-preview-line__item.clickable.expanded{padding-bottom:0}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left{gap:16px;display:flex;align-items:center;width:100%}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove{align-self:center}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove.disabled{filter:opacity(.3)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove .miam-ds-loader{width:16px;height:16px;background-position-x:8px;background-size:8px 8px}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture img{width:130px;height:100px;-o-object-fit:cover;object-fit:cover;border-radius:var(--m-border-radius)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details{width:100%}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__sponsorised{display:flex;justify-content:center;align-items:center;padding:4px 12px;border-radius:100px;background-color:var(--m-color-grey);font-size:14px;font-weight:500;line-height:150%;width:-moz-fit-content;width:fit-content;margin-bottom:8px}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--m-font-size-medium)}@media (min-width:1022px){.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__title:hover{color:var(--m-color-primary);text-decoration:underline}}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__title:first-letter{text-transform:capitalize}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__description{font-size:var(--m-font-size-small);font-weight:400}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__description .miam-basket-preview-line__item__description__part{margin-right:4px}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions{display:flex;flex-direction:row}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__showDetails{margin:2px 30px 0 0;color:var(--m-color-grey-text);text-decoration:underline;cursor:pointer;width:-moz-max-content;width:max-content;transition:var(--m-default-transition)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__change .miam-basket-preview-line__item__change__link{margin:2px 30px 0 0;color:var(--m-color-grey-text);text-decoration:underline;cursor:pointer;transition:var(--m-default-transition)}@media (min-width:1022px){.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__change .miam-basket-preview-line__item__change__link:hover{color:var(--m-color-primary)}}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__change .miam-basket-preview-line__item__change__link.disable{pointer-events:none;color:var(--m-color-grey-text)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag{display:flex;align-items:center;height:22px;padding:1px 16px;font-size:var(--m-font-size-small);border-radius:100px;background-color:var(--tag-color)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag span:not(:last-child){margin-right:4px}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right{max-width:330px;position:relative;display:flex;align-items:center;justify-content:flex-end;width:100%}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__price{margin:0 20px;font-size:var(--m-font-size-large);font-weight:700;white-space:nowrap;color:var(--price-color)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right ng-miam-recipe-pricing{width:100%}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count{text-align:center;font-size:var(--m-font-size-small)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count .miam-basket-preview-line__item__count__for,.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count .miam-basket-preview-line__item__count__people{margin-bottom:2px;padding-left:20px;font-weight:700;color:var(--m-color-slate)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__add__button{margin:0 20px}@media (min-width:1022px){.miam-basket-preview-line.legacy .miam-basket-preview-line__item:hover .miam-basket-preview-line__item__left,.miam-basket-preview-line.legacy .miam-basket-preview-line__item:hover .miam-basket-preview-line__item__showDetails{color:var(--m-color-primary)}}.miam-basket-preview-lines{margin-bottom:20px;border-left:1px solid var(--m-color-grey);overflow:hidden;margin-left:20px}.miam-basket-preview-lines .miam-basket-preview-line{border-top:1px solid var(--m-color-grey)}.miam-basket-preview-lines .miam-basket-preview-line.expanded{border-top:1px solid var(--m-color-primary)}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item{border-top:none;padding:12px 0 15px}@media (min-width:1022px){.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details:hover,.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__title:hover{color:var(--m-color-black);text-decoration:none}}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture,.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove{margin-right:15px}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture img{width:50px;height:50px;-o-object-fit:cover;object-fit:cover;border-radius:var(--m-border-radius)}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right{margin-top:-16px}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__price{font-size:16px;color:var(--m-color-grey-text)}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count ng-miam-counter-input .miam-counter-input__icon{display:none}.miam-basket-preview-lines .miam-basket-preview-line__loader-container{padding:10px;display:flex;flex-direction:column;justify-content:center;align-items:center}@media (max-width:1022px){.miam-basket-preview-line .miam-basket-preview-line__item{flex-direction:column;height:204px;position:relative;padding:0 0 52px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left{height:92px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove{position:absolute;right:18px;margin:0;bottom:58px;z-index:1}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture{height:152px;width:33%;position:absolute;top:16px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture img{height:100%;width:100%}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details{padding:8px 0 0 40%}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions{position:absolute;bottom:8px;left:0}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag{height:auto;text-align:center;padding:1px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right{justify-content:flex-start;padding-left:38%;flex-direction:column-reverse;align-items:flex-start}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__price{margin:0}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count{margin:16px 0}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count .miam-basket-preview-line__item__count__for,.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count .miam-basket-preview-line__item__count__people{display:none}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item{flex-direction:column;height:auto;position:relative;padding:0}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left{height:auto}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove{position:relative;right:unset;margin-right:15px;bottom:unset}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture{height:72px;width:72px;position:relative;top:unset}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture img{width:72px;height:72px;-o-object-fit:cover;object-fit:cover;border-radius:var(--m-border-radius)}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details{padding:0}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__actions{position:relative;bottom:unset;flex-direction:column;gap:8px}}@media (max-width:1022px) and (min-width:1023px){.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag__container{width:100%}}@media (max-width:1022px){.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag__container .miam-basket-preview-line__item__inlineTag{padding:4px 16px}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right{flex-direction:row;margin:16px 0}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__price{margin:0 16px 0 0}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count{margin:0}}"], encapsulation: 2, changeDetection: 0 });
945
+ } }, directives: [i3.NgIf, i3.NgClass, i4.PriceComponent, i5.GuestsDropdownComponent, i6.CounterInputComponent, i7.IconComponent, i3.NgForOf, i8.RecipePricingComponent, BasketPreviewLineComponent, i9.BasketPreviewDisabledComponent, i10.LoaderComponent], pipes: [i11.CapitalizeFirstLetterPipe, i3.CurrencyPipe, i3.AsyncPipe], styles: [".miam-basket-preview-line:not(.legacy){display:flex;padding:12px;align-items:flex-start;gap:16px;align-self:stretch;border-radius:12px;border:1px solid var(--miam-ds-color-border,#d6e1ec);background:var(--miam-ds-color-background-primary,#fff)}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left{position:relative;width:144px;height:144px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left__big{height:unset;min-height:144px;align-self:stretch}@media (max-width:360px){.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left{width:112px;height:112px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left__big{height:unset;min-height:112px;align-self:stretch}}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left .miam-basket-preview-line__picture{height:100%;width:100%;border-radius:12px;cursor:pointer}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left .miam-basket-preview-line__picture img{height:100%;width:100%;-o-object-fit:cover;object-fit:cover;border-radius:12px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left .miam-basket-preview-line__counter{position:absolute;right:8px;bottom:8px;display:flex;padding:4px 8px;align-items:center;gap:4px;border-radius:100px;background:var(--miam-ds-color-neutral-white,#fff);color:var(--miam-color-neutral-black);height:-moz-fit-content;height:fit-content}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left .miam-basket-preview-line__counter span{line-height:100%}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__left .miam-basket-preview-line__counter img{width:16px;height:16px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:1 0 0;align-self:stretch}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top{display:flex;align-items:flex-start;gap:8px;flex:1 0 0;align-self:stretch}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0;gap:4px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos .miam-basket-preview-line__title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;align-self:stretch;overflow:hidden;color:var(--miam-ds-color-neutral-black,#02182b);text-overflow:ellipsis;cursor:pointer}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos .miam-basket-preview-line__product-count{display:flex;color:var(--text-subtle,rgba(31,53,67,.5));gap:4px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos .miam-basket-preview-line__price-label{line-height:0;color:var(--miam-ds-color-primary,#24748f)}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos .miam-basket-preview-line__price-per-person-label{color:var(--text-subtle,rgba(31,53,67,.5));display:inline-flex}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__infos .miam-basket-preview-line__price-per-person-label ng-miam-price{margin:0 0 0 4px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__remove{flex-shrink:0}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__remove .miam-loader,.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__top .miam-basket-preview-line__remove img{height:24px;width:24px}.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__link{padding:4px 16px;gap:8px}@media (max-width:375px){.miam-basket-preview-line:not(.legacy) .miam-basket-preview-line__right .miam-basket-preview-line__link img{display:none}}:root{--price-color:var(--miam-price-color,green) ;--tag-color:var(--miam-tag-color,#fcecce)}.miam-basket-preview-line.legacy{overflow:hidden;padding-left:10px;-webkit-tap-highlight-color:transparent}.miam-basket-preview-line.legacy.clickable{cursor:pointer;border-radius:4px;margin-bottom:6px;border:1px solid var(--m-color-grey);box-shadow:none;transition:var(--m-default-transition)}.miam-basket-preview-line.legacy.elevate{position:relative;z-index:var(--m-z-index-modal)}.miam-basket-preview-line.legacy.expanded{position:relative;background:#fff;box-shadow:var(--m-shadow-small);border-color:var(--m-color-grey);margin-top:10px;margin-bottom:15px}.miam-basket-preview-line.legacy .miam-basket-preview-line__item{display:flex;justify-content:space-between;padding:16px 0}.miam-basket-preview-line.legacy .miam-basket-preview-line__item.clickable{cursor:pointer}.miam-basket-preview-line.legacy .miam-basket-preview-line__item.clickable.expanded{padding-bottom:0}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left{gap:16px;display:flex;align-items:center;width:100%}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove{align-self:center}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove.disabled{filter:opacity(.3)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove .miam-ds-loader{width:16px;height:16px;background-position-x:8px;background-size:8px 8px}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture img{width:130px;height:100px;-o-object-fit:cover;object-fit:cover;border-radius:var(--m-border-radius)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details{width:100%}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__sponsorised{display:flex;justify-content:center;align-items:center;padding:4px 12px;border-radius:100px;background-color:var(--m-color-grey);font-size:14px;font-weight:500;line-height:150%;width:-moz-fit-content;width:fit-content;margin-bottom:8px}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--m-font-size-medium)}@media (min-width:1022px){.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__title:hover{color:var(--m-color-primary);text-decoration:underline}}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__title:first-letter{text-transform:capitalize}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__description{font-size:var(--m-font-size-small);font-weight:400}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__description .miam-basket-preview-line__item__description__part{margin-right:4px}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions{display:flex;flex-direction:row}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__showDetails{margin:2px 30px 0 0;color:var(--m-color-grey-text);text-decoration:underline;cursor:pointer;width:-moz-max-content;width:max-content;transition:var(--m-default-transition)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__change .miam-basket-preview-line__item__change__link{margin:2px 30px 0 0;color:var(--m-color-grey-text);text-decoration:underline;cursor:pointer;transition:var(--m-default-transition)}@media (min-width:1022px){.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__change .miam-basket-preview-line__item__change__link:hover{color:var(--m-color-primary)}}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__change .miam-basket-preview-line__item__change__link.disable{pointer-events:none;color:var(--m-color-grey-text)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag{display:flex;align-items:center;height:22px;padding:1px 16px;font-size:var(--m-font-size-small);border-radius:100px;background-color:var(--tag-color)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag span:not(:last-child){margin-right:4px}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right{max-width:330px;position:relative;display:flex;align-items:center;justify-content:flex-end;width:100%}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__price{margin:0 20px;font-size:var(--m-font-size-large);font-weight:700;white-space:nowrap;color:var(--price-color)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right ng-miam-recipe-pricing{width:100%}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count{text-align:center;font-size:var(--m-font-size-small)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count .miam-basket-preview-line__item__count__for,.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count .miam-basket-preview-line__item__count__people{margin-bottom:2px;padding-left:20px;font-weight:700;color:var(--m-color-slate)}.miam-basket-preview-line.legacy .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__add__button{margin:0 20px}@media (min-width:1022px){.miam-basket-preview-line.legacy .miam-basket-preview-line__item:hover .miam-basket-preview-line__item__left,.miam-basket-preview-line.legacy .miam-basket-preview-line__item:hover .miam-basket-preview-line__item__showDetails{color:var(--m-color-primary)}}.miam-basket-preview-lines{margin-bottom:20px;border-left:1px solid var(--m-color-grey);overflow:hidden;margin-left:20px}.miam-basket-preview-lines .miam-basket-preview-line{border-top:1px solid var(--m-color-grey)}.miam-basket-preview-lines .miam-basket-preview-line.expanded{border-top:1px solid var(--m-color-primary)}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item{border-top:none;padding:12px 0 15px}@media (min-width:1022px){.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details:hover,.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__title:hover{color:var(--m-color-black);text-decoration:none}}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture,.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove{margin-right:15px}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture img{width:50px;height:50px;-o-object-fit:cover;object-fit:cover;border-radius:var(--m-border-radius)}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right{margin-top:-16px}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__price{font-size:16px;color:var(--m-color-grey-text)}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count ng-miam-counter-input .miam-counter-input__icon{display:none}.miam-basket-preview-lines .miam-basket-preview-line__loader-container{padding:10px;display:flex;flex-direction:column;justify-content:center;align-items:center}@media (max-width:1022px){.miam-basket-preview-line .miam-basket-preview-line__item{flex-direction:column;height:204px;position:relative;padding:0 0 52px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left{height:92px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove{position:absolute;right:18px;margin:0;bottom:58px;z-index:1}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture{height:152px;width:33%;position:absolute;top:16px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture img{height:100%;width:100%}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details{padding:8px 0 0 40%}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions{position:absolute;bottom:8px;left:0}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag{height:auto;text-align:center;padding:1px}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right{justify-content:flex-start;padding-left:38%;flex-direction:column-reverse;align-items:flex-start}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__price{margin:0}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count{margin:16px 0}.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count .miam-basket-preview-line__item__count__for,.miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count .miam-basket-preview-line__item__count__people{display:none}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item{flex-direction:column;height:auto;position:relative;padding:0}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left{height:auto}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__remove{position:relative;right:unset;margin-right:15px;bottom:unset}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture{height:72px;width:72px;position:relative;top:unset}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__picture img{width:72px;height:72px;-o-object-fit:cover;object-fit:cover;border-radius:var(--m-border-radius)}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__details{padding:0}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__actions{position:relative;bottom:unset;flex-direction:column;gap:8px}}@media (max-width:1022px) and (min-width:1023px){.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag__container{width:100%}}@media (max-width:1022px){.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__left .miam-basket-preview-line__item__actions .miam-basket-preview-line__item__inlineTag__container .miam-basket-preview-line__item__inlineTag{padding:4px 16px}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right{flex-direction:row;margin:16px 0}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__price{margin:0 16px 0 0}.miam-basket-preview-lines .miam-basket-preview-line .miam-basket-preview-line__item .miam-basket-preview-line__item__right .miam-basket-preview-line__item__count{margin:0}}"], encapsulation: 2, changeDetection: 0 });
938
946
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BasketPreviewLineComponent, [{
939
947
  type: Component,
940
948
  args: [{
@@ -971,4 +979,4 @@ BasketPreviewLineComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BasketPreviewL
971
979
  }], showRecipe: [{
972
980
  type: Output
973
981
  }] }); })();
974
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0LXByZXZpZXctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL2Jhc2tldC1wcmV2aWV3L2Jhc2tldC1wcmV2aWV3LWxpbmUvYmFza2V0LXByZXZpZXctbGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL2Jhc2tldC1wcmV2aWV3L2Jhc2tldC1wcmV2aWV3LWxpbmUvYmFza2V0LXByZXZpZXctbGluZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDckcsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM3RixPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLE1BQU0sa0JBQWtCLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbEcsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixXQUFXLEVBQ1os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Ozs7a0JBQ04sVUFBQSx5RUFBUTs7Ozs7O2tCQW1EdkMsVUFBQSwwRkFBeUI7O1FBdE4zQywrRkEwRWU7UUFDZiw4SEErSWM7OztRQTFOQyxzQ0FBbUIsaUJBQUE7NktEeUNyQiwwQkFBMEI7dUZBQTFCLDBCQUEwQjtjQVB0QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtnQkFDdkMsV0FBVyxFQUFFLHNDQUFzQztnQkFDbkQsU0FBUyxFQUFFLENBQUMsc0NBQXNDLENBQUM7Z0JBQ25ELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDtvWkFFVSxJQUFJO2tCQUFaLEtBQUs7WUFDRyxVQUFVO2tCQUFsQixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLG1CQUFtQjtrQkFBM0IsS0FBSztZQUNHLHFCQUFxQjtrQkFBN0IsS0FBSztZQUNHLG1CQUFtQjtrQkFBM0IsS0FBSztZQUNHLHdCQUF3QjtrQkFBaEMsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxVQUFVO2tCQUFsQixLQUFLO1lBQ0ksT0FBTztrQkFBaEIsTUFBTTtZQUNHLFlBQVk7a0JBQXJCLE1BQU07WUFDRyxXQUFXO2tCQUFwQixNQUFNO1lBQ0csVUFBVTtrQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQYXJhbXMgfSBmcm9tICdtaWFtLWpzb25hcGknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmb3JrSm9pbiwgbWVyZ2UsIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFza2V0RW50cnksIEJhc2tldFByZXZpZXdMaW5lLCBJbmdyZWRpZW50LCBSZWNpcGUgfSBmcm9tICcuLi8uLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7IFJlbW92ZUluZ3JlZGllbnRBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9fbW9kZWxzL2Jhc2tldC1hY3Rpb25zL3JlbW92ZS1pbmdyZWRpZW50LWFjdGlvbic7XG5pbXBvcnQge1xuICBBbmFseXRpY3NTZXJ2aWNlLFxuICBCYXNrZXRzU2VydmljZSxcbiAgQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2UsXG4gIENvbnRleHRTZXJ2aWNlLFxuICBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICBSZWNpcGVzU2VydmljZSxcbiAgU3VwcGxpZXJzU2VydmljZSxcbiAgVXNlclNlcnZpY2Vcbn0gZnJvbSAnLi4vLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEN1cnJlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcy9jdXJyZW5jeS5zZXJ2aWNlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IHN0b3BFdmVudFByb3BhZ2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vX3V0aWxzJztcbmltcG9ydCB7IFVwZGF0ZUluZ3JlZGllbnRBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9fbW9kZWxzL2Jhc2tldC1hY3Rpb25zL3VwZGF0ZS1pbmdyZWRpZW50LWFjdGlvbic7XG5pbXBvcnQgeyBkZWVwQ2xvbmVXaXRoQ2xhc3MgfSBmcm9tICcuLi8uLi8uLi9fdXRpbHMvbWV0aG9kcy9kZWVwQ2xvbmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLWJhc2tldC1wcmV2aWV3LWxpbmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFza2V0LXByZXZpZXctbGluZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Jhc2tldC1wcmV2aWV3LWxpbmUuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQmFza2V0UHJldmlld0xpbmVDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgbGluZTogQmFza2V0UHJldmlld0xpbmU7XG4gIEBJbnB1dCgpIHVuaXF1ZUxpbmU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGJsb2NrU3RhdGVzOiBCZWhhdmlvclN1YmplY3Q8eyBjdXJyZW50T3BlbkxpbmU6IHN0cmluZzsgb3ZlcmxheU9wZW46IGJvb2xlYW47IGxpbmVDb21wb25lbnQ6IEJhc2tldFByZXZpZXdMaW5lQ29tcG9uZW50IH0+O1xuICBASW5wdXQoKSBkaXNwbGF5VG90YWxQcmljaW5nID0gdHJ1ZTtcbiAgQElucHV0KCkgcmVjaXBlc0Fsd2F5c0V4cGFuZGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGl0ZW1zQWx3YXlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzcGxheUl0ZW1zVW5pdGFyeVByaWNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNwb25zb3Jpc2VkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxlZ2FjeU1vZGUgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEJhc2tldFByZXZpZXdMaW5lPigpO1xuICBAT3V0cHV0KCkgY291bnRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxCYXNrZXRQcmV2aWV3TGluZT4oKTtcbiAgQE91dHB1dCgpIHJlcGxhY2VJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxCYXNrZXRQcmV2aWV3TGluZT4oKTtcbiAgQE91dHB1dCgpIHNob3dSZWNpcGUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaWQ6IHN0cmluZzsgZ3Vlc3RzOiBudW1iZXIgfT4oKTtcblxuICBlbnRyaWVzTGluZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCYXNrZXRQcmV2aWV3TGluZVtdPihudWxsKTtcbiAgZXhwYW5kZWQgPSBmYWxzZTtcbiAgbG9hZGluZyA9IHRydWU7XG4gIGRpc2FibGVJdGVtU2VsZWN0b3IgPSBmYWxzZTtcbiAgZGlzYWJsZUNvdW50ZXIgPSBmYWxzZTtcbiAgZGlzYWJsZVJlbW92ZSA9IGZhbHNlO1xuICBzZWxlY3RJdGVtID0gZmFsc2U7XG4gIGljb24gPSBJY29uO1xuICByZW1vdmluZyA9IGZhbHNlO1xuICBjb3VudFByb2R1Y3RzID0gMDtcbiAgaXNFbnRyeVNwb25zb3Jpc2VkOiB7IFtlbnRyeUlkOiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgbGVnYWN5UmVjaXBlOiBSZWNpcGU7XG4gIGxlZ2FjeUluZ3JlZGllbnRzRW50cmllczogeyBpbmc6IEluZ3JlZGllbnQ7IGVudHJ5OiBCYXNrZXRFbnRyeSB9W107XG4gIGd1ZXN0c09wdGlvbnM6IG51bWJlcltdID0gQXJyYXkoMTAwKS5maWxsKDApLm1hcCgoXywgaW5kZXgpID0+IGluZGV4ICsgMSk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2tldHNTZXJ2aWNlOiBCYXNrZXRzU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2tldFN5bmNocm9TZXJ2aWNlOiBCYXNrZXRzU3luY2hyb25pemVyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9zU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHVibGljIHN1cHBsaWVyc1NlcnZpY2U6IFN1cHBsaWVyc1NlcnZpY2UsXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgc3VwcGxpZXJTZXJ2aWNlOiBTdXBwbGllcnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBjdXJyZW5jeVNlcnZpY2U6IEN1cnJlbmN5U2VydmljZVxuICApIHtcbiAgICBzdXBlcihhbmFseXRpY3NTZXJ2aWNlKTtcbiAgfVxuXG4gIC8vIFRPRE86IGNhbiB3ZSByZW1vdmUgdGhlIGNvbmRpdGlvbiBvbiB1bmlxdWVMaW5lP1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRSZW1vdmVMb2FkaW5nKCk7XG4gICAgdGhpcy5pbml0UmVjaXBlSXNCZWluZ01vZGlmaWVkQ2hlY2soKTtcbiAgICB0aGlzLmluaXRCYXNrZXRJc0JlaW5nVXBkYXRlZCgpO1xuICAgIGlmICh0aGlzLnVuaXF1ZUxpbmUpIHtcbiAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgdGhpcy5idWlsZEVudHJpZXNMaW5lcygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxpbmUuZW50cmllcykge1xuICAgICAgdGhpcy5jb3VudFByb2R1Y3RzID0gdGhpcy5saW5lLmVudHJpZXMuZm91bmQucmVkdWNlKCh0b3RhbFF1YW50aXR5LCBlbnRyeSkgPT4gdG90YWxRdWFudGl0eSArIGVudHJ5LmF0dHJpYnV0ZXMucXVhbnRpdHksIDApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWI6IFN1YnNjcmlwdGlvbikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgY3VycmVudFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwcml2YXRlIGluaXRSZWNpcGVzQW5kSW5ncmVkaWVudHMoY291bnRDaGFuZ2VkID0gZmFsc2UpOiBPYnNlcnZhYmxlPHsgaW5nOiBJbmdyZWRpZW50OyBlbnRyeTogQmFza2V0RW50cnkgfVtdPiB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5sZWdhY3lSZWNpcGUgJiZcbiAgICAgIHRoaXMubGVnYWN5SW5ncmVkaWVudHNFbnRyaWVzICYmXG4gICAgICB0aGlzLmxlZ2FjeUluZ3JlZGllbnRzRW50cmllcy5sZW5ndGggPT09IHRoaXMubGVnYWN5UmVjaXBlLnJlbGF0aW9uc2hpcHMuaW5ncmVkaWVudHMuZGF0YS5sZW5ndGggJiZcbiAgICAgICFjb3VudENoYW5nZWRcbiAgICApIHtcbiAgICAgIHJldHVybiBvZihbXSBhcyB7IGluZzogSW5ncmVkaWVudDsgZW50cnk6IEJhc2tldEVudHJ5IH1bXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVjaXBlc1NlcnZpY2UuZ2V0KHRoaXMubGluZS5pZCwge1xuICAgICAgaW5jbHVkZTogWydpbmdyZWRpZW50cyddLFxuICAgICAgZmllbGRzOiB7IHJlY2lwZXM6IFsnbnVtYmVyLW9mLWd1ZXN0cycsICdpbmdyZWRpZW50cyddLCBpbmdyZWRpZW50czogWyduYW1lJywgJ3F1YW50aXR5JywgJ3VuaXQnXSB9XG4gICAgfSkucGlwZShcbiAgICAgIHN3aXRjaE1hcChyZWNpcGUgPT4ge1xuICAgICAgICB0aGlzLmxlZ2FjeVJlY2lwZSA9IHJlY2lwZTtcbiAgICAgICAgY29uc3QgcmVxdWVzdHMgPSByZWNpcGUucmVsYXRpb25zaGlwcy5pbmdyZWRpZW50cy5kYXRhLm1hcChpbmcgPT5cbiAgICAgICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLmJhc2tldEVudHJ5RnJvbUluZ3JlZGllbnQoaW5nLmlkLCB0aGlzLmxpbmUuY291bnQpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGVudHJ5OiBCYXNrZXRFbnRyeSk6IHsgaW5nOiBJbmdyZWRpZW50OyBlbnRyeTogQmFza2V0RW50cnkgfSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmxlZ2FjeUluZ3JlZGllbnRzRW50cmllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sZWdhY3lJbmdyZWRpZW50c0VudHJpZXMgPSBbXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLmxlZ2FjeUluZ3JlZGllbnRzRW50cmllcy5wdXNoKHsgaW5nLCBlbnRyeSB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHsgaW5nLCBlbnRyeSB9O1xuICAgICAgICAgICAgfSkpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBmb3JrSm9pbihyZXF1ZXN0cyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjaGFuZ2VDb3VudChjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGluZS5jb3VudCA9PT0gY291bnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saW5lLmhhc0VudHJpZXMoKSB8fCB0aGlzLmxpbmUuZGlzcGxheU1vZGUpIHtcbiAgICAgIHRoaXMubGluZS5jb3VudCA9IGNvdW50O1xuICAgICAgdGhpcy5jb3VudENoYW5nZWQuZW1pdCh0aGlzLmxpbmUpO1xuICAgICAgLy8gRm9yY2UgcmVmcmVzaCByZWNpcGUgZW50cmllc1xuICAgICAgdGhpcy5idWlsZEVudHJpZXNMaW5lcyh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYW5kbGVTdWJsaW5lQ291bnRDaGFuZ2UoY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVN1YmxpbmVDb3VudENoYW5nZShjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGNvdW50ID09PSAwKSB7XG4gICAgICB0aGlzLnJlbW92ZWQuZW1pdCh0aGlzLmxpbmUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXdCYXNrZXRFbnRyeTogQmFza2V0RW50cnkgPSBkZWVwQ2xvbmVXaXRoQ2xhc3ModGhpcy5saW5lLnJlY29yZCk7XG4gICAgbmV3QmFza2V0RW50cnkucXVhbnRpdHkgPSBjb3VudDtcbiAgICBjb25zdCB1cGRhdGVRdWFudGl0eSA9IG5ldyBVcGRhdGVJbmdyZWRpZW50QWN0aW9uKFxuICAgICAgbmV3QmFza2V0RW50cnksXG4gICAgICB7XG4gICAgICAgIGV2ZW50VHJhY2U6IHRoaXMuZXZlbnRUcmFjZSxcbiAgICAgICAgcmVjaXBlSWQ6IHRoaXMubGluZS5pZCxcbiAgICAgIH0sXG4gICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlXG4gICAgKTtcbiAgICBtZXJnZSh1cGRhdGVRdWFudGl0eS5vblRpbWVvdXQsIHVwZGF0ZVF1YW50aXR5Lm9uRXJyb3IpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIC8vIFJlcXVpcmVkIHRvIHJlZnJlc2ggYmFza2V0IGVudHJ5IHJvd1xuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHRoaXMubGluZS5jb3VudDtcbiAgICAgIHRoaXMubGluZS5jb3VudCA9IG51bGw7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB0aGlzLmxpbmUuY291bnQgPSBwcmV2aW91c1ZhbHVlO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICAgIHRoaXMuYmFza2V0U3luY2hyb1NlcnZpY2UuYWRkVG9BY3Rpb25MaXN0KFxuICAgICAgW3VwZGF0ZVF1YW50aXR5XVxuICAgICk7XG4gICAgdXBkYXRlUXVhbnRpdHkub25TdWNjZXNzLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubGluZS5jb3VudCA9IG5ld0Jhc2tldEVudHJ5LnF1YW50aXR5O1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVsb2FkQmFza2V0KCkuc3Vic2NyaWJlKFxuICAgICAgICAgICgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0pO1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAnZW50cnkuY2hhbmdlLXF1YW50aXR5JyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgZW50cnlfbmFtZTogdGhpcy5saW5lLnJlY29yZC5uYW1lLFxuICAgICAgICBpdGVtX2lkOiB0aGlzLmxpbmUucmVjb3JkLnNlbGVjdGVkSXRlbS5pZCxcbiAgICAgICAgZXh0X2l0ZW1faWQ6IHRoaXMubGluZS5yZWNvcmQuc2VsZWN0ZWRJdGVtLmF0dHJpYnV0ZXNbJ2V4dC1pZCddLFxuICAgICAgICBpdGVtX2VhbjogdGhpcy5saW5lLnJlY29yZC5zZWxlY3RlZEl0ZW0uYXR0cmlidXRlcy5lYW4sXG4gICAgICAgIHByb2R1Y3RfcXVhbnRpdHk6IHRoaXMubGluZS5yZWNvcmQuYXR0cmlidXRlcy5xdWFudGl0eS50b1N0cmluZygpLFxuICAgICAgICByZWNpcGVfaWQ6IHRoaXMubGluZS5yZWNpcGU/LmlkXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHRvZ2dsZUV4cGFuZGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmxpbmUuaGFzRW50cmllcygpIHx8XG4gICAgICB0aGlzLnVuaXF1ZUxpbmUgfHxcbiAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQuY2xhc3NOYW1lID09PSAnaW5wdXQtY29udGFpbmVyJyB8fFxuICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudC5jbGFzc05hbWUgPT09ICdyZW1vdmUnIHx8XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50Lm5vZGVOYW1lID09PSAnc3ZnJ1xuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZXhwYW5kZWQgPSB0aGlzLnJlY2lwZXNBbHdheXNFeHBhbmRlZCA/IHRydWUgOiAhdGhpcy5leHBhbmRlZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgaWYgKCF0aGlzLmVudHJpZXNMaW5lcyQudmFsdWUpIHtcbiAgICAgIHRoaXMuYnVpbGRFbnRyaWVzTGluZXMoKTtcbiAgICB9XG4gIH1cblxuICBkZWxldGVFbnRyeShsaW5lOiBCYXNrZXRQcmV2aWV3TGluZSk6IHZvaWQge1xuICAgIGNvbnN0IGVudHJ5ID0gbGluZS5yZWNvcmQ7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdlbnRyeS5kZWxldGVkJyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgZW50cnlfbmFtZTogZW50cnkubmFtZSxcbiAgICAgICAgaXRlbV9pZDogZW50cnkuc2VsZWN0ZWRJdGVtLmlkLFxuICAgICAgICBleHRfaXRlbV9pZDogZW50cnkuc2VsZWN0ZWRJdGVtLmF0dHJpYnV0ZXNbJ2V4dC1pZCddLFxuICAgICAgICBpdGVtX2VhbjogZW50cnkuc2VsZWN0ZWRJdGVtLmVhbixcbiAgICAgICAgcHJvZHVjdF9xdWFudGl0eTogZW50cnkucXVhbnRpdHkudG9TdHJpbmcoKSxcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLmxpbmUucmVjaXBlPy5pZFxuICAgICAgfVxuICAgICk7XG4gICAgY29uc3QgZGVsZXRlZEJhc2tldEVudHJ5OiBCYXNrZXRFbnRyeSA9IGRlZXBDbG9uZVdpdGhDbGFzcyhlbnRyeSk7XG4gICAgZGVsZXRlZEJhc2tldEVudHJ5LnF1YW50aXR5ID0gMDtcbiAgICBjb25zdCByZW1vdmVJbmdyZWRpZW50ID0gbmV3IFJlbW92ZUluZ3JlZGllbnRBY3Rpb24oXG4gICAgICBkZWxldGVkQmFza2V0RW50cnksXG4gICAgICB7XG4gICAgICAgIHJlY2lwZUlkOiB0aGlzLmxpbmUuaWQsXG4gICAgICAgIGluZ3JlZGllbnRJZDogbGluZS5pbmdyZWRpZW50LmlkLFxuICAgICAgICBldmVudFRyYWNlOiB0aGlzLmV2ZW50VHJhY2VcbiAgICAgIH0sXG4gICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlXG4gICAgKTtcbiAgICB0aGlzLmJhc2tldFN5bmNocm9TZXJ2aWNlLmFkZFRvQWN0aW9uTGlzdChcbiAgICAgIFtyZW1vdmVJbmdyZWRpZW50XVxuICAgICk7XG4gIH1cblxuICBjaGFuZ2VQcm9kdWN0KGxpbmU6IEJhc2tldFByZXZpZXdMaW5lKTogdm9pZCB7XG4gICAgdGhpcy5ibG9ja1N0YXRlcz8ubmV4dCh7IGN1cnJlbnRPcGVuTGluZTogbGluZS5pZCwgb3ZlcmxheU9wZW46IHRydWUsIGxpbmVDb21wb25lbnQ6IHRoaXMgfSk7XG4gICAgdGhpcy5zZWxlY3RJdGVtID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5yZXBsYWNlSXRlbS5lbWl0KGxpbmUpO1xuICB9XG5cbiAgLy8gVE9ETzogcmVtb3ZlZCAtIG5ldmVyIGNhbGxlZCA/XG4gIHByb2R1Y3RDaG9zZW4oYmFza2V0RW50cnlJZD86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0SXRlbSA9IGZhbHNlO1xuICAgIGlmIChiYXNrZXRFbnRyeUlkKSB7XG4gICAgICB0aGlzLmRpc2FibGVJdGVtU2VsZWN0b3IgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmJsb2NrU3RhdGVzPy5uZXh0KHsgY3VycmVudE9wZW5MaW5lOiBudWxsLCBvdmVybGF5T3BlbjogZmFsc2UsIGxpbmVDb21wb25lbnQ6IG51bGwgfSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KGZhbHNlKTtcbiAgfVxuXG4gIGJ1aWxkRW50cmllc0xpbmVzKGNvdW50Q2hhbmdlZCA9IGZhbHNlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGVnYWN5TW9kZSkge1xuICAgICAgY29uc3QgZW50cmllcyA9IFtcbiAgICAgICAgLi4udGhpcy5saW5lLmVudHJpZXMuZm91bmQsXG4gICAgICAgIC4uLnRoaXMubGluZS5lbnRyaWVzLm5vdEZvdW5kLFxuICAgICAgICAuLi50aGlzLmxpbmUuZW50cmllcy5vZnRlbkRlbGV0ZWQsXG4gICAgICAgIC4uLnRoaXMubGluZS5lbnRyaWVzLnJlbW92ZWRdO1xuXG4gICAgICB0aGlzLmluaXRSZWNpcGVzQW5kSW5ncmVkaWVudHMoY291bnRDaGFuZ2VkKS5waXBlKFxuICAgICAgICB0YXAoKHJlZmV0Y2hlZEVudHJpZXMpID0+IHtcbiAgICAgICAgICB0aGlzLmVudHJpZXNMaW5lcyQubmV4dChlbnRyaWVzXG4gICAgICAgICAgICAuZmlsdGVyKGVudHJ5ID0+IHRoaXMubGluZS5lbnRyaWVzLmZvdW5kLm1hcChlID0+IGUuaWQpLmluY2x1ZGVzKGVudHJ5LmlkKSlcbiAgICAgICAgICAgIC5tYXAoZW50cnkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmb3VuZFVwZGF0ZWRFbnRyeSA9IHJlZmV0Y2hlZEVudHJpZXMuZmluZChpZSA9PiBpZS5lbnRyeS5pZCA9PT0gZW50cnkuaWQpO1xuICAgICAgICAgICAgICByZXR1cm4gQmFza2V0UHJldmlld0xpbmUuZnJvbUJhc2tldEVudHJ5KGZvdW5kVXBkYXRlZEVudHJ5LmVudHJ5LCB0aGlzLmxlZ2FjeVJlY2lwZSwgZm91bmRVcGRhdGVkRW50cnkuaW5nKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmluaXRTcG9uc29yaXNlZEVudHJpZXMoKSk7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFkZEVudHJ5KGVudHJ5OiBCYXNrZXRFbnRyeSk6IHZvaWQge1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAnZW50cnkuYWRkZWQnLFxuICAgICAgdGhpcy5wYXRoLFxuICAgICAge1xuICAgICAgICBlbnRyeV9uYW1lOiBlbnRyeS5uYW1lLFxuICAgICAgICBpdGVtX2lkOiBlbnRyeS5zZWxlY3RlZEl0ZW0uaWQsXG4gICAgICAgIGV4dF9pdGVtX2lkOiBlbnRyeS5zZWxlY3RlZEl0ZW0uYXR0cmlidXRlc1snZXh0LWlkJ10sXG4gICAgICAgIGl0ZW1fZWFuOiBlbnRyeS5zZWxlY3RlZEl0ZW0uZWFuLFxuICAgICAgICBwcm9kdWN0X3F1YW50aXR5OiBlbnRyeS5xdWFudGl0eS50b1N0cmluZygpLFxuICAgICAgICByZWNpcGVfaWQ6IHRoaXMubGluZS5yZWNpcGU/LmlkXG4gICAgICB9XG4gICAgKTtcbiAgICBlbnRyeS5zdGF0dXMgPSAnYWN0aXZlJztcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChlbnRyeS5zYXZlKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlbG9hZEJhc2tldCgpKVxuICAgICkuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgdHJhY2tCeUl0ZW1JZChpbmRleDogbnVtYmVyLCBsaW5lOiBCYXNrZXRQcmV2aWV3TGluZSk6IEJhc2tldFByZXZpZXdMaW5lIHwgc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIGxpbmUgPyBsaW5lLnJlY29yZFsnc2VsZWN0ZWQtaXRlbS1pZCddICsgJy0nICsgbGluZS5yZWNvcmQuYXR0cmlidXRlcy5xdWFudGl0eSA6IG51bGw7XG4gIH1cblxuICB0b2dnbGVSZWNpcGVEaXNwbGF5KGV2ZW50OiBFdmVudCwgYWRkUmVjaXBlID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubGluZS5pc1JlY2lwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoYWRkUmVjaXBlKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgZm9ya0pvaW4oW1xuICAgICAgICAgIHRoaXMudXNlclNlcnZpY2UuaXNMb2dnZWQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZSgxKSksXG4gICAgICAgICAgdGhpcy5wb3NTZXJ2aWNlLnBvc1dhc0luaXRpYWxpemVkKCkucGlwZSh0YWtlKDEpKVxuICAgICAgICBdKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBjb25zdCBpc0hvb2tPayA9IHRoaXMuY29udGV4dFNlcnZpY2UuaG9va0NhbGxiYWNrKHJlc1swXSwgcmVzWzFdKTtcbiAgICAgICAgICBpZiAoaXNIb29rT2spIHtcbiAgICAgICAgICAgIHRoaXMuYWRkUmVjaXBlQWN0aW9uT0soKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmRpc3BsYXkodGhpcy5saW5lLmlkLCB7IGd1ZXN0czogdGhpcy5saW5lLmNvdW50LCBoZWxwQnV0dG9uQWxsb3dlZDogZmFsc2UgfSk7XG4gICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgICAncmVjaXBlLmRpc3BsYXknLFxuICAgICAgICB0aGlzLnBhdGgsXG4gICAgICAgIHtcbiAgICAgICAgICByZWNpcGVfaWQ6IHRoaXMubGluZS5pZCxcbiAgICAgICAgICBjYXRlZ29yeV9pZDogdGhpcy5vcmlnaW5UcmFjZS5wcm9wcy5jYXRlZ29yeV9pZFxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGFkZFJlY2lwZUFjdGlvbk9LKCk6IHZvaWQge1xuICAgIHRoaXMuYmFza2V0c1NlcnZpY2UuYWRkUmVjaXBlc1RvQmFza2V0KFt0aGlzLmxpbmUuaWRdLCB0aGlzLmxpbmUuY291bnQsIHsgb3JpZ2luUGF0aDogdGhpcy5wYXRoLCBwcm9wczogdGhpcy5wcm9wcyB9KTtcbiAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmRpc3BsYXkodGhpcy5saW5lLmlkLCB7IGd1ZXN0czogdGhpcy5saW5lLmNvdW50LCBwcmV2aWV3TW9kZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHJlbW92ZUxpbmUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgc3RvcEV2ZW50UHJvcGFnYXRpb24oZXZlbnQpO1xuICAgIHRoaXMucmVtb3ZpbmcgPSB0cnVlO1xuICAgIHRoaXMucmVtb3ZlZC5lbWl0KHRoaXMubGluZSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpY2VJbnRlZ2VyUGFydCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMucHJpY2VUb0Rpc3BsYXkoKT8udG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIHJldHVybiB2YWx1ZXM/Lmxlbmd0aCA+IDAgPyB2YWx1ZXNbMF0gOiAnMCc7XG4gIH1cblxuICBwcmljZURlY2ltYWxQYXJ0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5wcmljZVRvRGlzcGxheSgpPy50b1N0cmluZygpLnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIHZhbHVlcz8ubGVuZ3RoID09PSAyID8gdmFsdWVzWzFdIDogJzAwJztcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFJlbW92ZUxvYWRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVXaWxsQmVSZW1vdmVkKHRoaXMubGluZS5pZCkucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKGlzUmVtb3ZpbmcgPT4gaXNSZW1vdmluZyA9PT0gdGhpcy5yZW1vdmluZylcbiAgICAgICkuc3Vic2NyaWJlKGlzUmVtb3ZpbmcgPT4ge1xuICAgICAgICB0aGlzLnJlbW92aW5nID0gaXNSZW1vdmluZztcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UmVjaXBlSXNCZWluZ01vZGlmaWVkQ2hlY2soKTogdm9pZCB7XG4gICAgbGV0IHJlY2lwZUlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5saW5lLmlzUmVjaXBlKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVJc0JlaW5nUmVtb3ZlZCh0aGlzLmxpbmUuaWQpLCB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlY2lwZUlzQmVpbmdVcGRhdGVkKHRoaXMubGluZS5pZCldKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKHJlcyA9PiByZXNbMF0gfHwgcmVzWzFdKSxcbiAgICAgICAgICAgIHNraXBXaGlsZShpc1VwZGF0aW5nID0+IGlzVXBkYXRpbmcgIT09IHJlY2lwZUlzVXBkYXRpbmcpXG4gICAgICAgICAgKS5zdWJzY3JpYmUoaXNVcGRhdGluZyA9PiB7XG4gICAgICAgICAgcmVjaXBlSXNVcGRhdGluZyA9IGlzVXBkYXRpbmc7XG4gICAgICAgICAgdGhpcy5kaXNhYmxlQ291bnRlciA9IGlzVXBkYXRpbmc7XG4gICAgICAgICAgdGhpcy5kaXNhYmxlUmVtb3ZlID0gaXNVcGRhdGluZztcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdEJhc2tldElzQmVpbmdVcGRhdGVkKCk6IHZvaWQge1xuICAgIGxldCBiYXNrZXRJc1VwZGF0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVzV2lsbEJlQWRkZWQoKSxcbiAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVzV2lsbEJlUmVtb3ZlZCgpLFxuICAgICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlY2lwZXNXaWxsQmVVcGRhdGVkKClcbiAgICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcChyZXMgPT4gcmVzWzBdIHx8IHJlc1sxXSB8fCByZXNbMl0pLFxuICAgICAgICBza2lwV2hpbGUoaXNVcGRhdGluZyA9PiBpc1VwZGF0aW5nICE9PSBiYXNrZXRJc1VwZGF0aW5nKVxuICAgICAgKS5zdWJzY3JpYmUoaXNVcGRhdGluZyA9PiB7XG4gICAgICAgIGJhc2tldElzVXBkYXRpbmcgPSBpc1VwZGF0aW5nO1xuICAgICAgICB0aGlzLmRpc2FibGVJdGVtU2VsZWN0b3IgPSBpc1VwZGF0aW5nO1xuICAgICAgICBpZiAoIXRoaXMubGluZS5pc1JlY2lwZSkge1xuICAgICAgICAgIHRoaXMuZGlzYWJsZUNvdW50ZXIgPSBpc1VwZGF0aW5nO1xuICAgICAgICAgIHRoaXMuZGlzYWJsZVJlbW92ZSA9IGlzVXBkYXRpbmc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmljZVRvRGlzcGxheSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmxpbmUuaXNSZWNpcGUgfHwgIXRoaXMuZGlzcGxheUl0ZW1zVW5pdGFyeVByaWNlIHx8IHRoaXMubGluZS5wcmljZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMubGluZS5wcmljZTtcbiAgICB9XG4gICAgY29uc3QgYmVJdGVtID0gdGhpcy5saW5lLnJlY29yZC5hdHRyaWJ1dGVzWydiYXNrZXQtZW50cmllcy1pdGVtcyddLmZpbmQoaSA9PlxuICAgICAgaS5pdGVtX2lkID09PSB0aGlzLmxpbmUucmVjb3JkLmF0dHJpYnV0ZXNbJ3NlbGVjdGVkLWl0ZW0taWQnXVxuICAgICk7XG4gICAgLy8gYmVJdGVtIGNhbiBiZSBudWxsIGFmdGVyIHJlcGxhY2luZyBhbiBpdGVtLCBiZWZvcmUgdGhlIHZpZXcgaXMgcmVsb2FkZWQgd2l0aCB0aGUgbmV3IGl0ZW1cbiAgICByZXR1cm4gYmVJdGVtID8gcGFyc2VGbG9hdChiZUl0ZW1bJ3VuaXQtcHJpY2UnXSkudG9GaXhlZCgyKSA6ICcwLjAwJztcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNwb25zb3Jpc2VkRW50cmllcygpOiBTdWJzY3JpcHRpb24ge1xuICAgIGNvbnN0IHBhcmFtczogSVBhcmFtcyA9IHtcbiAgICAgIGluY2x1ZGU6IFsnaW5ncmVkaWVudHMnXSxcbiAgICAgIGZpZWxkczogeyByZWNpcGVzOiBbJ2luZ3JlZGllbnRzJ10sIGluZ3JlZGllbnRzOiBbJ2ZvcmNlZC1lYW5zJ10gfVxuICAgIH07XG4gICAgbGV0IGluZ3JlZGllbnRzOiBJbmdyZWRpZW50W10gPSBbXTtcbiAgICByZXR1cm4gdGhpcy5yZWNpcGVzU2VydmljZS5nZXQodGhpcy5saW5lLmlkLCBwYXJhbXMpLnBpcGUoc2tpcFdoaWxlKHJlcyA9PiByZXMuaXNfbG9hZGluZykpLnN1YnNjcmliZShyZWNpcGUgPT4ge1xuICAgICAgaW5ncmVkaWVudHMgPSByZWNpcGUucmVsYXRpb25zaGlwcy5pbmdyZWRpZW50cy5kYXRhO1xuICAgICAgY29uc3QgZW50cmllc0xpbmVzID0gdGhpcy5lbnRyaWVzTGluZXMkLnZhbHVlO1xuICAgICAgZW50cmllc0xpbmVzLmZvckVhY2goZW50cnlMaW5lID0+IHtcbiAgICAgICAgdGhpcy5pc0VudHJ5U3BvbnNvcmlzZWRbZW50cnlMaW5lLmlkXSA9IGluZ3JlZGllbnRzLnNvbWUoaW5nID0+XG4gICAgICAgICAgaW5nLmF0dHJpYnV0ZXNbJ2ZvcmNlZC1lYW5zJ10uc29tZShlYW4gPT4gZWFuID09PSBlbnRyeUxpbmUucmVjb3JkLnNlbGVjdGVkSXRlbS5hdHRyaWJ1dGVzLmVhbilcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhbGVnYWN5TW9kZTsgZWxzZSBsZWdhY3lWaWV3XCI+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVcIiBpZD1cInt7bGluZS5pZH19XCI+XG4gICAgPCEtLSBMRUZUIEJMT0NLIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2xlZnRcIlxuICAgICAgICAgW25nQ2xhc3NdPVwieydtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2xlZnRfX2JpZyc6IGNvbnRleHRTZXJ2aWNlLmd1ZXN0c0lucHV0T25NeU1lYWxzfVwiPlxuICAgICAgPCEtLSBQSUNUVVJFIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fcGljdHVyZVwiPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgW2FsdF09XCIobGluZS5pc1JlY2lwZSA/ICdyZWNpcGUnIDogJ3Byb2R1Y3QnKSArICcgcGljdHVyZSdcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZWNpcGVEaXNwbGF5KCRldmVudClcIlxuICAgICAgICAgIFtzcmNdPVwibGluZS5waWN0dXJlXCJcbiAgICAgICAgICAoZXJyb3IpPVwiJGV2ZW50LnRhcmdldFsnc3JjJ10gPSBsaW5lLmlzUmVjaXBlID8gY29udGV4dFNlcnZpY2UuZGVmYXVsdFJlY2lwZVBpY3R1cmUgOiBjb250ZXh0U2VydmljZS5kZWZhdWx0SW5ncmVkaWVudFBpY3R1cmVcIlxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gQ09VTlRFUiAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCIhY29udGV4dFNlcnZpY2UuZ3Vlc3RzSW5wdXRPbk15TWVhbHNcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fY291bnRlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tZHMtdGV4dCB3ZWlnaHQteHhsIHNpemUtbVwiPnt7IGxpbmUuY291bnQgfX08L3NwYW4+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9yZWNpcGUtY291bnRlci5zdmdcIiBhbHQ9XCJwZW9wbGVcIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gUklHSFQgQkxPQ0sgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fcmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX3RvcFwiPlxuICAgICAgICA8IS0tIElORk9TIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pbmZvc1wiPlxuICAgICAgICAgIDwhLS0gVElUTEUgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fdGl0bGUgbWlhbS1kcy10ZXh0IHdlaWdodC14eGwgc2l6ZS1tXCJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZWNpcGVEaXNwbGF5KCRldmVudClcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IGxpbmUudGl0bGUgfCBjYXBpdGFsaXplRmlyc3RMZXR0ZXIgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSBQUk9EVUNUIENPVU5UIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX3Byb2R1Y3QtY291bnQgbWlhbS1kcy10ZXh0IHdlaWdodC1sIHNpemUtc1wiPlxuICAgICAgICAgICAgPHNwYW4+e3sgY291bnRQcm9kdWN0cyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCJjb3VudFByb2R1Y3RzIDw9IDFcIj5wcm9kdWl0PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cImNvdW50UHJvZHVjdHMgPiAxXCI+cHJvZHVpdHM8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmUucHJpY2UgJiYgbGluZS5wcmljZSAhPT0gJ05hTidcIj5cbiAgICAgICAgICAgIDwhLS0gUFJJQ0UgLS0+XG4gICAgICAgICAgICA8bmctbWlhbS1wcmljZVxuICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fcHJpY2UtbGFiZWwgbWlhbS1kcy10ZXh0IHdlaWdodC14eGxcIlxuICAgICAgICAgICAgICBbcHJpY2VdPVwibGluZS5wcmljZSB8IGN1cnJlbmN5OiBjdXJyZW5jeVNlcnZpY2UuY29kZVwiPlxuICAgICAgICAgICAgPC9uZy1taWFtLXByaWNlPlxuICAgICAgICAgICAgPCEtLSBQUklDRSBQRVIgUEVSU09OIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fcHJpY2UtcGVyLXBlcnNvbi1sYWJlbCBtaWFtLWRzLXRleHQgd2VpZ2h0LWwgc2l6ZS14c1wiPlxuICAgICAgICAgICAgICA8c3BhbiBpMThuPnNvaXQgPC9zcGFuPlxuICAgICAgICAgICAgICA8bmctbWlhbS1wcmljZSBbcHJpY2VdPVwiKCtsaW5lLnByaWNlIC8gK2xpbmUuY291bnQpIHwgY3VycmVuY3k6IGN1cnJlbmN5U2VydmljZS5jb2RlXCI+PC9uZy1taWFtLXByaWNlPlxuICAgICAgICAgICAgICA8c3BhbiBpMThuPi9wZXJzPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPCEtLSBHVUVTVFMgRFJPUERPV04gLS0+XG4gICAgICAgICAgPG5nLW1pYW0tZ3Vlc3RzLWRyb3Bkb3duXG4gICAgICAgICAgICAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLmd1ZXN0c0lucHV0T25NeU1lYWxzXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZE9wdGlvbl09XCJsaW5lLmNvdW50XCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cImd1ZXN0c09wdGlvbnNcIlxuICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cImNoYW5nZUNvdW50KCRldmVudClcIlxuICAgICAgICAgID48L25nLW1pYW0tZ3Vlc3RzLWRyb3Bkb3duPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBSRU1PVkUgLS0+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX3JlbW92ZSBtaWFtLWRzLWJ1dHRvbiBnaG9zdFwiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOiBkaXNhYmxlUmVtb3ZlfVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFyZW1vdmluZyAmJiByZW1vdmVMaW5lKCRldmVudClcIj5cbiAgICAgICAgICA8aW1nICpuZ0lmPVwiIXJlbW92aW5nIGVsc2UgcmVtb3ZlTG9hZGVyXCJcbiAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvdHJhc2guc3ZnXCIgYWx0PVwicmVtb3ZlIHJlY2lwZVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVtb3ZlTG9hZGVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tZHMtbG9hZGVyXCI+PC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gTElOSyAtLT5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2xpbmsgbWlhbS1kcy1idXR0b24gZ2hvc3RcIiAoY2xpY2spPVwidG9nZ2xlUmVjaXBlRGlzcGxheSgkZXZlbnQpXCI+XG4gICAgICAgIDxzcGFuIGkxOG4+Vm9pciBsZXMgcHJvZHVpdHM8L3NwYW4+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9hcnJvdy1yaWdodC5zdmdcIiBhbHQ9XCJhcnJvdyByaWdodFwiPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI2xlZ2FjeVZpZXc+XG4gIDxkaXZcbiAgICBpZD1cInt7bGluZS5pZH19XCJcbiAgICBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZSBsZWdhY3lcIlxuICAgIFtuZ0NsYXNzXT1cIntjbGlja2FibGU6IGxpbmUuaGFzRW50cmllcygpIHx8IGxpbmUuZGlzcGxheU1vZGUsIGV4cGFuZGVkOiBleHBhbmRlZCwgZWxldmF0ZSA6IHNlbGVjdEl0ZW19XCJcbiAgICAoY2xpY2spPVwibGluZS5kaXNwbGF5TW9kZSA/IHRvZ2dsZVJlY2lwZURpc3BsYXkoJGV2ZW50KSA6IHRvZ2dsZUV4cGFuZGVkKCRldmVudClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fbGVmdFwiPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIXVuaXF1ZUxpbmUgJiYgIWxpbmUuZGlzcGxheU1vZGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWlhbS1kcy1idXR0b24gZ2hvc3Qgc3F1YXJlIG1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fcmVtb3ZlXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzogZGlzYWJsZVJlbW92ZSwgJ2xvYWRpbmcnOiByZW1vdmluZ31cIiAoY2xpY2spPVwicmVtb3ZlTGluZSgkZXZlbnQpXCI+XG4gICAgICAgICAgPG5nLW1pYW0taWNvblxuICAgICAgICAgICAgKm5nSWY9XCIhcmVtb3ZpbmcgZWxzZSByZW1vdmVMb2FkZXJcIlxuICAgICAgICAgICAgW2ljb25OYW1lXT0naWNvbi5UcmFzaF9ncmV5VGV4dERhcmsnXG4gICAgICAgICAgICBbaGVpZ2h0XT1cIjE2XCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIxNlwiXG4gICAgICAgICAgPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVtb3ZlTG9hZGVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tZHMtbG9hZGVyXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fcGljdHVyZVwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIFthbHRdPVwiKGxpbmUuaXNSZWNpcGUgPyAncmVjaXBlJyA6ICdwcm9kdWN0JykgKyAnIHBpY3R1cmUnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZWNpcGVEaXNwbGF5KCRldmVudClcIlxuICAgICAgICAgICAgW3NyY109XCJsaW5lLnBpY3R1cmVcIlxuICAgICAgICAgICAgKGVycm9yKT1cIiRldmVudC50YXJnZXRbJ3NyYyddID0gbGluZS5pc1JlY2lwZSA/IGNvbnRleHRTZXJ2aWNlLmRlZmF1bHRSZWNpcGVQaWN0dXJlIDogY29udGV4dFNlcnZpY2UuZGVmYXVsdEluZ3JlZGllbnRQaWN0dXJlXCJcbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19kZXRhaWxzXCIgW25nQ2xhc3NdPVwieyd3aXRoLWlubGluZS10YWcnOiBsaW5lLmlubGluZVRhZ31cIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3BvbnNvcmlzZWRcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fc3BvbnNvcmlzZWRcIj5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4+U3BvbnNvcmlzw6k8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwidG9nZ2xlUmVjaXBlRGlzcGxheSgkZXZlbnQpXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX3RpdGxlXCI+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IGxpbmUudGl0bGUgfCBjYXBpdGFsaXplRmlyc3RMZXR0ZXIgfX08L3N0cm9uZz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxpbmUuZGVzY3JpcHRpb24ubGVuZ3RoID4gMFwiPnt7IGxpbmUuZGVzY3JpcHRpb25bMF0gfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJsaW5lLmRlc2NyaXB0aW9uLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGQgb2YgbGluZS5kZXNjcmlwdGlvbi5zbGljZSgxLCBsaW5lLmRlc2NyaXB0aW9uLmxlbmd0aClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fZGVzY3JpcHRpb25fX3BhcnRcIj57eyBkIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBjdXJyZW5jeVNlcnZpY2Uuc3ltYm9sIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3Bhbj4gLzwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4bj4gcGVyc29ubmUgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihsaW5lLmhhc0VudHJpZXMoKSAmJiAhdW5pcXVlTGluZSlcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fc2hvd0RldGFpbHNcIlxuICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2V4cGFuZGVkJzogZXhwYW5kZWR9XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCJleHBhbmRlZFwiPk1hc3F1ZXIgbGUgZMOpdGFpbDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cIiFleHBhbmRlZFwiPlZvaXIgbGUgZMOpdGFpbDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBpMThuICpuZ0lmPVwibGluZS5kaXNwbGF5TW9kZVwiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19zaG93RGV0YWlsc1wiPlxuICAgICAgICAgICAgICBWb2lyIGxhIHJlY2V0dGVcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFsaW5lLmlzUmVjaXBlXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2NoYW5nZVwiXG4gICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VQcm9kdWN0KGxpbmUpXCI+XG4gICAgICAgICAgICAgIDxhIGkxOG4gW25nQ2xhc3NdPVwieydkaXNhYmxlJzogZGlzYWJsZUl0ZW1TZWxlY3Rvcn1cIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fY2hhbmdlX19saW5rXCI+Q2hhbmdlciBkJ2FydGljbGU8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJsaW5lLmlubGluZVRhZ1wiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19pbmxpbmVUYWdfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19pbmxpbmVUYWdcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgd29yZCBvZiBsaW5lLmlubGluZVRhZy5zcGxpdCgnICcpXCI+e3sgd29yZCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX3JpZ2h0XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5VG90YWxQcmljaW5nIHx8ICFsaW5lLmlzUmVjaXBlIGVsc2UgcHJpY2VQZXJndWVzdFwiXG4gICAgICAgICAgICAgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX3ByaWNlXCI+XG4gICAgICAgICAgPHNwYW4+e3sgcHJpY2VJbnRlZ2VyUGFydCgpIH19LDwvc3Bhbj5cbiAgICAgICAgICA8c3Bhbj57eyBwcmljZURlY2ltYWxQYXJ0KCkgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4+IHt7IGN1cnJlbmN5U2VydmljZS5zeW1ib2wgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI3ByaWNlUGVyZ3Vlc3Q+XG4gICAgICAgICAgPG5nLW1pYW0tcmVjaXBlLXByaWNpbmcgW3JlY2lwZUlkXT1cImxpbmUuaWRcIiBbc2VydmVzXT1cImxpbmUuY291bnRcIj48L25nLW1pYW0tcmVjaXBlLXByaWNpbmc+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2NvdW50XCI+XG4gICAgICAgICAgPGRpdiBpMThuICpuZ0lmPVwibGluZS5pc1JlY2lwZVwiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19jb3VudF9fZm9yXCI+cG91cjwvZGl2PlxuICAgICAgICAgIDxuZy1taWFtLWNvdW50ZXItaW5wdXQgW2RlYm91bmNlVGltZV09XCIzMDBcIiBbdmFsdWVdPVwibGluZS5jb3VudFwiICh2YWx1ZUNoYW5nZSk9XCJjaGFuZ2VDb3VudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5SYW5nZV09XCJsaW5lLmlzUmVjaXBlID8gMSA6IDBcIiBbZGlzYWJsZV09XCJkaXNhYmxlQ291bnRlclwiPlxuICAgICAgICAgIDwvbmctbWlhbS1jb3VudGVyLWlucHV0PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJsaW5lLmlzUmVjaXBlXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2NvdW50X19wZW9wbGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCJsaW5lLmNvdW50ID4gMVwiPnBlcnNvbm5lczwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCIhKGxpbmUuY291bnQgPiAxKVwiPnBlcnNvbm5lPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImxpbmUuZGlzcGxheU1vZGVcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fYWRkX19idXR0b25cIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibS1idXR0b24tcHJpbWFyeVwiIChjbGljayk9XCJ0b2dnbGVSZWNpcGVEaXNwbGF5KCRldmVudCwgdHJ1ZSlcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIHByaW1hcnlDb2xvcj0nI2ZmZicgW2ljb25OYW1lXT1cImljb24uQ2FydFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lc1wiICpuZ0lmPVwiZXhwYW5kZWRcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgZWxzZSBsb2FkZXJcIj5cbiAgICAgIDxuZy1taWFtLWJhc2tldC1wcmV2aWV3LWxpbmVcbiAgICAgICAgKm5nRm9yPVwibGV0IGVudHJ5TGluZSBvZiBlbnRyaWVzTGluZXMkIHwgYXN5bmNcIlxuICAgICAgICBbbGluZV09XCJlbnRyeUxpbmVcIlxuICAgICAgICBbc3BvbnNvcmlzZWRdPVwiaXNFbnRyeVNwb25zb3Jpc2VkW2VudHJ5TGluZS5pZF1cIlxuICAgICAgICBbZGlzcGxheUl0ZW1zVW5pdGFyeVByaWNlXT1cImRpc3BsYXlJdGVtc1VuaXRhcnlQcmljZVwiXG4gICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCJcbiAgICAgICAgKHJlbW92ZWQpPVwiZGVsZXRlRW50cnkoJGV2ZW50KVwiXG4gICAgICAgIChyZXBsYWNlSXRlbSk9J3JlcGxhY2VJdGVtLmVtaXQobGluZSknXG4gICAgICAgIFtibG9ja1N0YXRlc109J2Jsb2NrU3RhdGVzJ1xuICAgICAgICBbbGVnYWN5TW9kZV09XCJsZWdhY3lNb2RlXCJcbiAgICAgID5cbiAgICAgIDwvbmctbWlhbS1iYXNrZXQtcHJldmlldy1saW5lPlxuICAgICAgPG5nLW1pYW0tYmFza2V0LXByZXZpZXctZGlzYWJsZWRcbiAgICAgICAgKm5nSWY9XCJsaW5lLmVudHJpZXMubm90Rm91bmQubGVuZ3RoID4gMFwiXG4gICAgICAgIFtlbnRyaWVzXT1cImxpbmUuZW50cmllcy5ub3RGb3VuZFwiXG4gICAgICAgIFthbHdheXNFeHBhbmRlZF09XCJpdGVtc0Fsd2F5c0V4cGFuZGVkXCJcbiAgICAgICAgbW9kZT1cInVuYXZhaWxhYmxlXCI+XG4gICAgICA8L25nLW1pYW0tYmFza2V0LXByZXZpZXctZGlzYWJsZWQ+XG4gICAgICA8bmctbWlhbS1iYXNrZXQtcHJldmlldy1kaXNhYmxlZFxuICAgICAgICAqbmdJZj1cImxpbmUuZW50cmllcy5vZnRlbkRlbGV0ZWQubGVuZ3RoID4gMFwiXG4gICAgICAgIFtlbnRyaWVzXT1cImxpbmUuZW50cmllcy5vZnRlbkRlbGV0ZWRcIlxuICAgICAgICBbYWx3YXlzRXhwYW5kZWRdPVwiaXRlbXNBbHdheXNFeHBhbmRlZFwiXG4gICAgICAgIG1vZGU9XCJvZnRlbkRlbGV0ZWRcIlxuICAgICAgICAoZW50cnlBZGRlZCk9XCJhZGRFbnRyeSgkZXZlbnQpXCI+XG4gICAgICA8L25nLW1pYW0tYmFza2V0LXByZXZpZXctZGlzYWJsZWQ+XG4gICAgICA8bmctbWlhbS1iYXNrZXQtcHJldmlldy1kaXNhYmxlZFxuICAgICAgICAqbmdJZj1cImxpbmUuZW50cmllcy5yZW1vdmVkLmxlbmd0aCA+IDBcIlxuICAgICAgICBbZW50cmllc109XCJsaW5lLmVudHJpZXMucmVtb3ZlZFwiXG4gICAgICAgIFthbHdheXNFeHBhbmRlZF09XCJpdGVtc0Fsd2F5c0V4cGFuZGVkXCJcbiAgICAgICAgbW9kZT1cInJlbW92ZWRcIlxuICAgICAgICBbcmVkdWNlZF09XCJ0cnVlXCJcbiAgICAgICAgKGVudHJ5QWRkZWQpPVwiYWRkRW50cnkoJGV2ZW50KVwiPlxuICAgICAgPC9uZy1taWFtLWJhc2tldC1wcmV2aWV3LWRpc2FibGVkPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fbG9hZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctbWlhbS1sb2FkZXI+PC9uZy1taWFtLWxvYWRlcj5cbiAgICAgICAgPGRpdiBpMThuPkNhbGN1bCBkZXMgaW5ncsOpZGllbnRzLi4uPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
982
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0LXByZXZpZXctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL2Jhc2tldC1wcmV2aWV3L2Jhc2tldC1wcmV2aWV3LWxpbmUvYmFza2V0LXByZXZpZXctbGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL2Jhc2tldC1wcmV2aWV3L2Jhc2tldC1wcmV2aWV3LWxpbmUvYmFza2V0LXByZXZpZXctbGluZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDckcsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM3RixPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLE1BQU0sa0JBQWtCLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbEcsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixXQUFXLEVBQ1os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QUFjOzs7Ozs7a0JBRzNDLFVBQUEsa0ZBQ0Y7Ozs7OztrQkFLMEQsVUFBQSxrRkFBaUI7Ozs7OztrQkFxQnlCLFVBQUEscUVBQUk7Ozs7OztrQkFLbkQsVUFBQSwwRUFBUzs7Ozs7O2tCQUNOLFVBQUEseUVBQVE7Ozs7OztrQkFtRDFELFVBQUEsMEZBQXlCOztRQXROM0MsK0ZBMEVlO1FBQ2YsOEhBK0ljOzs7UUExTkMsc0NBQW1CLGlCQUFBOzZLRHlDckIsMEJBQTBCO3VGQUExQiwwQkFBMEI7Y0FQdEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSw2QkFBNkI7Z0JBQ3ZDLFdBQVcsRUFBRSxzQ0FBc0M7Z0JBQ25ELFNBQVMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2dCQUNuRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7b1pBRVUsSUFBSTtrQkFBWixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxxQkFBcUI7a0JBQTdCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyx3QkFBd0I7a0JBQWhDLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNJLE9BQU87a0JBQWhCLE1BQU07WUFDRyxZQUFZO2tCQUFyQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNHLFVBQVU7a0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUGFyYW1zIH0gZnJvbSAnbWlhbS1qc29uYXBpJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZm9ya0pvaW4sIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNraXBXaGlsZSwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFdmVudFRyYWNlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19jb21wb25lbnRzL2Fic3RyYWN0cy9ldmVudC10cmFjZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2tldEVudHJ5LCBCYXNrZXRQcmV2aWV3TGluZSwgSW5ncmVkaWVudCwgUmVjaXBlIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBSZW1vdmVJbmdyZWRpZW50QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscy9iYXNrZXQtYWN0aW9ucy9yZW1vdmUtaW5ncmVkaWVudC1hY3Rpb24nO1xuaW1wb3J0IHtcbiAgQW5hbHl0aWNzU2VydmljZSxcbiAgQmFza2V0c1NlcnZpY2UsXG4gIEJhc2tldHNTeW5jaHJvbml6ZXJTZXJ2aWNlLFxuICBDb250ZXh0U2VydmljZSxcbiAgUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgUmVjaXBlc1NlcnZpY2UsXG4gIFN1cHBsaWVyc1NlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlXG59IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDdXJyZW5jeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvY3VycmVuY3kuc2VydmljZSc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBzdG9wRXZlbnRQcm9wYWdhdGlvbiB9IGZyb20gJy4uLy4uLy4uL191dGlscyc7XG5pbXBvcnQgeyBVcGRhdGVJbmdyZWRpZW50QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscy9iYXNrZXQtYWN0aW9ucy91cGRhdGUtaW5ncmVkaWVudC1hY3Rpb24nO1xuaW1wb3J0IHsgZGVlcENsb25lV2l0aENsYXNzIH0gZnJvbSAnLi4vLi4vLi4vX3V0aWxzL21ldGhvZHMvZGVlcENsb25lJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1iYXNrZXQtcHJldmlldy1saW5lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhc2tldC1wcmV2aWV3LWxpbmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYXNrZXQtcHJldmlldy1saW5lLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhc2tldFByZXZpZXdMaW5lQ29tcG9uZW50IGV4dGVuZHMgRXZlbnRUcmFjZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxpbmU6IEJhc2tldFByZXZpZXdMaW5lO1xuICBASW5wdXQoKSB1bmlxdWVMaW5lOiBib29sZWFuO1xuICBASW5wdXQoKSBibG9ja1N0YXRlczogQmVoYXZpb3JTdWJqZWN0PHsgY3VycmVudE9wZW5MaW5lOiBzdHJpbmc7IG92ZXJsYXlPcGVuOiBib29sZWFuOyBsaW5lQ29tcG9uZW50OiBCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudCB9PjtcbiAgQElucHV0KCkgZGlzcGxheVRvdGFsUHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIHJlY2lwZXNBbHdheXNFeHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpdGVtc0Fsd2F5c0V4cGFuZGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc3BsYXlJdGVtc1VuaXRhcnlQcmljZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzcG9uc29yaXNlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBsZWdhY3lNb2RlID0gZmFsc2U7XG4gIEBPdXRwdXQoKSByZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxCYXNrZXRQcmV2aWV3TGluZT4oKTtcbiAgQE91dHB1dCgpIGNvdW50Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QmFza2V0UHJldmlld0xpbmU+KCk7XG4gIEBPdXRwdXQoKSByZXBsYWNlSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8QmFza2V0UHJldmlld0xpbmU+KCk7XG4gIEBPdXRwdXQoKSBzaG93UmVjaXBlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGlkOiBzdHJpbmc7IGd1ZXN0czogbnVtYmVyIH0+KCk7XG5cbiAgZW50cmllc0xpbmVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QmFza2V0UHJldmlld0xpbmVbXT4obnVsbCk7XG4gIGV4cGFuZGVkID0gZmFsc2U7XG4gIGxvYWRpbmcgPSB0cnVlO1xuICBkaXNhYmxlSXRlbVNlbGVjdG9yID0gZmFsc2U7XG4gIGRpc2FibGVDb3VudGVyID0gZmFsc2U7XG4gIGRpc2FibGVSZW1vdmUgPSBmYWxzZTtcbiAgc2VsZWN0SXRlbSA9IGZhbHNlO1xuICBpY29uID0gSWNvbjtcbiAgcmVtb3ZpbmcgPSBmYWxzZTtcbiAgY291bnRQcm9kdWN0cyA9IDA7XG4gIGlzRW50cnlTcG9uc29yaXNlZDogeyBbZW50cnlJZDogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gIGxlZ2FjeVJlY2lwZTogUmVjaXBlO1xuICBsZWdhY3lJbmdyZWRpZW50c0VudHJpZXM6IHsgaW5nOiBJbmdyZWRpZW50OyBlbnRyeTogQmFza2V0RW50cnkgfVtdO1xuICBndWVzdHNPcHRpb25zOiBudW1iZXJbXSA9IEFycmF5KDEwMCkuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiBpbmRleCArIDEpO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyByZWNpcGVzU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNrZXRzU2VydmljZTogQmFza2V0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNrZXRTeW5jaHJvU2VydmljZTogQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwdWJsaWMgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHB1YmxpYyBzdXBwbGllcnNTZXJ2aWNlOiBTdXBwbGllcnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIHN1cHBsaWVyU2VydmljZTogU3VwcGxpZXJzU2VydmljZSxcbiAgICBwdWJsaWMgY3VycmVuY3lTZXJ2aWNlOiBDdXJyZW5jeVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gIH1cblxuICAvLyBUT0RPOiBjYW4gd2UgcmVtb3ZlIHRoZSBjb25kaXRpb24gb24gdW5pcXVlTGluZT9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0UmVtb3ZlTG9hZGluZygpO1xuICAgIHRoaXMuaW5pdFJlY2lwZUlzQmVpbmdNb2RpZmllZENoZWNrKCk7XG4gICAgdGhpcy5pbml0QmFza2V0SXNCZWluZ1VwZGF0ZWQoKTtcbiAgICBpZiAodGhpcy51bmlxdWVMaW5lKSB7XG4gICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuYnVpbGRFbnRyaWVzTGluZXMoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saW5lLmVudHJpZXMpIHtcbiAgICAgIHRoaXMuY291bnRQcm9kdWN0cyA9IHRoaXMubGluZS5lbnRyaWVzLmZvdW5kLnJlZHVjZSgodG90YWxRdWFudGl0eSwgZW50cnkpID0+IHRvdGFsUXVhbnRpdHkgKyBlbnRyeS5hdHRyaWJ1dGVzLnF1YW50aXR5LCAwKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViOiBTdWJzY3JpcHRpb24pID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UmVjaXBlc0FuZEluZ3JlZGllbnRzKGNvdW50Q2hhbmdlZCA9IGZhbHNlKTogT2JzZXJ2YWJsZTx7IGluZzogSW5ncmVkaWVudDsgZW50cnk6IEJhc2tldEVudHJ5IH1bXT4ge1xuICAgIGlmIChcbiAgICAgIHRoaXMubGVnYWN5UmVjaXBlICYmXG4gICAgICB0aGlzLmxlZ2FjeUluZ3JlZGllbnRzRW50cmllcyAmJlxuICAgICAgdGhpcy5sZWdhY3lJbmdyZWRpZW50c0VudHJpZXMubGVuZ3RoID09PSB0aGlzLmxlZ2FjeVJlY2lwZS5yZWxhdGlvbnNoaXBzLmluZ3JlZGllbnRzLmRhdGEubGVuZ3RoICYmXG4gICAgICAhY291bnRDaGFuZ2VkXG4gICAgKSB7XG4gICAgICByZXR1cm4gb2YoW10gYXMgeyBpbmc6IEluZ3JlZGllbnQ7IGVudHJ5OiBCYXNrZXRFbnRyeSB9W10pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmdldCh0aGlzLmxpbmUuaWQsIHtcbiAgICAgIGluY2x1ZGU6IFsnaW5ncmVkaWVudHMnXSxcbiAgICAgIGZpZWxkczogeyByZWNpcGVzOiBbJ251bWJlci1vZi1ndWVzdHMnLCAnaW5ncmVkaWVudHMnXSwgaW5ncmVkaWVudHM6IFsnbmFtZScsICdxdWFudGl0eScsICd1bml0J10gfVxuICAgIH0pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAocmVjaXBlID0+IHtcbiAgICAgICAgdGhpcy5sZWdhY3lSZWNpcGUgPSByZWNpcGU7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RzID0gcmVjaXBlLnJlbGF0aW9uc2hpcHMuaW5ncmVkaWVudHMuZGF0YS5tYXAoaW5nID0+XG4gICAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRFbnRyeUZyb21JbmdyZWRpZW50KGluZy5pZCwgdGhpcy5saW5lLmNvdW50KS5waXBlKFxuICAgICAgICAgICAgbWFwKChlbnRyeTogQmFza2V0RW50cnkpOiB7IGluZzogSW5ncmVkaWVudDsgZW50cnk6IEJhc2tldEVudHJ5IH0gPT4ge1xuICAgICAgICAgICAgICBpZiAodGhpcy5sZWdhY3lJbmdyZWRpZW50c0VudHJpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGVnYWN5SW5ncmVkaWVudHNFbnRyaWVzID0gW107XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5sZWdhY3lJbmdyZWRpZW50c0VudHJpZXMucHVzaCh7IGluZywgZW50cnkgfSk7XG4gICAgICAgICAgICAgIHJldHVybiB7IGluZywgZW50cnkgfTtcbiAgICAgICAgICAgIH0pKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZm9ya0pvaW4ocmVxdWVzdHMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2hhbmdlQ291bnQoY291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpbmUuY291bnQgPT09IGNvdW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGluZS5oYXNFbnRyaWVzKCkgfHwgdGhpcy5saW5lLmRpc3BsYXlNb2RlKSB7XG4gICAgICB0aGlzLmxpbmUuY291bnQgPSBjb3VudDtcbiAgICAgIHRoaXMuY291bnRDaGFuZ2VkLmVtaXQodGhpcy5saW5lKTtcbiAgICAgIC8vIEZvcmNlIHJlZnJlc2ggcmVjaXBlIGVudHJpZXNcbiAgICAgIHRoaXMuYnVpbGRFbnRyaWVzTGluZXModHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFuZGxlU3VibGluZUNvdW50Q2hhbmdlKGNvdW50KTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTdWJsaW5lQ291bnRDaGFuZ2UoY291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgIGlmIChjb3VudCA9PT0gMCkge1xuICAgICAgdGhpcy5yZW1vdmVkLmVtaXQodGhpcy5saW5lKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV3QmFza2V0RW50cnk6IEJhc2tldEVudHJ5ID0gZGVlcENsb25lV2l0aENsYXNzKHRoaXMubGluZS5yZWNvcmQpO1xuICAgIG5ld0Jhc2tldEVudHJ5LnF1YW50aXR5ID0gY291bnQ7XG4gICAgY29uc3QgdXBkYXRlUXVhbnRpdHkgPSBuZXcgVXBkYXRlSW5ncmVkaWVudEFjdGlvbihcbiAgICAgIG5ld0Jhc2tldEVudHJ5LFxuICAgICAge1xuICAgICAgICBldmVudFRyYWNlOiB0aGlzLmV2ZW50VHJhY2UsXG4gICAgICAgIHJlY2lwZUlkOiB0aGlzLmxpbmUuaWQsXG4gICAgICB9LFxuICAgICAgdGhpcy5iYXNrZXRzU2VydmljZVxuICAgICk7XG4gICAgbWVyZ2UodXBkYXRlUXVhbnRpdHkub25UaW1lb3V0LCB1cGRhdGVRdWFudGl0eS5vbkVycm9yKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyBSZXF1aXJlZCB0byByZWZyZXNoIGJhc2tldCBlbnRyeSByb3dcbiAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSB0aGlzLmxpbmUuY291bnQ7XG4gICAgICB0aGlzLmxpbmUuY291bnQgPSBudWxsO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5saW5lLmNvdW50ID0gcHJldmlvdXNWYWx1ZTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgICB0aGlzLmJhc2tldFN5bmNocm9TZXJ2aWNlLmFkZFRvQWN0aW9uTGlzdChcbiAgICAgIFt1cGRhdGVRdWFudGl0eV1cbiAgICApO1xuICAgIHVwZGF0ZVF1YW50aXR5Lm9uU3VjY2Vzcy5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmxpbmUuY291bnQgPSBuZXdCYXNrZXRFbnRyeS5xdWFudGl0eTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlbG9hZEJhc2tldCgpLnN1YnNjcmliZShcbiAgICAgICAgICAoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgJ2VudHJ5LmNoYW5nZS1xdWFudGl0eScsXG4gICAgICB0aGlzLnBhdGgsXG4gICAgICB7XG4gICAgICAgIGVudHJ5X25hbWU6IHRoaXMubGluZS5yZWNvcmQubmFtZSxcbiAgICAgICAgaXRlbV9pZDogdGhpcy5saW5lLnJlY29yZC5zZWxlY3RlZEl0ZW0uaWQsXG4gICAgICAgIGV4dF9pdGVtX2lkOiB0aGlzLmxpbmUucmVjb3JkLnNlbGVjdGVkSXRlbS5hdHRyaWJ1dGVzWydleHQtaWQnXSxcbiAgICAgICAgaXRlbV9lYW46IHRoaXMubGluZS5yZWNvcmQuc2VsZWN0ZWRJdGVtLmF0dHJpYnV0ZXMuZWFuLFxuICAgICAgICBwcm9kdWN0X3F1YW50aXR5OiB0aGlzLmxpbmUucmVjb3JkLmF0dHJpYnV0ZXMucXVhbnRpdHkudG9TdHJpbmcoKSxcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLmxpbmUucmVjaXBlPy5pZFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICB0b2dnbGVFeHBhbmRlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5saW5lLmhhc0VudHJpZXMoKSB8fFxuICAgICAgdGhpcy51bmlxdWVMaW5lIHx8XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50LmNsYXNzTmFtZSA9PT0gJ2lucHV0LWNvbnRhaW5lcicgfHxcbiAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQuY2xhc3NOYW1lID09PSAncmVtb3ZlJyB8fFxuICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudC5ub2RlTmFtZSA9PT0gJ3N2ZydcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmV4cGFuZGVkID0gdGhpcy5yZWNpcGVzQWx3YXlzRXhwYW5kZWQgPyB0cnVlIDogIXRoaXMuZXhwYW5kZWQ7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIGlmICghdGhpcy5lbnRyaWVzTGluZXMkLnZhbHVlKSB7XG4gICAgICB0aGlzLmJ1aWxkRW50cmllc0xpbmVzKCk7XG4gICAgfVxuICB9XG5cbiAgZGVsZXRlRW50cnkobGluZTogQmFza2V0UHJldmlld0xpbmUpOiB2b2lkIHtcbiAgICBjb25zdCBlbnRyeSA9IGxpbmUucmVjb3JkO1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAnZW50cnkuZGVsZXRlZCcsXG4gICAgICB0aGlzLnBhdGgsXG4gICAgICB7XG4gICAgICAgIGVudHJ5X25hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICAgIGl0ZW1faWQ6IGVudHJ5LnNlbGVjdGVkSXRlbS5pZCxcbiAgICAgICAgZXh0X2l0ZW1faWQ6IGVudHJ5LnNlbGVjdGVkSXRlbS5hdHRyaWJ1dGVzWydleHQtaWQnXSxcbiAgICAgICAgaXRlbV9lYW46IGVudHJ5LnNlbGVjdGVkSXRlbS5lYW4sXG4gICAgICAgIHByb2R1Y3RfcXVhbnRpdHk6IGVudHJ5LnF1YW50aXR5LnRvU3RyaW5nKCksXG4gICAgICAgIHJlY2lwZV9pZDogdGhpcy5saW5lLnJlY2lwZT8uaWRcbiAgICAgIH1cbiAgICApO1xuICAgIGNvbnN0IGRlbGV0ZWRCYXNrZXRFbnRyeTogQmFza2V0RW50cnkgPSBkZWVwQ2xvbmVXaXRoQ2xhc3MoZW50cnkpO1xuICAgIGRlbGV0ZWRCYXNrZXRFbnRyeS5xdWFudGl0eSA9IDA7XG4gICAgY29uc3QgcmVtb3ZlSW5ncmVkaWVudCA9IG5ldyBSZW1vdmVJbmdyZWRpZW50QWN0aW9uKFxuICAgICAgZGVsZXRlZEJhc2tldEVudHJ5LFxuICAgICAge1xuICAgICAgICByZWNpcGVJZDogdGhpcy5saW5lLmlkLFxuICAgICAgICBpbmdyZWRpZW50SWQ6IGxpbmUuaW5ncmVkaWVudC5pZCxcbiAgICAgICAgZXZlbnRUcmFjZTogdGhpcy5ldmVudFRyYWNlXG4gICAgICB9LFxuICAgICAgdGhpcy5iYXNrZXRzU2VydmljZVxuICAgICk7XG4gICAgdGhpcy5iYXNrZXRTeW5jaHJvU2VydmljZS5hZGRUb0FjdGlvbkxpc3QoXG4gICAgICBbcmVtb3ZlSW5ncmVkaWVudF1cbiAgICApO1xuICB9XG5cbiAgY2hhbmdlUHJvZHVjdChsaW5lOiBCYXNrZXRQcmV2aWV3TGluZSk6IHZvaWQge1xuICAgIHRoaXMuYmxvY2tTdGF0ZXM/Lm5leHQoeyBjdXJyZW50T3BlbkxpbmU6IGxpbmUuaWQsIG92ZXJsYXlPcGVuOiB0cnVlLCBsaW5lQ29tcG9uZW50OiB0aGlzIH0pO1xuICAgIHRoaXMuc2VsZWN0SXRlbSA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMucmVwbGFjZUl0ZW0uZW1pdChsaW5lKTtcbiAgfVxuXG4gIC8vIFRPRE86IHJlbW92ZWQgLSBuZXZlciBjYWxsZWQgP1xuICBwcm9kdWN0Q2hvc2VuKGJhc2tldEVudHJ5SWQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdEl0ZW0gPSBmYWxzZTtcbiAgICBpZiAoYmFza2V0RW50cnlJZCkge1xuICAgICAgdGhpcy5kaXNhYmxlSXRlbVNlbGVjdG9yID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5ibG9ja1N0YXRlcz8ubmV4dCh7IGN1cnJlbnRPcGVuTGluZTogbnVsbCwgb3ZlcmxheU9wZW46IGZhbHNlLCBsaW5lQ29tcG9uZW50OiBudWxsIH0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyhmYWxzZSk7XG4gIH1cblxuICBidWlsZEVudHJpZXNMaW5lcyhjb3VudENoYW5nZWQgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxlZ2FjeU1vZGUpIHtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSBbXG4gICAgICAgIC4uLnRoaXMubGluZS5lbnRyaWVzLmZvdW5kLFxuICAgICAgICAuLi50aGlzLmxpbmUuZW50cmllcy5ub3RGb3VuZCxcbiAgICAgICAgLi4udGhpcy5saW5lLmVudHJpZXMub2Z0ZW5EZWxldGVkLFxuICAgICAgICAuLi50aGlzLmxpbmUuZW50cmllcy5yZW1vdmVkXTtcblxuICAgICAgdGhpcy5pbml0UmVjaXBlc0FuZEluZ3JlZGllbnRzKGNvdW50Q2hhbmdlZCkucGlwZShcbiAgICAgICAgdGFwKChyZWZldGNoZWRFbnRyaWVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbnRyaWVzTGluZXMkLm5leHQoZW50cmllc1xuICAgICAgICAgICAgLmZpbHRlcihlbnRyeSA9PiB0aGlzLmxpbmUuZW50cmllcy5mb3VuZC5tYXAoZSA9PiBlLmlkKS5pbmNsdWRlcyhlbnRyeS5pZCkpXG4gICAgICAgICAgICAubWFwKGVudHJ5ID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZm91bmRVcGRhdGVkRW50cnkgPSByZWZldGNoZWRFbnRyaWVzLmZpbmQoaWUgPT4gaWUuZW50cnkuaWQgPT09IGVudHJ5LmlkKTtcbiAgICAgICAgICAgICAgcmV0dXJuIEJhc2tldFByZXZpZXdMaW5lLmZyb21CYXNrZXRFbnRyeShmb3VuZFVwZGF0ZWRFbnRyeS5lbnRyeSwgdGhpcy5sZWdhY3lSZWNpcGUsIGZvdW5kVXBkYXRlZEVudHJ5LmluZyk7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5pbml0U3BvbnNvcmlzZWRFbnRyaWVzKCkpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBhZGRFbnRyeShlbnRyeTogQmFza2V0RW50cnkpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgJ2VudHJ5LmFkZGVkJyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgZW50cnlfbmFtZTogZW50cnkubmFtZSxcbiAgICAgICAgaXRlbV9pZDogZW50cnkuc2VsZWN0ZWRJdGVtLmlkLFxuICAgICAgICBleHRfaXRlbV9pZDogZW50cnkuc2VsZWN0ZWRJdGVtLmF0dHJpYnV0ZXNbJ2V4dC1pZCddLFxuICAgICAgICBpdGVtX2VhbjogZW50cnkuc2VsZWN0ZWRJdGVtLmVhbixcbiAgICAgICAgcHJvZHVjdF9xdWFudGl0eTogZW50cnkucXVhbnRpdHkudG9TdHJpbmcoKSxcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLmxpbmUucmVjaXBlPy5pZFxuICAgICAgfVxuICAgICk7XG4gICAgZW50cnkuc3RhdHVzID0gJ2FjdGl2ZSc7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZW50cnkuc2F2ZSgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5iYXNrZXRzU2VydmljZS5yZWxvYWRCYXNrZXQoKSlcbiAgICApLnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHRyYWNrQnlJdGVtSWQoaW5kZXg6IG51bWJlciwgbGluZTogQmFza2V0UHJldmlld0xpbmUpOiBCYXNrZXRQcmV2aWV3TGluZSB8IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiBsaW5lID8gbGluZS5yZWNvcmRbJ3NlbGVjdGVkLWl0ZW0taWQnXSArICctJyArIGxpbmUucmVjb3JkLmF0dHJpYnV0ZXMucXVhbnRpdHkgOiBudWxsO1xuICB9XG5cbiAgdG9nZ2xlUmVjaXBlRGlzcGxheShldmVudDogRXZlbnQsIGFkZFJlY2lwZSA9IGZhbHNlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxpbmUuaXNSZWNpcGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGFkZFJlY2lwZSkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIGZvcmtKb2luKFtcbiAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmlzTG9nZ2VkJC5hc09ic2VydmFibGUoKS5waXBlKHRha2UoMSkpLFxuICAgICAgICAgIHRoaXMucG9zU2VydmljZS5wb3NXYXNJbml0aWFsaXplZCgpLnBpcGUodGFrZSgxKSlcbiAgICAgICAgXSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgY29uc3QgaXNIb29rT2sgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmhvb2tDYWxsYmFjayhyZXNbMF0sIHJlc1sxXSk7XG4gICAgICAgICAgaWYgKGlzSG9va09rKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFJlY2lwZUFjdGlvbk9LKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5kaXNwbGF5KHRoaXMubGluZS5pZCwgeyBndWVzdHM6IHRoaXMubGluZS5jb3VudCwgaGVscEJ1dHRvbkFsbG93ZWQ6IGZhbHNlIH0pO1xuICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICAgJ3JlY2lwZS5kaXNwbGF5JyxcbiAgICAgICAgdGhpcy5wYXRoLFxuICAgICAgICB7XG4gICAgICAgICAgcmVjaXBlX2lkOiB0aGlzLmxpbmUuaWQsXG4gICAgICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMub3JpZ2luVHJhY2UucHJvcHMuY2F0ZWdvcnlfaWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBhZGRSZWNpcGVBY3Rpb25PSygpOiB2b2lkIHtcbiAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLmFkZFJlY2lwZXNUb0Jhc2tldChbdGhpcy5saW5lLmlkXSwgdGhpcy5saW5lLmNvdW50LCB7IG9yaWdpblBhdGg6IHRoaXMucGF0aCwgcHJvcHM6IHRoaXMucHJvcHMgfSk7XG4gICAgdGhpcy5yZWNpcGVzU2VydmljZS5kaXNwbGF5KHRoaXMubGluZS5pZCwgeyBndWVzdHM6IHRoaXMubGluZS5jb3VudCwgcHJldmlld01vZGU6IHRydWUgfSk7XG4gIH1cblxuICByZW1vdmVMaW5lKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHN0b3BFdmVudFByb3BhZ2F0aW9uKGV2ZW50KTtcbiAgICB0aGlzLnJlbW92aW5nID0gdHJ1ZTtcbiAgICB0aGlzLnJlbW92ZWQuZW1pdCh0aGlzLmxpbmUpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaWNlSW50ZWdlclBhcnQoKTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnByaWNlVG9EaXNwbGF5KCk/LnRvU3RyaW5nKCkuc3BsaXQoJy4nKTtcbiAgICByZXR1cm4gdmFsdWVzPy5sZW5ndGggPiAwID8gdmFsdWVzWzBdIDogJzAnO1xuICB9XG5cbiAgcHJpY2VEZWNpbWFsUGFydCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMucHJpY2VUb0Rpc3BsYXkoKT8udG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIHJldHVybiB2YWx1ZXM/Lmxlbmd0aCA9PT0gMiA/IHZhbHVlc1sxXSA6ICcwMCc7XG4gIH1cblxuICBwcml2YXRlIGluaXRSZW1vdmVMb2FkaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlV2lsbEJlUmVtb3ZlZCh0aGlzLmxpbmUuaWQpLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShpc1JlbW92aW5nID0+IGlzUmVtb3ZpbmcgPT09IHRoaXMucmVtb3ZpbmcpXG4gICAgICApLnN1YnNjcmliZShpc1JlbW92aW5nID0+IHtcbiAgICAgICAgdGhpcy5yZW1vdmluZyA9IGlzUmVtb3Zpbmc7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFJlY2lwZUlzQmVpbmdNb2RpZmllZENoZWNrKCk6IHZvaWQge1xuICAgIGxldCByZWNpcGVJc1VwZGF0aW5nID0gZmFsc2U7XG4gICAgaWYgKHRoaXMubGluZS5pc1JlY2lwZSkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlSXNCZWluZ1JlbW92ZWQodGhpcy5saW5lLmlkKSwgdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVJc0JlaW5nVXBkYXRlZCh0aGlzLmxpbmUuaWQpXSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcChyZXMgPT4gcmVzWzBdIHx8IHJlc1sxXSksXG4gICAgICAgICAgICBza2lwV2hpbGUoaXNVcGRhdGluZyA9PiBpc1VwZGF0aW5nICE9PSByZWNpcGVJc1VwZGF0aW5nKVxuICAgICAgICAgICkuc3Vic2NyaWJlKGlzVXBkYXRpbmcgPT4ge1xuICAgICAgICAgIHJlY2lwZUlzVXBkYXRpbmcgPSBpc1VwZGF0aW5nO1xuICAgICAgICAgIHRoaXMuZGlzYWJsZUNvdW50ZXIgPSBpc1VwZGF0aW5nO1xuICAgICAgICAgIHRoaXMuZGlzYWJsZVJlbW92ZSA9IGlzVXBkYXRpbmc7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRCYXNrZXRJc0JlaW5nVXBkYXRlZCgpOiB2b2lkIHtcbiAgICBsZXQgYmFza2V0SXNVcGRhdGluZyA9IGZhbHNlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlc1dpbGxCZUFkZGVkKCksXG4gICAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlc1dpbGxCZVJlbW92ZWQoKSxcbiAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVzV2lsbEJlVXBkYXRlZCgpXG4gICAgICBdKS5waXBlKFxuICAgICAgICBtYXAocmVzID0+IHJlc1swXSB8fCByZXNbMV0gfHwgcmVzWzJdKSxcbiAgICAgICAgc2tpcFdoaWxlKGlzVXBkYXRpbmcgPT4gaXNVcGRhdGluZyAhPT0gYmFza2V0SXNVcGRhdGluZylcbiAgICAgICkuc3Vic2NyaWJlKGlzVXBkYXRpbmcgPT4ge1xuICAgICAgICBiYXNrZXRJc1VwZGF0aW5nID0gaXNVcGRhdGluZztcbiAgICAgICAgdGhpcy5kaXNhYmxlSXRlbVNlbGVjdG9yID0gaXNVcGRhdGluZztcbiAgICAgICAgaWYgKCF0aGlzLmxpbmUuaXNSZWNpcGUpIHtcbiAgICAgICAgICB0aGlzLmRpc2FibGVDb3VudGVyID0gaXNVcGRhdGluZztcbiAgICAgICAgICB0aGlzLmRpc2FibGVSZW1vdmUgPSBpc1VwZGF0aW5nO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJpY2VUb0Rpc3BsYXkoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5saW5lLmlzUmVjaXBlIHx8ICF0aGlzLmRpc3BsYXlJdGVtc1VuaXRhcnlQcmljZSB8fCB0aGlzLmxpbmUucHJpY2UgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmxpbmUucHJpY2U7XG4gICAgfVxuICAgIGNvbnN0IGJlSXRlbSA9IHRoaXMubGluZS5yZWNvcmQuYXR0cmlidXRlc1snYmFza2V0LWVudHJpZXMtaXRlbXMnXS5maW5kKGkgPT5cbiAgICAgIGkuaXRlbV9pZCA9PT0gdGhpcy5saW5lLnJlY29yZC5hdHRyaWJ1dGVzWydzZWxlY3RlZC1pdGVtLWlkJ11cbiAgICApO1xuICAgIC8vIGJlSXRlbSBjYW4gYmUgbnVsbCBhZnRlciByZXBsYWNpbmcgYW4gaXRlbSwgYmVmb3JlIHRoZSB2aWV3IGlzIHJlbG9hZGVkIHdpdGggdGhlIG5ldyBpdGVtXG4gICAgcmV0dXJuIGJlSXRlbSA/IHBhcnNlRmxvYXQoYmVJdGVtWyd1bml0LXByaWNlJ10pLnRvRml4ZWQoMikgOiAnMC4wMCc7XG4gIH1cblxuICBwcml2YXRlIGluaXRTcG9uc29yaXNlZEVudHJpZXMoKTogU3Vic2NyaXB0aW9uIHtcbiAgICBjb25zdCBwYXJhbXM6IElQYXJhbXMgPSB7XG4gICAgICBpbmNsdWRlOiBbJ2luZ3JlZGllbnRzJ10sXG4gICAgICBmaWVsZHM6IHsgcmVjaXBlczogWydpbmdyZWRpZW50cyddLCBpbmdyZWRpZW50czogWydmb3JjZWQtZWFucyddIH1cbiAgICB9O1xuICAgIGxldCBpbmdyZWRpZW50czogSW5ncmVkaWVudFtdID0gW107XG4gICAgcmV0dXJuIHRoaXMucmVjaXBlc1NlcnZpY2UuZ2V0KHRoaXMubGluZS5pZCwgcGFyYW1zKS5waXBlKHNraXBXaGlsZShyZXMgPT4gcmVzLmlzX2xvYWRpbmcpKS5zdWJzY3JpYmUocmVjaXBlID0+IHtcbiAgICAgIGluZ3JlZGllbnRzID0gcmVjaXBlLnJlbGF0aW9uc2hpcHMuaW5ncmVkaWVudHMuZGF0YTtcbiAgICAgIGNvbnN0IGVudHJpZXNMaW5lcyA9IHRoaXMuZW50cmllc0xpbmVzJC52YWx1ZTtcbiAgICAgIGVudHJpZXNMaW5lcy5mb3JFYWNoKGVudHJ5TGluZSA9PiB7XG4gICAgICAgIHRoaXMuaXNFbnRyeVNwb25zb3Jpc2VkW2VudHJ5TGluZS5pZF0gPSBpbmdyZWRpZW50cy5zb21lKGluZyA9PlxuICAgICAgICAgIGluZy5hdHRyaWJ1dGVzWydmb3JjZWQtZWFucyddLnNvbWUoZWFuID0+IGVhbiA9PT0gZW50cnlMaW5lLnJlY29yZC5zZWxlY3RlZEl0ZW0uYXR0cmlidXRlcy5lYW4pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWxlZ2FjeU1vZGU7IGVsc2UgbGVnYWN5Vmlld1wiPlxuICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lXCIgaWQ9XCJ7e2xpbmUuaWR9fVwiPlxuICAgIDwhLS0gTEVGVCBCTE9DSyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19sZWZ0XCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsnbWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19sZWZ0X19iaWcnOiBjb250ZXh0U2VydmljZS5ndWVzdHNJbnB1dE9uTXlNZWFsc31cIj5cbiAgICAgIDwhLS0gUElDVFVSRSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX3BpY3R1cmVcIj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIFthbHRdPVwibGluZS50aXRsZSB8fCAobGluZS5pc1JlY2lwZSA/ICdJbWFnZSBkZSByZWNldHRlJyA6ICdJbWFnZSBkZSBwcm9kdWl0JylcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZWNpcGVEaXNwbGF5KCRldmVudClcIlxuICAgICAgICAgIFtzcmNdPVwibGluZS5waWN0dXJlXCJcbiAgICAgICAgICAoZXJyb3IpPVwiJGV2ZW50LnRhcmdldFsnc3JjJ10gPSBsaW5lLmlzUmVjaXBlID8gY29udGV4dFNlcnZpY2UuZGVmYXVsdFJlY2lwZVBpY3R1cmUgOiBjb250ZXh0U2VydmljZS5kZWZhdWx0SW5ncmVkaWVudFBpY3R1cmVcIlxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gQ09VTlRFUiAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCIhY29udGV4dFNlcnZpY2UuZ3Vlc3RzSW5wdXRPbk15TWVhbHNcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fY291bnRlclwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1BvdXIgJyArIGxpbmUuY291bnQgKyAnIHBlcnNvbm5lcydcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLWRzLXRleHQgd2VpZ2h0LXh4bCBzaXplLW1cIiBhcmlhLWhpZGRlbj1cInRydWVcIj57eyBsaW5lLmNvdW50IH19PC9zcGFuPlxuICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvcmVjaXBlLWNvdW50ZXIuc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIFJJR0hUIEJMT0NLIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX3JpZ2h0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX190b3BcIj5cbiAgICAgICAgPCEtLSBJTkZPUyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faW5mb3NcIj5cbiAgICAgICAgICA8IS0tIFRJVExFIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX3RpdGxlIG1pYW0tZHMtdGV4dCB3ZWlnaHQteHhsIHNpemUtbVwiXG4gICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUmVjaXBlRGlzcGxheSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyBsaW5lLnRpdGxlIHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0gUFJPRFVDVCBDT1VOVCAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19wcm9kdWN0LWNvdW50IG1pYW0tZHMtdGV4dCB3ZWlnaHQtbCBzaXplLXNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImNvdW50UHJvZHVjdHMgKyAnICcgKyAoY291bnRQcm9kdWN0cyA8PSAxID8gJ3Byb2R1aXQnIDogJ3Byb2R1aXRzJylcIj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7IGNvdW50UHJvZHVjdHMgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwiY291bnRQcm9kdWN0cyA8PSAxXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+cHJvZHVpdDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCJjb3VudFByb2R1Y3RzID4gMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnByb2R1aXRzPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaW5lLnByaWNlICYmIGxpbmUucHJpY2UgIT09ICdOYU4nXCI+XG4gICAgICAgICAgICA8IS0tIFBSSUNFIC0tPlxuICAgICAgICAgICAgPG5nLW1pYW0tcHJpY2VcbiAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX3ByaWNlLWxhYmVsIG1pYW0tZHMtdGV4dCB3ZWlnaHQteHhsXCJcbiAgICAgICAgICAgICAgW3ByaWNlXT1cImxpbmUucHJpY2UgfCBjdXJyZW5jeTogY3VycmVuY3lTZXJ2aWNlLmNvZGVcIj5cbiAgICAgICAgICAgIDwvbmctbWlhbS1wcmljZT5cbiAgICAgICAgICAgIDwhLS0gUFJJQ0UgUEVSIFBFUlNPTiAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX3ByaWNlLXBlci1wZXJzb24tbGFiZWwgbWlhbS1kcy10ZXh0IHdlaWdodC1sIHNpemUteHNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidzb2l0ICcgKyAoKCtsaW5lLnByaWNlIC8gK2xpbmUuY291bnQpIHwgY3VycmVuY3k6IGN1cnJlbmN5U2VydmljZS5jb2RlKSArICcgcGFyIHBlcnNvbm5lJ1wiPlxuICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBpMThuPnNvaXQgPC9zcGFuPlxuICAgICAgICAgICAgICA8bmctbWlhbS1wcmljZSBbcHJpY2VdPVwiKCtsaW5lLnByaWNlIC8gK2xpbmUuY291bnQpIHwgY3VycmVuY3k6IGN1cnJlbmN5U2VydmljZS5jb2RlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9uZy1taWFtLXByaWNlPlxuICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBpMThuPi9wZXJzPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPCEtLSBHVUVTVFMgRFJPUERPV04gLS0+XG4gICAgICAgICAgPG5nLW1pYW0tZ3Vlc3RzLWRyb3Bkb3duXG4gICAgICAgICAgICAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLmd1ZXN0c0lucHV0T25NeU1lYWxzXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZE9wdGlvbl09XCJsaW5lLmNvdW50XCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cImd1ZXN0c09wdGlvbnNcIlxuICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cImNoYW5nZUNvdW50KCRldmVudClcIlxuICAgICAgICAgID48L25nLW1pYW0tZ3Vlc3RzLWRyb3Bkb3duPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBSRU1PVkUgLS0+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX3JlbW92ZSBtaWFtLWRzLWJ1dHRvbiBnaG9zdFwiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOiBkaXNhYmxlUmVtb3ZlfVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFyZW1vdmluZyAmJiByZW1vdmVMaW5lKCRldmVudClcIiBhcmlhLWxhYmVsPVwiU3VwcHJpbWVyXCI+XG4gICAgICAgICAgPGltZyAqbmdJZj1cIiFyZW1vdmluZyBlbHNlIHJlbW92ZUxvYWRlclwiXG4gICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL3RyYXNoLnN2Z1wiIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVtb3ZlTG9hZGVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tZHMtbG9hZGVyXCI+PC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gTElOSyAtLT5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2xpbmsgbWlhbS1kcy1idXR0b24gZ2hvc3RcIiAoY2xpY2spPVwidG9nZ2xlUmVjaXBlRGlzcGxheSgkZXZlbnQpXCI+XG4gICAgICAgIDxzcGFuIGkxOG4+Vm9pciBsZXMgcHJvZHVpdHM8L3NwYW4+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9hcnJvdy1yaWdodC5zdmdcIiBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNsZWdhY3lWaWV3PlxuICA8ZGl2XG4gICAgaWQ9XCJ7e2xpbmUuaWR9fVwiXG4gICAgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmUgbGVnYWN5XCJcbiAgICBbbmdDbGFzc109XCJ7Y2xpY2thYmxlOiBsaW5lLmhhc0VudHJpZXMoKSB8fCBsaW5lLmRpc3BsYXlNb2RlLCBleHBhbmRlZDogZXhwYW5kZWQsIGVsZXZhdGUgOiBzZWxlY3RJdGVtfVwiXG4gICAgKGNsaWNrKT1cImxpbmUuZGlzcGxheU1vZGUgPyB0b2dnbGVSZWNpcGVEaXNwbGF5KCRldmVudCkgOiB0b2dnbGVFeHBhbmRlZCgkZXZlbnQpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2xlZnRcIj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiF1bmlxdWVMaW5lICYmICFsaW5lLmRpc3BsYXlNb2RlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIGdob3N0IHNxdWFyZSBtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX3JlbW92ZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6IGRpc2FibGVSZW1vdmUsICdsb2FkaW5nJzogcmVtb3Zpbmd9XCIgKGNsaWNrKT1cInJlbW92ZUxpbmUoJGV2ZW50KVwiIGFyaWEtbGFiZWw9XCJTdXBwcmltZXJcIj5cbiAgICAgICAgICA8bmctbWlhbS1pY29uXG4gICAgICAgICAgICAqbmdJZj1cIiFyZW1vdmluZyBlbHNlIHJlbW92ZUxvYWRlclwiXG4gICAgICAgICAgICBbaWNvbk5hbWVdPSdpY29uLlRyYXNoX2dyZXlUZXh0RGFyaydcbiAgICAgICAgICAgIFtoZWlnaHRdPVwiMTZcIlxuICAgICAgICAgICAgW3dpZHRoXT1cIjE2XCJcbiAgICAgICAgICA+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNyZW1vdmVMb2FkZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXJcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19waWN0dXJlXCI+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgW2FsdF09XCJsaW5lLnRpdGxlIHx8IChsaW5lLmlzUmVjaXBlID8gJ0ltYWdlIGRlIHJlY2V0dGUnIDogJ0ltYWdlIGRlIHByb2R1aXQnKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUmVjaXBlRGlzcGxheSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtzcmNdPVwibGluZS5waWN0dXJlXCJcbiAgICAgICAgICAgIChlcnJvcik9XCIkZXZlbnQudGFyZ2V0WydzcmMnXSA9IGxpbmUuaXNSZWNpcGUgPyBjb250ZXh0U2VydmljZS5kZWZhdWx0UmVjaXBlUGljdHVyZSA6IGNvbnRleHRTZXJ2aWNlLmRlZmF1bHRJbmdyZWRpZW50UGljdHVyZVwiXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fZGV0YWlsc1wiIFtuZ0NsYXNzXT1cInsnd2l0aC1pbmxpbmUtdGFnJzogbGluZS5pbmxpbmVUYWd9XCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNwb25zb3Jpc2VkXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX3Nwb25zb3Jpc2VkXCI+XG4gICAgICAgICAgICA8c3BhbiBpMThuPlNwb25zb3Jpc8OpPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKGNsaWNrKT1cInRvZ2dsZVJlY2lwZURpc3BsYXkoJGV2ZW50KVwiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX190aXRsZVwiPlxuICAgICAgICAgICAgPHN0cm9uZz57eyBsaW5lLnRpdGxlIHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJsaW5lLmRlc2NyaXB0aW9uLmxlbmd0aCA+IDBcIj57eyBsaW5lLmRlc2NyaXB0aW9uWzBdIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibGluZS5kZXNjcmlwdGlvbi5sZW5ndGggPiAxXCI+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBkIG9mIGxpbmUuZGVzY3JpcHRpb24uc2xpY2UoMSwgbGluZS5kZXNjcmlwdGlvbi5sZW5ndGgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2Rlc2NyaXB0aW9uX19wYXJ0XCI+e3sgZCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgY3VycmVuY3lTZXJ2aWNlLnN5bWJvbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4+IC88L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGkxOG4+IHBlcnNvbm5lIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2FjdGlvbnNcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIobGluZS5oYXNFbnRyaWVzKCkgJiYgIXVuaXF1ZUxpbmUpXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX3Nob3dEZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydleHBhbmRlZCc6IGV4cGFuZGVkfVwiPlxuICAgICAgICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwiZXhwYW5kZWRcIj5NYXNxdWVyIGxlIGTDqXRhaWw8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCIhZXhwYW5kZWRcIj5Wb2lyIGxlIGTDqXRhaWw8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgaTE4biAqbmdJZj1cImxpbmUuZGlzcGxheU1vZGVcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9fc2hvd0RldGFpbHNcIj5cbiAgICAgICAgICAgICAgVm9pciBsYSByZWNldHRlXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbGluZS5pc1JlY2lwZVwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19jaGFuZ2VcIlxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUHJvZHVjdChsaW5lKVwiPlxuICAgICAgICAgICAgICA8YSBpMThuIFtuZ0NsYXNzXT1cInsnZGlzYWJsZSc6IGRpc2FibGVJdGVtU2VsZWN0b3J9XCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2NoYW5nZV9fbGlua1wiPkNoYW5nZXIgZCdhcnRpY2xlPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibGluZS5pbmxpbmVUYWdcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9faW5saW5lVGFnX19jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9faXRlbV9faW5saW5lVGFnXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IHdvcmQgb2YgbGluZS5pbmxpbmVUYWcuc3BsaXQoJyAnKVwiPnt7IHdvcmQgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19yaWdodFwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZGlzcGxheVRvdGFsUHJpY2luZyB8fCAhbGluZS5pc1JlY2lwZSBlbHNlIHByaWNlUGVyZ3Vlc3RcIlxuICAgICAgICAgICAgIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19wcmljZVwiPlxuICAgICAgICAgIDxzcGFuPnt7IHByaWNlSW50ZWdlclBhcnQoKSB9fSw8L3NwYW4+XG4gICAgICAgICAgPHNwYW4+e3sgcHJpY2VEZWNpbWFsUGFydCgpIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuPiB7eyBjdXJyZW5jeVNlcnZpY2Uuc3ltYm9sIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNwcmljZVBlcmd1ZXN0PlxuICAgICAgICAgIDxuZy1taWFtLXJlY2lwZS1wcmljaW5nIFtyZWNpcGVJZF09XCJsaW5lLmlkXCIgW3NlcnZlc109XCJsaW5lLmNvdW50XCI+PC9uZy1taWFtLXJlY2lwZS1wcmljaW5nPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19jb3VudFwiIFthdHRyLmFyaWEtbGFiZWxdPVwibGluZS5pc1JlY2lwZSA/ICdwb3VyICcgKyBsaW5lLmNvdW50ICsgJyAnICsgKGxpbmUuY291bnQgPiAxID8gJ3BlcnNvbm5lcycgOiAncGVyc29ubmUnKSA6ICcnXCI+XG4gICAgICAgICAgPGRpdiBpMThuICpuZ0lmPVwibGluZS5pc1JlY2lwZVwiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lX19pdGVtX19jb3VudF9fZm9yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+cG91cjwvZGl2PlxuICAgICAgICAgIDxuZy1taWFtLWNvdW50ZXItaW5wdXQgW2RlYm91bmNlVGltZV09XCIzMDBcIiBbdmFsdWVdPVwibGluZS5jb3VudFwiICh2YWx1ZUNoYW5nZSk9XCJjaGFuZ2VDb3VudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5SYW5nZV09XCJsaW5lLmlzUmVjaXBlID8gMSA6IDBcIiBbZGlzYWJsZV09XCJkaXNhYmxlQ291bnRlclwiPlxuICAgICAgICAgIDwvbmctbWlhbS1jb3VudGVyLWlucHV0PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJsaW5lLmlzUmVjaXBlXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWxpbmVfX2l0ZW1fX2NvdW50X19wZW9wbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCJsaW5lLmNvdW50ID4gMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnBlcnNvbm5lczwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4gKm5nSWY9XCIhKGxpbmUuY291bnQgPiAxKVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnBlcnNvbm5lPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImxpbmUuZGlzcGxheU1vZGVcIiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fYWRkX19idXR0b25cIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibS1idXR0b24tcHJpbWFyeVwiIChjbGljayk9XCJ0b2dnbGVSZWNpcGVEaXNwbGF5KCRldmVudCwgdHJ1ZSlcIiBhcmlhLWxhYmVsPVwiQWpvdXRlciBhdSBwYW5pZXJcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIHByaW1hcnlDb2xvcj0nI2ZmZicgW2ljb25OYW1lXT1cImljb24uQ2FydFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1saW5lc1wiICpuZ0lmPVwiZXhwYW5kZWRcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgZWxzZSBsb2FkZXJcIj5cbiAgICAgIDxuZy1taWFtLWJhc2tldC1wcmV2aWV3LWxpbmVcbiAgICAgICAgKm5nRm9yPVwibGV0IGVudHJ5TGluZSBvZiBlbnRyaWVzTGluZXMkIHwgYXN5bmNcIlxuICAgICAgICBbbGluZV09XCJlbnRyeUxpbmVcIlxuICAgICAgICBbc3BvbnNvcmlzZWRdPVwiaXNFbnRyeVNwb25zb3Jpc2VkW2VudHJ5TGluZS5pZF1cIlxuICAgICAgICBbZGlzcGxheUl0ZW1zVW5pdGFyeVByaWNlXT1cImRpc3BsYXlJdGVtc1VuaXRhcnlQcmljZVwiXG4gICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCJcbiAgICAgICAgKHJlbW92ZWQpPVwiZGVsZXRlRW50cnkoJGV2ZW50KVwiXG4gICAgICAgIChyZXBsYWNlSXRlbSk9J3JlcGxhY2VJdGVtLmVtaXQobGluZSknXG4gICAgICAgIFtibG9ja1N0YXRlc109J2Jsb2NrU3RhdGVzJ1xuICAgICAgICBbbGVnYWN5TW9kZV09XCJsZWdhY3lNb2RlXCJcbiAgICAgID5cbiAgICAgIDwvbmctbWlhbS1iYXNrZXQtcHJldmlldy1saW5lPlxuICAgICAgPG5nLW1pYW0tYmFza2V0LXByZXZpZXctZGlzYWJsZWRcbiAgICAgICAgKm5nSWY9XCJsaW5lLmVudHJpZXMubm90Rm91bmQubGVuZ3RoID4gMFwiXG4gICAgICAgIFtlbnRyaWVzXT1cImxpbmUuZW50cmllcy5ub3RGb3VuZFwiXG4gICAgICAgIFthbHdheXNFeHBhbmRlZF09XCJpdGVtc0Fsd2F5c0V4cGFuZGVkXCJcbiAgICAgICAgbW9kZT1cInVuYXZhaWxhYmxlXCI+XG4gICAgICA8L25nLW1pYW0tYmFza2V0LXByZXZpZXctZGlzYWJsZWQ+XG4gICAgICA8bmctbWlhbS1iYXNrZXQtcHJldmlldy1kaXNhYmxlZFxuICAgICAgICAqbmdJZj1cImxpbmUuZW50cmllcy5vZnRlbkRlbGV0ZWQubGVuZ3RoID4gMFwiXG4gICAgICAgIFtlbnRyaWVzXT1cImxpbmUuZW50cmllcy5vZnRlbkRlbGV0ZWRcIlxuICAgICAgICBbYWx3YXlzRXhwYW5kZWRdPVwiaXRlbXNBbHdheXNFeHBhbmRlZFwiXG4gICAgICAgIG1vZGU9XCJvZnRlbkRlbGV0ZWRcIlxuICAgICAgICAoZW50cnlBZGRlZCk9XCJhZGRFbnRyeSgkZXZlbnQpXCI+XG4gICAgICA8L25nLW1pYW0tYmFza2V0LXByZXZpZXctZGlzYWJsZWQ+XG4gICAgICA8bmctbWlhbS1iYXNrZXQtcHJldmlldy1kaXNhYmxlZFxuICAgICAgICAqbmdJZj1cImxpbmUuZW50cmllcy5yZW1vdmVkLmxlbmd0aCA+IDBcIlxuICAgICAgICBbZW50cmllc109XCJsaW5lLmVudHJpZXMucmVtb3ZlZFwiXG4gICAgICAgIFthbHdheXNFeHBhbmRlZF09XCJpdGVtc0Fsd2F5c0V4cGFuZGVkXCJcbiAgICAgICAgbW9kZT1cInJlbW92ZWRcIlxuICAgICAgICBbcmVkdWNlZF09XCJ0cnVlXCJcbiAgICAgICAgKGVudHJ5QWRkZWQpPVwiYWRkRW50cnkoJGV2ZW50KVwiPlxuICAgICAgPC9uZy1taWFtLWJhc2tldC1wcmV2aWV3LWRpc2FibGVkPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctbGluZV9fbG9hZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctbWlhbS1sb2FkZXI+PC9uZy1taWFtLWxvYWRlcj5cbiAgICAgICAgPGRpdiBpMThuPkNhbGN1bCBkZXMgaW5ncsOpZGllbnRzLi4uPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=