@k8slens/element-components 3.9.2 → 3.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +12 -12
- package/dist/src/elements.d.ts +91 -91
- package/dist/src/plugins/draggable-and-droppable/make-sure-drag-and-drop-events-have-time-to-happen/make-sure-drag-and-drop-events-have-time-to-happen.default-override.d.ts.map +1 -1
- package/dist/src/plugins/tooltip/tooltip-delay/tooltip-delay.default-override.d.ts.map +1 -1
- package/dist/src/remove-css-module-clutter.default-override.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -8
package/dist/index.js
CHANGED
|
@@ -1285,9 +1285,9 @@ __export(test_util_runnable_injectable_exports, {
|
|
|
1285
1285
|
});
|
|
1286
1286
|
var import_test_utils = require("@k8slens/test-utils");
|
|
1287
1287
|
|
|
1288
|
-
// import-glob:./**/*.global-override-for-injectable.(ts|tsx)/proof-of-uniqueness/
|
|
1288
|
+
// import-glob:./**/*.global-override-for-injectable.(ts|tsx)/proof-of-uniqueness/7b87622b-ad4a-4fc0-946c-f4ab1a006944
|
|
1289
1289
|
var modules = [];
|
|
1290
|
-
var
|
|
1290
|
+
var b87622b_ad4a_4fc0_946c_f4ab1a006944_default = modules;
|
|
1291
1291
|
|
|
1292
1292
|
// src/plugins/draggable-and-droppable/make-sure-drag-and-drop-events-have-time-to-happen/make-sure-drag-and-drop-events-have-time-to-happen.default-override.ts
|
|
1293
1293
|
var make_sure_drag_and_drop_events_have_time_to_happen_default_override_exports = {};
|
|
@@ -1316,19 +1316,19 @@ var remove_css_module_clutter_default_override_default = () => {
|
|
|
1316
1316
|
removeCssModuleClutterForUnitTesting();
|
|
1317
1317
|
};
|
|
1318
1318
|
|
|
1319
|
-
// import-glob:./**/*.default-override.(ts|tsx)/proof-of-uniqueness/
|
|
1319
|
+
// import-glob:./**/*.default-override.(ts|tsx)/proof-of-uniqueness/c9f91cef-fa7b-4c4b-bb02-fefcaf80369b
|
|
1320
1320
|
var modules2 = [make_sure_drag_and_drop_events_have_time_to_happen_default_override_exports, tooltip_delay_default_override_exports, remove_css_module_clutter_default_override_exports];
|
|
1321
|
-
var
|
|
1321
|
+
var c9f91cef_fa7b_4c4b_bb02_fefcaf80369b_default = modules2;
|
|
1322
1322
|
|
|
1323
1323
|
// src/test-util-runnable.injectable.ts
|
|
1324
1324
|
var testUtilRunnableInjectable = (0, import_test_utils.getTestUtilRunnableForOverrides)({
|
|
1325
|
-
globalOverrides:
|
|
1326
|
-
defaultOverrides:
|
|
1325
|
+
globalOverrides: b87622b_ad4a_4fc0_946c_f4ab1a006944_default,
|
|
1326
|
+
defaultOverrides: c9f91cef_fa7b_4c4b_bb02_fefcaf80369b_default
|
|
1327
1327
|
});
|
|
1328
1328
|
|
|
1329
|
-
// import-glob:./**/*.injectable.(ts|tsx)/proof-of-uniqueness/
|
|
1329
|
+
// import-glob:./**/*.injectable.(ts|tsx)/proof-of-uniqueness/b5bc2b95-791e-44fa-b5f9-8f4b7bfd55f6
|
|
1330
1330
|
var modules3 = [is_mac_injectable_exports, on_right_trigger_injectable_exports, dragged_item_state_injectable_exports, item_being_dragged_injectable_exports, make_sure_drag_and_drop_events_have_time_to_happen_injectable_exports, focusable_html_element_ref_set_injectable_exports, focusable_item_state_injectable_exports, keyboard_navigation_state_injectable_exports, do_focus_injectable_exports, item_being_focused_injectable_exports, computed_now_injectable_exports, hovered_item_state_injectable_exports, item_being_hovered_injectable_exports, context_is_being_hovered_injectable_exports, tooltip_delay_injectable_exports, test_util_runnable_injectable_exports];
|
|
1331
|
-
var
|
|
1331
|
+
var b5bc2b95_791e_44fa_b5f9_8f4b7bfd55f6_default = modules3;
|
|
1332
1332
|
|
|
1333
1333
|
// lens-stylesheet:/home/runner/work/lens-desktop-monorepo/lens-desktop-monorepo/packages/technical-features/_low-level/element-components/src/plugins/anchor/anchor.module.scss
|
|
1334
1334
|
var anchor_module_exports = {};
|
|
@@ -1600,14 +1600,14 @@ var import_stylesheet_contracts37 = require("@k8slens/stylesheet-contracts");
|
|
|
1600
1600
|
var stylesheet37 = (0, import_stylesheet_contracts37.asStylesheet)({ id: "@k8slens/element-components/src/plugins/width/width.module.scss", css: ".width-module__max-width--full___noIkT {\n max-width: 100%;\n}\n.width-module__max-width--content___yksUr {\n max-width: 900px;\n}\n.width-module__max-width--zero___8NUF1 {\n max-width: 0px;\n}\n.width-module__max-width--4xs___gHlLI {\n max-width: 1px;\n}\n.width-module__max-width--3xs___rdoP8 {\n max-width: 2px;\n}\n.width-module__max-width--xxs___jlp8v {\n max-width: 4px;\n}\n.width-module__max-width--xs___kQsWx {\n max-width: 8px;\n}\n.width-module__max-width--s___MgGaz {\n max-width: 12px;\n}\n.width-module__max-width--m___aFzSc {\n max-width: 16px;\n}\n.width-module__max-width--l___iKlaH {\n max-width: 20px;\n}\n.width-module__max-width--xl___4zUdC {\n max-width: 24px;\n}\n.width-module__max-width--xxl___58z3P {\n max-width: 28px;\n}\n.width-module__max-width--3xl___2YXnH {\n max-width: 32px;\n}\n.width-module__max-width--4xl___jFJ9V {\n max-width: 36px;\n}\n.width-module__max-width--5xl___7-VQG {\n max-width: 40px;\n}\n.width-module__max-width--6xl___PS37J {\n max-width: 44px;\n}\n.width-module__max-width--7xl___sSBwk {\n max-width: 48px;\n}\n.width-module__max-width--8xl___V3IHy {\n max-width: 52px;\n}\n.width-module__max-width--9xl___4VWEM {\n max-width: 56px;\n}\n.width-module__max-width--10xl___z97TQ {\n max-width: 60px;\n}\n.width-module__max-width--11xl___jxenX {\n max-width: 64px;\n}\n\n.width-module__min-width___qnlYC {\n /* As wide as the content wants to be, so it never has to wrap to fit its surroundings. */\n}\n.width-module__min-width--fit___2W-TD {\n min-width: max-content;\n}\n.width-module__min-width--zero___9429S {\n min-width: 0px;\n}\n.width-module__min-width--4xs___3TGM- {\n min-width: 1px;\n}\n.width-module__min-width--3xs___R6j32 {\n min-width: 2px;\n}\n.width-module__min-width--xxs___vjKdC {\n min-width: 4px;\n}\n.width-module__min-width--xs___V-L1s {\n min-width: 8px;\n}\n.width-module__min-width--s___dIfZm {\n min-width: 12px;\n}\n.width-module__min-width--m___JH5IP {\n min-width: 16px;\n}\n.width-module__min-width--l___GgkE8 {\n min-width: 20px;\n}\n.width-module__min-width--xl___aGLui {\n min-width: 24px;\n}\n.width-module__min-width--xxl___zQOtT {\n min-width: 28px;\n}\n.width-module__min-width--3xl___JevDZ {\n min-width: 32px;\n}\n.width-module__min-width--4xl___1e6N1 {\n min-width: 36px;\n}\n.width-module__min-width--5xl___Kumto {\n min-width: 40px;\n}\n.width-module__min-width--6xl___YEkm8 {\n min-width: 44px;\n}\n.width-module__min-width--7xl___vX1FY {\n min-width: 48px;\n}\n.width-module__min-width--8xl___VbQhk {\n min-width: 52px;\n}\n.width-module__min-width--9xl___eUKQi {\n min-width: 56px;\n}\n.width-module__min-width--10xl___ZoN3N {\n min-width: 60px;\n}\n.width-module__min-width--11xl___BNFjA {\n min-width: 64px;\n}\n\n.width-module__width--full___1mpiz {\n width: 100%;\n}\n.width-module__width--stretch___Rqw00 {\n width: stretch;\n}\n.width-module__width--zero___INdVv {\n width: 0px;\n}\n.width-module__width--4xs___dRUhW {\n width: 1px;\n}\n.width-module__width--3xs___oRJ0z {\n width: 2px;\n}\n.width-module__width--xxs___Hyl9R {\n width: 4px;\n}\n.width-module__width--xs___G3jQz {\n width: 8px;\n}\n.width-module__width--s___-mzqm {\n width: 12px;\n}\n.width-module__width--m___mEZ77 {\n width: 16px;\n}\n.width-module__width--l___qyIN7 {\n width: 20px;\n}\n.width-module__width--xl___mO25I {\n width: 24px;\n}\n.width-module__width--xxl___EGQMp {\n width: 28px;\n}\n.width-module__width--3xl___Hul7- {\n width: 32px;\n}\n.width-module__width--4xl___zOPbS {\n width: 36px;\n}\n.width-module__width--5xl___xbqni {\n width: 40px;\n}\n.width-module__width--6xl___Nmbf9 {\n width: 44px;\n}\n.width-module__width--7xl___B0nvw {\n width: 48px;\n}\n.width-module__width--8xl___W1HDP {\n width: 52px;\n}\n.width-module__width--9xl___KJL8U {\n width: 56px;\n}\n.width-module__width--10xl___94z19 {\n width: 60px;\n}\n.width-module__width--11xl___jB-Ln {\n width: 64px;\n}" });
|
|
1601
1601
|
var width_module_default = { "max-width--full": "width-module__max-width--full___noIkT", "max-width--content": "width-module__max-width--content___yksUr", "max-width--zero": "width-module__max-width--zero___8NUF1", "max-width--4xs": "width-module__max-width--4xs___gHlLI", "max-width--3xs": "width-module__max-width--3xs___rdoP8", "max-width--xxs": "width-module__max-width--xxs___jlp8v", "max-width--xs": "width-module__max-width--xs___kQsWx", "max-width--s": "width-module__max-width--s___MgGaz", "max-width--m": "width-module__max-width--m___aFzSc", "max-width--l": "width-module__max-width--l___iKlaH", "max-width--xl": "width-module__max-width--xl___4zUdC", "max-width--xxl": "width-module__max-width--xxl___58z3P", "max-width--3xl": "width-module__max-width--3xl___2YXnH", "max-width--4xl": "width-module__max-width--4xl___jFJ9V", "max-width--5xl": "width-module__max-width--5xl___7-VQG", "max-width--6xl": "width-module__max-width--6xl___PS37J", "max-width--7xl": "width-module__max-width--7xl___sSBwk", "max-width--8xl": "width-module__max-width--8xl___V3IHy", "max-width--9xl": "width-module__max-width--9xl___4VWEM", "max-width--10xl": "width-module__max-width--10xl___z97TQ", "max-width--11xl": "width-module__max-width--11xl___jxenX", "min-width": "width-module__min-width___qnlYC", "min-width--fit": "width-module__min-width--fit___2W-TD", "min-width--zero": "width-module__min-width--zero___9429S", "min-width--4xs": "width-module__min-width--4xs___3TGM-", "min-width--3xs": "width-module__min-width--3xs___R6j32", "min-width--xxs": "width-module__min-width--xxs___vjKdC", "min-width--xs": "width-module__min-width--xs___V-L1s", "min-width--s": "width-module__min-width--s___dIfZm", "min-width--m": "width-module__min-width--m___JH5IP", "min-width--l": "width-module__min-width--l___GgkE8", "min-width--xl": "width-module__min-width--xl___aGLui", "min-width--xxl": "width-module__min-width--xxl___zQOtT", "min-width--3xl": "width-module__min-width--3xl___JevDZ", "min-width--4xl": "width-module__min-width--4xl___1e6N1", "min-width--5xl": "width-module__min-width--5xl___Kumto", "min-width--6xl": "width-module__min-width--6xl___YEkm8", "min-width--7xl": "width-module__min-width--7xl___vX1FY", "min-width--8xl": "width-module__min-width--8xl___VbQhk", "min-width--9xl": "width-module__min-width--9xl___eUKQi", "min-width--10xl": "width-module__min-width--10xl___ZoN3N", "min-width--11xl": "width-module__min-width--11xl___BNFjA", "width--full": "width-module__width--full___1mpiz", "width--stretch": "width-module__width--stretch___Rqw00", "width--zero": "width-module__width--zero___INdVv", "width--4xs": "width-module__width--4xs___dRUhW", "width--3xs": "width-module__width--3xs___oRJ0z", "width--xxs": "width-module__width--xxs___Hyl9R", "width--xs": "width-module__width--xs___G3jQz", "width--s": "width-module__width--s___-mzqm", "width--m": "width-module__width--m___mEZ77", "width--l": "width-module__width--l___qyIN7", "width--xl": "width-module__width--xl___mO25I", "width--xxl": "width-module__width--xxl___EGQMp", "width--3xl": "width-module__width--3xl___Hul7-", "width--4xl": "width-module__width--4xl___zOPbS", "width--5xl": "width-module__width--5xl___xbqni", "width--6xl": "width-module__width--6xl___Nmbf9", "width--7xl": "width-module__width--7xl___B0nvw", "width--8xl": "width-module__width--8xl___W1HDP", "width--9xl": "width-module__width--9xl___KJL8U", "width--10xl": "width-module__width--10xl___94z19", "width--11xl": "width-module__width--11xl___jB-Ln" };
|
|
1602
1602
|
|
|
1603
|
-
// import-glob:./**/!(_*).(scss|css)/proof-of-uniqueness/
|
|
1603
|
+
// import-glob:./**/!(_*).(scss|css)/proof-of-uniqueness/0900f696-9c23-4a8b-adf5-7786245c7b2e
|
|
1604
1604
|
var modules4 = [absolute_module_exports, anchor_module_exports, background_color_module_exports, block_module_exports, border_module_exports, box_shadow_module_exports, color_module_exports, cursor_module_exports, display_contents_module_exports, draggable_module_exports, enabled_module_exports, faded_module_exports, flex_child_module_exports, flex_module_exports, font_module_exports, gradient_module_exports, grayscale_module_exports, grid_module_exports, height_module_exports, hidden_module_exports, interactive_module_exports, invisible_backdrop_module_exports, margin_module_exports, no_pointer_events_module_exports, offset_children_module_exports, offset_module_exports, outline_module_exports, overflow_module_exports, padding_module_exports, popover_module_exports, relative_module_exports, text_align_module_exports, tint_module_exports, tooltip_module_exports, transition_module_exports, visually_hidden_module_exports, width_module_exports];
|
|
1605
|
-
var
|
|
1605
|
+
var f696_9c23_4a8b_adf5_7786245c7b2e_default = modules4;
|
|
1606
1606
|
|
|
1607
1607
|
// src/feature.ts
|
|
1608
1608
|
var elementComponentFeature = (0, import_feature_core.getFeature)({
|
|
1609
1609
|
id: "element-component",
|
|
1610
|
-
register: (di) => (0, import_feature_core2.registerInjectablesFromModules)(di, [...
|
|
1610
|
+
register: (di) => (0, import_feature_core2.registerInjectablesFromModules)(di, [...b5bc2b95_791e_44fa_b5f9_8f4b7bfd55f6_default, ...f696_9c23_4a8b_adf5_7786245c7b2e_default])
|
|
1611
1611
|
// No feature dependencies: a design system everyone may install cannot drag
|
|
1612
1612
|
// Lens features into the closure. The clock the hoverable plugin needs is
|
|
1613
1613
|
// local, and the platform is read directly.
|
|
@@ -3335,4 +3335,4 @@ var useLocalHoverable = () => {
|
|
|
3335
3335
|
useOnOutsideClick,
|
|
3336
3336
|
usePopoverIsOpen
|
|
3337
3337
|
});
|
|
3338
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vaW5kZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2VuYWJsZWQvZW5hYmxlZC5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2NvbXB1dGVkLW5vdy5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAubW9kdWxlLnNjc3MiLCAiLi4vc3JjL2VsZW1lbnRzL21pbmltYWwtZGl2LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZS5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9wYWRkaW5nL3BhZGRpbmcudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3BhZGRpbmcvcGFkZGluZy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvci5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtY29ybmVyLXN0eWxlcy50cyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvZ2V0LXNpZGUtc3R5bGVzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvbnQvZm9udC50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZm9udC9mb250Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvdy50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9uby1wb2ludGVyLWV2ZW50cy9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9yZWYvcmVmLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWUudHMiLCAiLi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2dldC1kcmFnZ2FibGUtY29udGV4dC50cyIsICIuLi9zcmMvZmVhdHVyZS50cyIsICIuLi9zcmMvcGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL29uLXJpZ2h0LXRyaWdnZXIuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy90ZXN0LXV0aWwtcnVubmFibGUuaW5qZWN0YWJsZS50cyIsICJpbXBvcnQtZ2xvYjouLyoqLyouZ2xvYmFsLW92ZXJyaWRlLWZvci1pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvMjhjMTI0YWYtNzIyOS00MTU3LWEyNDctZDlhYzdkYzU0NjNiIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuLmRlZmF1bHQtb3ZlcnJpZGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cyIsICIuLi9zcmMvcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzIiwgImltcG9ydC1nbG9iOi4vKiovKi5kZWZhdWx0LW92ZXJyaWRlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvNzBjMzkxMzEtMDQ1Ny00NDFiLWJkNjMtZTQ0YTU2OWMwYzRhIiwgImltcG9ydC1nbG9iOi4vKiovKi5pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvOTIxN2Y2YjYtZWUxMi00YzUyLTg5MDctZjRjY2U0NjRiOGNmIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hbmNob3IvYW5jaG9yLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvY29sb3IvY29sb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2N1cnNvci9jdXJzb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50cy5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9tYXJnaW4vbWFyZ2luLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQvb2Zmc2V0Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnbi5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzIiwgImltcG9ydC1nbG9iOi4vKiovIShfKikuKHNjc3N8Y3NzKS9wcm9vZi1vZi11bmlxdWVuZXNzLzdjOGNlMzU5LWE1N2EtNDA2Mi1iZDkwLWZjMWRmNzExMDcwZiIsICIuLi9zcmMvcGx1Z2lucy9fc2hhcmVkL3NpemVzLnRzIiwgIi4uL3NyYy9lbGVtZW50cy50cyIsICIuLi9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JpZC9ncmlkLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvY29sb3IvY29sb3IudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JhZGllbnQvZ3JhZGllbnQudHMiLCAiLi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2Ryb3BwYWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24udHMiLCAiLi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldC50cyIsICIuLi9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4udHMiLCAiLi4vc3JjL3BsdWdpbnMvbWFyZ2luL21hcmdpbi50cyIsICIuLi9zcmMvcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC50cyIsICIuLi9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3RpbnQvdGludC50cyIsICIuLi9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZm9jdXNhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXVwZGF0ZS13aGVuLXByb3BzLWNoYW5nZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19wcml2YXRlL3VzZS1jbGVhbnVwLW9uLXVubW91bnQudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS91c2Uta2V5Ym9hcmQtbmF2aWdhdGlvbi50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvaGFuZGxlLWZvY3VzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS9oYW5kbGUtYmx1ci50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXByb2dyYW1tYXRpYy1mb2N1c2luZy50cyIsICIuLi9zcmMvcGx1Z2lucy9hcmVhL2FyZWEudHMiLCAiLi4vc3JjL3BsdWdpbnMvYXJlYS1jb250ZW50L2FyZWEtY29udGVudC50cyIsICIuLi9zcmMvcGx1Z2lucy9zaXplL3NpemUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL2NsaWNrYWJsZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ24udHMiLCAiLi4vc3JjL3BsdWdpbnMvYmxvY2svYmxvY2sudHN4IiwgIi4uL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZS50cyIsICIuLi9zcmMvcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS50cyIsICIuLi9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2Zsb2F0aW5nL2Zsb2F0aW5nLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudS50c3giLCAiLi4vc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2dldC1mb2N1c2FibGUtY29udGV4dC50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2ZvY3VzYWJsZS1pdGVtLWNvbnRleHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB0eXBlIHsgQmxvY2tQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Jsb2NrL2Jsb2NrXCI7XG5leHBvcnQgdHlwZSB7IEFuY2hvcmVkQXQsIEFuY2hvclBsdWdpblByb3BzLCBBbmNob3JQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2FuY2hvci9hbmNob3JcIjtcbmV4cG9ydCB7IHVzZU9uT3V0c2lkZUNsaWNrIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrXCI7XG5leHBvcnQgdHlwZSB7IE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vbi1vdXRzaWRlLWNsaWNrL29uLW91dHNpZGUtY2xpY2tcIjtcbmV4cG9ydCB0eXBlIHsgRHJvcERvd25NZW51UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudVwiO1xuZXhwb3J0IHR5cGUgeyBUZXh0QWxpZ25QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnblwiO1xuXG5leHBvcnQgeyB0eXBlIERvRm9jdXMsIHR5cGUgRG9Gb2N1c0ZvciwgZG9Gb2N1c0ZvckluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHsgaXRlbUJlaW5nRm9jdXNlZEluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlXCI7XG5leHBvcnQgdHlwZSB7IEl0ZW1CZWluZ0ZvY3VzZWQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBGb2N1c2FibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGVcIjtcbmV4cG9ydCB7IHR5cGUgRW5hYmxlZFBsdWdpblByb3BzLCBpc0Rpc2FibGVkIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZW5hYmxlZC9lbmFibGVkXCI7XG5leHBvcnQgdHlwZSB7IEdyYXlzY2FsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZVwiO1xuZXhwb3J0IHR5cGUgeyBUaW50UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90aW50L3RpbnRcIjtcbmV4cG9ydCB0eXBlIHsgRmFkZWRQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZhZGVkL2ZhZGVkXCI7XG5cbmV4cG9ydCB0eXBlIHsgU2lkZVN0eWxlcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtc2lkZS1zdHlsZXNcIjtcbmV4cG9ydCB0eXBlIHsgQ29ybmVyU3R5bGVzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2dldC1jb3JuZXItc3R5bGVzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMsXG4gIEJhY2tncm91bmRDb2xvcixcbiAgQmFja2dyb3VuZENvbG9yQWxpYXMsXG4gICRCYWNrZ3JvdW5kQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgT3V0bGluZVdpZHRoLFxuICAkT3V0bGluZVByb3BzLFxuICBPdXRsaW5lUGx1Z2luUHJvcHMsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEZsb2F0aW5nQ29udGVudEFyZ3MsXG4gIEZsb2F0aW5nQ29udGVudEZhY3RvcnksXG4gICRGbG9hdGluZ1Byb3BzLFxuICBGbG9hdGluZ1BsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mbG9hdGluZy9mbG9hdGluZ1wiO1xuXG5leHBvcnQgdHlwZSB7IFBhZGRpbmdQbHVnaW5Qcm9wcywgRGlyZWN0aW9uYWxQYWRkaW5nIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5leHBvcnQgdHlwZSB7IE1hcmdpblBsdWdpblByb3BzLCBEaXJlY3Rpb25hbE1hcmdpbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL21hcmdpbi9tYXJnaW5cIjtcbmV4cG9ydCB0eXBlIHsgT3ZlcmZsb3dQbHVnaW5Qcm9wcywgT3ZlcmZsb3cgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvd1wiO1xuXG5leHBvcnQgdHlwZSB7IEJveFNoYWRvd1BsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93XCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgSG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpblByb3BzLFxuICAkSG92ZXJhYmxlQnlEcmFnZ2luZ1Byb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nXCI7XG5leHBvcnQgeyBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZS1ieS1kcmFnZ2luZ1wiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEhvdmVyYWJsZUNvbnRleHQsXG4gICRIb3ZlcmFibGVQcm9wcyxcbiAgSG92ZXJhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEhvdmVyYWJsZVBsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBob3ZlcmFibGVQbHVnaW4sIGdldEhvdmVyYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBSZWZQbHVnaW5Qcm9wcywgJFJlZlByb3AsIFJlZkxpa2UgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9yZWYvcmVmXCI7XG5cbmV4cG9ydCB0eXBlIHsgQWJzb2x1dGVQbHVnaW5Qcm9wcywgQWJzb2x1dGVQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5leHBvcnQgdHlwZSB7IEhpZGRlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaGlkZGVuL2hpZGRlblwiO1xuZXhwb3J0IHR5cGUgeyBOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzXCI7XG5leHBvcnQgdHlwZSB7IE9mZnNldFBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldFwiO1xuZXhwb3J0IHR5cGUgeyBPZmZzZXRDaGlsZHJlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlblwiO1xuZXhwb3J0IHR5cGUgeyBSZWxhdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVHJhbnNpdGlvblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uXCI7XG5leHBvcnQgdHlwZSB7ICRJbnRlcmFjdGl2ZVByb3BzLCBJbnRlcmFjdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVmlzdWFsbHlIaWRkZW5QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW5cIjtcblxuZXhwb3J0IHR5cGUgeyAkQ3Vyc29yUHJvcHMsIEN1cnNvclBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvclwiO1xuZXhwb3J0IHR5cGUgeyBEaXNwbGF5Q29udGVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50c1wiO1xuXG5leHBvcnQgeyBpdGVtQmVpbmdEcmFnZ2VkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSB7IFRvb2x0aXBQbHVnaW5Qcm9wcywgJFRvb2x0aXBQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Rvb2x0aXAvdG9vbHRpcFwiO1xuZXhwb3J0IHsgU3R5bGVkVG9vbHRpcENvbnRhaW5lciwgZ2V0VG9vbHRpcFByb3BzLCBzdXBwcmVzc1Rvb2x0aXAgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXBcIjtcblxuZXhwb3J0IHR5cGUgeyBEcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBnZXREcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB7IGVsZW1lbnRDb21wb25lbnRGZWF0dXJlIH0gZnJvbSBcIi4vc3JjL2ZlYXR1cmVcIjtcblxuZXhwb3J0IHR5cGUgeyBTaXplUGx1Z2luUHJvcHMsICRTaXplUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9zaXplL3NpemVcIjtcblxuZXhwb3J0IHR5cGUgeyBXaWR0aFBsdWdpblByb3BzLCAkV2lkdGhQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoXCI7XG5cbmV4cG9ydCB0eXBlIHsgU3R5bGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlXCI7XG5cbmV4cG9ydCB0eXBlIHsgSGVpZ2h0UGx1Z2luUHJvcHMsICRIZWlnaHRQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHRcIjtcblxuZXhwb3J0IHR5cGUgeyBGb250UGx1Z2luUHJvcHMsIEZvbnRTaXplLCBGb250TGluZUhlaWdodCB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvbnQvZm9udFwiO1xuXG5leHBvcnQgdHlwZSB7IEdyaWRQbHVnaW5Qcm9wcywgR3JpZFByb3BzLCBHcmlkQ29sdW1ucyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2dyaWQvZ3JpZFwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIERyYWdnYWJsZVBsdWdpblByb3BzLFxuICBEcm9wcGFibGVQbHVnaW5Qcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIHsgQ29sb3JQbHVnaW5Qcm9wcywgJENvbG9yUHJvcHMsIFRleHRDb2xvciwgVGV4dENvbG9yQWxpYXMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jb2xvci9jb2xvclwiO1xuZXhwb3J0IHR5cGUgeyBDbGFzc05hbWVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEJvcmRlclBsdWdpblByb3BzLFxuICBCb3JkZXJDb2xvckFsaWFzLFxuICBCb3JkZXJDb2xvcixcbiAgJEJvcmRlclByb3BzLFxuICAkQm9yZGVyQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2JvcmRlclwiO1xuXG5leHBvcnQgdHlwZSB7IEJvcmRlclJhZGl1c1NpemUsIEJvcmRlcldpZHRoLCBCb3JkZXJTaWRlIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL3R5cGVzXCI7XG5cbmV4cG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcbmV4cG9ydCB7IHRTaGlydFNpemVJblBpeGVscywgc2l6ZVVuaXRJblBpeGVscyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgeyBEaXJlY3Rpb24sIFNob3J0RGlyZWN0aW9uIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9kaXJlY3Rpb25zXCI7XG5leHBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUge1xuICBDbGlja0hhbmRsZXIsXG4gIENsaWNrSGFuZGxlckRldGFpbHMsXG4gIENsaWNrUGx1Z2luUHJvcHMsXG4gIFBvc2l0aW9uMmQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcblxuZXhwb3J0IHR5cGUge1xuICBGbGV4UGx1Z2luUHJvcHMsXG4gIEhvcml6b250YWxGbGV4UHJvcHMsXG4gIE1heGltYWxGbGV4UHJvcHMsXG4gIFNpbXBsZUZsZXhQcm9wLFxuICBWZXJ0aWNhbEZsZXhQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZmxleC9mbGV4XCI7XG5cbmltcG9ydCB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZyxcbiAgc2hvd0Nzc01vZHVsZUNsdXR0ZXJGb3JQcm9kdWN0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcblxuZXhwb3J0IHsgcmVtb3ZlQ3NzTW9kdWxlQ2x1dHRlckZvclVuaXRUZXN0aW5nLCBzaG93Q3NzTW9kdWxlQ2x1dHRlckZvclByb2R1Y3Rpb24gfTtcblxuZXhwb3J0IHtcbiAgQ2xpY2thYmxlRGl2LFxuICBOYXYsXG4gIFN2ZyxcbiAgRGl2LFxuICBCdXR0b24sXG4gIEksXG4gIElucHV0LFxuICBGb3JtLFxuICBTcGFuLFxuICBUZXh0QXJlYSxcbiAgQSxcbiAgQ29kZSxcbiAgUHJlLFxuICBIMSxcbiAgSDIsXG4gIEgzLFxuICBINCxcbiAgSDUsXG4gIEg2LFxuICBQLFxuICBDbGlja2FibGVMaSxcbiAgTGksXG4gIE9sLFxuICBVbCxcbiAgVGgsXG4gIFRkLFxuICBUcixcbiAgVGFibGUsXG4gIExhYmVsLFxuICBUQm9keSxcbiAgRGlhbG9nLFxuICBDYW52YXMsXG4gIEltZyxcbn0gZnJvbSBcIi4vc3JjL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQ29tbW9uUHJvcHMsXG4gIENsaWNrYWJsZURpdlByb3BzLFxuICBDbGlja2FibGVMaVByb3BzLFxuICBOYXZQcm9wcyxcbiAgU3ZnUHJvcHMsXG4gIERpdlByb3BzLFxuICBCdXR0b25Qcm9wcyxcbiAgSVByb3BzLFxuICBJbnB1dFByb3BzLFxuICBGb3JtUHJvcHMsXG4gIFNwYW5Qcm9wcyxcbiAgVGV4dEFyZWFQcm9wcyxcbiAgQVByb3BzLFxuICBDb2RlUHJvcHMsXG4gIFByZVByb3BzLFxuICBIMVByb3BzLFxuICBIMlByb3BzLFxuICBIM1Byb3BzLFxuICBINFByb3BzLFxuICBINVByb3BzLFxuICBINlByb3BzLFxuICBQUHJvcHMsXG4gIExpUHJvcHMsXG4gIE9sUHJvcHMsXG4gIFVsUHJvcHMsXG4gIFRoUHJvcHMsXG4gIFRkUHJvcHMsXG4gIFRyUHJvcHMsXG4gIFRhYmxlUHJvcHMsXG4gIExhYmVsUHJvcHMsXG4gIFRCb2R5UHJvcHMsXG4gIERpYWxvZ1Byb3BzLFxuICBDYW52YXNQcm9wcyxcbiAgSW1nUHJvcHMsXG59IGZyb20gXCIuL3NyYy9lbGVtZW50c1wiO1xuXG5leHBvcnQge1xuICBnZXRGb2N1c2FibGVDb250ZXh0LFxuICBnZXRLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmV4cG9ydCB0eXBlIHtcbiAgJEZvY3VzYWJsZVByb3BzLFxuICBBbnlGb2N1c2FibGVDb250ZXh0LFxuICBGb2N1c2FibGVDb250ZXh0LFxuICBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG4gIEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBjb250ZXh0Rm9yRm9jdXNhYmxlSXRlbSwgdXNlRm9jdXNhYmxlSXRlbSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGUtaXRlbS1jb250ZXh0XCI7XG5leHBvcnQgeyB1c2VDbG9zZVBvcG92ZXIsIHVzZVBvcG92ZXJJc09wZW4sIGNvbnRleHRGb3JDbG9zaW5nUG9wb3ZlciB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3BvcG92ZXIvcG9wb3ZlclwiO1xuZXhwb3J0IHsgdXNlTG9jYWxIb3ZlcmFibGUgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZVwiO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIHBvaW50ZXItZG93biBsYW5kcyBvdXRzaWRlIHRoZSBlbGVtZW50J3MgUmVhY3QgdHJlZS4gVGhlIHRyZWUgaW5jbHVkZXMgY29udGVudFxuICAgKiB0aGUgZWxlbWVudCBwb3J0YWxzIGVsc2V3aGVyZSwgc28gcG9ydGFsZWQgY2hpbGRyZW4gY291bnQgYXMgaW5zaWRlLiBDYXZlYXQ6IGFuIG91dHNpZGVcbiAgICogcG9pbnRlci1kb3duIHdob3NlIHByb3BhZ2F0aW9uIHRvIHRoZSBkb2N1bWVudCBpcyBzdG9wcGVkIG5hdGl2ZWx5IGdvZXMgdW5kZXRlY3RlZC5cbiAgICovXG4gIHJlYWRvbmx5ICRvbk91dHNpZGVDbGljaz86IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xufTtcblxuLyoqXG4gKiBSZWFjdC10cmVlIG91dHNpZGUtY2xpY2sgZGV0ZWN0aW9uOiBhIGNhcHR1cmUtcGhhc2UgaGFuZGxlciBvbiB0aGUgZWxlbWVudCByZWNvcmRzIHRoZVxuICogcG9pbnRlci1kb3duIGV2ZW50cyBvZiBpdHMgb3duIFJlYWN0IHRyZWUgKHBvcnRhbHMgaW5jbHVkZWQsIHNpbmNlIFJlYWN0IGV2ZW50cyBwcm9wYWdhdGVcbiAqIHRocm91Z2ggdGhlbSksIGFuZCBhIGRvY3VtZW50LWxldmVsIGxpc3RlbmVyIHJlcG9ydHMgZXZlcnkgcG9pbnRlci1kb3duIGl0IGRpZCBub3QgcmVjb3JkLlxuICogUmV0dXJucyB0aGUgcHJvcHMgbWFya2luZyB0aGUgZWxlbWVudCdzIHRyZWU7IGdpdmUgdGhlbSB0byBgY29udHJpYnV0ZVByb3BzYCBvciBzcHJlYWQgdGhlbVxuICogb250byB0aGUgc3VidHJlZSdzIHJvb3QuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VPbk91dHNpZGVDbGljayA9IChvbk91dHNpZGVDbGljazogKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHZvaWQpID0+IHtcbiAgY29uc3QgbGFzdEluc2lkZVBvaW50ZXJEb3duUmVmID0gdXNlUmVmPEV2ZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjb25zdCBoYW5kbGVyUmVmID0gdXNlUmVmKG9uT3V0c2lkZUNsaWNrKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGhhbmRsZXJSZWYuY3VycmVudCA9IG9uT3V0c2lkZUNsaWNrO1xuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZURvY3VtZW50UG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50ICE9PSBsYXN0SW5zaWRlUG9pbnRlckRvd25SZWYuY3VycmVudCkge1xuICAgICAgICBoYW5kbGVyUmVmLmN1cnJlbnQoZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgaGFuZGxlRG9jdW1lbnRQb2ludGVyRG93bik7XG5cbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIGhhbmRsZURvY3VtZW50UG9pbnRlckRvd24pO1xuICB9LCBbXSk7XG5cbiAgY29uc3Qgb25Qb2ludGVyRG93bkNhcHR1cmUgPSB1c2VDYWxsYmFjaygoZXZlbnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgIGxhc3RJbnNpZGVQb2ludGVyRG93blJlZi5jdXJyZW50ID0gZXZlbnQubmF0aXZlRXZlbnQ7XG4gIH0sIFtdKTtcblxuICByZXR1cm4geyBvblBvaW50ZXJEb3duQ2FwdHVyZSB9O1xufTtcblxudHlwZSBPbk91dHNpZGVDbGlja1dyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgb25PdXRzaWRlQ2xpY2s6IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IE9uT3V0c2lkZUNsaWNrV3JhcHBlckNvbXBvbmVudCA9ICh7IG9uT3V0c2lkZUNsaWNrLCBjb250cmlidXRlUHJvcHMsIGNoaWxkcmVuIH06IE9uT3V0c2lkZUNsaWNrV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnRyaWJ1dGVQcm9wcyh1c2VPbk91dHNpZGVDbGljayhvbk91dHNpZGVDbGljaykpO1xuXG4gIHJldHVybiA8PntjaGlsZHJlbn08Lz47XG59O1xuXG5leHBvcnQgY29uc3Qgb25PdXRzaWRlQ2xpY2tQbHVnaW4gPSBnZXRQbHVnaW48T25PdXRzaWRlQ2xpY2tQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJG9uT3V0c2lkZUNsaWNrIH0gPSBwcm9wcztcblxuICBpZiAoJG9uT3V0c2lkZUNsaWNrID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyAkb25PdXRzaWRlQ2xpY2s6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkb25PdXRzaWRlQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkd3JhcHBlcjoge1xuICAgICAgQ29tcG9uZW50OiBPbk91dHNpZGVDbGlja1dyYXBwZXJDb21wb25lbnQsXG4gICAgICBwcm9wczogeyBvbk91dHNpZGVDbGljazogJG9uT3V0c2lkZUNsaWNrIH0sXG4gICAgfSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVIdG1sRWxlbWVudFJlZlNldEluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2ZvY3VzYWJsZS1odG1sLWVsZW1lbnQtcmVmLXNldC5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBhc3NlcnREZWZpbmVkIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuZXhwb3J0IHR5cGUgRG9Gb2N1czxUPiA9IChpdGVtOiBUKSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgRG9Gb2N1c0ZvciA9IDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PiBEb0ZvY3VzPFQ+O1xuXG5leHBvcnQgY29uc3QgZG9Gb2N1c0ZvckluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHsgc2luZ2xlRmFjdG9yeTogKCkgPT4gRG9Gb2N1c0ZvciB9Pih7XG4gIGlkOiBcImRvLWZvY3VzLWZvci1pbmplY3Rpb24tdG9rZW5cIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG5leHBvcnQgY29uc3QgZG9Gb2N1c0ZvckluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImRvLWZvY3VzLWZvclwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRSZWZTZXQgPSBkaS5pbmplY3QoZm9jdXNhYmxlSHRtbEVsZW1lbnRSZWZTZXRJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgKDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PlxuICAgICAgICAoZm9jdXNhYmxlSXRlbTogVCkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtmaXJzdFJlbmRlcmVkRm9jdXNhYmxlRWxlbWVudFJlZl0gPSBnZXRSZWZTZXQoZm9jdXNhYmxlQ29udGV4dCwgZm9jdXNhYmxlSXRlbSk7XG5cbiAgICAgICAgICBpZiAoZmlyc3RSZW5kZXJlZEZvY3VzYWJsZUVsZW1lbnRSZWYpIHtcbiAgICAgICAgICAgIGFzc2VydERlZmluZWQoZmlyc3RSZW5kZXJlZEZvY3VzYWJsZUVsZW1lbnRSZWYuY3VycmVudCk7XG5cbiAgICAgICAgICAgIGZpcnN0UmVuZGVyZWRGb2N1c2FibGVFbGVtZW50UmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIGFzIERvRm9jdXNGb3I7XG4gIH0sXG5cbiAgaW5qZWN0aW9uVG9rZW46IGRvRm9jdXNGb3JJbmplY3Rpb25Ub2tlbixcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG50eXBlIEZvY3VzYWJsZUl0ZW0gPSBhbnk7XG5cbi8vIFR3byBpbnN0YW50aWF0aW9uIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4gb25lIGNvbXBvc2l0ZSBrZXk6IHYyIGtleXMgYVxuLy8gc2luZ2xldG9uIGJ5IGFsbCBvZiB0aGVtLCBzbyB0aGUgY29udGV4dCBhbmQgdGhlIGl0ZW0gY29tcG9zZSBieSBpZGVudGl0eSBvblxuLy8gdGhlaXIgb3duLlxuZXhwb3J0IGNvbnN0IGZvY3VzYWJsZUh0bWxFbGVtZW50UmVmU2V0SW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiaHRtbC1lbGVtZW50cy1ieS1mb2N1c2FibGUtbWFwXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+IChfY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxGb2N1c2FibGVJdGVtPiwgX2l0ZW06IEZvY3VzYWJsZUl0ZW0pID0+XG4gICAgbmV3IFNldDxNdXRhYmxlUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkPj4oKSxcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBJQ29tcHV0ZWRWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgSXRlbUJlaW5nRm9jdXNlZCA9IDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PiBJQ29tcHV0ZWRWYWx1ZTxUIHwgdW5kZWZpbmVkPjtcblxuZXhwb3J0IGNvbnN0IGl0ZW1CZWluZ0ZvY3VzZWRJbmplY3Rpb25Ub2tlbiA9IGdldEluamVjdGlvblRva2VuMjx7IHNpbmdsZUZhY3Rvcnk6ICgpID0+IEl0ZW1CZWluZ0ZvY3VzZWQgfT4oe1xuICBpZDogXCJpdGVtLWJlaW5nLWZvY3VzZWRcIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG5leHBvcnQgY29uc3QgcHJpdmF0ZUl0ZW1CZWluZ0ZvY3VzZWRJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJwcml2YXRlLWl0ZW0tYmVpbmctZm9jdXNlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRGb2N1c2FibGVJdGVtU3RhdGUgPSBkaS5pbmplY3QoZm9jdXNhYmxlSXRlbVN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8YW55PikgPT4gY29tcHV0ZWQoKCkgPT4gZ2V0Rm9jdXNhYmxlSXRlbVN0YXRlKGNvbnRleHQpLmdldCgpKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nRm9jdXNlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIml0ZW0tYmVpbmctZm9jdXNlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRQcml2YXRlSXRlbUJlaW5nRm9jdXNlZCA9IGRpLmluamVjdChwcml2YXRlSXRlbUJlaW5nRm9jdXNlZEluamVjdGFibGUpO1xuXG4gICAgcmV0dXJuICgpID0+XG4gICAgICAoPFQ+KGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8VD4pID0+XG4gICAgICAgIGdldFByaXZhdGVJdGVtQmVpbmdGb2N1c2VkKGNvbnRleHQpIGFzIElDb21wdXRlZFZhbHVlPFQgfCB1bmRlZmluZWQ+KSBhcyBJdGVtQmVpbmdGb2N1c2VkO1xuICB9LFxuXG4gIGluamVjdGlvblRva2VuOiBpdGVtQmVpbmdGb2N1c2VkSW5qZWN0aW9uVG9rZW4sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IGZvY3VzYWJsZUl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImZvY3VzYWJsZS1pdGVtLXN0YXRlXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+IChfY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxhbnk+KSA9PiBvYnNlcnZhYmxlLmJveDx1bmtub3duPigpLFxufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBlbmFibGVkU3R5bGVzIGZyb20gXCIuL2VuYWJsZWQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRW5hYmxlZFBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogVGhpcyBmaWVsZCBoYXMgaGlnaGVyIHByaW9yaXR5IHRoYW4gJGRpc2FibGVkXG4gICAqL1xuICAkZW5hYmxlZD86IGJvb2xlYW47XG4gICRkaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGZpZWxkIGlzIG92ZXJyaWRkZW4gdmlhICRkaXNhYmxlZCBhbmQgJGVuYWJsZWRcbiAgICovXG4gIGRpc2FibGVkPzogdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGVuYWJsZWRQbHVnaW4gPSBnZXRQbHVnaW48RW5hYmxlZFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCBkaXNhYmxlZCA9IGlzRGlzYWJsZWQocHJvcHMpO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIGRpc2FibGVkID8gZW5hYmxlZFN0eWxlcy5kaXNhYmxlZCA6IHVuZGVmaW5lZF0sXG4gICAgZGlzYWJsZWQsXG4gICAgJGVuYWJsZWQ6IHVuZGVmaW5lZCxcbiAgICAkZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5leHBvcnQgY29uc3QgaXNEaXNhYmxlZCA9IChwcm9wczogRW5hYmxlZFBsdWdpblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGVuYWJsZWQsICRkaXNhYmxlZCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIHR5cGVvZiAkZW5hYmxlZCA9PT0gXCJib29sZWFuXCIgPyAhJGVuYWJsZWQgOiAoJGRpc2FibGVkID8/IGZhbHNlKTtcbn07XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5lbmFibGVkLW1vZHVsZV9fZGlzYWJsZWRfX19MTDNzdyB7XFxuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcXG4gIG9wYWNpdHk6IDUwJTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJkaXNhYmxlZFwiOlwiZW5hYmxlZC1tb2R1bGVfX2Rpc2FibGVkX19fTEwzc3dcIn07IiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VJZCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7IHR5cGUgQ29udGV4dE1hcFZhbHVlLCBob3Zlckl0ZW1TdGF0ZUZvckluamVjdGFibGUgfSBmcm9tIFwiLi9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgYWN0aW9uLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGlzRGVmaW5lZCwgbm9vcCwgdHlwZSBTaW5nbGVPck1hbnkgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyByZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHR5cGUgeyAkSG92ZXJhYmxlUHJvcHMgfSBmcm9tIFwiLi9ob3ZlcmFibGVcIjtcblxuZXhwb3J0IHR5cGUgJEhvdmVyYWJsZUJ5RHJhZ2dpbmdQcm9wczxUPiA9IFBpY2s8JEhvdmVyYWJsZVByb3BzPFQ+LCBcImNvbnRleHRcIiB8IFwiaXRlbVwiPjtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpblByb3BzPFQgPSBhbnk+ID0ge1xuICAkaG92ZXJhYmxlQnlEcmFnZ2luZz86IFNpbmdsZU9yTWFueTwkSG92ZXJhYmxlQnlEcmFnZ2luZ1Byb3BzPFQ+Pjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luPFQ+KCkge1xuICByZXR1cm4gZ2V0UGx1Z2luPEhvdmVyYWJsZUJ5RHJhZ2dpbmdQbHVnaW5Qcm9wcywgW1JldHVyblR5cGU8dHlwZW9mIHJlZlBsdWdpbjxUPj5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICRob3ZlcmFibGVCeURyYWdnaW5nLCAkcmVmIH0gPSBwcm9wcztcblxuICAgIGlmICgkaG92ZXJhYmxlQnlEcmFnZ2luZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAkaG92ZXJhYmxlQnlEcmFnZ2luZzogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBpZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3IgPSB1c2VTeW5jSW5qZWN0KGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSk7XG4gICAgY29uc3QgaG92ZXJhYmxlUHJvcHNSZWYgPSB1c2VSZWYob2JzZXJ2YWJsZS5tYXAodG9Db250ZXh0TWFwKCRob3ZlcmFibGVCeURyYWdnaW5nKSwgeyBkZWVwOiBmYWxzZSB9KSk7XG4gICAgY29uc3QgY29udHJvbGxlciA9IHVzZVJlZihuZXcgQWJvcnRDb250cm9sbGVyKCkpO1xuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5yZXBsYWNlKHRvQ29udGV4dE1hcCgkaG92ZXJhYmxlQnlEcmFnZ2luZykpO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNvbnN0IGNhbGxiYWNrUmVmID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGFjdGlvbigoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmN1cnJlbnQuYWJvcnQoKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY3VycmVudCA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcImRyYWdlbnRlclwiLFxuICAgICAgICAgICAgYWN0aW9uKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIHJlbGF0ZWRUYXJnZXQgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgICAgICAgIGlmICghKGN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgICAgICAgICAgICBob3Zlckl0ZW1TdGF0ZUZvcihjb250ZXh0KS5zZXQoaWQsIHtcbiAgICAgICAgICAgICAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgICAgICAgICAgICAgIGdldFByb3BzOiAoKSA9PiBob3ZlcmFibGVQcm9wc1JlZi5jdXJyZW50LmdldChjb250ZXh0KSxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5jdXJyZW50LnNpZ25hbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcImRyYWdsZWF2ZVwiLFxuICAgICAgICAgICAgYWN0aW9uKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIHJlbGF0ZWRUYXJnZXQgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgICAgICAgIGlmICghKGN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkU3RhdGUgPSBob3Zlckl0ZW1TdGF0ZUZvcihjb250ZXh0KTtcblxuICAgICAgICAgICAgICAgICAgaG92ZXJlZFN0YXRlLmRlbGV0ZShpZCk7XG4gICAgICAgICAgICAgICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLmN1cnJlbnQuc2lnbmFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgIFtob3Zlckl0ZW1TdGF0ZUZvciwgaWRdLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgJHJlZjogWyRyZWYsIGNhbGxiYWNrUmVmXSxcbiAgICAgICRob3ZlcmFibGVCeURyYWdnaW5nOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IHRvQ29udGV4dE1hcCA9IChwcm9wczogU2luZ2xlT3JNYW55PCRIb3ZlcmFibGVCeURyYWdnaW5nUHJvcHM8dW5rbm93bj4+IHwgdW5kZWZpbmVkKSA9PiB7XG4gIGNvbnN0IGl0ZW1zID0gW3Byb3BzXS5mbGF0KCkuZmlsdGVyKGlzRGVmaW5lZCk7XG4gIGNvbnN0IHJlc3VsdHM6IFtvYmplY3QsIENvbnRleHRNYXBWYWx1ZV1bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgeyBjb250ZXh0LCBpdGVtIH0gb2YgaXRlbXMpIHtcbiAgICByZXN1bHRzLnB1c2goW2NvbnRleHQsIHsgaXRlbSwgZGVsYXk6IDAsIG9uSG92ZXI6IG5vb3AsIG9uVW5ob3Zlcjogbm9vcCB9XSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbn07XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBJT2JzZXJ2YWJsZVZhbHVlLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1hcFZhbHVlID0ge1xuICByZWFkb25seSBpdGVtOiB1bmtub3duO1xuICByZWFkb25seSBkZWxheTogbnVtYmVyO1xuICBvbkhvdmVyOiBWb2lkRnVuY3Rpb247XG4gIG9uVW5ob3ZlcjogVm9pZEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJlZEl0ZW1TdGF0ZSA9IHtcbiAgcmVhZG9ubHkgaG92ZXJlZEF0OiBJT2JzZXJ2YWJsZVZhbHVlPG51bWJlcj47XG4gIHJlYWRvbmx5IGdldFByb3BzOiAoKSA9PiBDb250ZXh0TWFwVmFsdWUgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImhvdmVyZWQtaXRlbS1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoX2NvbnRleHQ6IG9iamVjdCkgPT4gb2JzZXJ2YWJsZS5tYXA8c3RyaW5nLCBIb3ZlcmVkSXRlbVN0YXRlPihbXSwgeyBkZWVwOiBmYWxzZSB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3JJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJob3Zlci1pdGVtLXN0YXRlLWZvclwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRIb3ZlcmVkSXRlbVN0YXRlID0gZGkuaW5qZWN0KGhvdmVyZWRJdGVtU3RhdGVJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PiAoY29udGV4dDogb2JqZWN0KSA9PiBnZXRIb3ZlcmVkSXRlbVN0YXRlKGNvbnRleHQpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcyB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuXG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHsgdHlwZSBDb250ZXh0TWFwVmFsdWUsIGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSB9IGZyb20gXCIuL2hvdmVyZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBhY3Rpb24sIGF1dG9ydW4sIGNvbXBhcmVyLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IG5vb3AgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9pdGVtLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgaXNEZWZpbmVkLCB0eXBlIFNpbmdsZU9yTWFueSB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5cbmV4cG9ydCB0eXBlIEhvdmVyYWJsZUNvbnRleHRPcHRpb25zID0ge1xuICAvKipcbiAgICogSW4gbWlsbGlzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBkZWxheT86IG51bWJlcjtcbiAgcmVhZG9ubHkgb25Ib3Zlcj86IFZvaWRGdW5jdGlvbjtcbiAgcmVhZG9ubHkgb25VbmhvdmVyPzogVm9pZEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlQ29udGV4dDxIb3ZlcmVkSXRlbT4gPSB7XG4gIHJlYWRvbmx5IGhvdmVyYWJsZTogKGl0ZW06IEhvdmVyZWRJdGVtLCBvcHRpb25zPzogSG92ZXJhYmxlQ29udGV4dE9wdGlvbnMpID0+ICRIb3ZlcmFibGVQcm9wczxIb3ZlcmVkSXRlbT47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlICRIb3ZlcmFibGVQcm9wczxUSXRlbSA9IHVua25vd24+IHtcbiAgcmVhZG9ubHkgY29udGV4dDogb2JqZWN0O1xuICByZWFkb25seSBpdGVtOiBUSXRlbTtcbiAgcmVhZG9ubHkgb3B0aW9uczogUmVxdWlyZWQ8SG92ZXJhYmxlQ29udGV4dE9wdGlvbnM+O1xufVxuXG5leHBvcnQgdHlwZSBIb3ZlcmFibGVQbHVnaW5Qcm9wczxURWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50PiA9IHtcbiAgcmVhZG9ubHkgJGhvdmVyYWJsZT86IFNpbmdsZU9yTWFueTwkSG92ZXJhYmxlUHJvcHM+O1xuICBvbk1vdXNlRW50ZXI/OiBSZWFjdC5IVE1MUHJvcHM8VEVsZW1lbnQ+W1wib25Nb3VzZUVudGVyXCJdO1xuICBvbk1vdXNlTGVhdmU/OiBSZWFjdC5IVE1MUHJvcHM8VEVsZW1lbnQ+W1wib25Nb3VzZUxlYXZlXCJdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEhvdmVyYWJsZUNvbnRleHQgPSA8SG92ZXJlZEl0ZW0sPigpOiBIb3ZlcmFibGVDb250ZXh0PEhvdmVyZWRJdGVtPiA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgaG92ZXJhYmxlOiAoaXRlbTogSG92ZXJlZEl0ZW0sIHsgZGVsYXkgPSAwLCBvbkhvdmVyID0gbm9vcCwgb25VbmhvdmVyID0gbm9vcCB9OiBIb3ZlcmFibGVDb250ZXh0T3B0aW9ucyA9IHt9KSA9PiAoe1xuICAgICAgY29udGV4dCxcbiAgICAgIGl0ZW0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGRlbGF5LFxuICAgICAgICBvbkhvdmVyLFxuICAgICAgICBvblVuaG92ZXIsXG4gICAgICB9LFxuICAgIH0pLFxuICB9O1xuXG4gIHJldHVybiBjb250ZXh0O1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlUGx1Z2luPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4gPSBSZXR1cm5UeXBlPHR5cGVvZiBob3ZlcmFibGVQbHVnaW48VD4+O1xuXG50eXBlIEhvdmVyYWJsZVdyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgaG92ZXJhYmxlOiBTaW5nbGVPck1hbnk8JEhvdmVyYWJsZVByb3BzPjtcbiAgcmVhZG9ubHkgb25Nb3VzZUVudGVyPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICByZWFkb25seSBvbk1vdXNlTGVhdmU/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgSG92ZXJhYmxlV3JhcHBlckNvbXBvbmVudCA9ICh7XG4gIGhvdmVyYWJsZSxcbiAgb25Nb3VzZUVudGVyLFxuICBvbk1vdXNlTGVhdmUsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBIb3ZlcmFibGVXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3IgPSB1c2VTeW5jSW5qZWN0KGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSk7XG4gIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSB1c2VTeW5jSW5qZWN0KGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbik7XG4gIGNvbnN0IGlkID0gdXNlSWQoKTtcblxuICBjb25zdCBob3ZlcmFibGVQcm9wc1JlZiA9IHVzZVJlZihcbiAgICBvYnNlcnZhYmxlLm1hcCh0b0NvbnRleHRNYXAoaG92ZXJhYmxlKSwgeyBkZWVwOiBmYWxzZSwgZXF1YWxzOiBjb21wYXJlci5zdHJ1Y3R1cmFsIH0pLFxuICApO1xuXG4gIHVzZUVmZmVjdChcbiAgICBhY3Rpb24oKCkgPT4ge1xuICAgICAgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5yZXBsYWNlKHRvQ29udGV4dE1hcChob3ZlcmFibGUpKTtcbiAgICB9KSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1CeUNvbnRleHQgPSBuZXcgTWFwPG9iamVjdCwgdW5rbm93bj4oKTtcblxuICAgIHJldHVybiBhdXRvcnVuKCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW2NvbnRleHQsIHsgaXRlbSwgb25Ib3Zlciwgb25VbmhvdmVyIH1dIG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgaG92ZXJlZEl0ZW0gPSBpdGVtQmVpbmdIb3ZlcmVkKGNvbnRleHQgYXMgSG92ZXJhYmxlQ29udGV4dDx1bmtub3duPikuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzSXRlbSA9IGl0ZW1CeUNvbnRleHQuZ2V0KGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChob3ZlcmVkSXRlbSA9PT0gaXRlbSkge1xuICAgICAgICAgIG9uSG92ZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcmV2aW91c0l0ZW0gPT09IGl0ZW0pIHtcbiAgICAgICAgICBvblVuaG92ZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGl0ZW1CeUNvbnRleHQuc2V0KGNvbnRleHQsIGhvdmVyZWRJdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW2l0ZW1CZWluZ0hvdmVyZWRdKTtcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIGFjdGlvbigoKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgY29udGV4dCBvZiBob3ZlcmFibGVQcm9wc1JlZi5jdXJyZW50LmtleXMoKSkge1xuICAgICAgICAgIGhvdmVySXRlbVN0YXRlRm9yKGNvbnRleHQpLmRlbGV0ZShpZCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIFtob3Zlckl0ZW1TdGF0ZUZvciwgaWRdLFxuICApO1xuXG4gIGNvbnN0IGhhbmRsZU1vdXNlRW50ZXIgPSB1c2VDYWxsYmFjayhcbiAgICBhY3Rpb24oKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25Nb3VzZUVudGVyPy4oZXZlbnQpO1xuXG4gICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICBmb3IgKGNvbnN0IGNvbnRleHQgb2YgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5rZXlzKCkpIHtcbiAgICAgICAgaG92ZXJJdGVtU3RhdGVGb3IoY29udGV4dCkuc2V0KGlkLCB7XG4gICAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgICAgZ2V0UHJvcHM6ICgpID0+IGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQuZ2V0KGNvbnRleHQpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBbXSxcbiAgKTtcblxuICBjb25zdCBoYW5kbGVNb3VzZUxlYXZlID0gdXNlQ2FsbGJhY2soXG4gICAgYWN0aW9uKChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uTW91c2VMZWF2ZT8uKGV2ZW50KTtcblxuICAgICAgY29uc3QgaG92ZXJlZEF0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRTdGF0ZSA9IGhvdmVySXRlbVN0YXRlRm9yKGNvbnRleHQpO1xuXG4gICAgICAgIGhvdmVyZWRTdGF0ZS5kZWxldGUoaWQpO1xuICAgICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgW10sXG4gICk7XG5cbiAgY29udHJpYnV0ZVByb3BzKHtcbiAgICBvbk1vdXNlRW50ZXI6IGhhbmRsZU1vdXNlRW50ZXIsXG4gICAgb25Nb3VzZUxlYXZlOiBoYW5kbGVNb3VzZUxlYXZlLFxuICB9KTtcblxuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGhvdmVyYWJsZVBsdWdpbjxURWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50PigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxIb3ZlcmFibGVQbHVnaW5Qcm9wczxURWxlbWVudD4+KChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgJGhvdmVyYWJsZSwgb25Nb3VzZUVudGVyLCBvbk1vdXNlTGVhdmUgfSA9IHByb3BzO1xuXG4gICAgaWYgKCRob3ZlcmFibGUgPT09IHVuZGVmaW5lZCB8fCAoQXJyYXkuaXNBcnJheSgkaG92ZXJhYmxlKSAmJiAkaG92ZXJhYmxlLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICRob3ZlcmFibGU6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICRob3ZlcmFibGU6IHVuZGVmaW5lZCxcbiAgICAgICR3cmFwcGVyOiB7XG4gICAgICAgIENvbXBvbmVudDogSG92ZXJhYmxlV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICBob3ZlcmFibGU6ICRob3ZlcmFibGUsXG4gICAgICAgICAgb25Nb3VzZUVudGVyLFxuICAgICAgICAgIG9uTW91c2VMZWF2ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IHRvQ29udGV4dE1hcCA9IChwcm9wczogU2luZ2xlT3JNYW55PCRIb3ZlcmFibGVQcm9wczx1bmtub3duPj4gfCB1bmRlZmluZWQpID0+IHtcbiAgY29uc3QgaXRlbXMgPSBbcHJvcHNdLmZsYXQoKS5maWx0ZXIoaXNEZWZpbmVkKTtcbiAgY29uc3QgcmVzdWx0czogW29iamVjdCwgQ29udGV4dE1hcFZhbHVlXVtdID0gW107XG5cbiAgZm9yIChjb25zdCB7IGNvbnRleHQsIGl0ZW0sIG9wdGlvbnMgfSBvZiBpdGVtcykge1xuICAgIHJlc3VsdHMucHVzaChbY29udGV4dCwgeyBpdGVtLCAuLi5vcHRpb25zIH1dKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiwgZ2V0SW5qZWN0aW9uVG9rZW4yIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgSUNvbXB1dGVkVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4vaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyBjb21wdXRlZE5vd0luamVjdGFibGUgfSBmcm9tIFwiLi9jb21wdXRlZC1ub3cuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSBJdGVtQmVpbmdIb3ZlcmVkID0gPFQ+KGhvdmVyYWJsZUNvbnRleHQ6IEhvdmVyYWJsZUNvbnRleHQ8VD4pID0+IElDb21wdXRlZFZhbHVlPFQgfCB1bmRlZmluZWQ+O1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nSG92ZXJlZEluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHsgc2luZ2xlRmFjdG9yeTogKCkgPT4gSXRlbUJlaW5nSG92ZXJlZCB9Pih7XG4gIGlkOiBcIml0ZW0tYmVpbmctaG92ZXJlZFwiLFxuICBjYXJkaW5hbGl0eTogXCJvbmVcIixcbn0pKCk7XG5cbmV4cG9ydCBjb25zdCBwcml2YXRlSXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcInByaXZhdGUtaXRlbS1iZWluZy1ob3ZlcmVkXCIsXG5cbiAgaW5zdGFudGlhdGU6IChkaSkgPT4ge1xuICAgIGNvbnN0IGdldEhvdmVyZWRJdGVtU3RhdGUgPSBkaS5pbmplY3QoaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUpO1xuICAgIGNvbnN0IGdldENvbXB1dGVkTm93ID0gZGkuaW5qZWN0KGNvbXB1dGVkTm93SW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IG9iamVjdCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZEl0ZW1TdGF0ZSA9IGdldEhvdmVyZWRJdGVtU3RhdGUoY29udGV4dCk7XG4gICAgICBjb25zdCBjb21wdXRlZE5vdyA9IGdldENvbXB1dGVkTm93KDEpO1xuXG4gICAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b3BJdGVtID0gWy4uLmhvdmVyZWRJdGVtU3RhdGUudmFsdWVzKCldLmF0KC0xKTtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0b3BJdGVtPy5nZXRQcm9wcygpO1xuXG4gICAgICAgIGlmICghdG9wSXRlbSB8fCAhcHJvcHMpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2hlbkNvbnNpZGVyZWRIb3ZlcmVkID0gdG9wSXRlbS5ob3ZlcmVkQXQuZ2V0KCkgKyBwcm9wcy5kZWxheTtcbiAgICAgICAgY29uc3Qgbm93ID0gY29tcHV0ZWROb3cuZ2V0KCk7XG5cbiAgICAgICAgcmV0dXJuIG5vdyA+PSB3aGVuQ29uc2lkZXJlZEhvdmVyZWQgPyBwcm9wcy5pdGVtIDogdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIml0ZW0tYmVpbmctaG92ZXJlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRQcml2YXRlSXRlbUJlaW5nSG92ZXJlZCA9IGRpLmluamVjdChwcml2YXRlSXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUpO1xuXG4gICAgcmV0dXJuICgpID0+XG4gICAgICAoPFQ+KGNvbnRleHQ6IEhvdmVyYWJsZUNvbnRleHQ8VD4pID0+XG4gICAgICAgIGdldFByaXZhdGVJdGVtQmVpbmdIb3ZlcmVkKGNvbnRleHQpIGFzIElDb21wdXRlZFZhbHVlPFQ+KSBhcyBJdGVtQmVpbmdIb3ZlcmVkO1xuICB9LFxuXG4gIGluamVjdGlvblRva2VuOiBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBjb21wdXRlZCwgb2JzZXJ2YWJsZSwgb25CZWNvbWVPYnNlcnZlZCwgb25CZWNvbWVVbm9ic2VydmVkLCBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5cbi8qKlxuICogQSBjbG9jayB0aGF0IGFkdmFuY2VzIG9ubHkgd2hpbGUgc29tZXRoaW5nIG9ic2VydmVzIGl0LCBzbyBhIGhvdmVyIGRlbGF5XG4gKiBrZWVwcyBiZWluZyByZS1ldmFsdWF0ZWQgdW50aWwgaXQgaGFzIGVsYXBzZWQgYW5kIGNvc3RzIG5vdGhpbmcgb25jZSBub2JvZHlcbiAqIGlzIHdhdGNoaW5nLlxuICpcbiAqIExvY2FsIHJhdGhlciB0aGFuIHRha2VuIGZyb20gdGhlIHNoYXJlZCBpbnRlcnZhbCBmZWF0dXJlOiBhIGRlc2lnbiBzeXN0ZW1cbiAqIGNhbm5vdCBkZXBlbmQgb24gYSBmZWF0dXJlIHBhY2thZ2UsIGFuZCB0aGUgaG92ZXJhYmxlIHBsdWdpbiBpcyB0aGUgb25seVxuICogdGhpbmcgaGVyZSB0aGF0IG5lZWRzIGEgY2xvY2suIFRoZSBpbnRlcnZhbCBpcyB0aGUgaW5zdGFudGlhdGlvbiBwYXJhbWV0ZXIsXG4gKiBzbyB2MiBrZXlzIG9uZSBjbG9jayBwZXIgaW50ZXJ2YWwuXG4gKi9cbmV4cG9ydCBjb25zdCBjb21wdXRlZE5vd0luamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImNvbXB1dGVkLW5vd1wiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoaW50ZXJ2YWxNczogbnVtYmVyKSA9PiB7XG4gICAgY29uc3Qgbm93ID0gb2JzZXJ2YWJsZS5ib3goRGF0ZS5ub3coKSk7XG5cbiAgICBsZXQgaGFuZGxlOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4gfCB1bmRlZmluZWQ7XG5cbiAgICBvbkJlY29tZU9ic2VydmVkKG5vdywgKCkgPT4ge1xuICAgICAgcnVuSW5BY3Rpb24oKCkgPT4gbm93LnNldChEYXRlLm5vdygpKSk7XG5cbiAgICAgIGhhbmRsZSA9IHNldEludGVydmFsKCgpID0+IHJ1bkluQWN0aW9uKCgpID0+IG5vdy5zZXQoRGF0ZS5ub3coKSkpLCBpbnRlcnZhbE1zKTtcbiAgICB9KTtcblxuICAgIG9uQmVjb21lVW5vYnNlcnZlZChub3csICgpID0+IHtcbiAgICAgIGlmIChoYW5kbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjbGVhckludGVydmFsKGhhbmRsZSk7XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZSA9IHVuZGVmaW5lZDtcbiAgICB9KTtcblxuICAgIHJldHVybiBjb21wdXRlZCgoKSA9PiBub3cuZ2V0KCkpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIsIGdldEluamVjdGlvblRva2VuMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IElDb21wdXRlZFZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlQ29udGV4dCB9IGZyb20gXCIuL2dldC1kcmFnZ2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHsgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCB0eXBlIEl0ZW1CZWluZ0RyYWdnZWQgPSA8VD4oZHJhZ2dhYmxlQ29udGV4dDogRHJhZ2dhYmxlQ29udGV4dDxUPikgPT4gSUNvbXB1dGVkVmFsdWU8VCB8IHVuZGVmaW5lZD47XG5cbmV4cG9ydCBjb25zdCBpdGVtQmVpbmdEcmFnZ2VkSW5qZWN0aW9uVG9rZW4gPSBnZXRJbmplY3Rpb25Ub2tlbjI8eyBzaW5nbGVGYWN0b3J5OiAoKSA9PiBJdGVtQmVpbmdEcmFnZ2VkIH0+KHtcbiAgaWQ6IFwiaXRlbS1iZWluZy1kcmFnZ2VkXCIsXG4gIGNhcmRpbmFsaXR5OiBcIm9uZVwiLFxufSkoKTtcblxuZXhwb3J0IGNvbnN0IHByaXZhdGVJdGVtQmVpbmdEcmFnZ2VkSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwicHJpdmF0ZS1pdGVtLWJlaW5nLWRyYWdnZWRcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgZ2V0RHJhZ2dlZEl0ZW1TdGF0ZSA9IGRpLmluamVjdChkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IERyYWdnYWJsZUNvbnRleHQ8YW55PikgPT4gY29tcHV0ZWQoKCkgPT4gZ2V0RHJhZ2dlZEl0ZW1TdGF0ZShjb250ZXh0KS5nZXQoKSk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGl0ZW1CZWluZ0RyYWdnZWRJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJpdGVtLWJlaW5nLWRyYWdnZWRcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgZ2V0UHJpdmF0ZUl0ZW1CZWluZ0RyYWdnZWQgPSBkaS5pbmplY3QocHJpdmF0ZUl0ZW1CZWluZ0RyYWdnZWRJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgKDxUPihjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+KSA9PlxuICAgICAgICBnZXRQcml2YXRlSXRlbUJlaW5nRHJhZ2dlZChjb250ZXh0KSBhcyBJQ29tcHV0ZWRWYWx1ZTxUPikgYXMgSXRlbUJlaW5nRHJhZ2dlZDtcbiAgfSxcblxuICBpbmplY3Rpb25Ub2tlbjogaXRlbUJlaW5nRHJhZ2dlZEluamVjdGlvblRva2VuLFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgb2JzZXJ2YWJsZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgdHlwZSB7IERyYWdnYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbi8vIFRoZSBjb250ZXh0IGlzIHRoZSBpbnN0YW50aWF0aW9uIHBhcmFtZXRlciwgc28gdjIga2V5cyBvbmUgc3RhdGUgYm94IHBlclxuLy8gY29udGV4dCBpZGVudGl0eSBcdTIwMTQgd2hhdCB0aGUga2V5ZWRTaW5nbGV0b24gdXNlZCB0byBzcGVsbCBvdXQuXG5leHBvcnQgY29uc3QgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImRyYWdnZWQtaXRlbS1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoX2NvbnRleHQ6IERyYWdnYWJsZUNvbnRleHQ8YW55PikgPT4gb2JzZXJ2YWJsZS5ib3godW5kZWZpbmVkLCB7IGRlZXA6IGZhbHNlIH0pLFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcywgdHlwZSBDb250cmlidXRlUmVmIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IEhvdmVyYWJsZVBsdWdpbiB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyBnZXRIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4uL2hvdmVyYWJsZS9ob3ZlcmFibGVcIjtcbmltcG9ydCB7IGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcbmltcG9ydCB7IGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaG92ZXJlZC1pdGVtLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB0b29sdGlwRGVsYXlJbmplY3RhYmxlIH0gZnJvbSBcIi4vdG9vbHRpcC1kZWxheS90b29sdGlwLWRlbGF5LmluamVjdGFibGVcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vdG9vbHRpcC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBQbGFjZW1lbnQgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCBzaGlmdCwgdXNlRmxvYXRpbmcgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHR5cGUgeyBSZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHsgbm9vcCwgdHlwZSBNYXliZUFzeW5jVm9pZEZ1bmN0aW9uIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB7IE1pbmltYWxEaXYsIHR5cGUgTWluaW1hbERpdlByb3BzIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzL21pbmltYWwtZGl2XCI7XG5pbXBvcnQgeyBhY3Rpb24sIGF1dG9ydW4sIG9ic2VydmFibGUgfSBmcm9tIFwibW9ieFwiO1xuXG50eXBlIFRvb2x0aXBDb250ZW50UHJvcHM8UHJvcHMgZXh0ZW5kcyBvYmplY3Q+ID1cbiAgfCB7XG4gICAgICAvKiogUGxhaW4tdGV4dCBjb250ZW50IG9mIHRoZSB0b29sdGlwLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgQ29udGVudGAuICovXG4gICAgICByZWFkb25seSBjb250ZW50VGV4dDogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgQ29udGVudD86IHVuZGVmaW5lZDtcbiAgICAgIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IHVuZGVmaW5lZDtcbiAgICB9XG4gIHwge1xuICAgICAgcmVhZG9ubHkgY29udGVudFRleHQ/OiB1bmRlZmluZWQ7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBjb21wb25lbnQgcmVuZGVyZWQgYXMgdGhlIGNvbnRlbnQgb2YgdGhlIHRvb2x0aXAuIE11c3QgaGF2ZSBhIHN0YWJsZVxuICAgICAgICogaWRlbnRpdHkgKG1vZHVsZSBzY29wZSkgXHUyMDE0IGRhdGEgZmxvd3MgaW4gdGhyb3VnaCBgY29udGVudFByb3BzYCwgbmV2ZXJcbiAgICAgICAqIHRocm91Z2ggY2xvc3VyZSBjYXB0dXJlLlxuICAgICAgICovXG4gICAgICByZWFkb25seSBDb250ZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPFByb3BzPjtcbiAgICAgIC8qKiBUaGUgcHJvcHMgdGhlIHRvb2x0aXAgcGFzc2VzIHRvIGBDb250ZW50YCB3aGVuIHJlbmRlcmluZyBpdC4gKi9cbiAgICAgIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IFByb3BzO1xuICAgIH07XG5cbmV4cG9ydCB0eXBlICRUb29sdGlwUHJvcHM8UHJvcHMgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8bmV2ZXIsIG5ldmVyPj4gPSB7XG4gIHJlYWRvbmx5IHBvc2l0aW9uPzogUGxhY2VtZW50O1xuICByZWFkb25seSBvblRvb2x0aXBTaG93bj86IE1heWJlQXN5bmNWb2lkRnVuY3Rpb247XG59ICYgVG9vbHRpcENvbnRlbnRQcm9wczxQcm9wcz47XG5cbi8qKlxuICogVHlwZS1jaGVja3MgdGhlIHBhaXJpbmcgb2YgYENvbnRlbnRgIGFuZCBgY29udGVudFByb3BzYCBvZiBhbiBvYmplY3QtZm9ybVxuICogYCR0b29sdGlwYDogYGNvbnRlbnRQcm9wc2AgaXMgcmVxdWlyZWQgdG8gYmUgdGhlIHByb3BzIG9mIGBDb250ZW50YCwgYW5kIGl0XG4gKiBpcyByZXF1aXJlZCB0byBiZSBwcmVzZW50IHdoZW4gYENvbnRlbnRgIGhhcyByZXF1aXJlZCBwcm9wcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBQcm9wcyh0b29sdGlwUHJvcHM6ICRUb29sdGlwUHJvcHMpOiAkVG9vbHRpcFByb3BzPGFueT47XG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vbHRpcFByb3BzPFByb3BzIGV4dGVuZHMgb2JqZWN0PihcbiAgdG9vbHRpcFByb3BzOiAkVG9vbHRpcFByb3BzPFByb3BzPiAmIHsgcmVhZG9ubHkgY29udGVudFByb3BzOiBQcm9wcyB9LFxuKTogJFRvb2x0aXBQcm9wczxhbnk+O1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBQcm9wcyh0b29sdGlwUHJvcHM6ICRUb29sdGlwUHJvcHM8YW55Pik6ICRUb29sdGlwUHJvcHM8YW55PiB7XG4gIHJldHVybiB0b29sdGlwUHJvcHM7XG59XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqIE51bGxpc2ggbWVhbnMgbm8gdG9vbHRpcCwgc28gY29uZGl0aW9uYWwgc291cmNlcyAoYHN0cmluZyB8IG51bGxgKSBwYXNzIHRocm91Z2ggYXMtaXMuICovXG4gICR0b29sdGlwPzogc3RyaW5nIHwgJFRvb2x0aXBQcm9wczxhbnk+IHwgbnVsbDtcbn07XG5cbi8qKlxuICogQSB0b29sdGlwIG9mIG5vdGhpbmc6IHRoZSBlbGVtZW50IHRha2VzIHRoZSBob3Zlciwgc28gbm8gZW5jbG9zaW5nIGVsZW1lbnQgc2hvd3MgaXRzIHRvb2x0aXBcbiAqIHdoaWxlIHRoZSBwb2ludGVyIGlzIG92ZXIgdGhpcyBvbmUsIGFuZCBzaG93cyBub3RoaW5nIG9mIGl0cyBvd24uIE51bGxpc2ggYCR0b29sdGlwYCBsZWF2ZXMgdGhlXG4gKiBlbmNsb3NpbmcgdG9vbHRpcCBhbG9uZSBpbnN0ZWFkIFx1MjAxNCB1c2UgdGhpcyB3aGVyZSBhbiBlbGVtZW50IG11c3Qgbm90IGJlIGRlc2NyaWJlZCBieSB3aGF0ZXZlclxuICogZW5jbG9zZXMgaXQsIGEgcGFuZWwgb3BlbmVkIGZyb20gYSByb3cgd2l0aCBhIHRvb2x0aXAgYmVpbmcgdGhlIGNhc2UgdGhhdCBuZWVkcyBpdDogYSB0b29sdGlwXG4gKiBnb2VzIGludG8gdGhlIHRvcCBsYXllciwgc28gaXQgd291bGQgcGFpbnQgb3ZlciB3aGF0IHRoZSBwYW5lbCBpcyB0aGVyZSBmb3IuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogPExpICR0b29sdGlwPXtzdXBwcmVzc1Rvb2x0aXB9PlxuICogICA8U2V0dGluZ3MgLz5cbiAqIDwvTGk+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHN1cHByZXNzVG9vbHRpcDogJFRvb2x0aXBQcm9wcyA9IHsgY29udGVudFRleHQ6IFwiXCIgfTtcblxuY29uc3QgaG92ZXJhYmxlVG9vbHRpcENvbnRleHQgPSBnZXRIb3ZlcmFibGVDb250ZXh0PEhUTUxFbGVtZW50IHwgbnVsbD4oKTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFRvb2x0aXBDb250YWluZXIgPSAocHJvcHM6IE1pbmltYWxEaXZQcm9wcykgPT4ge1xuICBjb25zdCB7ICRjbGFzc05hbWUsIC4uLnJlc3QgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPE1pbmltYWxEaXZcbiAgICAgICRwYWRkaW5nXG4gICAgICAkYmFja2dyb3VuZENvbG9yPVwiYmFja2dyb3VuZFNlY29uZGFyeVwiXG4gICAgICAkYm9yZGVyPXt7IHJhZGl1czogdHJ1ZSB9fVxuICAgICAgJGZvbnQ9e3sgc2l6ZTogXCJzXCIgfX1cbiAgICAgICRib3hTaGFkb3dcbiAgICAgICRub1BvaW50ZXJFdmVudHNcbiAgICAgICRhYnNvbHV0ZVxuICAgICAgJGNsYXNzTmFtZT17W3N0eWxlcy50b29sdGlwLCAkY2xhc3NOYW1lXX1cbiAgICAgIGRhdGEtdG9vbHRpcC1jb250YWluZXItdGVzdFxuICAgICAgey4uLnJlc3R9XG4gICAgLz5cbiAgKTtcbn07XG5cbnR5cGUgRmxvYXRpbmdTdHlsZWRUb29sdGlwQ29udGFpbmVyUHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgcG9zaXRpb246IFBsYWNlbWVudDtcbiAgcmVmZXJlbmNlOiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIG9uVG9vbHRpcFNob3duOiBWb2lkRnVuY3Rpb247XG59O1xuXG50eXBlIFBvcG92ZXJDYXBhYmxlID0gSFRNTEVsZW1lbnQgJiB7IHNob3dQb3BvdmVyOiBWb2lkRnVuY3Rpb247IGhpZGVQb3BvdmVyOiBWb2lkRnVuY3Rpb24gfTtcblxuY29uc3QgaXNQb3BvdmVyQ2FwYWJsZSA9IChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGVsZW1lbnQgaXMgUG9wb3ZlckNhcGFibGUgPT5cbiAgdHlwZW9mIChlbGVtZW50IGFzIFBhcnRpYWw8UG9wb3ZlckNhcGFibGU+KS5zaG93UG9wb3ZlciA9PT0gXCJmdW5jdGlvblwiO1xuXG5jb25zdCBGbG9hdGluZ1N0eWxlZFRvb2x0aXBDb250YWluZXIgPSAocHJvcHM6IEZsb2F0aW5nU3R5bGVkVG9vbHRpcENvbnRhaW5lclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udGVudCwgcG9zaXRpb24sIHJlZmVyZW5jZSwgb25Ub29sdGlwU2hvd24gfSA9IHByb3BzO1xuICBjb25zdCBbZmxvYXRpbmcsIHNldEZsb2F0aW5nXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICBwbGFjZW1lbnQ6IHBvc2l0aW9uLFxuICAgIG1pZGRsZXdhcmU6IFtmbGlwKCksIG9mZnNldCg4KSwgc2hpZnQoKV0sXG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIGZsb2F0aW5nLFxuICAgICAgcmVmZXJlbmNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IHdlIGRvbid0IHdhbnQgdG8gY2FsbCBvblRvb2x0aXBTaG93biBldmVyeSB0aW1lIGl0IHVwZGF0ZXMgd2hpbGUgdGhlIHRvb2x0aXAgaXMgYmVpbmcgc2hvd1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgb25Ub29sdGlwU2hvd24oKTtcbiAgfSwgW10pO1xuXG4gIC8vIEludG8gdGhlIHRvcCBsYXllciwgd2hlcmUgYSBkcm9wLWRvd24gbWVudSBhbHJlYWR5IHB1dHMgaXRzZWxmOiBubyB6LWluZGV4IGNhblxuICAvLyBwYWludCBvdmVyIGEgcG9wb3Zlciwgc28gYSB0b29sdGlwIGFueXdoZXJlIG5lYXIgYW4gb3BlbiBtZW51IHdvdWxkIGJlIGhpZGRlblxuICAvLyBiZWhpbmQgaXQuIFNob3duIGFmdGVyIHRoZSBtZW51IG9wZW5lZCwgc28gaXQgbGFuZHMgYWJvdmUgaXQuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFmbG9hdGluZyB8fCAhaXNQb3BvdmVyQ2FwYWJsZShmbG9hdGluZykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmbG9hdGluZy5zaG93UG9wb3ZlcigpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChmbG9hdGluZy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBmbG9hdGluZy5oaWRlUG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtmbG9hdGluZ10pO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZFRvb2x0aXBDb250YWluZXIgJHJlZj17c2V0RmxvYXRpbmd9IHBvcG92ZXI9XCJtYW51YWxcIiBzdHlsZT17ZmxvYXRpbmdTdHlsZXN9PlxuICAgICAge2NvbnRlbnR9XG4gICAgPC9TdHlsZWRUb29sdGlwQ29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcFBsdWdpbjxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+ID0gUmV0dXJuVHlwZTx0eXBlb2YgdG9vbHRpcFBsdWdpbjxUPj47XG5cbnR5cGUgTm9ybWFsaXplZFRvb2x0aXBQcm9wcyA9IHtcbiAgcmVhZG9ubHkgY29udGVudFRleHQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IENvbnRlbnQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT47XG4gIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IGFueTtcbiAgcmVhZG9ubHkgcG9zaXRpb246IFBsYWNlbWVudDtcbiAgcmVhZG9ubHkgb25Ub29sdGlwU2hvd246IE1heWJlQXN5bmNWb2lkRnVuY3Rpb247XG59O1xuXG50eXBlIFRvb2x0aXBXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IHRvb2x0aXA6IE5vcm1hbGl6ZWRUb29sdGlwUHJvcHM7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgVG9vbHRpcFdyYXBwZXJDb21wb25lbnQgPSAoeyB0b29sdGlwLCBjb250cmlidXRlUmVmLCBjb250cmlidXRlUHJvcHMsIGNoaWxkcmVuIH06IFRvb2x0aXBXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgW3JlZmVyZW5jZSwgc2V0UmVmZXJlbmNlXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnRyaWJ1dGVSZWYoc2V0UmVmZXJlbmNlKTtcblxuICBjb25zdCB0b29sdGlwRGVsYXkgPSB1c2VTeW5jSW5qZWN0KHRvb2x0aXBEZWxheUluamVjdGFibGUpO1xuICBjb25zdCBob3Zlckl0ZW1TdGF0ZUZvciA9IHVzZVN5bmNJbmplY3QoaG92ZXJJdGVtU3RhdGVGb3JJbmplY3RhYmxlKTtcbiAgY29uc3QgaG92ZXJlZEl0ZW0gPSB1c2VTeW5jSW5qZWN0KGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbikoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpO1xuICBjb25zdCBpZCA9IHVzZUlkKCk7XG5cbiAgY29uc3QgcmVmZXJlbmNlUmVmID0gdXNlUmVmKHJlZmVyZW5jZSk7XG4gIHJlZmVyZW5jZVJlZi5jdXJyZW50ID0gcmVmZXJlbmNlO1xuXG4gIGNvbnN0IHRvb2x0aXBEZWxheVJlZiA9IHVzZVJlZih0b29sdGlwRGVsYXkpO1xuICB0b29sdGlwRGVsYXlSZWYuY3VycmVudCA9IHRvb2x0aXBEZWxheTtcblxuICBjb250cmlidXRlUHJvcHMoe1xuICAgIG9uTW91c2VFbnRlcjogYWN0aW9uKCgpID0+IHtcbiAgICAgIGNvbnN0IGhvdmVyZWRBdCA9IERhdGUubm93KCk7XG5cbiAgICAgIGhvdmVySXRlbVN0YXRlRm9yKGhvdmVyYWJsZVRvb2x0aXBDb250ZXh0KS5zZXQoaWQsIHtcbiAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgIGdldFByb3BzOiAoKSA9PiAoe1xuICAgICAgICAgIGl0ZW06IHJlZmVyZW5jZVJlZi5jdXJyZW50LFxuICAgICAgICAgIGRlbGF5OiB0b29sdGlwRGVsYXlSZWYuY3VycmVudCA/PyAwLFxuICAgICAgICAgIG9uSG92ZXI6IG5vb3AsXG4gICAgICAgICAgb25VbmhvdmVyOiBub29wLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICAgIH0pLFxuXG4gICAgb25Nb3VzZUxlYXZlOiBhY3Rpb24oKCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZFN0YXRlID0gaG92ZXJJdGVtU3RhdGVGb3IoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpO1xuICAgICAgY29uc3QgaG92ZXJlZEF0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgaG92ZXJlZFN0YXRlLmRlbGV0ZShpZCk7XG4gICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgfSksXG4gIH0pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaG92ZXJJdGVtU3RhdGVGb3IoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpLmRlbGV0ZShpZCk7XG4gICAgICB9KSxcbiAgICBbaG92ZXJJdGVtU3RhdGVGb3IsIGlkXSxcbiAgKTtcblxuICBjb25zdCBbaG92ZXJlZCwgc2V0SG92ZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gYXV0b3J1bigoKSA9PiB7XG4gICAgICBjb25zdCBpc0hvdmVyZWQgPSBob3ZlcmVkSXRlbS5nZXQoKSA9PT0gcmVmZXJlbmNlUmVmLmN1cnJlbnQ7XG4gICAgICBzZXRIb3ZlcmVkKGlzSG92ZXJlZCk7XG4gICAgfSk7XG4gIH0sIFtob3ZlcmVkSXRlbV0pO1xuXG4gIGNvbnN0IHsgY29udGVudFRleHQsIENvbnRlbnQsIGNvbnRlbnRQcm9wcywgcG9zaXRpb24sIG9uVG9vbHRpcFNob3duIH0gPSB0b29sdGlwO1xuICBjb25zdCBjb250ZW50ID0gaG92ZXJlZCA/IENvbnRlbnQgPT09IHVuZGVmaW5lZCA/IGNvbnRlbnRUZXh0IDogPENvbnRlbnQgey4uLmNvbnRlbnRQcm9wc30gLz4gOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2NvbnRlbnRcbiAgICAgICAgPyBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8RmxvYXRpbmdTdHlsZWRUb29sdGlwQ29udGFpbmVyIHsuLi57IGNvbnRlbnQsIHBvc2l0aW9uLCBvblRvb2x0aXBTaG93biwgcmVmZXJlbmNlIH19IC8+LFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbH1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b29sdGlwUGx1Z2luPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSB7XG4gIHJldHVybiBnZXRQbHVnaW48VG9vbHRpcFBsdWdpblByb3BzLCBbSG92ZXJhYmxlUGx1Z2luPFQ+LCBSZWZQbHVnaW48VD5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICR0b29sdGlwIH0gPSBwcm9wcyBhcyB0eXBlb2YgcHJvcHMgJiB7IHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlIH07XG5cbiAgICBpZiAoJHRvb2x0aXAgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJHRvb2x0aXA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgY29udGVudFRleHQsXG4gICAgICBDb250ZW50LFxuICAgICAgY29udGVudFByb3BzLFxuICAgICAgcG9zaXRpb24gPSBcImJvdHRvbVwiLFxuICAgICAgb25Ub29sdGlwU2hvd24gPSBub29wLFxuICAgIH06ICRUb29sdGlwUHJvcHM8YW55PiA9IHR5cGVvZiAkdG9vbHRpcCA9PT0gXCJzdHJpbmdcIiA/IHsgY29udGVudFRleHQ6ICR0b29sdGlwIH0gOiAkdG9vbHRpcDtcblxuICAgIHJldHVybiB7XG4gICAgICAkdG9vbHRpcDogdW5kZWZpbmVkLFxuICAgICAgJHdyYXBwZXI6IHtcbiAgICAgICAgQ29tcG9uZW50OiBUb29sdGlwV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICB0b29sdGlwOiB7IGNvbnRlbnRUZXh0LCBDb250ZW50LCBjb250ZW50UHJvcHMsIHBvc2l0aW9uLCBvblRvb2x0aXBTaG93biB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCB0b29sdGlwRGVsYXlJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJ0b29sdGlwLWRlbGF5XCIsXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IDUwMCxcbn0pO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS5zY3NzXCIsIGNzczogXCIudG9vbHRpcC1tb2R1bGVfX3Rvb2x0aXBfX192YU9BdSB7XFxuICB6LWluZGV4OiAxMDAwMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogbWF4LWNvbnRlbnQ7XFxuICBtYXgtd2lkdGg6IDYwMHB4O1xcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG59XFxuLnRvb2x0aXAtbW9kdWxlX190b29sdGlwX19fdmFPQXU6cG9wb3Zlci1vcGVuIHtcXG4gIGluc2V0OiBhdXRvO1xcbiAgbWFyZ2luOiAwO1xcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0b29sdGlwXCI6XCJ0b29sdGlwLW1vZHVsZV9fdG9vbHRpcF9fX3ZhT0F1XCJ9OyIsICJpbXBvcnQgeyBnZXRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBvYnNlcnZlciB9IGZyb20gXCJtb2J4LXJlYWN0XCI7XG5pbXBvcnQgeyBhYnNvbHV0ZVBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5pbXBvcnQgeyBwYWRkaW5nUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5pbXBvcnQgeyBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3JcIjtcbmltcG9ydCB7IGJvcmRlclBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2JvcmRlci9ib3JkZXJcIjtcbmltcG9ydCB7IGZvbnRQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9mb250L2ZvbnRcIjtcbmltcG9ydCB7IGJveFNoYWRvd1BsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvd1wiO1xuaW1wb3J0IHsgbm9Qb2ludGVyRXZlbnRzUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvbm8tcG9pbnRlci1ldmVudHMvbm8tcG9pbnRlci1ldmVudHNcIjtcbmltcG9ydCB7IHJlZlBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL3JlZi9yZWZcIjtcbmltcG9ydCB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgcmVsYXRpdmVQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9yZWxhdGl2ZS9yZWxhdGl2ZVwiO1xuaW1wb3J0IHsgaG92ZXJhYmxlUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZVwiO1xuXG5jb25zdCBwbHVnaW5zID0gW1xuICBwYWRkaW5nUGx1Z2luLFxuICBib3hTaGFkb3dQbHVnaW4sXG4gIGJvcmRlclBsdWdpbixcbiAgZm9udFBsdWdpbixcbiAgYmFja2dyb3VuZENvbG9yUGx1Z2luLFxuICBub1BvaW50ZXJFdmVudHNQbHVnaW4sXG4gIHJlbGF0aXZlUGx1Z2luLFxuICBhYnNvbHV0ZVBsdWdpbixcbiAgY2xhc3NOYW1lUGx1Z2luLFxuXTtcblxuY29uc3QgZ2V0VHlwZWRQbHVnaW5zID0gPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSA9PiBbaG92ZXJhYmxlUGx1Z2luPFQ+KCksIHJlZlBsdWdpbjxUPigpXTtcblxuZXhwb3J0IGNvbnN0IE1pbmltYWxEaXYgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiZGl2XCIsIC4uLnBsdWdpbnMsIC4uLmdldFR5cGVkUGx1Z2luczxIVE1MRGl2RWxlbWVudD4oKSkpO1xuXG5leHBvcnQgdHlwZSBNaW5pbWFsRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgTWluaW1hbERpdj47XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBhYnNvbHV0ZVN0eWxlcyBmcm9tIFwiLi9hYnNvbHV0ZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBBYnNvbHV0ZVBvc2l0aW9uID1cbiAgfCBcImFic29sdXRlLWNlbnRlci1sZWZ0LXRvLXJlbGF0aXZlLWNlbnRlci1yaWdodFwiXG4gIHwgXCJhYnNvbHV0ZS1ib3R0b20tbGVmdC10by1yZWxhdGl2ZS10b3AtbGVmdFwiXG4gIHwgXCJhYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tXCJcbiAgfCBcImFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlclwiO1xuXG5leHBvcnQgdHlwZSBBYnNvbHV0ZVBsdWdpblByb3BzID0geyAkYWJzb2x1dGU/OiBBYnNvbHV0ZVBvc2l0aW9uIHwgYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgYWJzb2x1dGVQbHVnaW4gPSBnZXRQbHVnaW48QWJzb2x1dGVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtcbiAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIHsgW2Fic29sdXRlU3R5bGVzLmFic29sdXRlXTogISFwcm9wcy4kYWJzb2x1dGUgfSxcbiAgICB0eXBlb2YgcHJvcHMuJGFic29sdXRlID09PSBcInN0cmluZ1wiID8gYWJzb2x1dGVTdHlsZXNbYGFic29sdXRlLS0ke3Byb3BzLiRhYnNvbHV0ZX1gXSA6IHVuZGVmaW5lZCxcbiAgXSxcblxuICAkYWJzb2x1dGU6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZV9fX01YLS1ZIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1sZWZ0LXRvLXJlbGF0aXZlLWNlbnRlci1yaWdodF9fX2xKMHByIHtcXG4gIGxlZnQ6IDEwMCU7XFxuICB0b3A6IDUwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWJvdHRvbS1sZWZ0LXRvLXJlbGF0aXZlLXRvcC1sZWZ0X19fM2cwc0Qge1xcbiAgbGVmdDogMDtcXG4gIGJvdHRvbTogMTAwJTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1jZW50ZXItdG8tcmVsYXRpdmUtYm90dG9tLXJpZ2h0X19fZ2dtTzgge1xcbiAgbGVmdDogMTAwJTtcXG4gIGJvdHRvbTogMTAwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbn1cXG4uYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZS0tYWJzb2x1dGUtYm90dG9tLXRvLXJlbGF0aXZlLWJvdHRvbV9fX0NsbTBtIHtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlcl9fX0V0a3k1IHtcXG4gIGxlZnQ6IDUwJTtcXG4gIHRvcDogMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJhYnNvbHV0ZVwiOlwiYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZV9fX01YLS1ZXCIsXCJhYnNvbHV0ZS0tYWJzb2x1dGUtY2VudGVyLWxlZnQtdG8tcmVsYXRpdmUtY2VudGVyLXJpZ2h0XCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1jZW50ZXItbGVmdC10by1yZWxhdGl2ZS1jZW50ZXItcmlnaHRfX19sSjBwclwiLFwiYWJzb2x1dGUtLWFic29sdXRlLWJvdHRvbS1sZWZ0LXRvLXJlbGF0aXZlLXRvcC1sZWZ0XCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tbGVmdC10by1yZWxhdGl2ZS10b3AtbGVmdF9fXzNnMHNEXCIsXCJhYnNvbHV0ZS0tYWJzb2x1dGUtY2VudGVyLWNlbnRlci10by1yZWxhdGl2ZS1ib3R0b20tcmlnaHRcIjpcImFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1jZW50ZXItdG8tcmVsYXRpdmUtYm90dG9tLXJpZ2h0X19fZ2dtTzhcIixcImFic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tXCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tX19fQ2xtMG1cIixcImFic29sdXRlLS1hYnNvbHV0ZS10b3AtY2VudGVyLXRvLXJlbGF0aXZlLXRvcC1jZW50ZXJcIjpcImFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlcl9fX0V0a3k1XCJ9OyIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHBhZGRpbmdTdHlsZXMgZnJvbSBcIi4vcGFkZGluZy5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBEaXJlY3Rpb25hbFBhZGRpbmcgPSB7XG4gIHRvcD86IFRTaGlydFNpemU7XG4gIGJvdHRvbT86IFRTaGlydFNpemU7XG4gIGxlZnQ/OiBUU2hpcnRTaXplO1xuICByaWdodD86IFRTaGlydFNpemU7XG4gIGhvcml6b250YWw/OiBUU2hpcnRTaXplO1xuICB2ZXJ0aWNhbD86IFRTaGlydFNpemU7XG59O1xuXG5leHBvcnQgdHlwZSBQYWRkaW5nUGx1Z2luUHJvcHMgPSB7ICRwYWRkaW5nPzogYm9vbGVhbiB8IERpcmVjdGlvbmFsUGFkZGluZyB8IFRTaGlydFNpemUgfTtcblxuZXhwb3J0IGNvbnN0IHBhZGRpbmdQbHVnaW4gPSBnZXRQbHVnaW48UGFkZGluZ1BsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRwYWRkaW5nKSB7XG4gICAgcmV0dXJuIHsgJHBhZGRpbmc6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgcGFkZGluZyA9IHByb3BzLiRwYWRkaW5nID09PSB0cnVlID8gXCJ4c1wiIDogcHJvcHMuJHBhZGRpbmc7XG5cbiAgaWYgKGlzU3RyaW5nKHBhZGRpbmcpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwYWRkaW5nU3R5bGVzW2BwYWRkaW5nLS0ke3BhZGRpbmd9YF1dLFxuICAgICAgJHBhZGRpbmc6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgdG9wU2l6ZSA9IHBhZGRpbmcudG9wIHx8IHBhZGRpbmcudmVydGljYWw7XG4gIGNvbnN0IGJvdHRvbVNpemUgPSBwYWRkaW5nLmJvdHRvbSB8fCBwYWRkaW5nLnZlcnRpY2FsO1xuICBjb25zdCByaWdodFNpemUgPSBwYWRkaW5nLnJpZ2h0IHx8IHBhZGRpbmcuaG9yaXpvbnRhbDtcbiAgY29uc3QgbGVmdFNpemUgPSBwYWRkaW5nLmxlZnQgfHwgcGFkZGluZy5ob3Jpem9udGFsO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIHNpZGVDbGFzc05hbWUoXCJ0b3BcIiwgdG9wU2l6ZSksXG4gICAgICBzaWRlQ2xhc3NOYW1lKFwicmlnaHRcIiwgcmlnaHRTaXplKSxcbiAgICAgIHNpZGVDbGFzc05hbWUoXCJib3R0b21cIiwgYm90dG9tU2l6ZSksXG4gICAgICBzaWRlQ2xhc3NOYW1lKFwibGVmdFwiLCBsZWZ0U2l6ZSksXG4gICAgXSxcblxuICAgICRwYWRkaW5nOiB1bmRlZmluZWQsXG4gIH07XG59KTtcblxuY29uc3Qgc2lkZUNsYXNzTmFtZSA9IChzaWRlOiBcInRvcFwiIHwgXCJyaWdodFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiLCBzaXplOiBUU2hpcnRTaXplIHwgdW5kZWZpbmVkKSA9PlxuICBzaXplID8gcGFkZGluZ1N0eWxlc1tgcGFkZGluZ19fJHtzaWRlfS0tJHtzaXplfWBdIDogdW5kZWZpbmVkO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nLm1vZHVsZS5zY3NzXCIsIGNzczogXCIucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0temVyb19fX2dxcWZaIHtcXG4gIHBhZGRpbmctdG9wOiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS00eHNfX19ZLXk5cyB7XFxuICBwYWRkaW5nLXRvcDogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tM3hzX19fb2NjNE4ge1xcbiAgcGFkZGluZy10b3A6IDJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXh4c19fX043QnNsIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14c19fX0wwVUREIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1zX19fa2xRZTIge1xcbiAgcGFkZGluZy10b3A6IDEycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1tX19fY3RhNXQge1xcbiAgcGFkZGluZy10b3A6IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1sX19fTGctcHEge1xcbiAgcGFkZGluZy10b3A6IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14bF9fX1h2c3ZMIHtcXG4gIHBhZGRpbmctdG9wOiAyNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0teHhsX19fMWtlb2Uge1xcbiAgcGFkZGluZy10b3A6IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS0zeGxfX19jVVBzOSB7XFxuICBwYWRkaW5nLXRvcDogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTR4bF9fX3FpazJlIHtcXG4gIHBhZGRpbmctdG9wOiAzNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tNXhsX19fczlrcFEge1xcbiAgcGFkZGluZy10b3A6IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS02eGxfX19xYzNGWiB7XFxuICBwYWRkaW5nLXRvcDogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTd4bF9fX3RhQy1QIHtcXG4gIHBhZGRpbmctdG9wOiA0OHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tOHhsX19fTFdoanEge1xcbiAgcGFkZGluZy10b3A6IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS05eGxfX19MMTNjcCB7XFxuICBwYWRkaW5nLXRvcDogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTEweGxfX19JZGU5QyB7XFxuICBwYWRkaW5nLXRvcDogNjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTExeGxfX19IdHRTYyB7XFxuICBwYWRkaW5nLXRvcDogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0temVyb19fXzZ2WWJUIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNHhzX19faGpPOEQge1xcbiAgcGFkZGluZy1yaWdodDogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0zeHNfX19NWFI3RyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXh4c19fX0ZuM09oIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0teHNfX19rcHNRUCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXNfX183ZUJEViB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS1tX19feEdkdHUge1xcbiAgcGFkZGluZy1yaWdodDogMTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tbF9fX015eWM0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXhsX19fLUdHakoge1xcbiAgcGFkZGluZy1yaWdodDogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0teHhsX19fMHlORVoge1xcbiAgcGFkZGluZy1yaWdodDogMjhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tM3hsX19fYmJPUEMge1xcbiAgcGFkZGluZy1yaWdodDogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNHhsX19fdkFaRVUge1xcbiAgcGFkZGluZy1yaWdodDogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNXhsX19fcHNOaGIge1xcbiAgcGFkZGluZy1yaWdodDogNDBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNnhsX19fSnd3a1Ige1xcbiAgcGFkZGluZy1yaWdodDogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tN3hsX19fZ29tdzkge1xcbiAgcGFkZGluZy1yaWdodDogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tOHhsX19fVmh2Vloge1xcbiAgcGFkZGluZy1yaWdodDogNTJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tOXhsX19fNE9CTm4ge1xcbiAgcGFkZGluZy1yaWdodDogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tMTB4bF9fX2VPVUEzIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTExeGxfX19JNzkyZyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA2NHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0temVyb19fX0ZTOTg0IHtcXG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS00eHNfX193aGkxeCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tM3hzX19fZTVya1kge1xcbiAgcGFkZGluZy1ib3R0b206IDJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXh4c19fX3hRdlZ2IHtcXG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14c19fX29jeWkwIHtcXG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1zX19fNkliblYge1xcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1tX19fZ3hCMk0ge1xcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1sX19fY2JNbzcge1xcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14bF9fX3RMQW96IHtcXG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0teHhsX19fZzM1Qi0ge1xcbiAgcGFkZGluZy1ib3R0b206IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS0zeGxfX19BejhraSB7XFxuICBwYWRkaW5nLWJvdHRvbTogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTR4bF9fX2tiUy1SIHtcXG4gIHBhZGRpbmctYm90dG9tOiAzNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tNXhsX19fd2psT28ge1xcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS02eGxfX19JRHhSTCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTd4bF9fX0hxRm1pIHtcXG4gIHBhZGRpbmctYm90dG9tOiA0OHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tOHhsX19fdUxOZUIge1xcbiAgcGFkZGluZy1ib3R0b206IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS05eGxfX19rWGpmLSB7XFxuICBwYWRkaW5nLWJvdHRvbTogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTEweGxfX19TSkNCeCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTExeGxfX19MUi1tcyB7XFxuICBwYWRkaW5nLWJvdHRvbTogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS16ZXJvX19fT0NUY1kge1xcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNHhzX19fMDg5MDgge1xcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hzX19fZmVDMC0ge1xcbiAgcGFkZGluZy1sZWZ0OiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHhzX19feE5iMkoge1xcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHNfX19kQmM2WCB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS1zX19fa3NpZ3Ige1xcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLW1fX19sYm1SbCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tbF9fX2tHZ3huIHtcXG4gIHBhZGRpbmctbGVmdDogMjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14bF9fX1E5cE5JIHtcXG4gIHBhZGRpbmctbGVmdDogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14eGxfX19rWDBhYyB7XFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hsX19fM1VuNmIge1xcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4bF9fX3puTzNuIHtcXG4gIHBhZGRpbmctbGVmdDogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS01eGxfX19SVEhzUCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNnhsX19faDVCRUEge1xcbiAgcGFkZGluZy1sZWZ0OiA0NHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTd4bF9fX3JUWmZoIHtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS04eGxfX19uZE11OSB7XFxuICBwYWRkaW5nLWxlZnQ6IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tOXhsX19fYjBHQTAge1xcbiAgcGFkZGluZy1sZWZ0OiA1NnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTEweGxfX19Qd0RTViB7XFxuICBwYWRkaW5nLWxlZnQ6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tMTF4bF9fXzJIc3ZKIHtcXG4gIHBhZGRpbmctbGVmdDogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS16ZXJvX19faHdtZnAge1xcbiAgcGFkZGluZzogMHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4c19fX1FPVUtCIHtcXG4gIHBhZGRpbmc6IDFweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0zeHNfX19SczRJdSB7XFxuICBwYWRkaW5nOiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHhzX19fTUlkQ0oge1xcbiAgcGFkZGluZzogNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXhzX19fUXdoYUIge1xcbiAgcGFkZGluZzogOHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXNfX19CTEhlLSB7XFxuICBwYWRkaW5nOiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLW1fX19QZHRaYSB7XFxuICBwYWRkaW5nOiAxNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLWxfX19SVkRMayB7XFxuICBwYWRkaW5nOiAyMHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXhsX19fY3VQYU4ge1xcbiAgcGFkZGluZzogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14eGxfX19IN1ZJSCB7XFxuICBwYWRkaW5nOiAyOHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTN4bF9fX2t2aXJUIHtcXG4gIHBhZGRpbmc6IDMycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tNHhsX19feTE3QTAge1xcbiAgcGFkZGluZzogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS01eGxfX185eW1JOSB7XFxuICBwYWRkaW5nOiA0MHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTZ4bF9fXzJLQ21hIHtcXG4gIHBhZGRpbmc6IDQ0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tN3hsX19fU3NJeG4ge1xcbiAgcGFkZGluZzogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS04eGxfX19zSFpwbSB7XFxuICBwYWRkaW5nOiA1MnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTl4bF9fX29WY0lnIHtcXG4gIHBhZGRpbmc6IDU2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tMTB4bF9fX2pLR2tuIHtcXG4gIHBhZGRpbmc6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tMTF4bF9fX0FnSnJHIHtcXG4gIHBhZGRpbmc6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wicGFkZGluZ19fdG9wLS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS16ZXJvX19fZ3FxZlpcIixcInBhZGRpbmdfX3RvcC0tNHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS00eHNfX19ZLXk5c1wiLFwicGFkZGluZ19fdG9wLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTN4c19fX29jYzROXCIsXCJwYWRkaW5nX190b3AtLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0teHhzX19fTjdCc2xcIixcInBhZGRpbmdfX3RvcC0teHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXhzX19fTDBVRERcIixcInBhZGRpbmdfX3RvcC0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tc19fX2tsUWUyXCIsXCJwYWRkaW5nX190b3AtLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLW1fX19jdGE1dFwiLFwicGFkZGluZ19fdG9wLS1sXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1sX19fTGctcHFcIixcInBhZGRpbmdfX3RvcC0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXhsX19fWHZzdkxcIixcInBhZGRpbmdfX3RvcC0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14eGxfX18xa2VvZVwiLFwicGFkZGluZ19fdG9wLS0zeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTN4bF9fX2NVUHM5XCIsXCJwYWRkaW5nX190b3AtLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tNHhsX19fcWlrMmVcIixcInBhZGRpbmdfX3RvcC0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS01eGxfX19zOWtwUVwiLFwicGFkZGluZ19fdG9wLS02eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTZ4bF9fX3FjM0ZaXCIsXCJwYWRkaW5nX190b3AtLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tN3hsX19fdGFDLVBcIixcInBhZGRpbmdfX3RvcC0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS04eGxfX19MV2hqcVwiLFwicGFkZGluZ19fdG9wLS05eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTl4bF9fX0wxM2NwXCIsXCJwYWRkaW5nX190b3AtLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTEweGxfX19JZGU5Q1wiLFwicGFkZGluZ19fdG9wLS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS0xMXhsX19fSHR0U2NcIixcInBhZGRpbmdfX3JpZ2h0LS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXplcm9fX182dlliVFwiLFwicGFkZGluZ19fcmlnaHQtLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS00eHNfX19oak84RFwiLFwicGFkZGluZ19fcmlnaHQtLTN4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0zeHNfX19NWFI3R1wiLFwicGFkZGluZ19fcmlnaHQtLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS14eHNfX19GbjNPaFwiLFwicGFkZGluZ19fcmlnaHQtLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXhzX19fa3BzUVBcIixcInBhZGRpbmdfX3JpZ2h0LS1zXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXNfX183ZUJEVlwiLFwicGFkZGluZ19fcmlnaHQtLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tbV9fX3hHZHR1XCIsXCJwYWRkaW5nX19yaWdodC0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS1sX19fTXl5YzRcIixcInBhZGRpbmdfX3JpZ2h0LS14bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS14bF9fXy1HR2pKXCIsXCJwYWRkaW5nX19yaWdodC0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXh4bF9fXzB5TkVaXCIsXCJwYWRkaW5nX19yaWdodC0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTN4bF9fX2JiT1BDXCIsXCJwYWRkaW5nX19yaWdodC0tNHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTR4bF9fX3ZBWkVVXCIsXCJwYWRkaW5nX19yaWdodC0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTV4bF9fX3BzTmhiXCIsXCJwYWRkaW5nX19yaWdodC0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTZ4bF9fX0p3d2tSXCIsXCJwYWRkaW5nX19yaWdodC0tN3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTd4bF9fX2dvbXc5XCIsXCJwYWRkaW5nX19yaWdodC0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTh4bF9fX1ZodlZaXCIsXCJwYWRkaW5nX19yaWdodC0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTl4bF9fXzRPQk5uXCIsXCJwYWRkaW5nX19yaWdodC0tMTB4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0xMHhsX19fZU9VQTNcIixcInBhZGRpbmdfX3JpZ2h0LS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTExeGxfX19JNzkyZ1wiLFwicGFkZGluZ19fYm90dG9tLS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS16ZXJvX19fRlM5ODRcIixcInBhZGRpbmdfX2JvdHRvbS0tNHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS00eHNfX193aGkxeFwiLFwicGFkZGluZ19fYm90dG9tLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTN4c19fX2U1cmtZXCIsXCJwYWRkaW5nX19ib3R0b20tLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0teHhzX19feFF2VnZcIixcInBhZGRpbmdfX2JvdHRvbS0teHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXhzX19fb2N5aTBcIixcInBhZGRpbmdfX2JvdHRvbS0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tc19fXzZJYm5WXCIsXCJwYWRkaW5nX19ib3R0b20tLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLW1fX19neEIyTVwiLFwicGFkZGluZ19fYm90dG9tLS1sXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1sX19fY2JNbzdcIixcInBhZGRpbmdfX2JvdHRvbS0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXhsX19fdExBb3pcIixcInBhZGRpbmdfX2JvdHRvbS0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14eGxfX19nMzVCLVwiLFwicGFkZGluZ19fYm90dG9tLS0zeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTN4bF9fX0F6OGtpXCIsXCJwYWRkaW5nX19ib3R0b20tLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tNHhsX19fa2JTLVJcIixcInBhZGRpbmdfX2JvdHRvbS0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS01eGxfX193amxPb1wiLFwicGFkZGluZ19fYm90dG9tLS02eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTZ4bF9fX0lEeFJMXCIsXCJwYWRkaW5nX19ib3R0b20tLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tN3hsX19fSHFGbWlcIixcInBhZGRpbmdfX2JvdHRvbS0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS04eGxfX191TE5lQlwiLFwicGFkZGluZ19fYm90dG9tLS05eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTl4bF9fX2tYamYtXCIsXCJwYWRkaW5nX19ib3R0b20tLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTEweGxfX19TSkNCeFwiLFwicGFkZGluZ19fYm90dG9tLS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS0xMXhsX19fTFItbXNcIixcInBhZGRpbmdfX2xlZnQtLXplcm9cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS16ZXJvX19fT0NUY1lcIixcInBhZGRpbmdfX2xlZnQtLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4c19fXzA4OTA4XCIsXCJwYWRkaW5nX19sZWZ0LS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0zeHNfX19mZUMwLVwiLFwicGFkZGluZ19fbGVmdC0teHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHhzX19feE5iMkpcIixcInBhZGRpbmdfX2xlZnQtLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHNfX19kQmM2WFwiLFwicGFkZGluZ19fbGVmdC0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLXNfX19rc2lnclwiLFwicGFkZGluZ19fbGVmdC0tbVwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLW1fX19sYm1SbFwiLFwicGFkZGluZ19fbGVmdC0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLWxfX19rR2d4blwiLFwicGFkZGluZ19fbGVmdC0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14bF9fX1E5cE5JXCIsXCJwYWRkaW5nX19sZWZ0LS14eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14eGxfX19rWDBhY1wiLFwicGFkZGluZ19fbGVmdC0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hsX19fM1VuNmJcIixcInBhZGRpbmdfX2xlZnQtLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4bF9fX3puTzNuXCIsXCJwYWRkaW5nX19sZWZ0LS01eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS01eGxfX19SVEhzUFwiLFwicGFkZGluZ19fbGVmdC0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNnhsX19faDVCRUFcIixcInBhZGRpbmdfX2xlZnQtLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTd4bF9fX3JUWmZoXCIsXCJwYWRkaW5nX19sZWZ0LS04eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS04eGxfX19uZE11OVwiLFwicGFkZGluZ19fbGVmdC0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tOXhsX19fYjBHQTBcIixcInBhZGRpbmdfX2xlZnQtLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0xMHhsX19fUHdEU1ZcIixcInBhZGRpbmdfX2xlZnQtLTExeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0xMXhsX19fMkhzdkpcIixcInBhZGRpbmctLXplcm9cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS16ZXJvX19faHdtZnBcIixcInBhZGRpbmctLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4c19fX1FPVUtCXCIsXCJwYWRkaW5nLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0zeHNfX19SczRJdVwiLFwicGFkZGluZy0teHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHhzX19fTUlkQ0pcIixcInBhZGRpbmctLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHNfX19Rd2hhQlwiLFwicGFkZGluZy0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXNfX19CTEhlLVwiLFwicGFkZGluZy0tbVwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLW1fX19QZHRaYVwiLFwicGFkZGluZy0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLWxfX19SVkRMa1wiLFwicGFkZGluZy0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14bF9fX2N1UGFOXCIsXCJwYWRkaW5nLS14eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14eGxfX19IN1ZJSFwiLFwicGFkZGluZy0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tM3hsX19fa3ZpclRcIixcInBhZGRpbmctLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4bF9fX3kxN0EwXCIsXCJwYWRkaW5nLS01eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS01eGxfX185eW1JOVwiLFwicGFkZGluZy0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tNnhsX19fMktDbWFcIixcInBhZGRpbmctLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTd4bF9fX1NzSXhuXCIsXCJwYWRkaW5nLS04eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS04eGxfX19zSFpwbVwiLFwicGFkZGluZy0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tOXhsX19fb1ZjSWdcIixcInBhZGRpbmctLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0xMHhsX19faktHa25cIixcInBhZGRpbmctLTExeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0xMXhsX19fQWdKckdcIn07IiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgYmFja2dyb3VuZENvbG9yU3R5bGVzIGZyb20gXCIuL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tIFwiLi4vX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUgQmFja2dyb3VuZENvbG9yQWxpYXMgPSBrZXlvZiB0eXBlb2YgYWxpYXNUb05vbWluYWw7XG5leHBvcnQgdHlwZSBCYWNrZ3JvdW5kQ29sb3IgPSBDb2xvciB8IEJhY2tncm91bmRDb2xvckFsaWFzO1xuXG5leHBvcnQgdHlwZSAkQmFja2dyb3VuZENvbG9yUHJvcHMgPSB7XG4gIG5vcm1hbD86IEJhY2tncm91bmRDb2xvcjtcbiAgaG92ZXI/OiBCYWNrZ3JvdW5kQ29sb3I7XG4gIGZvY3VzPzogQmFja2dyb3VuZENvbG9yO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMgPSB7ICRiYWNrZ3JvdW5kQ29sb3I/OiBCYWNrZ3JvdW5kQ29sb3IgfCAkQmFja2dyb3VuZENvbG9yUHJvcHMgfTtcblxuY29uc3QgYWxpYXNUb05vbWluYWwgPSB7XG4gIGJhY2tncm91bmRQcmltYXJ5OiBcImdyZXk4MFwiLFxuICBiYWNrZ3JvdW5kU2Vjb25kYXJ5OiBcImdyZXkxMDBcIixcbiAgYmFja2dyb3VuZFByaW1hcnlEaW1tZWQ6IFwiZ3JleTgwQWxwaGE4NVwiLFxufSBhcyBjb25zdDtcblxuY29uc3QgaXNCYWNrZ3JvdW5kQ29sb3JBbGlhcyA9IChjb2xvcjogQmFja2dyb3VuZENvbG9yKTogY29sb3IgaXMgQmFja2dyb3VuZENvbG9yQWxpYXMgPT4gY29sb3IgaW4gYWxpYXNUb05vbWluYWw7XG5cbmV4cG9ydCBjb25zdCBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gPSBnZXRQbHVnaW48QmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGJhY2tncm91bmRDb2xvcjogY29sb3IgfSA9IHByb3BzO1xuICBjb25zdCB7IG5vcm1hbCwgaG92ZXIsIGZvY3VzIH0gPSB0eXBlb2YgY29sb3IgPT09IFwic3RyaW5nXCIgPyB7IG5vcm1hbDogY29sb3IgfSA6IChjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgPyAoaXNCYWNrZ3JvdW5kQ29sb3JBbGlhcyhub3JtYWwpID8gYWxpYXNUb05vbWluYWxbbm9ybWFsXSA6IG5vcm1hbCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGhvdmVyQ29sb3IgPSBob3ZlciA/IChpc0JhY2tncm91bmRDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZm9jdXNDb2xvciA9IGZvY3VzID8gKGlzQmFja2dyb3VuZENvbG9yQWxpYXMoZm9jdXMpID8gYWxpYXNUb05vbWluYWxbZm9jdXNdIDogZm9jdXMpIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIG5vcm1hbENvbG9yID8gYmFja2dyb3VuZENvbG9yU3R5bGVzW2BiYWNrZ3JvdW5kQ29sb3ItLSR7bm9ybWFsQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgICBob3ZlckNvbG9yID8gYmFja2dyb3VuZENvbG9yU3R5bGVzW2BiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLSR7aG92ZXJDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGZvY3VzQ29sb3IgPyBiYWNrZ3JvdW5kQ29sb3JTdHlsZXNbYGJhY2tncm91bmRDb2xvci1mb2N1cy0tJHtmb2N1c0NvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIF0sXG4gICAgJGJhY2tncm91bmRDb2xvcjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1pbmhlcml0X19fTi1EdFkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXdoaXRlX19fMThmeHUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS10cmFuc3BhcmVudF9fX1ZkdC1ZIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwMF9fX1BSelV0IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTgwX19fYWJ5dHUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk2MF9fX1BQQVNsIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NDBfX193RkJhbCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTMwX19fLS04TVQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXkyNV9fX1lFOFFmIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5MjBfX182MDBqUSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwX19fSVNzYzkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk3MF9fX1YtWkdMIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1X19fN29UWDMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1wcmltYXJ5X19fT0huckwge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1hY2NlbnRfX19kdDQ3ZiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NfX19XVVIzeSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLW5vdGljZV9fX2xWTlJkIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS13YXJuaW5nX19fQXJWdmwge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbF9fX3AtV2I5IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NUaW50X19fMlVQM1kge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0td2FybmluZ1RpbnRfX19xd0YwOCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbFRpbnRfX19pSy1qbCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbGlua19fX2o0Umo3IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tY29kZV9fX0VtLWJKIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0taW5oZXJpdF9fX215MlJxOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS13aGl0ZV9fX3RlLWdwOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRfX18xRDJJajpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMDBfX18tSkh1Mjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk4MF9fX3otODVJOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NjBfX19oVWJZMzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTQwX19fM0EtZTY6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkzMF9fXzctQ0ZqOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjVfX19tSVQ4UTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTIwX19fb01BY0Q6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMF9fX2dSMTkzOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NzBfX19rMkpLTTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTgwQWxwaGE4NV9fX0Nkay0tOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeV9fX3p0Z3pBOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tYWNjZW50X19fQkFqVVE6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzX19fRzMwVkg6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ub3RpY2VfX19qV0ZjQzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ19fX3ZuLUJLOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxfX19yNmJaSTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fXzg4TERqOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fWGk2MkY6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVjBxMm86aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWxpbmtfX19YOUxGcTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVfX19sSENJZzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWluaGVyaXRfX19SSlBXSjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0td2hpdGVfX194Rjh1Mzpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fdHFxLXg6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MTAwX19feHQxeEw6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBfX19lMjhqajpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTYwX19fd3REd1Q6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk0MF9fX0RESGtQOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MzBfX19aVnZENTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTI1X19fQXNWNmY6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkyMF9fX09MMFpZOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MTBfX19tYWl6Zjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTcwX19fdlJuTDI6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVfX19WaHl1Tjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXByaW1hcnlfX183VHprdTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWFjY2VudF9fX210REdPOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc19fX255M3psOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbm90aWNlX19fb3ZGdjE6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdhcm5pbmdfX19xbG4ydTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsX19fUGdESTU6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc1RpbnRfX19jcS1ENTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS13YXJuaW5nVGludF9fX2FIdGdBOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsVGludF9fX2VKOU5oOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1saW5rX19fVGxSUlk6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1jb2RlX19fZmE2NVU6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYmFja2dyb3VuZENvbG9yLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1pbmhlcml0X19fTi1EdFlcIixcImJhY2tncm91bmRDb2xvci0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXdoaXRlX19fMThmeHVcIixcImJhY2tncm91bmRDb2xvci0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXRyYW5zcGFyZW50X19fVmR0LVlcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwMF9fX1BSelV0XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTgwX19fYWJ5dHVcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NjBfX19QUEFTbFwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk0MF9fX3dGQmFsXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTMwX19fLS04TVRcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5MjVfX19ZRThRZlwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXkyMF9fXzYwMGpRXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwX19fSVNzYzlcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NzBfX19WLVpHTFwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1X19fN29UWDNcIixcImJhY2tncm91bmRDb2xvci0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tcHJpbWFyeV9fX09IbnJMXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tYWNjZW50X19fZHQ0N2ZcIixcImJhY2tncm91bmRDb2xvci0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tc3VjY2Vzc19fX1dVUjN5XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbm90aWNlX19fbFZOUmRcIixcImJhY2tncm91bmRDb2xvci0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0td2FybmluZ19fX0FyVnZsXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbF9fX3AtV2I5XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1zdWNjZXNzVGludF9fXzJVUDNZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS13YXJuaW5nVGludF9fX3F3RjA4XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tY3JpdGljYWxUaW50X19faUstamxcIixcImJhY2tncm91bmRDb2xvci0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbGlua19fX2o0Umo3XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWNvZGVfX19FbS1iSlwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1pbmhlcml0X19fbXkyUnFcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdoaXRlX19fdGUtZ3BcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXRyYW5zcGFyZW50X19fMUQySWpcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwMF9fXy1KSHUyXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTgwX19fei04NUlcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NjBfX19oVWJZM1wiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk0MF9fXzNBLWU2XCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTMwX19fNy1DRmpcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjVfX19tSVQ4UVwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkyMF9fX29NQWNEXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwX19fZ1IxOTNcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NzBfX19rMkpLTVwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1X19fQ2RrLS1cIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeV9fX3p0Z3pBXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tYWNjZW50X19fQkFqVVFcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tc3VjY2Vzc19fX0czMFZIXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tbm90aWNlX19faldGY0NcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ19fX3ZuLUJLXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1jcml0aWNhbF9fX3I2YlpJXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fXzg4TERqXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS13YXJuaW5nVGludF9fX1hpNjJGXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVjBxMm9cIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tbGlua19fX1g5TEZxXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVfX19sSENJZ1wiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1pbmhlcml0X19fUkpQV0pcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdoaXRlX19feEY4dTNcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fdHFxLXhcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwMF9fX3h0MXhMXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTgwX19fZTI4ampcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NjBfX193dER3VFwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk0MF9fX0RESGtQXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTMwX19fWlZ2RDVcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MjVfX19Bc1Y2ZlwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkyMF9fX09MMFpZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwX19fbWFpemZcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NzBfX192Um5MMlwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBBbHBoYTg1X19fVmh5dU5cIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tcHJpbWFyeV9fXzdUemt1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tYWNjZW50X19fbXRER09cIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc19fX255M3psXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbm90aWNlX19fb3ZGdjFcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0td2FybmluZ19fX3FsbjJ1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1jcml0aWNhbF9fX1BnREk1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1zdWNjZXNzVGludF9fX2NxLUQ1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS13YXJuaW5nVGludF9fX2FIdGdBXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tY3JpdGljYWxUaW50X19fZUo5TmhcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbGlua19fX1RsUlJZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNvZGVfX19mYTY1VVwifTsiLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBib3JkZXJTdHlsZXMgZnJvbSBcIi4vYm9yZGVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4uL19zaGFyZWQvY29sb3JzXCI7XG5pbXBvcnQgdHlwZSB7IEJvcmRlcldpZHRoIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IHR5cGUgQ29ybmVyU3R5bGVzLCBnZXRDb3JuZXJTdHlsZXMgfSBmcm9tIFwiLi9nZXQtY29ybmVyLXN0eWxlc1wiO1xuaW1wb3J0IHsgZ2V0U2lkZVN0eWxlcywgdHlwZSBTaWRlU3R5bGVzIH0gZnJvbSBcIi4vZ2V0LXNpZGUtc3R5bGVzXCI7XG5pbXBvcnQgeyBjb21wYWN0IH0gZnJvbSBcImxvZGFzaC9mcFwiO1xuXG5leHBvcnQgdHlwZSBCb3JkZXJDb2xvckFsaWFzID0ga2V5b2YgdHlwZW9mIGFsaWFzVG9Ob21pbmFsO1xuZXhwb3J0IHR5cGUgQm9yZGVyQ29sb3IgPSBDb2xvciB8IEJvcmRlckNvbG9yQWxpYXM7XG5cbmNvbnN0IGFsaWFzVG9Ob21pbmFsID0geyBib3JkZXJQcmltYXJ5OiBcImdyZXk2MFwiIH0gYXMgY29uc3Q7XG5cbmNvbnN0IGlzQm9yZGVyQ29sb3JBbGlhcyA9IChjb2xvcjogQm9yZGVyQ29sb3IpOiBjb2xvciBpcyBCb3JkZXJDb2xvckFsaWFzID0+IGNvbG9yIGluIGFsaWFzVG9Ob21pbmFsO1xuXG5leHBvcnQgdHlwZSAkQm9yZGVyQ29sb3JQcm9wcyA9IHtcbiAgcmVhZG9ubHkgbm9ybWFsPzogQm9yZGVyQ29sb3I7XG4gIHJlYWRvbmx5IGhvdmVyPzogQm9yZGVyQ29sb3I7XG4gIHJlYWRvbmx5IGRpc2FibGVkPzogQm9yZGVyQ29sb3I7XG59O1xuXG5leHBvcnQgdHlwZSAkQm9yZGVyUHJvcHMgPSB7XG4gIGNvbG9yPzogQm9yZGVyQ29sb3IgfCAkQm9yZGVyQ29sb3JQcm9wcztcbiAgd2lkdGg/OiBCb3JkZXJXaWR0aCB8IGJvb2xlYW47XG4gIC8qKlxuICAgKiBMZWF2ZSB0aGUgbGFzdCBvZiB0aGUgZWxlbWVudCdzIHNpYmxpbmdzIHdpdGhvdXQgdGhlIGJvcmRlciwgc28gdGhhdCBhIHN0YWNrXG4gICAqIG9mIGJvcmRlcmVkIHJvd3MgcmVhZHMgYXMgcm93cyBzZXBhcmF0ZWQgZnJvbSBlYWNoIG90aGVyIHJhdGhlciB0aGFuIGZyYW1lZC5cbiAgICovXG4gIGV4Y2VwdExhc3Q/OiBib29sZWFuO1xufSAmIFNpZGVTdHlsZXMgJlxuICBDb3JuZXJTdHlsZXM7XG5cbmV4cG9ydCB0eXBlIEJvcmRlclBsdWdpblByb3BzID0geyAkYm9yZGVyPzogJEJvcmRlclByb3BzIH07XG5cbmV4cG9ydCBjb25zdCBib3JkZXJQbHVnaW4gPSBnZXRQbHVnaW48Qm9yZGVyUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGJvcmRlcikge1xuICAgIHJldHVybiB7ICRib3JkZXI6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgZ2V0Q29ybmVyU3R5bGVzKHByb3BzLiRib3JkZXIpLCBnZXRCb3JkZXJTdHlsZXMocHJvcHMuJGJvcmRlcildLFxuICAgICRib3JkZXI6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5jb25zdCBnZXRCb3JkZXJTdHlsZXMgPSAoeyB3aWR0aCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wLCBjb2xvciwgZXhjZXB0TGFzdCB9OiAkQm9yZGVyUHJvcHMpID0+IHtcbiAgY29uc3QgYm9yZGVyV2lkdGggPSB3aWR0aCA9PT0gdHJ1ZSB8fCAod2lkdGggPT09IHVuZGVmaW5lZCAmJiBjb2xvcikgPyBcInh4c1wiIDogd2lkdGg7XG4gIGNvbnN0IHsgbm9ybWFsLCBob3ZlciwgZGlzYWJsZWQgfSA9XG4gICAgYm9yZGVyV2lkdGggJiYgY29sb3IgPT09IHVuZGVmaW5lZFxuICAgICAgPyB7IG5vcm1hbDogXCJib3JkZXJQcmltYXJ5XCIgYXMgY29uc3QgfVxuICAgICAgOiB0eXBlb2YgY29sb3IgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyB7IG5vcm1hbDogY29sb3IgfVxuICAgICAgICA6IChjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgJiYgaXNCb3JkZXJDb2xvckFsaWFzKG5vcm1hbCkgPyBhbGlhc1RvTm9taW5hbFtub3JtYWxdIDogbm9ybWFsO1xuICBjb25zdCBob3ZlckNvbG9yID0gaG92ZXIgJiYgaXNCb3JkZXJDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyO1xuICBjb25zdCBkaXNhYmxlZENvbG9yID0gZGlzYWJsZWQgJiYgaXNCb3JkZXJDb2xvckFsaWFzKGRpc2FibGVkKSA/IGFsaWFzVG9Ob21pbmFsW2Rpc2FibGVkXSA6IGRpc2FibGVkO1xuXG4gIGNvbnN0IHN0eWxlQ2xhc3NlcyA9IGNvbXBhY3QoW1xuICAgIGJvcmRlcldpZHRoID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX3dpZHRoLS0ke2JvcmRlcldpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgIG5vcm1hbENvbG9yID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX2NvbG9yLS0ke25vcm1hbENvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIGhvdmVyQ29sb3IgPyBib3JkZXJTdHlsZXNbYGJvcmRlcl9fY29sb3ItLSR7aG92ZXJDb2xvcn0tLWhvdmVyYF0gOiB1bmRlZmluZWQsXG4gICAgZGlzYWJsZWRDb2xvciA/IGJvcmRlclN0eWxlc1tgYm9yZGVyX19jb2xvci0tJHtkaXNhYmxlZENvbG9yfS0tZGlzYWJsZWRgXSA6IHVuZGVmaW5lZCxcbiAgICAuLi5nZXRTaWRlU3R5bGVzKHsgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wIH0pLFxuICAgIGV4Y2VwdExhc3QgPyBib3JkZXJTdHlsZXNbXCJib3JkZXItLWV4Y2VwdC1sYXN0XCJdIDogdW5kZWZpbmVkLFxuICBdKTtcblxuICByZXR1cm4gW3N0eWxlQ2xhc3Nlcywgc3R5bGVDbGFzc2VzLmxlbmd0aCA+IDAgJiYgYm9yZGVyU3R5bGVzW1wiYm9yZGVyX19zdHlsZS0tc29saWRcIl1dO1xufTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2JvcmRlci9ib3JkZXIubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3N0eWxlLS1zb2xpZF9fXzFReTFKIHtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0temVyb19fXy1rN1VDIHtcXG4gIGJvcmRlci1yYWRpdXM6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS1zX19fdmxtdWwge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLW1fX19Fb0h2aiB7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbWxfX19rc0tQZSB7XFxuICBib3JkZXItcmFkaXVzOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbF9fXy01NG54IHtcXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tNTBfX19FYzVjYyB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tZnVsbF9fX2YwT2tMIHtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMDAwMDAwMDAwMDAwMDAwMDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXplcm9fX191TGNPMiB7XFxuICBib3JkZXItd2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXh4c19fX0owdFo5IHtcXG4gIGJvcmRlci13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHNfX19VUmNrSSB7XFxuICBib3JkZXItd2lkdGg6IDJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXNfX194OU5VaiB7XFxuICBib3JkZXItd2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLW1fX19DRjhDRSB7XFxuICBib3JkZXItd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLWxfX19Zb0I2NSB7XFxuICBib3JkZXItd2lkdGg6IDZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXhsX19fQkNMbE4ge1xcbiAgYm9yZGVyLXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS14eGxfX18tZHJnUCB7XFxuICBib3JkZXItd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS0zeGxfX19kcW1pRiB7XFxuICBib3JkZXItd2lkdGg6IDEycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS00eGxfX19iRUw5MCB7XFxuICBib3JkZXItd2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS01eGxfX196ajFWWCB7XFxuICBib3JkZXItd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0X19fRTJNU3Mge1xcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0taW5oZXJpdC0taG92ZXJfX19XeW5CUDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0LS1kaXNhYmxlZF9fX3EtdHNFOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdoaXRlX19fZ1Qyb2cge1xcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdoaXRlLS1ob3Zlcl9fX1FkcFZiOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0tZGlzYWJsZWRfX19peVRYSzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnRfX19zd2FtSCB7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWhvdmVyX19falVaLXo6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1kaXNhYmxlZF9fX3NpRHJ5OmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAwX19fdjVsODMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWhvdmVyX19fSjEtT1E6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWRpc2FibGVkX19fUWpLUlI6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MF9fX2txNWFUIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MC0taG92ZXJfX19DcHBsVjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWRpc2FibGVkX19fLThQS2w6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwX19fUDlKTUgge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3Zlcl9fX0FaaWNHOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk2MC0tZGlzYWJsZWRfX19nY1ZkRDpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NDBfX19mNlNEdyB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NDAtLWhvdmVyX19fVUhkSXI6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZF9fXzRlRGtDOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMF9fX2ZxYnR1IHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMC0taG92ZXJfX19WTkRTUjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWRpc2FibGVkX19fcHlKT3E6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1X19fc25WbmQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3Zlcl9fX25kcmZZOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkyNS0tZGlzYWJsZWRfX19vbVBKUDpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjBfX19nYm4zWiB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjAtLWhvdmVyX19feFJzd2M6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZF9fX1NWZUFUOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMF9fX1pVNUdhIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMC0taG92ZXJfX19VWmgtZDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWRpc2FibGVkX19fOVotT1Q6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwX19feXI5aU0ge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3Zlcl9fX2w5WVRkOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk3MC0tZGlzYWJsZWRfX19Td1JRaTpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fNkRiZFMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWhvdmVyX19feFNrd0E6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWRpc2FibGVkX19feVA0Ty06ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXByaW1hcnlfX19nZnhCTyB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0taG92ZXJfX19wdUhEcDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0tZGlzYWJsZWRfX19INUZzRzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50X19fZS1IbEQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWFjY2VudC0taG92ZXJfX19TMm9WRTpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50LS1kaXNhYmxlZF9fX3kzQmJiOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzX19fWnVybFMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWhvdmVyX19fV3ktMk06aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWRpc2FibGVkX19fVFAzUnY6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZV9fX1p3UXZUIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZS0taG92ZXJfX19NSlFVaDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWRpc2FibGVkX19feVZ1aTI6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ19fX0xLNkF6IHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1ob3Zlcl9fX21Bb1NCOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1kaXNhYmxlZF9fX1djQUstOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbF9fX0dUWXoxIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWwtLWhvdmVyX19fdU1GamE6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0tZGlzYWJsZWRfX19LOWdsNzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NUaW50X19fUFNSTW4ge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0taG92ZXJfX19VZkpQZzpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NUaW50LS1kaXNhYmxlZF9fX1drT3BBOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnRfX19JVFdtTSB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1ob3Zlcl9fX0pjLU5uOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWRpc2FibGVkX19fdXF6Qm86ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19PUXV4dCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbFRpbnQtLWhvdmVyX19fbFdhOUQ6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZF9fX2xZaGg0OmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWxpbmtfX19pWWVGayB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0taG92ZXJfX180eVJKUDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0tZGlzYWJsZWRfX18wazlkQjpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZV9fXzhPc0ZpIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jb2RlLS1ob3Zlcl9fX1o1czVkOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jb2RlLS1kaXNhYmxlZF9fX3VEUVpNOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcblxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS16ZXJvX19fVktScS0ge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0teHhzX19fOHppN1Qge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0teHNfX19STkVLMiB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS1zX19fYVZuMVcge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogM3B4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tbV9fX0I2MTRqIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLWxfX18tb2VQUCB7XFxuICBib3JkZXItdG9wLXdpZHRoOiA2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14bF9fX1pKYzZJIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXh4bF9fX01uckh6IHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS0zeGxfX181eEstLSB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAxMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tNHhsX19fcEVEdGMge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMTRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTV4bF9fX01GdmZoIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0X19fQ3IxbmEge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXdoaXRlX19fdS11UWIge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS10cmFuc3BhcmVudF9fX1BzTW14IHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMF9fX1djOXRMIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTgwX19fZUhqekYge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk2MF9fX3RTQXRlIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5NDBfX19IaXJnZiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTMwX19fQkJyQlEge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyNV9fX1VIVlpYIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjBfX18xbHVwUCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwX19fRTJHZlQge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk3MF9fX0RiQzJHIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fa0I5LXYge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1wcmltYXJ5X19fNTExamsge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1hY2NlbnRfX19JMUtCUCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXN1Y2Nlc3NfX183OS11aiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLW5vdGljZV9fXy1kT0QwIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nX19fVDM1a1gge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbF9fX3MtcXZrIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fUGEwTkcge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0td2FybmluZ1RpbnRfX18yZVVRVCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19ISkFvMiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tbGlua19fX0tZRkdLIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY29kZV9fX3ZLT0t3IHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS16ZXJvX19fcmxESW4ge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXh4c19fXy16NzlhIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14c19fX3daVmhqIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS1zX19fTXRZVDYge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAzcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLW1fX19TRDk3dyB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbF9fX3FTSTBFIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14bF9fXzA1bjAwIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogOHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14eGxfX18tYUV3diB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLTN4bF9fX0R1MFJvIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMTJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tNHhsX19fMlpDWGsge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS01eGxfX19TcDQ4ayB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWluaGVyaXRfX185eVBlSSB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlX19faElPQmQge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRfX19veElOSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTAwX19fYWFTbmEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwX19fNVBUNWoge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NjBfX19vTlctVSB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk0MF9fXzJKd2k5IHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTMwX19fVDZodHgge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MjVfX19RYkZVSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyMF9fX2VzTVFNIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTEwX19fWjBRemYge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NzBfX190a3pBSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk4MEFscGhhODVfX19qNDVVTiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1wcmltYXJ5X19fSElrMkEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tYWNjZW50X19fV1gyTFMge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tc3VjY2Vzc19fX1JJd2FIIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLW5vdGljZV9fX3ZVTGFUIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0td2FybmluZ19fX1kyaVBpIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsX19fWG02dFEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fbTFudlkge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50X19fbi1oeEYge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsVGludF9fXzRWSk44IHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbGlua19fX0gycmUzIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNvZGVfX19VQ2RNMCB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0temVyb19fX1BsQUJMIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLXh4c19fX1pGbS1VIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLXhzX19faER6U3Mge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tc19fX0lXdC11IHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLW1fX19mMXItcyB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiA0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS1sX19fMEh2bDEge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teGxfX19zU1J0cyB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14eGxfX19OdUJnRiB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tM3hsX19fR2pMWVUge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLTR4bF9fX0J2SldQIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS01eGxfX19yQ2VEQiB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdF9fXzczZHFWIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS13aGl0ZV9fX0RabWo2IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tdHJhbnNwYXJlbnRfX19xa05nRiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBfX19YMnY3eCB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXk4MF9fX3RuTWo1IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NjBfX19VT1cwbiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTQwX19fYzd1YzAge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkzMF9fX1k4NUM0IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjVfX19rdjJObSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTIwX19fdk8tbUoge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMF9fX0ZhLWh5IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NzBfX19oLUNrViB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2lyeG9IIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tcHJpbWFyeV9fX0otcjVKIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tYWNjZW50X19fb2M0UVMge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1zdWNjZXNzX19fZnhadlIge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ub3RpY2VfX19JSUE1UiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ19fX2xzWkctIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxfX19CN0w1LSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1zdWNjZXNzVGludF9fX0FzdnRjIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXdhcm5pbmdUaW50X19fNE9QZk8ge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxUaW50X19feDJVTFEge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWxpbmtfX19SMlhEdSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVfX19FcjloYiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuXFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS16ZXJvX19fMS1GTS0ge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14eHNfX19vakFhcCB7XFxuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLXhzX19fejJYSUYge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1zX19fRHFYYmMge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1tX19fNGpQdTUge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1sX19fbFBhUksge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14bF9fX01jLS1SIHtcXG4gIGJvcmRlci1sZWZ0LXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teHhsX19fS1hPUloge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tM3hsX19fNGZZSUUge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDEycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tNHhsX19fY2RVbFcge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tNXhsX19fN2w5SDAge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0taW5oZXJpdF9fX3FkNGtEIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdoaXRlX19fLXJ6czcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXRyYW5zcGFyZW50X19fdVVVRXgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkxMDBfX19RRGJWMiB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwX19fN2hWeTgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTYwX19fcTlUczIge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwX19feUlyMEoge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTMwX19faXRVVXMge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTI1X19fejlFZ0Qge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwX19fSHFySm4ge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTEwX19feXRaUE4ge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTcwX19fRW95Vlcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwQWxwaGE4NV9fXzJHSVcyIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1wcmltYXJ5X19fSU5DOHkge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWFjY2VudF9fXzFSUzByIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzX19fMTJLaXUge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLW5vdGljZV9fX21oSkFuIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdfX191VjV0VyB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY3JpdGljYWxfX19BNkppTyB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fZ09yWWoge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nVGludF9fX043VWNUIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY3JpdGljYWxUaW50X19fYS1mYUcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tbGlua19fX213Ukt3IHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1jb2RlX19fdUpXRkgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXplcm9fX19kbHN0ViB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXNfX192bzVlbCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLW1fX19HSUVjdCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLW1sX19fbUVjRHYge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1sX19fcmctRDAge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tNTBfX19YbGxHcyB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWZ1bGxfX181Wkl2OCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTAwMDAwMDAwMDAwMDAwMDAwMHB4O1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXplcm9fX19POGRFMyB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXNfX19ueEx0TCB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1fX19TbDVSUiB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1sX19fQW9RMGIge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1sX19fNTJKb2wge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tNTBfX183LXdPRyB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLWZ1bGxfX19MQmFQNiB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTAwMDAwMDAwMDAwMDAwMDAwMHB4O1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb19fX29RQmRtIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLXNfX196RklMMyB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1tX19fS05TY1Qge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tbWxfX192dDd4MiB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1sX19fazhwaWsge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLTUwX19fZjJYVHUge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tZnVsbF9fX2VIajZzIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwMDAwMDAwMDAwMDAwMDAwMDBweDtcXG59XFxuXFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLXplcm9fX19QMVl0dyB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS1zX19fSC1sWGUge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0tbV9fXzNMUlIwIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1sX19faWd2MHcge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0tbF9fXzNzMkNKIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS01MF9fX3dOWXdRIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDUwJTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxfX19DZnotUiB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMDAwMDAwMDAwMDAwMDAwMDAwcHg7XFxufVxcblxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXItLWV4Y2VwdC1sYXN0X19fMjJZc0I6bGFzdC1jaGlsZCB7XFxuICBib3JkZXItd2lkdGg6IDA7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYm9yZGVyX19zdHlsZS0tc29saWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fc3R5bGUtLXNvbGlkX19fMVF5MUpcIixcImJvcmRlcl9fcmFkaXVzLS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0temVyb19fXy1rN1VDXCIsXCJib3JkZXJfX3JhZGl1cy0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLXNfX192bG11bFwiLFwiYm9yZGVyX19yYWRpdXMtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS1tX19fRW9IdmpcIixcImJvcmRlcl9fcmFkaXVzLS1tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLW1sX19fa3NLUGVcIixcImJvcmRlcl9fcmFkaXVzLS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbF9fXy01NG54XCIsXCJib3JkZXJfX3JhZGl1cy0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS01MF9fX0VjNWNjXCIsXCJib3JkZXJfX3JhZGl1cy0tZnVsbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLWZ1bGxfX19mME9rTFwiLFwiYm9yZGVyX193aWR0aC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0temVyb19fX3VMY08yXCIsXCJib3JkZXJfX3dpZHRoLS14eHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXh4c19fX0owdFo5XCIsXCJib3JkZXJfX3dpZHRoLS14c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHNfX19VUmNrSVwiLFwiYm9yZGVyX193aWR0aC0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tc19fX3g5TlVqXCIsXCJib3JkZXJfX3dpZHRoLS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS1tX19fQ0Y4Q0VcIixcImJvcmRlcl9fd2lkdGgtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLWxfX19Zb0I2NVwiLFwiYm9yZGVyX193aWR0aC0teGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXhsX19fQkNMbE5cIixcImJvcmRlcl9fd2lkdGgtLXh4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHhsX19fLWRyZ1BcIixcImJvcmRlcl9fd2lkdGgtLTN4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tM3hsX19fZHFtaUZcIixcImJvcmRlcl9fd2lkdGgtLTR4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tNHhsX19fYkVMOTBcIixcImJvcmRlcl9fd2lkdGgtLTV4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tNXhsX19femoxVlhcIixcImJvcmRlcl9fY29sb3ItLWluaGVyaXRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWluaGVyaXRfX19FMk1Tc1wiLFwiYm9yZGVyX19jb2xvci0taW5oZXJpdC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWluaGVyaXQtLWhvdmVyX19fV3luQlBcIixcImJvcmRlcl9fY29sb3ItLWluaGVyaXQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0LS1kaXNhYmxlZF9fX3EtdHNFXCIsXCJib3JkZXJfX2NvbG9yLS13aGl0ZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2hpdGVfX19nVDJvZ1wiLFwiYm9yZGVyX19jb2xvci0td2hpdGUtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0taG92ZXJfX19RZHBWYlwiLFwiYm9yZGVyX19jb2xvci0td2hpdGUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0tZGlzYWJsZWRfX19peVRYS1wiLFwiYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50X19fc3dhbUhcIixcImJvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWhvdmVyX19falVaLXpcIixcImJvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWRpc2FibGVkX19fc2lEcnlcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDBfX192NWw4M1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTEwMC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWhvdmVyX19fSjEtT1FcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAwLS1kaXNhYmxlZF9fX1FqS1JSXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MF9fX2txNWFUXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWhvdmVyX19fQ3BwbFZcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MC0tZGlzYWJsZWRfX18tOFBLbFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NjBfX19QOUpNSFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3Zlcl9fX0FaaWNHXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5NjAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NjAtLWRpc2FibGVkX19fZ2NWZERcIixcImJvcmRlcl9fY29sb3ItLWdyZXk0MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwX19fZjZTRHdcIixcImJvcmRlcl9fY29sb3ItLWdyZXk0MC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk0MC0taG92ZXJfX19VSGRJclwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZF9fXzRlRGtDXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMF9fX2ZxYnR1XCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWhvdmVyX19fVk5EU1JcIixcImJvcmRlcl9fY29sb3ItLWdyZXkzMC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMC0tZGlzYWJsZWRfX19weUpPcVwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjVfX19zblZuZFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3Zlcl9fX25kcmZZXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MjUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjUtLWRpc2FibGVkX19fb21QSlBcIixcImJvcmRlcl9fY29sb3ItLWdyZXkyMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwX19fZ2JuM1pcIixcImJvcmRlcl9fY29sb3ItLWdyZXkyMC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkyMC0taG92ZXJfX194UnN3Y1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZF9fX1NWZUFUXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMF9fX1pVNUdhXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWhvdmVyX19fVVpoLWRcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMC0tZGlzYWJsZWRfX185Wi1PVFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NzBfX195cjlpTVwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3Zlcl9fX2w5WVRkXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5NzAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NzAtLWRpc2FibGVkX19fU3dSUWlcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODVfX182RGJkU1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTgwQWxwaGE4NS0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWhvdmVyX19feFNrd0FcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODBBbHBoYTg1LS1kaXNhYmxlZF9fX3lQNE8tXCIsXCJib3JkZXJfX2NvbG9yLS1wcmltYXJ5XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1wcmltYXJ5X19fZ2Z4Qk9cIixcImJvcmRlcl9fY29sb3ItLXByaW1hcnktLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1wcmltYXJ5LS1ob3Zlcl9fX3B1SERwXCIsXCJib3JkZXJfX2NvbG9yLS1wcmltYXJ5LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0tZGlzYWJsZWRfX19INUZzR1wiLFwiYm9yZGVyX19jb2xvci0tYWNjZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1hY2NlbnRfX19lLUhsRFwiLFwiYm9yZGVyX19jb2xvci0tYWNjZW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50LS1ob3Zlcl9fX1Myb1ZFXCIsXCJib3JkZXJfX2NvbG9yLS1hY2NlbnQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1hY2NlbnQtLWRpc2FibGVkX19feTNCYmJcIixcImJvcmRlcl9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NfX19adXJsU1wiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzcy0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWhvdmVyX19fV3ktMk1cIixcImJvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzLS1kaXNhYmxlZF9fX1RQM1J2XCIsXCJib3JkZXJfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZV9fX1p3UXZUXCIsXCJib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWhvdmVyX19fTUpRVWhcIixcImJvcmRlcl9fY29sb3ItLW5vdGljZS0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZS0tZGlzYWJsZWRfX195VnVpMlwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ19fX0xLNkF6XCIsXCJib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZy0taG92ZXJfX19tQW9TQlwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZy0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmctLWRpc2FibGVkX19fV2NBSy1cIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbF9fX0dUWXoxXCIsXCJib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsLS1ob3Zlcl9fX3VNRmphXCIsXCJib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsLS1kaXNhYmxlZF9fX0s5Z2w3XCIsXCJib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnRfX19QU1JNblwiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnQtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0taG92ZXJfX19VZkpQZ1wiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0tZGlzYWJsZWRfX19Xa09wQVwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50X19fSVRXbU1cIixcImJvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWhvdmVyX19fSmMtTm5cIixcImJvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWRpc2FibGVkX19fdXF6Qm9cIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50X19fT1F1eHRcIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludC0taG92ZXJfX19sV2E5RFwiLFwiYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZF9fX2xZaGg0XCIsXCJib3JkZXJfX2NvbG9yLS1saW5rXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1saW5rX19faVllRmtcIixcImJvcmRlcl9fY29sb3ItLWxpbmstLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1saW5rLS1ob3Zlcl9fXzR5UkpQXCIsXCJib3JkZXJfX2NvbG9yLS1saW5rLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0tZGlzYWJsZWRfX18wazlkQlwiLFwiYm9yZGVyX19jb2xvci0tY29kZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZV9fXzhPc0ZpXCIsXCJib3JkZXJfX2NvbG9yLS1jb2RlLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZS0taG92ZXJfX19aNXM1ZFwiLFwiYm9yZGVyX19jb2xvci0tY29kZS0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNvZGUtLWRpc2FibGVkX19fdURRWk1cIixcImJvcmRlclRvcF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXplcm9fX19WS1JxLVwiLFwiYm9yZGVyVG9wX193aWR0aC0teHhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14eHNfX184emk3VFwiLFwiYm9yZGVyVG9wX193aWR0aC0teHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXhzX19fUk5FSzJcIixcImJvcmRlclRvcF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXNfX19hVm4xV1wiLFwiYm9yZGVyVG9wX193aWR0aC0tbVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tbV9fX0I2MTRqXCIsXCJib3JkZXJUb3BfX3dpZHRoLS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS1sX19fLW9lUFBcIixcImJvcmRlclRvcF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14bF9fX1pKYzZJXCIsXCJib3JkZXJUb3BfX3dpZHRoLS14eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXh4bF9fX01uckh6XCIsXCJib3JkZXJUb3BfX3dpZHRoLS0zeGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTN4bF9fXzV4Sy0tXCIsXCJib3JkZXJUb3BfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTR4bF9fX3BFRHRjXCIsXCJib3JkZXJUb3BfX3dpZHRoLS01eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTV4bF9fX01GdmZoXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0X19fQ3IxbmFcIixcImJvcmRlclRvcF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13aGl0ZV9fX3UtdVFiXCIsXCJib3JkZXJUb3BfX2NvbG9yLS10cmFuc3BhcmVudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tdHJhbnNwYXJlbnRfX19Qc01teFwiLFwiYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMF9fX1djOXRMXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk4MF9fX2VIanpGXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NjBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk2MF9fX3RTQXRlXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk0MF9fX0hpcmdmXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkzMF9fX0JCckJRXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyNV9fX1VIVlpYXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyMF9fXzFsdXBQXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkxMF9fX0UyR2ZUXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk3MF9fX0RiQzJHXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fa0I5LXZcIixcImJvcmRlclRvcF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXByaW1hcnlfX181MTFqa1wiLFwiYm9yZGVyVG9wX19jb2xvci0tYWNjZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1hY2NlbnRfX19JMUtCUFwiLFwiYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc19fXzc5LXVqXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLW5vdGljZV9fXy1kT0QwXCIsXCJib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nX19fVDM1a1hcIixcImJvcmRlclRvcF9fY29sb3ItLWNyaXRpY2FsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbF9fX3MtcXZrXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc1RpbnRfX19QYTBOR1wiLFwiYm9yZGVyVG9wX19jb2xvci0td2FybmluZ1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXdhcm5pbmdUaW50X19fMmVVUVRcIixcImJvcmRlclRvcF9fY29sb3ItLWNyaXRpY2FsVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY3JpdGljYWxUaW50X19fSEpBbzJcIixcImJvcmRlclRvcF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWxpbmtfX19LWUZHS1wiLFwiYm9yZGVyVG9wX19jb2xvci0tY29kZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY29kZV9fX3ZLT0t3XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0temVyb19fX3JsREluXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXh4c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14eHNfX18tejc5YVwiLFwiYm9yZGVyUmlnaHRfX3dpZHRoLS14c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14c19fX3daVmhqXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tc19fX010WVQ2XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbV9fX1NEOTd3XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbF9fX3FTSTBFXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXhsX19fMDVuMDBcIixcImJvcmRlclJpZ2h0X193aWR0aC0teHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXh4bF9fXy1hRXd2XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLTN4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS0zeGxfX19EdTBSb1wiLFwiYm9yZGVyUmlnaHRfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tNHhsX19fMlpDWGtcIixcImJvcmRlclJpZ2h0X193aWR0aC0tNXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLTV4bF9fX1NwNDhrXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWluaGVyaXRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0taW5oZXJpdF9fXzl5UGVJXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlX19faElPQmRcIixcImJvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRfX19veElOSlwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTAwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkxMDBfX19hYVNuYVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwX19fNVBUNWpcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk2MF9fX29OVy1VXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXk0MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NDBfX18ySndpOVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTMwX19fVDZodHhcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyNV9fX1FiRlVKXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MjBfX19lc01RTVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTEwX19fWjBRemZcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk3MF9fX3RrekFKXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2o0NVVOXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tcHJpbWFyeV9fX0hJazJBXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWFjY2VudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1hY2NlbnRfX19XWDJMU1wiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXN1Y2Nlc3NfX19SSXdhSFwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbm90aWNlX19fdlVMYVRcIixcImJvcmRlclJpZ2h0X19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS13YXJuaW5nX19fWTJpUGlcIixcImJvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxfX19YbTZ0UVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzVGludF9fX20xbnZZXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50X19fbi1oeEZcIixcImJvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsVGludF9fXzRWSk44XCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbGlua19fX0gycmUzXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWNvZGVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tY29kZV9fX1VDZE0wXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS16ZXJvX19fUGxBQkxcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLXh4c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teHhzX19fWkZtLVVcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLXhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14c19fX2hEelNzXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS1zX19fSVd0LXVcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLW1fX19mMXItc1wiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tbF9fXzBIdmwxXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS14bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teGxfX19zU1J0c1wiLFwiYm9yZGVyQm90dG9tX193aWR0aC0teHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14eGxfX19OdUJnRlwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tM3hsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS0zeGxfX19HakxZVVwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tNHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS00eGxfX19CdkpXUFwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tNXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS01eGxfX19yQ2VEQlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdF9fXzczZHFWXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS13aGl0ZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2hpdGVfX19EWm1qNlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXRyYW5zcGFyZW50X19fcWtOZ0ZcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBfX19YMnY3eFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5ODBfX190bk1qNVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NjBfX19VT1cwblwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTQwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NDBfX19jN3VjMFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTMwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MzBfX19ZODVDNFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjVfX19rdjJObVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTIwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjBfX192Ty1tSlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTEwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MTBfX19GYS1oeVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NzBfX19oLUNrVlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2lyeG9IXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1wcmltYXJ5XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1wcmltYXJ5X19fSi1yNUpcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWFjY2VudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tYWNjZW50X19fb2M0UVNcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NfX19meFp2UlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tbm90aWNlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ub3RpY2VfX19JSUE1UlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ19fX2xzWkctXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1jcml0aWNhbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxfX19CN0w1LVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tc3VjY2Vzc1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fQXN2dGNcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLXdhcm5pbmdUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS13YXJuaW5nVGludF9fXzRPUGZPXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1jcml0aWNhbFRpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNyaXRpY2FsVGludF9fX3gyVUxRXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1saW5rXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1saW5rX19fUjJYRHVcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVfX19FcjloYlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS16ZXJvX19fMS1GTS1cIixcImJvcmRlckxlZnRfX3dpZHRoLS14eHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14eHNfX19vakFhcFwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teHNfX196MlhJRlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1zX19fRHFYYmNcIixcImJvcmRlckxlZnRfX3dpZHRoLS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tbV9fXzRqUHU1XCIsXCJib3JkZXJMZWZ0X193aWR0aC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLWxfX19sUGFSS1wiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teGxfX19NYy0tUlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXh4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLXh4bF9fX0tYT1JaXCIsXCJib3JkZXJMZWZ0X193aWR0aC0tM3hsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tM3hsX19fNGZZSUVcIixcImJvcmRlckxlZnRfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS00eGxfX19jZFVsV1wiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLTV4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLTV4bF9fXzdsOUgwXCIsXCJib3JkZXJMZWZ0X19jb2xvci0taW5oZXJpdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWluaGVyaXRfX19xZDRrRFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0td2hpdGVfX18tcnpzN1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXRyYW5zcGFyZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tdHJhbnNwYXJlbnRfX191VVVFeFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTAwX19fUURiVjJcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5ODBfX183aFZ5OFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk2MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk2MF9fX3E5VHMyXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwX19feUlyMEpcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MzBfX19pdFVVc1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkyNVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkyNV9fX3o5RWdEXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwX19fSHFySm5cIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTBfX195dFpQTlwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk3MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk3MF9fX0VveVZXXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwQWxwaGE4NVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk4MEFscGhhODVfX18yR0lXMlwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1wcmltYXJ5X19fSU5DOHlcIixcImJvcmRlckxlZnRfX2NvbG9yLS1hY2NlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1hY2NlbnRfX18xUlMwclwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzX19fMTJLaXVcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ub3RpY2VfX19taEpBblwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nX19fdVY1dFdcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWNyaXRpY2FsX19fQTZKaU9cIixcImJvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fZ09yWWpcIixcImJvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdUaW50X19fTjdVY1RcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFRpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19hLWZhR1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1saW5rX19fbXdSS3dcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jb2RlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY29kZV9fX3VKV0ZIXCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXplcm9fX19kbHN0VlwiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1zX19fdm81ZWxcIixcImJvcmRlclJhZGl1c1RvcFJpZ2h0LS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tbV9fX0dJRWN0XCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1tbF9fX21FY0R2XCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWxfX19yZy1EMFwiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLTUwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tNTBfX19YbGxHc1wiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1mdWxsX19fNVpJdjhcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0temVyb19fX084ZEUzXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXNfX19ueEx0TFwiLFwiYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1tX19fU2w1UlJcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1sX19fQW9RMGJcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tbF9fXzUySm9sXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS01MF9fXzctd09HXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tZnVsbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLWZ1bGxfX19MQmFQNlwiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb19fX29RQmRtXCIsXCJib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1zX19fekZJTDNcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1fX19LTlNjVFwiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1sX19fdnQ3eDJcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWxfX19rOHBpa1wiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLTUwX19fZjJYVHVcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWZ1bGxfX19lSGo2c1wiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0temVyb19fX1AxWXR3XCIsXCJib3JkZXJSYWRpdXNUb3BMZWZ0LS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS1zX19fSC1sWGVcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1fX18zTFJSMFwiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1sX19faWd2MHdcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWxfX18zczJDSlwiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLTUwX19fd05Zd1FcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxfX19DZnotUlwiLFwiYm9yZGVyLS1leGNlcHQtbGFzdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyLS1leGNlcHQtbGFzdF9fXzIyWXNCXCJ9OyIsICJpbXBvcnQgYm9yZGVyU3R5bGVzIGZyb20gXCIuL2JvcmRlci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBCb3JkZXJSYWRpdXNTaXplIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb3JuZXJTdHlsZXMge1xuICByYWRpdXM/OiBCb3JkZXJSYWRpdXNTaXplIHwgYm9vbGVhbjtcbiAgcmFkaXVzVG9wUmlnaHQ/OiBCb3JkZXJSYWRpdXNTaXplO1xuICByYWRpdXNCb3R0b21SaWdodD86IEJvcmRlclJhZGl1c1NpemU7XG4gIHJhZGl1c0JvdHRvbUxlZnQ/OiBCb3JkZXJSYWRpdXNTaXplO1xuICByYWRpdXNUb3BMZWZ0PzogQm9yZGVyUmFkaXVzU2l6ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldENvcm5lclN0eWxlcyA9IChzdHlsZXM6IENvcm5lclN0eWxlcykgPT4ge1xuICBjb25zdCB7IHJhZGl1cywgcmFkaXVzVG9wUmlnaHQsIHJhZGl1c0JvdHRvbVJpZ2h0LCByYWRpdXNCb3R0b21MZWZ0LCByYWRpdXNUb3BMZWZ0IH0gPSBzdHlsZXM7XG5cbiAgaWYgKHJhZGl1cykge1xuICAgIGNvbnN0IGJvcmRlclJhZGl1c1NpemUgPSByYWRpdXMgPT09IHRydWUgPyBcInNcIiA6IHJhZGl1cztcblxuICAgIHJldHVybiBib3JkZXJSYWRpdXNTaXplID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX3JhZGl1cy0tJHtib3JkZXJSYWRpdXNTaXplfWBdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIFtcbiAgICByYWRpdXNUb3BSaWdodCA/IGJvcmRlclN0eWxlc1tgYm9yZGVyUmFkaXVzVG9wUmlnaHQtLSR7cmFkaXVzVG9wUmlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgcmFkaXVzQm90dG9tUmlnaHQgPyBib3JkZXJTdHlsZXNbYGJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS0ke3JhZGl1c0JvdHRvbVJpZ2h0fWBdIDogdW5kZWZpbmVkLFxuICAgIHJhZGl1c0JvdHRvbUxlZnQgPyBib3JkZXJTdHlsZXNbYGJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLSR7cmFkaXVzQm90dG9tTGVmdH1gXSA6IHVuZGVmaW5lZCxcbiAgICByYWRpdXNUb3BMZWZ0ID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJSYWRpdXNUb3BMZWZ0LS0ke3JhZGl1c1RvcExlZnR9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuIiwgImltcG9ydCBib3JkZXJTdHlsZXMgZnJvbSBcIi4vYm9yZGVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IEJvcmRlclNpZGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBjYXBpdGFsaXplIGFzIGxvZGFzaENhcGl0YWxpemUgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lkZVN0eWxlcyB7XG4gIHRvcD86IEJvcmRlclNpZGU7XG4gIHJpZ2h0PzogQm9yZGVyU2lkZTtcbiAgYm90dG9tPzogQm9yZGVyU2lkZTtcbiAgbGVmdD86IEJvcmRlclNpZGU7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRTaWRlU3R5bGVzID0gKHNpZGVzOiBTaWRlU3R5bGVzKSA9PiBbXG4gIC4uLmdldFNwZWNpZmljU2lkZVN0eWxlcyhcInRvcFwiLCBzaWRlcyksXG4gIC4uLmdldFNwZWNpZmljU2lkZVN0eWxlcyhcInJpZ2h0XCIsIHNpZGVzKSxcbiAgLi4uZ2V0U3BlY2lmaWNTaWRlU3R5bGVzKFwiYm90dG9tXCIsIHNpZGVzKSxcbiAgLi4uZ2V0U3BlY2lmaWNTaWRlU3R5bGVzKFwibGVmdFwiLCBzaWRlcyksXG5dO1xuXG5jb25zdCBnZXRTcGVjaWZpY1NpZGVTdHlsZXMgPSAoc2lkZToga2V5b2YgU2lkZVN0eWxlcywgc2lkZXM6IFNpZGVTdHlsZXMpID0+IHtcbiAgY29uc3QgeyB3aWR0aCwgY29sb3IgfSA9IHNpZGVzW3NpZGVdID8/IHt9O1xuICBjb25zdCBzaWRlTmFtZSA9IGNhcGl0YWxpemUoc2lkZSk7XG5cbiAgcmV0dXJuIFtcbiAgICB3aWR0aCA/IGJvcmRlclN0eWxlc1tgYm9yZGVyJHtzaWRlTmFtZX1fX3dpZHRoLS0ke3dpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgIGNvbG9yID8gYm9yZGVyU3R5bGVzW2Bib3JkZXIke3NpZGVOYW1lfV9fY29sb3ItLSR7Y29sb3J9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuXG5jb25zdCBjYXBpdGFsaXplID0gPFQgZXh0ZW5kcyBzdHJpbmc+KHRhcmdldDogVCkgPT4gbG9kYXNoQ2FwaXRhbGl6ZSh0YXJnZXQpIGFzIENhcGl0YWxpemU8VD47XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBmb250U3R5bGVzIGZyb20gXCIuL2ZvbnQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRm9udFNpemUgPSBcInh4c1wiIHwgXCJ4c1wiIHwgXCJzXCIgfCBcIm1cIiB8IFwibFwiIHwgXCJ4bFwiIHwgXCJ4eGxcIiB8IFwiM3hsXCIgfCBcIjR4bFwiO1xuXG5leHBvcnQgdHlwZSBGb250Qm9sZCA9IFwiNjAwXCI7XG5cbmV4cG9ydCB0eXBlIEZvbnRMaW5lSGVpZ2h0ID0gXCJub25lXCIgfCBcInRpZ2h0XCIgfCBcIm5vcm1hbFwiIHwgXCJsb29zZVwiO1xuXG5leHBvcnQgdHlwZSBGb250UGx1Z2luUHJvcHMgPSB7XG4gICRmb250PzpcbiAgICB8IGJvb2xlYW5cbiAgICB8IHtcbiAgICAgICAgc2l6ZT86IEZvbnRTaXplO1xuICAgICAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgICAgICBib2xkPzogYm9vbGVhbiB8IEZvbnRCb2xkO1xuICAgICAgICBsaW5lSGVpZ2h0PzogRm9udExpbmVIZWlnaHQ7XG4gICAgICAgIGZvcmNlV3JhcD86IGJvb2xlYW47XG4gICAgICAgIG5vV3JhcD86IGJvb2xlYW47XG4gICAgICAgIHVwcGVyY2FzZT86IGJvb2xlYW47XG4gICAgICAgIHVuZGVybGluZT86IGJvb2xlYW47XG4gICAgICAgIHRleHRPdmVyZmxvdz86IFwiY2xpcFwiIHwgXCJlbGxpcHNpc1wiIHwgXCJkZWZhdWx0XCI7XG4gICAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGZvbnRQbHVnaW4gPSBnZXRQbHVnaW48Rm9udFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRmb250KSB7XG4gICAgcmV0dXJuIHsgJGZvbnQ6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3Qge1xuICAgIHNpemUgPSB1bmRlZmluZWQsXG4gICAgYm9sZCA9IGZhbHNlLFxuICAgIGxpbmVIZWlnaHQgPSB1bmRlZmluZWQsXG4gICAgbm9XcmFwID0gZmFsc2UsXG4gICAgdXBwZXJjYXNlID0gZmFsc2UsXG4gICAgaXRhbGljID0gZmFsc2UsXG4gICAgZm9yY2VXcmFwID0gZmFsc2UsXG4gICAgdW5kZXJsaW5lID0gZmFsc2UsXG4gICAgdGV4dE92ZXJmbG93ID0gXCJkZWZhdWx0XCIsXG4gIH0gPSBwcm9wcy4kZm9udCA9PT0gdHJ1ZSA/IHt9IDogcHJvcHMuJGZvbnQ7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgICAgc2l6ZSA/IGZvbnRTdHlsZXNbYGZvbnRfX3NpemUtLSR7c2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGJvbGQgPT09IHRydWUgPyBmb250U3R5bGVzW1wiZm9udC0tYm9sZFwiXSA6IGJvbGQgPyBmb250U3R5bGVzW2Bmb250LS13ZWlnaHQtJHtib2xkfWBdIDogdW5kZWZpbmVkLFxuICAgICAgbGluZUhlaWdodCA/IGZvbnRTdHlsZXNbYGZvbnRfX2xpbmUtaGVpZ2h0LS0ke2xpbmVIZWlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgICB0ZXh0T3ZlcmZsb3cgPT09IFwiZGVmYXVsdFwiID8gdW5kZWZpbmVkIDogZm9udFN0eWxlc1tgZm9udC0tdGV4dC1vdmVyZmxvdy0tJHt0ZXh0T3ZlcmZsb3d9YF0sXG4gICAgICB7XG4gICAgICAgIFtmb250U3R5bGVzW1wiZm9udC0tbm8td3JhcFwiXV06IG5vV3JhcCxcbiAgICAgICAgW2ZvbnRTdHlsZXNbXCJmb250LS1mb3JjZS13cmFwXCJdXTogZm9yY2VXcmFwLFxuICAgICAgICBbZm9udFN0eWxlc1tcImZvbnQtLWl0YWxpY1wiXV06IGl0YWxpYyxcbiAgICAgICAgW2ZvbnRTdHlsZXNbXCJmb250LS11cHBlcmNhc2VcIl1dOiB1cHBlcmNhc2UsXG4gICAgICAgIFtmb250U3R5bGVzW1wiZm9udC0tdW5kZXJsaW5lXCJdXTogdW5kZXJsaW5lLFxuICAgICAgfSxcbiAgICBdLFxuICAgICRmb250OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZvbnQvZm9udC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14eHNfX19LSjJRLSB7XFxuICBmb250LXNpemU6IGNhbGMoMS4yNSAqIHZhcigtLXVuaXQpKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14c19fX3hFYVU5IHtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtYWxsKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS1zX19fVGJuTWwge1xcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLW1fX19mREpBaiB7XFxuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iaWcpO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLWxfX191S2N1ayB7XFxuICBmb250LXNpemU6IGNhbGMoMi4yNSAqIHZhcigtLXVuaXQpKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14bF9fX1JlaG9RIHtcXG4gIGZvbnQtc2l6ZTogY2FsYygyLjUgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0teHhsX19fQ2dvS1Age1xcbiAgZm9udC1zaXplOiBjYWxjKDIuNzUgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tM3hsX19fc0NJZXoge1xcbiAgZm9udC1zaXplOiBjYWxjKDMgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tNHhsX19fQTVrc2Uge1xcbiAgZm9udC1zaXplOiBjYWxjKDQgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLW5vbmVfX18xc0k5SyB7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19saW5lLWhlaWdodC0tdGlnaHRfX19yLUVCOSB7XFxuICBsaW5lLWhlaWdodDogMS4yO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1ub3JtYWxfX19ySjRWTiB7XFxuICBsaW5lLWhlaWdodDogMS41O1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZV9fX2RwelMtIHtcXG4gIGxpbmUtaGVpZ2h0OiAyO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnQtLWJvbGRfX19iamUtYiB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS13ZWlnaHQtNjAwX19fRWdkem0ge1xcbiAgZm9udC13ZWlnaHQ6IDYwMDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS1uby13cmFwX19fcWJSUk8ge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS1mb3JjZS13cmFwX19fT0dDRnoge1xcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS11cHBlcmNhc2VfX192UVhtbiB7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnQtLWl0YWxpY19fX0pINFRaIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS11bmRlcmxpbmVfX19kNG9uTCB7XFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS10ZXh0LW92ZXJmbG93LS1lbGxpcHNpc19fX0hxZlgtIHtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5mb250LW1vZHVsZV9fZm9udC0tdGV4dC1vdmVyZmxvdy0tY2xpcF9fXzk2eEI5IHtcXG4gIHRleHQtb3ZlcmZsb3c6IGNsaXA7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmb250X19zaXplLS14eHNcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS14eHNfX19LSjJRLVwiLFwiZm9udF9fc2l6ZS0teHNcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS14c19fX3hFYVU5XCIsXCJmb250X19zaXplLS1zXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tc19fX1Ribk1sXCIsXCJmb250X19zaXplLS1tXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tbV9fX2ZESkFqXCIsXCJmb250X19zaXplLS1sXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tbF9fX3VLY3VrXCIsXCJmb250X19zaXplLS14bFwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLXhsX19fUmVob1FcIixcImZvbnRfX3NpemUtLXh4bFwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLXh4bF9fX0Nnb0tQXCIsXCJmb250X19zaXplLS0zeGxcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS0zeGxfX19zQ0llelwiLFwiZm9udF9fc2l6ZS0tNHhsXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tNHhsX19fQTVrc2VcIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1ub25lXCI6XCJmb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLW5vbmVfX18xc0k5S1wiLFwiZm9udF9fbGluZS1oZWlnaHQtLXRpZ2h0XCI6XCJmb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLXRpZ2h0X19fci1FQjlcIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1ub3JtYWxcIjpcImZvbnQtbW9kdWxlX19mb250X19saW5lLWhlaWdodC0tbm9ybWFsX19fcko0Vk5cIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZVwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZV9fX2RwelMtXCIsXCJmb250LS1ib2xkXCI6XCJmb250LW1vZHVsZV9fZm9udC0tYm9sZF9fX2JqZS1iXCIsXCJmb250LS13ZWlnaHQtNjAwXCI6XCJmb250LW1vZHVsZV9fZm9udC0td2VpZ2h0LTYwMF9fX0VnZHptXCIsXCJmb250LS1uby13cmFwXCI6XCJmb250LW1vZHVsZV9fZm9udC0tbm8td3JhcF9fX3FiUlJPXCIsXCJmb250LS1mb3JjZS13cmFwXCI6XCJmb250LW1vZHVsZV9fZm9udC0tZm9yY2Utd3JhcF9fX09HQ0Z6XCIsXCJmb250LS11cHBlcmNhc2VcIjpcImZvbnQtbW9kdWxlX19mb250LS11cHBlcmNhc2VfX192UVhtblwiLFwiZm9udC0taXRhbGljXCI6XCJmb250LW1vZHVsZV9fZm9udC0taXRhbGljX19fSkg0VFpcIixcImZvbnQtLXVuZGVybGluZVwiOlwiZm9udC1tb2R1bGVfX2ZvbnQtLXVuZGVybGluZV9fX2Q0b25MXCIsXCJmb250LS10ZXh0LW92ZXJmbG93LS1lbGxpcHNpc1wiOlwiZm9udC1tb2R1bGVfX2ZvbnQtLXRleHQtb3ZlcmZsb3ctLWVsbGlwc2lzX19fSHFmWC1cIixcImZvbnQtLXRleHQtb3ZlcmZsb3ctLWNsaXBcIjpcImZvbnQtbW9kdWxlX19mb250LS10ZXh0LW92ZXJmbG93LS1jbGlwX19fOTZ4QjlcIn07IiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2JveC1zaGFkb3cubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgQm94U2hhZG93UGx1Z2luUHJvcHMgPSB7XG4gICRib3hTaGFkb3c/OiBib29sZWFuIHwgXCJlbGV2YXRlZFwiIHwgXCJzdWJ0bGVcIjtcbn07XG5cbmV4cG9ydCBjb25zdCBib3hTaGFkb3dQbHVnaW4gPSBnZXRQbHVnaW48Qm94U2hhZG93UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGJveFNoYWRvdykge1xuICAgIHJldHVybiB7XG4gICAgICAkYm94U2hhZG93OiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHZhcmlhbnQgPSBwcm9wcy4kYm94U2hhZG93ID09PSB0cnVlID8gXCJlbGV2YXRlZFwiIDogcHJvcHMuJGJveFNoYWRvdztcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBzdHlsZXNbYGJveC1zaGFkb3ctLSR7dmFyaWFudH1gXV0sXG4gICAgJGJveFNoYWRvdzogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ib3gtc2hhZG93L2JveC1zaGFkb3cubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ib3gtc2hhZG93LW1vZHVsZV9fYm94LXNoYWRvdy0tZWxldmF0ZWRfX19qYWg3ZiB7XFxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgMCA4cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xcbn1cXG4uYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLXN1YnRsZV9fX1ZvNnhNIHtcXG4gIGJveC1zaGFkb3c6IDAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuMjI3NDUwOTgwNCksIDAgMC42cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yMjc0NTA5ODA0KTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJib3gtc2hhZG93LS1lbGV2YXRlZFwiOlwiYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLWVsZXZhdGVkX19famFoN2ZcIixcImJveC1zaGFkb3ctLXN1YnRsZVwiOlwiYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLXN1YnRsZV9fX1ZvNnhNXCJ9OyIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcyA9IHsgJG5vUG9pbnRlckV2ZW50cz86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IG5vUG9pbnRlckV2ZW50c1BsdWdpbiA9IGdldFBsdWdpbjxOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCB7IFtzdHlsZXNbXCJuby1wb2ludGVyLWV2ZW50c1wiXV06IHByb3BzLiRub1BvaW50ZXJFdmVudHMgfV0sXG4gICRub1BvaW50ZXJFdmVudHM6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLm1vZHVsZS5zY3NzXCIsIGNzczogXCIubm8tcG9pbnRlci1ldmVudHMtbW9kdWxlX19uby1wb2ludGVyLWV2ZW50c19fXzdtRjBiICoge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wibm8tcG9pbnRlci1ldmVudHNcIjpcIm5vLXBvaW50ZXItZXZlbnRzLW1vZHVsZV9fbm8tcG9pbnRlci1ldmVudHNfX183bUYwYlwifTsiLCAiaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuLy8gU2ltcGxpZmllZCB0eXBlIHNpbmNlIFJlZkNhbGxiYWNrIGZyb20gXCJyZWFjdFwiIGNhdXNlcyBVTkRFRklORURfVk9JRF9PTkxZIGVycm9yXG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vQ29uZnVzaW5nVm9pZFR5cGU6IHZvaWQgdHlwaW5nIHJlcXVpcmVkXG50eXBlIFJlZkNhbGxiYWNrPFQ+ID0gKGluc3RhbmNlOiBUIHwgbnVsbCkgPT4gdW5kZWZpbmVkIHwgdm9pZCB8ICgoKSA9PiBhbnkpO1xuXG5leHBvcnQgdHlwZSBSZWZMaWtlPFQ+ID0gUmVmQ2FsbGJhY2s8VD4gfCBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PFQgfCBudWxsPiB8IFJlYWN0LlJlZk9iamVjdDxUPiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgJFJlZlByb3A8VD4gPSBSZWZMaWtlPFQ+IHwgJFJlZlByb3A8VD5bXTtcblxuZXhwb3J0IHR5cGUgUmVmUGx1Z2luUHJvcHM8VD4gPSB7XG4gICRyZWY/OiAkUmVmUHJvcDxUPjtcbiAgcmVmPzogUmVmTGlrZTxUPjtcbn07XG5cbmV4cG9ydCB0eXBlIFJlZlBsdWdpbjxUPiA9IFBsdWdpbjxSZWZQbHVnaW5Qcm9wczxUPiwgdW5rbm93bj47XG5cbmV4cG9ydCBmdW5jdGlvbiByZWZQbHVnaW48VCA9IEhUTUxFbGVtZW50PigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxSZWZQbHVnaW5Qcm9wczxUPj4oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyAkcmVmIH0gPSBwcm9wcztcbiAgICBjb25zdCBwcmV2UmVmcyA9IHVzZVJlZihuZXcgU2V0PFJlZkxpa2U8VD4+KCkpO1xuICAgIGNvbnN0IGVsZW1lbnRSZWYgPSB1c2VSZWY8VCB8IG51bGw+KG51bGwpO1xuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIGRvIG5vdCB3YW50IHRvIHJ1biB0aGlzIG11bHRpcGxlIHRpbWVzXG4gICAgY29uc3QgcmVmID0gdXNlQ2FsbGJhY2soKGN1cnJlbnQ6IFQpID0+IHtcbiAgICAgIGNvbnN0IGZpcnN0UmVmcyA9IGZsYXR0ZW5SZWZzKCRyZWYpO1xuXG4gICAgICBmaXJzdFJlZnMuZm9yRWFjaChoYW5kbGVSZWZzRm9yKGN1cnJlbnQpKTtcbiAgICAgIHByZXZSZWZzLmN1cnJlbnQgPSBmaXJzdFJlZnM7XG4gICAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBjdXJyZW50O1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBwcmV2UmVmcy5jdXJyZW50LmZvckVhY2goaGFuZGxlUmVmc0ZvcjxUPihudWxsKSk7XG4gICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBmaXJzdFJlbmRlciA9IHVzZVJlZih0cnVlKTtcblxuICAgIGlmICghZmlyc3RSZW5kZXIuY3VycmVudCkge1xuICAgICAgY29uc3QgY3VycmVudFJlZnMgPSBmbGF0dGVuUmVmcygkcmVmKTtcbiAgICAgIGNvbnN0IGFkZGVkUmVmcyA9IGN1cnJlbnRSZWZzLmRpZmZlcmVuY2UocHJldlJlZnMuY3VycmVudCk7XG4gICAgICBjb25zdCByZW1vdmVkUmVmcyA9IHByZXZSZWZzLmN1cnJlbnQuZGlmZmVyZW5jZShjdXJyZW50UmVmcyk7XG5cbiAgICAgIGFkZGVkUmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3I8VD4oZWxlbWVudFJlZi5jdXJyZW50KSk7XG4gICAgICByZW1vdmVkUmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3I8VD4obnVsbCkpO1xuICAgICAgcHJldlJlZnMuY3VycmVudCA9IGN1cnJlbnRSZWZzO1xuICAgIH1cblxuICAgIGZpcnN0UmVuZGVyLmN1cnJlbnQgPSBmYWxzZTtcblxuICAgIHJldHVybiB7XG4gICAgICByZWYsXG4gICAgICAkcmVmOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IGZsYXR0ZW5SZWZzID0gPFQsPihyZWZzOiAkUmVmUHJvcDxUPik6IFNldDxSZWZMaWtlPFQ+PiA9PlxuICBuZXcgU2V0KChbcmVmc10uZmxhdChJbmZpbml0eSBhcyAxKSBhcyBBcnJheTxOb25OdWxsYWJsZTxSZWZMaWtlPFQ+Pj4pLmZpbHRlcihpc0RlZmluZWQpKTtcblxuY29uc3QgaGFuZGxlUmVmc0ZvciA9XG4gIDxULD4odmFsdWU6IFQgfCBudWxsKSA9PlxuICAocmVmczogJFJlZlByb3A8VD4pID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZWZzKSkge1xuICAgICAgcmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3IodmFsdWUpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWZzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJlZnModmFsdWUpO1xuICAgIH0gZWxzZSBpZiAocmVmcykge1xuICAgICAgKHJlZnMgYXMgTXV0YWJsZVJlZk9iamVjdDxUIHwgbnVsbD4pLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG4gIH07XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBjc3NOYW1lcywgdHlwZSBJQ2xhc3NOYW1lIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuZXhwb3J0IHR5cGUgQ2xhc3NOYW1lUGx1Z2luUHJvcHMgPSB7ICRjbGFzc05hbWU/OiBJQ2xhc3NOYW1lOyBjbGFzc05hbWU/OiBzdHJpbmcgfTtcblxubGV0IHNob3dDbHV0dGVyID0gdHJ1ZTtcblxuZXhwb3J0IGNvbnN0IGNsYXNzTmFtZVBsdWdpbiA9IGdldFBsdWdpbjxDbGFzc05hbWVQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IGNzc05hbWVzKHByb3BzLmNsYXNzTmFtZSwgcHJvcHMuJGNsYXNzTmFtZSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi4oY2xhc3NOYW1lID8geyBjbGFzc05hbWU6IHNob3dDbHV0dGVyID8gY2xhc3NOYW1lIDogcmVtb3ZlQ2x1dHRlcihjbGFzc05hbWUpIH0gOiB7fSksXG4gICAgJGNsYXNzTmFtZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG5cbmNvbnN0IHJlbW92ZUNsdXR0ZXIgPSAoY2xhc3NOYW1lOiBzdHJpbmcpID0+XG4gIGNsYXNzTmFtZS5yZXBsYWNlKC9fX18uKj8oPz1cXHN8JCkvZywgXCJcIikucmVwbGFjZSgvXFxiW2EtekEtWjAtOS1dKy1tb2R1bGVfXy9nLCBcIlwiKTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZyA9ICgpID0+IHtcbiAgc2hvd0NsdXR0ZXIgPSBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaG93Q3NzTW9kdWxlQ2x1dHRlckZvclByb2R1Y3Rpb24gPSAoKSA9PiB7XG4gIHNob3dDbHV0dGVyID0gdHJ1ZTtcbn07XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCByZWxhdGl2ZVN0eWxlcyBmcm9tIFwiLi9yZWxhdGl2ZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBSZWxhdGl2ZVBsdWdpblByb3BzID0geyAkcmVsYXRpdmU/OiBib29sZWFuOyAkZml4ZWQ/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCByZWxhdGl2ZVBsdWdpbiA9IGdldFBsdWdpbjxSZWxhdGl2ZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW1xuICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgeyBbcmVsYXRpdmVTdHlsZXMucmVsYXRpdmVdOiAhIXByb3BzLiRyZWxhdGl2ZSwgW3JlbGF0aXZlU3R5bGVzLmZpeGVkXTogISFwcm9wcy4kZml4ZWQgfSxcbiAgXSxcbiAgJGZpeGVkOiB1bmRlZmluZWQsXG4gICRyZWxhdGl2ZTogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5yZWxhdGl2ZS1tb2R1bGVfX3JlbGF0aXZlX19fa3dNNXEge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4ucmVsYXRpdmUtbW9kdWxlX19maXhlZF9fX0NzWEhEIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJyZWxhdGl2ZVwiOlwicmVsYXRpdmUtbW9kdWxlX19yZWxhdGl2ZV9fX2t3TTVxXCIsXCJmaXhlZFwiOlwicmVsYXRpdmUtbW9kdWxlX19maXhlZF9fX0NzWEhEXCJ9OyIsICJleHBvcnQgdHlwZSBEcmFnZ2FibGVQbHVnaW5Qcm9wczxUID0gYW55PiA9IHtcbiAgJGRyYWdnYWJsZT86IHtcbiAgICBjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+O1xuICAgIGl0ZW06IFQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEcm9wcGFibGVQbHVnaW5Qcm9wczxUID0gYW55PiA9IHtcbiAgJGRyb3BwYWJsZT86IHtcbiAgICBjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+O1xuICAgIG9uRHJvcDogKGl0ZW06IFQpID0+IHZvaWQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEcmFnZ2FibGVDb250ZXh0PERyYWdnZWRJdGVtPiA9IHtcbiAgZHJhZ2dhYmxlOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IE5vbk51bGxhYmxlPERyYWdnYWJsZVBsdWdpblByb3BzPERyYWdnZWRJdGVtPltgJGRyYWdnYWJsZWBdPjtcbiAgZHJvcHBhYmxlOiAob25Ecm9wOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IHZvaWQpID0+IE5vbk51bGxhYmxlPERyb3BwYWJsZVBsdWdpblByb3BzPERyYWdnZWRJdGVtPltcIiRkcm9wcGFibGVcIl0+O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERyYWdnYWJsZUNvbnRleHQgPSA8RHJhZ2dlZEl0ZW0+KCk6IERyYWdnYWJsZUNvbnRleHQ8RHJhZ2dlZEl0ZW0+ID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICBkcmFnZ2FibGU6IChpdGVtOiBEcmFnZ2VkSXRlbSkgPT4gKHtcbiAgICAgIGNvbnRleHQsXG4gICAgICBpdGVtLFxuICAgIH0pLFxuXG4gICAgZHJvcHBhYmxlOiAob25Ecm9wOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IHZvaWQpID0+ICh7XG4gICAgICBjb250ZXh0LFxuICAgICAgb25Ecm9wLFxuICAgIH0pLFxuICB9O1xuXG4gIHJldHVybiBjb250ZXh0O1xufTtcbiIsICJpbXBvcnQgeyBnZXRGZWF0dXJlIH0gZnJvbSBcIkBrOHNsZW5zL2ZlYXR1cmUtY29yZVwiO1xuaW1wb3J0IHsgcmVnaXN0ZXJJbmplY3RhYmxlc0Zyb21Nb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL2ZlYXR1cmUtY29yZVwiO1xuaW1wb3J0IG1vZHVsZXNXaXRoSW5qZWN0YWJsZXMgZnJvbSBcIi4vKiovKi5pbmplY3RhYmxlLih0c3x0c3gpXCI7XG5pbXBvcnQgc3R5bGVzaGVldHMgZnJvbSBcIi4vKiovIShfKikuKHNjc3N8Y3NzKVwiO1xuXG5leHBvcnQgY29uc3QgZWxlbWVudENvbXBvbmVudEZlYXR1cmUgPSBnZXRGZWF0dXJlKHtcbiAgaWQ6IFwiZWxlbWVudC1jb21wb25lbnRcIixcbiAgcmVnaXN0ZXI6IChkaSkgPT4gcmVnaXN0ZXJJbmplY3RhYmxlc0Zyb21Nb2R1bGVzKGRpLCBbLi4ubW9kdWxlc1dpdGhJbmplY3RhYmxlcywgLi4uc3R5bGVzaGVldHNdKSxcbiAgLy8gTm8gZmVhdHVyZSBkZXBlbmRlbmNpZXM6IGEgZGVzaWduIHN5c3RlbSBldmVyeW9uZSBtYXkgaW5zdGFsbCBjYW5ub3QgZHJhZ1xuICAvLyBMZW5zIGZlYXR1cmVzIGludG8gdGhlIGNsb3N1cmUuIFRoZSBjbG9jayB0aGUgaG92ZXJhYmxlIHBsdWdpbiBuZWVkcyBpc1xuICAvLyBsb2NhbCwgYW5kIHRoZSBwbGF0Zm9ybSBpcyByZWFkIGRpcmVjdGx5LlxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuXG4vKipcbiAqIFdoZXRoZXIgdGhlIGtleWJvYXJkIGNvbnZlbnRpb25zIG9mIG1hY09TIGFwcGx5LlxuICpcbiAqIFJlYWQgZnJvbSB0aGUgYnJvd3NlciByYXRoZXIgdGhhbiBmcm9tIGBwcm9jZXNzYCBvciB0aGUgdmFycyBmZWF0dXJlOiB0aGlzIGlzXG4gKiBhIHJlbmRlcmVyLW9ubHkgZGVzaWduIHN5c3RlbSwgaXQgbWF5IG5vdCBkZXBlbmQgb24gYSBmZWF0dXJlIHBhY2thZ2UsIGFuZFxuICogYHByb2Nlc3NgIGlzIG5vdCB0aGVyZSB0byByZWFkIG9uY2UgdGhlIHJlbmRlcmVyIHN0b3BzIHJ1bm5pbmcgd2l0aCBub2RlXG4gKiBpbnRlZ3JhdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzTWFjSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiaXMtbWFjXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+ICgpID0+IHtcbiAgICBjb25zdCB7IHVzZXJBZ2VudERhdGEsIHBsYXRmb3JtLCB1c2VyQWdlbnQgfSA9IG5hdmlnYXRvciBhcyBOYXZpZ2F0b3IgJiB7XG4gICAgICByZWFkb25seSB1c2VyQWdlbnREYXRhPzogeyByZWFkb25seSBwbGF0Zm9ybT86IHN0cmluZyB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gL21hYy9pLnRlc3QodXNlckFnZW50RGF0YT8ucGxhdGZvcm0gPz8gcGxhdGZvcm0gPz8gdXNlckFnZW50ID8/IFwiXCIpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgbWF0Y2hlcyB9IGZyb20gXCJsb2Rhc2gvZnBcIjtcbmltcG9ydCB7IGlzTWFjSW5qZWN0YWJsZSB9IGZyb20gXCIuL2lzLW1hYy5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBvblJpZ2h0VHJpZ2dlckluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIm9uLXJpZ2h0LXRyaWdnZXJcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgaXNNYWMgPSBkaS5pbmplY3QoaXNNYWNJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PiBvblJpZ2h0VHJpZ2dlckZvcihpc01hYygpID8gaXNNYWNvc1Nob3J0Y3V0IDogaXNMaW51eE9yV2luZG93c1Nob3J0Y3V0KTtcbiAgfSxcbn0pO1xuXG5jb25zdCBvblJpZ2h0VHJpZ2dlckZvciA9XG4gIDxUPihjYjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PFQ+KSA9PiBib29sZWFuKSA9PlxuICAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8VD4sIGNhbGxiYWNrOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxUPikgPT4ge1xuICAgIGlmIChjYihldmVudCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgfVxuICB9O1xuXG5jb25zdCBpc01hY29zU2hvcnRjdXQgPSBtYXRjaGVzKHtcbiAgc2hpZnRLZXk6IGZhbHNlLFxuICBhbHRLZXk6IGZhbHNlLFxuICBjdHJsS2V5OiBmYWxzZSxcbiAgbWV0YUtleTogdHJ1ZSxcbiAgY29kZTogXCJFbnRlclwiLFxufSk7XG5cbmNvbnN0IGlzTGludXhPcldpbmRvd3NTaG9ydGN1dCA9IG1hdGNoZXMoe1xuICBzaGlmdEtleTogZmFsc2UsXG4gIGFsdEtleTogZmFsc2UsXG4gIGN0cmxLZXk6IHRydWUsXG4gIG1ldGFLZXk6IGZhbHNlLFxuICBjb2RlOiBcIkVudGVyXCIsXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBtYWtlU3VyZURyYWdBbmREcm9wRXZlbnRzSGF2ZVRpbWVUb0hhcHBlbkluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIm1ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+ICgpID0+IChjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9LCA1MCk7XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgTmF2aWdhYmxlRW50cnkgPSB7XG4gIHJlYWRvbmx5IGl0ZW06IHVua25vd247XG4gIHJlYWRvbmx5IG9yZGVyTnVtYmVyOiBudW1iZXI7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufTtcblxudHlwZSBOYXZpZ2FibGVDb250ZXh0ID0gS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PGFueT47XG5cbi8qKlxuICogVGhlIG1lbWJlcnMgb2YgZXZlcnkga2V5Ym9hcmQtbmF2aWdhYmxlIGNvbnRleHQsIHRoZSBvcmRlciB0aGUgY29udGV4dHMgYXBwZWFyZWQgaW4sIGFuZCB3aGljaFxuICogbWVtYmVyIG9mIGVhY2ggaGFkIGZvY3VzLiBGb2N1cyBiZWxvbmdzIHRvIHRoZSBjb250ZXh0IHRoYXQgYXBwZWFyZWQgbGFzdDsgd2hlbiBpdCBnb2VzIGF3YXksIHRoZVxuICogcHJldmlvdXMgb25lIHRha2VzIGl0IGJhY2sgXHUyMDE0IGF0IHRoZSBtZW1iZXIgaXQgd2FzIGxlZnQgb24sIHdoaWNoIGlzIHdoYXQgbWFrZXMgc3RlcHBpbmcgaW50b1xuICogc29tZXRoaW5nIGFuZCBiYWNrIG91dCBvZiBpdCBsYW5kIHdoZXJlIGl0IHN0YXJ0ZWQgcmF0aGVyIHRoYW4gYXQgdGhlIGJlZ2lubmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IGtleWJvYXJkTmF2aWdhdGlvblN0YXRlSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwia2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiB7XG4gICAgY29uc3QgZW50cmllc0J5Q29udGV4dCA9IG5ldyBNYXA8TmF2aWdhYmxlQ29udGV4dCwgU2V0PE5hdmlnYWJsZUVudHJ5Pj4oKTtcbiAgICBjb25zdCBpdGVtSW5Gb2N1c0J5Q29udGV4dCA9IG5ldyBNYXA8TmF2aWdhYmxlQ29udGV4dCwgdW5rbm93bj4oKTtcbiAgICBjb25zdCBjb250ZXh0U3RhY2s6IE5hdmlnYWJsZUNvbnRleHRbXSA9IFtdO1xuXG4gICAgY29uc3QgZW50cmllc09mID0gKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gZW50cmllc0J5Q29udGV4dC5nZXQoY29udGV4dCk7XG5cbiAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNyZWF0ZWQgPSBuZXcgU2V0PE5hdmlnYWJsZUVudHJ5PigpO1xuXG4gICAgICBlbnRyaWVzQnlDb250ZXh0LnNldChjb250ZXh0LCBjcmVhdGVkKTtcblxuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfTtcblxuICAgIHJldHVybiAoKSA9PiAoe1xuICAgICAgc29ydGVkRW50cmllc09mOiAoY29udGV4dDogTmF2aWdhYmxlQ29udGV4dCkgPT5cbiAgICAgICAgWy4uLmVudHJpZXNPZihjb250ZXh0KV0uc29ydCgoYSwgYikgPT4gYS5vcmRlck51bWJlciAtIGIub3JkZXJOdW1iZXIpLFxuXG4gICAgICBjb250ZXh0SW5Gb2N1czogKCkgPT4gY29udGV4dFN0YWNrLmF0KC0xKSxcblxuICAgICAgaXRlbUluRm9jdXNPZjogKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQpID0+IGl0ZW1JbkZvY3VzQnlDb250ZXh0LmdldChjb250ZXh0KSxcblxuICAgICAgbm90ZUl0ZW1JbkZvY3VzOiAoY29udGV4dDogTmF2aWdhYmxlQ29udGV4dCwgaXRlbTogdW5rbm93bikgPT4ge1xuICAgICAgICBpdGVtSW5Gb2N1c0J5Q29udGV4dC5zZXQoY29udGV4dCwgaXRlbSk7XG4gICAgICB9LFxuXG4gICAgICByZWdpc3RlcjogKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQsIGVudHJ5OiBOYXZpZ2FibGVFbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gZW50cmllc09mKGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChlbnRyaWVzLnNpemUgPT09IDApIHtcbiAgICAgICAgICBjb250ZXh0U3RhY2sucHVzaChjb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVudHJpZXMuYWRkKGVudHJ5KTtcbiAgICAgIH0sXG5cbiAgICAgIGRlcmVnaXN0ZXI6IChjb250ZXh0OiBOYXZpZ2FibGVDb250ZXh0LCBlbnRyeTogTmF2aWdhYmxlRW50cnkpID0+IHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IGVudHJpZXNPZihjb250ZXh0KTtcblxuICAgICAgICBlbnRyaWVzLmRlbGV0ZShlbnRyeSk7XG5cbiAgICAgICAgaWYgKGVudHJpZXMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IGluZGV4SW5TdGFjayA9IGNvbnRleHRTdGFjay5sYXN0SW5kZXhPZihjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChpbmRleEluU3RhY2sgIT09IC0xKSB7XG4gICAgICAgICAgICBjb250ZXh0U3RhY2suc3BsaWNlKGluZGV4SW5TdGFjaywgMSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQSBjb250ZXh0IHRoYXQgaXMgZ29uZSByZW1lbWJlcnMgbm90aGluZzogdGhlIG5leHQgdGltZSBpdHMgbWVtYmVycyBhcHBlYXIsIHRoZXlcbiAgICAgICAgICAvLyBhcHBlYXIgYW5ldywgYW5kIHRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRha2VzIGZvY3VzIGFzIGl0IGRpZCB0aGUgZmlyc3QgdGltZS5cbiAgICAgICAgICBpdGVtSW5Gb2N1c0J5Q29udGV4dC5kZWxldGUoY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi4vLi4vaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgSG92ZXJhYmxlQ29udGV4dCB9IGZyb20gXCIuLi8uLi9ob3ZlcmFibGVcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tIFwibW9ieFwiO1xuXG5leHBvcnQgY29uc3QgY29udGV4dElzQmVpbmdIb3ZlcmVkSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkXCIsXG4gIGNvbnN1bXB0aW9uczogW2l0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbl0sXG5cbiAgaW5zdGFudGlhdGU6IChkaSkgPT4ge1xuICAgIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSBkaS5pbmplY3QoaXRlbUJlaW5nSG92ZXJlZEluamVjdGlvblRva2VuKTtcblxuICAgIHJldHVybiAoY29udGV4dDogSG92ZXJhYmxlQ29udGV4dDxNdXRhYmxlUmVmT2JqZWN0PGFueT4+KSA9PiB7XG4gICAgICBjb25zdCBob3ZlcmVkSXRlbSA9IGl0ZW1CZWluZ0hvdmVyZWQoKShjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIGNvbXB1dGVkKCgpID0+ICEhaG92ZXJlZEl0ZW0uZ2V0KCkpO1xuICAgIH07XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRUZXN0VXRpbFJ1bm5hYmxlRm9yT3ZlcnJpZGVzIH0gZnJvbSBcIkBrOHNsZW5zL3Rlc3QtdXRpbHNcIjtcbmltcG9ydCBnbG9iYWxPdmVycmlkZXMgZnJvbSBcIi4vKiovKi5nbG9iYWwtb3ZlcnJpZGUtZm9yLWluamVjdGFibGUuKHRzfHRzeClcIjtcbmltcG9ydCBkZWZhdWx0T3ZlcnJpZGVzIGZyb20gXCIuLyoqLyouZGVmYXVsdC1vdmVycmlkZS4odHN8dHN4KVwiO1xuXG5leHBvcnQgY29uc3QgdGVzdFV0aWxSdW5uYWJsZUluamVjdGFibGUgPSBnZXRUZXN0VXRpbFJ1bm5hYmxlRm9yT3ZlcnJpZGVzKHtcbiAgZ2xvYmFsT3ZlcnJpZGVzLFxuICBkZWZhdWx0T3ZlcnJpZGVzLFxufSk7XG4iLCAiXG5cbmNvbnN0IG1vZHVsZXMgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbXVxuIiwgImltcG9ydCB0eXBlIHsgRGlDb250YWluZXIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgbWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlIH0gZnJvbSBcIi4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZVwiO1xuXG4vLyBSdW5zIHRoZSBjYWxsYmFjayBzdHJhaWdodCBhd2F5IGluIHRlc3RzLCBpbnN0ZWFkIG9mIGFmdGVyIHRoZSByZWFsIGRlbGF5LlxuZXhwb3J0IGRlZmF1bHQgKGRpOiBEaUNvbnRhaW5lcikgPT4ge1xuICBkaS5vdmVycmlkZTIobWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlLCAoKSA9PiAoKSA9PiAoY2FsbGJhY2s6ICgpID0+IHZvaWQpID0+IGNhbGxiYWNrKCkpO1xufTtcbiIsICJpbXBvcnQgdHlwZSB7IERpQ29udGFpbmVyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB7IHRvb2x0aXBEZWxheUluamVjdGFibGUgfSBmcm9tIFwiLi90b29sdGlwLWRlbGF5LmluamVjdGFibGVcIjtcblxuLy8gTm8gZGVsYXkgaW4gdGVzdHMsIHNvIGEgdG9vbHRpcCBhcHBlYXJzIHdpdGhvdXQgYW55b25lIGFkdmFuY2luZyB0aW1lcnMuXG4vLyBXcml0dGVuIGFzIGEgcGxhaW4gZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhyb3VnaCBnZXREZWZhdWx0TW9ja2luZ092ZXJyaWRlLFxuLy8gd2hpY2ggaXMgYW4gaWRlbnRpdHkgZnVuY3Rpb24gaW4gYSB0ZXN0IHBhY2thZ2UgdGhpcyBvbmUgbWF5IG5vdCBpbXBvcnQuXG5leHBvcnQgZGVmYXVsdCAoZGk6IERpQ29udGFpbmVyKSA9PiB7XG4gIGRpLm92ZXJyaWRlMih0b29sdGlwRGVsYXlJbmplY3RhYmxlLCAoKSA9PiAoKSA9PiB1bmRlZmluZWQpO1xufTtcbiIsICJpbXBvcnQgeyByZW1vdmVDc3NNb2R1bGVDbHV0dGVyRm9yVW5pdFRlc3RpbmcgfSBmcm9tIFwiLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZygpO1xufTtcbiIsICJpbXBvcnQgKiBhcyBtb2R1bGUwIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyXTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbJ3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uZGVmYXVsdC1vdmVycmlkZS50cycsJ3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cycsJ3JlbW92ZS1jc3MtbW9kdWxlLWNsdXR0ZXIuZGVmYXVsdC1vdmVycmlkZS50cyddXG4iLCAiaW1wb3J0ICogYXMgbW9kdWxlMCBmcm9tICcuL3BsdWdpbnMvY2xpY2thYmxlL2lzLW1hYy5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy9jbGlja2FibGUvb24tcmlnaHQtdHJpZ2dlci5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUzIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNCBmcm9tICcuL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNSBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWh0bWwtZWxlbWVudC1yZWYtc2V0LmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTYgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2ZvY3VzYWJsZS1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTcgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlOCBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTkgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9pdGVtLWJlaW5nLWZvY3VzZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTAgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9jb21wdXRlZC1ub3cuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTEgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTIgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9pdGVtLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTMgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUvX3ByaXZhdGUvY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTE0IGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxNSBmcm9tICcuL3Rlc3QtdXRpbC1ydW5uYWJsZS5pbmplY3RhYmxlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyLG1vZHVsZTMsbW9kdWxlNCxtb2R1bGU1LG1vZHVsZTYsbW9kdWxlNyxtb2R1bGU4LG1vZHVsZTksbW9kdWxlMTAsbW9kdWxlMTEsbW9kdWxlMTIsbW9kdWxlMTMsbW9kdWxlMTQsbW9kdWxlMTVdO1xuXG5leHBvcnQgZGVmYXVsdCBtb2R1bGVzO1xuZXhwb3J0IGNvbnN0IGZpbGVuYW1lcyA9IFsncGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2NsaWNrYWJsZS9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQva2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZS5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvY29tcHV0ZWQtbm93LmluamVjdGFibGUudHMnLCdwbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvaG92ZXJhYmxlL2l0ZW0tYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJywndGVzdC11dGlsLXJ1bm5hYmxlLmluamVjdGFibGUudHMnXVxuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmFuY2hvci1tb2R1bGVfX2FuY2hvcl9fX20tNXViIHtcXG4gIGFuY2hvci1uYW1lOiB2YXIoLS1hbmNob3ItbmFtZSk7XFxufVxcblxcbi5hbmNob3ItbW9kdWxlX19hbmNob3JlZEF0X19fVUFyVUsge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgcG9zaXRpb24tYW5jaG9yOiB2YXIoLS1hbmNob3ItdGFyZ2V0KTtcXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLWFuY2hvci1wb3NpdGlvbik7XFxuICAvKiBUaGUgYnJvd3NlciBjZW50ZXJzIGEgcG9wb3ZlciBpbiB0aGUgdmlld3BvcnQ7IHRoZSBwb3NpdGlvbiBhcmVhIHBsYWNlcyB0aGlzIG9uZSBpbnN0ZWFkLiAqL1xcbiAgaW5zZXQ6IGF1dG87XFxuICAvKiBNaXJyb3IgdG8gdGhlIG9wcG9zaXRlIHNpZGUsIHRoZW4gdGhlIG9wcG9zaXRlIHNwYW4sIGJlZm9yZSBnaXZpbmcgdXAuICovXFxuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiBmbGlwLWJsb2NrLCBmbGlwLWlubGluZSwgZmxpcC1ibG9jayBmbGlwLWlubGluZTtcXG4gIC8qIFRoZSBnYXAgYmVsb25ncyB0byB0aGUgZWxlbWVudCBhcyBmYXIgYXMgdGhlIHBvaW50ZXIgaXMgY29uY2VybmVkLCBzbyBtb3Zpbmcgb250byBpdCBhY3Jvc3NcXG4gICAgIHRoZSBnYXAgbmV2ZXIgY291bnRzIGFzIGxlYXZpbmcuIFJlYWNoZXMgb3V0IG9uIGV2ZXJ5IHNpZGUsIHNvIGl0IGhvbGRzIGhvd2V2ZXIgdGhlIGVsZW1lbnRcXG4gICAgIGVuZHMgdXAgZmxpcHBlZC4gKi9cXG59XFxuLmFuY2hvci1tb2R1bGVfX2FuY2hvcmVkQXRfX19VQXJVSzo6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaW5zZXQ6IGNhbGMoLTEgKiB2YXIoLS1hbmNob3ItZ2FwLCAwcHgpKTtcXG4gIHotaW5kZXg6IC0xO1xcbn1cXG5cXG4uYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBYyB7XFxuICAvKiBJbiB0aGUgdG9wIGxheWVyLCBsaWtlIHdoYXRldmVyIGlzIGFuY2hvcmVkIHRvIGl0LCBzbyB0aGUgcG9pbnQgaXMgdGhlIG9uZSBpbiB0aGUgdmlld3BvcnQgdGhlXFxuICAgICBjdXJzb3Igd2FzIGF0IHJhdGhlciB0aGFuIG9uZSBvZmZzZXQgYnkgZXZlcnkgdHJhbnNmb3JtaW5nIGFuY2VzdG9yIGluIGJldHdlZW4uICovXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBpbnNldDogYXV0bztcXG4gIGxlZnQ6IHZhcigtLWFuY2hvci1wb2ludC14KTtcXG4gIHRvcDogdmFyKC0tYW5jaG9yLXBvaW50LXkpO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBhbmNob3ItbmFtZTogdmFyKC0tYW5jaG9yLW5hbWUpO1xcbiAgLyogVW5kbyB3aGF0IHRoZSBicm93c2VyIGdpdmVzIGFuIGVsZW1lbnQgb2YgdGhlIHRvcCBsYXllcjogdGhpcyBvbmUgaGFzIG5vdGhpbmcgdG8gc2hvdy4gKi9cXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3JkZXI6IDA7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYW5jaG9yXCI6XCJhbmNob3ItbW9kdWxlX19hbmNob3JfX19tLTV1YlwiLFwiYW5jaG9yZWRBdFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yZWRBdF9fX1VBclVLXCIsXCJhbmNob3JQb2ludFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBY1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmJsb2NrLW1vZHVsZV9fYmxvY2tfX19ZNHR6aiB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLmJsb2NrLW1vZHVsZV9fYmxvY2stLWlubGluZV9fXy0xWUNnIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJibG9ja1wiOlwiYmxvY2stbW9kdWxlX19ibG9ja19fX1k0dHpqXCIsXCJibG9jay0taW5saW5lXCI6XCJibG9jay1tb2R1bGVfX2Jsb2NrLS1pbmxpbmVfX18tMVlDZ1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jb2xvci9jb2xvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYSB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNjpob3ZlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZTpmb2N1cyB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSTpkaXNhYmxlZCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdoaXRlX19fZjhjMXMge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2hpdGVfX19NNmFSZzpob3ZlciB7XFxuICBjb2xvcjogd2hpdGU7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13aGl0ZV9fX2k2dVl6OmZvY3VzIHtcXG4gIGNvbG9yOiB3aGl0ZTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdoaXRlX19fbnRqWUU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tdHJhbnNwYXJlbnRfX18xdmZydiB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS10cmFuc3BhcmVudF9fX3htN0JEOmhvdmVyIHtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fcGRlLVc6Zm9jdXMge1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRfX19aMFF1VTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenYge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTEwMF9fX0dGQ29tOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMDBfX19BTTdvTTpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUo6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTgwX19fRDcxZm4ge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4Yjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MF9fXzhQbHlvOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTgwX19fdzFucGM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk2MF9fX3hmWm1iOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTYwX19fa3dtMkc6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk0MF9fX2lST3pSIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTQwX19fcmJOMDQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk0MF9fX05pWnhpOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTMwX19fTHduTDIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaDpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkzMF9fX1FVYjRTOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTMwX19fS3E5Z1c6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1byB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyNV9fX3RZeWdEOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTI1X19fVHhpNWw6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xYzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkyMF9fX0VGMk9MIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTIwX19fdVB0WFU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXYzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkyMF9fX3ZwdXkxOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTEwX19fbDVhWnAge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjcjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMF9fX1Z3VzcxOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTEwX19fWTVxeXc6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITSB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk3MF9fXzNrcnRMOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTcwX19fcDNpZXg6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVjpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1X19fRG9mbzA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwQWxwaGE4NV9fX1Q0QmdGOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6czpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1wcmltYXJ5X19fMDhXblYge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tcHJpbWFyeV9fX1Z0LTNmOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1wcmltYXJ5X19fMFhzazk6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm8ge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tYWNjZW50X19fNGgzTFQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tYWNjZW50X19fQWpTN1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc19fX3dvVEYyIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NfX183RUlXYzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc19fX05lMldJOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tbm90aWNlX19fZU9kVXA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ub3RpY2VfX19OZ1VSTDpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdfX19HajJoTTpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13YXJuaW5nX19fY0JtdDk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnEge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNyaXRpY2FsX19fUlFXWlk6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsX19fOVlsQ1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fRGQwUnkge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50X19fTEtsemc6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHA6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXN1Y2Nlc3NUaW50X19fbHNtSmg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdUaW50X19fajNQWlgge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3U6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXdhcm5pbmdUaW50X19fQzZ6bkQ6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50X19fVzZqSTg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsVGludF9fX3lSSmFBIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRfX184dERtZzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsVGludF9fX1RBQkhrOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tbGlua19fX25TTW05IHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZMzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1saW5rX19fODZKdGY6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tbGlua19fX0ZvSjVYOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQSB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1jb2RlX19fVjV1dVY6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tY29kZV9fX0lBSzdkOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVdzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29sb3ItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYVwiLFwiY29sb3ItaG92ZXItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNlwiLFwiY29sb3ItZm9jdXMtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZVwiLFwiY29sb3ItZGlzYWJsZWQtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSVwiLFwiY29sb3ItLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13aGl0ZV9fX2Y4YzFzXCIsXCJjb2xvci1ob3Zlci0td2hpdGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdoaXRlX19fTTZhUmdcIixcImNvbG9yLWZvY3VzLS13aGl0ZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2hpdGVfX19pNnVZelwiLFwiY29sb3ItZGlzYWJsZWQtLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13aGl0ZV9fX250allFXCIsXCJjb2xvci0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXRyYW5zcGFyZW50X19fMXZmcnZcIixcImNvbG9yLWhvdmVyLS10cmFuc3BhcmVudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRfX194bTdCRFwiLFwiY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS10cmFuc3BhcmVudF9fX3BkZS1XXCIsXCJjb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXRyYW5zcGFyZW50X19fWjBRdVVcIixcImNvbG9yLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenZcIixcImNvbG9yLWhvdmVyLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTAwX19fR0ZDb21cIixcImNvbG9yLWZvY3VzLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MTAwX19fQU03b01cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUpcIixcImNvbG9yLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MF9fX0Q3MWZuXCIsXCJjb2xvci1ob3Zlci0tZ3JleTgwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4YlwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwX19fOFBseW9cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MF9fX3cxbnBjXCIsXCJjb2xvci0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WFwiLFwiY29sb3ItaG92ZXItLWdyZXk2MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTYwX19feGZabWJcIixcImNvbG9yLWZvY3VzLS1ncmV5NjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk2MF9fX2t3bTJHXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncVwiLFwiY29sb3ItLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTQwX19faVJPelJcIixcImNvbG9yLWhvdmVyLS1ncmV5NDBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk0MF9fX3JiTjA0XCIsXCJjb2xvci1mb2N1cy0tZ3JleTQwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTQwX19fTmlaeGlcIixcImNvbG9yLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkzMF9fX0x3bkwyXCIsXCJjb2xvci1ob3Zlci0tZ3JleTMwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaFwiLFwiY29sb3ItZm9jdXMtLWdyZXkzMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTMwX19fUVViNFNcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkzMF9fX0txOWdXXCIsXCJjb2xvci0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1b1wiLFwiY29sb3ItaG92ZXItLWdyZXkyNVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTI1X19fdFl5Z0RcIixcImNvbG9yLWZvY3VzLS1ncmV5MjVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkyNV9fX1R4aTVsXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xY1wiLFwiY29sb3ItLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTIwX19fRUYyT0xcIixcImNvbG9yLWhvdmVyLS1ncmV5MjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyMF9fX3VQdFhVXCIsXCJjb2xvci1mb2N1cy0tZ3JleTIwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXY1wiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTIwX19fdnB1eTFcIixcImNvbG9yLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkxMF9fX2w1YVpwXCIsXCJjb2xvci1ob3Zlci0tZ3JleTEwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjclwiLFwiY29sb3ItZm9jdXMtLWdyZXkxMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTEwX19fVndXNzFcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkxMF9fX1k1cXl3XCIsXCJjb2xvci0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITVwiLFwiY29sb3ItaG92ZXItLWdyZXk3MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTcwX19fM2tydExcIixcImNvbG9yLWZvY3VzLS1ncmV5NzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk3MF9fX3AzaWV4XCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVlwiLFwiY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZFwiLFwiY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVfX19Eb2ZvMFwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVfX19UNEJnRlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6c1wiLFwiY29sb3ItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXByaW1hcnlfX18wOFduVlwiLFwiY29sb3ItaG92ZXItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXByaW1hcnlfX19WdC0zZlwiLFwiY29sb3ItZm9jdXMtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMlwiLFwiY29sb3ItZGlzYWJsZWQtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXByaW1hcnlfX18wWHNrOVwiLFwiY29sb3ItLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm9cIixcImNvbG9yLWhvdmVyLS1hY2NlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWFjY2VudF9fXzRoM0xUXCIsXCJjb2xvci1mb2N1cy0tYWNjZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1hY2NlbnRfX19BalM3WVwiLFwiY29sb3ItZGlzYWJsZWQtLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzVcIixcImNvbG9yLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzX19fd29URjJcIixcImNvbG9yLWhvdmVyLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzX19fN0VJV2NcIixcImNvbG9yLWZvY3VzLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGlcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1zdWNjZXNzX19fTmUyV0lcIixcImNvbG9yLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHXCIsXCJjb2xvci1ob3Zlci0tbm90aWNlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ub3RpY2VfX19lT2RVcFwiLFwiY29sb3ItZm9jdXMtLW5vdGljZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tbm90aWNlX19fTmdVUkxcIixcImNvbG9yLWRpc2FibGVkLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyXCIsXCJjb2xvci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2FybmluZ19fX0dqMmhNXCIsXCJjb2xvci1mb2N1cy0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ19fX2NCbXQ5XCIsXCJjb2xvci1kaXNhYmxlZC0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSXCIsXCJjb2xvci0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnFcIixcImNvbG9yLWhvdmVyLS1jcml0aWNhbFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxfX19SUVdaWVwiLFwiY29sb3ItZm9jdXMtLWNyaXRpY2FsXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbF9fXzlZbENZXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTNcIixcImNvbG9yLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc1RpbnRfX19EZDBSeVwiLFwiY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fX0xLbHpnXCIsXCJjb2xvci1mb2N1cy0tc3VjY2Vzc1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHBcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc1RpbnRfX19sc21KaFwiLFwiY29sb3ItLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13YXJuaW5nVGludF9fX2ozUFpYXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3VcIixcImNvbG9yLWZvY3VzLS13YXJuaW5nVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ1RpbnRfX19DNnpuRFwiLFwiY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13YXJuaW5nVGludF9fX1c2akk4XCIsXCJjb2xvci0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbFRpbnRfX195UkphQVwiLFwiY29sb3ItaG92ZXItLWNyaXRpY2FsVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjVcIixcImNvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsVGludF9fXzh0RG1nXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1jcml0aWNhbFRpbnRfX19UQUJIa1wiLFwiY29sb3ItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWxpbmtfX19uU01tOVwiLFwiY29sb3ItaG92ZXItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZM1wiLFwiY29sb3ItZm9jdXMtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWxpbmtfX184Nkp0ZlwiLFwiY29sb3ItZGlzYWJsZWQtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWxpbmtfX19Gb0o1WFwiLFwiY29sb3ItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQVwiLFwiY29sb3ItaG92ZXItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNvZGVfX19WNXV1VlwiLFwiY29sb3ItZm9jdXMtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNvZGVfX19JQUs3ZFwiLFwiY29sb3ItZGlzYWJsZWQtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVd1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jdXJzb3IvY3Vyc29yLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMiB7XFxuICBjdXJzb3I6IGFsaWFzO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84IHtcXG4gIGN1cnNvcjogYWxsLXNjcm9sbDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2NlbGxfX181V08yRiB7XFxuICBjdXJzb3I6IGNlbGw7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb2x1bW4tcmVzaXplX19fcExxM3Mge1xcbiAgY3Vyc29yOiBjb2wtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY29udGV4dC1tZW51X19fSXFwNTYge1xcbiAgY3Vyc29yOiBjb250ZXh0LW1lbnU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb3B5X19fWFU3eUwge1xcbiAgY3Vyc29yOiBjb3B5O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY3Jvc3NoYWlyX19fMThheWsge1xcbiAgY3Vyc29yOiBjcm9zc2hhaXI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFQge1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1yZXNpemVfX19TNEhGNSB7XFxuICBjdXJzb3I6IGUtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLSB7XFxuICBjdXJzb3I6IGV3LXJlc2l6ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2dyYWJfX19VdkFGNyB7XFxuICBjdXJzb3I6IGdyYWI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ncmFiYmluZ19fX01NaXZYIHtcXG4gIGN1cnNvcjogZ3JhYmJpbmc7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19oZWxwX19faUI4RzQge1xcbiAgY3Vyc29yOiBoZWxwO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbW92ZV9fX3lwZC1QIHtcXG4gIGN1cnNvcjogbW92ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vcnRoLXJlc2l6ZV9fXzdOa2hWIHtcXG4gIGN1cnNvcjogbi1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtcmVzaXplX19fTTRNSXoge1xcbiAgY3Vyc29yOiBuZS1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcSB7XFxuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5IHtcXG4gIGN1cnNvcjogbm8tZHJvcDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vbmVfX19FaTlzeiB7XFxuICBjdXJzb3I6IG5vbmU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1IHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU4ge1xcbiAgY3Vyc29yOiBucy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtcmVzaXplX19fY2tDb2gge1xcbiAgY3Vyc29yOiBudy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWUyB7XFxuICBjdXJzb3I6IG53c2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Byb2dyZXNzX19fSWdFeHkge1xcbiAgY3Vyc29yOiBwcm9ncmVzcztcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Jvdy1yZXNpemVfX18wU3NlNiB7XFxuICBjdXJzb3I6IHJvdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19zb3V0aC1yZXNpemVfX180RmVuUyB7XFxuICBjdXJzb3I6IHMtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGhlYXN0LXJlc2l6ZV9fX3c4aEdxIHtcXG4gIGN1cnNvcjogc2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGh3ZXN0LXJlc2l6ZV9fXzZVdjRHIHtcXG4gIGN1cnNvcjogc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3IHtcXG4gIGN1cnNvcjogdGV4dDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3ZlcnRpY2FsLXRleHRfX18zT2F6RSB7XFxuICBjdXJzb3I6IHZlcnRpY2FsLXRleHQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2IHtcXG4gIGN1cnNvcjogdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEcge1xcbiAgY3Vyc29yOiB3YWl0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fem9vbS1pbl9fX3pFREhRIHtcXG4gIGN1cnNvcjogem9vbS1pbjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzYge1xcbiAgY3Vyc29yOiB6b29tLW91dDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJhbGlhc1wiOlwiY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMlwiLFwiYWxsLXNjcm9sbFwiOlwiY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84XCIsXCJjZWxsXCI6XCJjdXJzb3ItbW9kdWxlX19jZWxsX19fNVdPMkZcIixcImNvbHVtbi1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX2NvbHVtbi1yZXNpemVfX19wTHEzc1wiLFwiY29udGV4dC1tZW51XCI6XCJjdXJzb3ItbW9kdWxlX19jb250ZXh0LW1lbnVfX19JcXA1NlwiLFwiY29weVwiOlwiY3Vyc29yLW1vZHVsZV9fY29weV9fX1hVN3lMXCIsXCJjcm9zc2hhaXJcIjpcImN1cnNvci1tb2R1bGVfX2Nyb3NzaGFpcl9fXzE4YXlrXCIsXCJkZWZhdWx0XCI6XCJjdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFRcIixcImVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19lYXN0LXJlc2l6ZV9fX1M0SEY1XCIsXCJlYXN0LWFuZC13ZXN0LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLVwiLFwiZ3JhYlwiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYl9fX1V2QUY3XCIsXCJncmFiYmluZ1wiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYmJpbmdfX19NTWl2WFwiLFwiaGVscFwiOlwiY3Vyc29yLW1vZHVsZV9faGVscF9fX2lCOEc0XCIsXCJtb3ZlXCI6XCJjdXJzb3ItbW9kdWxlX19tb3ZlX19feXBkLVBcIixcIm5vcnRoLXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fbm9ydGgtcmVzaXplX19fN05raFZcIixcIm5vcnRoZWFzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRoZWFzdC1yZXNpemVfX19NNE1JelwiLFwibm9ydGhlYXN0LWFuZC1zb3V0aHdlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcVwiLFwibm8tZHJvcFwiOlwiY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5XCIsXCJub25lXCI6XCJjdXJzb3ItbW9kdWxlX19ub25lX19fRWk5c3pcIixcIm5vdC1hbGxvd2VkXCI6XCJjdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1XCIsXCJub3J0aC1hbmQtc291dGgtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU5cIixcIm5vcnRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRod2VzdC1yZXNpemVfX19ja0NvaFwiLFwibm9ydGh3ZXN0LWFuZC1zb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWU1wiLFwicG9pbnRlclwiOlwiY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLXCIsXCJwcm9ncmVzc1wiOlwiY3Vyc29yLW1vZHVsZV9fcHJvZ3Jlc3NfX19JZ0V4eVwiLFwicm93LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fcm93LXJlc2l6ZV9fXzBTc2U2XCIsXCJzb3V0aC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRoLXJlc2l6ZV9fXzRGZW5TXCIsXCJzb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19zb3V0aGVhc3QtcmVzaXplX19fdzhoR3FcIixcInNvdXRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRod2VzdC1yZXNpemVfX182VXY0R1wiLFwidGV4dFwiOlwiY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3XCIsXCJ2ZXJ0aWNhbC10ZXh0XCI6XCJjdXJzb3ItbW9kdWxlX192ZXJ0aWNhbC10ZXh0X19fM09hekVcIixcIndlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2XCIsXCJ3YWl0XCI6XCJjdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEdcIixcInpvb20taW5cIjpcImN1cnNvci1tb2R1bGVfX3pvb20taW5fX196RURIUVwiLFwiem9vbS1vdXRcIjpcImN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZGlzcGxheS1jb250ZW50cy1tb2R1bGVfX2NvbnRlbnRzX19fbVJlWEsge1xcbiAgZGlzcGxheTogY29udGVudHM7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29udGVudHNcIjpcImRpc3BsYXktY29udGVudHMtbW9kdWxlX19jb250ZW50c19fX21SZVhLXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmRyYWdnYWJsZS1tb2R1bGVfX2RyYWdnYWJsZV9fX2JqQ0EzIGltZyxcXG4uZHJhZ2dhYmxlLW1vZHVsZV9fZHJhZ2dhYmxlX19fYmpDQTMgYSB7XFxuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJkcmFnZ2FibGVcIjpcImRyYWdnYWJsZS1tb2R1bGVfX2RyYWdnYWJsZV9fX2JqQ0EzXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZhZGVkL2ZhZGVkLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZmFkZWQtbW9kdWxlX19mYWRlZF9fXy11YmJNIHtcXG4gIG9wYWNpdHk6IDUwJTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmYWRlZFwiOlwiZmFkZWQtbW9kdWxlX19mYWRlZF9fXy11YmJNXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkX19fN0JkaGQge1xcbiAgZmxleDogMSAxIDA7XFxufVxcblxcbi5mbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tc2hyaW5rYWJsZV9fXzZINS0tIHtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBtaW4td2lkdGg6IDA7XFxufVxcblxcbi5mbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tZml4ZWRfX19GS2V0TCB7XFxuICBmbGV4LXNocmluazogMDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmbGV4LWNoaWxkXCI6XCJmbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZF9fXzdCZGhkXCIsXCJmbGV4LWNoaWxkLS1zaHJpbmthYmxlXCI6XCJmbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tc2hyaW5rYWJsZV9fXzZINS0tXCIsXCJmbGV4LWNoaWxkLS1maXhlZFwiOlwiZmxleC1jaGlsZC1tb2R1bGVfX2ZsZXgtY2hpbGQtLWZpeGVkX19fRktldExcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC9mbGV4Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZmxleC1tb2R1bGVfX2ZsZXhfX19lRkxFYyB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX3dyYXAtLXdyYXBfX18yTHFUZyB7XFxuICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbF9fXzBBaU9mIHtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbC1yZXZlcnNlZF9fX0lvZS01IHtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLWhvcml6b250YWxfX19hMzJ6byB7XFxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbC1yZXZlcnNlZF9fX2lMd0RLIHtcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VCZXR3ZWVuX19fYTZvTUgge1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUFyb3VuZF9fXzVZT1U0IHtcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJfX191clpZRyB7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3RyZXRjaF9fX001YXowIHtcXG4gIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleFN0YXJ0X19fUEhGMUUge1xcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4RW5kX19fYU1QeDAge1xcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoX19fYkFOaWcge1xcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fYWxpZ25JdGVtcy0tY2VudGVyX19fMFZzeTkge1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4U3RhcnRfX19qMEp6eCB7XFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4RW5kX19fRG1VNVIge1xcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0temVyb19fX3czLVRnIHtcXG4gIGdhcDogMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS16ZXJvX19fOTYwQTcge1xcbiAgY29sdW1uLWdhcDogMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS16ZXJvX19fb0t1c1Qge1xcbiAgcm93LWdhcDogMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhzX19fcnJUSmUge1xcbiAgZ2FwOiAxcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTR4c19fX1RSM1lFIHtcXG4gIGNvbHVtbi1nYXA6IDFweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNHhzX19fNmluM2oge1xcbiAgcm93LWdhcDogMXB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hzX19fUmN1bVIge1xcbiAgZ2FwOiAycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTN4c19fX1gtQzFhIHtcXG4gIGNvbHVtbi1nYXA6IDJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tM3hzX19fa1cwaU8ge1xcbiAgcm93LWdhcDogMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHhzX19fVUIzRmoge1xcbiAgZ2FwOiA0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXh4c19fX3VJWnYyIHtcXG4gIGNvbHVtbi1nYXA6IDRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teHhzX19fdC1ncU4ge1xcbiAgcm93LWdhcDogNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHNfX190dDNTbyB7XFxuICBnYXA6IDhweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teHNfX19CNW9YYyB7XFxuICBjb2x1bW4tZ2FwOiA4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXhzX19fMUVYMmYge1xcbiAgcm93LWdhcDogOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tc19fXzltWXpTIHtcXG4gIGdhcDogMTJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tc19fX2F2dGYtIHtcXG4gIGNvbHVtbi1nYXA6IDEycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXNfX19ZT0JWViB7XFxuICByb3ctZ2FwOiAxMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tbV9fX0FiLXQwIHtcXG4gIGdhcDogMTZweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tbV9fX1E2Y0ItIHtcXG4gIGNvbHVtbi1nYXA6IDE2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLW1fX183LURRMCB7XFxuICByb3ctZ2FwOiAxNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tbF9fX2N2bWp3IHtcXG4gIGdhcDogMjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tbF9fX0VwUXRUIHtcXG4gIGNvbHVtbi1nYXA6IDIwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLWxfX194WWlLaCB7XFxuICByb3ctZ2FwOiAyMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teGxfX19DSXNOUCB7XFxuICBnYXA6IDI0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXhsX19fbUxVeFIge1xcbiAgY29sdW1uLWdhcDogMjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teGxfX19LV04zMyB7XFxuICByb3ctZ2FwOiAyNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHhsX19fMTJ0LTYge1xcbiAgZ2FwOiAyOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14eGxfX192QUx0ZiB7XFxuICBjb2x1bW4tZ2FwOiAyOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eGxfX19JZGNxVSB7XFxuICByb3ctZ2FwOiAyOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hsX19faVVyeDEge1xcbiAgZ2FwOiAzMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0zeGxfX18tTlYwWiB7XFxuICBjb2x1bW4tZ2FwOiAzMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0zeGxfX19WWWNSaCB7XFxuICByb3ctZ2FwOiAzMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhsX19fZlppS1Yge1xcbiAgZ2FwOiAzNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS00eGxfX19YOUtweSB7XFxuICBjb2x1bW4tZ2FwOiAzNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS00eGxfX19kYnZXMCB7XFxuICByb3ctZ2FwOiAzNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNXhsX19fNDNoSHYge1xcbiAgZ2FwOiA0MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS01eGxfX18yWHllUSB7XFxuICBjb2x1bW4tZ2FwOiA0MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS01eGxfX19xdmpPRSB7XFxuICByb3ctZ2FwOiA0MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNnhsX19fc1B5Nkwge1xcbiAgZ2FwOiA0NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS02eGxfX196YWdXTSB7XFxuICBjb2x1bW4tZ2FwOiA0NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS02eGxfX19VLXVaSiB7XFxuICByb3ctZ2FwOiA0NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tN3hsX19fT2F3di0ge1xcbiAgZ2FwOiA0OHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS03eGxfX19LenJNciB7XFxuICBjb2x1bW4tZ2FwOiA0OHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS03eGxfX19wQXZMdiB7XFxuICByb3ctZ2FwOiA0OHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tOHhsX19fRWVvRS0ge1xcbiAgZ2FwOiA1MnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS04eGxfX19rYmlvSiB7XFxuICBjb2x1bW4tZ2FwOiA1MnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS04eGxfX19QLTktZSB7XFxuICByb3ctZ2FwOiA1MnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tOXhsX19fVGduVVMge1xcbiAgZ2FwOiA1NnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS05eGxfX19OR2wzSiB7XFxuICBjb2x1bW4tZ2FwOiA1NnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS05eGxfX19FR3VlaCB7XFxuICByb3ctZ2FwOiA1NnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTB4bF9fX0NmMXc2IHtcXG4gIGdhcDogNjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tMTB4bF9fX0xKUkdsIHtcXG4gIGNvbHVtbi1nYXA6IDYwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTEweGxfX196UHR5TiB7XFxuICByb3ctZ2FwOiA2MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTF4bF9fX29yZmdJIHtcXG4gIGdhcDogNjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tMTF4bF9fX2RES2RwIHtcXG4gIGNvbHVtbi1nYXA6IDY0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTExeGxfX192REctQSB7XFxuICByb3ctZ2FwOiA2NHB4O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImZsZXhcIjpcImZsZXgtbW9kdWxlX19mbGV4X19fZUZMRWNcIixcImZsZXhfX3dyYXAtLXdyYXBcIjpcImZsZXgtbW9kdWxlX19mbGV4X193cmFwLS13cmFwX19fMkxxVGdcIixcImZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsX19fMEFpT2ZcIixcImZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWwtcmV2ZXJzZWRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsLXJldmVyc2VkX19fSW9lLTVcIixcImZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbF9fX2EzMnpvXCIsXCJmbGV4X19kaXJlY3Rpb24tLWhvcml6b250YWwtcmV2ZXJzZWRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLWhvcml6b250YWwtcmV2ZXJzZWRfX19pTHdES1wiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQmV0d2VlblwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUJldHdlZW5fX19hNm9NSFwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQXJvdW5kXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQXJvdW5kX19fNVlPVTRcIixcImZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tY2VudGVyX19fdXJaWUdcIixcImZsZXhfX2p1c3RpZnlDb250ZW50LS1zdHJldGNoXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXN0cmV0Y2hfX19NNWF6MFwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhTdGFydFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4U3RhcnRfX19QSEYxRVwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhFbmRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleEVuZF9fX2FNUHgwXCIsXCJmbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fYWxpZ25JdGVtcy0tc3RyZXRjaF9fX2JBTmlnXCIsXCJmbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJfX18wVnN5OVwiLFwiZmxleF9fYWxpZ25JdGVtcy0tZmxleFN0YXJ0XCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fYWxpZ25JdGVtcy0tZmxleFN0YXJ0X19fajBKenhcIixcImZsZXhfX2FsaWduSXRlbXMtLWZsZXhFbmRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4RW5kX19fRG1VNVJcIixcImZsZXhfX2dhcC0temVyb1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0temVyb19fX3czLVRnXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0temVyb1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS16ZXJvX19fOTYwQTdcIixcImZsZXhfX2dhcC0tcm93LS16ZXJvXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXplcm9fX19vS3VzVFwiLFwiZmxleF9fZ2FwLS00eHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTR4c19fX3JyVEplXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tNHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTR4c19fX1RSM1lFXCIsXCJmbGV4X19nYXAtLXJvdy0tNHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTR4c19fXzZpbjNqXCIsXCJmbGV4X19nYXAtLTN4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hzX19fUmN1bVJcIixcImZsZXhfX2dhcC0tY29sdW1uLS0zeHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tM3hzX19fWC1DMWFcIixcImZsZXhfX2dhcC0tcm93LS0zeHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tM3hzX19fa1cwaU9cIixcImZsZXhfX2dhcC0teHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eHNfX19VQjNGalwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXh4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14eHNfX191SVp2MlwiLFwiZmxleF9fZ2FwLS1yb3ctLXh4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eHNfX190LWdxTlwiLFwiZmxleF9fZ2FwLS14c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHNfX190dDNTb1wiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXhzX19fQjVvWGNcIixcImZsZXhfX2dhcC0tcm93LS14c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14c19fXzFFWDJmXCIsXCJmbGV4X19nYXAtLXNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXNfX185bVl6U1wiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tc19fX2F2dGYtXCIsXCJmbGV4X19nYXAtLXJvdy0tc1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS1zX19fWU9CVlZcIixcImZsZXhfX2dhcC0tbVwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tbV9fX0FiLXQwXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tbVwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1tX19fUTZjQi1cIixcImZsZXhfX2dhcC0tcm93LS1tXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLW1fX183LURRMFwiLFwiZmxleF9fZ2FwLS1sXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1sX19fY3ZtandcIixcImZsZXhfX2dhcC0tY29sdW1uLS1sXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLWxfX19FcFF0VFwiLFwiZmxleF9fZ2FwLS1yb3ctLWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tbF9fX3hZaUtoXCIsXCJmbGV4X19nYXAtLXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14bF9fX0NJc05QXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0teGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teGxfX19tTFV4UlwiLFwiZmxleF9fZ2FwLS1yb3ctLXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXhsX19fS1dOMzNcIixcImZsZXhfX2dhcC0teHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eGxfX18xMnQtNlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14eGxfX192QUx0ZlwiLFwiZmxleF9fZ2FwLS1yb3ctLXh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eGxfX19JZGNxVVwiLFwiZmxleF9fZ2FwLS0zeGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTN4bF9fX2lVcngxXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tM3hsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTN4bF9fXy1OVjBaXCIsXCJmbGV4X19nYXAtLXJvdy0tM3hsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTN4bF9fX1ZZY1JoXCIsXCJmbGV4X19nYXAtLTR4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhsX19fZlppS1ZcIixcImZsZXhfX2dhcC0tY29sdW1uLS00eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tNHhsX19fWDlLcHlcIixcImZsZXhfX2dhcC0tcm93LS00eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNHhsX19fZGJ2VzBcIixcImZsZXhfX2dhcC0tNXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS01eGxfX180M2hIdlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTV4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS01eGxfX18yWHllUVwiLFwiZmxleF9fZ2FwLS1yb3ctLTV4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS01eGxfX19xdmpPRVwiLFwiZmxleF9fZ2FwLS02eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTZ4bF9fX3NQeTZMXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tNnhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX3phZ1dNXCIsXCJmbGV4X19nYXAtLXJvdy0tNnhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTZ4bF9fX1UtdVpKXCIsXCJmbGV4X19nYXAtLTd4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tN3hsX19fT2F3di1cIixcImZsZXhfX2dhcC0tY29sdW1uLS03eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tN3hsX19fS3pyTXJcIixcImZsZXhfX2dhcC0tcm93LS03eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tN3hsX19fcEF2THZcIixcImZsZXhfX2dhcC0tOHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS04eGxfX19FZW9FLVwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS04eGxfX19rYmlvSlwiLFwiZmxleF9fZ2FwLS1yb3ctLTh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS04eGxfX19QLTktZVwiLFwiZmxleF9fZ2FwLS05eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTl4bF9fX1RnblVTXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tOXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTl4bF9fX05HbDNKXCIsXCJmbGV4X19nYXAtLXJvdy0tOXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTl4bF9fX0VHdWVoXCIsXCJmbGV4X19nYXAtLTEweGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTEweGxfX19DZjF3NlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTEweGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tMTB4bF9fX0xKUkdsXCIsXCJmbGV4X19nYXAtLXJvdy0tMTB4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0xMHhsX19felB0eU5cIixcImZsZXhfX2dhcC0tMTF4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTF4bF9fX29yZmdJXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tMTF4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0xMXhsX19fZERLZHBcIixcImZsZXhfX2dhcC0tcm93LS0xMXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTExeGxfX192REctQVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmFkaWVudC9ncmFkaWVudC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmdyYWRpZW50LW1vZHVsZV9fZ3JhZGllbnRfX19NREJ2RiB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1zdXJmYWNlR3JhZGllbnQpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImdyYWRpZW50XCI6XCJncmFkaWVudC1tb2R1bGVfX2dyYWRpZW50X19fTURCdkZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmdyYXlzY2FsZS1tb2R1bGVfX2dyYXlzY2FsZV9fXzNtWlA2IHtcXG4gIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImdyYXlzY2FsZVwiOlwiZ3JheXNjYWxlLW1vZHVsZV9fZ3JheXNjYWxlX19fM21aUDZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZ3JpZC9ncmlkLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZ3JpZC1tb2R1bGVfX2dyaWRfX19NUFRoTyB7XFxuICBkaXNwbGF5OiBncmlkO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTFfX19ZMFUyTSB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMl9fX1lnUzRIIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS0zX19fbWFCRDIge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTRfX183M0JqQSB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNV9fX1NsdC1EIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS02X19fbnlNOHoge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLXN0cmV0Y2hfX194WGQzWiB7XFxuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19hbGlnbkl0ZW1zLS1jZW50ZXJfX19FOG1MLSB7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLXN0YXJ0X19fMk5kdlMge1xcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLWVuZF9fXzFJcFltIHtcXG4gIGFsaWduLWl0ZW1zOiBlbmQ7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS16ZXJvX19fRzFxOGQge1xcbiAgZ2FwOiAwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXplcm9fX195Z1FwSiB7XFxuICBjb2x1bW4tZ2FwOiAwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXplcm9fX193MS1PeCB7XFxuICByb3ctZ2FwOiAwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS00eHNfX196TzBtdiB7XFxuICBnYXA6IDFweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhzX19fR1VvZDMge1xcbiAgY29sdW1uLWdhcDogMXB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS00eHNfX19zVlFaZSB7XFxuICByb3ctZ2FwOiAxcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0zeHNfX18tSXhTdyB7XFxuICBnYXA6IDJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hzX19fdXc0NjYge1xcbiAgY29sdW1uLWdhcDogMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0zeHNfX19KZndtWSB7XFxuICByb3ctZ2FwOiAycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eHNfX19naDhjLSB7XFxuICBnYXA6IDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teHhzX19fRTc2Z0sge1xcbiAgY29sdW1uLWdhcDogNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14eHNfX19uaHh6LSB7XFxuICByb3ctZ2FwOiA0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14c19fX0dINGgyIHtcXG4gIGdhcDogOHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14c19fX3VScXJpIHtcXG4gIGNvbHVtbi1nYXA6IDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0teHNfX19sQU5FdSB7XFxuICByb3ctZ2FwOiA4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1zX19fN1IwcHMge1xcbiAgZ2FwOiAxMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1zX19fYURWQUcge1xcbiAgY29sdW1uLWdhcDogMTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tc19fX0FSRG14IHtcXG4gIHJvdy1nYXA6IDEycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1tX19fbTNYaWgge1xcbiAgZ2FwOiAxNnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1tX19fQ3N5ZU0ge1xcbiAgY29sdW1uLWdhcDogMTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tbV9fX3NPQVhuIHtcXG4gIHJvdy1nYXA6IDE2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1sX19fMFN5S2wge1xcbiAgZ2FwOiAyMHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1sX19fSnZKaE0ge1xcbiAgY29sdW1uLWdhcDogMjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tbF9fX2FwSDhiIHtcXG4gIHJvdy1nYXA6IDIwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14bF9fX0ktdlJ0IHtcXG4gIGdhcDogMjRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teGxfX190MFNPMyB7XFxuICBjb2x1bW4tZ2FwOiAyNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14bF9fX2V2TkVkIHtcXG4gIHJvdy1nYXA6IDI0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eGxfX19lV1MwMiB7XFxuICBnYXA6IDI4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4bF9fX3MtLS1iIHtcXG4gIGNvbHVtbi1nYXA6IDI4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXh4bF9fX0o0RjdvIHtcXG4gIHJvdy1nYXA6IDI4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0zeGxfX19IVmxrRCB7XFxuICBnYXA6IDMycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTN4bF9fX3pLdExMIHtcXG4gIGNvbHVtbi1nYXA6IDMycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTN4bF9fX0U5U1Y5IHtcXG4gIHJvdy1nYXA6IDMycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS00eGxfX19NM0czZiB7XFxuICBnYXA6IDM2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTR4bF9fX25udC1wIHtcXG4gIGNvbHVtbi1nYXA6IDM2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTR4bF9fXzFXOGJkIHtcXG4gIHJvdy1nYXA6IDM2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS01eGxfX195QW5YRCB7XFxuICBnYXA6IDQwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTV4bF9fXzJ3NFIxIHtcXG4gIGNvbHVtbi1nYXA6IDQwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTV4bF9fX1ZDZmpnIHtcXG4gIHJvdy1nYXA6IDQwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS02eGxfX19oRWwwRiB7XFxuICBnYXA6IDQ0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX0Z4UHRwIHtcXG4gIGNvbHVtbi1nYXA6IDQ0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTZ4bF9fX3luMWYtIHtcXG4gIHJvdy1nYXA6IDQ0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS03eGxfX19nYkdIdSB7XFxuICBnYXA6IDQ4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTd4bF9fX1Z5ajFwIHtcXG4gIGNvbHVtbi1nYXA6IDQ4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTd4bF9fXzVCQnNTIHtcXG4gIHJvdy1nYXA6IDQ4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS04eGxfX19qQ2xtQyB7XFxuICBnYXA6IDUycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTh4bF9fX2JxN0V6IHtcXG4gIGNvbHVtbi1nYXA6IDUycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTh4bF9fX3dOdVoyIHtcXG4gIHJvdy1nYXA6IDUycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS05eGxfX19pbkUxRSB7XFxuICBnYXA6IDU2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTl4bF9fX01zZmpxIHtcXG4gIGNvbHVtbi1nYXA6IDU2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTl4bF9fX2kyMy1jIHtcXG4gIHJvdy1nYXA6IDU2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0xMHhsX19fTENEdGMge1xcbiAgZ2FwOiA2MHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0xMHhsX19fbzhjQnkge1xcbiAgY29sdW1uLWdhcDogNjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tMTB4bF9fX1JqUnc5IHtcXG4gIHJvdy1nYXA6IDYwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0xMXhsX19fU3F1TmEge1xcbiAgZ2FwOiA2NHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0xMXhsX19fdVNlV3oge1xcbiAgY29sdW1uLWdhcDogNjRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tMTF4bF9fX2pxRy1JIHtcXG4gIHJvdy1nYXA6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiZ3JpZFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX19NUFRoT1wiLFwiZ3JpZF9fY29sdW1ucy0tMVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTFfX19ZMFUyTVwiLFwiZ3JpZF9fY29sdW1ucy0tMlwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTJfX19ZZ1M0SFwiLFwiZ3JpZF9fY29sdW1ucy0tM1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTNfX19tYUJEMlwiLFwiZ3JpZF9fY29sdW1ucy0tNFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTRfX183M0JqQVwiLFwiZ3JpZF9fY29sdW1ucy0tNVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTVfX19TbHQtRFwiLFwiZ3JpZF9fY29sdW1ucy0tNlwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTZfX19ueU04elwiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tc3RyZXRjaFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLXN0cmV0Y2hfX194WGQzWlwiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tY2VudGVyXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tY2VudGVyX19fRThtTC1cIixcImdyaWRfX2FsaWduSXRlbXMtLXN0YXJ0XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RhcnRfX18yTmR2U1wiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tZW5kXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tZW5kX19fMUlwWW1cIixcImdyaWRfX2dhcC0temVyb1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0temVyb19fX0cxcThkXCIsXCJncmlkX19nYXAtLWNvbHVtbi0temVyb1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS16ZXJvX19feWdRcEpcIixcImdyaWRfX2dhcC0tcm93LS16ZXJvXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXplcm9fX193MS1PeFwiLFwiZ3JpZF9fZ2FwLS00eHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTR4c19fX3pPMG12XCIsXCJncmlkX19nYXAtLWNvbHVtbi0tNHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTR4c19fX0dVb2QzXCIsXCJncmlkX19nYXAtLXJvdy0tNHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTR4c19fX3NWUVplXCIsXCJncmlkX19nYXAtLTN4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tM3hzX19fLUl4U3dcIixcImdyaWRfX2dhcC0tY29sdW1uLS0zeHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hzX19fdXc0NjZcIixcImdyaWRfX2dhcC0tcm93LS0zeHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tM3hzX19fSmZ3bVlcIixcImdyaWRfX2dhcC0teHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eHNfX19naDhjLVwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14eHNfX19FNzZnS1wiLFwiZ3JpZF9fZ2FwLS1yb3ctLXh4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14eHNfX19uaHh6LVwiLFwiZ3JpZF9fZ2FwLS14c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0teHNfX19HSDRoMlwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXhzX19fdVJxcmlcIixcImdyaWRfX2dhcC0tcm93LS14c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14c19fX2xBTkV1XCIsXCJncmlkX19nYXAtLXNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXNfX183UjBwc1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tc19fX2FEVkFHXCIsXCJncmlkX19nYXAtLXJvdy0tc1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1zX19fQVJEbXhcIixcImdyaWRfX2dhcC0tbVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tbV9fX20zWGloXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tbVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1tX19fQ3N5ZU1cIixcImdyaWRfX2dhcC0tcm93LS1tXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLW1fX19zT0FYblwiLFwiZ3JpZF9fZ2FwLS1sXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1sX19fMFN5S2xcIixcImdyaWRfX2dhcC0tY29sdW1uLS1sXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLWxfX19KdkpoTVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLWxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tbF9fX2FwSDhiXCIsXCJncmlkX19nYXAtLXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14bF9fX0ktdlJ0XCIsXCJncmlkX19nYXAtLWNvbHVtbi0teGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teGxfX190MFNPM1wiLFwiZ3JpZF9fZ2FwLS1yb3ctLXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXhsX19fZXZORWRcIixcImdyaWRfX2dhcC0teHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eGxfX19lV1MwMlwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14eGxfX19zLS0tYlwiLFwiZ3JpZF9fZ2FwLS1yb3ctLXh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14eGxfX19KNEY3b1wiLFwiZ3JpZF9fZ2FwLS0zeGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTN4bF9fX0hWbGtEXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tM3hsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTN4bF9fX3pLdExMXCIsXCJncmlkX19nYXAtLXJvdy0tM3hsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTN4bF9fX0U5U1Y5XCIsXCJncmlkX19nYXAtLTR4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tNHhsX19fTTNHM2ZcIixcImdyaWRfX2dhcC0tY29sdW1uLS00eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhsX19fbm50LXBcIixcImdyaWRfX2dhcC0tcm93LS00eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNHhsX19fMVc4YmRcIixcImdyaWRfX2dhcC0tNXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS01eGxfX195QW5YRFwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTV4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS01eGxfX18ydzRSMVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTV4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS01eGxfX19WQ2ZqZ1wiLFwiZ3JpZF9fZ2FwLS02eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTZ4bF9fX2hFbDBGXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tNnhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX0Z4UHRwXCIsXCJncmlkX19nYXAtLXJvdy0tNnhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTZ4bF9fX3luMWYtXCIsXCJncmlkX19nYXAtLTd4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tN3hsX19fZ2JHSHVcIixcImdyaWRfX2dhcC0tY29sdW1uLS03eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tN3hsX19fVnlqMXBcIixcImdyaWRfX2dhcC0tcm93LS03eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tN3hsX19fNUJCc1NcIixcImdyaWRfX2dhcC0tOHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS04eGxfX19qQ2xtQ1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS04eGxfX19icTdFelwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS04eGxfX193TnVaMlwiLFwiZ3JpZF9fZ2FwLS05eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTl4bF9fX2luRTFFXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tOXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTl4bF9fX01zZmpxXCIsXCJncmlkX19nYXAtLXJvdy0tOXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTl4bF9fX2kyMy1jXCIsXCJncmlkX19nYXAtLTEweGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTEweGxfX19MQ0R0Y1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTEweGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tMTB4bF9fX284Y0J5XCIsXCJncmlkX19nYXAtLXJvdy0tMTB4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0xMHhsX19fUmpSdzlcIixcImdyaWRfX2dhcC0tMTF4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tMTF4bF9fX1NxdU5hXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tMTF4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0xMXhsX19fdVNlV3pcIixcImdyaWRfX2dhcC0tcm93LS0xMXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTExeGxfX19qcUctSVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9oZWlnaHQvaGVpZ2h0Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIuaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tZnVsbF9fXy1pb2pmIHtcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS16ZXJvX19fZDU3d1cge1xcbiAgbWF4LWhlaWdodDogMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhzX19fTEpVQm4ge1xcbiAgbWF4LWhlaWdodDogMXB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hzX19fLTJXby0ge1xcbiAgbWF4LWhlaWdodDogMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHhzX19faEZyQmUge1xcbiAgbWF4LWhlaWdodDogNHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHNfX19jMnBhRCB7XFxuICBtYXgtaGVpZ2h0OiA4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1zX19fQWNwNlQge1xcbiAgbWF4LWhlaWdodDogMTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLW1fX19Wem9ROSB7XFxuICBtYXgtaGVpZ2h0OiAxNnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tbF9fX1dnbHFiIHtcXG4gIG1heC1oZWlnaHQ6IDIwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14bF9fX0xVbWxKIHtcXG4gIG1heC1oZWlnaHQ6IDI0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14eGxfX19kUjN6SyB7XFxuICBtYXgtaGVpZ2h0OiAyOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hsX19fYnViVEQge1xcbiAgbWF4LWhlaWdodDogMzJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTR4bF9fX2JkWlg2IHtcXG4gIG1heC1oZWlnaHQ6IDM2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS01eGxfX19UVVRBUiB7XFxuICBtYXgtaGVpZ2h0OiA0MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNnhsX19fR2MtSGwge1xcbiAgbWF4LWhlaWdodDogNDRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTd4bF9fX1l4ZHRYIHtcXG4gIG1heC1oZWlnaHQ6IDQ4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS04eGxfX19BMld2ZCB7XFxuICBtYXgtaGVpZ2h0OiA1MnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tOXhsX19fSnZyR0oge1xcbiAgbWF4LWhlaWdodDogNTZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTEweGxfX193TFJRdSB7XFxuICBtYXgtaGVpZ2h0OiA2MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTF4bF9fX2dVM3hJIHtcXG4gIG1heC1oZWlnaHQ6IDY0cHg7XFxufVxcblxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS16ZXJvX19fUEJWNDcge1xcbiAgbWluLWhlaWdodDogMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNHhzX19fVjNOLWIge1xcbiAgbWluLWhlaWdodDogMXB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tM3hzX19fdGdEUVEge1xcbiAgbWluLWhlaWdodDogMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teHhzX19fLXFoU3oge1xcbiAgbWluLWhlaWdodDogNHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teHNfX19aSXBxdSB7XFxuICBtaW4taGVpZ2h0OiA4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1zX19feE1pR2Mge1xcbiAgbWluLWhlaWdodDogMTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLW1fX19WRVdMciB7XFxuICBtaW4taGVpZ2h0OiAxNnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbF9fX2E2LUY3IHtcXG4gIG1pbi1oZWlnaHQ6IDIwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14bF9fXy15bEZ1IHtcXG4gIG1pbi1oZWlnaHQ6IDI0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eGxfX183SzZmLSB7XFxuICBtaW4taGVpZ2h0OiAyOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tM3hsX19fMEZaUW0ge1xcbiAgbWluLWhlaWdodDogMzJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTR4bF9fX2NHb0prIHtcXG4gIG1pbi1oZWlnaHQ6IDM2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS01eGxfX19mVjNhTyB7XFxuICBtaW4taGVpZ2h0OiA0MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNnhsX19fRmtVR0Mge1xcbiAgbWluLWhlaWdodDogNDRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTd4bF9fX0NzaXdWIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS04eGxfX19oLS1ESyB7XFxuICBtaW4taGVpZ2h0OiA1MnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tOXhsX19fbkZNU0gge1xcbiAgbWluLWhlaWdodDogNTZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTEweGxfX19LYS1jQSB7XFxuICBtaW4taGVpZ2h0OiA2MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tMTF4bF9fX2ZRc2djIHtcXG4gIG1pbi1oZWlnaHQ6IDY0cHg7XFxufVxcblxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXN0cmV0Y2hfX19yWWFZbiB7XFxuICBoZWlnaHQ6IHN0cmV0Y2g7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLWZ1bGxfX192V3hpZSB7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLWF1dG9fX182N25GTiB7XFxuICBoZWlnaHQ6IGF1dG87XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXplcm9fX19BcUEwUCB7XFxuICBoZWlnaHQ6IDBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tNHhzX19fRmRKMGgge1xcbiAgaGVpZ2h0OiAxcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTN4c19fX2FzVUpiIHtcXG4gIGhlaWdodDogMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14eHNfX19ZcVRxcCB7XFxuICBoZWlnaHQ6IDRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0teHNfX19sTlJ0WSB7XFxuICBoZWlnaHQ6IDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tc19fX0g3bS0tIHtcXG4gIGhlaWdodDogMTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tbV9fX0NtTHAxIHtcXG4gIGhlaWdodDogMTZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tbF9fXzJ0a2toIHtcXG4gIGhlaWdodDogMjBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0teGxfX183eEJKaSB7XFxuICBoZWlnaHQ6IDI0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXh4bF9fX0NqU3U1IHtcXG4gIGhlaWdodDogMjhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tM3hsX19fcFVkdk4ge1xcbiAgaGVpZ2h0OiAzMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS00eGxfX19RSFpZeSB7XFxuICBoZWlnaHQ6IDM2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTV4bF9fX1diZ283IHtcXG4gIGhlaWdodDogNDBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tNnhsX19fa3djOGEge1xcbiAgaGVpZ2h0OiA0NHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS03eGxfX19tdU8xbCB7XFxuICBoZWlnaHQ6IDQ4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTh4bF9fXzlwRU1OIHtcXG4gIGhlaWdodDogNTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tOXhsX19fNmU0NlEge1xcbiAgaGVpZ2h0OiA1NnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMHhsX19fWGdYcC0ge1xcbiAgaGVpZ2h0OiA2MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMXhsX19fYWR3dUgge1xcbiAgaGVpZ2h0OiA2NHB4O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm1heC1oZWlnaHQtLWZ1bGxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLWZ1bGxfX18taW9qZlwiLFwibWF4LWhlaWdodC0temVyb1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0temVyb19fX2Q1N3dXXCIsXCJtYXgtaGVpZ2h0LS00eHNcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTR4c19fX0xKVUJuXCIsXCJtYXgtaGVpZ2h0LS0zeHNcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTN4c19fXy0yV28tXCIsXCJtYXgtaGVpZ2h0LS14eHNcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXh4c19fX2hGckJlXCIsXCJtYXgtaGVpZ2h0LS14c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHNfX19jMnBhRFwiLFwibWF4LWhlaWdodC0tc1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tc19fX0FjcDZUXCIsXCJtYXgtaGVpZ2h0LS1tXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1tX19fVnpvUTlcIixcIm1heC1oZWlnaHQtLWxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLWxfX19XZ2xxYlwiLFwibWF4LWhlaWdodC0teGxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXhsX19fTFVtbEpcIixcIm1heC1oZWlnaHQtLXh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHhsX19fZFIzektcIixcIm1heC1oZWlnaHQtLTN4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hsX19fYnViVERcIixcIm1heC1oZWlnaHQtLTR4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhsX19fYmRaWDZcIixcIm1heC1oZWlnaHQtLTV4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNXhsX19fVFVUQVJcIixcIm1heC1oZWlnaHQtLTZ4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNnhsX19fR2MtSGxcIixcIm1heC1oZWlnaHQtLTd4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tN3hsX19fWXhkdFhcIixcIm1heC1oZWlnaHQtLTh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tOHhsX19fQTJXdmRcIixcIm1heC1oZWlnaHQtLTl4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tOXhsX19fSnZyR0pcIixcIm1heC1oZWlnaHQtLTEweGxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTEweGxfX193TFJRdVwiLFwibWF4LWhlaWdodC0tMTF4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTF4bF9fX2dVM3hJXCIsXCJtaW4taGVpZ2h0LS16ZXJvXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS16ZXJvX19fUEJWNDdcIixcIm1pbi1oZWlnaHQtLTR4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNHhzX19fVjNOLWJcIixcIm1pbi1oZWlnaHQtLTN4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tM3hzX19fdGdEUVFcIixcIm1pbi1oZWlnaHQtLXh4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teHhzX19fLXFoU3pcIixcIm1pbi1oZWlnaHQtLXhzXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14c19fX1pJcHF1XCIsXCJtaW4taGVpZ2h0LS1zXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1zX19feE1pR2NcIixcIm1pbi1oZWlnaHQtLW1cIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLW1fX19WRVdMclwiLFwibWluLWhlaWdodC0tbFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbF9fX2E2LUY3XCIsXCJtaW4taGVpZ2h0LS14bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teGxfX18teWxGdVwiLFwibWluLWhlaWdodC0teHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eGxfX183SzZmLVwiLFwibWluLWhlaWdodC0tM3hsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0zeGxfX18wRlpRbVwiLFwibWluLWhlaWdodC0tNHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS00eGxfX19jR29Ka1wiLFwibWluLWhlaWdodC0tNXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS01eGxfX19mVjNhT1wiLFwibWluLWhlaWdodC0tNnhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS02eGxfX19Ga1VHQ1wiLFwibWluLWhlaWdodC0tN3hsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS03eGxfX19Dc2l3VlwiLFwibWluLWhlaWdodC0tOHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS04eGxfX19oLS1ES1wiLFwibWluLWhlaWdodC0tOXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS05eGxfX19uRk1TSFwiLFwibWluLWhlaWdodC0tMTB4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tMTB4bF9fX0thLWNBXCIsXCJtaW4taGVpZ2h0LS0xMXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0xMXhsX19fZlFzZ2NcIixcImhlaWdodC0tc3RyZXRjaFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1zdHJldGNoX19fcllhWW5cIixcImhlaWdodC0tZnVsbFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1mdWxsX19fdld4aWVcIixcImhlaWdodC0tYXV0b1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1hdXRvX19fNjduRk5cIixcImhlaWdodC0temVyb1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS16ZXJvX19fQXFBMFBcIixcImhlaWdodC0tNHhzXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTR4c19fX0ZkSjBoXCIsXCJoZWlnaHQtLTN4c1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0zeHNfX19hc1VKYlwiLFwiaGVpZ2h0LS14eHNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0teHhzX19fWXFUcXBcIixcImhlaWdodC0teHNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0teHNfX19sTlJ0WVwiLFwiaGVpZ2h0LS1zXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXNfX19IN20tLVwiLFwiaGVpZ2h0LS1tXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLW1fX19DbUxwMVwiLFwiaGVpZ2h0LS1sXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLWxfX18ydGtraFwiLFwiaGVpZ2h0LS14bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14bF9fXzd4QkppXCIsXCJoZWlnaHQtLXh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14eGxfX19DalN1NVwiLFwiaGVpZ2h0LS0zeGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tM3hsX19fcFVkdk5cIixcImhlaWdodC0tNHhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTR4bF9fX1FIWll5XCIsXCJoZWlnaHQtLTV4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS01eGxfX19XYmdvN1wiLFwiaGVpZ2h0LS02eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tNnhsX19fa3djOGFcIixcImhlaWdodC0tN3hsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTd4bF9fX211TzFsXCIsXCJoZWlnaHQtLTh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS04eGxfX185cEVNTlwiLFwiaGVpZ2h0LS05eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tOXhsX19fNmU0NlFcIixcImhlaWdodC0tMTB4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMHhsX19fWGdYcC1cIixcImhlaWdodC0tMTF4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMXhsX19fYWR3dUhcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvaGlkZGVuL2hpZGRlbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmhpZGRlbi1tb2R1bGVfX2hpZGRlbl9fX25VVWkxIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiaGlkZGVuXCI6XCJoaWRkZW4tbW9kdWxlX19oaWRkZW5fX19uVVVpMVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aCB7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICB0cmFuc2l0aW9uOiAyNTBtcyBjb2xvciwgMjUwbXMgb3BhY2l0eSwgMTUwbXMgYmFja2dyb3VuZC1jb2xvciwgMTUwbXMgYm94LXNoYWRvdztcXG59XFxuLmludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aDpub3QoLmludGVyYWN0aXZlLW1vZHVsZV9faWdub3JlRm9jdXNWaXNpYmxlX19fV2RyREcpOmZvY3VzLXZpc2libGUge1xcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWJsdWUpO1xcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xcbn1cXG4uaW50ZXJhY3RpdmUtbW9kdWxlX19pbnRlcmFjdGl2ZV9fX0ZsVXVoOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQ29sb3IpO1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMCB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxufVxcbi5pbnRlcmFjdGl2ZS1tb2R1bGVfX2ludGVyYWN0aXZlX19fRmxVdWguaW50ZXJhY3RpdmUtbW9kdWxlX19hY3RpdmVfX19vbW03eSB7XFxuICBjb2xvcjogdmFyKC0taWNvbkFjdGl2ZUNvbG9yKTtcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiaW50ZXJhY3RpdmVcIjpcImludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aFwiLFwiaWdub3JlRm9jdXNWaXNpYmxlXCI6XCJpbnRlcmFjdGl2ZS1tb2R1bGVfX2lnbm9yZUZvY3VzVmlzaWJsZV9fX1dkckRHXCIsXCJhY3RpdmVcIjpcImludGVyYWN0aXZlLW1vZHVsZV9fYWN0aXZlX19fb21tN3lcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvaW52aXNpYmxlLWJhY2tkcm9wL2ludmlzaWJsZS1iYWNrZHJvcC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmludmlzaWJsZS1iYWNrZHJvcC1tb2R1bGVfX2ludmlzaWJsZUJhY2tkcm9wX19faE9oNWI6OmJhY2tkcm9wIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImludmlzaWJsZUJhY2tkcm9wXCI6XCJpbnZpc2libGUtYmFja2Ryb3AtbW9kdWxlX19pbnZpc2libGVCYWNrZHJvcF9fX2hPaDViXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL21hcmdpbi9tYXJnaW4ubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0temVyb19fX2dHTHF3IHtcXG4gIG1hcmdpbi10b3A6IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS00eHNfX19FdjhyNyB7XFxuICBtYXJnaW4tdG9wOiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tM3hzX19fbTRZT1oge1xcbiAgbWFyZ2luLXRvcDogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXh4c19fX29wWHZwIHtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14c19fX0pJallDIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1zX19fWU44REkge1xcbiAgbWFyZ2luLXRvcDogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1tX19fWHdrLVMge1xcbiAgbWFyZ2luLXRvcDogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1sX19fS1RXaUcge1xcbiAgbWFyZ2luLXRvcDogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14bF9fXzlJT2JaIHtcXG4gIG1hcmdpbi10b3A6IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHhsX19fM01XenAge1xcbiAgbWFyZ2luLXRvcDogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0zeGxfX19NOHhIMyB7XFxuICBtYXJnaW4tdG9wOiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4bF9fX3J2TkhSIHtcXG4gIG1hcmdpbi10b3A6IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNXhsX19fSW5FUngge1xcbiAgbWFyZ2luLXRvcDogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS02eGxfX19QUy10NiB7XFxuICBtYXJnaW4tdG9wOiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTd4bF9fX1A1WWJ6IHtcXG4gIG1hcmdpbi10b3A6IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tOHhsX19fOTZNb0sge1xcbiAgbWFyZ2luLXRvcDogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS05eGxfX19vcGVEYyB7XFxuICBtYXJnaW4tdG9wOiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTEweGxfX19wdkY2eCB7XFxuICBtYXJnaW4tdG9wOiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTExeGxfX19wQnpBbSB7XFxuICBtYXJnaW4tdG9wOiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0temVyb19fX0JXdzZPIHtcXG4gIG1hcmdpbi1yaWdodDogMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhzX19fcmRQT28ge1xcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0zeHNfX18tWTlPTyB7XFxuICBtYXJnaW4tcmlnaHQ6IDJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXh4c19fX0pyb0FBIHtcXG4gIG1hcmdpbi1yaWdodDogNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHNfX19abDhNaSB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXNfX18yNERJbiB7XFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1tX19fWkxsNkIge1xcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tbF9fX2VIUy1CIHtcXG4gIG1hcmdpbi1yaWdodDogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXhsX19fSVc4ZDQge1xcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhsX19fLU9EN0wge1xcbiAgbWFyZ2luLXJpZ2h0OiAyOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tM3hsX19fdEdZUlIge1xcbiAgbWFyZ2luLXJpZ2h0OiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhsX19fRVhxaDMge1xcbiAgbWFyZ2luLXJpZ2h0OiAzNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNXhsX19fQ3VZVkcge1xcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNnhsX19fREtnRFQge1xcbiAgbWFyZ2luLXJpZ2h0OiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tN3hsX19fRnp4NGIge1xcbiAgbWFyZ2luLXJpZ2h0OiA0OHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOHhsX19fRWxTV00ge1xcbiAgbWFyZ2luLXJpZ2h0OiA1MnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOXhsX19fMG9hVHgge1xcbiAgbWFyZ2luLXJpZ2h0OiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTB4bF9fX1E1NVBDIHtcXG4gIG1hcmdpbi1yaWdodDogNjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTExeGxfX19wMDJrbiB7XFxuICBtYXJnaW4tcmlnaHQ6IDY0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0temVyb19fX24tTlZRIHtcXG4gIG1hcmdpbi1ib3R0b206IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS00eHNfX19pSkphYSB7XFxuICBtYXJnaW4tYm90dG9tOiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tM3hzX19fZndRZDEge1xcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXh4c19fXzZVYWZIIHtcXG4gIG1hcmdpbi1ib3R0b206IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14c19fX3oySjFlIHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1zX19fLUhGNlEge1xcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1tX19fSkpPUkUge1xcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1sX19fR0laY0Yge1xcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14bF9fX000QXdOIHtcXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHhsX19fVHI4bVoge1xcbiAgbWFyZ2luLWJvdHRvbTogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0zeGxfX18tMFotSCB7XFxuICBtYXJnaW4tYm90dG9tOiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4bF9fXzRsa1NGIHtcXG4gIG1hcmdpbi1ib3R0b206IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNXhsX19feml6VVAge1xcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS02eGxfX19zTW10SyB7XFxuICBtYXJnaW4tYm90dG9tOiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTd4bF9fX0pPQVpyIHtcXG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tOHhsX19fQTVRNEMge1xcbiAgbWFyZ2luLWJvdHRvbTogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS05eGxfX183dVN6diB7XFxuICBtYXJnaW4tYm90dG9tOiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTEweGxfX19KbVFKNSB7XFxuICBtYXJnaW4tYm90dG9tOiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTExeGxfX182S0VZcyB7XFxuICBtYXJnaW4tYm90dG9tOiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS16ZXJvX19fdkN2U28ge1xcbiAgbWFyZ2luLWxlZnQ6IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhzX19fbEs1LXkge1xcbiAgbWFyZ2luLWxlZnQ6IDFweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tM3hzX19fNy14Vi0ge1xcbiAgbWFyZ2luLWxlZnQ6IDJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teHhzX19fZ2U2Vkoge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teHNfX19kdnJVaiB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1zX19fRE1aSjIge1xcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLW1fX181cGVkdyB7XFxuICBtYXJnaW4tbGVmdDogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbF9fXy1TeERJIHtcXG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14bF9fXzZOLWtaIHtcXG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14eGxfX19Za2FwWSB7XFxuICBtYXJnaW4tbGVmdDogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tM3hsX19fOFVVdXgge1xcbiAgbWFyZ2luLWxlZnQ6IDMycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTR4bF9fX2FxbDViIHtcXG4gIG1hcmdpbi1sZWZ0OiAzNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS01eGxfX19oUU50cCB7XFxuICBtYXJnaW4tbGVmdDogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNnhsX19fU3FQMzEge1xcbiAgbWFyZ2luLWxlZnQ6IDQ0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTd4bF9fX2Uwai1qIHtcXG4gIG1hcmdpbi1sZWZ0OiA0OHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS04eGxfX191a3BWeiB7XFxuICBtYXJnaW4tbGVmdDogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tOXhsX19fbE5IQlQge1xcbiAgbWFyZ2luLWxlZnQ6IDU2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTEweGxfX19DQlVTbiB7XFxuICBtYXJnaW4tbGVmdDogNjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tMTF4bF9fX3VjS0M4IHtcXG4gIG1hcmdpbi1sZWZ0OiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS16ZXJvX19feUtMREgge1xcbiAgbWFyZ2luOiAwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTR4c19fXzduanNpIHtcXG4gIG1hcmdpbjogMXB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0zeHNfX19rV0JiZSB7XFxuICBtYXJnaW46IDJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teHhzX19fZlppVWEge1xcbiAgbWFyZ2luOiA0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhzX19fLXRkT2oge1xcbiAgbWFyZ2luOiA4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXNfX18weFAwZyB7XFxuICBtYXJnaW46IDEycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLW1fX19XZDRwcCB7XFxuICBtYXJnaW46IDE2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLWxfX195TVVYcyB7XFxuICBtYXJnaW46IDIwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhsX19fd2paUFIge1xcbiAgbWFyZ2luOiAyNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14eGxfX19FbTRUNyB7XFxuICBtYXJnaW46IDI4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4bF9fX2NRWkhmIHtcXG4gIG1hcmdpbjogMzJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhsX19fN0lXck0ge1xcbiAgbWFyZ2luOiAzNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS01eGxfX19jU09VUSB7XFxuICBtYXJnaW46IDQwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTZ4bF9fX0YzYlNtIHtcXG4gIG1hcmdpbjogNDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tN3hsX19fMVVRbUoge1xcbiAgbWFyZ2luOiA0OHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS04eGxfX19HRTBTdiB7XFxuICBtYXJnaW46IDUycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTl4bF9fX2g1aGhFIHtcXG4gIG1hcmdpbjogNTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTB4bF9fX2RHSy1SIHtcXG4gIG1hcmdpbjogNjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTF4bF9fXzN5eEJwIHtcXG4gIG1hcmdpbjogNjRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tYXV0b19fX3k3Z2Y5IHtcXG4gIG1hcmdpbjogYXV0bztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJtYXJnaW5fX3RvcC0temVyb1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXplcm9fX19nR0xxd1wiLFwibWFyZ2luX190b3AtLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4c19fX0V2OHI3XCIsXCJtYXJnaW5fX3RvcC0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tM3hzX19fbTRZT1pcIixcIm1hcmdpbl9fdG9wLS14eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14eHNfX19vcFh2cFwiLFwibWFyZ2luX190b3AtLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHNfX19KSWpZQ1wiLFwibWFyZ2luX190b3AtLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1zX19fWU44RElcIixcIm1hcmdpbl9fdG9wLS1tXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tbV9fX1h3ay1TXCIsXCJtYXJnaW5fX3RvcC0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLWxfX19LVFdpR1wiLFwibWFyZ2luX190b3AtLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teGxfX185SU9iWlwiLFwibWFyZ2luX190b3AtLXh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXh4bF9fXzNNV3pwXCIsXCJtYXJnaW5fX3RvcC0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tM3hsX19fTTh4SDNcIixcIm1hcmdpbl9fdG9wLS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS00eGxfX19ydk5IUlwiLFwibWFyZ2luX190b3AtLTV4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTV4bF9fX0luRVJ4XCIsXCJtYXJnaW5fX3RvcC0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNnhsX19fUFMtdDZcIixcIm1hcmdpbl9fdG9wLS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS03eGxfX19QNVlielwiLFwibWFyZ2luX190b3AtLTh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTh4bF9fXzk2TW9LXCIsXCJtYXJnaW5fX3RvcC0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tOXhsX19fb3BlRGNcIixcIm1hcmdpbl9fdG9wLS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tMTB4bF9fX3B2RjZ4XCIsXCJtYXJnaW5fX3RvcC0tMTF4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTExeGxfX19wQnpBbVwiLFwibWFyZ2luX19yaWdodC0temVyb1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0temVyb19fX0JXdzZPXCIsXCJtYXJnaW5fX3JpZ2h0LS00eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTR4c19fX3JkUE9vXCIsXCJtYXJnaW5fX3JpZ2h0LS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTN4c19fXy1ZOU9PXCIsXCJtYXJnaW5fX3JpZ2h0LS14eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXh4c19fX0pyb0FBXCIsXCJtYXJnaW5fX3JpZ2h0LS14c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHNfX19abDhNaVwiLFwibWFyZ2luX19yaWdodC0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tc19fXzI0REluXCIsXCJtYXJnaW5fX3JpZ2h0LS1tXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1tX19fWkxsNkJcIixcIm1hcmdpbl9fcmlnaHQtLWxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLWxfX19lSFMtQlwiLFwibWFyZ2luX19yaWdodC0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXhsX19fSVc4ZDRcIixcIm1hcmdpbl9fcmlnaHQtLXh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhsX19fLU9EN0xcIixcIm1hcmdpbl9fcmlnaHQtLTN4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tM3hsX19fdEdZUlJcIixcIm1hcmdpbl9fcmlnaHQtLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhsX19fRVhxaDNcIixcIm1hcmdpbl9fcmlnaHQtLTV4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNXhsX19fQ3VZVkdcIixcIm1hcmdpbl9fcmlnaHQtLTZ4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNnhsX19fREtnRFRcIixcIm1hcmdpbl9fcmlnaHQtLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tN3hsX19fRnp4NGJcIixcIm1hcmdpbl9fcmlnaHQtLTh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOHhsX19fRWxTV01cIixcIm1hcmdpbl9fcmlnaHQtLTl4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOXhsX19fMG9hVHhcIixcIm1hcmdpbl9fcmlnaHQtLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTEweGxfX19RNTVQQ1wiLFwibWFyZ2luX19yaWdodC0tMTF4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTF4bF9fX3AwMmtuXCIsXCJtYXJnaW5fX2JvdHRvbS0temVyb1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXplcm9fX19uLU5WUVwiLFwibWFyZ2luX19ib3R0b20tLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4c19fX2lKSmFhXCIsXCJtYXJnaW5fX2JvdHRvbS0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tM3hzX19fZndRZDFcIixcIm1hcmdpbl9fYm90dG9tLS14eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14eHNfX182VWFmSFwiLFwibWFyZ2luX19ib3R0b20tLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHNfX196MkoxZVwiLFwibWFyZ2luX19ib3R0b20tLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1zX19fLUhGNlFcIixcIm1hcmdpbl9fYm90dG9tLS1tXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tbV9fX0pKT1JFXCIsXCJtYXJnaW5fX2JvdHRvbS0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLWxfX19HSVpjRlwiLFwibWFyZ2luX19ib3R0b20tLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teGxfX19NNEF3TlwiLFwibWFyZ2luX19ib3R0b20tLXh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXh4bF9fX1RyOG1aXCIsXCJtYXJnaW5fX2JvdHRvbS0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tM3hsX19fLTBaLUhcIixcIm1hcmdpbl9fYm90dG9tLS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS00eGxfX180bGtTRlwiLFwibWFyZ2luX19ib3R0b20tLTV4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTV4bF9fX3ppelVQXCIsXCJtYXJnaW5fX2JvdHRvbS0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNnhsX19fc01tdEtcIixcIm1hcmdpbl9fYm90dG9tLS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS03eGxfX19KT0FaclwiLFwibWFyZ2luX19ib3R0b20tLTh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTh4bF9fX0E1UTRDXCIsXCJtYXJnaW5fX2JvdHRvbS0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tOXhsX19fN3VTenZcIixcIm1hcmdpbl9fYm90dG9tLS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tMTB4bF9fX0ptUUo1XCIsXCJtYXJnaW5fX2JvdHRvbS0tMTF4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTExeGxfX182S0VZc1wiLFwibWFyZ2luX19sZWZ0LS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXplcm9fX192Q3ZTb1wiLFwibWFyZ2luX19sZWZ0LS00eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhzX19fbEs1LXlcIixcIm1hcmdpbl9fbGVmdC0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTN4c19fXzcteFYtXCIsXCJtYXJnaW5fX2xlZnQtLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14eHNfX19nZTZWSlwiLFwibWFyZ2luX19sZWZ0LS14c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14c19fX2R2clVqXCIsXCJtYXJnaW5fX2xlZnQtLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tc19fX0RNWkoyXCIsXCJtYXJnaW5fX2xlZnQtLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbV9fXzVwZWR3XCIsXCJtYXJnaW5fX2xlZnQtLWxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbF9fXy1TeERJXCIsXCJtYXJnaW5fX2xlZnQtLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXhsX19fNk4ta1pcIixcIm1hcmdpbl9fbGVmdC0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXh4bF9fX1lrYXBZXCIsXCJtYXJnaW5fX2xlZnQtLTN4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS0zeGxfX184VVV1eFwiLFwibWFyZ2luX19sZWZ0LS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhsX19fYXFsNWJcIixcIm1hcmdpbl9fbGVmdC0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTV4bF9fX2hRTnRwXCIsXCJtYXJnaW5fX2xlZnQtLTZ4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS02eGxfX19TcVAzMVwiLFwibWFyZ2luX19sZWZ0LS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tN3hsX19fZTBqLWpcIixcIm1hcmdpbl9fbGVmdC0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTh4bF9fX3VrcFZ6XCIsXCJtYXJnaW5fX2xlZnQtLTl4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS05eGxfX19sTkhCVFwiLFwibWFyZ2luX19sZWZ0LS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTEweGxfX19DQlVTblwiLFwibWFyZ2luX19sZWZ0LS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTExeGxfX191Y0tDOFwiLFwibWFyZ2luLS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXplcm9fX195S0xESFwiLFwibWFyZ2luLS00eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhzX19fN25qc2lcIixcIm1hcmdpbi0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4c19fX2tXQmJlXCIsXCJtYXJnaW4tLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14eHNfX19mWmlVYVwiLFwibWFyZ2luLS14c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14c19fXy10ZE9qXCIsXCJtYXJnaW4tLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tc19fXzB4UDBnXCIsXCJtYXJnaW4tLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbV9fX1dkNHBwXCIsXCJtYXJnaW4tLWxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbF9fX3lNVVhzXCIsXCJtYXJnaW4tLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhsX19fd2paUFJcIixcIm1hcmdpbi0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXh4bF9fX0VtNFQ3XCIsXCJtYXJnaW4tLTN4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0zeGxfX19jUVpIZlwiLFwibWFyZ2luLS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhsX19fN0lXck1cIixcIm1hcmdpbi0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTV4bF9fX2NTT1VRXCIsXCJtYXJnaW4tLTZ4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS02eGxfX19GM2JTbVwiLFwibWFyZ2luLS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tN3hsX19fMVVRbUpcIixcIm1hcmdpbi0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTh4bF9fX0dFMFN2XCIsXCJtYXJnaW4tLTl4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS05eGxfX19oNWhoRVwiLFwibWFyZ2luLS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTEweGxfX19kR0stUlwiLFwibWFyZ2luLS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTExeGxfX18zeXhCcFwiLFwibWFyZ2luLS1hdXRvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLWF1dG9fX195N2dmOVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzXCIsIGNzczogXCIub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXplcm9fX184bHlHaSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXplcm9fX19EYkkzaiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXplcm9fX19paG5TWCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0wcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0temVyb19fX1E0TFhPID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS00eHNfX19MZk0weCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTR4c19fX1lleXc2ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhzX19fVEFhREsgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4c19fXzZpV1VvID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeHNfX191cmtpZyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4c19fX3lYSDN6ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tM3hzX19fZ0F6VkEgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTN4c19fX1dyNDhjID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14eHNfX19kcVRUUyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXh4c19fX0VwNjZSID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhzX19fOXZQWWQgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4c19fX2p1dUtwID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14c19fX253NWFhID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHNfX19KZ0M2bCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhzX19fY3h0VnggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhzX19fMmlQNWcgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXNfX19IbTJpcCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1zX19fV2EzOE4gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tc19fX1dXQkZoID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tc19fX3d6RlY5ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tbV9fX1pqT0NNID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLW1fX19pcERrVyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1tX19fWThxRFcgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1tX19fNFhKZnYgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS1sX19fUXZUUm8gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbF9fX0VHa0FSID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLWxfX19VblVIdiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLWxfX19qVk5OWCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXhsX19fRU5jY1ggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teGxfX19ibXJzYSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14bF9fX0tqby1jID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teGxfX19ESFJ1eSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4bF9fX29uamVBID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXh4bF9fX3YtMVRsID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXh4bF9fX2ktYzJoID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhsX19fcUcwODUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeGxfX19MOW1zUSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0zeGxfX193TU1ibSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeGxfX19iU1NPciA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTN4bF9fX2U5Vzd2ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhsX19fVkFrLXggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhsX19fRHl5NVggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhsX19fWDB4NWEgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS00eGxfX19RdWwtaiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDM2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTV4bF9fX2VXNVFrID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTV4bF9fX3BpYS1aID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTV4bF9fX2lBQWhvID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNXhsX19feGp1Q0wgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS02eGxfX19DMFd2ayA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS02eGxfX184NHpwLSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQ0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS02eGxfX19pdWVCRiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTZ4bF9fX1VOUS1CID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tN3hsX19faFBjbGMgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tN3hsX19fNVJad1EgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0OHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tN3hsX19fSElwNkIgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS03eGxfX19GaU9FSSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQ4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTh4bF9fX2d0NGZ1ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTh4bF9fX2ZQRU9EID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTh4bF9fXy10VGZQID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOHhsX19fZFVYUmggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS05eGxfX19rUk5BNiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01NnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS05eGxfX19qYkhhQiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDU2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS05eGxfX19TRmdQbCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01NnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTl4bF9fX1RKaWVIID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tMTB4bF9fXy11dE9uID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTYwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTEweGxfX19hNTl3VCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDYwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0xMHhsX19fS2NlemUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMHhsX19fTm9tWXUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2MHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0xMXhsX19fU1l0Z24gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTF4bF9fX1A2MnU0ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTExeGxfX19nMG9vZSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTExeGxfX19FT1dMLSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDY0cHgpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS16ZXJvXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0temVyb19fXzhseUdpXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0temVyb1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXplcm9fX19EYkkzalwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS16ZXJvXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXplcm9fX19paG5TWFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0temVyb1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0temVyb19fX1E0TFhPXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhzX19fTGZNMHhcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eHNfX19ZZXl3NlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS00eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhzX19fVEFhREtcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNHhzX19fNmlXVW9cIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS0zeHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeHNfX191cmtpZ1wiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4c19fX3lYSDN6XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeHNfX19nQXpWQVwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tM3hzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0zeHNfX19XcjQ4Y1wiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4c19fX2RxVFRTXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHhzX19fRXA2NlJcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXh4c19fXzl2UFlkXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4c19fX2p1dUtwXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14c19fX253NWFhXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14c19fX0pnQzZsXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhzX19fY3h0VnhcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14c19fXzJpUDVnXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tc1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXNfX19IbTJpcFwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1zX19fV2EzOE5cIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tc1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1zX19fV1dCRmhcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXNfX193ekZWOVwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLW1cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS1tX19fWmpPQ01cIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1tXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbV9fX2lwRGtXXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLW1cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tbV9fX1k4cURXXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1tXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1tX19fNFhKZnZcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS1sXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tbF9fX1F2VFJvXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLWxfX19FR2tBUlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1sXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLWxfX19VblVIdlwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tbFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tbF9fX2pWTk5YXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14bF9fX0VOY2NYXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14bF9fX2JtcnNhXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhsX19fS2pvLWNcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14bF9fX0RIUnV5XCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhsX19fb25qZUFcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14eGxfX192LTFUbFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhsX19faS1jMmhcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhsX19fcUcwODVcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS0zeGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeGxfX19MOW1zUVwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4bF9fX3dNTWJtXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeGxfX19iU1NPclwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tM3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0zeGxfX19lOVc3dlwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTR4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTR4bF9fX1ZBay14XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhsX19fRHl5NVhcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTR4bF9fX1gweDVhXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS00eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4bF9fX1F1bC1qXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tNXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNXhsX19fZVc1UWtcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS01eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS01eGxfX19waWEtWlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS01eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNXhsX19faUFBaG9cIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTV4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNXhsX19feGp1Q0xcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS02eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS02eGxfX19DMFd2a1wiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTZ4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTZ4bF9fXzg0enAtXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTZ4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS02eGxfX19pdWVCRlwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNnhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS02eGxfX19VTlEtQlwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTd4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTd4bF9fX2hQY2xjXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tN3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tN3hsX19fNVJad1FcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tN3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTd4bF9fX0hJcDZCXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS03eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTd4bF9fX0ZpT0VJXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tOHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tOHhsX19fZ3Q0ZnVcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS04eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS04eGxfX19mUEVPRFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS04eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tOHhsX19fLXRUZlBcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOHhsX19fZFVYUmhcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS05eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS05eGxfX19rUk5BNlwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTl4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTl4bF9fX2piSGFCXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTl4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS05eGxfX19TRmdQbFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS05eGxfX19USmllSFwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTEweGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0xMHhsX19fLXV0T25cIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0xMHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTB4bF9fX2E1OXdUXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTEweGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tMTB4bF9fX0tjZXplXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMHhsX19fTm9tWXVcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS0xMXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tMTF4bF9fX1NZdGduXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTF4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTExeGxfX19QNjJ1NFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0xMXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTExeGxfX19nMG9vZVwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tMTF4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tMTF4bF9fX0VPV0wtXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL29mZnNldC9vZmZzZXQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0temVyb19fX2Fwck9yIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS16ZXJvX19fYkZOeTQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXplcm9fX181S2RNeCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS16ZXJvX19fRHJqMHUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNHhzX19fRmE4emUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTR4c19fX0pjN1p3IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS00eHNfX190N2pHeiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS00eHNfX18ybWNMWiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0zeHNfX19oSHhBSyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tM3hzX19fcVAzTHYge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTN4c19fX05tRDdpIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTN4c19fXzlZbHVlIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXh4c19fX1pBS3hvIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14eHNfX19rOUY0eCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teHhzX19fRUVmNEQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teHhzX19fLUo3NUsge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHNfX19pcnBuYSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teHNfX18zR1hvSCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teHNfX183V1lKSSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLThweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14c19fX3FZLWxPIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXNfX19OZFJLcSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXNfX19ZS2Y5ZSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXNfX19taXhwQSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tc19fX202amY1IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS1tX19fRVhrcWkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS1tX19fT3ZsWXIge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS1tX19fWFMtUEcge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLW1fX19vMHpaLSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tbF9fXzBiR2FQIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tbF9fX1MxLUxXIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tbF9fX2hTMWIzIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS1sX19fdlE0WXoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXhsX19fNk1mS1Yge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14bF9fX2RnYldXIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teGxfX18wYVdCNSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teGxfX195UHo4TyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHhsX19faXZKUmQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14eGxfX19adEU2WiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXh4bF9fXzRsSy1FIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14eGxfX19FTThyQiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tM3hsX19fQTlCa24ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0zeGxfX196QzgtYSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTN4bF9fX1dyTC1UIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0zeGxfX19uZVdhcCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNHhsX19fQldROWkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS00eGxfX184WDRrRSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTR4bF9fX0hjNDBUIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS00eGxfX19zUmpHUSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNXhsX19fNnVSWFkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS01eGxfX19uV2M2biB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTV4bF9fX1ZrV3pKIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS01eGxfX19jbmdLRSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNnhsX19fdHI3aEgge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00NHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS02eGxfX19DWVUxTSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTZ4bF9fXzBJdU1iIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS02eGxfX18tMXN3byB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tN3hsX19fTjctWGQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00OHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS03eGxfX18tcEFoeSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTd4bF9fX214VnJrIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS03eGxfX19uenVsUCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tOHhsX19fZU0tN1cge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS04eGxfX19lbnBFbSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTh4bF9fX2ppRlluIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS04eGxfX19GTnFOcyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tOXhsX19fLUNtaDkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01NnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS05eGxfX190d0UzdCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTl4bF9fXzc1bXViIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS05eGxfX19rQ1NzQyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tMTB4bF9fX2psYmhaIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tMTB4bF9fX3JleVRxIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tMTB4bF9fXzlwM2NuIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0xMHhsX19fdC12bzcge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDYwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTExeGxfX18wbnJaYSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTY0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTExeGxfX193Y2ZXZyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTExeGxfX19zSXRnNSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTY0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tMTF4bF9fX05VcC1uIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2NHB4KTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJvZmZzZXRfX3RvcC0temVyb1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXplcm9fX19hcHJPclwiLFwib2Zmc2V0X19ib3R0b20tLXplcm9cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS16ZXJvX19fYkZOeTRcIixcIm9mZnNldF9fbGVmdC0temVyb1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS16ZXJvX19fNUtkTXhcIixcIm9mZnNldF9fcmlnaHQtLXplcm9cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXplcm9fX19EcmowdVwiLFwib2Zmc2V0X190b3AtLTR4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTR4c19fX0ZhOHplXCIsXCJvZmZzZXRfX2JvdHRvbS0tNHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNHhzX19fSmM3WndcIixcIm9mZnNldF9fbGVmdC0tNHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTR4c19fX3Q3akd6XCIsXCJvZmZzZXRfX3JpZ2h0LS00eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTR4c19fXzJtY0xaXCIsXCJvZmZzZXRfX3RvcC0tM3hzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tM3hzX19faEh4QUtcIixcIm9mZnNldF9fYm90dG9tLS0zeHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0zeHNfX19xUDNMdlwiLFwib2Zmc2V0X19sZWZ0LS0zeHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tM3hzX19fTm1EN2lcIixcIm9mZnNldF9fcmlnaHQtLTN4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tM3hzX19fOVlsdWVcIixcIm9mZnNldF9fdG9wLS14eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14eHNfX19aQUt4b1wiLFwib2Zmc2V0X19ib3R0b20tLXh4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXh4c19fX2s5RjR4XCIsXCJvZmZzZXRfX2xlZnQtLXh4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14eHNfX19FRWY0RFwiLFwib2Zmc2V0X19yaWdodC0teHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14eHNfX18tSjc1S1wiLFwib2Zmc2V0X190b3AtLXhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHNfX19pcnBuYVwiLFwib2Zmc2V0X19ib3R0b20tLXhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teHNfX18zR1hvSFwiLFwib2Zmc2V0X19sZWZ0LS14c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14c19fXzdXWUpJXCIsXCJvZmZzZXRfX3JpZ2h0LS14c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teHNfX19xWS1sT1wiLFwib2Zmc2V0X190b3AtLXNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS1zX19fTmRSS3FcIixcIm9mZnNldF9fYm90dG9tLS1zXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tc19fX1lLZjllXCIsXCJvZmZzZXRfX2xlZnQtLXNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tc19fX21peHBBXCIsXCJvZmZzZXRfX3JpZ2h0LS1zXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS1zX19fbTZqZjVcIixcIm9mZnNldF9fdG9wLS1tXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tbV9fX0VYa3FpXCIsXCJvZmZzZXRfX2JvdHRvbS0tbVwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLW1fX19PdmxZclwiLFwib2Zmc2V0X19sZWZ0LS1tXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLW1fX19YUy1QR1wiLFwib2Zmc2V0X19yaWdodC0tbVwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tbV9fX28welotXCIsXCJvZmZzZXRfX3RvcC0tbFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLWxfX18wYkdhUFwiLFwib2Zmc2V0X19ib3R0b20tLWxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS1sX19fUzEtTFdcIixcIm9mZnNldF9fbGVmdC0tbFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS1sX19faFMxYjNcIixcIm9mZnNldF9fcmlnaHQtLWxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLWxfX192UTRZelwiLFwib2Zmc2V0X190b3AtLXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teGxfX182TWZLVlwiLFwib2Zmc2V0X19ib3R0b20tLXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teGxfX19kZ2JXV1wiLFwib2Zmc2V0X19sZWZ0LS14bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14bF9fXzBhV0I1XCIsXCJvZmZzZXRfX3JpZ2h0LS14bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teGxfX195UHo4T1wiLFwib2Zmc2V0X190b3AtLXh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXh4bF9fX2l2SlJkXCIsXCJvZmZzZXRfX2JvdHRvbS0teHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teHhsX19fWnRFNlpcIixcIm9mZnNldF9fbGVmdC0teHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXh4bF9fXzRsSy1FXCIsXCJvZmZzZXRfX3JpZ2h0LS14eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXh4bF9fX0VNOHJCXCIsXCJvZmZzZXRfX3RvcC0tM3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tM3hsX19fQTlCa25cIixcIm9mZnNldF9fYm90dG9tLS0zeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0zeGxfX196QzgtYVwiLFwib2Zmc2V0X19sZWZ0LS0zeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tM3hsX19fV3JMLVRcIixcIm9mZnNldF9fcmlnaHQtLTN4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tM3hsX19fbmVXYXBcIixcIm9mZnNldF9fdG9wLS00eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS00eGxfX19CV1E5aVwiLFwib2Zmc2V0X19ib3R0b20tLTR4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTR4bF9fXzhYNGtFXCIsXCJvZmZzZXRfX2xlZnQtLTR4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS00eGxfX19IYzQwVFwiLFwib2Zmc2V0X19yaWdodC0tNHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS00eGxfX19zUmpHUVwiLFwib2Zmc2V0X190b3AtLTV4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTV4bF9fXzZ1UlhZXCIsXCJvZmZzZXRfX2JvdHRvbS0tNXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNXhsX19fbldjNm5cIixcIm9mZnNldF9fbGVmdC0tNXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTV4bF9fX1ZrV3pKXCIsXCJvZmZzZXRfX3JpZ2h0LS01eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTV4bF9fX2NuZ0tFXCIsXCJvZmZzZXRfX3RvcC0tNnhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNnhsX19fdHI3aEhcIixcIm9mZnNldF9fYm90dG9tLS02eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS02eGxfX19DWVUxTVwiLFwib2Zmc2V0X19sZWZ0LS02eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNnhsX19fMEl1TWJcIixcIm9mZnNldF9fcmlnaHQtLTZ4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tNnhsX19fLTFzd29cIixcIm9mZnNldF9fdG9wLS03eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS03eGxfX19ONy1YZFwiLFwib2Zmc2V0X19ib3R0b20tLTd4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTd4bF9fXy1wQWh5XCIsXCJvZmZzZXRfX2xlZnQtLTd4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS03eGxfX19teFZya1wiLFwib2Zmc2V0X19yaWdodC0tN3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS03eGxfX19uenVsUFwiLFwib2Zmc2V0X190b3AtLTh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTh4bF9fX2VNLTdXXCIsXCJvZmZzZXRfX2JvdHRvbS0tOHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tOHhsX19fZW5wRW1cIixcIm9mZnNldF9fbGVmdC0tOHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTh4bF9fX2ppRlluXCIsXCJvZmZzZXRfX3JpZ2h0LS04eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTh4bF9fX0ZOcU5zXCIsXCJvZmZzZXRfX3RvcC0tOXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tOXhsX19fLUNtaDlcIixcIm9mZnNldF9fYm90dG9tLS05eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS05eGxfX190d0UzdFwiLFwib2Zmc2V0X19sZWZ0LS05eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tOXhsX19fNzVtdWJcIixcIm9mZnNldF9fcmlnaHQtLTl4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tOXhsX19fa0NTc0NcIixcIm9mZnNldF9fdG9wLS0xMHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tMTB4bF9fX2psYmhaXCIsXCJvZmZzZXRfX2JvdHRvbS0tMTB4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTEweGxfX19yZXlUcVwiLFwib2Zmc2V0X19sZWZ0LS0xMHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTEweGxfX185cDNjblwiLFwib2Zmc2V0X19yaWdodC0tMTB4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tMTB4bF9fX3Qtdm83XCIsXCJvZmZzZXRfX3RvcC0tMTF4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTExeGxfX18wbnJaYVwiLFwib2Zmc2V0X19ib3R0b20tLTExeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0xMXhsX19fd2NmV2dcIixcIm9mZnNldF9fbGVmdC0tMTF4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS0xMXhsX19fc0l0ZzVcIixcIm9mZnNldF9fcmlnaHQtLTExeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTExeGxfX19OVXAtblwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0taW5oZXJpdF9fXzBXUDByIHtcXG4gIG91dGxpbmUtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0td2hpdGVfX19VcS1nZCB7XFxuICBvdXRsaW5lLWNvbG9yOiB3aGl0ZTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS10cmFuc3BhcmVudF9fX1ROb012IHtcXG4gIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkxMDBfX19WTUY3WSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5ODBfX19LZDhmTSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk2MF9fX1pHak90IHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTQwX19fdWFGbkcge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MzBfX183UUJWViB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkyNV9fX3ItYmJKIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTIwX19faXd6ZUwge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MTBfX19oSnR0UyB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk3MF9fXzBPR2xVIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2pSd0huIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLXByaW1hcnlfX19QeGNteCB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1hY2NlbnRfX19qTWhJTiB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzX19feGpKTG4ge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tbm90aWNlX19fQ1JpWWIge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS13YXJuaW5nX19fMU9lN1cge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tY3JpdGljYWxfX195UXgtTCB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tc3VjY2Vzc1RpbnRfX19HSGFxLSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0td2FybmluZ1RpbnRfX19ZQW50dSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tY3JpdGljYWxUaW50X19fUTFtZGgge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1saW5rX19fdUlrM28ge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tY29kZV9fX3libndpIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXplcm9fX19Fa2Z6TiB7XFxuICBvdXRsaW5lLXdpZHRoOiAwcHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0teHhzX19fYkd5VHIge1xcbiAgb3V0bGluZS13aWR0aDogMXB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXhzX19fWlpSMkIge1xcbiAgb3V0bGluZS13aWR0aDogMnB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXNfX184ZERFeiB7XFxuICBvdXRsaW5lLXdpZHRoOiAzcHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0tbV9fX2cydUc1IHtcXG4gIG91dGxpbmUtd2lkdGg6IDRweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS1sX19fV2gwYkMge1xcbiAgb3V0bGluZS13aWR0aDogNnB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXhsX19fOGRPTWoge1xcbiAgb3V0bGluZS13aWR0aDogOHB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXh4bF9fX0JFc1VtIHtcXG4gIG91dGxpbmUtd2lkdGg6IDEwcHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0tM3hsX19fRXMwU1kge1xcbiAgb3V0bGluZS13aWR0aDogMTJweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS00eGxfX19ZZW92OCB7XFxuICBvdXRsaW5lLXdpZHRoOiAxNHB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTV4bF9fX05zVjhQIHtcXG4gIG91dGxpbmUtd2lkdGg6IDE2cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wib3V0bGluZVwiOlwib3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0RlwiLFwiZm9jdXNWaXNpYmxlXCI6XCJvdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEpcIixcImNvbG9yLS1pbmhlcml0XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX18wV1AwclwiLFwiY29sb3ItLXdoaXRlXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXdoaXRlX19fVXEtZ2RcIixcImNvbG9yLS10cmFuc3BhcmVudFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS10cmFuc3BhcmVudF9fX1ROb012XCIsXCJjb2xvci0tZ3JleTEwMFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fVk1GN1lcIixcImNvbG9yLS1ncmV5ODBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTgwX19fS2Q4Zk1cIixcImNvbG9yLS1ncmV5NjBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTYwX19fWkdqT3RcIixcImNvbG9yLS1ncmV5NDBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTQwX19fdWFGbkdcIixcImNvbG9yLS1ncmV5MzBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTMwX19fN1FCVlZcIixcImNvbG9yLS1ncmV5MjVcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTI1X19fci1iYkpcIixcImNvbG9yLS1ncmV5MjBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTIwX19faXd6ZUxcIixcImNvbG9yLS1ncmV5MTBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTEwX19faEp0dFNcIixcImNvbG9yLS1ncmV5NzBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTcwX19fME9HbFVcIixcImNvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX19qUndIblwiLFwiY29sb3ItLXByaW1hcnlcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tcHJpbWFyeV9fX1B4Y214XCIsXCJjb2xvci0tYWNjZW50XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWFjY2VudF9fX2pNaElOXCIsXCJjb2xvci0tc3VjY2Vzc1wiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzX19feGpKTG5cIixcImNvbG9yLS1ub3RpY2VcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tbm90aWNlX19fQ1JpWWJcIixcImNvbG9yLS13YXJuaW5nXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdfX18xT2U3V1wiLFwiY29sb3ItLWNyaXRpY2FsXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19feVF4LUxcIixcImNvbG9yLS1zdWNjZXNzVGludFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzVGludF9fX0dIYXEtXCIsXCJjb2xvci0td2FybmluZ1RpbnRcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0td2FybmluZ1RpbnRfX19ZQW50dVwiLFwiY29sb3ItLWNyaXRpY2FsVGludFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19RMW1kaFwiLFwiY29sb3ItLWxpbmtcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tbGlua19fX3VJazNvXCIsXCJjb2xvci0tY29kZVwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1jb2RlX19feWJud2lcIixcIndpZHRoLS16ZXJvXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXplcm9fX19Fa2Z6TlwiLFwid2lkdGgtLXh4c1wiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS14eHNfX19iR3lUclwiLFwid2lkdGgtLXhzXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXhzX19fWlpSMkJcIixcIndpZHRoLS1zXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXNfX184ZERFelwiLFwid2lkdGgtLW1cIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0tbV9fX2cydUc1XCIsXCJ3aWR0aC0tbFwiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS1sX19fV2gwYkNcIixcIndpZHRoLS14bFwiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS14bF9fXzhkT01qXCIsXCJ3aWR0aC0teHhsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXh4bF9fX0JFc1VtXCIsXCJ3aWR0aC0tM3hsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTN4bF9fX0VzMFNZXCIsXCJ3aWR0aC0tNHhsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTR4bF9fX1llb3Y4XCIsXCJ3aWR0aC0tNXhsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTV4bF9fX05zVjhQXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvdy0taGlkZS1zY3JvbGxiYXJfX193YzZqUCB7XFxuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS1oaWRkZW5fX19VQklYUSB7XFxuICBvdmVyZmxvdy15OiBoaWRkZW47XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS12aXNpYmxlX19fc2ZPYlUge1xcbiAgb3ZlcmZsb3cteTogdmlzaWJsZTtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLXNjcm9sbF9fX3lrWjIxIHtcXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLWF1dG9fX18xT05ISyB7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0taGlkZGVuX19fTEszVWgge1xcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0tdmlzaWJsZV9fX3UtLTZGIHtcXG4gIG92ZXJmbG93LXg6IHZpc2libGU7XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS1zY3JvbGxfX19haUlINiB7XFxuICBvdmVyZmxvdy14OiBzY3JvbGw7XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS1hdXRvX19fUzZvVkwge1xcbiAgb3ZlcmZsb3cteDogYXV0bztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJvdmVyZmxvdy0taGlkZS1zY3JvbGxiYXJcIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3ctLWhpZGUtc2Nyb2xsYmFyX19fd2M2alBcIixcIm92ZXJmbG93X195LS1oaWRkZW5cIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLWhpZGRlbl9fX1VCSVhRXCIsXCJvdmVyZmxvd19feS0tdmlzaWJsZVwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0tdmlzaWJsZV9fX3NmT2JVXCIsXCJvdmVyZmxvd19feS0tc2Nyb2xsXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS1zY3JvbGxfX195a1oyMVwiLFwib3ZlcmZsb3dfX3ktLWF1dG9cIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLWF1dG9fX18xT05IS1wiLFwib3ZlcmZsb3dfX3gtLWhpZGRlblwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0taGlkZGVuX19fTEszVWhcIixcIm92ZXJmbG93X194LS12aXNpYmxlXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS12aXNpYmxlX19fdS0tNkZcIixcIm92ZXJmbG93X194LS1zY3JvbGxcIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3gtLXNjcm9sbF9fX2FpSUg2XCIsXCJvdmVyZmxvd19feC0tYXV0b1wiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0tYXV0b19fX1M2b1ZMXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3BvcG92ZXIvcG9wb3Zlci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLnBvcG92ZXItbW9kdWxlX19wb3BvdmVyX19vdmVybGF5X19fVGNLdi0ge1xcbiAgaW5zZXQ6IDA7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIHotaW5kZXg6IDk5OTtcXG59XFxuLnBvcG92ZXItbW9kdWxlX19wb3BvdmVyX19jb250ZW50X19fVUNVWjYge1xcbiAgei1pbmRleDogMTAwMDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJwb3BvdmVyX19vdmVybGF5XCI6XCJwb3BvdmVyLW1vZHVsZV9fcG9wb3Zlcl9fb3ZlcmxheV9fX1RjS3YtXCIsXCJwb3BvdmVyX19jb250ZW50XCI6XCJwb3BvdmVyLW1vZHVsZV9fcG9wb3Zlcl9fY29udGVudF9fX1VDVVo2XCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLnRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1jZW50ZXJfX19iRHJSMiB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi50ZXh0LWFsaWduLW1vZHVsZV9fdGV4dC1hbGlnbi0tcmlnaHRfX19KVlJNUCB7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuLnRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1sZWZ0X19fTExMazYge1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0ZXh0LWFsaWduLS1jZW50ZXJcIjpcInRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1jZW50ZXJfX19iRHJSMlwiLFwidGV4dC1hbGlnbi0tcmlnaHRcIjpcInRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1yaWdodF9fX0pWUk1QXCIsXCJ0ZXh0LWFsaWduLS1sZWZ0XCI6XCJ0ZXh0LWFsaWduLW1vZHVsZV9fdGV4dC1hbGlnbi0tbGVmdF9fX0xMTGs2XCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RpbnQvdGludC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLnRpbnQtbW9kdWxlX190aW50X19fZ0N6RzcsIC50aW50LW1vZHVsZV9fdGludF9fX2dDekc3ICoge1xcbiAgZmlsbDogdmFyKC0tZWxlbWVudC10aW50KTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0aW50XCI6XCJ0aW50LW1vZHVsZV9fdGludF9fX2dDekc3XCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RyYW5zaXRpb24vdHJhbnNpdGlvbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLnRyYW5zaXRpb24tbW9kdWxlX190cmFuc2l0aW9uX19fU3d3T0Uge1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1widHJhbnNpdGlvblwiOlwidHJhbnNpdGlvbi1tb2R1bGVfX3RyYW5zaXRpb25fX19Td3dPRVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLm1vZHVsZS5zY3NzXCIsIGNzczogXCIudmlzdWFsbHktaGlkZGVuLW1vZHVsZV9fdmlzdWFsbHktaGlkZGVuX19fRFB1bE0ge1xcbiAgb3BhY2l0eTogMDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ2aXN1YWxseS1oaWRkZW5cIjpcInZpc3VhbGx5LWhpZGRlbi1tb2R1bGVfX3Zpc3VhbGx5LWhpZGRlbl9fX0RQdWxNXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzXCIsIGNzczogXCIud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLWZ1bGxfX19ub0lrVCB7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tY29udGVudF9fX3lrc1VyIHtcXG4gIG1heC13aWR0aDogOTAwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0temVyb19fXzhOVUYxIHtcXG4gIG1heC13aWR0aDogMHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTR4c19fX2dIbExJIHtcXG4gIG1heC13aWR0aDogMXB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTN4c19fX3Jkb1A4IHtcXG4gIG1heC13aWR0aDogMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXh4c19fX2pscDh2IHtcXG4gIG1heC13aWR0aDogNHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXhzX19fa1FzV3gge1xcbiAgbWF4LXdpZHRoOiA4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tc19fX01nR2F6IHtcXG4gIG1heC13aWR0aDogMTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1tX19fYUZ6U2Mge1xcbiAgbWF4LXdpZHRoOiAxNnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLWxfX19pS2xhSCB7XFxuICBtYXgtd2lkdGg6IDIwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0teGxfX180elVkQyB7XFxuICBtYXgtd2lkdGg6IDI0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0teHhsX19fNTh6M1Age1xcbiAgbWF4LXdpZHRoOiAyOHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTN4bF9fXzJZWG5IIHtcXG4gIG1heC13aWR0aDogMzJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS00eGxfX19qRko5ViB7XFxuICBtYXgtd2lkdGg6IDM2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNXhsX19fNy1WUUcge1xcbiAgbWF4LXdpZHRoOiA0MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTZ4bF9fX1BTMzdKIHtcXG4gIG1heC13aWR0aDogNDRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS03eGxfX19zU0J3ayB7XFxuICBtYXgtd2lkdGg6IDQ4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tOHhsX19fVjNJSHkge1xcbiAgbWF4LXdpZHRoOiA1MnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTl4bF9fXzRWV0VNIHtcXG4gIG1heC13aWR0aDogNTZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0xMHhsX19fejk3VFEge1xcbiAgbWF4LXdpZHRoOiA2MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTExeGxfX19qeGVuWCB7XFxuICBtYXgtd2lkdGg6IDY0cHg7XFxufVxcblxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aF9fX3FubFlDIHtcXG4gIC8qIEFzIHdpZGUgYXMgdGhlIGNvbnRlbnQgd2FudHMgdG8gYmUsIHNvIGl0IG5ldmVyIGhhcyB0byB3cmFwIHRvIGZpdCBpdHMgc3Vycm91bmRpbmdzLiAqL1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLWZpdF9fXzJXLVREIHtcXG4gIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0temVyb19fXzk0MjlTIHtcXG4gIG1pbi13aWR0aDogMHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTR4c19fXzNUR00tIHtcXG4gIG1pbi13aWR0aDogMXB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTN4c19fX1I2ajMyIHtcXG4gIG1pbi13aWR0aDogMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXh4c19fX3ZqS2RDIHtcXG4gIG1pbi13aWR0aDogNHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXhzX19fVi1MMXMge1xcbiAgbWluLXdpZHRoOiA4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tc19fX2RJZlptIHtcXG4gIG1pbi13aWR0aDogMTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1tX19fSkg1SVAge1xcbiAgbWluLXdpZHRoOiAxNnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLWxfX19HZ2tFOCB7XFxuICBtaW4td2lkdGg6IDIwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teGxfX19hR0x1aSB7XFxuICBtaW4td2lkdGg6IDI0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHhsX19felFPdFQge1xcbiAgbWluLXdpZHRoOiAyOHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTN4bF9fX0pldkRaIHtcXG4gIG1pbi13aWR0aDogMzJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS00eGxfX18xZTZOMSB7XFxuICBtaW4td2lkdGg6IDM2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNXhsX19fS3VtdG8ge1xcbiAgbWluLXdpZHRoOiA0MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTZ4bF9fX1lFa204IHtcXG4gIG1pbi13aWR0aDogNDRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS03eGxfX192WDFGWSB7XFxuICBtaW4td2lkdGg6IDQ4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tOHhsX19fVmJRaGsge1xcbiAgbWluLXdpZHRoOiA1MnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTl4bF9fX2VVS1FpIHtcXG4gIG1pbi13aWR0aDogNTZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS0xMHhsX19fWm9OM04ge1xcbiAgbWluLXdpZHRoOiA2MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTExeGxfX19CTkZqQSB7XFxuICBtaW4td2lkdGg6IDY0cHg7XFxufVxcblxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS1mdWxsX19fMW1waXoge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS1zdHJldGNoX19fUnF3MDAge1xcbiAgd2lkdGg6IHN0cmV0Y2g7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS16ZXJvX19fSU5kVnYge1xcbiAgd2lkdGg6IDBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTR4c19fX2RSVWhXIHtcXG4gIHdpZHRoOiAxcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS0zeHNfX19vUkoweiB7XFxuICB3aWR0aDogMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0teHhzX19fSHlsOVIge1xcbiAgd2lkdGg6IDRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXhzX19fRzNqUXoge1xcbiAgd2lkdGg6IDhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXNfX18tbXpxbSB7XFxuICB3aWR0aDogMTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLW1fX19tRVo3NyB7XFxuICB3aWR0aDogMTZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLWxfX19xeUlONyB7XFxuICB3aWR0aDogMjBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXhsX19fbU8yNUkge1xcbiAgd2lkdGg6IDI0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS14eGxfX19FR1FNcCB7XFxuICB3aWR0aDogMjhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTN4bF9fX0h1bDctIHtcXG4gIHdpZHRoOiAzMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tNHhsX19fek9QYlMge1xcbiAgd2lkdGg6IDM2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS01eGxfX194YnFuaSB7XFxuICB3aWR0aDogNDBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTZ4bF9fX05tYmY5IHtcXG4gIHdpZHRoOiA0NHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tN3hsX19fQjBudncge1xcbiAgd2lkdGg6IDQ4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS04eGxfX19XMUhEUCB7XFxuICB3aWR0aDogNTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTl4bF9fX0tKTDhVIHtcXG4gIHdpZHRoOiA1NnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tMTB4bF9fXzk0ejE5IHtcXG4gIHdpZHRoOiA2MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tMTF4bF9fX2pCLUxuIHtcXG4gIHdpZHRoOiA2NHB4O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm1heC13aWR0aC0tZnVsbFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLWZ1bGxfX19ub0lrVFwiLFwibWF4LXdpZHRoLS1jb250ZW50XCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tY29udGVudF9fX3lrc1VyXCIsXCJtYXgtd2lkdGgtLXplcm9cIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS16ZXJvX19fOE5VRjFcIixcIm1heC13aWR0aC0tNHhzXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNHhzX19fZ0hsTElcIixcIm1heC13aWR0aC0tM3hzXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tM3hzX19fcmRvUDhcIixcIm1heC13aWR0aC0teHhzXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0teHhzX19famxwOHZcIixcIm1heC13aWR0aC0teHNcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14c19fX2tRc1d4XCIsXCJtYXgtd2lkdGgtLXNcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1zX19fTWdHYXpcIixcIm1heC13aWR0aC0tbVwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLW1fX19hRnpTY1wiLFwibWF4LXdpZHRoLS1sXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tbF9fX2lLbGFIXCIsXCJtYXgtd2lkdGgtLXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0teGxfX180elVkQ1wiLFwibWF4LXdpZHRoLS14eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14eGxfX181OHozUFwiLFwibWF4LXdpZHRoLS0zeGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0zeGxfX18yWVhuSFwiLFwibWF4LXdpZHRoLS00eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS00eGxfX19qRko5VlwiLFwibWF4LXdpZHRoLS01eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS01eGxfX183LVZRR1wiLFwibWF4LXdpZHRoLS02eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS02eGxfX19QUzM3SlwiLFwibWF4LXdpZHRoLS03eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS03eGxfX19zU0J3a1wiLFwibWF4LXdpZHRoLS04eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS04eGxfX19WM0lIeVwiLFwibWF4LXdpZHRoLS05eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS05eGxfX180VldFTVwiLFwibWF4LXdpZHRoLS0xMHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tMTB4bF9fX3o5N1RRXCIsXCJtYXgtd2lkdGgtLTExeGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0xMXhsX19fanhlblhcIixcIm1pbi13aWR0aFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGhfX19xbmxZQ1wiLFwibWluLXdpZHRoLS1maXRcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1maXRfX18yVy1URFwiLFwibWluLXdpZHRoLS16ZXJvXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0temVyb19fXzk0MjlTXCIsXCJtaW4td2lkdGgtLTR4c1wiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTR4c19fXzNUR00tXCIsXCJtaW4td2lkdGgtLTN4c1wiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTN4c19fX1I2ajMyXCIsXCJtaW4td2lkdGgtLXh4c1wiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXh4c19fX3ZqS2RDXCIsXCJtaW4td2lkdGgtLXhzXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHNfX19WLUwxc1wiLFwibWluLXdpZHRoLS1zXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tc19fX2RJZlptXCIsXCJtaW4td2lkdGgtLW1cIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1tX19fSkg1SVBcIixcIm1pbi13aWR0aC0tbFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLWxfX19HZ2tFOFwiLFwibWluLXdpZHRoLS14bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXhsX19fYUdMdWlcIixcIm1pbi13aWR0aC0teHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHhsX19felFPdFRcIixcIm1pbi13aWR0aC0tM3hsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tM3hsX19fSmV2RFpcIixcIm1pbi13aWR0aC0tNHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNHhsX19fMWU2TjFcIixcIm1pbi13aWR0aC0tNXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNXhsX19fS3VtdG9cIixcIm1pbi13aWR0aC0tNnhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNnhsX19fWUVrbThcIixcIm1pbi13aWR0aC0tN3hsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tN3hsX19fdlgxRllcIixcIm1pbi13aWR0aC0tOHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tOHhsX19fVmJRaGtcIixcIm1pbi13aWR0aC0tOXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tOXhsX19fZVVLUWlcIixcIm1pbi13aWR0aC0tMTB4bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTEweGxfX19ab04zTlwiLFwibWluLXdpZHRoLS0xMXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tMTF4bF9fX0JORmpBXCIsXCJ3aWR0aC0tZnVsbFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tZnVsbF9fXzFtcGl6XCIsXCJ3aWR0aC0tc3RyZXRjaFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tc3RyZXRjaF9fX1JxdzAwXCIsXCJ3aWR0aC0temVyb1wiOlwid2lkdGgtbW9kdWxlX193aWR0aC0temVyb19fX0lOZFZ2XCIsXCJ3aWR0aC0tNHhzXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS00eHNfX19kUlVoV1wiLFwid2lkdGgtLTN4c1wiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tM3hzX19fb1JKMHpcIixcIndpZHRoLS14eHNcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLXh4c19fX0h5bDlSXCIsXCJ3aWR0aC0teHNcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLXhzX19fRzNqUXpcIixcIndpZHRoLS1zXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS1zX19fLW16cW1cIixcIndpZHRoLS1tXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS1tX19fbUVaNzdcIixcIndpZHRoLS1sXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS1sX19fcXlJTjdcIixcIndpZHRoLS14bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0teGxfX19tTzI1SVwiLFwid2lkdGgtLXh4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0teHhsX19fRUdRTXBcIixcIndpZHRoLS0zeGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTN4bF9fX0h1bDctXCIsXCJ3aWR0aC0tNHhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS00eGxfX196T1BiU1wiLFwid2lkdGgtLTV4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tNXhsX19feGJxbmlcIixcIndpZHRoLS02eGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTZ4bF9fX05tYmY5XCIsXCJ3aWR0aC0tN3hsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS03eGxfX19CMG52d1wiLFwid2lkdGgtLTh4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tOHhsX19fVzFIRFBcIixcIndpZHRoLS05eGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTl4bF9fX0tKTDhVXCIsXCJ3aWR0aC0tMTB4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tMTB4bF9fXzk0ejE5XCIsXCJ3aWR0aC0tMTF4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tMTF4bF9fX2pCLUxuXCJ9OyIsICJpbXBvcnQgKiBhcyBtb2R1bGUwIGZyb20gJy4vcGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZS5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMSBmcm9tICcuL3BsdWdpbnMvYW5jaG9yL2FuY2hvci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMiBmcm9tICcuL3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzIGZyb20gJy4vcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlNCBmcm9tICcuL3BsdWdpbnMvYm9yZGVyL2JvcmRlci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlNSBmcm9tICcuL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU2IGZyb20gJy4vcGx1Z2lucy9jb2xvci9jb2xvci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlNyBmcm9tICcuL3BsdWdpbnMvY3Vyc29yL2N1cnNvci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlOCBmcm9tICcuL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU5IGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9kcmFnZ2FibGUubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTEwIGZyb20gJy4vcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTExIGZyb20gJy4vcGx1Z2lucy9mYWRlZC9mYWRlZC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTIgZnJvbSAnLi9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTMgZnJvbSAnLi9wbHVnaW5zL2ZsZXgvZmxleC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTQgZnJvbSAnLi9wbHVnaW5zL2ZvbnQvZm9udC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTUgZnJvbSAnLi9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxNiBmcm9tICcuL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZS5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTcgZnJvbSAnLi9wbHVnaW5zL2dyaWQvZ3JpZC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTggZnJvbSAnLi9wbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTE5IGZyb20gJy4vcGx1Z2lucy9oaWRkZW4vaGlkZGVuLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyMCBmcm9tICcuL3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTIxIGZyb20gJy4vcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyMiBmcm9tICcuL3BsdWdpbnMvbWFyZ2luL21hcmdpbi5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjMgZnJvbSAnLi9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyNCBmcm9tICcuL3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlbi5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjUgZnJvbSAnLi9wbHVnaW5zL29mZnNldC9vZmZzZXQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTI2IGZyb20gJy4vcGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTI3IGZyb20gJy4vcGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvdy5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjggZnJvbSAnLi9wbHVnaW5zL3BhZGRpbmcvcGFkZGluZy5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjkgZnJvbSAnLi9wbHVnaW5zL3BvcG92ZXIvcG9wb3Zlci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMzAgZnJvbSAnLi9wbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzMSBmcm9tICcuL3BsdWdpbnMvdGV4dC1hbGlnbi90ZXh0LWFsaWduLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzMiBmcm9tICcuL3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzMyBmcm9tICcuL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzNCBmcm9tICcuL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzNSBmcm9tICcuL3BsdWdpbnMvdmlzdWFsbHktaGlkZGVuL3Zpc3VhbGx5LWhpZGRlbi5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMzYgZnJvbSAnLi9wbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyLG1vZHVsZTMsbW9kdWxlNCxtb2R1bGU1LG1vZHVsZTYsbW9kdWxlNyxtb2R1bGU4LG1vZHVsZTksbW9kdWxlMTAsbW9kdWxlMTEsbW9kdWxlMTIsbW9kdWxlMTMsbW9kdWxlMTQsbW9kdWxlMTUsbW9kdWxlMTYsbW9kdWxlMTcsbW9kdWxlMTgsbW9kdWxlMTksbW9kdWxlMjAsbW9kdWxlMjEsbW9kdWxlMjIsbW9kdWxlMjMsbW9kdWxlMjQsbW9kdWxlMjUsbW9kdWxlMjYsbW9kdWxlMjcsbW9kdWxlMjgsbW9kdWxlMjksbW9kdWxlMzAsbW9kdWxlMzEsbW9kdWxlMzIsbW9kdWxlMzMsbW9kdWxlMzQsbW9kdWxlMzUsbW9kdWxlMzZdO1xuXG5leHBvcnQgZGVmYXVsdCBtb2R1bGVzO1xuZXhwb3J0IGNvbnN0IGZpbGVuYW1lcyA9IFsncGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZS5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvYW5jaG9yL2FuY2hvci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yLm1vZHVsZS5zY3NzJywncGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvYm9yZGVyL2JvcmRlci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9jb2xvci9jb2xvci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvY3Vyc29yL2N1cnNvci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzJywncGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9kcmFnZ2FibGUubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2VuYWJsZWQvZW5hYmxlZC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZmFkZWQvZmFkZWQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZmxleC9mbGV4Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9mb250L2ZvbnQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzJywncGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2hpZGRlbi9oaWRkZW4ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzJywncGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzJywncGx1Z2lucy9tYXJnaW4vbWFyZ2luLm1vZHVsZS5zY3NzJywncGx1Z2lucy9uby1wb2ludGVyLWV2ZW50cy9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlbi5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvb2Zmc2V0L29mZnNldC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvb3V0bGluZS9vdXRsaW5lLm1vZHVsZS5zY3NzJywncGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvdy5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nLm1vZHVsZS5zY3NzJywncGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlLm1vZHVsZS5zY3NzJywncGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ24ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3RpbnQvdGludC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS5zY3NzJywncGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzJ11cbiIsICJpbXBvcnQgdHlwZSB7IFR1cGxlIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuLyogYzggaWdub3JlIHN0YXJ0ICovXG5leHBvcnQgdHlwZSBUU2hpcnRTaXplID1cbiAgfCBcInplcm9cIlxuICB8IGAke1JhbmdlPDMsIDQ+fXhzYFxuICB8IFwieHhzXCJcbiAgfCBcInhzXCJcbiAgfCBcInNcIlxuICB8IFwibVwiXG4gIHwgXCJsXCJcbiAgfCBcInhsXCJcbiAgfCBcInh4bFwiXG4gIHwgYCR7UmFuZ2U8MywgMTE+fXhsYDtcblxuZXhwb3J0IHR5cGUgUmFuZ2U8U3RhcnQgZXh0ZW5kcyBudW1iZXIsIEVuZCBleHRlbmRzIG51bWJlcj4gPSBSYW5nZUltcGw8U3RhcnQsIEVuZD47XG50eXBlIFJhbmdlSW1wbDxcbiAgU3RhcnQgZXh0ZW5kcyBudW1iZXIsXG4gIEVuZCBleHRlbmRzIG51bWJlcixcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0NvbmZ1c2luZ1ZvaWRUeXBlOiByZXF1aXJlZCBmb3IgdGhlIGJ1aWxkIHRvIHBhc3NcbiAgVCBleHRlbmRzIHZvaWRbXSA9IFR1cGxlPHZvaWQsIFN0YXJ0Pixcbj4gPSBFbmQgZXh0ZW5kcyBUW1wibGVuZ3RoXCJdID8gRW5kIDogVFtcImxlbmd0aFwiXSB8IFJhbmdlSW1wbDxTdGFydCwgRW5kLCBbdW5kZWZpbmVkLCAuLi5UXT47XG5cbi8qIGM4IGlnbm9yZSBlbmQgKi9cblxuLyoqIFRoZSBiYXNlIHVuaXQgKGluIHBpeGVscykgdGhlIHQtc2hpcnQgc2NhbGUgaXMgYnVpbHQgb24uIE1pcnJvcnMgYCR1bml0YCBpbiBgc2l6ZXMuc2Nzc2AuICovXG5leHBvcnQgY29uc3Qgc2l6ZVVuaXRJblBpeGVscyA9IDQ7XG5cbi8vIE11bHRpcGxpZXIgcGVyIHNpemUsIG1pcnJvcmluZyB0aGUgYCRzaXplc2AgbWFwIGluIGBzaXplcy5zY3NzYC4gS2VlcCB0aGUgdHdvIGluIHN5bmMuXG5jb25zdCBzaXplTXVsdGlwbGllcnM6IFJlY29yZDxUU2hpcnRTaXplLCBudW1iZXI+ID0ge1xuICB6ZXJvOiAwLFxuICBcIjR4c1wiOiAxIC8gNCxcbiAgXCIzeHNcIjogMSAvIDIsXG4gIHh4czogMSxcbiAgeHM6IDIsXG4gIHM6IDMsXG4gIG06IDQsXG4gIGw6IDUsXG4gIHhsOiA2LFxuICB4eGw6IDcsXG4gIFwiM3hsXCI6IDgsXG4gIFwiNHhsXCI6IDksXG4gIFwiNXhsXCI6IDEwLFxuICBcIjZ4bFwiOiAxMSxcbiAgXCI3eGxcIjogMTIsXG4gIFwiOHhsXCI6IDEzLFxuICBcIjl4bFwiOiAxNCxcbiAgXCIxMHhsXCI6IDE1LFxuICBcIjExeGxcIjogMTYsXG59O1xuXG4vKipcbiAqIFRoZSBwaXhlbCBsZW5ndGggb2YgYSB0LXNoaXJ0IHNpemUgXHUyMDE0IHRoZSBzYW1lIHZhbHVlIHRoZSBgJHNpemVgL2Akd2lkdGhgL2AkaGVpZ2h0YFxuICogY2xhc3NlcyByZXNvbHZlIHRvIGluIENTUy4gVXNlIHdoZW4gYSBsZW5ndGggaXMgbmVlZGVkIHJhdGhlciB0aGFuIGEgc2l6aW5nIGNsYXNzLFxuICogZS5nLiB0byBkcml2ZSBhbiBpY29uIGZvbnQncyBgZm9udC1zaXplYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHRTaGlydFNpemVJblBpeGVscyA9IChzaXplOiBUU2hpcnRTaXplKTogbnVtYmVyID0+IHNpemVVbml0SW5QaXhlbHMgKiBzaXplTXVsdGlwbGllcnNbc2l6ZV07XG4iLCAiLyogYzggaWdub3JlIHN0YXJ0ICovXG5pbXBvcnQgeyBnZXRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBmbGV4UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9mbGV4L2ZsZXhcIjtcbmltcG9ydCB7IGdyaWRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2dyaWQvZ3JpZFwiO1xuaW1wb3J0IHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IHdpZHRoUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy93aWR0aC93aWR0aFwiO1xuaW1wb3J0IHsgcGFkZGluZ1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5pbXBvcnQgeyBzdHlsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvc3R5bGUvc3R5bGVcIjtcbmltcG9ydCB7IGhlaWdodFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaGVpZ2h0L2hlaWdodFwiO1xuaW1wb3J0IHsgYm9yZGVyUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ib3JkZXIvYm9yZGVyXCI7XG5pbXBvcnQgeyBmb250UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9mb250L2ZvbnRcIjtcbmltcG9ydCB7IGNvbG9yUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9jb2xvci9jb2xvclwiO1xuaW1wb3J0IHsgYmFja2dyb3VuZENvbG9yUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3JcIjtcbmltcG9ydCB7IGdyYWRpZW50UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ncmFkaWVudC9ncmFkaWVudFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBkcmFnZ2FibGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZVwiO1xuaW1wb3J0IHsgZHJvcHBhYmxlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9kcm9wcGFibGVcIjtcbmltcG9ydCB7IG9ic2VydmVyIH0gZnJvbSBcIm1vYngtcmVhY3RcIjtcbmltcG9ydCB7IHRvb2x0aXBQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3Rvb2x0aXAvdG9vbHRpcFwiO1xuaW1wb3J0IHsgdHJhbnNpdGlvblBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uXCI7XG5pbXBvcnQgeyBvZmZzZXRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL29mZnNldC9vZmZzZXRcIjtcbmltcG9ydCB7IG9mZnNldENoaWxkcmVuUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuXCI7XG5pbXBvcnQgeyBoaWRkZW5QbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2hpZGRlbi9oaWRkZW5cIjtcbmltcG9ydCB7IG5vUG9pbnRlckV2ZW50c1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvbm8tcG9pbnRlci1ldmVudHMvbm8tcG9pbnRlci1ldmVudHNcIjtcbmltcG9ydCB7IG1hcmdpblBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvbWFyZ2luL21hcmdpblwiO1xuaW1wb3J0IHsgcmVsYXRpdmVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlXCI7XG5pbXBvcnQgeyBhYnNvbHV0ZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYWJzb2x1dGUvYWJzb2x1dGVcIjtcbmltcG9ydCB7IHZpc3VhbGx5SGlkZGVuUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuXCI7XG5pbXBvcnQgeyBob3ZlcmFibGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmFibGVcIjtcbmltcG9ydCB7IGhvdmVyYWJsZUJ5RHJhZ2dpbmdQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmFibGUtYnktZHJhZ2dpbmdcIjtcbmltcG9ydCB7IGJveFNoYWRvd1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93XCI7XG5pbXBvcnQgeyBvdmVyZmxvd1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvb3ZlcmZsb3cvb3ZlcmZsb3dcIjtcbmltcG9ydCB7IGZsZXhDaGlsZFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkXCI7XG5pbXBvcnQgeyBncmF5c2NhbGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2dyYXlzY2FsZS9ncmF5c2NhbGVcIjtcbmltcG9ydCB7IHRpbnRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3RpbnQvdGludFwiO1xuaW1wb3J0IHsgZmFkZWRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2ZhZGVkL2ZhZGVkXCI7XG5pbXBvcnQgeyBlbmFibGVkUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9lbmFibGVkL2VuYWJsZWRcIjtcbmltcG9ydCB7IGZvY3VzYWJsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZm9jdXNhYmxlL2ZvY3VzYWJsZVwiO1xuaW1wb3J0IHsgYXJlYVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYXJlYS9hcmVhXCI7XG5pbXBvcnQgeyBhcmVhQ29udGVudFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYXJlYS1jb250ZW50L2FyZWEtY29udGVudFwiO1xuaW1wb3J0IHsgc2l6ZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvc2l6ZS9zaXplXCI7XG5pbXBvcnQgeyBjdXJzb3JQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2N1cnNvci9jdXJzb3JcIjtcbmltcG9ydCB7IGNsaWNrYWJsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvY2xpY2thYmxlL2NsaWNrYWJsZVwiO1xuaW1wb3J0IHsgcmVmUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9yZWYvcmVmXCI7XG5pbXBvcnQgeyBkaXNwbGF5Q29udGVudHNQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50c1wiO1xuaW1wb3J0IHsgdGV4dEFsaWduUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ25cIjtcbmltcG9ydCB7IGJsb2NrUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ibG9jay9ibG9ja1wiO1xuaW1wb3J0IHsgb3V0bGluZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvb3V0bGluZS9vdXRsaW5lXCI7XG5pbXBvcnQgeyBpbnRlcmFjdGl2ZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVcIjtcbmltcG9ydCB7IHBvcG92ZXJQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3BvcG92ZXIvcG9wb3ZlclwiO1xuaW1wb3J0IHsgZmxvYXRpbmdQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2Zsb2F0aW5nL2Zsb2F0aW5nXCI7XG5pbXBvcnQgeyBpbnZpc2libGVCYWNrZHJvcFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaW52aXNpYmxlLWJhY2tkcm9wL2ludmlzaWJsZS1iYWNrZHJvcFwiO1xuaW1wb3J0IHsgb25PdXRzaWRlQ2xpY2tQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL29uLW91dHNpZGUtY2xpY2svb24tb3V0c2lkZS1jbGlja1wiO1xuaW1wb3J0IHsgZHJvcERvd25NZW51UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudVwiO1xuaW1wb3J0IHsgYW5jaG9yUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9hbmNob3IvYW5jaG9yXCI7XG5cbmV4cG9ydCBjb25zdCBzaGFyZWRQbHVnaW5zID0gW1xuICAvLyBDb250cmlidXRlcyBwcm9wcyBvZiBpdHMgb3duLCBzbyBpdCBoYXMgdG8gcnVuIGJlZm9yZSB0aGUgcGx1Z2lucyB0aGF0IHJlc29sdmUgdGhlbS5cbiAgYW5jaG9yUGx1Z2luLFxuICBzaXplUGx1Z2luLFxuICBkcmFnZ2FibGVQbHVnaW4sXG4gIHRleHRBbGlnblBsdWdpbixcbiAgZHJvcHBhYmxlUGx1Z2luLFxuICBhcmVhUGx1Z2luLFxuICBhcmVhQ29udGVudFBsdWdpbixcbiAgZmxleFBsdWdpbixcbiAgZ3JpZFBsdWdpbixcbiAgd2lkdGhQbHVnaW4sXG4gIGhlaWdodFBsdWdpbixcbiAgZmxleENoaWxkUGx1Z2luLFxuICBvdmVyZmxvd1BsdWdpbixcbiAgcGFkZGluZ1BsdWdpbixcbiAgbWFyZ2luUGx1Z2luLFxuICBibG9ja1BsdWdpbixcbiAgYm94U2hhZG93UGx1Z2luLFxuICBib3JkZXJQbHVnaW4sXG4gIG91dGxpbmVQbHVnaW4sXG4gIGludGVyYWN0aXZlUGx1Z2luLFxuICBmb250UGx1Z2luLFxuICBjb2xvclBsdWdpbixcbiAgYmFja2dyb3VuZENvbG9yUGx1Z2luLFxuICBncmFkaWVudFBsdWdpbixcbiAgZ3JheXNjYWxlUGx1Z2luLFxuICB0aW50UGx1Z2luLFxuICBmYWRlZFBsdWdpbixcbiAgc3R5bGVQbHVnaW4sXG4gIHRyYW5zaXRpb25QbHVnaW4sXG4gIG9mZnNldFBsdWdpbixcbiAgb2Zmc2V0Q2hpbGRyZW5QbHVnaW4sXG4gIGhpZGRlblBsdWdpbixcbiAgbm9Qb2ludGVyRXZlbnRzUGx1Z2luLFxuICBpbnZpc2libGVCYWNrZHJvcFBsdWdpbixcbiAgdmlzdWFsbHlIaWRkZW5QbHVnaW4sXG4gIHJlbGF0aXZlUGx1Z2luLFxuICBhYnNvbHV0ZVBsdWdpbixcbiAgY3Vyc29yUGx1Z2luLFxuICBkaXNwbGF5Q29udGVudHNQbHVnaW4sXG4gIG9uT3V0c2lkZUNsaWNrUGx1Z2luLFxuICBjbGFzc05hbWVQbHVnaW4sXG5dO1xuXG5jb25zdCBzaGFyZWRDbGlja2FibGVQbHVnaW5zID0gW2Ryb3BEb3duTWVudVBsdWdpbiwgcG9wb3ZlclBsdWdpbiwgZW5hYmxlZFBsdWdpbiwgY2xpY2thYmxlUGx1Z2luXTtcblxuZXhwb3J0IGNvbnN0IGdldFNoYXJlZFR5cGVkUGx1Z2lucyA9IDxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KCkgPT4gW1xuICAuLi5nZXRTaGFyZWRDaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2luczxUPigpLFxuICAuLi5nZXRTaGFyZWROb25DaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2luczxUPigpLFxuXTtcblxuY29uc3QgZ2V0U2hhcmVkQ2hpbGRyZW5BZGRpbmdUeXBlZFBsdWdpbnMgPSA8VCBleHRlbmRzIEhUTUxFbGVtZW50PigpID0+IFt0b29sdGlwUGx1Z2luPFQ+KCksIGZsb2F0aW5nUGx1Z2luPFQ+KCldO1xuXG5jb25zdCBnZXRTaGFyZWROb25DaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2lucyA9IDxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KCkgPT4gW1xuICBob3ZlcmFibGVQbHVnaW48VD4oKSxcbiAgaG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpbjxUPigpLFxuICBmb2N1c2FibGVQbHVnaW48VD4oKSxcbiAgcmVmUGx1Z2luPFQ+KCksXG5dO1xuXG5leHBvcnQgY29uc3QgRGl2ID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImRpdlwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTERpdkVsZW1lbnQ+KCkpKTtcblxuZXhwb3J0IHR5cGUgRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgRGl2PjtcblxuLy8gVXNlIGRpdiBhcyBuZXV0cmFsIHRlbXBsYXRlIGZvciB3aGF0IGNvbW1vbiBwcm9wcyBzaG91bGQgbG9vayBsaWtlXG5leHBvcnQgY29uc3QgQ29tbW9uID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImRpdlwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8YW55PigpKSk7XG5leHBvcnQgdHlwZSBDb21tb25Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBDb21tb24+O1xuXG5leHBvcnQgY29uc3QgU3ZnID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcInN2Z1wiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEVsZW1lbnQ+KCkpKTtcblxuZXhwb3J0IHR5cGUgU3ZnUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgU3ZnPjtcblxuZXhwb3J0IGNvbnN0IElucHV0ID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXG4gICAgXCJpbnB1dFwiLFxuICAgIGVuYWJsZWRQbHVnaW4sXG4gICAgLi4uc2hhcmVkUGx1Z2lucyxcbiAgICAuLi5nZXRTaGFyZWROb25DaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2luczxIVE1MSW5wdXRFbGVtZW50PigpLFxuICApLFxuKTtcbmV4cG9ydCB0eXBlIElucHV0UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSW5wdXQ+O1xuXG5leHBvcnQgY29uc3QgVGV4dEFyZWEgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRleHRhcmVhXCIsIGVuYWJsZWRQbHVnaW4sIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGV4dEFyZWFFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBUZXh0QXJlYVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFRleHRBcmVhPjtcblxuZXhwb3J0IGNvbnN0IEZvcm0gPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcImZvcm1cIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxGb3JtRWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgRm9ybVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEZvcm0+O1xuXG5leHBvcnQgY29uc3QgU3BhbiA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwic3BhblwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFNwYW5FbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBTcGFuUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgU3Bhbj47XG5cbmV4cG9ydCBjb25zdCBDbGlja2FibGVEaXYgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcImRpdlwiLCAuLi5zaGFyZWRDbGlja2FibGVQbHVnaW5zLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTERpdkVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIENsaWNrYWJsZURpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIENsaWNrYWJsZURpdj47XG5cbmV4cG9ydCBjb25zdCBJID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImlcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBJUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgST47XG5cbmV4cG9ydCBjb25zdCBBID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImFcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxBbmNob3JFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBBUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQT47XG5cbmV4cG9ydCBjb25zdCBCdXR0b24gPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcbiAgICBcImJ1dHRvblwiLFxuICAgIC4uLnNoYXJlZENsaWNrYWJsZVBsdWdpbnMsXG4gICAgLi4uc2hhcmVkUGx1Z2lucyxcbiAgICAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEJ1dHRvbkVsZW1lbnQ+KCksXG4gICksXG4pO1xuZXhwb3J0IHR5cGUgQnV0dG9uUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQnV0dG9uPjtcblxuZXhwb3J0IGNvbnN0IENvZGUgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiY29kZVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIENvZGVQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBDb2RlPjtcblxuZXhwb3J0IGNvbnN0IExhYmVsID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImxhYmVsXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgTGFiZWxQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBMYWJlbD47XG5cbmV4cG9ydCBjb25zdCBQcmUgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwicHJlXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MUHJlRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgUHJlUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgUHJlPjtcblxuZXhwb3J0IGNvbnN0IE5hdiA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJuYXZcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBOYXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBOYXY+O1xuXG5leHBvcnQgY29uc3QgSDEgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaDFcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxIZWFkaW5nRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSDFQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBIMT47XG5cbmV4cG9ydCBjb25zdCBIMiA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJoMlwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEhlYWRpbmdFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBIMlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEgyPjtcblxuZXhwb3J0IGNvbnN0IEgzID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImgzXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSGVhZGluZ0VsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEgzUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSDM+O1xuXG5leHBvcnQgY29uc3QgSDQgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaDRcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxIZWFkaW5nRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSDRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBIND47XG5cbmV4cG9ydCBjb25zdCBINSA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJoNVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEhlYWRpbmdFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBINVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEg1PjtcblxuZXhwb3J0IGNvbnN0IEg2ID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImg2XCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSGVhZGluZ0VsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEg2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSDY+O1xuXG5leHBvcnQgY29uc3QgT2wgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwib2xcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxPTGlzdEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIE9sUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgT2w+O1xuXG5leHBvcnQgY29uc3QgVWwgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwidWxcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxVTGlzdEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIFVsUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVWw+O1xuXG5leHBvcnQgY29uc3QgTGkgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwibGlcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxMSUVsZW1lbnQ+KCkpKTtcblxuZXhwb3J0IGNvbnN0IENsaWNrYWJsZUxpID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJsaVwiLCAuLi5zaGFyZWRDbGlja2FibGVQbHVnaW5zLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTExJRWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgQ2xpY2thYmxlTGlQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBDbGlja2FibGVMaT47XG5leHBvcnQgdHlwZSBMaVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIExpPjtcblxuZXhwb3J0IGNvbnN0IFAgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwicFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFBhcmFncmFwaEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIFBQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBQPjtcblxuZXhwb3J0IGNvbnN0IFRoID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJ0aFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+KCkpLFxuKTtcblxuZXhwb3J0IHR5cGUgVGhQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBUaD47XG5cbmV4cG9ydCBjb25zdCBUZCA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwidGRcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxUYWJsZUNlbGxFbGVtZW50PigpKSxcbik7XG5cbmV4cG9ydCB0eXBlIFRkUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVGQ+O1xuXG5leHBvcnQgY29uc3QgVHIgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRyXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGFibGVSb3dFbGVtZW50PigpKSxcbik7XG5cbmV4cG9ydCB0eXBlIFRyUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVHI+O1xuXG5leHBvcnQgY29uc3QgVGFibGUgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRhYmxlXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGFibGVFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBUYWJsZVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFRhYmxlPjtcblxuZXhwb3J0IGNvbnN0IFRCb2R5ID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJ0Ym9keVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIFRCb2R5UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVEJvZHk+O1xuXG5leHBvcnQgY29uc3QgRGlhbG9nID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJkaWFsb2dcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxEaWFsb2dFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBEaWFsb2dQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBEaWFsb2c+O1xuXG5leHBvcnQgY29uc3QgQ2FudmFzID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJjYW52YXNcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxDYW52YXNFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBDYW52YXNQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBDYW52YXM+O1xuXG5leHBvcnQgY29uc3QgSW1nID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImltZ1wiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEltYWdlRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSW1nUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSW1nPjtcblxuLyogYzggaWdub3JlIGVuZCAqL1xuIiwgImltcG9ydCBmbGV4U3R5bGVzIGZyb20gXCIuL2ZsZXgubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBIb3Jpem9udGFsRmxleFByb3BzID0ge1xuICBkaXJlY3Rpb24/OiBcImhvcml6b250YWxcIiB8IFwiaG9yaXpvbnRhbC1yZXZlcnNlZFwiO1xuXG4gIGhvcml6b250YWxBbGlnbj86IFwiY2VudGVyXCIgfCBcInNwYWNlLWJldHdlZW5cIiB8IFwic3BhY2UtYXJvdW5kXCIgfCBcImxlZnRcIiB8IFwicmlnaHRcIjtcbiAgdmVydGljYWxBbGlnbj86IFwiY2VudGVyXCIgfCBcInN0cmV0Y2hcIiB8IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxuZXhwb3J0IHR5cGUgVmVydGljYWxGbGV4UHJvcHMgPSB7XG4gIGRpcmVjdGlvbj86IFwidmVydGljYWxcIiB8IFwidmVydGljYWwtcmV2ZXJzZWRcIjtcblxuICBob3Jpem9udGFsQWxpZ24/OiBcImNlbnRlclwiIHwgXCJzdHJldGNoXCIgfCBcImxlZnRcIiB8IFwicmlnaHRcIjtcbiAgdmVydGljYWxBbGlnbj86IFwiY2VudGVyXCIgfCBcInNwYWNlLWJldHdlZW5cIiB8IFwic3BhY2UtYXJvdW5kXCIgfCBcInRvcFwiIHwgXCJib3R0b21cIjtcbn07XG5cbmV4cG9ydCB0eXBlIE1heGltYWxGbGV4UHJvcHMgPSAoSG9yaXpvbnRhbEZsZXhQcm9wcyB8IFZlcnRpY2FsRmxleFByb3BzKSAmIHtcbiAgZ2FwPzogVFNoaXJ0U2l6ZSB8IHsgcm93PzogVFNoaXJ0U2l6ZTsgY29sdW1uPzogVFNoaXJ0U2l6ZSB9O1xuICB3cmFwPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFNpbXBsZUZsZXhQcm9wID0gYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgRmxleFBsdWdpblByb3BzID0geyAkZmxleD86IFNpbXBsZUZsZXhQcm9wIHwgTWF4aW1hbEZsZXhQcm9wcyB9O1xuXG5leHBvcnQgY29uc3QgZmxleFBsdWdpbiA9IGdldFBsdWdpbjxGbGV4UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGZsZXggfSA9IHByb3BzO1xuXG4gIGlmICghJGZsZXgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJGZsZXg6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGRpcmVjdGlvbiA9IFwiaG9yaXpvbnRhbFwiLFxuICAgIHZlcnRpY2FsQWxpZ24gPSBcIlwiLFxuICAgIGhvcml6b250YWxBbGlnbiA9IFwiXCIsXG4gICAgZ2FwID0gdW5kZWZpbmVkLFxuICAgIHdyYXAsXG4gIH0gPSAkZmxleCA9PT0gdHJ1ZSA/IHt9IDogJGZsZXg7XG5cbiAgY29uc3QgaG9yaXpvbnRhbEFsaWduUHJvcHMgPSB7XG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLXN0cmV0Y2hgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwic3RyZXRjaFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwiY2VudGVyXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLWZsZXhTdGFydGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJ0b3BcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tZmxleEVuZGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJib3R0b21cIixcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJzcGFjZS1hcm91bmRcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQmV0d2VlbmBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInNwYWNlLWJldHdlZW5cIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLXN0cmV0Y2hgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJzdHJldGNoXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJjZW50ZXJcIixcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleFN0YXJ0YF1dOlxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJob3Jpem9udGFsXCIgJiYgaG9yaXpvbnRhbEFsaWduID09PSBcImxlZnRcIikgfHxcbiAgICAgIChkaXJlY3Rpb24gPT09IFwiaG9yaXpvbnRhbC1yZXZlcnNlZFwiICYmIGhvcml6b250YWxBbGlnbiA9PT0gXCJyaWdodFwiKSxcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleEVuZGBdXTpcbiAgICAgIChkaXJlY3Rpb24gPT09IFwiaG9yaXpvbnRhbFwiICYmIGhvcml6b250YWxBbGlnbiA9PT0gXCJyaWdodFwiKSB8fFxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJob3Jpem9udGFsLXJldmVyc2VkXCIgJiYgaG9yaXpvbnRhbEFsaWduID09PSBcImxlZnRcIiksXG4gIH07XG5cbiAgY29uc3QgdmVydGljYWxBbGlnblByb3BzID0ge1xuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwic3BhY2UtYXJvdW5kXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUJldHdlZW5gXV06IHZlcnRpY2FsQWxpZ24gPT09IFwic3BhY2UtYmV0d2VlblwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3RyZXRjaGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJzdHJldGNoXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwiY2VudGVyXCIsXG5cbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhTdGFydGBdXTpcbiAgICAgIChkaXJlY3Rpb24gPT09IFwidmVydGljYWxcIiAmJiB2ZXJ0aWNhbEFsaWduID09PSBcInRvcFwiKSB8fFxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJ2ZXJ0aWNhbC1yZXZlcnNlZFwiICYmIHZlcnRpY2FsQWxpZ24gPT09IFwiYm90dG9tXCIpLFxuXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4RW5kYF1dOlxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiICYmIHZlcnRpY2FsQWxpZ24gPT09IFwiYm90dG9tXCIpIHx8XG4gICAgICAoZGlyZWN0aW9uID09PSBcInZlcnRpY2FsLXJldmVyc2VkXCIgJiYgdmVydGljYWxBbGlnbiA9PT0gXCJ0b3BcIiksXG5cbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tc3RyZXRjaGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInN0cmV0Y2hcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tY2VudGVyYF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwiY2VudGVyXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLWZsZXhTdGFydGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcImxlZnRcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tZmxleEVuZGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInJpZ2h0XCIsXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBmbGV4U3R5bGVzLmZsZXgsXG4gICAgICBmbGV4U3R5bGVzW2BmbGV4X19kaXJlY3Rpb24tLSR7ZGlyZWN0aW9ufWBdLFxuXG4gICAgICBbXCJob3Jpem9udGFsXCIsIFwiaG9yaXpvbnRhbC1yZXZlcnNlZFwiXS5pbmNsdWRlcyhkaXJlY3Rpb24pID8gaG9yaXpvbnRhbEFsaWduUHJvcHMgOiB2ZXJ0aWNhbEFsaWduUHJvcHMsXG5cbiAgICAgIHR5cGVvZiBnYXAgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBmbGV4U3R5bGVzW2BmbGV4X19nYXAtLSR7Z2FwfWBdXG4gICAgICAgIDogZ2FwXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIGdhcC5jb2x1bW4gPyBmbGV4U3R5bGVzW2BmbGV4X19nYXAtLWNvbHVtbi0tJHtnYXAuY29sdW1ufWBdIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBnYXAucm93ID8gZmxleFN0eWxlc1tgZmxleF9fZ2FwLS1yb3ctLSR7Z2FwLnJvd31gXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHdyYXAgJiYgZmxleFN0eWxlc1tgZmxleF9fd3JhcC0td3JhcGBdLFxuXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIF0sXG5cbiAgICAkZmxleDogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IGdyaWRTdHlsZXMgZnJvbSBcIi4vZ3JpZC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbmV4cG9ydCB0eXBlIEdyaWRDb2x1bW5zID0gMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xuXG5leHBvcnQgdHlwZSBHcmlkUHJvcHMgPSB7XG4gIGNvbHVtbnM6IEdyaWRDb2x1bW5zO1xuICBnYXA/OiBUU2hpcnRTaXplIHwgeyByb3c/OiBUU2hpcnRTaXplOyBjb2x1bW4/OiBUU2hpcnRTaXplIH07XG4gIGFsaWduSXRlbXM/OiBcInN0cmV0Y2hcIiB8IFwiY2VudGVyXCIgfCBcInN0YXJ0XCIgfCBcImVuZFwiO1xufTtcblxuZXhwb3J0IHR5cGUgR3JpZFBsdWdpblByb3BzID0geyAkZ3JpZD86IEdyaWRQcm9wcyB9O1xuXG5leHBvcnQgY29uc3QgZ3JpZFBsdWdpbiA9IGdldFBsdWdpbjxHcmlkUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGdyaWQgfSA9IHByb3BzO1xuXG4gIGlmICghJGdyaWQpIHtcbiAgICByZXR1cm4geyAkZ3JpZDogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCB7IGNvbHVtbnMsIGdhcCwgYWxpZ25JdGVtcyB9ID0gJGdyaWQ7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBncmlkU3R5bGVzLmdyaWQsXG4gICAgICBncmlkU3R5bGVzW2BncmlkX19jb2x1bW5zLS0ke2NvbHVtbnN9YF0sXG4gICAgICBhbGlnbkl0ZW1zID8gZ3JpZFN0eWxlc1tgZ3JpZF9fYWxpZ25JdGVtcy0tJHthbGlnbkl0ZW1zfWBdIDogdW5kZWZpbmVkLFxuXG4gICAgICB0eXBlb2YgZ2FwID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gZ3JpZFN0eWxlc1tgZ3JpZF9fZ2FwLS0ke2dhcH1gXVxuICAgICAgICA6IGdhcFxuICAgICAgICAgID8gW1xuICAgICAgICAgICAgICBnYXAuY29sdW1uID8gZ3JpZFN0eWxlc1tgZ3JpZF9fZ2FwLS1jb2x1bW4tLSR7Z2FwLmNvbHVtbn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgZ2FwLnJvdyA/IGdyaWRTdHlsZXNbYGdyaWRfX2dhcC0tcm93LS0ke2dhcC5yb3d9YF0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG5cbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgXSxcblxuICAgICRncmlkOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgd2lkdGhTdHlsZXMgZnJvbSBcIi4vd2lkdGgubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBzdHlsZVBsdWdpbiB9IGZyb20gXCIuLi9zdHlsZS9zdHlsZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG4vKiogQSBzaGFyZSBvZiB0aGUgcGFyZW50J3Mgd2lkdGgsIGUuZy4gYFwiMzAlXCJgLCBmb3IgbGF5b3V0cyB0aGF0IGRpdmlkZSBhIHJvdyByYXRoZXIgdGhhbiBzaXplIGEgYm94LiAqL1xuZXhwb3J0IHR5cGUgUGVyY2VudGFnZSA9IGAke251bWJlcn0lYDtcblxuZXhwb3J0IHR5cGUgJFdpZHRoUHJvcHMgPSB7XG4gIHdpZHRoPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJzdHJldGNoXCIgfCBQZXJjZW50YWdlO1xuICBtaW4/OiBUU2hpcnRTaXplIHwgXCJmaXRcIiB8IFBlcmNlbnRhZ2U7XG4gIG1heD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwiY29udGVudFwiIHwgUGVyY2VudGFnZTtcbn07XG5cbmV4cG9ydCB0eXBlIFdpZHRoUGx1Z2luUHJvcHMgPSB7ICR3aWR0aD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwic3RyZXRjaFwiIHwgUGVyY2VudGFnZSB8ICRXaWR0aFByb3BzIH07XG5cbmNvbnN0IGlzUGVyY2VudGFnZSA9ICh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdmFsdWUgaXMgUGVyY2VudGFnZSA9PiB2YWx1ZT8uZW5kc1dpdGgoXCIlXCIpID09PSB0cnVlO1xuXG5leHBvcnQgY29uc3Qgd2lkdGhQbHVnaW4gPSBnZXRQbHVnaW48V2lkdGhQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW4sIHR5cGVvZiBzdHlsZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICR3aWR0aCwgJGNsYXNzTmFtZSwgJHN0eWxlIH0gPSBwcm9wcztcbiAgY29uc3QgeyB3aWR0aCwgbWluLCBtYXggfSA9IHR5cGVvZiAkd2lkdGggPT09IFwic3RyaW5nXCIgPyB7IHdpZHRoOiAkd2lkdGggfSA6ICgkd2lkdGggPz8ge30pO1xuICBjb25zdCBwZXJjZW50YWdlcyA9IHtcbiAgICAuLi4oaXNQZXJjZW50YWdlKHdpZHRoKSA/IHsgd2lkdGggfSA6IHt9KSxcbiAgICAuLi4oaXNQZXJjZW50YWdlKG1pbikgPyB7IG1pbldpZHRoOiBtaW4gfSA6IHt9KSxcbiAgICAuLi4oaXNQZXJjZW50YWdlKG1heCkgPyB7IG1heFdpZHRoOiBtYXggfSA6IHt9KSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIHdpZHRoICYmICFpc1BlcmNlbnRhZ2Uod2lkdGgpID8gd2lkdGhTdHlsZXNbYHdpZHRoLS0ke3dpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgICAgbWluICYmICFpc1BlcmNlbnRhZ2UobWluKSA/IHdpZHRoU3R5bGVzW2BtaW4td2lkdGgtLSR7bWlufWBdIDogdW5kZWZpbmVkLFxuICAgICAgbWF4ICYmICFpc1BlcmNlbnRhZ2UobWF4KSA/IHdpZHRoU3R5bGVzW2BtYXgtd2lkdGgtLSR7bWF4fWBdIDogdW5kZWZpbmVkLFxuICAgICAgJGNsYXNzTmFtZSxcbiAgICBdLFxuICAgICRzdHlsZTogT2JqZWN0LmtleXMocGVyY2VudGFnZXMpLmxlbmd0aCA+IDAgPyB7IC4uLiRzdHlsZSwgLi4ucGVyY2VudGFnZXMgfSA6ICRzdHlsZSxcbiAgICAkd2lkdGg6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuXG5leHBvcnQgdHlwZSBTdHlsZVBsdWdpblByb3BzID0geyAkc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzOyBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXMgfTtcblxuZXhwb3J0IGNvbnN0IHN0eWxlUGx1Z2luID0gZ2V0UGx1Z2luPFN0eWxlUGx1Z2luUHJvcHM+KChwcm9wcykgPT4ge1xuICAvKiBjOCBpZ25vcmUgbmV4dCAqL1xuICBjb25zdCAkc3R5bGUgPSBwcm9wcy4kc3R5bGUgfHwge307XG5cbiAgY29uc3Qgc3R5bGUgPSBwcm9wcy5zdHlsZSB8fCB7fTtcblxuICByZXR1cm4ge1xuICAgIHN0eWxlOiB7IC4uLiRzdHlsZSwgLi4uc3R5bGUgfSxcbiAgICAkc3R5bGU6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCBoZWlnaHRTdHlsZXMgZnJvbSBcIi4vaGVpZ2h0Lm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB0eXBlIHsgc3R5bGVQbHVnaW4gfSBmcm9tIFwiLi4vc3R5bGUvc3R5bGVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcbmltcG9ydCB0eXBlIHsgUGVyY2VudGFnZSB9IGZyb20gXCIuLi93aWR0aC93aWR0aFwiO1xuXG5leHBvcnQgdHlwZSAkSGVpZ2h0UHJvcHMgPSB7XG4gIGhlaWdodD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwic3RyZXRjaFwiIHwgXCJhdXRvXCIgfCBQZXJjZW50YWdlO1xuICBtaW4/OiBUU2hpcnRTaXplIHwgUGVyY2VudGFnZTtcbiAgbWF4PzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgUGVyY2VudGFnZTtcbn07XG5cbmV4cG9ydCB0eXBlIEhlaWdodFBsdWdpblByb3BzID0geyAkaGVpZ2h0PzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJhdXRvXCIgfCBcInN0cmV0Y2hcIiB8IFBlcmNlbnRhZ2UgfCAkSGVpZ2h0UHJvcHMgfTtcblxuY29uc3QgaXNQZXJjZW50YWdlID0gKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2YWx1ZSBpcyBQZXJjZW50YWdlID0+IHZhbHVlPy5lbmRzV2l0aChcIiVcIikgPT09IHRydWU7XG5cbmV4cG9ydCBjb25zdCBoZWlnaHRQbHVnaW4gPSBnZXRQbHVnaW48SGVpZ2h0UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luLCB0eXBlb2Ygc3R5bGVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkaGVpZ2h0LCAkc3R5bGUgfSA9IHByb3BzO1xuICBjb25zdCB7IGhlaWdodCwgbWluLCBtYXggfSA9IHR5cGVvZiAkaGVpZ2h0ID09PSBcInN0cmluZ1wiID8geyBoZWlnaHQ6ICRoZWlnaHQgfSA6ICgkaGVpZ2h0ID8/IHt9KTtcbiAgY29uc3QgcGVyY2VudGFnZXMgPSB7XG4gICAgLi4uKGlzUGVyY2VudGFnZShoZWlnaHQpID8geyBoZWlnaHQgfSA6IHt9KSxcbiAgICAuLi4oaXNQZXJjZW50YWdlKG1pbikgPyB7IG1pbkhlaWdodDogbWluIH0gOiB7fSksXG4gICAgLi4uKGlzUGVyY2VudGFnZShtYXgpID8geyBtYXhIZWlnaHQ6IG1heCB9IDoge30pLFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgaGVpZ2h0ICYmICFpc1BlcmNlbnRhZ2UoaGVpZ2h0KSA/IGhlaWdodFN0eWxlc1tgaGVpZ2h0LS0ke2hlaWdodH1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIG1pbiAmJiAhaXNQZXJjZW50YWdlKG1pbikgPyBoZWlnaHRTdHlsZXNbYG1pbi1oZWlnaHQtLSR7bWlufWBdIDogdW5kZWZpbmVkLFxuICAgICAgbWF4ICYmICFpc1BlcmNlbnRhZ2UobWF4KSA/IGhlaWdodFN0eWxlc1tgbWF4LWhlaWdodC0tJHttYXh9YF0gOiB1bmRlZmluZWQsXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIF0sXG4gICAgJHN0eWxlOiBPYmplY3Qua2V5cyhwZXJjZW50YWdlcykubGVuZ3RoID4gMCA/IHsgLi4uJHN0eWxlLCAuLi5wZXJjZW50YWdlcyB9IDogJHN0eWxlLFxuICAgICRoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgY29sb3JTdHlsZXMgZnJvbSBcIi4vY29sb3IubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tIFwiLi4vX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUgVGV4dENvbG9yID0gQ29sb3IgfCBUZXh0Q29sb3JBbGlhcztcblxuZXhwb3J0IHR5cGUgJENvbG9yUHJvcHMgPSB7XG4gIHJlYWRvbmx5IG5vcm1hbD86IFRleHRDb2xvcjtcbiAgcmVhZG9ubHkgaG92ZXI/OiBUZXh0Q29sb3I7XG4gIHJlYWRvbmx5IGZvY3VzPzogVGV4dENvbG9yO1xuICByZWFkb25seSBkaXNhYmxlZD86IFRleHRDb2xvcjtcbn07XG5cbmV4cG9ydCB0eXBlIENvbG9yUGx1Z2luUHJvcHMgPSB7IHJlYWRvbmx5ICRjb2xvcj86IFRleHRDb2xvciB8ICRDb2xvclByb3BzIH07XG5leHBvcnQgdHlwZSBUZXh0Q29sb3JBbGlhcyA9IGtleW9mIHR5cGVvZiBhbGlhc1RvTm9taW5hbDtcblxuY29uc3QgYWxpYXNUb05vbWluYWwgPSB7XG4gIHRleHRNdXRlZDogXCJncmV5MjVcIixcbiAgdGV4dERlZmF1bHQ6IFwiZ3JleTIwXCIsXG4gIHRleHRIaWdobGlnaHQ6IFwiZ3JleTEwXCIsXG59IGFzIGNvbnN0O1xuXG5jb25zdCBpc1RleHRDb2xvckFsaWFzID0gKGNvbG9yOiBUZXh0Q29sb3IpOiBjb2xvciBpcyBUZXh0Q29sb3JBbGlhcyA9PiBjb2xvciBpbiBhbGlhc1RvTm9taW5hbDtcblxuZXhwb3J0IGNvbnN0IGNvbG9yUGx1Z2luID0gZ2V0UGx1Z2luPENvbG9yUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGNsYXNzTmFtZSwgJGNvbG9yIH0gPSBwcm9wcztcbiAgY29uc3QgeyBub3JtYWwsIGhvdmVyLCBmb2N1cywgZGlzYWJsZWQgfSA9IHR5cGVvZiAkY29sb3IgPT09IFwic3RyaW5nXCIgPyB7IG5vcm1hbDogJGNvbG9yIH0gOiAoJGNvbG9yID8/IHt9KTtcblxuICBjb25zdCBub3JtYWxDb2xvciA9IG5vcm1hbCA/IChpc1RleHRDb2xvckFsaWFzKG5vcm1hbCkgPyBhbGlhc1RvTm9taW5hbFtub3JtYWxdIDogbm9ybWFsKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgaG92ZXJDb2xvciA9IGhvdmVyID8gKGlzVGV4dENvbG9yQWxpYXMoaG92ZXIpID8gYWxpYXNUb05vbWluYWxbaG92ZXJdIDogaG92ZXIpIDogdW5kZWZpbmVkO1xuICBjb25zdCBmb2N1c0NvbG9yID0gZm9jdXMgPyAoaXNUZXh0Q29sb3JBbGlhcyhmb2N1cykgPyBhbGlhc1RvTm9taW5hbFtmb2N1c10gOiBmb2N1cykgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGRpc2FibGVkQ29sb3IgPSBkaXNhYmxlZCA/IChpc1RleHRDb2xvckFsaWFzKGRpc2FibGVkKSA/IGFsaWFzVG9Ob21pbmFsW2Rpc2FibGVkXSA6IGRpc2FibGVkKSA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgICRjbGFzc05hbWUsXG4gICAgICBub3JtYWxDb2xvciA/IGNvbG9yU3R5bGVzW2Bjb2xvci0tJHtub3JtYWxDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGhvdmVyQ29sb3IgPyBjb2xvclN0eWxlc1tgY29sb3ItaG92ZXItLSR7aG92ZXJDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGZvY3VzQ29sb3IgPyBjb2xvclN0eWxlc1tgY29sb3ItZm9jdXMtLSR7Zm9jdXNDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGRpc2FibGVkQ29sb3IgPyBjb2xvclN0eWxlc1tgY29sb3ItZGlzYWJsZWQtLSR7ZGlzYWJsZWRDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICBdLFxuICAgICRjb2xvcjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBncmFkaWVudFN0eWxlcyBmcm9tIFwiLi9ncmFkaWVudC5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBHcmFkaWVudFBsdWdpblByb3BzID0geyAkZ3JhZGllbnQ/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBncmFkaWVudFBsdWdpbiA9IGdldFBsdWdpbjxHcmFkaWVudFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHByb3BzLiRncmFkaWVudCA/IGdyYWRpZW50U3R5bGVzLmdyYWRpZW50IDogdW5kZWZpbmVkXSxcbiAgJGdyYWRpZW50OiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IERyYWdnYWJsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgeyBhY3Rpb24gfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9kcmFnZ2FibGUubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBkcmFnZ2FibGVQbHVnaW4gPSBnZXRQbHVnaW48RHJhZ2dhYmxlUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGRyYWdnYWJsZSkge1xuICAgIHJldHVybiB7ICRkcmFnZ2FibGU6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgW2RyYWdnaW5nLCBzZXREcmFnZ2luZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBjb250ZXh0LCBpdGVtIH0gPSBwcm9wcy4kZHJhZ2dhYmxlO1xuXG4gIGNvbnN0IGRyYWdnZWRJdGVtU3RhdGUgPSB1c2VTeW5jSW5qZWN0KGRyYWdnZWRJdGVtU3RhdGVJbmplY3RhYmxlLCBjb250ZXh0KTtcblxuICByZXR1cm4ge1xuICAgIGRyYWdnYWJsZTogdHJ1ZSxcblxuICAgICR2aXN1YWxseUhpZGRlbjogZHJhZ2dpbmcsXG5cbiAgICBvbkRyYWdTdGFydDogYWN0aW9uKChldmVudDogUmVhY3QuRHJhZ0V2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSBcIm1vdmVcIjtcblxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgcHJvcHMub25EcmFnU3RhcnQ/LihldmVudCk7XG5cbiAgICAgIG1ha2VDaHJvbWl1bU5vdEdsaXRjaFdoZW5EcmFnZ2luZyhldmVudCk7XG5cbiAgICAgIGRyYWdnZWRJdGVtU3RhdGUuc2V0KGl0ZW0pO1xuXG4gICAgICAvLyBEb24ndCBzZXQgZHJhZ2dpbmcgdG9vIGVhcmx5LCBiZWNhdXNlIGl0IHdvdWxkIGhpZGUgdGhlIFwiZHJhZyBwcmV2aWV3XCIgZm9yIGVsZW1lbnQgYmVpbmcgZHJhZ2dlZC5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzZXREcmFnZ2luZyh0cnVlKTtcbiAgICAgIH0sIDApO1xuICAgIH0pLFxuXG4gICAgb25EcmFnRW5kOiBhY3Rpb24oKGV2ZW50OiBSZWFjdC5EcmFnRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBwcm9wcy5vbkRyYWdFbmQ/LihldmVudCk7XG5cbiAgICAgIGRyYWdnZWRJdGVtU3RhdGUuc2V0KHVuZGVmaW5lZCk7XG4gICAgICBzZXREcmFnZ2luZyhmYWxzZSk7XG4gICAgfSksXG5cbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgc3R5bGVzLmRyYWdnYWJsZV0sXG5cbiAgICAkZHJhZ2dhYmxlOiB1bmRlZmluZWQsXG4gIH07XG59KTtcblxuY29uc3QgbWFrZUNocm9taXVtTm90R2xpdGNoV2hlbkRyYWdnaW5nID0gKGV2ZW50OiBSZWFjdC5EcmFnRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFwidGV4dC9wbGFpblwiLCBcInN0dWItZGF0YS10by1maXgtY2hyb21pdW1cIik7XG59O1xuIiwgImltcG9ydCB7IGRyYWdnZWRJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9kcmFnZ2VkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7IG1ha2VTdXJlRHJhZ0FuZERyb3BFdmVudHNIYXZlVGltZVRvSGFwcGVuSW5qZWN0YWJsZSB9IGZyb20gXCIuL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgRHJvcHBhYmxlUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9nZXQtZHJhZ2dhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IGRyb3BwYWJsZVBsdWdpbiA9IGdldFBsdWdpbjxEcm9wcGFibGVQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGRyb3BwYWJsZSkge1xuICAgIHJldHVybiB7ICRkcm9wcGFibGU6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgeyBjb250ZXh0LCBvbkRyb3AgfSA9IHByb3BzLiRkcm9wcGFibGU7XG5cbiAgY29uc3QgZHJhZ2dlZEl0ZW1TdGF0ZSA9IHVzZVN5bmNJbmplY3QoZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUsIGNvbnRleHQpO1xuICBjb25zdCBzb21lID0gdXNlU3luY0luamVjdChtYWtlU3VyZURyYWdBbmREcm9wRXZlbnRzSGF2ZVRpbWVUb0hhcHBlbkluamVjdGFibGUpO1xuXG4gIGNvbnN0IGRyYWdnZWRJdGVtID0gZHJhZ2dlZEl0ZW1TdGF0ZS5nZXQoKTtcblxuICByZXR1cm4ge1xuICAgIG9uRHJhZ092ZXI6IChldmVudDogUmVhY3QuRHJhZ0V2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgcHJvcHMub25EcmFnT3Zlcj8uKGV2ZW50KTtcblxuICAgICAgaWYgKGRyYWdnZWRJdGVtKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIG9uRHJvcDogKGV2ZW50OiBSZWFjdC5EcmFnRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBwcm9wcy5vbkRyb3A/LihldmVudCk7XG5cbiAgICAgIGlmIChkcmFnZ2VkSXRlbSkge1xuICAgICAgICBzb21lKCgpID0+IHtcbiAgICAgICAgICBvbkRyb3AoZHJhZ2dlZEl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgJGRyb3BwYWJsZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0cmFuc2l0aW9uU3R5bGVzIGZyb20gXCIuL3RyYW5zaXRpb24ubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgVHJhbnNpdGlvblBsdWdpblByb3BzID0geyAkdHJhbnNpdGlvbj86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zaXRpb25QbHVnaW4gPSBnZXRQbHVnaW48VHJhbnNpdGlvblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHsgW3RyYW5zaXRpb25TdHlsZXMudHJhbnNpdGlvbl06ICEhcHJvcHMuJHRyYW5zaXRpb24gfV0sXG4gICR0cmFuc2l0aW9uOiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBvZmZzZXRTdHlsZXMgZnJvbSBcIi4vb2Zmc2V0Lm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IERpcmVjdGlvbiB9IGZyb20gXCIuLi9fc2hhcmVkL2RpcmVjdGlvbnNcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbmV4cG9ydCB0eXBlIE9mZnNldFBsdWdpblByb3BzID0geyAkb2Zmc2V0PzogeyBkaXJlY3Rpb246IERpcmVjdGlvbjsgc2l6ZTogVFNoaXJ0U2l6ZSB9IH07XG5cbmV4cG9ydCBjb25zdCBvZmZzZXRQbHVnaW4gPSBnZXRQbHVnaW48T2Zmc2V0UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJG9mZnNldCkge1xuICAgIHJldHVybiB7ICRvZmZzZXQ6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgb2Zmc2V0U3R5bGVzW2BvZmZzZXRfXyR7cHJvcHMuJG9mZnNldC5kaXJlY3Rpb259LS0ke3Byb3BzLiRvZmZzZXQuc2l6ZX1gXV0sXG5cbiAgICAkb2Zmc2V0OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IG9mZnNldFN0eWxlcyBmcm9tIFwiLi9vZmZzZXQtY2hpbGRyZW4ubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgRGlyZWN0aW9uIH0gZnJvbSBcIi4uL19zaGFyZWQvZGlyZWN0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgT2Zmc2V0Q2hpbGRyZW5QbHVnaW5Qcm9wcyA9IHsgJG9mZnNldENoaWxkcmVuPzogeyBkaXJlY3Rpb246IERpcmVjdGlvbjsgc2l6ZTogVFNoaXJ0U2l6ZSB9IH07XG5cbmV4cG9ydCBjb25zdCBvZmZzZXRDaGlsZHJlblBsdWdpbiA9IGdldFBsdWdpbjxPZmZzZXRDaGlsZHJlblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRvZmZzZXRDaGlsZHJlbikge1xuICAgIHJldHVybiB7ICRvZmZzZXRDaGlsZHJlbjogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgICBvZmZzZXRTdHlsZXNbYG9mZnNldC1jaGlsZHJlbl9fJHtwcm9wcy4kb2Zmc2V0Q2hpbGRyZW4uZGlyZWN0aW9ufS0tJHtwcm9wcy4kb2Zmc2V0Q2hpbGRyZW4uc2l6ZX1gXSxcbiAgICBdLFxuXG4gICAgJG9mZnNldENoaWxkcmVuOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IGhpZGRlblN0eWxlcyBmcm9tIFwiLi9oaWRkZW4ubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgSGlkZGVuUGx1Z2luUHJvcHMgPSB7ICRoaWRkZW4/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBoaWRkZW5QbHVnaW4gPSBnZXRQbHVnaW48SGlkZGVuUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgeyBbaGlkZGVuU3R5bGVzLmhpZGRlbl06ICEhcHJvcHMuJGhpZGRlbiB9XSxcblxuICAkaGlkZGVuOiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBtYXJnaW5TdHlsZXMgZnJvbSBcIi4vbWFyZ2luLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gXCJsb2Rhc2gvZnBcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbmV4cG9ydCB0eXBlIERpcmVjdGlvbmFsTWFyZ2luID0ge1xuICB0b3A/OiBUU2hpcnRTaXplO1xuICBib3R0b20/OiBUU2hpcnRTaXplO1xuICBsZWZ0PzogVFNoaXJ0U2l6ZTtcbiAgcmlnaHQ/OiBUU2hpcnRTaXplO1xuICBob3Jpem9udGFsPzogVFNoaXJ0U2l6ZTtcbiAgdmVydGljYWw/OiBUU2hpcnRTaXplO1xufTtcblxuZXhwb3J0IHR5cGUgTWFyZ2luUGx1Z2luUHJvcHMgPSB7ICRtYXJnaW4/OiBib29sZWFuIHwgRGlyZWN0aW9uYWxNYXJnaW4gfCBUU2hpcnRTaXplIHwgXCJhdXRvXCIgfTtcblxuZXhwb3J0IGNvbnN0IG1hcmdpblBsdWdpbiA9IGdldFBsdWdpbjxNYXJnaW5QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgaWYgKCFwcm9wcy4kbWFyZ2luKSB7XG4gICAgcmV0dXJuIHsgJG1hcmdpbjogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCBtYXJnaW4gPSBwcm9wcy4kbWFyZ2luID09PSB0cnVlID8gXCJ4c1wiIDogcHJvcHMuJG1hcmdpbjtcblxuICBpZiAoaXNTdHJpbmcobWFyZ2luKSkge1xuICAgIHJldHVybiB7XG4gICAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgbWFyZ2luU3R5bGVzW2BtYXJnaW4tLSR7bWFyZ2lufWBdXSxcbiAgICAgICRtYXJnaW46IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgdG9wU2l6ZSA9IG1hcmdpbi50b3AgfHwgbWFyZ2luLnZlcnRpY2FsO1xuICBjb25zdCBib3R0b21TaXplID0gbWFyZ2luLmJvdHRvbSB8fCBtYXJnaW4udmVydGljYWw7XG4gIGNvbnN0IHJpZ2h0U2l6ZSA9IG1hcmdpbi5yaWdodCB8fCBtYXJnaW4uaG9yaXpvbnRhbDtcbiAgY29uc3QgbGVmdFNpemUgPSBtYXJnaW4ubGVmdCB8fCBtYXJnaW4uaG9yaXpvbnRhbDtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgICB0b3BTaXplID8gbWFyZ2luU3R5bGVzW2BtYXJnaW5fX3RvcC0tJHt0b3BTaXplfWBdIDogdW5kZWZpbmVkLFxuICAgICAgcmlnaHRTaXplID8gbWFyZ2luU3R5bGVzW2BtYXJnaW5fX3JpZ2h0LS0ke3JpZ2h0U2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGJvdHRvbVNpemUgPyBtYXJnaW5TdHlsZXNbYG1hcmdpbl9fYm90dG9tLS0ke2JvdHRvbVNpemV9YF0gOiB1bmRlZmluZWQsXG4gICAgICBsZWZ0U2l6ZSA/IG1hcmdpblN0eWxlc1tgbWFyZ2luX19sZWZ0LS0ke2xlZnRTaXplfWBdIDogdW5kZWZpbmVkLFxuICAgIF0sXG4gICAgJG1hcmdpbjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB2aXN1YWxseUhpZGRlblN0eWxlcyBmcm9tIFwiLi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgVmlzdWFsbHlIaWRkZW5QbHVnaW5Qcm9wcyA9IHsgJHZpc3VhbGx5SGlkZGVuPzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgdmlzdWFsbHlIaWRkZW5QbHVnaW4gPSBnZXRQbHVnaW48VmlzdWFsbHlIaWRkZW5QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCB7IFt2aXN1YWxseUhpZGRlblN0eWxlc1tcInZpc3VhbGx5LWhpZGRlblwiXV06ICEhcHJvcHMuJHZpc3VhbGx5SGlkZGVuIH1dLFxuXG4gICR2aXN1YWxseUhpZGRlbjogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgb3ZlcmZsb3dTdHlsZXMgZnJvbSBcIi4vb3ZlcmZsb3cubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgT3ZlcmZsb3cgPSBcImhpZGRlblwiIHwgXCJzY3JvbGxcIiB8IFwiYXV0b1wiIHwgXCJ2aXNpYmxlXCI7XG5cbmV4cG9ydCB0eXBlIE92ZXJmbG93UGx1Z2luUHJvcHMgPSB7ICRvdmVyZmxvdz86IE92ZXJmbG93IHwgeyB4PzogT3ZlcmZsb3c7IHk/OiBPdmVyZmxvdzsgaGlkZVNjcm9sbGJhcj86IGJvb2xlYW4gfSB9O1xuXG5leHBvcnQgY29uc3Qgb3ZlcmZsb3dQbHVnaW4gPSBnZXRQbHVnaW48T3ZlcmZsb3dQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgJG92ZXJmbG93ID0gcHJvcHMuJG92ZXJmbG93O1xuXG4gIGlmICghJG92ZXJmbG93KSB7XG4gICAgcmV0dXJuIHsgJG92ZXJmbG93OiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IHggPSB0eXBlb2YgJG92ZXJmbG93ID09PSBcInN0cmluZ1wiID8gJG92ZXJmbG93IDogJG92ZXJmbG93Lng7XG4gIGNvbnN0IHkgPSB0eXBlb2YgJG92ZXJmbG93ID09PSBcInN0cmluZ1wiID8gJG92ZXJmbG93IDogJG92ZXJmbG93Lnk7XG4gIGNvbnN0IGhpZGVTY3JvbGxiYXIgPSB0eXBlb2YgJG92ZXJmbG93ID09PSBcInN0cmluZ1wiID8gZmFsc2UgOiAkb3ZlcmZsb3cuaGlkZVNjcm9sbGJhcjtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG5cbiAgICAgIHggPyBvdmVyZmxvd1N0eWxlc1tgb3ZlcmZsb3dfX3gtLSR7eH1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIHkgPyBvdmVyZmxvd1N0eWxlc1tgb3ZlcmZsb3dfX3ktLSR7eX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIHsgW292ZXJmbG93U3R5bGVzW1wib3ZlcmZsb3ctLWhpZGUtc2Nyb2xsYmFyXCJdXTogaGlkZVNjcm9sbGJhciB9LFxuICAgIF0sXG5cbiAgICAkb3ZlcmZsb3c6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCBmbGV4Q2hpbGRTdHlsZXMgZnJvbSBcIi4vZmxleC1jaGlsZC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IHN0eWxlUGx1Z2luIH0gZnJvbSBcIi4uL3N0eWxlL3N0eWxlXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuLyoqXG4gKiAtIGB0cnVlYDogc2hhcmUgdGhlIHBhcmVudCdzIHJlbWFpbmluZyBzcGFjZSBlcXVhbGx5IChgZmxleDogMSAxIDBgKS5cbiAqIC0gYFwic2hyaW5rYWJsZVwiYDogYWRkaXRpb25hbGx5IHJlbW92ZSB0aGUgaXRlbSdzIGltcGxpY2l0IGNvbnRlbnQtc2l6ZWRcbiAqICAgbWluaW11bSAoYG1pbi1oZWlnaHQ6IGF1dG9gIC8gYG1pbi13aWR0aDogYXV0b2ApLCBzbyBpdCBjYW4gYWN0dWFsbHkgYmVcbiAqICAgc2l6ZWQgdG8gdGhlIHJlbWFpbmluZyBzcGFjZSBpbiBhIGNvbnN0cmFpbmVkIGxheW91dCBcdTIwMTQgcmVxdWlyZWQgZm9yIGFcbiAqICAgZGVzY2VuZGFudCB0byBzY3JvbGwgaW50ZXJuYWxseSBpbnN0ZWFkIG9mIGluZmxhdGluZyBldmVyeSBhbmNlc3Rvci5cbiAqIC0gYSBudW1iZXI6IGxpa2UgYFwic2hyaW5rYWJsZVwiYCwgYnV0IHRha2luZyB0aGF0IG1hbnkgc2hhcmVzIG9mIHRoZVxuICogICByZW1haW5pbmcgc3BhY2UgaW5zdGVhZCBvZiBvbmUgKGBmbGV4LWdyb3dgKSwgZm9yIHdlaWdodGVkIHNwbGl0cyBiZXR3ZWVuXG4gKiAgIHNpYmxpbmdzLlxuICogLSBgXCJmaXhlZFwiYDogdGhlIG9wcG9zaXRlIFx1MjAxNCBrZWVwIHRoZSBpdGVtJ3Mgb3duIHNpemUgKGBmbGV4LXNocmluazogMGApLFxuICogICBvcHRpbmcgb3V0IG9mIHRoZSBzaHJpbmsgbmVnb3RpYXRpb24gZW50aXJlbHkgKGUuZy4gYSBjb250ZW50LWh1Z2dpbmdcbiAqICAgcGFuZWwgbmV4dCB0byBhIGZpbGxpbmcgb25lKS5cbiAqL1xuZXhwb3J0IHR5cGUgRmxleENoaWxkUGx1Z2luUHJvcHMgPSB7ICRmbGV4Q2hpbGQ/OiBib29sZWFuIHwgbnVtYmVyIHwgXCJzaHJpbmthYmxlXCIgfCBcImZpeGVkXCIgfTtcblxuZXhwb3J0IGNvbnN0IGZsZXhDaGlsZFBsdWdpbiA9IGdldFBsdWdpbjxGbGV4Q2hpbGRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW4sIHR5cGVvZiBzdHlsZVBsdWdpbl0+KFxuICAocHJvcHMpID0+IHtcbiAgICBjb25zdCB3ZWlnaHQgPSB0eXBlb2YgcHJvcHMuJGZsZXhDaGlsZCA9PT0gXCJudW1iZXJcIiA/IHByb3BzLiRmbGV4Q2hpbGQgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2hyaW5rYWJsZSA9IHByb3BzLiRmbGV4Q2hpbGQgPT09IFwic2hyaW5rYWJsZVwiIHx8IHdlaWdodCAhPT0gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICRjbGFzc05hbWU6IFtcbiAgICAgICAgcHJvcHMuJGZsZXhDaGlsZCA9PT0gdHJ1ZSB8fCBzaHJpbmthYmxlID8gZmxleENoaWxkU3R5bGVzW1wiZmxleC1jaGlsZFwiXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgc2hyaW5rYWJsZSA/IGZsZXhDaGlsZFN0eWxlc1tcImZsZXgtY2hpbGQtLXNocmlua2FibGVcIl0gOiB1bmRlZmluZWQsXG4gICAgICAgIHByb3BzLiRmbGV4Q2hpbGQgPT09IFwiZml4ZWRcIiA/IGZsZXhDaGlsZFN0eWxlc1tcImZsZXgtY2hpbGQtLWZpeGVkXCJdIDogdW5kZWZpbmVkLFxuICAgICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgICAgXSxcbiAgICAgICRzdHlsZTogd2VpZ2h0ID09PSB1bmRlZmluZWQgPyBwcm9wcy4kc3R5bGUgOiB7IC4uLnByb3BzLiRzdHlsZSwgZmxleEdyb3c6IHdlaWdodCB9LFxuICAgICAgJGZsZXhDaGlsZDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG4pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgZ3JheXNjYWxlU3R5bGVzIGZyb20gXCIuL2dyYXlzY2FsZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBHcmF5c2NhbGVQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqXG4gICAqIEZ1bGx5IGRlc2F0dXJhdGVzIHRoZSBlbGVtZW50IChgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSlgKSB3aGVuIGB0cnVlYCBcdTIwMTQgc29cbiAgICogZXZlbiBmaXhlZC1jb2xvdXIgY29udGVudCAoZS5nLiBicmFuZCBsb2dvcykgZ3JleXMgb3V0LCBub3QganVzdCB0aGVtZWRcbiAgICogY29sb3Vycy4gQ29tYmluZSB3aXRoIGAkZmFkZWRgIHRvIGRlLWVtcGhhc2lzZSBhbiB1bmF2YWlsYWJsZSBpdGVtLlxuICAgKi9cbiAgJGdyYXlzY2FsZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgZ3JheXNjYWxlUGx1Z2luID0gZ2V0UGx1Z2luPEdyYXlzY2FsZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHByb3BzLiRncmF5c2NhbGUgPyBncmF5c2NhbGVTdHlsZXMuZ3JheXNjYWxlIDogdW5kZWZpbmVkXSxcbiAgJGdyYXlzY2FsZTogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBzdHlsZVBsdWdpbiB9IGZyb20gXCIuLi9zdHlsZS9zdHlsZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0aW50U3R5bGVzIGZyb20gXCIuL3RpbnQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgVGludFBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBlbGVtZW50J3MgKGFuZCBpdHMgZGVzY2VuZGFudHMnKSBTVkcgYGZpbGxgIHRvIHRoaXMgY29sb3VyLCB2aWEgYSBDU1MgY3VzdG9tXG4gICAqIHByb3BlcnR5IFx1MjAxNCBgc3Ryb2tlYCBpcyBsZWZ0IHVudG91Y2hlZCwgc28gc3Ryb2tlZCBkZXRhaWxzIHN1cnZpdmUuIFVubGlrZSBgJGdyYXlzY2FsZWAgKHdoaWNoIG9ubHlcbiAgICogZGVzYXR1cmF0ZXMpIHRoaXMgcGFpbnRzIHRoZSBzaGFwZSBhbiBleGFjdCBmbGF0IGNvbG91ciB3aGlsZSByZXNwZWN0aW5nIHRyYW5zcGFyZW5jeSwgc28gYVxuICAgKiBmaXhlZC1jb2xvdXIgYnJhbmQgbWFyayBjYW4gYmUgdGludGVkIChlLmcuIGFuIEFJLXRvb2wgbG9nbyB0aW50ZWQgdG8gdGhlIGNsdXN0ZXIgY29sb3VyKS4gTGVhdmVcbiAgICogdW5zZXQgdG8gcmVuZGVyIHRoZSBlbGVtZW50J3MgbmF0dXJhbCBjb2xvdXJzLlxuICAgKi9cbiAgJHRpbnQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3QgdGludFBsdWdpbiA9IGdldFBsdWdpbjxUaW50UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luLCB0eXBlb2Ygc3R5bGVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwcm9wcy4kdGludCA/IHRpbnRTdHlsZXMudGludCA6IHVuZGVmaW5lZF0sXG4gIC8vIFRoZSB0aW50IGNvbG91ciBpcyBleHBvc2VkIGFzIGEgY3VzdG9tIHByb3BlcnR5IHRoZSBgLnRpbnRgIGNsYXNzIHJlYWRzIChgZmlsbDogdmFyKC0tZWxlbWVudC10aW50KWApLlxuICAkc3R5bGU6IHByb3BzLiR0aW50ID8gKHsgLi4ucHJvcHMuJHN0eWxlLCBcIi0tZWxlbWVudC10aW50XCI6IHByb3BzLiR0aW50IH0gYXMgUmVhY3QuQ1NTUHJvcGVydGllcykgOiBwcm9wcy4kc3R5bGUsXG4gICR0aW50OiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBmYWRlZFN0eWxlcyBmcm9tIFwiLi9mYWRlZC5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBGYWRlZFBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogRmFkZXMgdGhlIGVsZW1lbnQgKGBvcGFjaXR5OiA1MCVgKSB3aGVuIGB0cnVlYC4gQ29tYmluZSB3aXRoIGAkZ3JheXNjYWxlYFxuICAgKiB0byBkZS1lbXBoYXNpc2UgYW4gdW5hdmFpbGFibGUgaXRlbS5cbiAgICovXG4gICRmYWRlZD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgZmFkZWRQbHVnaW4gPSBnZXRQbHVnaW48RmFkZWRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwcm9wcy4kZmFkZWQgPyBmYWRlZFN0eWxlcy5mYWRlZCA6IHVuZGVmaW5lZF0sXG4gICRmYWRlZDogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMsIHR5cGUgQ29udHJpYnV0ZVJlZiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB0eXBlIHsgSU9ic2VydmFibGVWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyB1c2VVcGRhdGVXaGVuUHJvcHNDaGFuZ2UgfSBmcm9tIFwiLi9fcHJpdmF0ZS91c2UtdXBkYXRlLXdoZW4tcHJvcHMtY2hhbmdlXCI7XG5pbXBvcnQgeyB1c2VDbGVhbnVwT25Vbm1vdW50IH0gZnJvbSBcIi4vX3ByaXZhdGUvdXNlLWNsZWFudXAtb24tdW5tb3VudFwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgeyB1c2VLZXlib2FyZE5hdmlnYXRpb24gfSBmcm9tIFwiLi9fcHJpdmF0ZS91c2Uta2V5Ym9hcmQtbmF2aWdhdGlvblwiO1xuaW1wb3J0IHsgaGFuZGxlRm9jdXNGb3IgfSBmcm9tIFwiLi9fcHJpdmF0ZS9oYW5kbGUtZm9jdXNcIjtcbmltcG9ydCB7IGhhbmRsZUJsdXJGb3IgfSBmcm9tIFwiLi9fcHJpdmF0ZS9oYW5kbGUtYmx1clwiO1xuaW1wb3J0IHsgdXNlUHJvZ3JhbW1hdGljRm9jdXNpbmcgfSBmcm9tIFwiLi9fcHJpdmF0ZS91c2UtcHJvZ3JhbW1hdGljLWZvY3VzaW5nXCI7XG5pbXBvcnQgdHlwZSB7IHJlZlBsdWdpbiB9IGZyb20gXCIuLi9yZWYvcmVmXCI7XG5cbmV4cG9ydCB0eXBlIEZvY3VzYWJsZVBsdWdpblByb3BzPFQsIEZvY3VzZWRJdGVtID0gYW55PiA9IHtcbiAgJGZvY3VzYWJsZT86IHtcbiAgICBjb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPjtcbiAgICBpdGVtOiBGb2N1c2VkSXRlbTtcbiAgICBvcmRlck51bWJlcj86IG51bWJlcjtcbiAgfTtcblxuICBvbkZvY3VzPzogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8VD47XG4gIG9uQmx1cj86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPFQ+O1xuICBvbktleURvd24/OiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxUPjtcbiAgdGFiSW5kZXg/OiBIVE1MRWxlbWVudFtcInRhYkluZGV4XCJdO1xufTtcblxudHlwZSBGb2N1c2FibGVXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGZvY3VzYWJsZToge1xuICAgIGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8YW55PjtcbiAgICBpdGVtOiBhbnk7XG4gICAgb3JkZXJOdW1iZXI/OiBudW1iZXI7XG4gIH07XG4gIHJlYWRvbmx5IHRhYkluZGV4OiBudW1iZXI7XG4gIHJlYWRvbmx5IG9uRm9jdXM/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxhbnk+O1xuICByZWFkb25seSBvbkJsdXI/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxhbnk+O1xuICByZWFkb25seSBvbktleURvd24/OiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxhbnk+O1xuICByZWFkb25seSBjb250cmlidXRlUmVmOiBDb250cmlidXRlUmVmO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IEZvY3VzYWJsZVdyYXBwZXJDb21wb25lbnQgPSAoe1xuICBmb2N1c2FibGUsXG4gIHRhYkluZGV4LFxuICBvbkZvY3VzLFxuICBvbkJsdXIsXG4gIG9uS2V5RG93bixcbiAgY29udHJpYnV0ZVJlZixcbiAgY29udHJpYnV0ZVByb3BzLFxuICBjaGlsZHJlbixcbn06IEZvY3VzYWJsZVdyYXBwZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IGNvbnRleHQ6IGZvY3VzYWJsZUNvbnRleHQsIGl0ZW06IGZvY3VzYWJsZUl0ZW0sIG9yZGVyTnVtYmVyIH0gPSBmb2N1c2FibGU7XG5cbiAgY29uc3QgW2VsZW1lbnQsIHNldEVsZW1lbnRdID0gdXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29udHJpYnV0ZVJlZihzZXRFbGVtZW50KTtcblxuICBjb25zdCBodG1sRWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudD4odW5kZWZpbmVkKTtcbiAgaHRtbEVsZW1lbnRSZWYuY3VycmVudCA9IChlbGVtZW50ID8/IHVuZGVmaW5lZCkgYXMgSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3QgaHRtbEVsZW1lbnRJc0ZvY3VzZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBvbGRTdGF0ZVJlZiA9IHVzZVJlZjxJT2JzZXJ2YWJsZVZhbHVlPHVua25vd24+Pih1bmRlZmluZWQpO1xuXG4gIGNvbnN0IHN0YXRlID0gdXNlU3luY0luamVjdChmb2N1c2FibGVJdGVtU3RhdGVJbmplY3RhYmxlLCBmb2N1c2FibGVDb250ZXh0KTtcblxuICB1c2VVcGRhdGVXaGVuUHJvcHNDaGFuZ2UoaHRtbEVsZW1lbnRJc0ZvY3VzZWRSZWYsIG9sZFN0YXRlUmVmLCBzdGF0ZSwgZm9jdXNhYmxlSXRlbSk7XG4gIHVzZUNsZWFudXBPblVubW91bnQoaHRtbEVsZW1lbnRJc0ZvY3VzZWRSZWYsIG9sZFN0YXRlUmVmKTtcbiAgdXNlUHJvZ3JhbW1hdGljRm9jdXNpbmcoZm9jdXNhYmxlQ29udGV4dCwgZm9jdXNhYmxlSXRlbSwgaHRtbEVsZW1lbnRSZWYpO1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzID0gaGFuZGxlRm9jdXNGb3Ioc3RhdGUsIGZvY3VzYWJsZUl0ZW0sIGZvY3VzYWJsZUNvbnRleHQsIGh0bWxFbGVtZW50SXNGb2N1c2VkUmVmKTtcbiAgY29uc3QgaGFuZGxlQmx1ciA9IGhhbmRsZUJsdXJGb3IoZm9jdXNhYmxlQ29udGV4dCwgc3RhdGUsIGh0bWxFbGVtZW50SXNGb2N1c2VkUmVmKTtcblxuICBjb25zdCBrZXlib2FyZE5hdmlnYXRpb24gPSB1c2VLZXlib2FyZE5hdmlnYXRpb24oXG4gICAgZm9jdXNhYmxlQ29udGV4dC5pc0tleWJvYXJkTmF2aWdhYmxlID8gZm9jdXNhYmxlQ29udGV4dCA6IHVuZGVmaW5lZCxcbiAgICBmb2N1c2FibGVJdGVtLFxuICAgIG9yZGVyTnVtYmVyLFxuICAgIGVsZW1lbnQsXG4gICk7XG5cbiAgY29udHJpYnV0ZVByb3BzKHtcbiAgICB0YWJJbmRleCxcblxuICAgIG9uRm9jdXM6IChlOiBSZWFjdC5Gb2N1c0V2ZW50PGFueT4pID0+IHtcbiAgICAgIGhhbmRsZUZvY3VzKGUpO1xuICAgICAga2V5Ym9hcmROYXZpZ2F0aW9uLm9uRm9jdXMoKTtcbiAgICAgIG9uRm9jdXM/LihlKTtcbiAgICB9LFxuXG4gICAgb25CbHVyOiAoZTogUmVhY3QuRm9jdXNFdmVudDxhbnk+KSA9PiB7XG4gICAgICBpZiAoIWh0bWxFbGVtZW50UmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgaGFuZGxlQmx1cihlKTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGUpO1xuICAgIH0sXG5cbiAgICBvbktleURvd246IChlOiBSZWFjdC5LZXlib2FyZEV2ZW50PGFueT4pID0+IHtcbiAgICAgIG9uS2V5RG93bj8uKGUpO1xuICAgICAga2V5Ym9hcmROYXZpZ2F0aW9uLm9uS2V5RG93bihlKTtcbiAgICB9LFxuXG4gICAgb25Nb3VzZUVudGVyOiBrZXlib2FyZE5hdmlnYXRpb24uZm9jdXNXaGF0VGhlUG9pbnRlcklzT24sXG4gICAgb25Nb3VzZU1vdmU6IGtleWJvYXJkTmF2aWdhdGlvbi5mb2N1c1doYXRUaGVQb2ludGVySXNPbixcbiAgfSk7XG5cbiAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmb2N1c2FibGVQbHVnaW48VD4oKSB7XG4gIHJldHVybiBnZXRQbHVnaW48Rm9jdXNhYmxlUGx1Z2luUHJvcHM8VD4sIFtSZXR1cm5UeXBlPHR5cGVvZiByZWZQbHVnaW48VD4+XT4oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyAkZm9jdXNhYmxlLCB0YWJJbmRleCwgb25CbHVyLCBvbkZvY3VzLCBvbktleURvd24gfSA9IHByb3BzO1xuXG4gICAgaWYgKCEkZm9jdXNhYmxlKSB7XG4gICAgICByZXR1cm4geyAkZm9jdXNhYmxlOiB1bmRlZmluZWQgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJGZvY3VzYWJsZTogdW5kZWZpbmVkLFxuICAgICAgJHdyYXBwZXI6IHtcbiAgICAgICAgQ29tcG9uZW50OiBGb2N1c2FibGVXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIGZvY3VzYWJsZTogJGZvY3VzYWJsZSxcbiAgICAgICAgICB0YWJJbmRleDogdGFiSW5kZXggPz8gLTEsXG4gICAgICAgICAgb25Gb2N1cyxcbiAgICAgICAgICBvbkJsdXIsXG4gICAgICAgICAgb25LZXlEb3duLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBhc3NlcnREZWZpbmVkIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIHsgSU9ic2VydmFibGVWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHR5cGUgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgdXNlVXBkYXRlV2hlblByb3BzQ2hhbmdlID0gKFxuICBmb2N1c2VkUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGJvb2xlYW4+LFxuICBvbGRTdGF0ZVJlZjogTXV0YWJsZVJlZk9iamVjdDxJT2JzZXJ2YWJsZVZhbHVlPHVua25vd24+IHwgdW5kZWZpbmVkPixcbiAgc3RhdGU6IElPYnNlcnZhYmxlVmFsdWU8dW5rbm93bj4sXG4gIGZvY3VzYWJsZUl0ZW06IHVua25vd24sXG4pID0+IHtcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29ycmVjdG5lc3MvdXNlRXhoYXVzdGl2ZURlcGVuZGVuY2llczogcmVtb3ZlIHdoZW4gcG9zc2libGVcbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmIChmb2N1c2VkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcnVuSW5BY3Rpb24oKCkgPT4ge1xuICAgICAgICAgIHN0YXRlLnNldChmb2N1c2FibGVJdGVtKTtcblxuICAgICAgICAgIGNvbnN0IGNvbnRleHRIYXNDaGFuZ2VkID0gb2xkU3RhdGVSZWYuY3VycmVudCAhPT0gc3RhdGU7XG5cbiAgICAgICAgICBpZiAoY29udGV4dEhhc0NoYW5nZWQgJiYgb2xkU3RhdGVSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgYXNzZXJ0RGVmaW5lZChvbGRTdGF0ZVJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIG9sZFN0YXRlUmVmLmN1cnJlbnQuc2V0KHVuZGVmaW5lZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgb2xkU3RhdGVSZWYuY3VycmVudCA9IHN0YXRlO1xuICAgIH0sXG4gICAgLy8gTm90ZTogZm9jdXNlZFJlZiBhbmQgb2xkU3RhdGVSZWYgbmV2ZXIgY2hhbmdlLlxuICAgIFtmb2N1c2FibGVJdGVtLCBzdGF0ZV0sXG4gICk7XG59O1xuIiwgImltcG9ydCB7IGFzc2VydERlZmluZWQgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyBJT2JzZXJ2YWJsZVZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHJ1bkluQWN0aW9uIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdHlwZSBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCB1c2VDbGVhbnVwT25Vbm1vdW50ID0gKFxuICBmb2N1c2VkUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGJvb2xlYW4+LFxuICBvbGRTdGF0ZVJlZjogTXV0YWJsZVJlZk9iamVjdDxJT2JzZXJ2YWJsZVZhbHVlPHVua25vd24+IHwgdW5kZWZpbmVkPixcbikgPT4ge1xuICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiByZW1vdmUgd2hlbiBwb3NzaWJsZVxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4gKCkgPT4ge1xuICAgICAgaWYgKGZvY3VzZWRSZWYuY3VycmVudCkge1xuICAgICAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICAgICAgYXNzZXJ0RGVmaW5lZChvbGRTdGF0ZVJlZi5jdXJyZW50KTtcbiAgICAgICAgICBvbGRTdGF0ZVJlZi5jdXJyZW50LnNldCh1bmRlZmluZWQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLy8gTm90ZTogZm9jdXNlZFJlZiBhbmQgb2xkU3RhdGVSZWYgbmV2ZXIgY2hhbmdlLlxuICAgIFtdLFxuICApO1xufTtcbiIsICJpbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHtcbiAga2V5Ym9hcmROYXZpZ2F0aW9uU3RhdGVJbmplY3RhYmxlLFxuICB0eXBlIE5hdmlnYWJsZUVudHJ5LFxufSBmcm9tIFwiLi4vX3NoYXJlZC9rZXlib2FyZC1uYXZpZ2F0aW9uLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0LCBLZXlib2FyZE5hdmlnYXRpb25PcmllbnRhdGlvbiB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxudHlwZSBLZXlib2FyZE5hdmlnYXRpb24gPSB7XG4gIHJlYWRvbmx5IG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xuICByZWFkb25seSBvbkZvY3VzOiAoKSA9PiB2b2lkO1xuICByZWFkb25seSBmb2N1c1doYXRUaGVQb2ludGVySXNPbjogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB2b2lkO1xufTtcblxuY29uc3Qgbm9LZXlib2FyZE5hdmlnYXRpb246IEtleWJvYXJkTmF2aWdhdGlvbiA9IHtcbiAgb25LZXlEb3duOiAoKSA9PiB7fSxcbiAgb25Gb2N1czogKCkgPT4ge30sXG4gIGZvY3VzV2hhdFRoZVBvaW50ZXJJc09uOiAoKSA9PiB7fSxcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VLZXlib2FyZE5hdmlnYXRpb24gPSAoXG4gIGNvbnRleHQ6IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dDxhbnk+IHwgdW5kZWZpbmVkLFxuICBpdGVtOiB1bmtub3duLFxuICBvcmRlck51bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwsXG4pOiBLZXlib2FyZE5hdmlnYXRpb24gPT4ge1xuICBjb25zdCBuYXZpZ2F0aW9uID0gdXNlU3luY0luamVjdChrZXlib2FyZE5hdmlnYXRpb25TdGF0ZUluamVjdGFibGUpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjb250ZXh0IHx8ICFlbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnk6IE5hdmlnYWJsZUVudHJ5ID0geyBpdGVtLCBvcmRlck51bWJlcjogb3JkZXJOdW1iZXIgPz8gMCwgZWxlbWVudCB9O1xuXG4gICAgbmF2aWdhdGlvbi5yZWdpc3Rlcihjb250ZXh0LCBlbnRyeSk7XG5cbiAgICBjb25zdCBmb2N1c1doYXRTaG91bGRIYXZlRm9jdXMgPSAoKSA9PiB7XG4gICAgICAvLyBPbmx5IHdpdGhpbiB0aGUgd2luZG93IHRoZSB1c2VyIGlzIGFjdHVhbGx5IGluLiBMZW5zIERlc2t0b3AgaXMgbW9yZSB0aGFuIG9uZSB3aW5kb3csXG4gICAgICAvLyBhbmQgZm9jdXNpbmcgYW4gZWxlbWVudCBvZiBhIHdpbmRvdyB0aGF0IGRvZXMgbm90IGhhdmUgZm9jdXMgaXMgaG93IGEgYnJvd3NlciBpcyBhc2tlZFxuICAgICAgLy8gdG8gYnJpbmcgdGhhdCB3aW5kb3cgdG8gdGhlIGZyb250OiBhIGxpc3QgdXBkYXRpbmcgaW4gdGhlIGFwcGxpY2F0aW9uIHdpbmRvdyB3aGlsZSB0aGVcbiAgICAgIC8vIHVzZXIgcmVhZHMgYSBzdWItd2luZG93IHdvdWxkIGtlZXAgc25hdGNoaW5nIHRoZSBzdWItd2luZG93J3MgZm9jdXMgYXdheS4gV2hpY2ggbWVtYmVyXG4gICAgICAvLyB0aGlzIHdpbmRvdyBpcyBvbiBpcyBzdGlsbCByZW1lbWJlcmVkLCBzbyBpdCBsYW5kcyB0aGVyZSB3aGVuIHRoZSB1c2VyIGNvbWVzIGJhY2suXG4gICAgICBpZiAoIWRvY3VtZW50Lmhhc0ZvY3VzKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250ZXh0SW5Gb2N1cyA9IG5hdmlnYXRpb24uY29udGV4dEluRm9jdXMoKTtcblxuICAgICAgaWYgKCFjb250ZXh0SW5Gb2N1cykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVudHJpZXMgPSBuYXZpZ2F0aW9uLnNvcnRlZEVudHJpZXNPZihjb250ZXh0SW5Gb2N1cyk7XG5cbiAgICAgIC8vIFRoZSBtZW1iZXIgdGhhdCBjb250ZXh0IHdhcyBsZWZ0IG9uLCBzbyBzdGVwcGluZyBpbnRvIHNvbWV0aGluZyBhbmQgYmFjayBvdXQgb2YgaXQgbGFuZHNcbiAgICAgIC8vIHdoZXJlIGl0IHN0YXJ0ZWQuIE9ubHkgdGhlIGxvd2VzdCBvcmRlciBudW1iZXIgd2hlbiBpdCB3YXMgbmV2ZXIgbGVmdCBhbnl3aGVyZTogdGhhdCBpcyBhXG4gICAgICAvLyBzZXQgb2YgbWVtYmVycyBhcHBlYXJpbmcgcmF0aGVyIHRoYW4gb25lIGJlaW5nIHJldHVybmVkIHRvIFx1MjAxNCBhbmQgYSBzZXQgdGhhdCBsZWF2ZXMgZm9jdXNcbiAgICAgIC8vIHdoZXJlIGl0IGlzIGFzIGl0IGFwcGVhcnMgaGFzIG5vdGhpbmcgdG8gb2ZmZXIgdW50aWwgb25lIG9mIGl0cyBtZW1iZXJzIGhhcyBoYWQgZm9jdXMuXG4gICAgICBjb25zdCBpdGVtSW5Gb2N1cyA9IG5hdmlnYXRpb24uaXRlbUluRm9jdXNPZihjb250ZXh0SW5Gb2N1cyk7XG4gICAgICBjb25zdCB0b0ZvY3VzID1cbiAgICAgICAgZW50cmllcy5maW5kKChjYW5kaWRhdGUpID0+IGNhbmRpZGF0ZS5pdGVtID09PSBpdGVtSW5Gb2N1cykgPz9cbiAgICAgICAgKGNvbnRleHRJbkZvY3VzLnRha2VzRm9jdXNBc0l0QXBwZWFycyA/IGVudHJpZXNbMF0gOiB1bmRlZmluZWQpO1xuXG4gICAgICBpZiAodG9Gb2N1cz8uZWxlbWVudC5pc0Nvbm5lY3RlZCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSB0b0ZvY3VzLmVsZW1lbnQpIHtcbiAgICAgICAgdG9Gb2N1cy5lbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIERlZmVycmVkIHNvIHRoYXQgZXZlcnl0aGluZyBhcHBlYXJpbmcgdG9nZXRoZXIgaGFzIHJlZ2lzdGVyZWQsIGFuZCB0aGUgbG93ZXN0IG9yZGVyIG51bWJlciBvZlxuICAgIC8vIHRoZSB3aG9sZSBzZXQgd2lucyByYXRoZXIgdGhhbiB3aGljaGV2ZXIgYXBwZWFyZWQgZmlyc3QuXG4gICAgdm9pZCBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZvY3VzV2hhdFNob3VsZEhhdmVGb2N1cyk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgbmF2aWdhdGlvbi5kZXJlZ2lzdGVyKGNvbnRleHQsIGVudHJ5KTtcblxuICAgICAgdm9pZCBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZvY3VzV2hhdFNob3VsZEhhdmVGb2N1cyk7XG4gICAgfTtcbiAgfSwgW25hdmlnYXRpb24sIGNvbnRleHQsIGl0ZW0sIG9yZGVyTnVtYmVyLCBlbGVtZW50XSk7XG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgcmV0dXJuIG5vS2V5Ym9hcmROYXZpZ2F0aW9uO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBXaGljaCBtZW1iZXIgdGhlIGNvbnRleHQgaXMgb24sIHJlbWVtYmVyZWQgZm9yIGFzIGxvbmcgYXMgaXRzIG1lbWJlcnMgYXJlIHRoZXJlOiBpdCBpcyB3aGF0XG4gICAgLy8gZm9jdXMgcmV0dXJucyB0byB3aGVuIHNvbWV0aGluZyB0aGF0IHRvb2sgZm9jdXMgb3ZlciBnb2VzIGF3YXkgYWdhaW4uXG4gICAgb25Gb2N1czogKCkgPT4gbmF2aWdhdGlvbi5ub3RlSXRlbUluRm9jdXMoY29udGV4dCwgaXRlbSksXG5cbiAgICAvLyBXaGVyZSB0aGUgcG9pbnRlciBnb2VzLCBmb2N1cyBnb2VzOiB0aGUgbWVtYmVyIHVuZGVyIGl0IGJlY29tZXMgdGhlIGZvY3VzZWQgb25lLCBzbyBhcnJvd2luZ1xuICAgIC8vIG9uIGZyb20gdGhlcmUgY29udGludWVzIGZyb20gd2hhdCB0aGUgdXNlciBpcyBsb29raW5nIGF0IHJhdGhlciB0aGFuIGZyb20gd2hlcmV2ZXIgdGhlXG4gICAgLy8ga2V5Ym9hcmQgd2FzIGxlZnQuIFdoaWNoZXZlciBvZiB0aGUgdHdvIG1vdmVkIGxhc3QgZGVjaWRlcywgd2hpY2ggaXMgd2h5IHRoaXMgYW5zd2VycyB0byB0aGVcbiAgICAvLyBwb2ludGVyIG1vdmluZyBhcyB3ZWxsIGFzIHRvIGl0IGFycml2aW5nIFx1MjAxNCB0aGUga2V5Ym9hcmQgbWF5IGhhdmUgdGFrZW4gZm9jdXMgZWxzZXdoZXJlIHdoaWxlXG4gICAgLy8gdGhlIHBvaW50ZXIgcmVzdGVkIHdoZXJlIGl0IHdhcywgYW5kIG1vdmluZyBpdCBhdCBhbGwgaXMgdGhlIHVzZXIgcG9pbnRpbmcgYWdhaW4uXG4gICAgLy9cbiAgICAvLyBUaGUgZWxlbWVudCBjb21lcyBmcm9tIHRoZSBldmVudCByYXRoZXIgdGhhbiBmcm9tIHRoZSByZW5kZXIgdGhpcyBoYW5kbGVyIHdhcyBjcmVhdGVkIGluOlxuICAgIC8vIHRoZSBoYW5kbGVyIHRoZSBET00gZW5kcyB1cCB3aXRoIGlzIHRoZSBvbmUgZnJvbSB0aGUgZmlyc3QgcmVuZGVyLCB3aGVuIHRoZXJlIHdhcyBubyBlbGVtZW50XG4gICAgLy8geWV0IFx1MjAxNCBSZWFjdCBoYXMgbm8gcmVhc29uIHRvIHJlbmRlciB0aGUgZWxlbWVudCBhZ2FpbiBmb3IgYSB3cmFwcGVyJ3Mgb3duIHN0YXRlLlxuICAgIGZvY3VzV2hhdFRoZVBvaW50ZXJJc09uOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGhvdmVyZWQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gaG92ZXJlZCkge1xuICAgICAgICBob3ZlcmVkLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBzdGVwID0gc3RlcE9mKGV2ZW50LmtleSwgY29udGV4dC5vcmllbnRhdGlvbik7XG5cbiAgICAgIGlmIChzdGVwID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnRyaWVzID0gbmF2aWdhdGlvbi5zb3J0ZWRFbnRyaWVzT2YoY29udGV4dCk7XG5cbiAgICAgIGlmIChlbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGVudHJpZXMuZmluZEluZGV4KChjYW5kaWRhdGUpID0+IGNhbmRpZGF0ZS5pdGVtID09PSBpdGVtKTtcblxuICAgICAgY29uc3QgbmV4dEluZGV4ID1cbiAgICAgICAgc3RlcCA9PT0gXCJmaXJzdFwiXG4gICAgICAgICAgPyAwXG4gICAgICAgICAgOiBzdGVwID09PSBcImxhc3RcIlxuICAgICAgICAgICAgPyBlbnRyaWVzLmxlbmd0aCAtIDFcbiAgICAgICAgICAgIDogKGN1cnJlbnRJbmRleCArIHN0ZXAgKyBlbnRyaWVzLmxlbmd0aCkgJSBlbnRyaWVzLmxlbmd0aDtcblxuICAgICAgY29uc3QgbmV4dCA9IGVudHJpZXNbbmV4dEluZGV4XTtcblxuICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbmV4dC5lbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn07XG5cbmNvbnN0IHN0ZXBPZiA9IChrZXk6IHN0cmluZywgb3JpZW50YXRpb246IEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uKSA9PiB7XG4gIHN3aXRjaCAoa2V5KSB7XG4gICAgY2FzZSBcIkFycm93RG93blwiOlxuICAgICAgcmV0dXJuIG9yaWVudGF0aW9uID09PSBcImhvcml6b250YWxcIiA/IHVuZGVmaW5lZCA6IDE7XG4gICAgY2FzZSBcIkFycm93UmlnaHRcIjpcbiAgICAgIHJldHVybiBvcmllbnRhdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiID8gdW5kZWZpbmVkIDogMTtcbiAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgcmV0dXJuIG9yaWVudGF0aW9uID09PSBcImhvcml6b250YWxcIiA/IHVuZGVmaW5lZCA6IC0xO1xuICAgIGNhc2UgXCJBcnJvd0xlZnRcIjpcbiAgICAgIHJldHVybiBvcmllbnRhdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiID8gdW5kZWZpbmVkIDogLTE7XG4gICAgY2FzZSBcIkhvbWVcIjpcbiAgICAgIHJldHVybiBcImZpcnN0XCIgYXMgY29uc3Q7XG4gICAgY2FzZSBcIkVuZFwiOlxuICAgICAgcmV0dXJuIFwibGFzdFwiIGFzIGNvbnN0O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuIiwgImltcG9ydCB7IHJ1bkluQWN0aW9uLCB0eXBlIElPYnNlcnZhYmxlVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4uL2dldC1mb2N1c2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IEZvY3VzYWJsZUV2ZW50IH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtZXZlbnRcIjtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZUZvY3VzRm9yID1cbiAgPEZvY3VzYWJsZUl0ZW0+KFxuICAgIHN0YXRlOiBJT2JzZXJ2YWJsZVZhbHVlPEZvY3VzYWJsZUl0ZW0gfCB1bmRlZmluZWQ+LFxuICAgIGZvY3VzYWJsZUl0ZW06IEZvY3VzYWJsZUl0ZW0sXG4gICAgZm9jdXNhYmxlQ29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxGb2N1c2FibGVJdGVtPixcbiAgICBmb2N1c2VkUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGJvb2xlYW4+LFxuICApID0+XG4gIDxUPihldmVudDogRm9jdXNhYmxlRXZlbnQ8VD4pID0+IHtcbiAgICBjb25zdCBuYXRpdmVFdmVudCA9IGV2ZW50Lm5hdGl2ZUV2ZW50O1xuXG4gICAgbmF0aXZlRXZlbnQuYWxyZWFkeVByb2Nlc3NlZEZvY3VzYWJsZUNvbnRleHRzID8/PSBuZXcgU2V0KCk7XG5cbiAgICBpZiAobmF0aXZlRXZlbnQuYWxyZWFkeVByb2Nlc3NlZEZvY3VzYWJsZUNvbnRleHRzLmhhcyhmb2N1c2FibGVDb250ZXh0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG5hdGl2ZUV2ZW50LmFscmVhZHlQcm9jZXNzZWRGb2N1c2FibGVDb250ZXh0cy5hZGQoZm9jdXNhYmxlQ29udGV4dCk7XG5cbiAgICBmb2N1c2VkUmVmLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgcnVuSW5BY3Rpb24oKCkgPT4ge1xuICAgICAgc3RhdGUuc2V0KGZvY3VzYWJsZUl0ZW0pO1xuICAgIH0pO1xuICB9O1xuIiwgImltcG9ydCB0eXBlIHsgSU9ic2VydmFibGVWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEZvY3VzYWJsZUV2ZW50IH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtZXZlbnRcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlQmx1ckZvciA9XG4gIDxUPihcbiAgICBmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+LFxuICAgIHN0YXRlOiBJT2JzZXJ2YWJsZVZhbHVlPFQgfCB1bmRlZmluZWQ+LFxuICAgIGZvY3VzZWRSZWY6IE11dGFibGVSZWZPYmplY3Q8Ym9vbGVhbj4sXG4gICkgPT5cbiAgPFQ+KGV2ZW50OiBGb2N1c2FibGVFdmVudDxUPikgPT4ge1xuICAgIGNvbnN0IG5hdGl2ZUV2ZW50ID0gZXZlbnQubmF0aXZlRXZlbnQ7XG5cbiAgICBpZiAobmF0aXZlRXZlbnQuYWxyZWFkeVByb2Nlc3NlZEZvY3VzYWJsZUNvbnRleHRzPy5oYXMoZm9jdXNhYmxlQ29udGV4dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb2N1c2VkUmVmLmN1cnJlbnQgPSBmYWxzZTtcblxuICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgIHN0YXRlLnNldCh1bmRlZmluZWQpO1xuICAgIH0pO1xuICB9O1xuIiwgImltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVIdG1sRWxlbWVudFJlZlNldEluamVjdGFibGUgfSBmcm9tIFwiLi4vX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCBjb25zdCB1c2VQcm9ncmFtbWF0aWNGb2N1c2luZyA9IDxUPihcbiAgZm9jdXNhYmxlQ29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxUPixcbiAgZm9jdXNhYmxlSXRlbTogVCxcbiAgaHRtbEVsZW1lbnRSZWY6IE11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ+LFxuKSA9PiB7XG4gIGNvbnN0IGh0bWxFbGVtZW50c0J5Rm9jdXNhYmxlTWFwID0gdXNlU3luY0luamVjdChcbiAgICBmb2N1c2FibGVIdG1sRWxlbWVudFJlZlNldEluamVjdGFibGUsXG4gICAgZm9jdXNhYmxlQ29udGV4dCxcbiAgICBmb2N1c2FibGVJdGVtLFxuICApO1xuXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IHJlbW92ZSB3aGVuIHBvc3NpYmxlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaHRtbEVsZW1lbnRzQnlGb2N1c2FibGVNYXAuYWRkKGh0bWxFbGVtZW50UmVmKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBodG1sRWxlbWVudHNCeUZvY3VzYWJsZU1hcC5kZWxldGUoaHRtbEVsZW1lbnRSZWYpO1xuICAgIH07XG4gIH0sIFtodG1sRWxlbWVudHNCeUZvY3VzYWJsZU1hcCwgZm9jdXNhYmxlSXRlbSwgaHRtbEVsZW1lbnRSZWZdKTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGZsZXhQbHVnaW4gfSBmcm9tIFwiLi4vZmxleC9mbGV4XCI7XG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgdHlwZSB7IG92ZXJmbG93UGx1Z2luIH0gZnJvbSBcIi4uL292ZXJmbG93L292ZXJmbG93XCI7XG5cbmV4cG9ydCB0eXBlIEFyZWFQbHVnaW5Qcm9wcyA9IHsgJGFyZWE/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBhcmVhUGx1Z2luID0gZ2V0UGx1Z2luPEFyZWFQbHVnaW5Qcm9wcywgW3R5cGVvZiBmbGV4UGx1Z2luLCB0eXBlb2Ygb3ZlcmZsb3dQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgZXhwbGljaXRGbGV4UHJvcHMgPSBpc09iamVjdChwcm9wcy4kZmxleCkgPyBwcm9wcy4kZmxleCA6IHt9O1xuXG4gIHJldHVybiB7XG4gICAgJGFyZWE6IHVuZGVmaW5lZCxcblxuICAgICRmbGV4OiBwcm9wcy4kYXJlYVxuICAgICAgPyB7XG4gICAgICAgICAgdmVydGljYWxBbGlnbjogXCJzdHJldGNoXCIsXG4gICAgICAgICAgaG9yaXpvbnRhbEFsaWduOiBcInN0cmV0Y2hcIixcbiAgICAgICAgICAuLi5leHBsaWNpdEZsZXhQcm9wcyxcbiAgICAgICAgfVxuICAgICAgOiBwcm9wcy4kZmxleCxcblxuICAgICRvdmVyZmxvdzogcHJvcHMuJG92ZXJmbG93ID8/IChwcm9wcy4kYXJlYSA/IFwiaGlkZGVuXCIgOiB1bmRlZmluZWQpLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGZsZXhDaGlsZFBsdWdpbiB9IGZyb20gXCIuLi9mbGV4LWNoaWxkL2ZsZXgtY2hpbGRcIjtcblxuZXhwb3J0IHR5cGUgQXJlYUNvbnRlbnRQbHVnaW5Qcm9wcyA9IHsgJGFyZWFDb250ZW50PzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgYXJlYUNvbnRlbnRQbHVnaW4gPSBnZXRQbHVnaW48QXJlYUNvbnRlbnRQbHVnaW5Qcm9wcywgW3R5cGVvZiBmbGV4Q2hpbGRQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRhcmVhQ29udGVudDogdW5kZWZpbmVkLFxuICAkZmxleENoaWxkOiBwcm9wcy4kYXJlYUNvbnRlbnQgPyB0cnVlIDogcHJvcHMuJGZsZXhDaGlsZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5pbXBvcnQgdHlwZSB7IHdpZHRoUGx1Z2luIH0gZnJvbSBcIi4uL3dpZHRoL3dpZHRoXCI7XG5pbXBvcnQgdHlwZSB7IGhlaWdodFBsdWdpbiB9IGZyb20gXCIuLi9oZWlnaHQvaGVpZ2h0XCI7XG5cbmV4cG9ydCB0eXBlICRTaXplUHJvcHMgPSB7XG4gIHNpemU/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCBcImF1dG9cIjtcbiAgbWluPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiO1xuICBtYXg/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCI7XG59O1xuXG5leHBvcnQgdHlwZSBTaXplUGx1Z2luUHJvcHMgPSB7ICRzaXplPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgJFNpemVQcm9wcyB9O1xuXG5leHBvcnQgY29uc3Qgc2l6ZVBsdWdpbiA9IGdldFBsdWdpbjxTaXplUGx1Z2luUHJvcHMsIFt0eXBlb2Ygd2lkdGhQbHVnaW4sIHR5cGVvZiBoZWlnaHRQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkc2l6ZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkc2l6ZSkge1xuICAgIHJldHVybiB7ICRzaXplOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IHsgc2l6ZSwgbWluLCBtYXggfSA9IHR5cGVvZiAkc2l6ZSA9PT0gXCJzdHJpbmdcIiA/IHsgc2l6ZTogJHNpemUgfSA6ICRzaXplO1xuXG4gIHJldHVybiB7XG4gICAgJGhlaWdodDogeyBoZWlnaHQ6IHNpemUsIG1pbiwgbWF4IH0sXG4gICAgJHdpZHRoOiB7IHdpZHRoOiBzaXplLCBtaW4sIG1heCB9LFxuICAgICRzaXplOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgcmF3U3R5bGVzIGZyb20gXCIuL2N1cnNvci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IHNhbml0aXplU2Nzc01vZHVsZXMgfSBmcm9tIFwiQGs4c2xlbnMvdGVzdC11dGlsc1wiO1xuXG5jb25zdCBzdHlsZXMgPSBzYW5pdGl6ZVNjc3NNb2R1bGVzKHJhd1N0eWxlcyk7XG5cbmV4cG9ydCB0eXBlICRDdXJzb3JQcm9wcyA9XG4gIHwgXCJhbGlhc1wiXG4gIHwgXCJhbGwtc2Nyb2xsXCJcbiAgfCBcImNlbGxcIlxuICB8IFwiY29sdW1uLXJlc2l6ZVwiXG4gIHwgXCJjb250ZXh0LW1lbnVcIlxuICB8IFwiY29weVwiXG4gIHwgXCJjcm9zc2hhaXJcIlxuICB8IFwiZGVmYXVsdFwiXG4gIHwgXCJlYXN0LXJlc2l6ZVwiXG4gIHwgXCJlYXN0LWFuZC13ZXN0LXJlc2l6ZVwiXG4gIHwgXCJncmFiXCJcbiAgfCBcImdyYWJiaW5nXCJcbiAgfCBcImhlbHBcIlxuICB8IFwibW92ZVwiXG4gIHwgXCJub3J0aC1yZXNpemVcIlxuICB8IFwibm9ydGhlYXN0LXJlc2l6ZVwiXG4gIHwgXCJub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVcIlxuICB8IFwibm8tZHJvcFwiXG4gIHwgXCJub25lXCJcbiAgfCBcIm5vdC1hbGxvd2VkXCJcbiAgfCBcIm5vcnRoLWFuZC1zb3V0aC1yZXNpemVcIlxuICB8IFwibm9ydGh3ZXN0LXJlc2l6ZVwiXG4gIHwgXCJub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVcIlxuICB8IFwicG9pbnRlclwiXG4gIHwgXCJwcm9ncmVzc1wiXG4gIHwgXCJyb3ctcmVzaXplXCJcbiAgfCBcInNvdXRoLXJlc2l6ZVwiXG4gIHwgXCJzb3V0aGVhc3QtcmVzaXplXCJcbiAgfCBcInNvdXRod2VzdC1yZXNpemVcIlxuICB8IFwidGV4dFwiXG4gIHwgXCJ2ZXJ0aWNhbC10ZXh0XCJcbiAgfCBcIndlc3QtcmVzaXplXCJcbiAgfCBcIndhaXRcIlxuICB8IFwiem9vbS1pblwiXG4gIHwgXCJ6b29tLW91dFwiO1xuXG5leHBvcnQgdHlwZSBDdXJzb3JQbHVnaW5Qcm9wcyA9IHtcbiAgJGN1cnNvcj86ICRDdXJzb3JQcm9wcztcbn07XG5cbmV4cG9ydCBjb25zdCBjdXJzb3JQbHVnaW4gPSBnZXRQbHVnaW48Q3Vyc29yUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGN1cnNvciwgJGNsYXNzTmFtZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkY3Vyc29yKSB7XG4gICAgcmV0dXJuIHsgJGN1cnNvcjogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRjdXJzb3I6IHVuZGVmaW5lZCxcbiAgICAkY2xhc3NOYW1lOiBbJGNsYXNzTmFtZSwgc3R5bGVzWyRjdXJzb3JdXSxcbiAgICBcImRhdGEtY3Vyc29yLXRlc3RcIjogJGN1cnNvcixcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgb25NaWRkbGVDbGljaywgb25UcmlnZ2VyIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBlbmFibGVkUGx1Z2luIH0gZnJvbSBcIi4uL2VuYWJsZWQvZW5hYmxlZFwiO1xuaW1wb3J0IHR5cGUgeyAkQ3Vyc29yUHJvcHMsIGN1cnNvclBsdWdpbiB9IGZyb20gXCIuLi9jdXJzb3IvY3Vyc29yXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgeyBvblJpZ2h0VHJpZ2dlckluamVjdGFibGUgfSBmcm9tIFwiLi9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgUG9zaXRpb24yZCA9IHtcbiAgcmVhZG9ubHkgeDogbnVtYmVyO1xuICByZWFkb25seSB5OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBDbGlja0hhbmRsZXJEZXRhaWxzID0ge1xuICByZWFkb25seSBjdXJzb3I6IFBvc2l0aW9uMmQ7XG4gIHJlYWRvbmx5IGNhdXNlOiBcImNsaWNrXCIgfCBcImtleWJvYXJkXCI7XG59O1xuXG5leHBvcnQgdHlwZSBDbGlja0hhbmRsZXIgPSAoKGRldGFpbHM6IENsaWNrSGFuZGxlckRldGFpbHMpID0+IHZvaWQpIHwgKChkZXRhaWxzOiBDbGlja0hhbmRsZXJEZXRhaWxzKSA9PiBQcm9taXNlPHZvaWQ+KTtcblxuZXhwb3J0IHR5cGUgQ2xpY2tQbHVnaW5Qcm9wcyA9IHtcbiAgJG9uQ2xpY2s/OiBDbGlja0hhbmRsZXI7XG4gICRvbk9ubHlNb3VzZUNsaWNrPzogQ2xpY2tIYW5kbGVyO1xuICAkb25Eb3VibGVDbGljaz86IENsaWNrSGFuZGxlcjtcbiAgJG9uUmlnaHRDbGljaz86IENsaWNrSGFuZGxlcjtcbiAgJG9uTWlkZGxlQ2xpY2s/OiBDbGlja0hhbmRsZXI7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xufTtcblxuY29uc3QgY2xpY2tVc2VkID0gU3ltYm9sKCk7XG5cbmV4cG9ydCBjb25zdCBjbGlja2FibGVQbHVnaW4gPSBnZXRQbHVnaW48Q2xpY2tQbHVnaW5Qcm9wcywgW3R5cGVvZiBlbmFibGVkUGx1Z2luLCB0eXBlb2YgY3Vyc29yUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIC8vIHR5cGluZyByZXF1aXJlZCBkdWUgdG8gbGFjayBvZiBnb29kIHR5cGluZyBvZiBwcmUtcHJvY2Vzc2VkIGRlcGVuZGVudCBwbHVnaW5zXG4gIGNvbnN0IHtcbiAgICAkY3Vyc29yLFxuICAgICRvbkNsaWNrLFxuICAgICRvbk9ubHlNb3VzZUNsaWNrLFxuICAgICRvbk1pZGRsZUNsaWNrLFxuICAgICRvblJpZ2h0Q2xpY2ssXG4gICAgJG9uRG91YmxlQ2xpY2ssXG4gICAgb25Eb3VibGVDbGljayxcbiAgICBvbkF1eENsaWNrLFxuICAgIG9uQ2xpY2ssXG4gICAgb25Db250ZXh0TWVudSxcbiAgICBvbktleURvd24sXG4gICAgdGFiSW5kZXgsXG4gICAgZGlzYWJsZWQsXG4gICAgcm9sZSxcbiAgfSA9IHByb3BzIGFzIHR5cGVvZiBwcm9wcyAmIFJlYWN0LkhUTUxQcm9wczxIVE1MRWxlbWVudD47XG4gIGNvbnN0IFtwZW5kaW5nLCBzZXRQZW5kaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3Qgb25SaWdodFRyaWdnZXIgPSB1c2VTeW5jSW5qZWN0KG9uUmlnaHRUcmlnZ2VySW5qZWN0YWJsZSk7XG4gIGNvbnN0IG9uTW91c2VDbGljayA9ICRvbkNsaWNrID8/ICRvbk9ubHlNb3VzZUNsaWNrO1xuXG4gIGlmICgkb25DbGljayAmJiAkb25Pbmx5TW91c2VDbGljaykge1xuICAgIGNvbnNvbGUud2FybihcIkNhbm5vdCBoYXZlIGJvdGggJG9uQ2xpY2sgYW5kICRvbk1vdXNlQ2xpY2tPbmx5IG9uIHRoZSBzYW1lIGNvbXBvbmVudFwiKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJG9uQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkb25NaWRkbGVDbGljazogdW5kZWZpbmVkLFxuICAgICRvblJpZ2h0Q2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkb25Eb3VibGVDbGljazogdW5kZWZpbmVkLFxuICAgICRvbk9ubHlNb3VzZUNsaWNrOiB1bmRlZmluZWQsXG4gICAgdGFiSW5kZXg6IHRhYkluZGV4ID8/IChvbk1vdXNlQ2xpY2sgfHwgJG9uUmlnaHRDbGljayB8fCAkb25Eb3VibGVDbGljayA/IDAgOiB1bmRlZmluZWQpLFxuICAgICRjdXJzb3I6IGdldEN1cnNvclByb3BzKCRjdXJzb3IsIGRpc2FibGVkLCBwZW5kaW5nLCBvbk1vdXNlQ2xpY2ssICRvblJpZ2h0Q2xpY2spLFxuICAgIHJvbGU6IHJvbGUgPz8gKG9uTW91c2VDbGljayA/IFwiYnV0dG9uXCIgOiByb2xlKSxcbiAgICBvbkNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBvbkNsaWNrPy4oZXZlbnQpO1xuXG4gICAgICBpZiAoIWRpc2FibGVkICYmIG9uTW91c2VDbGljayAmJiAhKGNsaWNrVXNlZCBpbiBldmVudCkpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihldmVudCwgeyBbY2xpY2tVc2VkXTogdHJ1ZSB9KTtcblxuICAgICAgICBjb25zdCBtYXliZVByb21pc2UgPSBvbk1vdXNlQ2xpY2sodG9EZXRhaWxzKGV2ZW50KSk7XG5cbiAgICAgICAgaWYgKGlzUHJvbWlzZUxpa2UobWF5YmVQcm9taXNlKSkge1xuICAgICAgICAgIHNldFBlbmRpbmcodHJ1ZSk7XG4gICAgICAgICAgbWF5YmVQcm9taXNlLnRoZW4oKCkgPT4gc2V0UGVuZGluZyhmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBvbkRvdWJsZUNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBvbkRvdWJsZUNsaWNrPy4oZXZlbnQpO1xuICAgICAgJG9uRG91YmxlQ2xpY2s/Lih0b0RldGFpbHMoZXZlbnQpKTtcbiAgICB9LFxuICAgIG9uQ29udGV4dE1lbnU6IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uQ29udGV4dE1lbnU/LihldmVudCk7XG4gICAgICAkb25SaWdodENsaWNrPy4odG9EZXRhaWxzKGV2ZW50KSk7XG4gICAgfSxcbiAgICBvbkF1eENsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBvbkF1eENsaWNrPy4oZXZlbnQpO1xuICAgICAgb25NaWRkbGVDbGljayhldmVudCwgKCkgPT4gJG9uTWlkZGxlQ2xpY2s/Lih0b0RldGFpbHMoZXZlbnQpKSk7XG4gICAgfSxcbiAgICBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uS2V5RG93bj8uKGV2ZW50KTtcblxuICAgICAgaWYgKCRvbkNsaWNrKSB7XG4gICAgICAgIG9uVHJpZ2dlcihldmVudCwgKCkgPT4ge1xuICAgICAgICAgIGlmICghZGlzYWJsZWQgJiYgIShjbGlja1VzZWQgaW4gZXZlbnQpKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGV2ZW50LCB7IFtjbGlja1VzZWRdOiB0cnVlIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBtYXliZVByb21pc2UgPSAkb25DbGljayh0b0RldGFpbHMoZXZlbnQpKTtcblxuICAgICAgICAgICAgaWYgKGlzUHJvbWlzZUxpa2UobWF5YmVQcm9taXNlKSkge1xuICAgICAgICAgICAgICBzZXRQZW5kaW5nKHRydWUpO1xuICAgICAgICAgICAgICBtYXliZVByb21pc2UudGhlbigoKSA9PiBzZXRQZW5kaW5nKGZhbHNlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCRvblJpZ2h0Q2xpY2spIHtcbiAgICAgICAgb25SaWdodFRyaWdnZXIoZXZlbnQsICgpID0+IHtcbiAgICAgICAgICAkb25SaWdodENsaWNrKHRvRGV0YWlscyhldmVudCkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufSk7XG5cbmNvbnN0IHRvTWlkZGxlID0gKHJlY3Q6IERPTVJlY3QpID0+ICh7XG4gIHg6IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyLFxuICB5OiByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMixcbn0pO1xuXG5jb25zdCB0b0RldGFpbHMgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+IHwgUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MRWxlbWVudD4pOiBDbGlja0hhbmRsZXJEZXRhaWxzID0+IHtcbiAgY29uc3QgY3Vyc29yID1cbiAgICBcImNsaWVudFhcIiBpbiBldmVudFxuICAgICAgPyB7XG4gICAgICAgICAgeDogZXZlbnQuY2xpZW50WCxcbiAgICAgICAgICB5OiBldmVudC5jbGllbnRZLFxuICAgICAgICB9XG4gICAgICA6IHRvTWlkZGxlKGV2ZW50LmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuXG4gIHJldHVybiB7XG4gICAgY3Vyc29yLFxuICAgIGNhdXNlOiBldmVudC5kZXRhaWwgPyBcImNsaWNrXCIgOiBcImtleWJvYXJkXCIsXG4gIH07XG59O1xuXG5jb25zdCBpc1Byb21pc2VMaWtlID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUHJvbWlzZTx1bmtub3duPiA9PlxuICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgISF2YWx1ZSAmJiBcInRoZW5cIiBpbiB2YWx1ZTtcblxuY29uc3QgZ2V0Q3Vyc29yUHJvcHMgPSAoXG4gICRjdXJzb3I6ICRDdXJzb3JQcm9wcyB8IHVuZGVmaW5lZCxcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIHBlbmRpbmc6IGJvb2xlYW4sXG4gICRvbkNsaWNrOiBGdW5jdGlvbiB8IHVuZGVmaW5lZCxcbiAgJG9uUmlnaHRDbGljazogRnVuY3Rpb24gfCB1bmRlZmluZWQsXG4pOiAkQ3Vyc29yUHJvcHMgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAoJGN1cnNvcikge1xuICAgIHJldHVybiAkY3Vyc29yO1xuICB9XG5cbiAgaWYgKHBlbmRpbmcpIHtcbiAgICByZXR1cm4gXCJwcm9ncmVzc1wiO1xuICB9XG5cbiAgaWYgKCEkb25DbGljayAmJiAhJG9uUmlnaHRDbGljaykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAoZGlzYWJsZWQpIHtcbiAgICByZXR1cm4gXCJub3QtYWxsb3dlZFwiO1xuICB9XG5cbiAgaWYgKCRvbkNsaWNrKSB7XG4gICAgcmV0dXJuIFwicG9pbnRlclwiO1xuICB9XG5cbiAgcmV0dXJuIFwiY29udGV4dC1tZW51XCI7XG59O1xuIiwgImltcG9ydCByYXdTdHlsZXMgZnJvbSBcIi4vZGlzcGxheS1jb250ZW50cy5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IHNhbml0aXplU2Nzc01vZHVsZXMgfSBmcm9tIFwiQGs4c2xlbnMvdGVzdC11dGlsc1wiO1xuXG5jb25zdCBzdHlsZXMgPSBzYW5pdGl6ZVNjc3NNb2R1bGVzKHJhd1N0eWxlcyk7XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlDb250ZW50c1BsdWdpblByb3BzID0ge1xuICAkZGlzcGxheUNvbnRlbnRzPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBkaXNwbGF5Q29udGVudHNQbHVnaW4gPSBnZXRQbHVnaW48RGlzcGxheUNvbnRlbnRzUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGRpc3BsYXlDb250ZW50cywgJGNsYXNzTmFtZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkZGlzcGxheUNvbnRlbnRzKSB7XG4gICAgcmV0dXJuIHsgJGRpc3BsYXlDb250ZW50czogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRkaXNwbGF5Q29udGVudHM6IHVuZGVmaW5lZCxcbiAgICAkY2xhc3NOYW1lOiBbJGNsYXNzTmFtZSwgc3R5bGVzLmNvbnRlbnRzXSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCBzdHlsZXMgZnJvbSBcIi4vdGV4dC1hbGlnbi5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuZXhwb3J0IHR5cGUgVGV4dEFsaWduUGx1Z2luUHJvcHMgPSB7ICR0ZXh0QWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCIgfCBcInJpZ2h0XCIgfTtcblxuZXhwb3J0IGNvbnN0IHRleHRBbGlnblBsdWdpbiA9IGdldFBsdWdpbjxUZXh0QWxpZ25QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkdGV4dEFsaWduIH0gPSBwcm9wcztcblxuICBpZiAoISR0ZXh0QWxpZ24pIHtcbiAgICByZXR1cm4geyAkdGV4dEFsaWduOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7ICRjbGFzc05hbWU6IFtzdHlsZXNbYHRleHQtYWxpZ24tLSR7JHRleHRBbGlnbn1gXSwgcHJvcHMuJGNsYXNzTmFtZV0sICR0ZXh0QWxpZ246IHVuZGVmaW5lZCB9O1xufSk7XG4iLCAiaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9ibG9jay5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcblxuZXhwb3J0IHR5cGUgQmxvY2tQbHVnaW5Qcm9wcyA9IHtcbiAgJGJsb2NrPzogYm9vbGVhbiB8IFwiaW5saW5lXCI7XG59O1xuXG5leHBvcnQgY29uc3QgYmxvY2tQbHVnaW4gPSBnZXRQbHVnaW48QmxvY2tQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkYmxvY2ssICRjbGFzc05hbWUgfSA9IHByb3BzO1xuXG4gIGlmICghJGJsb2NrKSB7XG4gICAgcmV0dXJuIHsgJGJsb2NrOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGJsb2NrOiB1bmRlZmluZWQsXG4gICAgJGNsYXNzTmFtZTogWyRjbGFzc05hbWUsICRibG9jayA9PT0gXCJpbmxpbmVcIiA/IHN0eWxlc1tcImJsb2NrLS1pbmxpbmVcIl0gOiBzdHlsZXMuYmxvY2tdLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tIFwiLi4vX3NoYXJlZC9jb2xvcnNcIjtcbmltcG9ydCB0eXBlIHsgUmFuZ2UgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuaW1wb3J0IG91dGxpbmVTdHlsZXMgZnJvbSBcIi4vb3V0bGluZS5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgc2FuaXRpemVTY3NzTW9kdWxlcyB9IGZyb20gXCJAazhzbGVucy90ZXN0LXV0aWxzXCI7XG5pbXBvcnQgdHlwZSB7IElDbGFzc05hbWUgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuXG5jb25zdCBzdHlsZXMgPSBzYW5pdGl6ZVNjc3NNb2R1bGVzKG91dGxpbmVTdHlsZXMpO1xuXG5leHBvcnQgdHlwZSBPdXRsaW5lV2lkdGggPSBcInplcm9cIiB8IFwieHhzXCIgfCBcInhzXCIgfCBcInNcIiB8IFwibVwiIHwgXCJsXCIgfCBcInhsXCIgfCBcInh4bFwiIHwgYCR7UmFuZ2U8MywgNT59eGxgO1xuXG5leHBvcnQgdHlwZSAkT3V0bGluZVByb3BzID0geyBjb2xvcj86IENvbG9yOyB3aWR0aD86IE91dGxpbmVXaWR0aCB9O1xuXG5leHBvcnQgdHlwZSBPdXRsaW5lUGx1Z2luUHJvcHMgPSB7ICRvdXRsaW5lPzogeyBmb2N1c1Zpc2libGU/OiAkT3V0bGluZVByb3BzIH0gfTtcblxuZXhwb3J0IGNvbnN0IG91dGxpbmVQbHVnaW4gPSBnZXRQbHVnaW48T3V0bGluZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBnZXRGb2N1c1Zpc2libGVPdXRsaW5lU3R5bGVzKHByb3BzLiRvdXRsaW5lPy5mb2N1c1Zpc2libGUpXSxcbiAgICAkb3V0bGluZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG5cbmNvbnN0IGdldEZvY3VzVmlzaWJsZU91dGxpbmVTdHlsZXMgPSAocHJvcHM6ICRPdXRsaW5lUHJvcHMgfCB1bmRlZmluZWQpOiBJQ2xhc3NOYW1lID0+IHtcbiAgaWYgKCFwcm9wcykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCB7IGNvbG9yLCB3aWR0aCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIFtcbiAgICBjb2xvciAhPT0gdW5kZWZpbmVkIHx8IHdpZHRoICE9PSB1bmRlZmluZWQgPyBbc3R5bGVzLm91dGxpbmUsIHN0eWxlcy5mb2N1c1Zpc2libGVdIDogdW5kZWZpbmVkLFxuICAgIGNvbG9yID8gc3R5bGVzW2Bjb2xvci0tJHtjb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICB3aWR0aCA/IHN0eWxlc1tgd2lkdGgtLSR7d2lkdGh9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyB0eXBlIElDbGFzc05hbWUsIHNhbml0aXplU2Nzc01vZHVsZXMgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IGludGVyYWN0aXZlU3R5bGVzIGZyb20gXCIuL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzXCI7XG5cbmNvbnN0IHN0eWxlcyA9IHNhbml0aXplU2Nzc01vZHVsZXMoaW50ZXJhY3RpdmVTdHlsZXMpO1xuXG5leHBvcnQgdHlwZSAkSW50ZXJhY3RpdmVQcm9wcyA9IHtcbiAgLyoqXG4gICAqIFNob3dzIHRoZSBlbGVtZW50IGFzIHRoZSBhY3RpdmUgb25lLCBlLmcuIHRoZSB0cmlnZ2VyIG9mIGEgbWVudSB0aGF0IGlzXG4gICAqIG9wZW46IHRoZSBoaWdobGlnaHQgc3RheXMgb24gd2l0aCBhIHJpbmcgYXJvdW5kIGl0LlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBrZXlib2FyZCBmb2N1cyBkcmF3cyB0aGUgZm9jdXMgcmluZy4gRGVmYXVsdHMgdG8gYHRydWVgOyBvcHQgb3V0XG4gICAqIG9ubHkgd2hlcmUgdGhlIHN1cnJvdW5kaW5nIGNvbnRyb2wgZHJhd3MgaXRzIG93bi5cbiAgICovXG4gIGZvY3VzVmlzaWJsZU91dGxpbmU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgSW50ZXJhY3RpdmVQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqXG4gICAqIEdpdmVzIHRoZSBlbGVtZW50IHRoZSBhZmZvcmRhbmNlIG9mIGFuIGljb24gYnV0dG9uOiBhIGhpZ2hsaWdodCBvbiBob3ZlcixcbiAgICogYSBmb2N1cyByaW5nIGZvciBrZXlib2FyZCB1c2VycywgYW5kIHdpdGggYGFjdGl2ZWAgYSByaW5nIHRoYXQgbWFya3MgaXRcbiAgICogYXMgdGhlIGFjdGl2ZSBvbmUuXG4gICAqL1xuICAkaW50ZXJhY3RpdmU/OiBib29sZWFuIHwgJEludGVyYWN0aXZlUHJvcHM7XG59O1xuXG5leHBvcnQgY29uc3QgaW50ZXJhY3RpdmVQbHVnaW4gPSBnZXRQbHVnaW48SW50ZXJhY3RpdmVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBnZXRJbnRlcmFjdGl2ZUNsYXNzTmFtZXMocHJvcHMuJGludGVyYWN0aXZlKV0sXG4gICRpbnRlcmFjdGl2ZTogdW5kZWZpbmVkLFxufSkpO1xuXG5jb25zdCBnZXRJbnRlcmFjdGl2ZUNsYXNzTmFtZXMgPSAoaW50ZXJhY3RpdmU6IGJvb2xlYW4gfCAkSW50ZXJhY3RpdmVQcm9wcyB8IHVuZGVmaW5lZCk6IElDbGFzc05hbWUgPT4ge1xuICBpZiAoIWludGVyYWN0aXZlKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHsgYWN0aXZlID0gZmFsc2UsIGZvY3VzVmlzaWJsZU91dGxpbmUgPSB0cnVlIH0gPSBpbnRlcmFjdGl2ZSA9PT0gdHJ1ZSA/IHt9IDogaW50ZXJhY3RpdmU7XG5cbiAgcmV0dXJuIFtzdHlsZXMuaW50ZXJhY3RpdmUsIHsgW3N0eWxlcy5hY3RpdmVdOiBhY3RpdmUsIFtzdHlsZXMuaWdub3JlRm9jdXNWaXNpYmxlXTogIWZvY3VzVmlzaWJsZU91dGxpbmUgfV07XG59O1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgY2xpY2thYmxlUGx1Z2luLCBDbGlja0hhbmRsZXJEZXRhaWxzIH0gZnJvbSBcIi4uL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIG9mZnNldCwgc2hpZnQsIHVzZUZsb2F0aW5nIH0gZnJvbSBcIkBmbG9hdGluZy11aS9yZWFjdC1kb21cIjtcbmltcG9ydCB0eXBlIHsgUmVmUGx1Z2luIH0gZnJvbSBcIi4uL3JlZi9yZWZcIjtcbmltcG9ydCB7IGV4cGVjdERlZmluZWQsIHN0b3BQcm9wYWdhdGlvbiB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL3BvcG92ZXIubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IE1pbmltYWxEaXYgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHMvbWluaW1hbC1kaXZcIjtcblxuZXhwb3J0IHR5cGUgUG9wb3ZlclBsdWdpblByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgJHBvcG92ZXI/OiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgcG9wb3ZlcklzT3BlbkNvbnRleHQgPSBjcmVhdGVDb250ZXh0KGZhbHNlKTtcblxuZXhwb3J0IGNvbnN0IHVzZVBvcG92ZXJJc09wZW4gPSAoKSA9PiB1c2VDb250ZXh0KHBvcG92ZXJJc09wZW5Db250ZXh0KTtcblxuZXhwb3J0IGNvbnN0IHBvcG92ZXJQbHVnaW4gPSBnZXRQbHVnaW48UG9wb3ZlclBsdWdpblByb3BzLCBbdHlwZW9mIGNsaWNrYWJsZVBsdWdpbiwgUmVmUGx1Z2luPGFueT5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkcG9wb3ZlciwgJG9uQ2xpY2ssICRyZWYgfSA9IHByb3BzO1xuICBjb25zdCBbcG9wb3ZlckNvbnRlbnRJc1Nob3duLCBzZXRQb3BvdmVyQ29udGVudElzU2hvd25dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbcmVmZXJlbmNlLCBzZXRFbGVtZW50XSA9IHVzZVN0YXRlPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGNsb3NlUG9wb3ZlciA9IHVzZUNhbGxiYWNrKCgpID0+IHNldFBvcG92ZXJDb250ZW50SXNTaG93bihmYWxzZSksIFtdKTtcblxuICBpZiAoISRwb3BvdmVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRwb3BvdmVyOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJHBvcG92ZXI6IHVuZGVmaW5lZCxcbiAgICAkcmVmOiBbJHJlZiwgc2V0RWxlbWVudF0sXG4gICAgJG9uQ2xpY2s6IChkZXRhaWxzOiBDbGlja0hhbmRsZXJEZXRhaWxzKSA9PiB7XG4gICAgICBzZXRQb3BvdmVyQ29udGVudElzU2hvd24oIXBvcG92ZXJDb250ZW50SXNTaG93bik7XG4gICAgICAkb25DbGljaz8uKGRldGFpbHMpO1xuICAgIH0sXG4gICAgb25DbGljazogc3RvcFByb3BhZ2F0aW9uLFxuICAgICR3cmFwcGVyOiB7XG4gICAgICBDb21wb25lbnQ6IFBvcG92ZXJXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgcHJvcHM6IHtcbiAgICAgICAgcG9wb3Zlcjoge1xuICAgICAgICAgICRwb3BvdmVyLFxuICAgICAgICAgIGlzU2hvd246IHBvcG92ZXJDb250ZW50SXNTaG93bixcbiAgICAgICAgICByZWZlcmVuY2UsXG4gICAgICAgICAgY2xvc2VQb3BvdmVyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufSk7XG5cbnR5cGUgUG9wb3ZlcldyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgcG9wb3Zlcjoge1xuICAgIHJlYWRvbmx5ICRwb3BvdmVyOiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgcmVhZG9ubHkgaXNTaG93bjogYm9vbGVhbjtcbiAgICByZWFkb25seSByZWZlcmVuY2U6IEhUTUxEaXZFbGVtZW50IHwgbnVsbDtcbiAgICByZWFkb25seSBjbG9zZVBvcG92ZXI6IFZvaWRGdW5jdGlvbjtcbiAgfTtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IFBvcG92ZXJXcmFwcGVyQ29tcG9uZW50ID0gKHsgcG9wb3ZlciwgY2hpbGRyZW4gfTogUG9wb3ZlcldyYXBwZXJQcm9wcykgPT4ge1xuICBjb25zdCB7ICRwb3BvdmVyLCBpc1Nob3duLCByZWZlcmVuY2UsIGNsb3NlUG9wb3ZlciB9ID0gcG9wb3ZlcjtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7aXNTaG93biAmJlxuICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgPFBvcG92ZXJPdmVybGF5Q29udGVudFxuICAgICAgICAgICAgey4uLntcbiAgICAgICAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICAgICAgICAkcG9wb3ZlcixcbiAgICAgICAgICAgICAgY2xvc2VQb3BvdmVyLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPixcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LFxuICAgICAgICApfVxuICAgICAgPHBvcG92ZXJJc09wZW5Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXtpc1Nob3dufT57Y2hpbGRyZW59PC9wb3BvdmVySXNPcGVuQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbnR5cGUgUG9wb3Zlck92ZXJsYXlDb250ZW50UHJvcHMgPSB7XG4gIHJlZmVyZW5jZTogSFRNTERpdkVsZW1lbnQgfCBudWxsO1xuICAkcG9wb3ZlcjogKCkgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICBjbG9zZVBvcG92ZXI6IFZvaWRGdW5jdGlvbjtcbn07XG5cbmNvbnN0IFBvcG92ZXJPdmVybGF5Q29udGVudCA9IChwcm9wczogUG9wb3Zlck92ZXJsYXlDb250ZW50UHJvcHMpID0+IHtcbiAgY29uc3QgeyAkcG9wb3ZlciwgY2xvc2VQb3BvdmVyLCByZWZlcmVuY2UgfSA9IHByb3BzO1xuICBjb25zdCBbZmxvYXRpbmcsIHNldEZsb2F0aW5nXSA9IHVzZVN0YXRlPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICBwbGFjZW1lbnQ6IFwiYm90dG9tXCIsXG4gICAgbWlkZGxld2FyZTogW2ZsaXAoKSwgb2Zmc2V0KDgpLCBzaGlmdCgpXSxcbiAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1VwZGF0ZSxcbiAgICBlbGVtZW50czoge1xuICAgICAgZmxvYXRpbmcsXG4gICAgICByZWZlcmVuY2UsXG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgY2xvc2VQb3BvdmVyRnJvbU92ZXJsYXkgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBzdG9wUHJvcGFnYXRpb24oZXZlbnQpO1xuICAgIGNsb3NlUG9wb3ZlcigpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPE1pbmltYWxEaXZcbiAgICAgIGRhdGEtcG9wb3Zlci1vdmVybGF5LXRlc3RcbiAgICAgICRhYnNvbHV0ZVxuICAgICAgJGNsYXNzTmFtZT17c3R5bGVzLnBvcG92ZXJfX292ZXJsYXl9XG4gICAgICBvbkNsaWNrPXtjbG9zZVBvcG92ZXJGcm9tT3ZlcmxheX1cbiAgICA+XG4gICAgICA8TWluaW1hbERpdlxuICAgICAgICAkcmVmPXtzZXRGbG9hdGluZ31cbiAgICAgICAgc3R5bGU9e2Zsb2F0aW5nU3R5bGVzfVxuICAgICAgICBvbkNsaWNrPXtzdG9wUHJvcGFnYXRpb259XG4gICAgICAgICRjbGFzc05hbWU9e3N0eWxlcy5wb3BvdmVyX19jb250ZW50fVxuICAgICAgPlxuICAgICAgICA8Y29udGV4dEZvckNsb3NpbmdQb3BvdmVyLlByb3ZpZGVyIHZhbHVlPXtjbG9zZVBvcG92ZXJ9PnskcG9wb3ZlcigpfTwvY29udGV4dEZvckNsb3NpbmdQb3BvdmVyLlByb3ZpZGVyPlxuICAgICAgPC9NaW5pbWFsRGl2PlxuICAgIDwvTWluaW1hbERpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb250ZXh0Rm9yQ2xvc2luZ1BvcG92ZXIgPSBjcmVhdGVDb250ZXh0PFZvaWRGdW5jdGlvbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IHVzZUNsb3NlUG9wb3ZlciA9ICgpID0+XG4gIGV4cGVjdERlZmluZWQoXG4gICAgdXNlQ29udGV4dChjb250ZXh0Rm9yQ2xvc2luZ1BvcG92ZXIpLFxuICAgIFwiVHJpZWQgdG8gdXNlIGNsb3NlIHBvcG92ZXIgd2hpbGUgY29udGVudCBpcyBub3Qgc2hvd24gaW5zaWRlIHRoZSBwb3BvdmVyIGNvbnRlbnQuXCIsXG4gICk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVSZWYsIHR5cGUgUGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFJlZlBsdWdpbiB9IGZyb20gXCIuLi9yZWYvcmVmXCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIG9mZnNldCwgc2hpZnQsIHVzZUZsb2F0aW5nLCB0eXBlIFBsYWNlbWVudCB9IGZyb20gXCJAZmxvYXRpbmctdWkvcmVhY3QtZG9tXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgdHlwZSBGbG9hdGluZ0NvbnRlbnRBcmdzID0ge1xuICByZWFkb25seSBmbG9hdGluZ1N0eWxlczogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgcmVhZG9ubHkgY29udGVudFJlZjogTm9uTnVsbGFibGU8UmVhY3QuUmVmPEhUTUxEaXZFbGVtZW50Pj47XG59O1xuXG5leHBvcnQgdHlwZSBGbG9hdGluZ0NvbnRlbnRGYWN0b3J5ID0gKGFyZ3M6IEZsb2F0aW5nQ29udGVudEFyZ3MpID0+IFJlYWN0LlJlYWN0Tm9kZTtcblxuZXhwb3J0IHR5cGUgJEZsb2F0aW5nUHJvcHMgPSB7XG4gIHJlYWRvbmx5IHBvc2l0aW9uPzogUGxhY2VtZW50O1xuICByZWFkb25seSBjb250ZW50OiBGbG9hdGluZ0NvbnRlbnRGYWN0b3J5O1xufTtcblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdQbHVnaW5Qcm9wcyA9IHtcbiAgcmVhZG9ubHkgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHJlYWRvbmx5ICRmbG9hdGluZz86ICRGbG9hdGluZ1Byb3BzO1xufTtcblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdQbHVnaW4gPSBQbHVnaW48RmxvYXRpbmdQbHVnaW5Qcm9wcywgdW5rbm93bj47XG5cbnR5cGUgRmxvYXRpbmdXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGZsb2F0aW5nOiAkRmxvYXRpbmdQcm9wcztcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVJlZjogQ29udHJpYnV0ZVJlZjtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IEZsb2F0aW5nV3JhcHBlckNvbXBvbmVudCA9ICh7IGZsb2F0aW5nLCBjb250cmlidXRlUmVmLCBjaGlsZHJlbiB9OiBGbG9hdGluZ1dyYXBwZXJQcm9wcykgPT4ge1xuICBjb25zdCBbcmVmZXJlbmNlLCBzZXRSZWZlcmVuY2VdID0gdXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2Zsb2F0aW5nRWwsIHNldEZsb2F0aW5nXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgY29udHJpYnV0ZVJlZihzZXRSZWZlcmVuY2UpO1xuXG4gIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICBwbGFjZW1lbnQ6IGZsb2F0aW5nLnBvc2l0aW9uID8/IFwiYm90dG9tXCIsXG4gICAgbWlkZGxld2FyZTogW2ZsaXAoKSwgb2Zmc2V0KDgpLCBzaGlmdCgpXSxcbiAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1VwZGF0ZSxcbiAgICBlbGVtZW50czoge1xuICAgICAgZmxvYXRpbmc6IGZsb2F0aW5nRWwsXG4gICAgICByZWZlcmVuY2UsXG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgZmxvYXRpbmdDb250ZW50ID0gZmxvYXRpbmcuY29udGVudCh7IGZsb2F0aW5nU3R5bGVzLCBjb250ZW50UmVmOiBzZXRGbG9hdGluZyB9KTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7ZmxvYXRpbmdDb250ZW50ID8gY3JlYXRlUG9ydGFsKGZsb2F0aW5nQ29udGVudCwgZG9jdW1lbnQuYm9keSkgOiBudWxsfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZsb2F0aW5nUGx1Z2luPFQ+KCkge1xuICByZXR1cm4gZ2V0UGx1Z2luPEZsb2F0aW5nUGx1Z2luUHJvcHMsIFtSZWZQbHVnaW48VD5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICRmbG9hdGluZyB9ID0gcHJvcHM7XG5cbiAgICBpZiAoJGZsb2F0aW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB7ICRmbG9hdGluZzogdW5kZWZpbmVkIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICRmbG9hdGluZzogdW5kZWZpbmVkLFxuICAgICAgJHdyYXBwZXI6IHtcbiAgICAgICAgQ29tcG9uZW50OiBGbG9hdGluZ1dyYXBwZXJDb21wb25lbnQsXG4gICAgICAgIHByb3BzOiB7IGZsb2F0aW5nOiAkZmxvYXRpbmcgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbnZpc2libGUtYmFja2Ryb3AubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5cbmV4cG9ydCB0eXBlIEludmlzaWJsZUJhY2tkcm9wUGx1Z2luUHJvcHMgPSB7XG4gICRpbnZpc2libGVCYWNrZHJvcD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgaW52aXNpYmxlQmFja2Ryb3BQbHVnaW4gPSBnZXRQbHVnaW48SW52aXNpYmxlQmFja2Ryb3BQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkaW52aXNpYmxlQmFja2Ryb3AsICRjbGFzc05hbWUgfSA9IHByb3BzO1xuXG4gIGlmICghJGludmlzaWJsZUJhY2tkcm9wKSB7XG4gICAgcmV0dXJuIHsgJGludmlzaWJsZUJhY2tkcm9wOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGludmlzaWJsZUJhY2tkcm9wOiB1bmRlZmluZWQsXG4gICAgJGNsYXNzTmFtZTogWyRjbGFzc05hbWUsIHN0eWxlcy5pbnZpc2libGVCYWNrZHJvcF0sXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4sIHR5cGUgQ29udHJpYnV0ZVByb3BzLCB0eXBlIENvbnRyaWJ1dGVSZWYgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IERyb3BEb3duTWVudSwgdHlwZSBEcm9wRG93bk1lbnVTcGVjIH0gZnJvbSBcIkBrOHNsZW5zL2Ryb3AtZG93bi1tZW51LWNvbnRyYWN0c1wiO1xuaW1wb3J0IHsgY3NzTmFtZXMsIG9uVHJpZ2dlciB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgYW5jaG9yYWJsZUNsYXNzTmFtZSwgQW5jaG9yTmFtZVByb3ZpZGVyLCB1c2VBbmNob3JOYW1lRm9yIH0gZnJvbSBcIi4uL2FuY2hvci9hbmNob3JcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgb25SaWdodFRyaWdnZXJJbmplY3RhYmxlIH0gZnJvbSBcIi4uL2NsaWNrYWJsZS9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgUG9zaXRpb24yZCB9IGZyb20gXCIuLi9jbGlja2FibGUvY2xpY2thYmxlXCI7XG5pbXBvcnQgdHlwZSB7IGN1cnNvclBsdWdpbiB9IGZyb20gXCIuLi9jdXJzb3IvY3Vyc29yXCI7XG5pbXBvcnQgeyB0eXBlIGVuYWJsZWRQbHVnaW4sIGlzRGlzYWJsZWQgfSBmcm9tIFwiLi4vZW5hYmxlZC9lbmFibGVkXCI7XG5pbXBvcnQgeyB1c2VPbk91dHNpZGVDbGljayB9IGZyb20gXCIuLi9vbi1vdXRzaWRlLWNsaWNrL29uLW91dHNpZGUtY2xpY2tcIjtcblxuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51UGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICByZWFkb25seSB0YWJJbmRleD86IG51bWJlcjtcblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBkcm9wLWRvd24gbWVudSB0byB0aGUgZWxlbWVudC4gQ3JlYXRlIHRoZSB2YWx1ZSB3aXRoIGBkcm9wRG93bk1lbnUoa2luZCwgb3B0aW9ucz8pYFxuICAgKiBmcm9tIGBAazhzbGVucy9kcm9wLWRvd24tbWVudS1jb250cmFjdHNgOyB0aGUgaXRlbXMgY29tZSBmcm9tIHRoZSBjb250cmlidXRpb25zIHJlZ2lzdGVyZWQgZm9yXG4gICAqIHRoZSBraW5kLlxuICAgKlxuICAgKiBUaGUgbWVudSBwb3NpdGlvbnMgaXRzZWxmIGFnYWluc3QgdGhlIG5lYXJlc3QgYCRhbmNob3JgIGFyb3VuZCB0aGUgZWxlbWVudCwgb3IgYWdhaW5zdCB0aGVcbiAgICogZWxlbWVudCBpdHNlbGYgd2hlbiB0aGVyZSBpcyBub25lLiBEZWNsYXJlIGAkYW5jaG9yYCBvbiBhbiBlbmNsb3NpbmcgZWxlbWVudCB0byBoYXZlIHRoZSBtZW51XG4gICAqIGxpbmUgdXAgd2l0aCB0aGF0IGluc3RlYWQsIGFzIGEgbWVudSBvcGVuZWQgZnJvbSBvbmUgaGFsZiBvZiBhIHNwbGl0IGJ1dHRvbiBsaW5lcyB1cCB3aXRoIHRoZVxuICAgKiB3aG9sZSBvZiBpdC5cbiAgICpcbiAgICogVGhlIG1lbnUgdGFrZXMgZm9jdXMgYXMgaXQgb3BlbnMsIGl0cyBmaXJzdCBpdGVtIGJlY29taW5nIHRoZSBjdXJyZW50IG9uZSBcdTIwMTQgZXhjZXB0IHdoZW4gaXRcbiAgICogb3BlbnMgYnkgYmVpbmcgaG92ZXJlZCwgd2hlcmUgZm9jdXMgc3RheXMgb24gdGhlIGVsZW1lbnQ6IHRoZSByb3cgdGhlIHBvaW50ZXIgcmVzdHMgb24gaXMgd2hhdFxuICAgKiB0aGUgdXNlciBpcyBsb29raW5nIGF0LiBGb2N1cyByZXR1cm5zIHRvIHRoZSBlbGVtZW50IG9uY2UgdGhlIG1lbnUgaXMgZ29uZS4gQSBtZW51IHRoYXQgb3BlbnMgb25cbiAgICogaG92ZXJpbmcgb3BlbnMgd2l0aCBBcnJvd1JpZ2h0IGFzIHdlbGwsIHRha2luZyBmb2N1cyB0aGVuLCBhbmQgY2xvc2VzIHdpdGggQXJyb3dMZWZ0IGZyb21cbiAgICogYW55d2hlcmUgd2l0aGluIGl0LCBzbyBhIG1lbnUgaGVsZCBieSBhIG1lbnUgcm93IGlzIHJlYWNoYWJsZSB3aXRob3V0IGEgcG9pbnRlci5cbiAgICpcbiAgICogUmVxdWlyZXMgYGRyb3BEb3duTWVudUZlYXR1cmVgIG9mIGBAbGVuc2FwcC9kcm9wLWRvd24tbWVudWAgdG8gYmUgcmVnaXN0ZXJlZDogdGhlIG1lbnVcbiAgICogY29tcG9uZW50IGlzIHJlc29sdmVkIHRocm91Z2ggYW4gaW5qZWN0aW9uIHRva2VuIHRoaXMgcGFja2FnZSBkb2VzIG5vdCBpbXBsZW1lbnQuXG4gICAqL1xuICByZWFkb25seSAkZHJvcERvd25NZW51PzogRHJvcERvd25NZW51U3BlYztcbn07XG5cbmNvbnN0IGhvdmVyQ2xvc2VEZWxheUluTWlsbGlzZWNvbmRzID0gMjAwO1xuXG50eXBlIERyb3BEb3duTWVudVdyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgZHJvcERvd25NZW51OiBEcm9wRG93bk1lbnVTcGVjO1xuICByZWFkb25seSBjb250cmlidXRlUmVmOiBDb250cmlidXRlUmVmO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IERyb3BEb3duTWVudVdyYXBwZXJDb21wb25lbnQgPSAoe1xuICBkcm9wRG93bk1lbnUsXG4gIGNvbnRyaWJ1dGVSZWYsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBEcm9wRG93bk1lbnVXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgLy8gV2hldGhlciB0aGUgbWVudSB0YWtlcyBmb2N1cyBhcyBpdCBvcGVucy4gT25seSBhIG1lbnUgdGhlIHBvaW50ZXIgb3BlbmVkIGJ5IHJlc3Rpbmcgb24gdGhlXG4gIC8vIGVsZW1lbnQgbGVhdmVzIGl0IGJlOiB0aGUga2V5Ym9hcmQgb3BlbmluZyBvbmUsIG9yIGEgY2xpY2ssIGlzIHRoZSB1c2VyIGFza2luZyBmb3IgdGhlIG1lbnUsXG4gIC8vIGFuZCBpdHMgZmlyc3QgaXRlbSBpcyB3aGVyZSB0aGV5IGdvIG9uIGZyb20uXG4gIGNvbnN0IFt0YWtlc0ZvY3VzLCBzZXRUYWtlc0ZvY3VzXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbY3Vyc29yLCBzZXRDdXJzb3JdID0gdXNlU3RhdGU8UG9zaXRpb24yZCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3QgY2xvc2VUaW1lclJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3Qgb25SaWdodFRyaWdnZXIgPSB1c2VTeW5jSW5qZWN0KG9uUmlnaHRUcmlnZ2VySW5qZWN0YWJsZSk7XG5cbiAgY29uc3QgZWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBtZW51UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGVsZW1lbnRUYWtlc0ZvY3VzQmFja1JlZiA9IHVzZVJlZihmYWxzZSk7XG5cbiAgY29udHJpYnV0ZVJlZihcbiAgICB1c2VDYWxsYmFjaygoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBlbGVtZW50O1xuICAgIH0sIFtdKSxcbiAgKTtcblxuICBjb25zdCB0b2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGFrZXNGb2N1cyh0cnVlKTtcbiAgICBzZXRJc09wZW4oKHdhc09wZW4pID0+ICF3YXNPcGVuKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGNsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFRoZSBlbGVtZW50IHRoZSBtZW51IGJlbG9uZ3MgdG8gdGFrZXMgZm9jdXMgYmFjayB3aGVuIGZvY3VzIGlzIGluIHRoZSBtZW51IHRoYXQgaXMgY2xvc2luZyxcbiAgICAvLyBvciBub3doZXJlIGF0IGFsbDogd2hhdGV2ZXIgdGhlIHVzZXIgZG9lcyBuZXh0LCB0aGV5IGRvIGZyb20gd2hlcmUgdGhleSB3ZXJlLiBEZWNpZGVkIGhlcmUsXG4gICAgLy8gd2hpbGUgaXQgaXMgc3RpbGwgY2xlYXIgd2hlcmUgZm9jdXMgd2FzLCByYXRoZXIgdGhhbiBvbmNlIHRoZSBtZW51IGhhcyBnb25lLlxuICAgIGNvbnN0IGZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG4gICAgZWxlbWVudFRha2VzRm9jdXNCYWNrUmVmLmN1cnJlbnQgPVxuICAgICAgZm9jdXNlZCA9PT0gbnVsbCB8fCBmb2N1c2VkID09PSBkb2N1bWVudC5ib2R5IHx8IG1lbnVSZWYuY3VycmVudD8uY29udGFpbnMoZm9jdXNlZCkgPT09IHRydWU7XG5cbiAgICBzZXRJc09wZW4oZmFsc2UpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgY2FuY2VsU2NoZWR1bGVkQ2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGNsb3NlVGltZXJSZWYuY3VycmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbGVhclRpbWVvdXQoY2xvc2VUaW1lclJlZi5jdXJyZW50KTtcbiAgICAgIGNsb3NlVGltZXJSZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBvcGVuID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wZW5lZEJ5OiBcInBvaW50ZXJcIiB8IFwia2V5Ym9hcmRcIikgPT4ge1xuICAgICAgY2FuY2VsU2NoZWR1bGVkQ2xvc2UoKTtcbiAgICAgIHNldFRha2VzRm9jdXMob3BlbmVkQnkgPT09IFwia2V5Ym9hcmRcIik7XG4gICAgICBzZXRJc09wZW4odHJ1ZSk7XG4gICAgfSxcbiAgICBbY2FuY2VsU2NoZWR1bGVkQ2xvc2VdLFxuICApO1xuXG4gIGNvbnN0IHNjaGVkdWxlQ2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY2FuY2VsU2NoZWR1bGVkQ2xvc2UoKTtcbiAgICBjbG9zZVRpbWVyUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KGNsb3NlLCBob3ZlckNsb3NlRGVsYXlJbk1pbGxpc2Vjb25kcyk7XG4gIH0sIFtjYW5jZWxTY2hlZHVsZWRDbG9zZSwgY2xvc2VdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4gY2FuY2VsU2NoZWR1bGVkQ2xvc2UsIFtjYW5jZWxTY2hlZHVsZWRDbG9zZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc09wZW4pIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gQSBtZW51IHRoYXQgaXMgZGlzbWlzc2VkIHJhdGhlciB0aGFuIGNsb3NlZCBcdTIwMTQgY2xpY2tlZCBhd2F5IGZyb20gXHUyMDE0IGxlYXZlcyBmb2N1cyB3aGVyZXZlciB0aGVcbiAgICAvLyB1c2VyIHB1dCBpdC5cbiAgICBlbGVtZW50VGFrZXNGb2N1c0JhY2tSZWYuY3VycmVudCA9IGZhbHNlO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmICghZWxlbWVudFRha2VzRm9jdXNCYWNrUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBEZWZlcnJlZCBwYXN0IHdoYXQgaXMgYmVpbmcgdGFrZW4gYXdheTogdGhlIGVsZW1lbnQgbWF5IGJlIGdvaW5nIHdpdGggdGhlIG1lbnUsIGEgbWVudVxuICAgICAgLy8gaW5zaWRlIGEgbWVudSB0aGF0IGlzIGNsb3NpbmcgdG9vLCBhbmQgb25seSB0aGVuIGlzIGl0IGNsZWFyIHdoZXRoZXIgaXQgaXMgc3RpbGwgdGhlcmUgdG9cbiAgICAgIC8vIHRha2UgZm9jdXMgYmFjay4gQW55dGhpbmcgdGhhdCB0b29rIGZvY3VzIGluIHRoZSBtZWFudGltZSB3YXMgZ2l2ZW4gaXQgb24gcHVycG9zZSwgYW5kIGFcbiAgICAgIC8vIG1lbnUgY2xvc2luZyBpcyBubyByZWFzb24gdG8gdGFrZSBpdCBhd2F5IGFnYWluLlxuICAgICAgdm9pZCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudDtcbiAgICAgICAgY29uc3QgZm9jdXNlZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGVsZW1lbnQ/LmlzQ29ubmVjdGVkICYmIChmb2N1c2VkID09PSBudWxsIHx8IGZvY3VzZWQgPT09IGRvY3VtZW50LmJvZHkpKSB7XG4gICAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICB9LCBbaXNPcGVuXSk7XG5cbiAgLy8gVGhlIG5lYXJlc3QgYW5jaG9yIGFyb3VuZCB0aGUgZWxlbWVudCwgd2hpY2ggaXMgdGhlIGVsZW1lbnQgaXRzZWxmIHdoZW4gaXQgZGVjbGFyZXMgYCRhbmNob3JgO1xuICAvLyBhbiBlbGVtZW50IHdpdGggbm9uZSBhcm91bmQgaXQgYW5jaG9ycyBpdHMgbWVudSBpdHNlbGYsIHNvIGEgbWVudSBuZXZlciBmYWlscyB0byBvcGVuIGZvciB0aGVcbiAgLy8gd2FudCBvZiBvbmUuIE5hbWVkIG9ubHkgd2hpbGUgdGhlIG1lbnUgaXMgb3Blbiwgd2hpY2ggaXMgdGhlIG9ubHkgdGltZSBhbnl0aGluZyBuZWVkcyB0aGUgbmFtZS5cbiAgY29uc3QgYW5jaG9yTmFtZSA9IHVzZUFuY2hvck5hbWVGb3IoZWxlbWVudFJlZiwgaXNPcGVuKTtcblxuICBjb25zdCBvcGVuT24gPSBkcm9wRG93bk1lbnUub3Blbk9uID8/IFwiY2xpY2tcIjtcblxuICBjb25zdCBjbG9zZU9uQXJyb3dMZWZ0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93TGVmdFwiKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBjbG9zZSgpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2Nsb3NlXSxcbiAgKTtcblxuICAvLyBNYXJrcyB0aGUgZWxlbWVudCBhbmQsIGJlbG93LCB0aGUgbWVudSBpdCBvcGVucyBhcyBvbmUgdGhpbmcgZm9yIG91dHNpZGUtY2xpY2sgcHVycG9zZXMuXG4gIGNvbnN0IG91dHNpZGVDbGlja01hcmtpbmdQcm9wcyA9IHVzZU9uT3V0c2lkZUNsaWNrKFxuICAgIHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgc2V0SXNPcGVuKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9LCBbaXNPcGVuXSksXG4gICk7XG5cbiAgY29udHJpYnV0ZVByb3BzKHtcbiAgICAuLi5vdXRzaWRlQ2xpY2tNYXJraW5nUHJvcHMsXG4gICAgXCJhcmlhLWhhc3BvcHVwXCI6IFwibWVudVwiLFxuXG4gICAgLi4uKG9wZW5PbiA9PT0gXCJjbGlja1wiICYmIHtcbiAgICAgIG9uQ2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdG9nZ2xlKCk7XG4gICAgICB9LFxuXG4gICAgICAvLyBBIGtleSBwcmVzcyB0aGUgZWxlbWVudCBhbnN3ZXJzIHdpdGggYSBtZW51IGlzIGFuc3dlcmVkIGhlcmUgYW5kIG5vd2hlcmUgZWxzZSxcbiAgICAgIC8vIGV4YWN0bHkgYXMgaXRzIGNsaWNrIGlzOiB3aGF0ZXZlciBlbmNsb3NlcyB0aGUgZWxlbWVudCAoYSBtZW51IHJvdyB3aXRoIGFuXG4gICAgICAvLyBhY3Rpb24gb2YgaXRzIG93biwgc2F5KSBtdXN0IG5vdCB0YWtlIHRoZSBzYW1lIHByZXNzIGZvciBiZWluZyBhY3RpdmF0ZWQgdG9vLlxuICAgICAgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgb25UcmlnZ2VyKGV2ZW50LCAoKSA9PiB7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgdG9nZ2xlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KSxcblxuICAgIC4uLihvcGVuT24gPT09IFwicmlnaHQtY2xpY2tcIiAmJiB7XG4gICAgICBvbkNvbnRleHRNZW51OiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIC8vIEEgbWVudSBvcGVuZWQgYnkgcmlnaHQtY2xpY2tpbmcgYmVsb25ncyBhdCB0aGUgY3Vyc29yIHJhdGhlciB0aGFuIGF0IHRoZSBlbGVtZW50LlxuICAgICAgICBzZXRDdXJzb3IoeyB4OiBldmVudC5jbGllbnRYLCB5OiBldmVudC5jbGllbnRZIH0pO1xuICAgICAgICB0b2dnbGUoKTtcbiAgICAgIH0sXG5cbiAgICAgIG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIG9uUmlnaHRUcmlnZ2VyKGV2ZW50LCAoKSA9PiB7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgLy8gQSBtZW51IHRoZSBrZXlib2FyZCBvcGVuZWQgYmVsb25ncyBhdCB0aGUgZWxlbWVudCwgd2hlcmV2ZXIgdGhlIGN1cnNvciBsYXN0IHdhcy5cbiAgICAgICAgICBzZXRDdXJzb3IodW5kZWZpbmVkKTtcbiAgICAgICAgICB0b2dnbGUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgLi4uKG9wZW5PbiA9PT0gXCJob3ZlclwiICYmIHtcbiAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gb3BlbihcInBvaW50ZXJcIiksXG4gICAgICBvbk1vdXNlTGVhdmU6IHNjaGVkdWxlQ2xvc2UsXG5cbiAgICAgIC8vIEEgbWVudSB0aGF0IG9wZW5zIG9uIGhvdmVyaW5nIHdvdWxkIGJlIG91dCBvZiB0aGUga2V5Ym9hcmQncyByZWFjaCBvdGhlcndpc2UuIFNpZGV3YXlzXG4gICAgICAvLyBpbnRvIGl0LCBzaW5jZSB0aGF0IGlzIHdoZXJlIHN1Y2ggYSBtZW51IHNpdHM6IGJlc2lkZSB0aGUgZWxlbWVudCBpdCBiZWxvbmdzIHRvLiBGb2N1c1xuICAgICAgLy8gZm9sbG93cyBvbiBpdHMgb3duLCB0aGUgbWVudSB0YWtpbmcgaXQgYXMgaXQgYXBwZWFycyBcdTIwMTQgb3IsIHRoZSBwb2ludGVyIGhhdmluZyBvcGVuZWQgaXRcbiAgICAgIC8vIGFscmVhZHksIGFzIHRoZSBrZXlib2FyZCBzdGVwcyBpbnRvIGl0LlxuICAgICAgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd1JpZ2h0XCIpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIG9wZW4oXCJrZXlib2FyZFwiKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KSxcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2NoaWxkcmVufVxuXG4gICAgICB7aXNPcGVuICYmIChcbiAgICAgICAgLy8gTWFya2VkIGFzIGluc2lkZSBmb3IgdGhlIG91dHNpZGUtY2xpY2sgZGV0ZWN0aW9uIGFib3ZlOiB0aGUgbWVudSBpcyBhIHNpYmxpbmcgb2YgdGhlXG4gICAgICAgIC8vIGVsZW1lbnQgaW4gdGhlIERPTSwgYnV0IHBhcnQgb2YgdGhlIHNhbWUgdGhpbmcgYXMgZmFyIGFzIGEgdXNlciBpcyBjb25jZXJuZWQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIEEgY2xpY2sgbGFuZGluZyBvbiB0aGUgbWVudSBpcyBhIGNsaWNrIG9uIHRoZSBtZW51IGFuZCBub3RoaW5nIGVsc2UsIHNvIGl0IHN0b3BzIGhlcmVcbiAgICAgICAgLy8gcmF0aGVyIHRoYW4gZ29pbmcgb24gdG8gd2hhdGV2ZXIgZW5jbG9zZXMgdGhlIGVsZW1lbnQgdGhlIG1lbnUgd2FzIG9wZW5lZCBmcm9tIFx1MjAxNCBhIHJvd1xuICAgICAgICAvLyBvZiBhIG1lbnUgb2YgaXRzIG93biwgc2F5LCB3aGljaCB3b3VsZCB0YWtlIGl0IGZvciB0aGUgcm93IGJlaW5nIGFjdGl2YXRlZC4gT25seVxuICAgICAgICAvLyBgY2xpY2tgIHN0b3BzOiB0aGUgb3V0c2lkZS1jbGljayBkZXRlY3Rpb24gYWJvdmUgd29ya3Mgb24gYHBvaW50ZXJkb3duYC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gRm9jdXMgbGFuZGluZyBpbiB0aGUgbWVudSBpcyBsaWtld2lzZSBmb2N1cyBpbiB0aGUgbWVudSBhbmQgbm90aGluZyBlbHNlLiBBIHRyZWUgcm93XG4gICAgICAgIC8vIGVuY2xvc2luZyB0aGUgZWxlbWVudCB3b3VsZCBvdGhlcndpc2UgdGFrZSBpdCBmb3IgdGhlIHJvdyBpdHNlbGYgYmVpbmcgZm9jdXNlZCwgYW5kXG4gICAgICAgIC8vIHRha2UgZm9jdXMgc3RyYWlnaHQgYmFjayBmcm9tIHRoZSBtZW51IHJvdyB0aGUgcG9pbnRlciBoYWQganVzdCBwdXQgaXQgb24gXHUyMDE0IGFuZCBzaW5jZVxuICAgICAgICAvLyB0aGUgaGlnaGxpZ2h0IG9mIGEgbWVudSByb3cgZm9sbG93cyBmb2N1cywgdGhhdCBpcyBhIG1lbnUgdGhhdCBuZXZlciBsb29rcyBwb2ludGVkIGF0LlxuICAgICAgICAvLyBPbmx5IGZvY3VzIHN0b3BzLCBub3QgYmx1cjogd2hhdGV2ZXIgZW5jbG9zZXMgdGhlIGVsZW1lbnQgdGVsbHMgZm9jdXMgbGVhdmluZyBpdCBhcGFydFxuICAgICAgICAvLyBmcm9tIGZvY3VzIG1vdmluZyB3aXRoaW4gaXQgYnkgd2hlcmUgZm9jdXMgd2VudCwgYW5kIGhhcyB0byBoZWFyIG9mIGl0IGxlYXZpbmcgZnJvbSB0aGVcbiAgICAgICAgLy8gbWVudSBhcyBtdWNoIGFzIGZyb20gYW55d2hlcmUgZWxzZS5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICB7Li4ub3V0c2lkZUNsaWNrTWFya2luZ1Byb3BzfVxuICAgICAgICAgIHJlZj17bWVudVJlZn1cbiAgICAgICAgICBzdHlsZT17ZGlzcGxheUNvbnRlbnRzfVxuICAgICAgICAgIG9uQ2xpY2s9e3N0b3BQcm9wYWdhdGlvbn1cbiAgICAgICAgICBvbkZvY3VzPXtzdG9wUHJvcGFnYXRpb259XG4gICAgICAgICAgLy8gU2lkZXdheXMgYmFjayBvdXQgb2YgYSBtZW51IHRoYXQgb3BlbmVkIHNpZGV3YXlzLCBmcm9tIHdoZXJldmVyIGluIGl0IGZvY3VzIGhhcHBlbnMgdG9cbiAgICAgICAgICAvLyBiZS4gSXQgc3RvcHMgaGVyZSwgc28gdGhlIG1lbnUgdGhpcyBvbmUgd2FzIG9wZW5lZCBmcm9tIGlzIGxlZnQgYXMgaXQgaXMgcmF0aGVyIHRoYW5cbiAgICAgICAgICAvLyBjbG9zaW5nIGFsb25nIHdpdGggaXQgXHUyMDE0IG9uZSBzdGVwIG91dCBwZXIgcHJlc3MuIE9ubHkgc3VjaCBhIG1lbnU6IGVsc2V3aGVyZSB0aGUga2V5XG4gICAgICAgICAgLy8gYmVsb25ncyB0byB3aGF0ZXZlciB0aGUgbWVudSBob2xkcywgYW5kIEVzY2FwZSBpcyBob3cgYSBtZW51IGlzIGRpc21pc3NlZC5cbiAgICAgICAgICBvbktleURvd249e29wZW5PbiA9PT0gXCJob3ZlclwiID8gY2xvc2VPbkFycm93TGVmdCA6IHVuZGVmaW5lZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxBbmNob3JOYW1lUHJvdmlkZXIgdmFsdWU9e2FuY2hvck5hbWV9PlxuICAgICAgICAgICAgPERyb3BEb3duTWVudVxuICAgICAgICAgICAgICBzcGVjPXtkcm9wRG93bk1lbnV9XG4gICAgICAgICAgICAgIGFuY2hvclBvaW50PXtvcGVuT24gPT09IFwicmlnaHQtY2xpY2tcIiA/IGN1cnNvciA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgdGFrZXNGb2N1cz17dGFrZXNGb2N1c31cbiAgICAgICAgICAgICAgb25DbG9zZT17Y2xvc2V9XG4gICAgICAgICAgICAgIG9uTWVudUhvdmVyQ2hhbmdlPXtcbiAgICAgICAgICAgICAgICBvcGVuT24gPT09IFwiaG92ZXJcIlxuICAgICAgICAgICAgICAgICAgPyAobWVudUlzSG92ZXJlZCkgPT4gKG1lbnVJc0hvdmVyZWQgPyBjYW5jZWxTY2hlZHVsZWRDbG9zZSgpIDogc2NoZWR1bGVDbG9zZSgpKVxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0FuY2hvck5hbWVQcm92aWRlcj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgKX1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmNvbnN0IGRpc3BsYXlDb250ZW50cyA9IHsgZGlzcGxheTogXCJjb250ZW50c1wiIH0gYXMgY29uc3Q7XG5cbmNvbnN0IHN0b3BQcm9wYWdhdGlvbiA9IChldmVudDogUmVhY3QuU3ludGhldGljRXZlbnQpID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG5leHBvcnQgY29uc3QgZHJvcERvd25NZW51UGx1Z2luID0gZ2V0UGx1Z2luPFxuICBEcm9wRG93bk1lbnVQbHVnaW5Qcm9wcyxcbiAgW3R5cGVvZiBlbmFibGVkUGx1Z2luLCB0eXBlb2YgY3Vyc29yUGx1Z2luLCB0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXVxuPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkZHJvcERvd25NZW51LCAkY3Vyc29yLCAkY2xhc3NOYW1lLCByb2xlIH0gPSBwcm9wcyBhcyB0eXBlb2YgcHJvcHMgJiBSZWFjdC5IVE1MUHJvcHM8SFRNTEVsZW1lbnQ+O1xuXG4gIGlmICgkZHJvcERvd25NZW51ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyAkZHJvcERvd25NZW51OiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IG9wZW5zT25DbGljayA9ICgkZHJvcERvd25NZW51Lm9wZW5PbiA/PyBcImNsaWNrXCIpID09PSBcImNsaWNrXCI7XG4gIC8vIFJlYWQgZnJvbSB3aGF0IHRoZSBlbGVtZW50IHdhcyBnaXZlbjogdGhpcyBwbHVnaW4gcnVucyBiZWZvcmUgdGhlIG9uZSB0aGF0IHR1cm5zIGl0IGludG9cbiAgLy8gdGhlIGBkaXNhYmxlZGAgcHJvcC5cbiAgY29uc3QgY2Fubm90QmVVc2VkID0gaXNEaXNhYmxlZChwcm9wcyk7XG5cbiAgcmV0dXJuIHtcbiAgICAkZHJvcERvd25NZW51OiB1bmRlZmluZWQsXG5cbiAgICAuLi4oJGRyb3BEb3duTWVudS5vcGVuT24gPT09IFwiaG92ZXJcIiA/IHt9IDogeyB0YWJJbmRleDogcHJvcHMudGFiSW5kZXggPz8gMCB9KSxcblxuICAgIC8vIEFuIGVsZW1lbnQgdGhhdCBhbnN3ZXJzIGEgY2xpY2sgd2l0aCBhIG1lbnUgaXMgYSBidXR0b24sIGFuZCB0aGUgY3Vyc29yIGlzIGhvdyBpdCBzYXlzIHNvXG4gICAgLy8gLS0gb3Igc2F5cyB0aGF0IGl0IGNhbm5vdCByaWdodCBub3cuIEJvdGggd291bGQgb3RoZXJ3aXNlIGNvbWUgZnJvbSBhIGNsaWNrIGhhbmRsZXIgc3VjaCBhblxuICAgIC8vIGVsZW1lbnQgaGFzIG5vIHJlYXNvbiB0byBoYXZlLiBPbmx5IGEgY2xpY2s6IHNvbWV0aGluZyByaWdodC1jbGlja2VkIGlzIG5vdCBhIGJ1dHRvbiwgYW5kIGFcbiAgICAvLyByb3cgdGhhdCByZXZlYWxzIGEgbWVudSBvbiBob3ZlciBpcyBhIHJvdy5cbiAgICAuLi4ob3BlbnNPbkNsaWNrICYmIHtcbiAgICAgIHJvbGU6IHJvbGUgPz8gXCJidXR0b25cIixcbiAgICAgICRjdXJzb3I6ICRjdXJzb3IgPz8gKGNhbm5vdEJlVXNlZCA/IFwibm90LWFsbG93ZWRcIiA6IFwicG9pbnRlclwiKSxcbiAgICB9KSxcblxuICAgIC8vIFRoZSBlbGVtZW50IG1heSB0dXJuIG91dCB0byBiZSB0aGUgYW5jaG9yIG9mIGl0cyBvd24gbWVudSwgd2hpY2ggb25seSBpdHMgd3JhcHBlciBjYW4gdGVsbCxcbiAgICAvLyByZW5kZXJpbmcgd2l0aGluIHdoYXRldmVyIGFuY2hvcnMgZW5jbG9zZSB0aGUgZWxlbWVudDsgdGhpcyBsZXRzIHRoZSBuYW1lIGl0IGlzIHRoZW4gZ2l2ZW5cbiAgICAvLyB0YWtlIGVmZmVjdC5cbiAgICAkY2xhc3NOYW1lOiBjc3NOYW1lcygkY2xhc3NOYW1lLCBhbmNob3JhYmxlQ2xhc3NOYW1lKSxcblxuICAgICR3cmFwcGVyOiB7XG4gICAgICBDb21wb25lbnQ6IERyb3BEb3duTWVudVdyYXBwZXJDb21wb25lbnQsXG4gICAgICBwcm9wczogeyBkcm9wRG93bk1lbnU6ICRkcm9wRG93bk1lbnUgfSxcbiAgICB9LFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcywgdHlwZSBDb250cmlidXRlUmVmIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBjc3NOYW1lcyB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vYW5jaG9yLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uMmQgfSBmcm9tIFwiLi4vY2xpY2thYmxlL2NsaWNrYWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBUU2hpcnRTaXplLCB0U2hpcnRTaXplSW5QaXhlbHMgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IGNvbG9yUGx1Z2luIH0gZnJvbSBcIi4uL2NvbG9yL2NvbG9yXCI7XG5pbXBvcnQgdHlwZSB7IGJhY2tncm91bmRDb2xvclBsdWdpbiB9IGZyb20gXCIuLi9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3JcIjtcbmltcG9ydCB0eXBlIHsgYm9yZGVyUGx1Z2luIH0gZnJvbSBcIi4uL2JvcmRlci9ib3JkZXJcIjtcbmltcG9ydCB0eXBlIHsgcGFkZGluZ1BsdWdpbiB9IGZyb20gXCIuLi9wYWRkaW5nL3BhZGRpbmdcIjtcbmltcG9ydCB0eXBlIHsgbWFyZ2luUGx1Z2luIH0gZnJvbSBcIi4uL21hcmdpbi9tYXJnaW5cIjtcbmltcG9ydCB0eXBlIHsgb3ZlcmZsb3dQbHVnaW4gfSBmcm9tIFwiLi4vb3ZlcmZsb3cvb3ZlcmZsb3dcIjtcblxuLyoqXG4gKiBXaGVyZSBhbiBlbGVtZW50IHNpdHMgcmVsYXRpdmUgdG8gaXRzIGFuY2hvcjogYSBzaWRlIG9mIHRoZSBhbmNob3IsIG9wdGlvbmFsbHkgcmVmaW5lZCB3aXRoIGhvd1xuICogdGhlIGVsZW1lbnQgZXh0ZW5kcyBhbG9uZyB0aGF0IHNpZGUuIEEgYmFyZSBzaWRlIGNlbnRlcnMgdGhlIGVsZW1lbnQgb24gaXQ7IGBzcGFuLTxkaXJlY3Rpb24+YFxuICogYWxpZ25zIHRoZWlyIGVkZ2VzIGFuZCBsZXRzIHRoZSBlbGVtZW50IGV4dGVuZCB0b3dhcmQgdGhhdCBkaXJlY3Rpb24uXG4gKlxuICogV2hlbiB0aGUgZWxlbWVudCB3b3VsZCBub3QgZml0IHRoZSB2aWV3cG9ydCwgaXQgZmFsbHMgYmFjayB0byB0aGUgbWlycm9yZWQgcG9zaXRpb25zLlxuICovXG5leHBvcnQgdHlwZSBBbmNob3JQb3NpdGlvbiA9XG4gIHwgXCJ0b3BcIlxuICB8IFwiYm90dG9tXCJcbiAgfCBcImxlZnRcIlxuICB8IFwicmlnaHRcIlxuICB8IFwidG9wIHNwYW4tbGVmdFwiXG4gIHwgXCJ0b3Agc3Bhbi1yaWdodFwiXG4gIHwgXCJib3R0b20gc3Bhbi1sZWZ0XCJcbiAgfCBcImJvdHRvbSBzcGFuLXJpZ2h0XCJcbiAgfCBcImxlZnQgc3Bhbi10b3BcIlxuICB8IFwibGVmdCBzcGFuLWJvdHRvbVwiXG4gIHwgXCJyaWdodCBzcGFuLXRvcFwiXG4gIHwgXCJyaWdodCBzcGFuLWJvdHRvbVwiO1xuXG4vKipcbiAqIEVpdGhlciBhIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBuZWFyZXN0IGFuY2VzdG9yIGAkYW5jaG9yYCwgb3IgdGhlIHNhbWUgcG9zaXRpb24gcmVsYXRpdmUgdG8gYVxuICogcG9pbnQgaW4gdGhlIHZpZXdwb3J0LlxuICovXG5leHBvcnQgdHlwZSBBbmNob3JlZEF0ID1cbiAgfCBBbmNob3JQb3NpdGlvblxuICB8IHtcbiAgICAgIHJlYWRvbmx5IHBvc2l0aW9uOiBBbmNob3JQb3NpdGlvbjtcblxuICAgICAgLyoqIEhvdyBmYXIgZnJvbSB0aGUgYW5jaG9yIHRoZSBlbGVtZW50IHNpdHMuIERlZmF1bHRzIHRvIGBcInhzXCJgLiAqL1xuICAgICAgcmVhZG9ubHkgZ2FwPzogVFNoaXJ0U2l6ZTtcblxuICAgICAgLyoqIFNpdCBhdCB0aGlzIHZpZXdwb3J0IHBvaW50IGluc3RlYWQgb2YgYXQgYW4gYW5jaG9yLiAqL1xuICAgICAgcmVhZG9ubHkgcG9pbnQ/OiBQb3NpdGlvbjJkO1xuICAgIH07XG5cbmNvbnN0IGRlZmF1bHRHYXA6IFRTaGlydFNpemUgPSBcInhzXCI7XG5cbmV4cG9ydCB0eXBlIEFuY2hvclBsdWdpblByb3BzID0ge1xuICByZWFkb25seSBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcblxuICAvKipcbiAgICogTWFrZXMgdGhlIGVsZW1lbnQgYW4gYW5jaG9yIGZvciB0aGUgZWxlbWVudHMgb2YgaXRzIHN1YnRyZWUgdGhhdCBkZWNsYXJlIHtAbGluayAkYW5jaG9yZWRBdH0uXG4gICAqIFRoZSBuZWFyZXN0IHN1Y2ggYW5jZXN0b3Igd2lucywgc28gbmVzdGluZyB3b3JrcyB3aXRob3V0IG5hbWluZyBhbnl0aGluZy5cbiAgICovXG4gIHJlYWRvbmx5ICRhbmNob3I/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbnMgdGhlIGVsZW1lbnQgcmVsYXRpdmUgdG8gYW4gYW5jaG9yLCBhYm92ZSBldmVyeXRoaW5nIGVsc2Ugb24gdGhlIHBhZ2UgXHUyMDE0IGl0IGVzY2FwZXNcbiAgICogY2xpcHBpbmcgYW5jZXN0b3JzIGFuZCBzdGFja2luZyBjb250ZXh0cywgc28gaXQgbmVlZHMgbm8gcG9ydGFsLlxuICAgKlxuICAgKiBUaGUgYW5jaG9yIGlzIHRoZSBuZWFyZXN0IGFuY2VzdG9yIGRlY2xhcmluZyB7QGxpbmsgJGFuY2hvcn0sIG9yIHRoZSBnaXZlbiBwb2ludCB3aGVuIGEgcG9pbnRcbiAgICogaXMgcHJvdmlkZWQgaW5zdGVhZC5cbiAgICovXG4gIHJlYWRvbmx5ICRhbmNob3JlZEF0PzogQW5jaG9yZWRBdDtcbn07XG5cbmNvbnN0IGFuY2hvck5hbWVDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbi8qKlxuICogTGV0cyB7QGxpbmsgdXNlQW5jaG9yTmFtZUZvcn0gbmFtZSBhbiBlbGVtZW50IGFzIGFuIGFuY2hvci4gQSBwbHVnaW4gd2hvc2Ugd3JhcHBlciBtYXkgYW5jaG9yXG4gKiB3aGF0IGl0IHJlbmRlcnMgdG8gdGhlIGVsZW1lbnQgaXRzZWxmIGFkZHMgdGhpcyB0byB0aGUgZWxlbWVudCdzIGAkY2xhc3NOYW1lYC4gVGhlIG5hbWUgZm9sbG93c1xuICogb25seSB3aGVuIG5vdGhpbmcgZWxzZSBhbmNob3JzIHRoZSBlbGVtZW50LCBzbyB0aGUgY2xhc3MgYWxvbmUgY2hhbmdlcyBub3RoaW5nLlxuICovXG5leHBvcnQgY29uc3QgYW5jaG9yYWJsZUNsYXNzTmFtZSA9IHN0eWxlcy5hbmNob3I7XG5cbi8qKlxuICogVGhlIGFuY2hvciBuYW1lIGZvciB3aGF0IGEgcGx1Z2luJ3Mgd3JhcHBlciByZW5kZXJzIGJlc2lkZSBpdHMgZWxlbWVudCBhbmQgcG9zaXRpb25zIHdpdGhcbiAqIGAkYW5jaG9yZWRBdGAgXHUyMDE0IGEgbWVudSwgc2F5OiB0aGF0IG9mIHRoZSBuZWFyZXN0IGAkYW5jaG9yYCBhcm91bmQgdGhlIGVsZW1lbnQsIHRoZSBlbGVtZW50J3Mgb3duXG4gKiBpbmNsdWRlZCwgb3IgZmFpbGluZyB0aGF0IGEgbmFtZSBvZiB0aGUgZWxlbWVudCdzIG93biwgd2hpY2ggdGhpcyBnaXZlcyBpdC4gUmVuZGVyIHdoYXQgaXNcbiAqIHBvc2l0aW9uZWQgaW5zaWRlIHtAbGluayBBbmNob3JOYW1lUHJvdmlkZXJ9IHdpdGggdGhlIHJldHVybmVkIG5hbWUsIHNvIGl0IGZpbmRzIGl0cyBhbmNob3IuXG4gKlxuICogVGhlIGVsZW1lbnQgbmVlZHMge0BsaW5rIGFuY2hvcmFibGVDbGFzc05hbWV9IGZvciBhIG5hbWUgb2YgaXRzIG93biB0byB0YWtlIGVmZmVjdCwgYW5kIGlzIG5hbWVkXG4gKiBvbmx5IHdoaWxlIGBpc0FuY2hvcmluZ2A6IHdoaWxlIHdoYXQgaXMgcG9zaXRpb25lZCBhZ2FpbnN0IGl0IGlzIHNob3duLlxuICovXG5leHBvcnQgY29uc3QgdXNlQW5jaG9yTmFtZUZvciA9IChlbGVtZW50UmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPiwgaXNBbmNob3Jpbmc6IGJvb2xlYW4pID0+IHtcbiAgY29uc3QgZW5jbG9zaW5nQW5jaG9yTmFtZSA9IHVzZUNvbnRleHQoYW5jaG9yTmFtZUNvbnRleHQpO1xuICBjb25zdCBhbmNob3JzSXRzZWxmID0gaXNBbmNob3JpbmcgJiYgZW5jbG9zaW5nQW5jaG9yTmFtZSA9PT0gdW5kZWZpbmVkO1xuXG4gIC8vIE5hbWVkIHRoZSBmaXJzdCB0aW1lIGl0IGFuY2hvcnMgcmF0aGVyIHRoYW4gZnJvbSB1c2VJZDogZXZlcnkgZWxlbWVudCB0aGF0IG1heSBvcGVuIGEgbWVudVxuICAvLyB3b3VsZCBvdGhlcndpc2UgdGFrZSBhbiBpZCwgc2hpZnRpbmcgdGhvc2Ugb2YgZXZlcnl0aGluZyByZW5kZXJlZCBhZnRlciBpdC5cbiAgY29uc3Qgb3duQW5jaG9yTmFtZVJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgaWYgKGFuY2hvcnNJdHNlbGYgJiYgb3duQW5jaG9yTmFtZVJlZi5jdXJyZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICBvd25BbmNob3JOYW1lUmVmLmN1cnJlbnQgPSBgLS1hbmNob3Itb3duLSR7Kytvd25BbmNob3JOYW1lQ291bnR9YDtcbiAgfVxuXG4gIGNvbnN0IG93bkFuY2hvck5hbWUgPSBvd25BbmNob3JOYW1lUmVmLmN1cnJlbnQ7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudFJlZi5jdXJyZW50O1xuXG4gICAgaWYgKCFhbmNob3JzSXRzZWxmIHx8ICFlbGVtZW50IHx8IG93bkFuY2hvck5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoYW5jaG9yTmFtZVByb3BlcnR5LCBvd25BbmNob3JOYW1lKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBlbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KGFuY2hvck5hbWVQcm9wZXJ0eSk7XG5cbiAgICAgIC8vIExlZnQgYXMgaXQgd2FzIGZvdW5kOiBhbiBlbGVtZW50IHdpdGggbm8gc3R5bGUgb2YgaXRzIG93biBrZWVwcyBubyBlbXB0eSBhdHRyaWJ1dGUuXG4gICAgICBpZiAoZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJzdHlsZVwiKSA9PT0gXCJcIikge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcInN0eWxlXCIpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFthbmNob3JzSXRzZWxmLCBvd25BbmNob3JOYW1lLCBlbGVtZW50UmVmXSk7XG5cbiAgcmV0dXJuIGVuY2xvc2luZ0FuY2hvck5hbWUgPz8gb3duQW5jaG9yTmFtZTtcbn07XG5cbmxldCBvd25BbmNob3JOYW1lQ291bnQgPSAwO1xuXG4vKiogVGVsbHMgd2hhdCBpcyByZW5kZXJlZCBpbnNpZGUgd2hpY2ggYW5jaG9yIHRvIHBvc2l0aW9uIGFnYWluc3Q7IHNlZSB7QGxpbmsgdXNlQW5jaG9yTmFtZUZvcn0uICovXG5leHBvcnQgY29uc3QgQW5jaG9yTmFtZVByb3ZpZGVyID0gYW5jaG9yTmFtZUNvbnRleHQuUHJvdmlkZXI7XG5cbnR5cGUgQW5jaG9yV3JhcHBlclByb3BzID0ge1xuICByZWFkb25seSBpc0FuY2hvcjogYm9vbGVhbjtcbiAgcmVhZG9ubHkgYW5jaG9yZWRBdDogQW5jaG9yZWRBdCB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVJlZjogQ29udHJpYnV0ZVJlZjtcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVByb3BzOiBDb250cmlidXRlUHJvcHM7XG4gIHJlYWRvbmx5IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBBbmNob3JXcmFwcGVyQ29tcG9uZW50ID0gKHtcbiAgaXNBbmNob3IsXG4gIGFuY2hvcmVkQXQsXG4gIGNvbnRyaWJ1dGVSZWYsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBBbmNob3JXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3Qgb3duQW5jaG9yTmFtZSA9IHRvQW5jaG9yTmFtZSh1c2VJZCgpKTtcbiAgY29uc3QgaW5oZXJpdGVkQW5jaG9yTmFtZSA9IHVzZUNvbnRleHQoYW5jaG9yTmFtZUNvbnRleHQpO1xuICBjb25zdCBlbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHBvaW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgY29udHJpYnV0ZVJlZihcbiAgICB1c2VDYWxsYmFjaygoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBlbGVtZW50O1xuICAgIH0sIFtdKSxcbiAgKTtcblxuICBjb25zdCBwb3NpdGlvbiA9IHR5cGVvZiBhbmNob3JlZEF0ID09PSBcInN0cmluZ1wiID8gYW5jaG9yZWRBdCA6IGFuY2hvcmVkQXQ/LnBvc2l0aW9uO1xuICBjb25zdCBwb2ludCA9IHR5cGVvZiBhbmNob3JlZEF0ID09PSBcIm9iamVjdFwiID8gYW5jaG9yZWRBdC5wb2ludCA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZ2FwID0gdHlwZW9mIGFuY2hvcmVkQXQgPT09IFwib2JqZWN0XCIgPyAoYW5jaG9yZWRBdC5nYXAgPz8gZGVmYXVsdEdhcCkgOiBkZWZhdWx0R2FwO1xuXG4gIGlmIChwb3NpdGlvbiAmJiAhcG9pbnQgJiYgIWluaGVyaXRlZEFuY2hvck5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVHJpZWQgdG8gcG9zaXRpb24gYW4gZWxlbWVudCBhdCBcIiR7cG9zaXRpb259XCIgd2l0aG91dCBhbiBhbmNob3IuIEVpdGhlciBnaXZlIGFuIGFuY2VzdG9yIHRoZSAkYW5jaG9yIHByb3AsIG9yIGFuY2hvciB0byBhIHBvaW50IGluc3RlYWQuYCxcbiAgICApO1xuICB9XG5cbiAgLy8gQSBwb2ludCBhbmNob3IgaXMgdGhlIGVsZW1lbnQncyBvd247IG90aGVyd2lzZSBpdCBwb3NpdGlvbnMgYWdhaW5zdCB3aGF0ZXZlciBhbmNob3IgZW5jbG9zZXMgaXQuXG4gIGNvbnN0IGFuY2hvck5hbWVUb1Bvc2l0aW9uQWdhaW5zdCA9IHBvaW50ID8gb3duQW5jaG9yTmFtZSA6IGluaGVyaXRlZEFuY2hvck5hbWU7XG5cbiAgaWYgKGFuY2hvcmVkQXQgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnRyaWJ1dGVQcm9wcyh7IHBvcG92ZXI6IFwibWFudWFsXCIgfSk7XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50UmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBbmNob3IpIHtcbiAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoYW5jaG9yTmFtZVByb3BlcnR5LCBvd25BbmNob3JOYW1lKTtcbiAgICB9XG5cbiAgICBpZiAocG9zaXRpb24pIHtcbiAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkocG9zaXRpb25Qcm9wZXJ0eSwgcG9zaXRpb24pO1xuICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShnYXBQcm9wZXJ0eSwgYCR7dFNoaXJ0U2l6ZUluUGl4ZWxzKGdhcCl9cHhgKTtcblxuICAgICAgLy8gT25seSB0b3dhcmQgdGhlIGFuY2hvciwgc28gdGhlIGVsZW1lbnQgc3RpbGwgbGluZXMgdXAgd2l0aCBpdCBvbiB0aGUgb3RoZXIgYXhpcy4gQVxuICAgICAgLy8gZmFsbGJhY2sgdGhhdCBtaXJyb3JzIHRoZSBwb3NpdGlvbiBtaXJyb3JzIHRoaXMgbWFyZ2luIHdpdGggaXQuXG4gICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KG1hcmdpblByb3BlcnR5VG93YXJkc0FuY2hvcihwb3NpdGlvbiksIGAke3RTaGlydFNpemVJblBpeGVscyhnYXApfXB4YCk7XG5cbiAgICAgIGlmIChhbmNob3JOYW1lVG9Qb3NpdGlvbkFnYWluc3QpIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShwb3NpdGlvbkFuY2hvclByb3BlcnR5LCBhbmNob3JOYW1lVG9Qb3NpdGlvbkFnYWluc3QpO1xuICAgICAgfVxuXG4gICAgICBpZiAocG9pbnQpIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShwb2ludFhQcm9wZXJ0eSwgYCR7cG9pbnQueH1weGApO1xuICAgICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHBvaW50WVByb3BlcnR5LCBgJHtwb2ludC55fXB4YCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICAvLyBUaGUgcG9pbnQgcmlzZXMgdG8gdGhlIHRvcCBsYXllciBhbG9uZyB3aXRoIHdoYXQgaXMgYW5jaG9yZWQgdG8gaXQuIEEgYGZpeGVkYCBlbGVtZW50IHJlc29sdmVzXG4gIC8vIGFnYWluc3QgdGhlIG5lYXJlc3QgYW5jZXN0b3IgdGhhdCB0cmFuc2Zvcm1zLCBmaWx0ZXJzIG9yIGNvbnRhaW5zIGl0cyBzdWJ0cmVlLCBzbyBhIHBvaW50IGxlZnRcbiAgLy8gaW4gdGhlIHRyZWUgbGFuZHMgYXQgdGhlIGN1cnNvciBwbHVzIHRoYXQgYW5jZXN0b3IncyBvd24gb2Zmc2V0IFx1MjAxNCB3aGljaCBpcyBob3cgYSBtZW51IG9wZW5lZFxuICAvLyBvdmVyIGEgbmF2aWdhdG9yIGl0ZW0gdXNlZCB0byBhcHBlYXIgaHVuZHJlZHMgb2YgcGl4ZWxzIGJlbG93IHRoZSBjdXJzb3IuXG4gIC8vXG4gIC8vIFNob3duIGJlZm9yZSB0aGUgZWxlbWVudCBhbmNob3JlZCB0byBpdDogYW4gYW5jaG9yIGhhcyB0byByZWFjaCB0aGUgdG9wIGxheWVyIGZpcnN0LCBvciB0aGVcbiAgLy8gZWxlbWVudCBwb3NpdGlvbmluZyBhZ2FpbnN0IGl0IGZpbmRzIG5vIGFuY2hvciBhdCBhbGwgYW5kIGxhbmRzIGluIHRoZSB2aWV3cG9ydCdzIGNvcm5lci5cbiAgLy9cbiAgLy8gT25jZSwgb24gbW91bnQ6IGFuIGVsZW1lbnQgaXMgYW5jaG9yZWQgdG8gYSBwb2ludCBmb3IgYXMgbG9uZyBhcyBpdCBpcyBtb3VudGVkLCBzaW5jZSB0aGUgcG9pbnRcbiAgLy8gaXMgd2hlcmUgdGhlIGN1cnNvciB3YXMgd2hlbiB3aGF0ZXZlciBvcGVuZWQgaXQgd2FzIG9wZW5lZC5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gcG9pbnRSZWYuY3VycmVudDtcblxuICAgIGlmICghZWxlbWVudCB8fCAhaXNQb3BvdmVyQ2FwYWJsZShlbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQuc2hvd1BvcG92ZXIoKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoZWxlbWVudC5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBlbGVtZW50LmhpZGVQb3BvdmVyKCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudDtcblxuICAgIGlmICghcG9zaXRpb24gfHwgIWVsZW1lbnQgfHwgIWlzUG9wb3ZlckNhcGFibGUoZWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlbGVtZW50LnNob3dQb3BvdmVyKCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgZWxlbWVudC5oaWRlUG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtwb3NpdGlvbl0pO1xuXG4gIGNvbnN0IGNvbnRlbnQgPSBwb2ludCA/IChcbiAgICA8PlxuICAgICAgey8qIEEgemVyby1zaXplIGFuY2hvciBhdCB0aGUgcG9pbnQsIHNvIGEgY3Vyc29yLWFuY2hvcmVkIGVsZW1lbnQgcG9zaXRpb25zIGxpa2UgYW55IG90aGVyLiAqL31cbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXtwb2ludFJlZiBhcyBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+fVxuICAgICAgICBwb3BvdmVyPVwibWFudWFsXCJcbiAgICAgICAgZGF0YS1hbmNob3ItcG9pbnQtdGVzdFxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5hbmNob3JQb2ludH1cbiAgICAgICAgc3R5bGU9e1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFthbmNob3JOYW1lUHJvcGVydHldOiBvd25BbmNob3JOYW1lLFxuICAgICAgICAgICAgW3BvaW50WFByb3BlcnR5XTogYCR7cG9pbnQueH1weGAsXG4gICAgICAgICAgICBbcG9pbnRZUHJvcGVydHldOiBgJHtwb2ludC55fXB4YCxcbiAgICAgICAgICB9IGFzIFJlYWN0LkNTU1Byb3BlcnRpZXNcbiAgICAgICAgfVxuICAgICAgLz5cblxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICApIDogKFxuICAgIGNoaWxkcmVuXG4gICk7XG5cbiAgaWYgKGlzQW5jaG9yKSB7XG4gICAgcmV0dXJuIDxhbmNob3JOYW1lQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17b3duQW5jaG9yTmFtZX0+e2NvbnRlbnR9PC9hbmNob3JOYW1lQ29udGV4dC5Qcm92aWRlcj47XG4gIH1cblxuICByZXR1cm4gPD57Y29udGVudH08Lz47XG59O1xuXG5leHBvcnQgY29uc3QgYW5jaG9yUGx1Z2luID0gZ2V0UGx1Z2luPFxuICBBbmNob3JQbHVnaW5Qcm9wcyxcbiAgW1xuICAgIHR5cGVvZiBjbGFzc05hbWVQbHVnaW4sXG4gICAgdHlwZW9mIGNvbG9yUGx1Z2luLFxuICAgIHR5cGVvZiBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4sXG4gICAgdHlwZW9mIGJvcmRlclBsdWdpbixcbiAgICB0eXBlb2YgcGFkZGluZ1BsdWdpbixcbiAgICB0eXBlb2YgbWFyZ2luUGx1Z2luLFxuICAgIHR5cGVvZiBvdmVyZmxvd1BsdWdpbixcbiAgXVxuPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkYW5jaG9yLCAkYW5jaG9yZWRBdCwgJGNsYXNzTmFtZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkYW5jaG9yICYmICRhbmNob3JlZEF0ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyAkYW5jaG9yOiB1bmRlZmluZWQsICRhbmNob3JlZEF0OiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGFuY2hvcjogdW5kZWZpbmVkLFxuICAgICRhbmNob3JlZEF0OiB1bmRlZmluZWQsXG5cbiAgICAvLyBSaXNpbmcgdG8gdGhlIHRvcCBsYXllciBpcyBhIHRlY2huaWNhbGl0eSBvZiBwb3NpdGlvbmluZywgYnV0IHRoZSBicm93c2VyIG1ha2VzIGl0IGEgbG9vazpcbiAgICAvLyBjb2xvdXJzIG9mIGl0cyBvd24sIGEgYm9yZGVyLCBwYWRkaW5nLCBhbmQgYSBtYXJnaW4gdGhhdCB3b3VsZCBjZW50ZXIgdGhlIGVsZW1lbnQuIFVuZG8gdGhhdCxcbiAgICAvLyBzbyBhbiBlbGVtZW50IHBvc2l0aW9uZWQgdGhpcyB3YXkgbG9va3MgbGlrZSBpdCBkb2VzIGFueXdoZXJlIGVsc2UsIGFuZCBsZXQgd2hhdGV2ZXIgaXQgc2F5c1xuICAgIC8vIGFib3V0IGl0c2VsZiB3aW4uXG4gICAgLi4uKCRhbmNob3JlZEF0ICE9PSB1bmRlZmluZWQgJiYge1xuICAgICAgJGNvbG9yOiBwcm9wcy4kY29sb3IgPz8gXCJpbmhlcml0XCIsXG4gICAgICAkYmFja2dyb3VuZENvbG9yOiBwcm9wcy4kYmFja2dyb3VuZENvbG9yID8/IFwidHJhbnNwYXJlbnRcIixcbiAgICAgICRib3JkZXI6IHsgd2lkdGg6IFwiemVyb1wiLCAuLi5wcm9wcy4kYm9yZGVyIH0sXG4gICAgICAkcGFkZGluZzogcHJvcHMuJHBhZGRpbmcgPz8gXCJ6ZXJvXCIsXG4gICAgICAkbWFyZ2luOiBwcm9wcy4kbWFyZ2luID8/IFwiemVyb1wiLFxuICAgICAgJG92ZXJmbG93OiBwcm9wcy4kb3ZlcmZsb3cgPz8gXCJ2aXNpYmxlXCIsXG4gICAgfSksXG5cbiAgICAkY2xhc3NOYW1lOiBjc3NOYW1lcygkY2xhc3NOYW1lLCB7XG4gICAgICBbc3R5bGVzLmFuY2hvcl06ICEhJGFuY2hvcixcbiAgICAgIFtzdHlsZXMuYW5jaG9yZWRBdF06ICRhbmNob3JlZEF0ICE9PSB1bmRlZmluZWQsXG4gICAgfSksXG5cbiAgICAkd3JhcHBlcjoge1xuICAgICAgQ29tcG9uZW50OiBBbmNob3JXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgcHJvcHM6IHsgaXNBbmNob3I6ICEhJGFuY2hvciwgYW5jaG9yZWRBdDogJGFuY2hvcmVkQXQgfSxcbiAgICB9LFxuICB9O1xufSk7XG5cbmNvbnN0IG1hcmdpblByb3BlcnR5VG93YXJkc0FuY2hvciA9IChwb3NpdGlvbjogQW5jaG9yUG9zaXRpb24pID0+IHtcbiAgaWYgKHBvc2l0aW9uLnN0YXJ0c1dpdGgoXCJib3R0b21cIikpIHtcbiAgICByZXR1cm4gXCJtYXJnaW4tdG9wXCI7XG4gIH1cblxuICBpZiAocG9zaXRpb24uc3RhcnRzV2l0aChcInRvcFwiKSkge1xuICAgIHJldHVybiBcIm1hcmdpbi1ib3R0b21cIjtcbiAgfVxuXG4gIHJldHVybiBwb3NpdGlvbi5zdGFydHNXaXRoKFwicmlnaHRcIikgPyBcIm1hcmdpbi1sZWZ0XCIgOiBcIm1hcmdpbi1yaWdodFwiO1xufTtcblxuY29uc3QgYW5jaG9yTmFtZVByb3BlcnR5ID0gXCItLWFuY2hvci1uYW1lXCI7XG5jb25zdCBnYXBQcm9wZXJ0eSA9IFwiLS1hbmNob3ItZ2FwXCI7XG5jb25zdCBwb3NpdGlvbkFuY2hvclByb3BlcnR5ID0gXCItLWFuY2hvci10YXJnZXRcIjtcbmNvbnN0IHBvc2l0aW9uUHJvcGVydHkgPSBcIi0tYW5jaG9yLXBvc2l0aW9uXCI7XG5jb25zdCBwb2ludFhQcm9wZXJ0eSA9IFwiLS1hbmNob3ItcG9pbnQteFwiO1xuY29uc3QgcG9pbnRZUHJvcGVydHkgPSBcIi0tYW5jaG9yLXBvaW50LXlcIjtcblxuLyoqIEFuY2hvciBuYW1lcyBhcmUgZGFzaGVkIGlkZW50cywgc28gdGhlIGdlbmVyYXRlZCBpZCBoYXMgdG8gbG9zZSBldmVyeXRoaW5nIGVsc2UuICovXG5jb25zdCB0b0FuY2hvck5hbWUgPSAoaWQ6IHN0cmluZykgPT4gYC0tYW5jaG9yLSR7aWQucmVwbGFjZSgvW15hLXpBLVowLTldL2csIFwiXCIpfWA7XG5cbnR5cGUgUG9wb3ZlckNhcGFibGUgPSBIVE1MRWxlbWVudCAmIHsgc2hvd1BvcG92ZXI6IFZvaWRGdW5jdGlvbjsgaGlkZVBvcG92ZXI6IFZvaWRGdW5jdGlvbiB9O1xuXG5jb25zdCBpc1BvcG92ZXJDYXBhYmxlID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogZWxlbWVudCBpcyBQb3BvdmVyQ2FwYWJsZSA9PlxuICB0eXBlb2YgKGVsZW1lbnQgYXMgUGFydGlhbDxQb3BvdmVyQ2FwYWJsZT4pLnNob3dQb3BvdmVyID09PSBcImZ1bmN0aW9uXCI7XG4iLCAiaW1wb3J0IHR5cGUgeyBGb2N1c2FibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL2ZvY3VzYWJsZVwiO1xuXG5leHBvcnQgdHlwZSAkRm9jdXNhYmxlUHJvcHM8Rm9jdXNlZEl0ZW0+ID0gUmVxdWlyZWQ8Rm9jdXNhYmxlUGx1Z2luUHJvcHM8Rm9jdXNlZEl0ZW0+PltcIiRmb2N1c2FibGVcIl07XG5cbi8qKlxuICogSWRlbnRpZmllcyBhIHNldCBvZiBmb2N1c2FibGVzIGNvbXBldGluZyBmb3Igb25lIGZvY3VzZWQgaXRlbS4gRWxlbWVudHMgam9pbiBpdCBieSBkZWNsYXJpbmdcbiAqIGAkZm9jdXNhYmxlYDsgbm90aGluZyBlbnVtZXJhdGVzIHRoZW0gYXQgdGhlIGNhbGwgc2l0ZS5cbiAqL1xuZXhwb3J0IHR5cGUgRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT4gPSB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlzS2V5Ym9hcmROYXZpZ2FibGU6IGZhbHNlO1xuICBmb2N1c2FibGU6IChpdGVtOiBGb2N1c2VkSXRlbSkgPT4gJEZvY3VzYWJsZVByb3BzPEZvY3VzZWRJdGVtPjtcbn07XG5cbi8qKiBXaGljaCBhcnJvdyBrZXlzIG1vdmUgZm9jdXMgd2l0aGluIGEga2V5Ym9hcmQtbmF2aWdhYmxlIGNvbnRleHQuICovXG5leHBvcnQgdHlwZSBLZXlib2FyZE5hdmlnYXRpb25PcmllbnRhdGlvbiA9IFwidmVydGljYWxcIiB8IFwiaG9yaXpvbnRhbFwiIHwgXCJib3RoXCI7XG5cbi8qKlxuICogQSBmb2N1c2FibGUgY29udGV4dCB3aG9zZSBtZW1iZXJzIGFyZSBhbHNvIG5hdmlnYXRlZCB3aXRoIGFycm93IGtleXMsIGluIHRoZSBvcmRlciB0aGV5IHN0YXRlLlxuICogVGhlIGxvd2VzdCBvcmRlciBudW1iZXIgaXMgZm9jdXNlZCB3aGVuIHRoZSBtZW1iZXJzIGFwcGVhciwgdW5sZXNzIHRoZSBjb250ZXh0IHNheXMgb3RoZXJ3aXNlLFxuICogYW5kIGZvY3VzIHJldHVybnMgdG8gdGhlIGVuY2xvc2luZyBjb250ZXh0IHdoZW4gdGhleSBnbyBhd2F5LlxuICovXG5leHBvcnQgdHlwZSBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0ge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBpc0tleWJvYXJkTmF2aWdhYmxlOiB0cnVlO1xuICByZWFkb25seSBvcmllbnRhdGlvbjogS2V5Ym9hcmROYXZpZ2F0aW9uT3JpZW50YXRpb247XG4gIHJlYWRvbmx5IHRha2VzRm9jdXNBc0l0QXBwZWFyczogYm9vbGVhbjtcbiAgZm9jdXNhYmxlOiAoaXRlbTogRm9jdXNlZEl0ZW0sIG9yZGVyTnVtYmVyOiBudW1iZXIpID0+ICRGb2N1c2FibGVQcm9wczxGb2N1c2VkSXRlbT47XG59O1xuXG5leHBvcnQgdHlwZSBBbnlGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtID0gYW55PiA9XG4gIHwgRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT5cbiAgfCBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+O1xuXG5jb25zdCBjb250ZXh0c0J5S2V5ID0gbmV3IE1hcDxzdHJpbmcsIEFueUZvY3VzYWJsZUNvbnRleHQ+KCk7XG5cbi8qKlxuICogRGVjbGFyZXMgYSBmb2N1c2FibGUgY29udGV4dC4gVGhlIHNhbWUgaWQgYWx3YXlzIHlpZWxkcyB0aGUgc2FtZSBjb250ZXh0LCBzbyBjYWxsaW5nIHRoaXMgZHVyaW5nXG4gKiByZW5kZXIgaXMgc3RhYmxlIFx1MjAxNCB3aGljaCBpcyB3aGF0IGxldHMgYSBzdXJmYWNlIHdpdGggc2V2ZXJhbCBsaXZlIGluc3RhbmNlcyBuYW1lIG9uZSBjb250ZXh0IHBlclxuICogaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRGb2N1c2FibGVDb250ZXh0ID0gPEZvY3VzZWRJdGVtLD4oaWQ6IHN0cmluZyk6IEZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0+XG4gIGdldE9yQ3JlYXRlQ29udGV4dChgZm9jdXNhYmxlOiR7aWR9YCwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQ6IEZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0ge1xuICAgICAgaWQsXG4gICAgICBpc0tleWJvYXJkTmF2aWdhYmxlOiBmYWxzZSxcbiAgICAgIGZvY3VzYWJsZTogKGl0ZW0pID0+ICh7IGNvbnRleHQsIGl0ZW0gfSksXG4gICAgfTtcblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9KTtcblxuZXhwb3J0IHR5cGUgS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFdoaWNoIGFycm93IGtleXMgbW92ZSBmb2N1cy4gRG93bndhcmRzIGJ5IGRlZmF1bHQsIGFzIG1vc3Qgc2V0cyBvZiB0aGluZ3MgYXJlIGxhaWQgb3V0OiB0aGVcbiAgICoga2V5cyBvZiB0aGUgb3RoZXIgYXhpcyBhcmUgdGhlbiBsZWZ0IHRvIHdoYXRldmVyIHRoZSBtZW1iZXJzIHdhbnQgdGhlbSBmb3IsIHN1Y2ggYXMgYSBtZW1iZXJcbiAgICogb3BlbmluZyBzb21ldGhpbmcgb2YgaXRzIG93biB3aXRoIEFycm93UmlnaHQuXG4gICAqL1xuICByZWFkb25seSBvcmllbnRhdGlvbj86IEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIGlzIGZvY3VzZWQgYXMgdGhlIG1lbWJlcnMgYXBwZWFyLiBJdCBpcyBieSBkZWZhdWx0OiBhIHNldCBvZlxuICAgKiBtZW1iZXJzIGFwcGVhcmluZyBpcyB1c3VhbGx5IHNvbWV0aGluZyB0aGUgdXNlciBhc2tlZCBmb3IgYW5kIHdpbGwgZ28gb24gd2l0aC4gTm90IHNvIGZvciBhIHNldFxuICAgKiB0aGF0IGFwcGVhcnMgYmVjYXVzZSB0aGUgcG9pbnRlciByZXN0cyBvbiBzb21ldGhpbmcsIHdoZXJlIHdoYXQgdGhlIHVzZXIgaXMgbG9va2luZyBhdCBpcyB3aGF0XG4gICAqIHRoZSBwb2ludGVyIGlzIG9uLCBhbmQgZm9jdXMgc3RheXMgdGhlcmUgdW50aWwgZWl0aGVyIHRoZSBwb2ludGVyIG9yIHRoZSBrZXlib2FyZCBtb3ZlcyBpdC5cbiAgICovXG4gIHJlYWRvbmx5IHRha2VzRm9jdXNBc0l0QXBwZWFycz86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIERlY2xhcmVzIGEgZm9jdXNhYmxlIGNvbnRleHQgd2hvc2UgbWVtYmVycyBhcmUgbmF2aWdhdGVkIHdpdGggYXJyb3cga2V5cy4gQXMgd2l0aFxuICoge0BsaW5rIGdldEZvY3VzYWJsZUNvbnRleHR9LCB0aGUgc2FtZSBpZCBhbHdheXMgeWllbGRzIHRoZSBzYW1lIGNvbnRleHQgXHUyMDE0IHRoZSBzYW1lIGlkIHdpdGggdGhlXG4gKiBzYW1lIG9wdGlvbnMsIHRoYXQgaXMuIEEgY29udGV4dCB3aXRoIG90aGVyIG9wdGlvbnMgaXMgYSBjb250ZXh0IG9mIGl0cyBvd24sIHdoYXRldmVyIGl0IGlzXG4gKiBuYW1lZCwgc28gYSBzdXJmYWNlIHRoYXQgYXNrcyBmb3IgaXRzIGNvbnRleHQgYnkgdGhlIHNhbWUgbmFtZSB3aXRoIG90aGVyIG9wdGlvbnMgbW92ZXMgaXRzXG4gKiBtZW1iZXJzIHRoZXJlIGFzIHRoZXkgcmVuZGVyIGFnYWluLCBhbmQgdGhleSBhcHBlYXIgYW5ldyBhcyBmYXIgYXMgdGhhdCBjb250ZXh0IGlzIGNvbmNlcm5lZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dCA9IDxGb2N1c2VkSXRlbSw+KFxuICBpZDogc3RyaW5nLFxuICBvcHRpb25zOiBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHRPcHRpb25zID0ge30sXG4pOiBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0+IHtcbiAgY29uc3Qgb3JpZW50YXRpb24gPSBvcHRpb25zLm9yaWVudGF0aW9uID8/IFwidmVydGljYWxcIjtcbiAgY29uc3QgdGFrZXNGb2N1c0FzSXRBcHBlYXJzID0gb3B0aW9ucy50YWtlc0ZvY3VzQXNJdEFwcGVhcnMgPz8gdHJ1ZTtcblxuICBjb25zdCBrZXkgPSBga2V5Ym9hcmQtbmF2aWdhYmxlOiR7aWR9fCR7b3JpZW50YXRpb259fCR7dGFrZXNGb2N1c0FzSXRBcHBlYXJzID8gXCJ0YWtpbmdcIiA6IFwibGVhdmluZ1wifS1mb2N1c2A7XG5cbiAgcmV0dXJuIGdldE9yQ3JlYXRlQ29udGV4dChrZXksICgpID0+IHtcbiAgICBjb25zdCBjb250ZXh0OiBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0ge1xuICAgICAgaWQsXG4gICAgICBpc0tleWJvYXJkTmF2aWdhYmxlOiB0cnVlLFxuICAgICAgb3JpZW50YXRpb24sXG4gICAgICB0YWtlc0ZvY3VzQXNJdEFwcGVhcnMsXG4gICAgICBmb2N1c2FibGU6IChpdGVtLCBvcmRlck51bWJlcikgPT4gKHsgY29udGV4dCwgaXRlbSwgb3JkZXJOdW1iZXIgfSksXG4gICAgfTtcblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9KTtcbn07XG5cbmNvbnN0IGdldE9yQ3JlYXRlQ29udGV4dCA9IDxUIGV4dGVuZHMgQW55Rm9jdXNhYmxlQ29udGV4dD4oa2V5OiBzdHJpbmcsIGNyZWF0ZTogKCkgPT4gVCk6IFQgPT4ge1xuICBjb25zdCBleGlzdGluZyA9IGNvbnRleHRzQnlLZXkuZ2V0KGtleSk7XG5cbiAgaWYgKGV4aXN0aW5nKSB7XG4gICAgcmV0dXJuIGV4aXN0aW5nIGFzIFQ7XG4gIH1cblxuICBjb25zdCBjcmVhdGVkID0gY3JlYXRlKCk7XG5cbiAgY29udGV4dHNCeUtleS5zZXQoa2V5LCBjcmVhdGVkKTtcblxuICByZXR1cm4gY3JlYXRlZDtcbn07XG4iLCAiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyAkRm9jdXNhYmxlUHJvcHMgfSBmcm9tIFwiLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuLyoqXG4gKiBDYXJyaWVzIHRoZSBmb2N1c2FibGUgYW4gZWxlbWVudCBpcywgYXMgZGVjaWRlZCBieSB0aGUgc3VyZmFjZSBpdCByZW5kZXJzIGluIHJhdGhlciB0aGFuIGJ5IHRoZVxuICogZWxlbWVudCBpdHNlbGY6IHdoaWNoIGNvbnRleHQgaXQgY29tcGV0ZXMgaW4sIHdoaWNoIGl0ZW0gaXQgc3RhbmRzIGZvciwgYW5kIHdoZXJlIGl0IHNpdHMgYW1vbmdcbiAqIHRoZSBvdGhlcnMuXG4gKlxuICogQSBzdXJmYWNlIHRoYXQga25vd3MgaXRzIGl0ZW1zIFx1MjAxNCBhIG1lbnUsIGEgdG9vbGJhciBcdTIwMTQgcHJvdmlkZXMgb25lIG9mIHRoZXNlIHBlciBpdGVtOyB3aGF0ZXZlclxuICogZHJhd3MgdGhlIGl0ZW0gYWRvcHRzIGl0IHRocm91Z2gge0BsaW5rIHVzZUZvY3VzYWJsZUl0ZW19IHdoaWxlIGtub3dpbmcgbm90aGluZyBhYm91dCB0aGVcbiAqIHN1cmZhY2UsIHdoaWNoIGlzIHdoYXQgbGV0cyBhIGR1bWIgY29tcG9uZW50IGJlIGtleWJvYXJkLW5hdmlnYWJsZSBpbiBvbmUgc3VyZmFjZSBhbmQgb3JkaW5hcnlcbiAqIGluIGFub3RoZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBjb250ZXh0Rm9yRm9jdXNhYmxlSXRlbSA9IGNyZWF0ZUNvbnRleHQ8JEZvY3VzYWJsZVByb3BzPGFueT4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbi8qKlxuICogVGhlIGAkZm9jdXNhYmxlYCBvZiB0aGUgaXRlbSBhIGNvbXBvbmVudCBkcmF3cywgd2hlbiB0aGUgc3VyZmFjZSBhcm91bmQgaXQgZGVjaWRlZCBvbmUuXG4gKiBgdW5kZWZpbmVkYCBvdXRzaWRlIHN1Y2ggYSBzdXJmYWNlLCB3aGljaCBpcyB3aGF0IG1ha2VzIGFkb3B0aW5nIGl0IGEgbWF0dGVyIG9mIHBhc3NpbmcgaXQgb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgUm93ID0gKHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pID0+IChcbiAqICAgPENsaWNrYWJsZUxpICRmb2N1c2FibGU9e3VzZUZvY3VzYWJsZUl0ZW0oKX0+e2NoaWxkcmVufTwvQ2xpY2thYmxlTGk+XG4gKiApO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VGb2N1c2FibGVJdGVtID0gKCkgPT4gdXNlQ29udGV4dChjb250ZXh0Rm9yRm9jdXNhYmxlSXRlbSk7XG4iLCAiaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgeyBnZXRIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4uL2hvdmVyYWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBNdXRhYmxlUmVmT2JqZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNvbnRleHRJc0JlaW5nSG92ZXJlZEluamVjdGFibGUgfSBmcm9tIFwiLi9fcHJpdmF0ZS9jb250ZXh0LWlzLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgY29uc3QgdXNlTG9jYWxIb3ZlcmFibGUgPSA8RWxlbSBleHRlbmRzIEhUTUxFbGVtZW50PigpID0+IHtcbiAgY29uc3QgaG92ZXJhYmxlQ29udGV4dCA9IHVzZU1lbW8oKCkgPT4gZ2V0SG92ZXJhYmxlQ29udGV4dDxNdXRhYmxlUmVmT2JqZWN0PEVsZW0gfCBudWxsPj4oKSwgW10pO1xuICBjb25zdCByZWYgPSB1c2VSZWY8RWxlbT4obnVsbCk7XG4gIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSB1c2VTeW5jSW5qZWN0KGNvbnRleHRJc0JlaW5nSG92ZXJlZEluamVjdGFibGUsIGhvdmVyYWJsZUNvbnRleHQpO1xuXG4gIHJldHVybiB7XG4gICAgcmVmLFxuICAgIGNvbnRleHQ6IGhvdmVyYWJsZUNvbnRleHQuaG92ZXJhYmxlKHJlZiksXG4gICAgY29tcG9uZW50SXNIb3ZlcmVkOiBpdGVtQmVpbmdIb3ZlcmVkLFxuICB9O1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7QUNBQSwrQkFBZ0Q7QUFFaEQsbUJBQStDO0FBd0R0QztBQXBDRixJQUFNLG9CQUFvQixDQUFDLG1CQUFrRDtBQUNsRixRQUFNLCtCQUEyQixxQkFBMEIsTUFBUztBQUNwRSxRQUFNLGlCQUFhLHFCQUFPLGNBQWM7QUFFeEMsOEJBQVUsTUFBTTtBQUNkLGVBQVcsVUFBVTtBQUFBLEVBQ3ZCLENBQUM7QUFFRCw4QkFBVSxNQUFNO0FBQ2QsVUFBTSw0QkFBNEIsQ0FBQyxVQUF3QjtBQUN6RCxVQUFJ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O0FBYW5DLElBQU0sOEJBQTBCLDhCQUFnRCxNQUFTO0FBYXpGLElBQU0sbUJBQW1CLFVBQU0sMkJBQVcsdUJBQXVCOzs7QUMxQnhFLElBQUFDLHNCQUE4QjtBQUU5QixJQUFBQyxpQkFBdUQ7QUFHaEQsSUFBTSxvQkFBb0IsTUFBZ0M7QUFDL0QsUUFBTSx1QkFBbUIsd0JBQVEsTUFBTSxvQkFBbUQsR0FBRyxDQUFDLENBQUM7QUFDL0YsUUFBTSxVQUFNLHVCQUFhLElBQUk7QUFDN0IsUUFBTSx1QkFBbUIsbUNBQWMsaUNBQWlDLGdCQUFnQjtBQUV4RixTQUFPO0FBQUEsSUFDTDtBQUFBLElBQ0EsU0FBUyxpQkFBaUIsVUFBVSxHQUFHO0FBQUEsSUFDdkMsb0JBQW9CO0FBQUEsRUFDdEI7QUFDRjsiLAogICJuYW1lcyI6IFsiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAidG9Db250ZXh0TWFwIiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2luamVjdGFibGUiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X3JlYWN0X2RvbSIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfZnAiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXMiLCAiaW1wb3J0X2ZwIiwgImxvZGFzaENhcGl0YWxpemUiLCAiaW1wb3J0X2ZwIiwgImFsaWFzVG9Ob21pbmFsIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiaW1wb3J0X2ZlYXR1cmVfY29yZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfZnAiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAibW9kdWxlcyIsICJtb2R1bGVzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgIm1vZHVsZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaXNQZXJjZW50YWdlIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJhbGlhc1RvTm9taW5hbCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9tb2J4IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X21vYnhfcmVhY3QiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZnAiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdGVzdF91dGlscyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdGVzdF91dGlscyIsICJzdHlsZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3Rlc3RfdXRpbHMiLCAic3R5bGVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJzdHlsZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9yZWFjdF9kb20iLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9qc3hfcnVudGltZSIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3JlYWN0X2RvbSIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImlzUG9wb3ZlckNhcGFibGUiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgInN0b3BQcm9wYWdhdGlvbiIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X3JlYWN0Il0KfQo=
|
|
3338
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vaW5kZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2VuYWJsZWQvZW5hYmxlZC5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2NvbXB1dGVkLW5vdy5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAubW9kdWxlLnNjc3MiLCAiLi4vc3JjL2VsZW1lbnRzL21pbmltYWwtZGl2LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZS5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9wYWRkaW5nL3BhZGRpbmcudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3BhZGRpbmcvcGFkZGluZy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvci5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtY29ybmVyLXN0eWxlcy50cyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvZ2V0LXNpZGUtc3R5bGVzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvbnQvZm9udC50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZm9udC9mb250Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvdy50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9uby1wb2ludGVyLWV2ZW50cy9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9yZWYvcmVmLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWUudHMiLCAiLi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2dldC1kcmFnZ2FibGUtY29udGV4dC50cyIsICIuLi9zcmMvZmVhdHVyZS50cyIsICIuLi9zcmMvcGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL29uLXJpZ2h0LXRyaWdnZXIuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy90ZXN0LXV0aWwtcnVubmFibGUuaW5qZWN0YWJsZS50cyIsICJpbXBvcnQtZ2xvYjouLyoqLyouZ2xvYmFsLW92ZXJyaWRlLWZvci1pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvN2I4NzYyMmItYWQ0YS00ZmMwLTk0NmMtZjRhYjFhMDA2OTQ0IiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuLmRlZmF1bHQtb3ZlcnJpZGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cyIsICIuLi9zcmMvcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzIiwgImltcG9ydC1nbG9iOi4vKiovKi5kZWZhdWx0LW92ZXJyaWRlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvYzlmOTFjZWYtZmE3Yi00YzRiLWJiMDItZmVmY2FmODAzNjliIiwgImltcG9ydC1nbG9iOi4vKiovKi5pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvYjViYzJiOTUtNzkxZS00NGZhLWI1ZjktOGY0YjdiZmQ1NWY2IiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hbmNob3IvYW5jaG9yLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvY29sb3IvY29sb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2N1cnNvci9jdXJzb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50cy5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9tYXJnaW4vbWFyZ2luLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQvb2Zmc2V0Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnbi5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzIiwgImltcG9ydC1nbG9iOi4vKiovIShfKikuKHNjc3N8Y3NzKS9wcm9vZi1vZi11bmlxdWVuZXNzLzA5MDBmNjk2LTljMjMtNGE4Yi1hZGY1LTc3ODYyNDVjN2IyZSIsICIuLi9zcmMvcGx1Z2lucy9fc2hhcmVkL3NpemVzLnRzIiwgIi4uL3NyYy9lbGVtZW50cy50cyIsICIuLi9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JpZC9ncmlkLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvY29sb3IvY29sb3IudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JhZGllbnQvZ3JhZGllbnQudHMiLCAiLi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2Ryb3BwYWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24udHMiLCAiLi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldC50cyIsICIuLi9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4udHMiLCAiLi4vc3JjL3BsdWdpbnMvbWFyZ2luL21hcmdpbi50cyIsICIuLi9zcmMvcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC50cyIsICIuLi9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3RpbnQvdGludC50cyIsICIuLi9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZm9jdXNhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXVwZGF0ZS13aGVuLXByb3BzLWNoYW5nZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19wcml2YXRlL3VzZS1jbGVhbnVwLW9uLXVubW91bnQudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS91c2Uta2V5Ym9hcmQtbmF2aWdhdGlvbi50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvaGFuZGxlLWZvY3VzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS9oYW5kbGUtYmx1ci50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXByb2dyYW1tYXRpYy1mb2N1c2luZy50cyIsICIuLi9zcmMvcGx1Z2lucy9hcmVhL2FyZWEudHMiLCAiLi4vc3JjL3BsdWdpbnMvYXJlYS1jb250ZW50L2FyZWEtY29udGVudC50cyIsICIuLi9zcmMvcGx1Z2lucy9zaXplL3NpemUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL2NsaWNrYWJsZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ24udHMiLCAiLi4vc3JjL3BsdWdpbnMvYmxvY2svYmxvY2sudHN4IiwgIi4uL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZS50cyIsICIuLi9zcmMvcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS50cyIsICIuLi9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2Zsb2F0aW5nL2Zsb2F0aW5nLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudS50c3giLCAiLi4vc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2dldC1mb2N1c2FibGUtY29udGV4dC50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2ZvY3VzYWJsZS1pdGVtLWNvbnRleHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB0eXBlIHsgQmxvY2tQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Jsb2NrL2Jsb2NrXCI7XG5leHBvcnQgdHlwZSB7IEFuY2hvcmVkQXQsIEFuY2hvclBsdWdpblByb3BzLCBBbmNob3JQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2FuY2hvci9hbmNob3JcIjtcbmV4cG9ydCB7IHVzZU9uT3V0c2lkZUNsaWNrIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrXCI7XG5leHBvcnQgdHlwZSB7IE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vbi1vdXRzaWRlLWNsaWNrL29uLW91dHNpZGUtY2xpY2tcIjtcbmV4cG9ydCB0eXBlIHsgRHJvcERvd25NZW51UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudVwiO1xuZXhwb3J0IHR5cGUgeyBUZXh0QWxpZ25QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnblwiO1xuXG5leHBvcnQgeyB0eXBlIERvRm9jdXMsIHR5cGUgRG9Gb2N1c0ZvciwgZG9Gb2N1c0ZvckluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHsgaXRlbUJlaW5nRm9jdXNlZEluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlXCI7XG5leHBvcnQgdHlwZSB7IEl0ZW1CZWluZ0ZvY3VzZWQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBGb2N1c2FibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGVcIjtcbmV4cG9ydCB7IHR5cGUgRW5hYmxlZFBsdWdpblByb3BzLCBpc0Rpc2FibGVkIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZW5hYmxlZC9lbmFibGVkXCI7XG5leHBvcnQgdHlwZSB7IEdyYXlzY2FsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZVwiO1xuZXhwb3J0IHR5cGUgeyBUaW50UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90aW50L3RpbnRcIjtcbmV4cG9ydCB0eXBlIHsgRmFkZWRQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZhZGVkL2ZhZGVkXCI7XG5cbmV4cG9ydCB0eXBlIHsgU2lkZVN0eWxlcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtc2lkZS1zdHlsZXNcIjtcbmV4cG9ydCB0eXBlIHsgQ29ybmVyU3R5bGVzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2dldC1jb3JuZXItc3R5bGVzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMsXG4gIEJhY2tncm91bmRDb2xvcixcbiAgQmFja2dyb3VuZENvbG9yQWxpYXMsXG4gICRCYWNrZ3JvdW5kQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgT3V0bGluZVdpZHRoLFxuICAkT3V0bGluZVByb3BzLFxuICBPdXRsaW5lUGx1Z2luUHJvcHMsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEZsb2F0aW5nQ29udGVudEFyZ3MsXG4gIEZsb2F0aW5nQ29udGVudEZhY3RvcnksXG4gICRGbG9hdGluZ1Byb3BzLFxuICBGbG9hdGluZ1BsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mbG9hdGluZy9mbG9hdGluZ1wiO1xuXG5leHBvcnQgdHlwZSB7IFBhZGRpbmdQbHVnaW5Qcm9wcywgRGlyZWN0aW9uYWxQYWRkaW5nIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5leHBvcnQgdHlwZSB7IE1hcmdpblBsdWdpblByb3BzLCBEaXJlY3Rpb25hbE1hcmdpbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL21hcmdpbi9tYXJnaW5cIjtcbmV4cG9ydCB0eXBlIHsgT3ZlcmZsb3dQbHVnaW5Qcm9wcywgT3ZlcmZsb3cgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvd1wiO1xuXG5leHBvcnQgdHlwZSB7IEJveFNoYWRvd1BsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93XCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgSG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpblByb3BzLFxuICAkSG92ZXJhYmxlQnlEcmFnZ2luZ1Byb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nXCI7XG5leHBvcnQgeyBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZS1ieS1kcmFnZ2luZ1wiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEhvdmVyYWJsZUNvbnRleHQsXG4gICRIb3ZlcmFibGVQcm9wcyxcbiAgSG92ZXJhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEhvdmVyYWJsZVBsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBob3ZlcmFibGVQbHVnaW4sIGdldEhvdmVyYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBSZWZQbHVnaW5Qcm9wcywgJFJlZlByb3AsIFJlZkxpa2UgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9yZWYvcmVmXCI7XG5cbmV4cG9ydCB0eXBlIHsgQWJzb2x1dGVQbHVnaW5Qcm9wcywgQWJzb2x1dGVQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5leHBvcnQgdHlwZSB7IEhpZGRlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaGlkZGVuL2hpZGRlblwiO1xuZXhwb3J0IHR5cGUgeyBOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzXCI7XG5leHBvcnQgdHlwZSB7IE9mZnNldFBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldFwiO1xuZXhwb3J0IHR5cGUgeyBPZmZzZXRDaGlsZHJlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlblwiO1xuZXhwb3J0IHR5cGUgeyBSZWxhdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVHJhbnNpdGlvblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uXCI7XG5leHBvcnQgdHlwZSB7ICRJbnRlcmFjdGl2ZVByb3BzLCBJbnRlcmFjdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVmlzdWFsbHlIaWRkZW5QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW5cIjtcblxuZXhwb3J0IHR5cGUgeyAkQ3Vyc29yUHJvcHMsIEN1cnNvclBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvclwiO1xuZXhwb3J0IHR5cGUgeyBEaXNwbGF5Q29udGVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50c1wiO1xuXG5leHBvcnQgeyBpdGVtQmVpbmdEcmFnZ2VkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSB7IFRvb2x0aXBQbHVnaW5Qcm9wcywgJFRvb2x0aXBQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Rvb2x0aXAvdG9vbHRpcFwiO1xuZXhwb3J0IHsgU3R5bGVkVG9vbHRpcENvbnRhaW5lciwgZ2V0VG9vbHRpcFByb3BzLCBzdXBwcmVzc1Rvb2x0aXAgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXBcIjtcblxuZXhwb3J0IHR5cGUgeyBEcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBnZXREcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB7IGVsZW1lbnRDb21wb25lbnRGZWF0dXJlIH0gZnJvbSBcIi4vc3JjL2ZlYXR1cmVcIjtcblxuZXhwb3J0IHR5cGUgeyBTaXplUGx1Z2luUHJvcHMsICRTaXplUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9zaXplL3NpemVcIjtcblxuZXhwb3J0IHR5cGUgeyBXaWR0aFBsdWdpblByb3BzLCAkV2lkdGhQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoXCI7XG5cbmV4cG9ydCB0eXBlIHsgU3R5bGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlXCI7XG5cbmV4cG9ydCB0eXBlIHsgSGVpZ2h0UGx1Z2luUHJvcHMsICRIZWlnaHRQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHRcIjtcblxuZXhwb3J0IHR5cGUgeyBGb250UGx1Z2luUHJvcHMsIEZvbnRTaXplLCBGb250TGluZUhlaWdodCB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvbnQvZm9udFwiO1xuXG5leHBvcnQgdHlwZSB7IEdyaWRQbHVnaW5Qcm9wcywgR3JpZFByb3BzLCBHcmlkQ29sdW1ucyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2dyaWQvZ3JpZFwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIERyYWdnYWJsZVBsdWdpblByb3BzLFxuICBEcm9wcGFibGVQbHVnaW5Qcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIHsgQ29sb3JQbHVnaW5Qcm9wcywgJENvbG9yUHJvcHMsIFRleHRDb2xvciwgVGV4dENvbG9yQWxpYXMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jb2xvci9jb2xvclwiO1xuZXhwb3J0IHR5cGUgeyBDbGFzc05hbWVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEJvcmRlclBsdWdpblByb3BzLFxuICBCb3JkZXJDb2xvckFsaWFzLFxuICBCb3JkZXJDb2xvcixcbiAgJEJvcmRlclByb3BzLFxuICAkQm9yZGVyQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2JvcmRlclwiO1xuXG5leHBvcnQgdHlwZSB7IEJvcmRlclJhZGl1c1NpemUsIEJvcmRlcldpZHRoLCBCb3JkZXJTaWRlIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL3R5cGVzXCI7XG5cbmV4cG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcbmV4cG9ydCB7IHRTaGlydFNpemVJblBpeGVscywgc2l6ZVVuaXRJblBpeGVscyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgeyBEaXJlY3Rpb24sIFNob3J0RGlyZWN0aW9uIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9kaXJlY3Rpb25zXCI7XG5leHBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUge1xuICBDbGlja0hhbmRsZXIsXG4gIENsaWNrSGFuZGxlckRldGFpbHMsXG4gIENsaWNrUGx1Z2luUHJvcHMsXG4gIFBvc2l0aW9uMmQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcblxuZXhwb3J0IHR5cGUge1xuICBGbGV4UGx1Z2luUHJvcHMsXG4gIEhvcml6b250YWxGbGV4UHJvcHMsXG4gIE1heGltYWxGbGV4UHJvcHMsXG4gIFNpbXBsZUZsZXhQcm9wLFxuICBWZXJ0aWNhbEZsZXhQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZmxleC9mbGV4XCI7XG5cbmltcG9ydCB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZyxcbiAgc2hvd0Nzc01vZHVsZUNsdXR0ZXJGb3JQcm9kdWN0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcblxuZXhwb3J0IHsgcmVtb3ZlQ3NzTW9kdWxlQ2x1dHRlckZvclVuaXRUZXN0aW5nLCBzaG93Q3NzTW9kdWxlQ2x1dHRlckZvclByb2R1Y3Rpb24gfTtcblxuZXhwb3J0IHtcbiAgQ2xpY2thYmxlRGl2LFxuICBOYXYsXG4gIFN2ZyxcbiAgRGl2LFxuICBCdXR0b24sXG4gIEksXG4gIElucHV0LFxuICBGb3JtLFxuICBTcGFuLFxuICBUZXh0QXJlYSxcbiAgQSxcbiAgQ29kZSxcbiAgUHJlLFxuICBIMSxcbiAgSDIsXG4gIEgzLFxuICBINCxcbiAgSDUsXG4gIEg2LFxuICBQLFxuICBDbGlja2FibGVMaSxcbiAgTGksXG4gIE9sLFxuICBVbCxcbiAgVGgsXG4gIFRkLFxuICBUcixcbiAgVGFibGUsXG4gIExhYmVsLFxuICBUQm9keSxcbiAgRGlhbG9nLFxuICBDYW52YXMsXG4gIEltZyxcbn0gZnJvbSBcIi4vc3JjL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQ29tbW9uUHJvcHMsXG4gIENsaWNrYWJsZURpdlByb3BzLFxuICBDbGlja2FibGVMaVByb3BzLFxuICBOYXZQcm9wcyxcbiAgU3ZnUHJvcHMsXG4gIERpdlByb3BzLFxuICBCdXR0b25Qcm9wcyxcbiAgSVByb3BzLFxuICBJbnB1dFByb3BzLFxuICBGb3JtUHJvcHMsXG4gIFNwYW5Qcm9wcyxcbiAgVGV4dEFyZWFQcm9wcyxcbiAgQVByb3BzLFxuICBDb2RlUHJvcHMsXG4gIFByZVByb3BzLFxuICBIMVByb3BzLFxuICBIMlByb3BzLFxuICBIM1Byb3BzLFxuICBINFByb3BzLFxuICBINVByb3BzLFxuICBINlByb3BzLFxuICBQUHJvcHMsXG4gIExpUHJvcHMsXG4gIE9sUHJvcHMsXG4gIFVsUHJvcHMsXG4gIFRoUHJvcHMsXG4gIFRkUHJvcHMsXG4gIFRyUHJvcHMsXG4gIFRhYmxlUHJvcHMsXG4gIExhYmVsUHJvcHMsXG4gIFRCb2R5UHJvcHMsXG4gIERpYWxvZ1Byb3BzLFxuICBDYW52YXNQcm9wcyxcbiAgSW1nUHJvcHMsXG59IGZyb20gXCIuL3NyYy9lbGVtZW50c1wiO1xuXG5leHBvcnQge1xuICBnZXRGb2N1c2FibGVDb250ZXh0LFxuICBnZXRLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmV4cG9ydCB0eXBlIHtcbiAgJEZvY3VzYWJsZVByb3BzLFxuICBBbnlGb2N1c2FibGVDb250ZXh0LFxuICBGb2N1c2FibGVDb250ZXh0LFxuICBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG4gIEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBjb250ZXh0Rm9yRm9jdXNhYmxlSXRlbSwgdXNlRm9jdXNhYmxlSXRlbSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGUtaXRlbS1jb250ZXh0XCI7XG5leHBvcnQgeyB1c2VDbG9zZVBvcG92ZXIsIHVzZVBvcG92ZXJJc09wZW4sIGNvbnRleHRGb3JDbG9zaW5nUG9wb3ZlciB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3BvcG92ZXIvcG9wb3ZlclwiO1xuZXhwb3J0IHsgdXNlTG9jYWxIb3ZlcmFibGUgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZVwiO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIHBvaW50ZXItZG93biBsYW5kcyBvdXRzaWRlIHRoZSBlbGVtZW50J3MgUmVhY3QgdHJlZS4gVGhlIHRyZWUgaW5jbHVkZXMgY29udGVudFxuICAgKiB0aGUgZWxlbWVudCBwb3J0YWxzIGVsc2V3aGVyZSwgc28gcG9ydGFsZWQgY2hpbGRyZW4gY291bnQgYXMgaW5zaWRlLiBDYXZlYXQ6IGFuIG91dHNpZGVcbiAgICogcG9pbnRlci1kb3duIHdob3NlIHByb3BhZ2F0aW9uIHRvIHRoZSBkb2N1bWVudCBpcyBzdG9wcGVkIG5hdGl2ZWx5IGdvZXMgdW5kZXRlY3RlZC5cbiAgICovXG4gIHJlYWRvbmx5ICRvbk91dHNpZGVDbGljaz86IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xufTtcblxuLyoqXG4gKiBSZWFjdC10cmVlIG91dHNpZGUtY2xpY2sgZGV0ZWN0aW9uOiBhIGNhcHR1cmUtcGhhc2UgaGFuZGxlciBvbiB0aGUgZWxlbWVudCByZWNvcmRzIHRoZVxuICogcG9pbnRlci1kb3duIGV2ZW50cyBvZiBpdHMgb3duIFJlYWN0IHRyZWUgKHBvcnRhbHMgaW5jbHVkZWQsIHNpbmNlIFJlYWN0IGV2ZW50cyBwcm9wYWdhdGVcbiAqIHRocm91Z2ggdGhlbSksIGFuZCBhIGRvY3VtZW50LWxldmVsIGxpc3RlbmVyIHJlcG9ydHMgZXZlcnkgcG9pbnRlci1kb3duIGl0IGRpZCBub3QgcmVjb3JkLlxuICogUmV0dXJucyB0aGUgcHJvcHMgbWFya2luZyB0aGUgZWxlbWVudCdzIHRyZWU7IGdpdmUgdGhlbSB0byBgY29udHJpYnV0ZVByb3BzYCBvciBzcHJlYWQgdGhlbVxuICogb250byB0aGUgc3VidHJlZSdzIHJvb3QuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VPbk91dHNpZGVDbGljayA9IChvbk91dHNpZGVDbGljazogKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHZvaWQpID0+IHtcbiAgY29uc3QgbGFzdEluc2lkZVBvaW50ZXJEb3duUmVmID0gdXNlUmVmPEV2ZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjb25zdCBoYW5kbGVyUmVmID0gdXNlUmVmKG9uT3V0c2lkZUNsaWNrKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGhhbmRsZXJSZWYuY3VycmVudCA9IG9uT3V0c2lkZUNsaWNrO1xuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZURvY3VtZW50UG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50ICE9PSBsYXN0SW5zaWRlUG9pbnRlckRvd25SZWYuY3VycmVudCkge1xuICAgICAgICBoYW5kbGVyUmVmLmN1cnJlbnQoZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgaGFuZGxlRG9jdW1lbnRQb2ludGVyRG93bik7XG5cbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIGhhbmRsZURvY3VtZW50UG9pbnRlckRvd24pO1xuICB9LCBbXSk7XG5cbiAgY29uc3Qgb25Qb2ludGVyRG93bkNhcHR1cmUgPSB1c2VDYWxsYmFjaygoZXZlbnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgIGxhc3RJbnNpZGVQb2ludGVyRG93blJlZi5jdXJyZW50ID0gZXZlbnQubmF0aXZlRXZlbnQ7XG4gIH0sIFtdKTtcblxuICByZXR1cm4geyBvblBvaW50ZXJEb3duQ2FwdHVyZSB9O1xufTtcblxudHlwZSBPbk91dHNpZGVDbGlja1dyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgb25PdXRzaWRlQ2xpY2s6IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IE9uT3V0c2lkZUNsaWNrV3JhcHBlckNvbXBvbmVudCA9ICh7IG9uT3V0c2lkZUNsaWNrLCBjb250cmlidXRlUHJvcHMsIGNoaWxkcmVuIH06IE9uT3V0c2lkZUNsaWNrV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnRyaWJ1dGVQcm9wcyh1c2VPbk91dHNpZGVDbGljayhvbk91dHNpZGVDbGljaykpO1xuXG4gIHJldHVybiA8PntjaGlsZHJlbn08Lz47XG59O1xuXG5leHBvcnQgY29uc3Qgb25PdXRzaWRlQ2xpY2tQbHVnaW4gPSBnZXRQbHVnaW48T25PdXRzaWRlQ2xpY2tQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJG9uT3V0c2lkZUNsaWNrIH0gPSBwcm9wcztcblxuICBpZiAoJG9uT3V0c2lkZUNsaWNrID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyAkb25PdXRzaWRlQ2xpY2s6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkb25PdXRzaWRlQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkd3JhcHBlcjoge1xuICAgICAgQ29tcG9uZW50OiBPbk91dHNpZGVDbGlja1dyYXBwZXJDb21wb25lbnQsXG4gICAgICBwcm9wczogeyBvbk91dHNpZGVDbGljazogJG9uT3V0c2lkZUNsaWNrIH0sXG4gICAgfSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVIdG1sRWxlbWVudFJlZlNldEluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2ZvY3VzYWJsZS1odG1sLWVsZW1lbnQtcmVmLXNldC5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBhc3NlcnREZWZpbmVkIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuZXhwb3J0IHR5cGUgRG9Gb2N1czxUPiA9IChpdGVtOiBUKSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgRG9Gb2N1c0ZvciA9IDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PiBEb0ZvY3VzPFQ+O1xuXG5leHBvcnQgY29uc3QgZG9Gb2N1c0ZvckluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHsgc2luZ2xlRmFjdG9yeTogKCkgPT4gRG9Gb2N1c0ZvciB9Pih7XG4gIGlkOiBcImRvLWZvY3VzLWZvci1pbmplY3Rpb24tdG9rZW5cIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG5leHBvcnQgY29uc3QgZG9Gb2N1c0ZvckluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImRvLWZvY3VzLWZvclwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRSZWZTZXQgPSBkaS5pbmplY3QoZm9jdXNhYmxlSHRtbEVsZW1lbnRSZWZTZXRJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgKDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PlxuICAgICAgICAoZm9jdXNhYmxlSXRlbTogVCkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtmaXJzdFJlbmRlcmVkRm9jdXNhYmxlRWxlbWVudFJlZl0gPSBnZXRSZWZTZXQoZm9jdXNhYmxlQ29udGV4dCwgZm9jdXNhYmxlSXRlbSk7XG5cbiAgICAgICAgICBpZiAoZmlyc3RSZW5kZXJlZEZvY3VzYWJsZUVsZW1lbnRSZWYpIHtcbiAgICAgICAgICAgIGFzc2VydERlZmluZWQoZmlyc3RSZW5kZXJlZEZvY3VzYWJsZUVsZW1lbnRSZWYuY3VycmVudCk7XG5cbiAgICAgICAgICAgIGZpcnN0UmVuZGVyZWRGb2N1c2FibGVFbGVtZW50UmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIGFzIERvRm9jdXNGb3I7XG4gIH0sXG5cbiAgaW5qZWN0aW9uVG9rZW46IGRvRm9jdXNGb3JJbmplY3Rpb25Ub2tlbixcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG50eXBlIEZvY3VzYWJsZUl0ZW0gPSBhbnk7XG5cbi8vIFR3byBpbnN0YW50aWF0aW9uIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4gb25lIGNvbXBvc2l0ZSBrZXk6IHYyIGtleXMgYVxuLy8gc2luZ2xldG9uIGJ5IGFsbCBvZiB0aGVtLCBzbyB0aGUgY29udGV4dCBhbmQgdGhlIGl0ZW0gY29tcG9zZSBieSBpZGVudGl0eSBvblxuLy8gdGhlaXIgb3duLlxuZXhwb3J0IGNvbnN0IGZvY3VzYWJsZUh0bWxFbGVtZW50UmVmU2V0SW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiaHRtbC1lbGVtZW50cy1ieS1mb2N1c2FibGUtbWFwXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+IChfY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxGb2N1c2FibGVJdGVtPiwgX2l0ZW06IEZvY3VzYWJsZUl0ZW0pID0+XG4gICAgbmV3IFNldDxNdXRhYmxlUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkPj4oKSxcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBJQ29tcHV0ZWRWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgSXRlbUJlaW5nRm9jdXNlZCA9IDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PiBJQ29tcHV0ZWRWYWx1ZTxUIHwgdW5kZWZpbmVkPjtcblxuZXhwb3J0IGNvbnN0IGl0ZW1CZWluZ0ZvY3VzZWRJbmplY3Rpb25Ub2tlbiA9IGdldEluamVjdGlvblRva2VuMjx7IHNpbmdsZUZhY3Rvcnk6ICgpID0+IEl0ZW1CZWluZ0ZvY3VzZWQgfT4oe1xuICBpZDogXCJpdGVtLWJlaW5nLWZvY3VzZWRcIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG5leHBvcnQgY29uc3QgcHJpdmF0ZUl0ZW1CZWluZ0ZvY3VzZWRJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJwcml2YXRlLWl0ZW0tYmVpbmctZm9jdXNlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRGb2N1c2FibGVJdGVtU3RhdGUgPSBkaS5pbmplY3QoZm9jdXNhYmxlSXRlbVN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8YW55PikgPT4gY29tcHV0ZWQoKCkgPT4gZ2V0Rm9jdXNhYmxlSXRlbVN0YXRlKGNvbnRleHQpLmdldCgpKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nRm9jdXNlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIml0ZW0tYmVpbmctZm9jdXNlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRQcml2YXRlSXRlbUJlaW5nRm9jdXNlZCA9IGRpLmluamVjdChwcml2YXRlSXRlbUJlaW5nRm9jdXNlZEluamVjdGFibGUpO1xuXG4gICAgcmV0dXJuICgpID0+XG4gICAgICAoPFQ+KGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8VD4pID0+XG4gICAgICAgIGdldFByaXZhdGVJdGVtQmVpbmdGb2N1c2VkKGNvbnRleHQpIGFzIElDb21wdXRlZFZhbHVlPFQgfCB1bmRlZmluZWQ+KSBhcyBJdGVtQmVpbmdGb2N1c2VkO1xuICB9LFxuXG4gIGluamVjdGlvblRva2VuOiBpdGVtQmVpbmdGb2N1c2VkSW5qZWN0aW9uVG9rZW4sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IGZvY3VzYWJsZUl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImZvY3VzYWJsZS1pdGVtLXN0YXRlXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+IChfY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxhbnk+KSA9PiBvYnNlcnZhYmxlLmJveDx1bmtub3duPigpLFxufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBlbmFibGVkU3R5bGVzIGZyb20gXCIuL2VuYWJsZWQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRW5hYmxlZFBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogVGhpcyBmaWVsZCBoYXMgaGlnaGVyIHByaW9yaXR5IHRoYW4gJGRpc2FibGVkXG4gICAqL1xuICAkZW5hYmxlZD86IGJvb2xlYW47XG4gICRkaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGZpZWxkIGlzIG92ZXJyaWRkZW4gdmlhICRkaXNhYmxlZCBhbmQgJGVuYWJsZWRcbiAgICovXG4gIGRpc2FibGVkPzogdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGVuYWJsZWRQbHVnaW4gPSBnZXRQbHVnaW48RW5hYmxlZFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCBkaXNhYmxlZCA9IGlzRGlzYWJsZWQocHJvcHMpO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIGRpc2FibGVkID8gZW5hYmxlZFN0eWxlcy5kaXNhYmxlZCA6IHVuZGVmaW5lZF0sXG4gICAgZGlzYWJsZWQsXG4gICAgJGVuYWJsZWQ6IHVuZGVmaW5lZCxcbiAgICAkZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5leHBvcnQgY29uc3QgaXNEaXNhYmxlZCA9IChwcm9wczogRW5hYmxlZFBsdWdpblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGVuYWJsZWQsICRkaXNhYmxlZCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIHR5cGVvZiAkZW5hYmxlZCA9PT0gXCJib29sZWFuXCIgPyAhJGVuYWJsZWQgOiAoJGRpc2FibGVkID8/IGZhbHNlKTtcbn07XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5lbmFibGVkLW1vZHVsZV9fZGlzYWJsZWRfX19MTDNzdyB7XFxuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcXG4gIG9wYWNpdHk6IDUwJTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJkaXNhYmxlZFwiOlwiZW5hYmxlZC1tb2R1bGVfX2Rpc2FibGVkX19fTEwzc3dcIn07IiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VJZCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7IHR5cGUgQ29udGV4dE1hcFZhbHVlLCBob3Zlckl0ZW1TdGF0ZUZvckluamVjdGFibGUgfSBmcm9tIFwiLi9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgYWN0aW9uLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGlzRGVmaW5lZCwgbm9vcCwgdHlwZSBTaW5nbGVPck1hbnkgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyByZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHR5cGUgeyAkSG92ZXJhYmxlUHJvcHMgfSBmcm9tIFwiLi9ob3ZlcmFibGVcIjtcblxuZXhwb3J0IHR5cGUgJEhvdmVyYWJsZUJ5RHJhZ2dpbmdQcm9wczxUPiA9IFBpY2s8JEhvdmVyYWJsZVByb3BzPFQ+LCBcImNvbnRleHRcIiB8IFwiaXRlbVwiPjtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpblByb3BzPFQgPSBhbnk+ID0ge1xuICAkaG92ZXJhYmxlQnlEcmFnZ2luZz86IFNpbmdsZU9yTWFueTwkSG92ZXJhYmxlQnlEcmFnZ2luZ1Byb3BzPFQ+Pjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luPFQ+KCkge1xuICByZXR1cm4gZ2V0UGx1Z2luPEhvdmVyYWJsZUJ5RHJhZ2dpbmdQbHVnaW5Qcm9wcywgW1JldHVyblR5cGU8dHlwZW9mIHJlZlBsdWdpbjxUPj5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICRob3ZlcmFibGVCeURyYWdnaW5nLCAkcmVmIH0gPSBwcm9wcztcblxuICAgIGlmICgkaG92ZXJhYmxlQnlEcmFnZ2luZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAkaG92ZXJhYmxlQnlEcmFnZ2luZzogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBpZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3IgPSB1c2VTeW5jSW5qZWN0KGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSk7XG4gICAgY29uc3QgaG92ZXJhYmxlUHJvcHNSZWYgPSB1c2VSZWYob2JzZXJ2YWJsZS5tYXAodG9Db250ZXh0TWFwKCRob3ZlcmFibGVCeURyYWdnaW5nKSwgeyBkZWVwOiBmYWxzZSB9KSk7XG4gICAgY29uc3QgY29udHJvbGxlciA9IHVzZVJlZihuZXcgQWJvcnRDb250cm9sbGVyKCkpO1xuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5yZXBsYWNlKHRvQ29udGV4dE1hcCgkaG92ZXJhYmxlQnlEcmFnZ2luZykpO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNvbnN0IGNhbGxiYWNrUmVmID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGFjdGlvbigoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmN1cnJlbnQuYWJvcnQoKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY3VycmVudCA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcImRyYWdlbnRlclwiLFxuICAgICAgICAgICAgYWN0aW9uKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIHJlbGF0ZWRUYXJnZXQgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgICAgICAgIGlmICghKGN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgICAgICAgICAgICBob3Zlckl0ZW1TdGF0ZUZvcihjb250ZXh0KS5zZXQoaWQsIHtcbiAgICAgICAgICAgICAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgICAgICAgICAgICAgIGdldFByb3BzOiAoKSA9PiBob3ZlcmFibGVQcm9wc1JlZi5jdXJyZW50LmdldChjb250ZXh0KSxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5jdXJyZW50LnNpZ25hbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcImRyYWdsZWF2ZVwiLFxuICAgICAgICAgICAgYWN0aW9uKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIHJlbGF0ZWRUYXJnZXQgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgICAgICAgIGlmICghKGN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkU3RhdGUgPSBob3Zlckl0ZW1TdGF0ZUZvcihjb250ZXh0KTtcblxuICAgICAgICAgICAgICAgICAgaG92ZXJlZFN0YXRlLmRlbGV0ZShpZCk7XG4gICAgICAgICAgICAgICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLmN1cnJlbnQuc2lnbmFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgIFtob3Zlckl0ZW1TdGF0ZUZvciwgaWRdLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgJHJlZjogWyRyZWYsIGNhbGxiYWNrUmVmXSxcbiAgICAgICRob3ZlcmFibGVCeURyYWdnaW5nOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IHRvQ29udGV4dE1hcCA9IChwcm9wczogU2luZ2xlT3JNYW55PCRIb3ZlcmFibGVCeURyYWdnaW5nUHJvcHM8dW5rbm93bj4+IHwgdW5kZWZpbmVkKSA9PiB7XG4gIGNvbnN0IGl0ZW1zID0gW3Byb3BzXS5mbGF0KCkuZmlsdGVyKGlzRGVmaW5lZCk7XG4gIGNvbnN0IHJlc3VsdHM6IFtvYmplY3QsIENvbnRleHRNYXBWYWx1ZV1bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgeyBjb250ZXh0LCBpdGVtIH0gb2YgaXRlbXMpIHtcbiAgICByZXN1bHRzLnB1c2goW2NvbnRleHQsIHsgaXRlbSwgZGVsYXk6IDAsIG9uSG92ZXI6IG5vb3AsIG9uVW5ob3Zlcjogbm9vcCB9XSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbn07XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBJT2JzZXJ2YWJsZVZhbHVlLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1hcFZhbHVlID0ge1xuICByZWFkb25seSBpdGVtOiB1bmtub3duO1xuICByZWFkb25seSBkZWxheTogbnVtYmVyO1xuICBvbkhvdmVyOiBWb2lkRnVuY3Rpb247XG4gIG9uVW5ob3ZlcjogVm9pZEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJlZEl0ZW1TdGF0ZSA9IHtcbiAgcmVhZG9ubHkgaG92ZXJlZEF0OiBJT2JzZXJ2YWJsZVZhbHVlPG51bWJlcj47XG4gIHJlYWRvbmx5IGdldFByb3BzOiAoKSA9PiBDb250ZXh0TWFwVmFsdWUgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImhvdmVyZWQtaXRlbS1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoX2NvbnRleHQ6IG9iamVjdCkgPT4gb2JzZXJ2YWJsZS5tYXA8c3RyaW5nLCBIb3ZlcmVkSXRlbVN0YXRlPihbXSwgeyBkZWVwOiBmYWxzZSB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3JJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJob3Zlci1pdGVtLXN0YXRlLWZvclwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRIb3ZlcmVkSXRlbVN0YXRlID0gZGkuaW5qZWN0KGhvdmVyZWRJdGVtU3RhdGVJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PiAoY29udGV4dDogb2JqZWN0KSA9PiBnZXRIb3ZlcmVkSXRlbVN0YXRlKGNvbnRleHQpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcyB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuXG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHsgdHlwZSBDb250ZXh0TWFwVmFsdWUsIGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSB9IGZyb20gXCIuL2hvdmVyZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBhY3Rpb24sIGF1dG9ydW4sIGNvbXBhcmVyLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IG5vb3AgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9pdGVtLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgaXNEZWZpbmVkLCB0eXBlIFNpbmdsZU9yTWFueSB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5cbmV4cG9ydCB0eXBlIEhvdmVyYWJsZUNvbnRleHRPcHRpb25zID0ge1xuICAvKipcbiAgICogSW4gbWlsbGlzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBkZWxheT86IG51bWJlcjtcbiAgcmVhZG9ubHkgb25Ib3Zlcj86IFZvaWRGdW5jdGlvbjtcbiAgcmVhZG9ubHkgb25VbmhvdmVyPzogVm9pZEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlQ29udGV4dDxIb3ZlcmVkSXRlbT4gPSB7XG4gIHJlYWRvbmx5IGhvdmVyYWJsZTogKGl0ZW06IEhvdmVyZWRJdGVtLCBvcHRpb25zPzogSG92ZXJhYmxlQ29udGV4dE9wdGlvbnMpID0+ICRIb3ZlcmFibGVQcm9wczxIb3ZlcmVkSXRlbT47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlICRIb3ZlcmFibGVQcm9wczxUSXRlbSA9IHVua25vd24+IHtcbiAgcmVhZG9ubHkgY29udGV4dDogb2JqZWN0O1xuICByZWFkb25seSBpdGVtOiBUSXRlbTtcbiAgcmVhZG9ubHkgb3B0aW9uczogUmVxdWlyZWQ8SG92ZXJhYmxlQ29udGV4dE9wdGlvbnM+O1xufVxuXG5leHBvcnQgdHlwZSBIb3ZlcmFibGVQbHVnaW5Qcm9wczxURWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50PiA9IHtcbiAgcmVhZG9ubHkgJGhvdmVyYWJsZT86IFNpbmdsZU9yTWFueTwkSG92ZXJhYmxlUHJvcHM+O1xuICBvbk1vdXNlRW50ZXI/OiBSZWFjdC5IVE1MUHJvcHM8VEVsZW1lbnQ+W1wib25Nb3VzZUVudGVyXCJdO1xuICBvbk1vdXNlTGVhdmU/OiBSZWFjdC5IVE1MUHJvcHM8VEVsZW1lbnQ+W1wib25Nb3VzZUxlYXZlXCJdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEhvdmVyYWJsZUNvbnRleHQgPSA8SG92ZXJlZEl0ZW0sPigpOiBIb3ZlcmFibGVDb250ZXh0PEhvdmVyZWRJdGVtPiA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgaG92ZXJhYmxlOiAoaXRlbTogSG92ZXJlZEl0ZW0sIHsgZGVsYXkgPSAwLCBvbkhvdmVyID0gbm9vcCwgb25VbmhvdmVyID0gbm9vcCB9OiBIb3ZlcmFibGVDb250ZXh0T3B0aW9ucyA9IHt9KSA9PiAoe1xuICAgICAgY29udGV4dCxcbiAgICAgIGl0ZW0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGRlbGF5LFxuICAgICAgICBvbkhvdmVyLFxuICAgICAgICBvblVuaG92ZXIsXG4gICAgICB9LFxuICAgIH0pLFxuICB9O1xuXG4gIHJldHVybiBjb250ZXh0O1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlUGx1Z2luPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4gPSBSZXR1cm5UeXBlPHR5cGVvZiBob3ZlcmFibGVQbHVnaW48VD4+O1xuXG50eXBlIEhvdmVyYWJsZVdyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgaG92ZXJhYmxlOiBTaW5nbGVPck1hbnk8JEhvdmVyYWJsZVByb3BzPjtcbiAgcmVhZG9ubHkgb25Nb3VzZUVudGVyPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICByZWFkb25seSBvbk1vdXNlTGVhdmU/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgSG92ZXJhYmxlV3JhcHBlckNvbXBvbmVudCA9ICh7XG4gIGhvdmVyYWJsZSxcbiAgb25Nb3VzZUVudGVyLFxuICBvbk1vdXNlTGVhdmUsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBIb3ZlcmFibGVXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3IgPSB1c2VTeW5jSW5qZWN0KGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSk7XG4gIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSB1c2VTeW5jSW5qZWN0KGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbik7XG4gIGNvbnN0IGlkID0gdXNlSWQoKTtcblxuICBjb25zdCBob3ZlcmFibGVQcm9wc1JlZiA9IHVzZVJlZihcbiAgICBvYnNlcnZhYmxlLm1hcCh0b0NvbnRleHRNYXAoaG92ZXJhYmxlKSwgeyBkZWVwOiBmYWxzZSwgZXF1YWxzOiBjb21wYXJlci5zdHJ1Y3R1cmFsIH0pLFxuICApO1xuXG4gIHVzZUVmZmVjdChcbiAgICBhY3Rpb24oKCkgPT4ge1xuICAgICAgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5yZXBsYWNlKHRvQ29udGV4dE1hcChob3ZlcmFibGUpKTtcbiAgICB9KSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1CeUNvbnRleHQgPSBuZXcgTWFwPG9iamVjdCwgdW5rbm93bj4oKTtcblxuICAgIHJldHVybiBhdXRvcnVuKCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW2NvbnRleHQsIHsgaXRlbSwgb25Ib3Zlciwgb25VbmhvdmVyIH1dIG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgaG92ZXJlZEl0ZW0gPSBpdGVtQmVpbmdIb3ZlcmVkKGNvbnRleHQgYXMgSG92ZXJhYmxlQ29udGV4dDx1bmtub3duPikuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzSXRlbSA9IGl0ZW1CeUNvbnRleHQuZ2V0KGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChob3ZlcmVkSXRlbSA9PT0gaXRlbSkge1xuICAgICAgICAgIG9uSG92ZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcmV2aW91c0l0ZW0gPT09IGl0ZW0pIHtcbiAgICAgICAgICBvblVuaG92ZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGl0ZW1CeUNvbnRleHQuc2V0KGNvbnRleHQsIGhvdmVyZWRJdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW2l0ZW1CZWluZ0hvdmVyZWRdKTtcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIGFjdGlvbigoKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgY29udGV4dCBvZiBob3ZlcmFibGVQcm9wc1JlZi5jdXJyZW50LmtleXMoKSkge1xuICAgICAgICAgIGhvdmVySXRlbVN0YXRlRm9yKGNvbnRleHQpLmRlbGV0ZShpZCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIFtob3Zlckl0ZW1TdGF0ZUZvciwgaWRdLFxuICApO1xuXG4gIGNvbnN0IGhhbmRsZU1vdXNlRW50ZXIgPSB1c2VDYWxsYmFjayhcbiAgICBhY3Rpb24oKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25Nb3VzZUVudGVyPy4oZXZlbnQpO1xuXG4gICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICBmb3IgKGNvbnN0IGNvbnRleHQgb2YgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5rZXlzKCkpIHtcbiAgICAgICAgaG92ZXJJdGVtU3RhdGVGb3IoY29udGV4dCkuc2V0KGlkLCB7XG4gICAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgICAgZ2V0UHJvcHM6ICgpID0+IGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQuZ2V0KGNvbnRleHQpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBbXSxcbiAgKTtcblxuICBjb25zdCBoYW5kbGVNb3VzZUxlYXZlID0gdXNlQ2FsbGJhY2soXG4gICAgYWN0aW9uKChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uTW91c2VMZWF2ZT8uKGV2ZW50KTtcblxuICAgICAgY29uc3QgaG92ZXJlZEF0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRTdGF0ZSA9IGhvdmVySXRlbVN0YXRlRm9yKGNvbnRleHQpO1xuXG4gICAgICAgIGhvdmVyZWRTdGF0ZS5kZWxldGUoaWQpO1xuICAgICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgW10sXG4gICk7XG5cbiAgY29udHJpYnV0ZVByb3BzKHtcbiAgICBvbk1vdXNlRW50ZXI6IGhhbmRsZU1vdXNlRW50ZXIsXG4gICAgb25Nb3VzZUxlYXZlOiBoYW5kbGVNb3VzZUxlYXZlLFxuICB9KTtcblxuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGhvdmVyYWJsZVBsdWdpbjxURWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50PigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxIb3ZlcmFibGVQbHVnaW5Qcm9wczxURWxlbWVudD4+KChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgJGhvdmVyYWJsZSwgb25Nb3VzZUVudGVyLCBvbk1vdXNlTGVhdmUgfSA9IHByb3BzO1xuXG4gICAgaWYgKCRob3ZlcmFibGUgPT09IHVuZGVmaW5lZCB8fCAoQXJyYXkuaXNBcnJheSgkaG92ZXJhYmxlKSAmJiAkaG92ZXJhYmxlLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICRob3ZlcmFibGU6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICRob3ZlcmFibGU6IHVuZGVmaW5lZCxcbiAgICAgICR3cmFwcGVyOiB7XG4gICAgICAgIENvbXBvbmVudDogSG92ZXJhYmxlV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICBob3ZlcmFibGU6ICRob3ZlcmFibGUsXG4gICAgICAgICAgb25Nb3VzZUVudGVyLFxuICAgICAgICAgIG9uTW91c2VMZWF2ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IHRvQ29udGV4dE1hcCA9IChwcm9wczogU2luZ2xlT3JNYW55PCRIb3ZlcmFibGVQcm9wczx1bmtub3duPj4gfCB1bmRlZmluZWQpID0+IHtcbiAgY29uc3QgaXRlbXMgPSBbcHJvcHNdLmZsYXQoKS5maWx0ZXIoaXNEZWZpbmVkKTtcbiAgY29uc3QgcmVzdWx0czogW29iamVjdCwgQ29udGV4dE1hcFZhbHVlXVtdID0gW107XG5cbiAgZm9yIChjb25zdCB7IGNvbnRleHQsIGl0ZW0sIG9wdGlvbnMgfSBvZiBpdGVtcykge1xuICAgIHJlc3VsdHMucHVzaChbY29udGV4dCwgeyBpdGVtLCAuLi5vcHRpb25zIH1dKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiwgZ2V0SW5qZWN0aW9uVG9rZW4yIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgSUNvbXB1dGVkVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4vaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyBjb21wdXRlZE5vd0luamVjdGFibGUgfSBmcm9tIFwiLi9jb21wdXRlZC1ub3cuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSBJdGVtQmVpbmdIb3ZlcmVkID0gPFQ+KGhvdmVyYWJsZUNvbnRleHQ6IEhvdmVyYWJsZUNvbnRleHQ8VD4pID0+IElDb21wdXRlZFZhbHVlPFQgfCB1bmRlZmluZWQ+O1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nSG92ZXJlZEluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHsgc2luZ2xlRmFjdG9yeTogKCkgPT4gSXRlbUJlaW5nSG92ZXJlZCB9Pih7XG4gIGlkOiBcIml0ZW0tYmVpbmctaG92ZXJlZFwiLFxuICBjYXJkaW5hbGl0eTogXCJvbmVcIixcbn0pKCk7XG5cbmV4cG9ydCBjb25zdCBwcml2YXRlSXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcInByaXZhdGUtaXRlbS1iZWluZy1ob3ZlcmVkXCIsXG5cbiAgaW5zdGFudGlhdGU6IChkaSkgPT4ge1xuICAgIGNvbnN0IGdldEhvdmVyZWRJdGVtU3RhdGUgPSBkaS5pbmplY3QoaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUpO1xuICAgIGNvbnN0IGdldENvbXB1dGVkTm93ID0gZGkuaW5qZWN0KGNvbXB1dGVkTm93SW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IG9iamVjdCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZEl0ZW1TdGF0ZSA9IGdldEhvdmVyZWRJdGVtU3RhdGUoY29udGV4dCk7XG4gICAgICBjb25zdCBjb21wdXRlZE5vdyA9IGdldENvbXB1dGVkTm93KDEpO1xuXG4gICAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b3BJdGVtID0gWy4uLmhvdmVyZWRJdGVtU3RhdGUudmFsdWVzKCldLmF0KC0xKTtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0b3BJdGVtPy5nZXRQcm9wcygpO1xuXG4gICAgICAgIGlmICghdG9wSXRlbSB8fCAhcHJvcHMpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2hlbkNvbnNpZGVyZWRIb3ZlcmVkID0gdG9wSXRlbS5ob3ZlcmVkQXQuZ2V0KCkgKyBwcm9wcy5kZWxheTtcbiAgICAgICAgY29uc3Qgbm93ID0gY29tcHV0ZWROb3cuZ2V0KCk7XG5cbiAgICAgICAgcmV0dXJuIG5vdyA+PSB3aGVuQ29uc2lkZXJlZEhvdmVyZWQgPyBwcm9wcy5pdGVtIDogdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIml0ZW0tYmVpbmctaG92ZXJlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRQcml2YXRlSXRlbUJlaW5nSG92ZXJlZCA9IGRpLmluamVjdChwcml2YXRlSXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUpO1xuXG4gICAgcmV0dXJuICgpID0+XG4gICAgICAoPFQ+KGNvbnRleHQ6IEhvdmVyYWJsZUNvbnRleHQ8VD4pID0+XG4gICAgICAgIGdldFByaXZhdGVJdGVtQmVpbmdIb3ZlcmVkKGNvbnRleHQpIGFzIElDb21wdXRlZFZhbHVlPFQ+KSBhcyBJdGVtQmVpbmdIb3ZlcmVkO1xuICB9LFxuXG4gIGluamVjdGlvblRva2VuOiBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBjb21wdXRlZCwgb2JzZXJ2YWJsZSwgb25CZWNvbWVPYnNlcnZlZCwgb25CZWNvbWVVbm9ic2VydmVkLCBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5cbi8qKlxuICogQSBjbG9jayB0aGF0IGFkdmFuY2VzIG9ubHkgd2hpbGUgc29tZXRoaW5nIG9ic2VydmVzIGl0LCBzbyBhIGhvdmVyIGRlbGF5XG4gKiBrZWVwcyBiZWluZyByZS1ldmFsdWF0ZWQgdW50aWwgaXQgaGFzIGVsYXBzZWQgYW5kIGNvc3RzIG5vdGhpbmcgb25jZSBub2JvZHlcbiAqIGlzIHdhdGNoaW5nLlxuICpcbiAqIExvY2FsIHJhdGhlciB0aGFuIHRha2VuIGZyb20gdGhlIHNoYXJlZCBpbnRlcnZhbCBmZWF0dXJlOiBhIGRlc2lnbiBzeXN0ZW1cbiAqIGNhbm5vdCBkZXBlbmQgb24gYSBmZWF0dXJlIHBhY2thZ2UsIGFuZCB0aGUgaG92ZXJhYmxlIHBsdWdpbiBpcyB0aGUgb25seVxuICogdGhpbmcgaGVyZSB0aGF0IG5lZWRzIGEgY2xvY2suIFRoZSBpbnRlcnZhbCBpcyB0aGUgaW5zdGFudGlhdGlvbiBwYXJhbWV0ZXIsXG4gKiBzbyB2MiBrZXlzIG9uZSBjbG9jayBwZXIgaW50ZXJ2YWwuXG4gKi9cbmV4cG9ydCBjb25zdCBjb21wdXRlZE5vd0luamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImNvbXB1dGVkLW5vd1wiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoaW50ZXJ2YWxNczogbnVtYmVyKSA9PiB7XG4gICAgY29uc3Qgbm93ID0gb2JzZXJ2YWJsZS5ib3goRGF0ZS5ub3coKSk7XG5cbiAgICBsZXQgaGFuZGxlOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4gfCB1bmRlZmluZWQ7XG5cbiAgICBvbkJlY29tZU9ic2VydmVkKG5vdywgKCkgPT4ge1xuICAgICAgcnVuSW5BY3Rpb24oKCkgPT4gbm93LnNldChEYXRlLm5vdygpKSk7XG5cbiAgICAgIGhhbmRsZSA9IHNldEludGVydmFsKCgpID0+IHJ1bkluQWN0aW9uKCgpID0+IG5vdy5zZXQoRGF0ZS5ub3coKSkpLCBpbnRlcnZhbE1zKTtcbiAgICB9KTtcblxuICAgIG9uQmVjb21lVW5vYnNlcnZlZChub3csICgpID0+IHtcbiAgICAgIGlmIChoYW5kbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjbGVhckludGVydmFsKGhhbmRsZSk7XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZSA9IHVuZGVmaW5lZDtcbiAgICB9KTtcblxuICAgIHJldHVybiBjb21wdXRlZCgoKSA9PiBub3cuZ2V0KCkpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIsIGdldEluamVjdGlvblRva2VuMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IElDb21wdXRlZFZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlQ29udGV4dCB9IGZyb20gXCIuL2dldC1kcmFnZ2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHsgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCB0eXBlIEl0ZW1CZWluZ0RyYWdnZWQgPSA8VD4oZHJhZ2dhYmxlQ29udGV4dDogRHJhZ2dhYmxlQ29udGV4dDxUPikgPT4gSUNvbXB1dGVkVmFsdWU8VCB8IHVuZGVmaW5lZD47XG5cbmV4cG9ydCBjb25zdCBpdGVtQmVpbmdEcmFnZ2VkSW5qZWN0aW9uVG9rZW4gPSBnZXRJbmplY3Rpb25Ub2tlbjI8eyBzaW5nbGVGYWN0b3J5OiAoKSA9PiBJdGVtQmVpbmdEcmFnZ2VkIH0+KHtcbiAgaWQ6IFwiaXRlbS1iZWluZy1kcmFnZ2VkXCIsXG4gIGNhcmRpbmFsaXR5OiBcIm9uZVwiLFxufSkoKTtcblxuZXhwb3J0IGNvbnN0IHByaXZhdGVJdGVtQmVpbmdEcmFnZ2VkSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwicHJpdmF0ZS1pdGVtLWJlaW5nLWRyYWdnZWRcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgZ2V0RHJhZ2dlZEl0ZW1TdGF0ZSA9IGRpLmluamVjdChkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IERyYWdnYWJsZUNvbnRleHQ8YW55PikgPT4gY29tcHV0ZWQoKCkgPT4gZ2V0RHJhZ2dlZEl0ZW1TdGF0ZShjb250ZXh0KS5nZXQoKSk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGl0ZW1CZWluZ0RyYWdnZWRJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJpdGVtLWJlaW5nLWRyYWdnZWRcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgZ2V0UHJpdmF0ZUl0ZW1CZWluZ0RyYWdnZWQgPSBkaS5pbmplY3QocHJpdmF0ZUl0ZW1CZWluZ0RyYWdnZWRJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgKDxUPihjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+KSA9PlxuICAgICAgICBnZXRQcml2YXRlSXRlbUJlaW5nRHJhZ2dlZChjb250ZXh0KSBhcyBJQ29tcHV0ZWRWYWx1ZTxUPikgYXMgSXRlbUJlaW5nRHJhZ2dlZDtcbiAgfSxcblxuICBpbmplY3Rpb25Ub2tlbjogaXRlbUJlaW5nRHJhZ2dlZEluamVjdGlvblRva2VuLFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgb2JzZXJ2YWJsZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgdHlwZSB7IERyYWdnYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbi8vIFRoZSBjb250ZXh0IGlzIHRoZSBpbnN0YW50aWF0aW9uIHBhcmFtZXRlciwgc28gdjIga2V5cyBvbmUgc3RhdGUgYm94IHBlclxuLy8gY29udGV4dCBpZGVudGl0eSBcdTIwMTQgd2hhdCB0aGUga2V5ZWRTaW5nbGV0b24gdXNlZCB0byBzcGVsbCBvdXQuXG5leHBvcnQgY29uc3QgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImRyYWdnZWQtaXRlbS1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoX2NvbnRleHQ6IERyYWdnYWJsZUNvbnRleHQ8YW55PikgPT4gb2JzZXJ2YWJsZS5ib3godW5kZWZpbmVkLCB7IGRlZXA6IGZhbHNlIH0pLFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcywgdHlwZSBDb250cmlidXRlUmVmIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IEhvdmVyYWJsZVBsdWdpbiB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyBnZXRIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4uL2hvdmVyYWJsZS9ob3ZlcmFibGVcIjtcbmltcG9ydCB7IGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcbmltcG9ydCB7IGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaG92ZXJlZC1pdGVtLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB0b29sdGlwRGVsYXlJbmplY3RhYmxlIH0gZnJvbSBcIi4vdG9vbHRpcC1kZWxheS90b29sdGlwLWRlbGF5LmluamVjdGFibGVcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vdG9vbHRpcC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBQbGFjZW1lbnQgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCBzaGlmdCwgdXNlRmxvYXRpbmcgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHR5cGUgeyBSZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHsgbm9vcCwgdHlwZSBNYXliZUFzeW5jVm9pZEZ1bmN0aW9uIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB7IE1pbmltYWxEaXYsIHR5cGUgTWluaW1hbERpdlByb3BzIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzL21pbmltYWwtZGl2XCI7XG5pbXBvcnQgeyBhY3Rpb24sIGF1dG9ydW4sIG9ic2VydmFibGUgfSBmcm9tIFwibW9ieFwiO1xuXG50eXBlIFRvb2x0aXBDb250ZW50UHJvcHM8UHJvcHMgZXh0ZW5kcyBvYmplY3Q+ID1cbiAgfCB7XG4gICAgICAvKiogUGxhaW4tdGV4dCBjb250ZW50IG9mIHRoZSB0b29sdGlwLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgQ29udGVudGAuICovXG4gICAgICByZWFkb25seSBjb250ZW50VGV4dDogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgQ29udGVudD86IHVuZGVmaW5lZDtcbiAgICAgIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IHVuZGVmaW5lZDtcbiAgICB9XG4gIHwge1xuICAgICAgcmVhZG9ubHkgY29udGVudFRleHQ/OiB1bmRlZmluZWQ7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBjb21wb25lbnQgcmVuZGVyZWQgYXMgdGhlIGNvbnRlbnQgb2YgdGhlIHRvb2x0aXAuIE11c3QgaGF2ZSBhIHN0YWJsZVxuICAgICAgICogaWRlbnRpdHkgKG1vZHVsZSBzY29wZSkgXHUyMDE0IGRhdGEgZmxvd3MgaW4gdGhyb3VnaCBgY29udGVudFByb3BzYCwgbmV2ZXJcbiAgICAgICAqIHRocm91Z2ggY2xvc3VyZSBjYXB0dXJlLlxuICAgICAgICovXG4gICAgICByZWFkb25seSBDb250ZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPFByb3BzPjtcbiAgICAgIC8qKiBUaGUgcHJvcHMgdGhlIHRvb2x0aXAgcGFzc2VzIHRvIGBDb250ZW50YCB3aGVuIHJlbmRlcmluZyBpdC4gKi9cbiAgICAgIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IFByb3BzO1xuICAgIH07XG5cbmV4cG9ydCB0eXBlICRUb29sdGlwUHJvcHM8UHJvcHMgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8bmV2ZXIsIG5ldmVyPj4gPSB7XG4gIHJlYWRvbmx5IHBvc2l0aW9uPzogUGxhY2VtZW50O1xuICByZWFkb25seSBvblRvb2x0aXBTaG93bj86IE1heWJlQXN5bmNWb2lkRnVuY3Rpb247XG59ICYgVG9vbHRpcENvbnRlbnRQcm9wczxQcm9wcz47XG5cbi8qKlxuICogVHlwZS1jaGVja3MgdGhlIHBhaXJpbmcgb2YgYENvbnRlbnRgIGFuZCBgY29udGVudFByb3BzYCBvZiBhbiBvYmplY3QtZm9ybVxuICogYCR0b29sdGlwYDogYGNvbnRlbnRQcm9wc2AgaXMgcmVxdWlyZWQgdG8gYmUgdGhlIHByb3BzIG9mIGBDb250ZW50YCwgYW5kIGl0XG4gKiBpcyByZXF1aXJlZCB0byBiZSBwcmVzZW50IHdoZW4gYENvbnRlbnRgIGhhcyByZXF1aXJlZCBwcm9wcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBQcm9wcyh0b29sdGlwUHJvcHM6ICRUb29sdGlwUHJvcHMpOiAkVG9vbHRpcFByb3BzPGFueT47XG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vbHRpcFByb3BzPFByb3BzIGV4dGVuZHMgb2JqZWN0PihcbiAgdG9vbHRpcFByb3BzOiAkVG9vbHRpcFByb3BzPFByb3BzPiAmIHsgcmVhZG9ubHkgY29udGVudFByb3BzOiBQcm9wcyB9LFxuKTogJFRvb2x0aXBQcm9wczxhbnk+O1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBQcm9wcyh0b29sdGlwUHJvcHM6ICRUb29sdGlwUHJvcHM8YW55Pik6ICRUb29sdGlwUHJvcHM8YW55PiB7XG4gIHJldHVybiB0b29sdGlwUHJvcHM7XG59XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqIE51bGxpc2ggbWVhbnMgbm8gdG9vbHRpcCwgc28gY29uZGl0aW9uYWwgc291cmNlcyAoYHN0cmluZyB8IG51bGxgKSBwYXNzIHRocm91Z2ggYXMtaXMuICovXG4gICR0b29sdGlwPzogc3RyaW5nIHwgJFRvb2x0aXBQcm9wczxhbnk+IHwgbnVsbDtcbn07XG5cbi8qKlxuICogQSB0b29sdGlwIG9mIG5vdGhpbmc6IHRoZSBlbGVtZW50IHRha2VzIHRoZSBob3Zlciwgc28gbm8gZW5jbG9zaW5nIGVsZW1lbnQgc2hvd3MgaXRzIHRvb2x0aXBcbiAqIHdoaWxlIHRoZSBwb2ludGVyIGlzIG92ZXIgdGhpcyBvbmUsIGFuZCBzaG93cyBub3RoaW5nIG9mIGl0cyBvd24uIE51bGxpc2ggYCR0b29sdGlwYCBsZWF2ZXMgdGhlXG4gKiBlbmNsb3NpbmcgdG9vbHRpcCBhbG9uZSBpbnN0ZWFkIFx1MjAxNCB1c2UgdGhpcyB3aGVyZSBhbiBlbGVtZW50IG11c3Qgbm90IGJlIGRlc2NyaWJlZCBieSB3aGF0ZXZlclxuICogZW5jbG9zZXMgaXQsIGEgcGFuZWwgb3BlbmVkIGZyb20gYSByb3cgd2l0aCBhIHRvb2x0aXAgYmVpbmcgdGhlIGNhc2UgdGhhdCBuZWVkcyBpdDogYSB0b29sdGlwXG4gKiBnb2VzIGludG8gdGhlIHRvcCBsYXllciwgc28gaXQgd291bGQgcGFpbnQgb3ZlciB3aGF0IHRoZSBwYW5lbCBpcyB0aGVyZSBmb3IuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogPExpICR0b29sdGlwPXtzdXBwcmVzc1Rvb2x0aXB9PlxuICogICA8U2V0dGluZ3MgLz5cbiAqIDwvTGk+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHN1cHByZXNzVG9vbHRpcDogJFRvb2x0aXBQcm9wcyA9IHsgY29udGVudFRleHQ6IFwiXCIgfTtcblxuY29uc3QgaG92ZXJhYmxlVG9vbHRpcENvbnRleHQgPSBnZXRIb3ZlcmFibGVDb250ZXh0PEhUTUxFbGVtZW50IHwgbnVsbD4oKTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFRvb2x0aXBDb250YWluZXIgPSAocHJvcHM6IE1pbmltYWxEaXZQcm9wcykgPT4ge1xuICBjb25zdCB7ICRjbGFzc05hbWUsIC4uLnJlc3QgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPE1pbmltYWxEaXZcbiAgICAgICRwYWRkaW5nXG4gICAgICAkYmFja2dyb3VuZENvbG9yPVwiYmFja2dyb3VuZFNlY29uZGFyeVwiXG4gICAgICAkYm9yZGVyPXt7IHJhZGl1czogdHJ1ZSB9fVxuICAgICAgJGZvbnQ9e3sgc2l6ZTogXCJzXCIgfX1cbiAgICAgICRib3hTaGFkb3dcbiAgICAgICRub1BvaW50ZXJFdmVudHNcbiAgICAgICRhYnNvbHV0ZVxuICAgICAgJGNsYXNzTmFtZT17W3N0eWxlcy50b29sdGlwLCAkY2xhc3NOYW1lXX1cbiAgICAgIGRhdGEtdG9vbHRpcC1jb250YWluZXItdGVzdFxuICAgICAgey4uLnJlc3R9XG4gICAgLz5cbiAgKTtcbn07XG5cbnR5cGUgRmxvYXRpbmdTdHlsZWRUb29sdGlwQ29udGFpbmVyUHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgcG9zaXRpb246IFBsYWNlbWVudDtcbiAgcmVmZXJlbmNlOiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIG9uVG9vbHRpcFNob3duOiBWb2lkRnVuY3Rpb247XG59O1xuXG50eXBlIFBvcG92ZXJDYXBhYmxlID0gSFRNTEVsZW1lbnQgJiB7IHNob3dQb3BvdmVyOiBWb2lkRnVuY3Rpb247IGhpZGVQb3BvdmVyOiBWb2lkRnVuY3Rpb24gfTtcblxuY29uc3QgaXNQb3BvdmVyQ2FwYWJsZSA9IChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGVsZW1lbnQgaXMgUG9wb3ZlckNhcGFibGUgPT5cbiAgdHlwZW9mIChlbGVtZW50IGFzIFBhcnRpYWw8UG9wb3ZlckNhcGFibGU+KS5zaG93UG9wb3ZlciA9PT0gXCJmdW5jdGlvblwiO1xuXG5jb25zdCBGbG9hdGluZ1N0eWxlZFRvb2x0aXBDb250YWluZXIgPSAocHJvcHM6IEZsb2F0aW5nU3R5bGVkVG9vbHRpcENvbnRhaW5lclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udGVudCwgcG9zaXRpb24sIHJlZmVyZW5jZSwgb25Ub29sdGlwU2hvd24gfSA9IHByb3BzO1xuICBjb25zdCBbZmxvYXRpbmcsIHNldEZsb2F0aW5nXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICBwbGFjZW1lbnQ6IHBvc2l0aW9uLFxuICAgIG1pZGRsZXdhcmU6IFtmbGlwKCksIG9mZnNldCg4KSwgc2hpZnQoKV0sXG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIGZsb2F0aW5nLFxuICAgICAgcmVmZXJlbmNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IHdlIGRvbid0IHdhbnQgdG8gY2FsbCBvblRvb2x0aXBTaG93biBldmVyeSB0aW1lIGl0IHVwZGF0ZXMgd2hpbGUgdGhlIHRvb2x0aXAgaXMgYmVpbmcgc2hvd1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgb25Ub29sdGlwU2hvd24oKTtcbiAgfSwgW10pO1xuXG4gIC8vIEludG8gdGhlIHRvcCBsYXllciwgd2hlcmUgYSBkcm9wLWRvd24gbWVudSBhbHJlYWR5IHB1dHMgaXRzZWxmOiBubyB6LWluZGV4IGNhblxuICAvLyBwYWludCBvdmVyIGEgcG9wb3Zlciwgc28gYSB0b29sdGlwIGFueXdoZXJlIG5lYXIgYW4gb3BlbiBtZW51IHdvdWxkIGJlIGhpZGRlblxuICAvLyBiZWhpbmQgaXQuIFNob3duIGFmdGVyIHRoZSBtZW51IG9wZW5lZCwgc28gaXQgbGFuZHMgYWJvdmUgaXQuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFmbG9hdGluZyB8fCAhaXNQb3BvdmVyQ2FwYWJsZShmbG9hdGluZykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmbG9hdGluZy5zaG93UG9wb3ZlcigpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChmbG9hdGluZy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBmbG9hdGluZy5oaWRlUG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtmbG9hdGluZ10pO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZFRvb2x0aXBDb250YWluZXIgJHJlZj17c2V0RmxvYXRpbmd9IHBvcG92ZXI9XCJtYW51YWxcIiBzdHlsZT17ZmxvYXRpbmdTdHlsZXN9PlxuICAgICAge2NvbnRlbnR9XG4gICAgPC9TdHlsZWRUb29sdGlwQ29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcFBsdWdpbjxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+ID0gUmV0dXJuVHlwZTx0eXBlb2YgdG9vbHRpcFBsdWdpbjxUPj47XG5cbnR5cGUgTm9ybWFsaXplZFRvb2x0aXBQcm9wcyA9IHtcbiAgcmVhZG9ubHkgY29udGVudFRleHQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IENvbnRlbnQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT47XG4gIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IGFueTtcbiAgcmVhZG9ubHkgcG9zaXRpb246IFBsYWNlbWVudDtcbiAgcmVhZG9ubHkgb25Ub29sdGlwU2hvd246IE1heWJlQXN5bmNWb2lkRnVuY3Rpb247XG59O1xuXG50eXBlIFRvb2x0aXBXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IHRvb2x0aXA6IE5vcm1hbGl6ZWRUb29sdGlwUHJvcHM7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgVG9vbHRpcFdyYXBwZXJDb21wb25lbnQgPSAoeyB0b29sdGlwLCBjb250cmlidXRlUmVmLCBjb250cmlidXRlUHJvcHMsIGNoaWxkcmVuIH06IFRvb2x0aXBXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgW3JlZmVyZW5jZSwgc2V0UmVmZXJlbmNlXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnRyaWJ1dGVSZWYoc2V0UmVmZXJlbmNlKTtcblxuICBjb25zdCB0b29sdGlwRGVsYXkgPSB1c2VTeW5jSW5qZWN0KHRvb2x0aXBEZWxheUluamVjdGFibGUpO1xuICBjb25zdCBob3Zlckl0ZW1TdGF0ZUZvciA9IHVzZVN5bmNJbmplY3QoaG92ZXJJdGVtU3RhdGVGb3JJbmplY3RhYmxlKTtcbiAgY29uc3QgaG92ZXJlZEl0ZW0gPSB1c2VTeW5jSW5qZWN0KGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbikoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpO1xuICBjb25zdCBpZCA9IHVzZUlkKCk7XG5cbiAgY29uc3QgcmVmZXJlbmNlUmVmID0gdXNlUmVmKHJlZmVyZW5jZSk7XG4gIHJlZmVyZW5jZVJlZi5jdXJyZW50ID0gcmVmZXJlbmNlO1xuXG4gIGNvbnN0IHRvb2x0aXBEZWxheVJlZiA9IHVzZVJlZih0b29sdGlwRGVsYXkpO1xuICB0b29sdGlwRGVsYXlSZWYuY3VycmVudCA9IHRvb2x0aXBEZWxheTtcblxuICBjb250cmlidXRlUHJvcHMoe1xuICAgIG9uTW91c2VFbnRlcjogYWN0aW9uKCgpID0+IHtcbiAgICAgIGNvbnN0IGhvdmVyZWRBdCA9IERhdGUubm93KCk7XG5cbiAgICAgIGhvdmVySXRlbVN0YXRlRm9yKGhvdmVyYWJsZVRvb2x0aXBDb250ZXh0KS5zZXQoaWQsIHtcbiAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgIGdldFByb3BzOiAoKSA9PiAoe1xuICAgICAgICAgIGl0ZW06IHJlZmVyZW5jZVJlZi5jdXJyZW50LFxuICAgICAgICAgIGRlbGF5OiB0b29sdGlwRGVsYXlSZWYuY3VycmVudCA/PyAwLFxuICAgICAgICAgIG9uSG92ZXI6IG5vb3AsXG4gICAgICAgICAgb25VbmhvdmVyOiBub29wLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICAgIH0pLFxuXG4gICAgb25Nb3VzZUxlYXZlOiBhY3Rpb24oKCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZFN0YXRlID0gaG92ZXJJdGVtU3RhdGVGb3IoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpO1xuICAgICAgY29uc3QgaG92ZXJlZEF0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgaG92ZXJlZFN0YXRlLmRlbGV0ZShpZCk7XG4gICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgfSksXG4gIH0pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaG92ZXJJdGVtU3RhdGVGb3IoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpLmRlbGV0ZShpZCk7XG4gICAgICB9KSxcbiAgICBbaG92ZXJJdGVtU3RhdGVGb3IsIGlkXSxcbiAgKTtcblxuICBjb25zdCBbaG92ZXJlZCwgc2V0SG92ZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gYXV0b3J1bigoKSA9PiB7XG4gICAgICBjb25zdCBpc0hvdmVyZWQgPSBob3ZlcmVkSXRlbS5nZXQoKSA9PT0gcmVmZXJlbmNlUmVmLmN1cnJlbnQ7XG4gICAgICBzZXRIb3ZlcmVkKGlzSG92ZXJlZCk7XG4gICAgfSk7XG4gIH0sIFtob3ZlcmVkSXRlbV0pO1xuXG4gIGNvbnN0IHsgY29udGVudFRleHQsIENvbnRlbnQsIGNvbnRlbnRQcm9wcywgcG9zaXRpb24sIG9uVG9vbHRpcFNob3duIH0gPSB0b29sdGlwO1xuICBjb25zdCBjb250ZW50ID0gaG92ZXJlZCA/IENvbnRlbnQgPT09IHVuZGVmaW5lZCA/IGNvbnRlbnRUZXh0IDogPENvbnRlbnQgey4uLmNvbnRlbnRQcm9wc30gLz4gOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2NvbnRlbnRcbiAgICAgICAgPyBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8RmxvYXRpbmdTdHlsZWRUb29sdGlwQ29udGFpbmVyIHsuLi57IGNvbnRlbnQsIHBvc2l0aW9uLCBvblRvb2x0aXBTaG93biwgcmVmZXJlbmNlIH19IC8+LFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbH1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b29sdGlwUGx1Z2luPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSB7XG4gIHJldHVybiBnZXRQbHVnaW48VG9vbHRpcFBsdWdpblByb3BzLCBbSG92ZXJhYmxlUGx1Z2luPFQ+LCBSZWZQbHVnaW48VD5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICR0b29sdGlwIH0gPSBwcm9wcyBhcyB0eXBlb2YgcHJvcHMgJiB7IHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlIH07XG5cbiAgICBpZiAoJHRvb2x0aXAgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJHRvb2x0aXA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgY29udGVudFRleHQsXG4gICAgICBDb250ZW50LFxuICAgICAgY29udGVudFByb3BzLFxuICAgICAgcG9zaXRpb24gPSBcImJvdHRvbVwiLFxuICAgICAgb25Ub29sdGlwU2hvd24gPSBub29wLFxuICAgIH06ICRUb29sdGlwUHJvcHM8YW55PiA9IHR5cGVvZiAkdG9vbHRpcCA9PT0gXCJzdHJpbmdcIiA/IHsgY29udGVudFRleHQ6ICR0b29sdGlwIH0gOiAkdG9vbHRpcDtcblxuICAgIHJldHVybiB7XG4gICAgICAkdG9vbHRpcDogdW5kZWZpbmVkLFxuICAgICAgJHdyYXBwZXI6IHtcbiAgICAgICAgQ29tcG9uZW50OiBUb29sdGlwV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICB0b29sdGlwOiB7IGNvbnRlbnRUZXh0LCBDb250ZW50LCBjb250ZW50UHJvcHMsIHBvc2l0aW9uLCBvblRvb2x0aXBTaG93biB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCB0b29sdGlwRGVsYXlJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJ0b29sdGlwLWRlbGF5XCIsXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IDUwMCxcbn0pO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS5zY3NzXCIsIGNzczogXCIudG9vbHRpcC1tb2R1bGVfX3Rvb2x0aXBfX192YU9BdSB7XFxuICB6LWluZGV4OiAxMDAwMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogbWF4LWNvbnRlbnQ7XFxuICBtYXgtd2lkdGg6IDYwMHB4O1xcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG59XFxuLnRvb2x0aXAtbW9kdWxlX190b29sdGlwX19fdmFPQXU6cG9wb3Zlci1vcGVuIHtcXG4gIGluc2V0OiBhdXRvO1xcbiAgbWFyZ2luOiAwO1xcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0b29sdGlwXCI6XCJ0b29sdGlwLW1vZHVsZV9fdG9vbHRpcF9fX3ZhT0F1XCJ9OyIsICJpbXBvcnQgeyBnZXRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBvYnNlcnZlciB9IGZyb20gXCJtb2J4LXJlYWN0XCI7XG5pbXBvcnQgeyBhYnNvbHV0ZVBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5pbXBvcnQgeyBwYWRkaW5nUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5pbXBvcnQgeyBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3JcIjtcbmltcG9ydCB7IGJvcmRlclBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2JvcmRlci9ib3JkZXJcIjtcbmltcG9ydCB7IGZvbnRQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9mb250L2ZvbnRcIjtcbmltcG9ydCB7IGJveFNoYWRvd1BsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvd1wiO1xuaW1wb3J0IHsgbm9Qb2ludGVyRXZlbnRzUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvbm8tcG9pbnRlci1ldmVudHMvbm8tcG9pbnRlci1ldmVudHNcIjtcbmltcG9ydCB7IHJlZlBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL3JlZi9yZWZcIjtcbmltcG9ydCB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgcmVsYXRpdmVQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9yZWxhdGl2ZS9yZWxhdGl2ZVwiO1xuaW1wb3J0IHsgaG92ZXJhYmxlUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZVwiO1xuXG5jb25zdCBwbHVnaW5zID0gW1xuICBwYWRkaW5nUGx1Z2luLFxuICBib3hTaGFkb3dQbHVnaW4sXG4gIGJvcmRlclBsdWdpbixcbiAgZm9udFBsdWdpbixcbiAgYmFja2dyb3VuZENvbG9yUGx1Z2luLFxuICBub1BvaW50ZXJFdmVudHNQbHVnaW4sXG4gIHJlbGF0aXZlUGx1Z2luLFxuICBhYnNvbHV0ZVBsdWdpbixcbiAgY2xhc3NOYW1lUGx1Z2luLFxuXTtcblxuY29uc3QgZ2V0VHlwZWRQbHVnaW5zID0gPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSA9PiBbaG92ZXJhYmxlUGx1Z2luPFQ+KCksIHJlZlBsdWdpbjxUPigpXTtcblxuZXhwb3J0IGNvbnN0IE1pbmltYWxEaXYgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiZGl2XCIsIC4uLnBsdWdpbnMsIC4uLmdldFR5cGVkUGx1Z2luczxIVE1MRGl2RWxlbWVudD4oKSkpO1xuXG5leHBvcnQgdHlwZSBNaW5pbWFsRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgTWluaW1hbERpdj47XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBhYnNvbHV0ZVN0eWxlcyBmcm9tIFwiLi9hYnNvbHV0ZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBBYnNvbHV0ZVBvc2l0aW9uID1cbiAgfCBcImFic29sdXRlLWNlbnRlci1sZWZ0LXRvLXJlbGF0aXZlLWNlbnRlci1yaWdodFwiXG4gIHwgXCJhYnNvbHV0ZS1ib3R0b20tbGVmdC10by1yZWxhdGl2ZS10b3AtbGVmdFwiXG4gIHwgXCJhYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tXCJcbiAgfCBcImFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlclwiO1xuXG5leHBvcnQgdHlwZSBBYnNvbHV0ZVBsdWdpblByb3BzID0geyAkYWJzb2x1dGU/OiBBYnNvbHV0ZVBvc2l0aW9uIHwgYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgYWJzb2x1dGVQbHVnaW4gPSBnZXRQbHVnaW48QWJzb2x1dGVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtcbiAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIHsgW2Fic29sdXRlU3R5bGVzLmFic29sdXRlXTogISFwcm9wcy4kYWJzb2x1dGUgfSxcbiAgICB0eXBlb2YgcHJvcHMuJGFic29sdXRlID09PSBcInN0cmluZ1wiID8gYWJzb2x1dGVTdHlsZXNbYGFic29sdXRlLS0ke3Byb3BzLiRhYnNvbHV0ZX1gXSA6IHVuZGVmaW5lZCxcbiAgXSxcblxuICAkYWJzb2x1dGU6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZV9fX01YLS1ZIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1sZWZ0LXRvLXJlbGF0aXZlLWNlbnRlci1yaWdodF9fX2xKMHByIHtcXG4gIGxlZnQ6IDEwMCU7XFxuICB0b3A6IDUwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWJvdHRvbS1sZWZ0LXRvLXJlbGF0aXZlLXRvcC1sZWZ0X19fM2cwc0Qge1xcbiAgbGVmdDogMDtcXG4gIGJvdHRvbTogMTAwJTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1jZW50ZXItdG8tcmVsYXRpdmUtYm90dG9tLXJpZ2h0X19fZ2dtTzgge1xcbiAgbGVmdDogMTAwJTtcXG4gIGJvdHRvbTogMTAwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbn1cXG4uYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZS0tYWJzb2x1dGUtYm90dG9tLXRvLXJlbGF0aXZlLWJvdHRvbV9fX0NsbTBtIHtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlcl9fX0V0a3k1IHtcXG4gIGxlZnQ6IDUwJTtcXG4gIHRvcDogMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJhYnNvbHV0ZVwiOlwiYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZV9fX01YLS1ZXCIsXCJhYnNvbHV0ZS0tYWJzb2x1dGUtY2VudGVyLWxlZnQtdG8tcmVsYXRpdmUtY2VudGVyLXJpZ2h0XCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1jZW50ZXItbGVmdC10by1yZWxhdGl2ZS1jZW50ZXItcmlnaHRfX19sSjBwclwiLFwiYWJzb2x1dGUtLWFic29sdXRlLWJvdHRvbS1sZWZ0LXRvLXJlbGF0aXZlLXRvcC1sZWZ0XCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tbGVmdC10by1yZWxhdGl2ZS10b3AtbGVmdF9fXzNnMHNEXCIsXCJhYnNvbHV0ZS0tYWJzb2x1dGUtY2VudGVyLWNlbnRlci10by1yZWxhdGl2ZS1ib3R0b20tcmlnaHRcIjpcImFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1jZW50ZXItdG8tcmVsYXRpdmUtYm90dG9tLXJpZ2h0X19fZ2dtTzhcIixcImFic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tXCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tX19fQ2xtMG1cIixcImFic29sdXRlLS1hYnNvbHV0ZS10b3AtY2VudGVyLXRvLXJlbGF0aXZlLXRvcC1jZW50ZXJcIjpcImFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlcl9fX0V0a3k1XCJ9OyIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHBhZGRpbmdTdHlsZXMgZnJvbSBcIi4vcGFkZGluZy5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBEaXJlY3Rpb25hbFBhZGRpbmcgPSB7XG4gIHRvcD86IFRTaGlydFNpemU7XG4gIGJvdHRvbT86IFRTaGlydFNpemU7XG4gIGxlZnQ/OiBUU2hpcnRTaXplO1xuICByaWdodD86IFRTaGlydFNpemU7XG4gIGhvcml6b250YWw/OiBUU2hpcnRTaXplO1xuICB2ZXJ0aWNhbD86IFRTaGlydFNpemU7XG59O1xuXG5leHBvcnQgdHlwZSBQYWRkaW5nUGx1Z2luUHJvcHMgPSB7ICRwYWRkaW5nPzogYm9vbGVhbiB8IERpcmVjdGlvbmFsUGFkZGluZyB8IFRTaGlydFNpemUgfTtcblxuZXhwb3J0IGNvbnN0IHBhZGRpbmdQbHVnaW4gPSBnZXRQbHVnaW48UGFkZGluZ1BsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRwYWRkaW5nKSB7XG4gICAgcmV0dXJuIHsgJHBhZGRpbmc6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgcGFkZGluZyA9IHByb3BzLiRwYWRkaW5nID09PSB0cnVlID8gXCJ4c1wiIDogcHJvcHMuJHBhZGRpbmc7XG5cbiAgaWYgKGlzU3RyaW5nKHBhZGRpbmcpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwYWRkaW5nU3R5bGVzW2BwYWRkaW5nLS0ke3BhZGRpbmd9YF1dLFxuICAgICAgJHBhZGRpbmc6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgdG9wU2l6ZSA9IHBhZGRpbmcudG9wIHx8IHBhZGRpbmcudmVydGljYWw7XG4gIGNvbnN0IGJvdHRvbVNpemUgPSBwYWRkaW5nLmJvdHRvbSB8fCBwYWRkaW5nLnZlcnRpY2FsO1xuICBjb25zdCByaWdodFNpemUgPSBwYWRkaW5nLnJpZ2h0IHx8IHBhZGRpbmcuaG9yaXpvbnRhbDtcbiAgY29uc3QgbGVmdFNpemUgPSBwYWRkaW5nLmxlZnQgfHwgcGFkZGluZy5ob3Jpem9udGFsO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIHNpZGVDbGFzc05hbWUoXCJ0b3BcIiwgdG9wU2l6ZSksXG4gICAgICBzaWRlQ2xhc3NOYW1lKFwicmlnaHRcIiwgcmlnaHRTaXplKSxcbiAgICAgIHNpZGVDbGFzc05hbWUoXCJib3R0b21cIiwgYm90dG9tU2l6ZSksXG4gICAgICBzaWRlQ2xhc3NOYW1lKFwibGVmdFwiLCBsZWZ0U2l6ZSksXG4gICAgXSxcblxuICAgICRwYWRkaW5nOiB1bmRlZmluZWQsXG4gIH07XG59KTtcblxuY29uc3Qgc2lkZUNsYXNzTmFtZSA9IChzaWRlOiBcInRvcFwiIHwgXCJyaWdodFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiLCBzaXplOiBUU2hpcnRTaXplIHwgdW5kZWZpbmVkKSA9PlxuICBzaXplID8gcGFkZGluZ1N0eWxlc1tgcGFkZGluZ19fJHtzaWRlfS0tJHtzaXplfWBdIDogdW5kZWZpbmVkO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nLm1vZHVsZS5zY3NzXCIsIGNzczogXCIucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0temVyb19fX2dxcWZaIHtcXG4gIHBhZGRpbmctdG9wOiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS00eHNfX19ZLXk5cyB7XFxuICBwYWRkaW5nLXRvcDogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tM3hzX19fb2NjNE4ge1xcbiAgcGFkZGluZy10b3A6IDJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXh4c19fX043QnNsIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14c19fX0wwVUREIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1zX19fa2xRZTIge1xcbiAgcGFkZGluZy10b3A6IDEycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1tX19fY3RhNXQge1xcbiAgcGFkZGluZy10b3A6IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1sX19fTGctcHEge1xcbiAgcGFkZGluZy10b3A6IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14bF9fX1h2c3ZMIHtcXG4gIHBhZGRpbmctdG9wOiAyNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0teHhsX19fMWtlb2Uge1xcbiAgcGFkZGluZy10b3A6IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS0zeGxfX19jVVBzOSB7XFxuICBwYWRkaW5nLXRvcDogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTR4bF9fX3FpazJlIHtcXG4gIHBhZGRpbmctdG9wOiAzNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tNXhsX19fczlrcFEge1xcbiAgcGFkZGluZy10b3A6IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS02eGxfX19xYzNGWiB7XFxuICBwYWRkaW5nLXRvcDogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTd4bF9fX3RhQy1QIHtcXG4gIHBhZGRpbmctdG9wOiA0OHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tOHhsX19fTFdoanEge1xcbiAgcGFkZGluZy10b3A6IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS05eGxfX19MMTNjcCB7XFxuICBwYWRkaW5nLXRvcDogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTEweGxfX19JZGU5QyB7XFxuICBwYWRkaW5nLXRvcDogNjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTExeGxfX19IdHRTYyB7XFxuICBwYWRkaW5nLXRvcDogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0temVyb19fXzZ2WWJUIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNHhzX19faGpPOEQge1xcbiAgcGFkZGluZy1yaWdodDogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0zeHNfX19NWFI3RyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXh4c19fX0ZuM09oIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0teHNfX19rcHNRUCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXNfX183ZUJEViB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS1tX19feEdkdHUge1xcbiAgcGFkZGluZy1yaWdodDogMTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tbF9fX015eWM0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXhsX19fLUdHakoge1xcbiAgcGFkZGluZy1yaWdodDogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0teHhsX19fMHlORVoge1xcbiAgcGFkZGluZy1yaWdodDogMjhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tM3hsX19fYmJPUEMge1xcbiAgcGFkZGluZy1yaWdodDogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNHhsX19fdkFaRVUge1xcbiAgcGFkZGluZy1yaWdodDogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNXhsX19fcHNOaGIge1xcbiAgcGFkZGluZy1yaWdodDogNDBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNnhsX19fSnd3a1Ige1xcbiAgcGFkZGluZy1yaWdodDogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tN3hsX19fZ29tdzkge1xcbiAgcGFkZGluZy1yaWdodDogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tOHhsX19fVmh2Vloge1xcbiAgcGFkZGluZy1yaWdodDogNTJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tOXhsX19fNE9CTm4ge1xcbiAgcGFkZGluZy1yaWdodDogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tMTB4bF9fX2VPVUEzIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTExeGxfX19JNzkyZyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA2NHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0temVyb19fX0ZTOTg0IHtcXG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS00eHNfX193aGkxeCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tM3hzX19fZTVya1kge1xcbiAgcGFkZGluZy1ib3R0b206IDJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXh4c19fX3hRdlZ2IHtcXG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14c19fX29jeWkwIHtcXG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1zX19fNkliblYge1xcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1tX19fZ3hCMk0ge1xcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1sX19fY2JNbzcge1xcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14bF9fX3RMQW96IHtcXG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0teHhsX19fZzM1Qi0ge1xcbiAgcGFkZGluZy1ib3R0b206IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS0zeGxfX19BejhraSB7XFxuICBwYWRkaW5nLWJvdHRvbTogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTR4bF9fX2tiUy1SIHtcXG4gIHBhZGRpbmctYm90dG9tOiAzNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tNXhsX19fd2psT28ge1xcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS02eGxfX19JRHhSTCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTd4bF9fX0hxRm1pIHtcXG4gIHBhZGRpbmctYm90dG9tOiA0OHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tOHhsX19fdUxOZUIge1xcbiAgcGFkZGluZy1ib3R0b206IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS05eGxfX19rWGpmLSB7XFxuICBwYWRkaW5nLWJvdHRvbTogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTEweGxfX19TSkNCeCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTExeGxfX19MUi1tcyB7XFxuICBwYWRkaW5nLWJvdHRvbTogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS16ZXJvX19fT0NUY1kge1xcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNHhzX19fMDg5MDgge1xcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hzX19fZmVDMC0ge1xcbiAgcGFkZGluZy1sZWZ0OiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHhzX19feE5iMkoge1xcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHNfX19kQmM2WCB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS1zX19fa3NpZ3Ige1xcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLW1fX19sYm1SbCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tbF9fX2tHZ3huIHtcXG4gIHBhZGRpbmctbGVmdDogMjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14bF9fX1E5cE5JIHtcXG4gIHBhZGRpbmctbGVmdDogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14eGxfX19rWDBhYyB7XFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hsX19fM1VuNmIge1xcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4bF9fX3puTzNuIHtcXG4gIHBhZGRpbmctbGVmdDogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS01eGxfX19SVEhzUCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNnhsX19faDVCRUEge1xcbiAgcGFkZGluZy1sZWZ0OiA0NHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTd4bF9fX3JUWmZoIHtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS04eGxfX19uZE11OSB7XFxuICBwYWRkaW5nLWxlZnQ6IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tOXhsX19fYjBHQTAge1xcbiAgcGFkZGluZy1sZWZ0OiA1NnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTEweGxfX19Qd0RTViB7XFxuICBwYWRkaW5nLWxlZnQ6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tMTF4bF9fXzJIc3ZKIHtcXG4gIHBhZGRpbmctbGVmdDogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS16ZXJvX19faHdtZnAge1xcbiAgcGFkZGluZzogMHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4c19fX1FPVUtCIHtcXG4gIHBhZGRpbmc6IDFweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0zeHNfX19SczRJdSB7XFxuICBwYWRkaW5nOiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHhzX19fTUlkQ0oge1xcbiAgcGFkZGluZzogNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXhzX19fUXdoYUIge1xcbiAgcGFkZGluZzogOHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXNfX19CTEhlLSB7XFxuICBwYWRkaW5nOiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLW1fX19QZHRaYSB7XFxuICBwYWRkaW5nOiAxNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLWxfX19SVkRMayB7XFxuICBwYWRkaW5nOiAyMHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXhsX19fY3VQYU4ge1xcbiAgcGFkZGluZzogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14eGxfX19IN1ZJSCB7XFxuICBwYWRkaW5nOiAyOHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTN4bF9fX2t2aXJUIHtcXG4gIHBhZGRpbmc6IDMycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tNHhsX19feTE3QTAge1xcbiAgcGFkZGluZzogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS01eGxfX185eW1JOSB7XFxuICBwYWRkaW5nOiA0MHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTZ4bF9fXzJLQ21hIHtcXG4gIHBhZGRpbmc6IDQ0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tN3hsX19fU3NJeG4ge1xcbiAgcGFkZGluZzogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS04eGxfX19zSFpwbSB7XFxuICBwYWRkaW5nOiA1MnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTl4bF9fX29WY0lnIHtcXG4gIHBhZGRpbmc6IDU2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tMTB4bF9fX2pLR2tuIHtcXG4gIHBhZGRpbmc6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tMTF4bF9fX0FnSnJHIHtcXG4gIHBhZGRpbmc6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wicGFkZGluZ19fdG9wLS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS16ZXJvX19fZ3FxZlpcIixcInBhZGRpbmdfX3RvcC0tNHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS00eHNfX19ZLXk5c1wiLFwicGFkZGluZ19fdG9wLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTN4c19fX29jYzROXCIsXCJwYWRkaW5nX190b3AtLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0teHhzX19fTjdCc2xcIixcInBhZGRpbmdfX3RvcC0teHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXhzX19fTDBVRERcIixcInBhZGRpbmdfX3RvcC0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tc19fX2tsUWUyXCIsXCJwYWRkaW5nX190b3AtLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLW1fX19jdGE1dFwiLFwicGFkZGluZ19fdG9wLS1sXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1sX19fTGctcHFcIixcInBhZGRpbmdfX3RvcC0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXhsX19fWHZzdkxcIixcInBhZGRpbmdfX3RvcC0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14eGxfX18xa2VvZVwiLFwicGFkZGluZ19fdG9wLS0zeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTN4bF9fX2NVUHM5XCIsXCJwYWRkaW5nX190b3AtLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tNHhsX19fcWlrMmVcIixcInBhZGRpbmdfX3RvcC0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS01eGxfX19zOWtwUVwiLFwicGFkZGluZ19fdG9wLS02eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTZ4bF9fX3FjM0ZaXCIsXCJwYWRkaW5nX190b3AtLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tN3hsX19fdGFDLVBcIixcInBhZGRpbmdfX3RvcC0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS04eGxfX19MV2hqcVwiLFwicGFkZGluZ19fdG9wLS05eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTl4bF9fX0wxM2NwXCIsXCJwYWRkaW5nX190b3AtLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTEweGxfX19JZGU5Q1wiLFwicGFkZGluZ19fdG9wLS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS0xMXhsX19fSHR0U2NcIixcInBhZGRpbmdfX3JpZ2h0LS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXplcm9fX182dlliVFwiLFwicGFkZGluZ19fcmlnaHQtLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS00eHNfX19oak84RFwiLFwicGFkZGluZ19fcmlnaHQtLTN4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0zeHNfX19NWFI3R1wiLFwicGFkZGluZ19fcmlnaHQtLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS14eHNfX19GbjNPaFwiLFwicGFkZGluZ19fcmlnaHQtLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXhzX19fa3BzUVBcIixcInBhZGRpbmdfX3JpZ2h0LS1zXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXNfX183ZUJEVlwiLFwicGFkZGluZ19fcmlnaHQtLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tbV9fX3hHZHR1XCIsXCJwYWRkaW5nX19yaWdodC0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS1sX19fTXl5YzRcIixcInBhZGRpbmdfX3JpZ2h0LS14bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS14bF9fXy1HR2pKXCIsXCJwYWRkaW5nX19yaWdodC0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXh4bF9fXzB5TkVaXCIsXCJwYWRkaW5nX19yaWdodC0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTN4bF9fX2JiT1BDXCIsXCJwYWRkaW5nX19yaWdodC0tNHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTR4bF9fX3ZBWkVVXCIsXCJwYWRkaW5nX19yaWdodC0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTV4bF9fX3BzTmhiXCIsXCJwYWRkaW5nX19yaWdodC0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTZ4bF9fX0p3d2tSXCIsXCJwYWRkaW5nX19yaWdodC0tN3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTd4bF9fX2dvbXc5XCIsXCJwYWRkaW5nX19yaWdodC0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTh4bF9fX1ZodlZaXCIsXCJwYWRkaW5nX19yaWdodC0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTl4bF9fXzRPQk5uXCIsXCJwYWRkaW5nX19yaWdodC0tMTB4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0xMHhsX19fZU9VQTNcIixcInBhZGRpbmdfX3JpZ2h0LS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTExeGxfX19JNzkyZ1wiLFwicGFkZGluZ19fYm90dG9tLS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS16ZXJvX19fRlM5ODRcIixcInBhZGRpbmdfX2JvdHRvbS0tNHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS00eHNfX193aGkxeFwiLFwicGFkZGluZ19fYm90dG9tLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTN4c19fX2U1cmtZXCIsXCJwYWRkaW5nX19ib3R0b20tLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0teHhzX19feFF2VnZcIixcInBhZGRpbmdfX2JvdHRvbS0teHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXhzX19fb2N5aTBcIixcInBhZGRpbmdfX2JvdHRvbS0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tc19fXzZJYm5WXCIsXCJwYWRkaW5nX19ib3R0b20tLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLW1fX19neEIyTVwiLFwicGFkZGluZ19fYm90dG9tLS1sXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1sX19fY2JNbzdcIixcInBhZGRpbmdfX2JvdHRvbS0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXhsX19fdExBb3pcIixcInBhZGRpbmdfX2JvdHRvbS0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14eGxfX19nMzVCLVwiLFwicGFkZGluZ19fYm90dG9tLS0zeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTN4bF9fX0F6OGtpXCIsXCJwYWRkaW5nX19ib3R0b20tLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tNHhsX19fa2JTLVJcIixcInBhZGRpbmdfX2JvdHRvbS0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS01eGxfX193amxPb1wiLFwicGFkZGluZ19fYm90dG9tLS02eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTZ4bF9fX0lEeFJMXCIsXCJwYWRkaW5nX19ib3R0b20tLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tN3hsX19fSHFGbWlcIixcInBhZGRpbmdfX2JvdHRvbS0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS04eGxfX191TE5lQlwiLFwicGFkZGluZ19fYm90dG9tLS05eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTl4bF9fX2tYamYtXCIsXCJwYWRkaW5nX19ib3R0b20tLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTEweGxfX19TSkNCeFwiLFwicGFkZGluZ19fYm90dG9tLS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS0xMXhsX19fTFItbXNcIixcInBhZGRpbmdfX2xlZnQtLXplcm9cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS16ZXJvX19fT0NUY1lcIixcInBhZGRpbmdfX2xlZnQtLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4c19fXzA4OTA4XCIsXCJwYWRkaW5nX19sZWZ0LS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0zeHNfX19mZUMwLVwiLFwicGFkZGluZ19fbGVmdC0teHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHhzX19feE5iMkpcIixcInBhZGRpbmdfX2xlZnQtLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHNfX19kQmM2WFwiLFwicGFkZGluZ19fbGVmdC0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLXNfX19rc2lnclwiLFwicGFkZGluZ19fbGVmdC0tbVwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLW1fX19sYm1SbFwiLFwicGFkZGluZ19fbGVmdC0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLWxfX19rR2d4blwiLFwicGFkZGluZ19fbGVmdC0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14bF9fX1E5cE5JXCIsXCJwYWRkaW5nX19sZWZ0LS14eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14eGxfX19rWDBhY1wiLFwicGFkZGluZ19fbGVmdC0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hsX19fM1VuNmJcIixcInBhZGRpbmdfX2xlZnQtLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4bF9fX3puTzNuXCIsXCJwYWRkaW5nX19sZWZ0LS01eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS01eGxfX19SVEhzUFwiLFwicGFkZGluZ19fbGVmdC0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNnhsX19faDVCRUFcIixcInBhZGRpbmdfX2xlZnQtLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTd4bF9fX3JUWmZoXCIsXCJwYWRkaW5nX19sZWZ0LS04eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS04eGxfX19uZE11OVwiLFwicGFkZGluZ19fbGVmdC0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tOXhsX19fYjBHQTBcIixcInBhZGRpbmdfX2xlZnQtLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0xMHhsX19fUHdEU1ZcIixcInBhZGRpbmdfX2xlZnQtLTExeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0xMXhsX19fMkhzdkpcIixcInBhZGRpbmctLXplcm9cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS16ZXJvX19faHdtZnBcIixcInBhZGRpbmctLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4c19fX1FPVUtCXCIsXCJwYWRkaW5nLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0zeHNfX19SczRJdVwiLFwicGFkZGluZy0teHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHhzX19fTUlkQ0pcIixcInBhZGRpbmctLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHNfX19Rd2hhQlwiLFwicGFkZGluZy0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXNfX19CTEhlLVwiLFwicGFkZGluZy0tbVwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLW1fX19QZHRaYVwiLFwicGFkZGluZy0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLWxfX19SVkRMa1wiLFwicGFkZGluZy0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14bF9fX2N1UGFOXCIsXCJwYWRkaW5nLS14eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14eGxfX19IN1ZJSFwiLFwicGFkZGluZy0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tM3hsX19fa3ZpclRcIixcInBhZGRpbmctLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4bF9fX3kxN0EwXCIsXCJwYWRkaW5nLS01eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS01eGxfX185eW1JOVwiLFwicGFkZGluZy0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tNnhsX19fMktDbWFcIixcInBhZGRpbmctLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTd4bF9fX1NzSXhuXCIsXCJwYWRkaW5nLS04eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS04eGxfX19zSFpwbVwiLFwicGFkZGluZy0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tOXhsX19fb1ZjSWdcIixcInBhZGRpbmctLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0xMHhsX19faktHa25cIixcInBhZGRpbmctLTExeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0xMXhsX19fQWdKckdcIn07IiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgYmFja2dyb3VuZENvbG9yU3R5bGVzIGZyb20gXCIuL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tIFwiLi4vX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUgQmFja2dyb3VuZENvbG9yQWxpYXMgPSBrZXlvZiB0eXBlb2YgYWxpYXNUb05vbWluYWw7XG5leHBvcnQgdHlwZSBCYWNrZ3JvdW5kQ29sb3IgPSBDb2xvciB8IEJhY2tncm91bmRDb2xvckFsaWFzO1xuXG5leHBvcnQgdHlwZSAkQmFja2dyb3VuZENvbG9yUHJvcHMgPSB7XG4gIG5vcm1hbD86IEJhY2tncm91bmRDb2xvcjtcbiAgaG92ZXI/OiBCYWNrZ3JvdW5kQ29sb3I7XG4gIGZvY3VzPzogQmFja2dyb3VuZENvbG9yO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMgPSB7ICRiYWNrZ3JvdW5kQ29sb3I/OiBCYWNrZ3JvdW5kQ29sb3IgfCAkQmFja2dyb3VuZENvbG9yUHJvcHMgfTtcblxuY29uc3QgYWxpYXNUb05vbWluYWwgPSB7XG4gIGJhY2tncm91bmRQcmltYXJ5OiBcImdyZXk4MFwiLFxuICBiYWNrZ3JvdW5kU2Vjb25kYXJ5OiBcImdyZXkxMDBcIixcbiAgYmFja2dyb3VuZFByaW1hcnlEaW1tZWQ6IFwiZ3JleTgwQWxwaGE4NVwiLFxufSBhcyBjb25zdDtcblxuY29uc3QgaXNCYWNrZ3JvdW5kQ29sb3JBbGlhcyA9IChjb2xvcjogQmFja2dyb3VuZENvbG9yKTogY29sb3IgaXMgQmFja2dyb3VuZENvbG9yQWxpYXMgPT4gY29sb3IgaW4gYWxpYXNUb05vbWluYWw7XG5cbmV4cG9ydCBjb25zdCBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gPSBnZXRQbHVnaW48QmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGJhY2tncm91bmRDb2xvcjogY29sb3IgfSA9IHByb3BzO1xuICBjb25zdCB7IG5vcm1hbCwgaG92ZXIsIGZvY3VzIH0gPSB0eXBlb2YgY29sb3IgPT09IFwic3RyaW5nXCIgPyB7IG5vcm1hbDogY29sb3IgfSA6IChjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgPyAoaXNCYWNrZ3JvdW5kQ29sb3JBbGlhcyhub3JtYWwpID8gYWxpYXNUb05vbWluYWxbbm9ybWFsXSA6IG5vcm1hbCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGhvdmVyQ29sb3IgPSBob3ZlciA/IChpc0JhY2tncm91bmRDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZm9jdXNDb2xvciA9IGZvY3VzID8gKGlzQmFja2dyb3VuZENvbG9yQWxpYXMoZm9jdXMpID8gYWxpYXNUb05vbWluYWxbZm9jdXNdIDogZm9jdXMpIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIG5vcm1hbENvbG9yID8gYmFja2dyb3VuZENvbG9yU3R5bGVzW2BiYWNrZ3JvdW5kQ29sb3ItLSR7bm9ybWFsQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgICBob3ZlckNvbG9yID8gYmFja2dyb3VuZENvbG9yU3R5bGVzW2BiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLSR7aG92ZXJDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGZvY3VzQ29sb3IgPyBiYWNrZ3JvdW5kQ29sb3JTdHlsZXNbYGJhY2tncm91bmRDb2xvci1mb2N1cy0tJHtmb2N1c0NvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIF0sXG4gICAgJGJhY2tncm91bmRDb2xvcjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1pbmhlcml0X19fTi1EdFkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXdoaXRlX19fMThmeHUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS10cmFuc3BhcmVudF9fX1ZkdC1ZIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwMF9fX1BSelV0IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTgwX19fYWJ5dHUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk2MF9fX1BQQVNsIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NDBfX193RkJhbCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTMwX19fLS04TVQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXkyNV9fX1lFOFFmIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5MjBfX182MDBqUSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwX19fSVNzYzkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk3MF9fX1YtWkdMIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1X19fN29UWDMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1wcmltYXJ5X19fT0huckwge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1hY2NlbnRfX19kdDQ3ZiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NfX19XVVIzeSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLW5vdGljZV9fX2xWTlJkIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS13YXJuaW5nX19fQXJWdmwge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbF9fX3AtV2I5IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NUaW50X19fMlVQM1kge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0td2FybmluZ1RpbnRfX19xd0YwOCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbFRpbnRfX19pSy1qbCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbGlua19fX2o0Umo3IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tY29kZV9fX0VtLWJKIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0taW5oZXJpdF9fX215MlJxOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS13aGl0ZV9fX3RlLWdwOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRfX18xRDJJajpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMDBfX18tSkh1Mjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk4MF9fX3otODVJOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NjBfX19oVWJZMzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTQwX19fM0EtZTY6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkzMF9fXzctQ0ZqOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjVfX19tSVQ4UTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTIwX19fb01BY0Q6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMF9fX2dSMTkzOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NzBfX19rMkpLTTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTgwQWxwaGE4NV9fX0Nkay0tOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeV9fX3p0Z3pBOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tYWNjZW50X19fQkFqVVE6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzX19fRzMwVkg6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ub3RpY2VfX19qV0ZjQzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ19fX3ZuLUJLOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxfX19yNmJaSTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fXzg4TERqOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fWGk2MkY6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVjBxMm86aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWxpbmtfX19YOUxGcTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVfX19sSENJZzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWluaGVyaXRfX19SSlBXSjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0td2hpdGVfX194Rjh1Mzpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fdHFxLXg6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MTAwX19feHQxeEw6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBfX19lMjhqajpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTYwX19fd3REd1Q6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk0MF9fX0RESGtQOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MzBfX19aVnZENTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTI1X19fQXNWNmY6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkyMF9fX09MMFpZOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MTBfX19tYWl6Zjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTcwX19fdlJuTDI6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVfX19WaHl1Tjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXByaW1hcnlfX183VHprdTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWFjY2VudF9fX210REdPOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc19fX255M3psOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbm90aWNlX19fb3ZGdjE6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdhcm5pbmdfX19xbG4ydTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsX19fUGdESTU6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc1RpbnRfX19jcS1ENTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS13YXJuaW5nVGludF9fX2FIdGdBOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsVGludF9fX2VKOU5oOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1saW5rX19fVGxSUlk6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1jb2RlX19fZmE2NVU6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYmFja2dyb3VuZENvbG9yLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1pbmhlcml0X19fTi1EdFlcIixcImJhY2tncm91bmRDb2xvci0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXdoaXRlX19fMThmeHVcIixcImJhY2tncm91bmRDb2xvci0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXRyYW5zcGFyZW50X19fVmR0LVlcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwMF9fX1BSelV0XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTgwX19fYWJ5dHVcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NjBfX19QUEFTbFwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk0MF9fX3dGQmFsXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTMwX19fLS04TVRcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5MjVfX19ZRThRZlwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXkyMF9fXzYwMGpRXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwX19fSVNzYzlcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NzBfX19WLVpHTFwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1X19fN29UWDNcIixcImJhY2tncm91bmRDb2xvci0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tcHJpbWFyeV9fX09IbnJMXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tYWNjZW50X19fZHQ0N2ZcIixcImJhY2tncm91bmRDb2xvci0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tc3VjY2Vzc19fX1dVUjN5XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbm90aWNlX19fbFZOUmRcIixcImJhY2tncm91bmRDb2xvci0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0td2FybmluZ19fX0FyVnZsXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbF9fX3AtV2I5XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1zdWNjZXNzVGludF9fXzJVUDNZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS13YXJuaW5nVGludF9fX3F3RjA4XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tY3JpdGljYWxUaW50X19faUstamxcIixcImJhY2tncm91bmRDb2xvci0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbGlua19fX2o0Umo3XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWNvZGVfX19FbS1iSlwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1pbmhlcml0X19fbXkyUnFcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdoaXRlX19fdGUtZ3BcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXRyYW5zcGFyZW50X19fMUQySWpcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwMF9fXy1KSHUyXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTgwX19fei04NUlcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NjBfX19oVWJZM1wiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk0MF9fXzNBLWU2XCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTMwX19fNy1DRmpcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjVfX19tSVQ4UVwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkyMF9fX29NQWNEXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwX19fZ1IxOTNcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NzBfX19rMkpLTVwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1X19fQ2RrLS1cIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeV9fX3p0Z3pBXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tYWNjZW50X19fQkFqVVFcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tc3VjY2Vzc19fX0czMFZIXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tbm90aWNlX19faldGY0NcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ19fX3ZuLUJLXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1jcml0aWNhbF9fX3I2YlpJXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fXzg4TERqXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS13YXJuaW5nVGludF9fX1hpNjJGXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVjBxMm9cIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tbGlua19fX1g5TEZxXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVfX19sSENJZ1wiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1pbmhlcml0X19fUkpQV0pcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdoaXRlX19feEY4dTNcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fdHFxLXhcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwMF9fX3h0MXhMXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTgwX19fZTI4ampcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NjBfX193dER3VFwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk0MF9fX0RESGtQXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTMwX19fWlZ2RDVcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MjVfX19Bc1Y2ZlwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkyMF9fX09MMFpZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwX19fbWFpemZcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NzBfX192Um5MMlwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBBbHBoYTg1X19fVmh5dU5cIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tcHJpbWFyeV9fXzdUemt1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tYWNjZW50X19fbXRER09cIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc19fX255M3psXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbm90aWNlX19fb3ZGdjFcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0td2FybmluZ19fX3FsbjJ1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1jcml0aWNhbF9fX1BnREk1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1zdWNjZXNzVGludF9fX2NxLUQ1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS13YXJuaW5nVGludF9fX2FIdGdBXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tY3JpdGljYWxUaW50X19fZUo5TmhcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbGlua19fX1RsUlJZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNvZGVfX19mYTY1VVwifTsiLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBib3JkZXJTdHlsZXMgZnJvbSBcIi4vYm9yZGVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4uL19zaGFyZWQvY29sb3JzXCI7XG5pbXBvcnQgdHlwZSB7IEJvcmRlcldpZHRoIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IHR5cGUgQ29ybmVyU3R5bGVzLCBnZXRDb3JuZXJTdHlsZXMgfSBmcm9tIFwiLi9nZXQtY29ybmVyLXN0eWxlc1wiO1xuaW1wb3J0IHsgZ2V0U2lkZVN0eWxlcywgdHlwZSBTaWRlU3R5bGVzIH0gZnJvbSBcIi4vZ2V0LXNpZGUtc3R5bGVzXCI7XG5pbXBvcnQgeyBjb21wYWN0IH0gZnJvbSBcImxvZGFzaC9mcFwiO1xuXG5leHBvcnQgdHlwZSBCb3JkZXJDb2xvckFsaWFzID0ga2V5b2YgdHlwZW9mIGFsaWFzVG9Ob21pbmFsO1xuZXhwb3J0IHR5cGUgQm9yZGVyQ29sb3IgPSBDb2xvciB8IEJvcmRlckNvbG9yQWxpYXM7XG5cbmNvbnN0IGFsaWFzVG9Ob21pbmFsID0geyBib3JkZXJQcmltYXJ5OiBcImdyZXk2MFwiIH0gYXMgY29uc3Q7XG5cbmNvbnN0IGlzQm9yZGVyQ29sb3JBbGlhcyA9IChjb2xvcjogQm9yZGVyQ29sb3IpOiBjb2xvciBpcyBCb3JkZXJDb2xvckFsaWFzID0+IGNvbG9yIGluIGFsaWFzVG9Ob21pbmFsO1xuXG5leHBvcnQgdHlwZSAkQm9yZGVyQ29sb3JQcm9wcyA9IHtcbiAgcmVhZG9ubHkgbm9ybWFsPzogQm9yZGVyQ29sb3I7XG4gIHJlYWRvbmx5IGhvdmVyPzogQm9yZGVyQ29sb3I7XG4gIHJlYWRvbmx5IGRpc2FibGVkPzogQm9yZGVyQ29sb3I7XG59O1xuXG5leHBvcnQgdHlwZSAkQm9yZGVyUHJvcHMgPSB7XG4gIGNvbG9yPzogQm9yZGVyQ29sb3IgfCAkQm9yZGVyQ29sb3JQcm9wcztcbiAgd2lkdGg/OiBCb3JkZXJXaWR0aCB8IGJvb2xlYW47XG4gIC8qKlxuICAgKiBMZWF2ZSB0aGUgbGFzdCBvZiB0aGUgZWxlbWVudCdzIHNpYmxpbmdzIHdpdGhvdXQgdGhlIGJvcmRlciwgc28gdGhhdCBhIHN0YWNrXG4gICAqIG9mIGJvcmRlcmVkIHJvd3MgcmVhZHMgYXMgcm93cyBzZXBhcmF0ZWQgZnJvbSBlYWNoIG90aGVyIHJhdGhlciB0aGFuIGZyYW1lZC5cbiAgICovXG4gIGV4Y2VwdExhc3Q/OiBib29sZWFuO1xufSAmIFNpZGVTdHlsZXMgJlxuICBDb3JuZXJTdHlsZXM7XG5cbmV4cG9ydCB0eXBlIEJvcmRlclBsdWdpblByb3BzID0geyAkYm9yZGVyPzogJEJvcmRlclByb3BzIH07XG5cbmV4cG9ydCBjb25zdCBib3JkZXJQbHVnaW4gPSBnZXRQbHVnaW48Qm9yZGVyUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGJvcmRlcikge1xuICAgIHJldHVybiB7ICRib3JkZXI6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgZ2V0Q29ybmVyU3R5bGVzKHByb3BzLiRib3JkZXIpLCBnZXRCb3JkZXJTdHlsZXMocHJvcHMuJGJvcmRlcildLFxuICAgICRib3JkZXI6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5jb25zdCBnZXRCb3JkZXJTdHlsZXMgPSAoeyB3aWR0aCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wLCBjb2xvciwgZXhjZXB0TGFzdCB9OiAkQm9yZGVyUHJvcHMpID0+IHtcbiAgY29uc3QgYm9yZGVyV2lkdGggPSB3aWR0aCA9PT0gdHJ1ZSB8fCAod2lkdGggPT09IHVuZGVmaW5lZCAmJiBjb2xvcikgPyBcInh4c1wiIDogd2lkdGg7XG4gIGNvbnN0IHsgbm9ybWFsLCBob3ZlciwgZGlzYWJsZWQgfSA9XG4gICAgYm9yZGVyV2lkdGggJiYgY29sb3IgPT09IHVuZGVmaW5lZFxuICAgICAgPyB7IG5vcm1hbDogXCJib3JkZXJQcmltYXJ5XCIgYXMgY29uc3QgfVxuICAgICAgOiB0eXBlb2YgY29sb3IgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyB7IG5vcm1hbDogY29sb3IgfVxuICAgICAgICA6IChjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgJiYgaXNCb3JkZXJDb2xvckFsaWFzKG5vcm1hbCkgPyBhbGlhc1RvTm9taW5hbFtub3JtYWxdIDogbm9ybWFsO1xuICBjb25zdCBob3ZlckNvbG9yID0gaG92ZXIgJiYgaXNCb3JkZXJDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyO1xuICBjb25zdCBkaXNhYmxlZENvbG9yID0gZGlzYWJsZWQgJiYgaXNCb3JkZXJDb2xvckFsaWFzKGRpc2FibGVkKSA/IGFsaWFzVG9Ob21pbmFsW2Rpc2FibGVkXSA6IGRpc2FibGVkO1xuXG4gIGNvbnN0IHN0eWxlQ2xhc3NlcyA9IGNvbXBhY3QoW1xuICAgIGJvcmRlcldpZHRoID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX3dpZHRoLS0ke2JvcmRlcldpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgIG5vcm1hbENvbG9yID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX2NvbG9yLS0ke25vcm1hbENvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIGhvdmVyQ29sb3IgPyBib3JkZXJTdHlsZXNbYGJvcmRlcl9fY29sb3ItLSR7aG92ZXJDb2xvcn0tLWhvdmVyYF0gOiB1bmRlZmluZWQsXG4gICAgZGlzYWJsZWRDb2xvciA/IGJvcmRlclN0eWxlc1tgYm9yZGVyX19jb2xvci0tJHtkaXNhYmxlZENvbG9yfS0tZGlzYWJsZWRgXSA6IHVuZGVmaW5lZCxcbiAgICAuLi5nZXRTaWRlU3R5bGVzKHsgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wIH0pLFxuICAgIGV4Y2VwdExhc3QgPyBib3JkZXJTdHlsZXNbXCJib3JkZXItLWV4Y2VwdC1sYXN0XCJdIDogdW5kZWZpbmVkLFxuICBdKTtcblxuICByZXR1cm4gW3N0eWxlQ2xhc3Nlcywgc3R5bGVDbGFzc2VzLmxlbmd0aCA+IDAgJiYgYm9yZGVyU3R5bGVzW1wiYm9yZGVyX19zdHlsZS0tc29saWRcIl1dO1xufTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2JvcmRlci9ib3JkZXIubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3N0eWxlLS1zb2xpZF9fXzFReTFKIHtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0temVyb19fXy1rN1VDIHtcXG4gIGJvcmRlci1yYWRpdXM6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS1zX19fdmxtdWwge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLW1fX19Fb0h2aiB7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbWxfX19rc0tQZSB7XFxuICBib3JkZXItcmFkaXVzOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbF9fXy01NG54IHtcXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tNTBfX19FYzVjYyB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tZnVsbF9fX2YwT2tMIHtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMDAwMDAwMDAwMDAwMDAwMDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXplcm9fX191TGNPMiB7XFxuICBib3JkZXItd2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXh4c19fX0owdFo5IHtcXG4gIGJvcmRlci13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHNfX19VUmNrSSB7XFxuICBib3JkZXItd2lkdGg6IDJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXNfX194OU5VaiB7XFxuICBib3JkZXItd2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLW1fX19DRjhDRSB7XFxuICBib3JkZXItd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLWxfX19Zb0I2NSB7XFxuICBib3JkZXItd2lkdGg6IDZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXhsX19fQkNMbE4ge1xcbiAgYm9yZGVyLXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS14eGxfX18tZHJnUCB7XFxuICBib3JkZXItd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS0zeGxfX19kcW1pRiB7XFxuICBib3JkZXItd2lkdGg6IDEycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS00eGxfX19iRUw5MCB7XFxuICBib3JkZXItd2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS01eGxfX196ajFWWCB7XFxuICBib3JkZXItd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0X19fRTJNU3Mge1xcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0taW5oZXJpdC0taG92ZXJfX19XeW5CUDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0LS1kaXNhYmxlZF9fX3EtdHNFOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdoaXRlX19fZ1Qyb2cge1xcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdoaXRlLS1ob3Zlcl9fX1FkcFZiOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0tZGlzYWJsZWRfX19peVRYSzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnRfX19zd2FtSCB7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWhvdmVyX19falVaLXo6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1kaXNhYmxlZF9fX3NpRHJ5OmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAwX19fdjVsODMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWhvdmVyX19fSjEtT1E6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWRpc2FibGVkX19fUWpLUlI6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MF9fX2txNWFUIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MC0taG92ZXJfX19DcHBsVjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWRpc2FibGVkX19fLThQS2w6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwX19fUDlKTUgge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3Zlcl9fX0FaaWNHOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk2MC0tZGlzYWJsZWRfX19nY1ZkRDpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NDBfX19mNlNEdyB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NDAtLWhvdmVyX19fVUhkSXI6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZF9fXzRlRGtDOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMF9fX2ZxYnR1IHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMC0taG92ZXJfX19WTkRTUjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWRpc2FibGVkX19fcHlKT3E6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1X19fc25WbmQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3Zlcl9fX25kcmZZOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkyNS0tZGlzYWJsZWRfX19vbVBKUDpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjBfX19nYm4zWiB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjAtLWhvdmVyX19feFJzd2M6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZF9fX1NWZUFUOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMF9fX1pVNUdhIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMC0taG92ZXJfX19VWmgtZDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWRpc2FibGVkX19fOVotT1Q6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwX19feXI5aU0ge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3Zlcl9fX2w5WVRkOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk3MC0tZGlzYWJsZWRfX19Td1JRaTpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fNkRiZFMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWhvdmVyX19feFNrd0E6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWRpc2FibGVkX19feVA0Ty06ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXByaW1hcnlfX19nZnhCTyB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0taG92ZXJfX19wdUhEcDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0tZGlzYWJsZWRfX19INUZzRzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50X19fZS1IbEQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWFjY2VudC0taG92ZXJfX19TMm9WRTpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50LS1kaXNhYmxlZF9fX3kzQmJiOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzX19fWnVybFMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWhvdmVyX19fV3ktMk06aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWRpc2FibGVkX19fVFAzUnY6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZV9fX1p3UXZUIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZS0taG92ZXJfX19NSlFVaDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWRpc2FibGVkX19feVZ1aTI6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ19fX0xLNkF6IHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1ob3Zlcl9fX21Bb1NCOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1kaXNhYmxlZF9fX1djQUstOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbF9fX0dUWXoxIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWwtLWhvdmVyX19fdU1GamE6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0tZGlzYWJsZWRfX19LOWdsNzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NUaW50X19fUFNSTW4ge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0taG92ZXJfX19VZkpQZzpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NUaW50LS1kaXNhYmxlZF9fX1drT3BBOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnRfX19JVFdtTSB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1ob3Zlcl9fX0pjLU5uOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWRpc2FibGVkX19fdXF6Qm86ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19PUXV4dCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbFRpbnQtLWhvdmVyX19fbFdhOUQ6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZF9fX2xZaGg0OmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWxpbmtfX19pWWVGayB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0taG92ZXJfX180eVJKUDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0tZGlzYWJsZWRfX18wazlkQjpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZV9fXzhPc0ZpIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jb2RlLS1ob3Zlcl9fX1o1czVkOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jb2RlLS1kaXNhYmxlZF9fX3VEUVpNOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcblxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS16ZXJvX19fVktScS0ge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0teHhzX19fOHppN1Qge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0teHNfX19STkVLMiB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS1zX19fYVZuMVcge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogM3B4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tbV9fX0I2MTRqIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLWxfX18tb2VQUCB7XFxuICBib3JkZXItdG9wLXdpZHRoOiA2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14bF9fX1pKYzZJIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXh4bF9fX01uckh6IHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS0zeGxfX181eEstLSB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAxMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tNHhsX19fcEVEdGMge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMTRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTV4bF9fX01GdmZoIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0X19fQ3IxbmEge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXdoaXRlX19fdS11UWIge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS10cmFuc3BhcmVudF9fX1BzTW14IHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMF9fX1djOXRMIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTgwX19fZUhqekYge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk2MF9fX3RTQXRlIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5NDBfX19IaXJnZiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTMwX19fQkJyQlEge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyNV9fX1VIVlpYIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjBfX18xbHVwUCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwX19fRTJHZlQge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk3MF9fX0RiQzJHIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fa0I5LXYge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1wcmltYXJ5X19fNTExamsge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1hY2NlbnRfX19JMUtCUCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXN1Y2Nlc3NfX183OS11aiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLW5vdGljZV9fXy1kT0QwIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nX19fVDM1a1gge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbF9fX3MtcXZrIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fUGEwTkcge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0td2FybmluZ1RpbnRfX18yZVVRVCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19ISkFvMiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tbGlua19fX0tZRkdLIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY29kZV9fX3ZLT0t3IHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS16ZXJvX19fcmxESW4ge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXh4c19fXy16NzlhIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14c19fX3daVmhqIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS1zX19fTXRZVDYge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAzcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLW1fX19TRDk3dyB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbF9fX3FTSTBFIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14bF9fXzA1bjAwIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogOHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14eGxfX18tYUV3diB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLTN4bF9fX0R1MFJvIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMTJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tNHhsX19fMlpDWGsge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS01eGxfX19TcDQ4ayB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWluaGVyaXRfX185eVBlSSB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlX19faElPQmQge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRfX19veElOSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTAwX19fYWFTbmEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwX19fNVBUNWoge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NjBfX19vTlctVSB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk0MF9fXzJKd2k5IHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTMwX19fVDZodHgge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MjVfX19RYkZVSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyMF9fX2VzTVFNIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTEwX19fWjBRemYge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NzBfX190a3pBSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk4MEFscGhhODVfX19qNDVVTiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1wcmltYXJ5X19fSElrMkEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tYWNjZW50X19fV1gyTFMge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tc3VjY2Vzc19fX1JJd2FIIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLW5vdGljZV9fX3ZVTGFUIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0td2FybmluZ19fX1kyaVBpIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsX19fWG02dFEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fbTFudlkge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50X19fbi1oeEYge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsVGludF9fXzRWSk44IHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbGlua19fX0gycmUzIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNvZGVfX19VQ2RNMCB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0temVyb19fX1BsQUJMIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLXh4c19fX1pGbS1VIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLXhzX19faER6U3Mge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tc19fX0lXdC11IHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLW1fX19mMXItcyB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiA0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS1sX19fMEh2bDEge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teGxfX19zU1J0cyB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14eGxfX19OdUJnRiB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tM3hsX19fR2pMWVUge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLTR4bF9fX0J2SldQIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS01eGxfX19yQ2VEQiB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdF9fXzczZHFWIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS13aGl0ZV9fX0RabWo2IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tdHJhbnNwYXJlbnRfX19xa05nRiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBfX19YMnY3eCB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXk4MF9fX3RuTWo1IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NjBfX19VT1cwbiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTQwX19fYzd1YzAge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkzMF9fX1k4NUM0IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjVfX19rdjJObSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTIwX19fdk8tbUoge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMF9fX0ZhLWh5IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NzBfX19oLUNrViB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2lyeG9IIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tcHJpbWFyeV9fX0otcjVKIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tYWNjZW50X19fb2M0UVMge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1zdWNjZXNzX19fZnhadlIge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ub3RpY2VfX19JSUE1UiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ19fX2xzWkctIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxfX19CN0w1LSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1zdWNjZXNzVGludF9fX0FzdnRjIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXdhcm5pbmdUaW50X19fNE9QZk8ge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxUaW50X19feDJVTFEge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWxpbmtfX19SMlhEdSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVfX19FcjloYiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuXFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS16ZXJvX19fMS1GTS0ge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14eHNfX19vakFhcCB7XFxuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLXhzX19fejJYSUYge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1zX19fRHFYYmMge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1tX19fNGpQdTUge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1sX19fbFBhUksge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14bF9fX01jLS1SIHtcXG4gIGJvcmRlci1sZWZ0LXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teHhsX19fS1hPUloge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tM3hsX19fNGZZSUUge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDEycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tNHhsX19fY2RVbFcge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tNXhsX19fN2w5SDAge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0taW5oZXJpdF9fX3FkNGtEIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdoaXRlX19fLXJ6czcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXRyYW5zcGFyZW50X19fdVVVRXgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkxMDBfX19RRGJWMiB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwX19fN2hWeTgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTYwX19fcTlUczIge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwX19feUlyMEoge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTMwX19faXRVVXMge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTI1X19fejlFZ0Qge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwX19fSHFySm4ge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTEwX19feXRaUE4ge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTcwX19fRW95Vlcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwQWxwaGE4NV9fXzJHSVcyIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1wcmltYXJ5X19fSU5DOHkge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWFjY2VudF9fXzFSUzByIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzX19fMTJLaXUge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLW5vdGljZV9fX21oSkFuIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdfX191VjV0VyB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY3JpdGljYWxfX19BNkppTyB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fZ09yWWoge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nVGludF9fX043VWNUIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY3JpdGljYWxUaW50X19fYS1mYUcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tbGlua19fX213Ukt3IHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1jb2RlX19fdUpXRkgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXplcm9fX19kbHN0ViB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXNfX192bzVlbCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLW1fX19HSUVjdCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLW1sX19fbUVjRHYge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1sX19fcmctRDAge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tNTBfX19YbGxHcyB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWZ1bGxfX181Wkl2OCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTAwMDAwMDAwMDAwMDAwMDAwMHB4O1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXplcm9fX19POGRFMyB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXNfX19ueEx0TCB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1fX19TbDVSUiB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1sX19fQW9RMGIge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1sX19fNTJKb2wge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tNTBfX183LXdPRyB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLWZ1bGxfX19MQmFQNiB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTAwMDAwMDAwMDAwMDAwMDAwMHB4O1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb19fX29RQmRtIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLXNfX196RklMMyB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1tX19fS05TY1Qge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tbWxfX192dDd4MiB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1sX19fazhwaWsge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLTUwX19fZjJYVHUge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tZnVsbF9fX2VIajZzIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwMDAwMDAwMDAwMDAwMDAwMDBweDtcXG59XFxuXFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLXplcm9fX19QMVl0dyB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS1zX19fSC1sWGUge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0tbV9fXzNMUlIwIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1sX19faWd2MHcge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0tbF9fXzNzMkNKIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS01MF9fX3dOWXdRIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDUwJTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxfX19DZnotUiB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMDAwMDAwMDAwMDAwMDAwMDAwcHg7XFxufVxcblxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXItLWV4Y2VwdC1sYXN0X19fMjJZc0I6bGFzdC1jaGlsZCB7XFxuICBib3JkZXItd2lkdGg6IDA7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYm9yZGVyX19zdHlsZS0tc29saWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fc3R5bGUtLXNvbGlkX19fMVF5MUpcIixcImJvcmRlcl9fcmFkaXVzLS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0temVyb19fXy1rN1VDXCIsXCJib3JkZXJfX3JhZGl1cy0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLXNfX192bG11bFwiLFwiYm9yZGVyX19yYWRpdXMtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS1tX19fRW9IdmpcIixcImJvcmRlcl9fcmFkaXVzLS1tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLW1sX19fa3NLUGVcIixcImJvcmRlcl9fcmFkaXVzLS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbF9fXy01NG54XCIsXCJib3JkZXJfX3JhZGl1cy0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS01MF9fX0VjNWNjXCIsXCJib3JkZXJfX3JhZGl1cy0tZnVsbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLWZ1bGxfX19mME9rTFwiLFwiYm9yZGVyX193aWR0aC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0temVyb19fX3VMY08yXCIsXCJib3JkZXJfX3dpZHRoLS14eHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXh4c19fX0owdFo5XCIsXCJib3JkZXJfX3dpZHRoLS14c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHNfX19VUmNrSVwiLFwiYm9yZGVyX193aWR0aC0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tc19fX3g5TlVqXCIsXCJib3JkZXJfX3dpZHRoLS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS1tX19fQ0Y4Q0VcIixcImJvcmRlcl9fd2lkdGgtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLWxfX19Zb0I2NVwiLFwiYm9yZGVyX193aWR0aC0teGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXhsX19fQkNMbE5cIixcImJvcmRlcl9fd2lkdGgtLXh4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHhsX19fLWRyZ1BcIixcImJvcmRlcl9fd2lkdGgtLTN4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tM3hsX19fZHFtaUZcIixcImJvcmRlcl9fd2lkdGgtLTR4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tNHhsX19fYkVMOTBcIixcImJvcmRlcl9fd2lkdGgtLTV4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tNXhsX19femoxVlhcIixcImJvcmRlcl9fY29sb3ItLWluaGVyaXRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWluaGVyaXRfX19FMk1Tc1wiLFwiYm9yZGVyX19jb2xvci0taW5oZXJpdC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWluaGVyaXQtLWhvdmVyX19fV3luQlBcIixcImJvcmRlcl9fY29sb3ItLWluaGVyaXQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0LS1kaXNhYmxlZF9fX3EtdHNFXCIsXCJib3JkZXJfX2NvbG9yLS13aGl0ZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2hpdGVfX19nVDJvZ1wiLFwiYm9yZGVyX19jb2xvci0td2hpdGUtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0taG92ZXJfX19RZHBWYlwiLFwiYm9yZGVyX19jb2xvci0td2hpdGUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0tZGlzYWJsZWRfX19peVRYS1wiLFwiYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50X19fc3dhbUhcIixcImJvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWhvdmVyX19falVaLXpcIixcImJvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWRpc2FibGVkX19fc2lEcnlcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDBfX192NWw4M1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTEwMC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWhvdmVyX19fSjEtT1FcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAwLS1kaXNhYmxlZF9fX1FqS1JSXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MF9fX2txNWFUXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWhvdmVyX19fQ3BwbFZcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MC0tZGlzYWJsZWRfX18tOFBLbFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NjBfX19QOUpNSFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3Zlcl9fX0FaaWNHXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5NjAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NjAtLWRpc2FibGVkX19fZ2NWZERcIixcImJvcmRlcl9fY29sb3ItLWdyZXk0MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwX19fZjZTRHdcIixcImJvcmRlcl9fY29sb3ItLWdyZXk0MC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk0MC0taG92ZXJfX19VSGRJclwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZF9fXzRlRGtDXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMF9fX2ZxYnR1XCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWhvdmVyX19fVk5EU1JcIixcImJvcmRlcl9fY29sb3ItLWdyZXkzMC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMC0tZGlzYWJsZWRfX19weUpPcVwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjVfX19zblZuZFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3Zlcl9fX25kcmZZXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MjUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjUtLWRpc2FibGVkX19fb21QSlBcIixcImJvcmRlcl9fY29sb3ItLWdyZXkyMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwX19fZ2JuM1pcIixcImJvcmRlcl9fY29sb3ItLWdyZXkyMC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkyMC0taG92ZXJfX194UnN3Y1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZF9fX1NWZUFUXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMF9fX1pVNUdhXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWhvdmVyX19fVVpoLWRcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMC0tZGlzYWJsZWRfX185Wi1PVFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NzBfX195cjlpTVwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3Zlcl9fX2w5WVRkXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5NzAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NzAtLWRpc2FibGVkX19fU3dSUWlcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODVfX182RGJkU1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTgwQWxwaGE4NS0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWhvdmVyX19feFNrd0FcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODBBbHBoYTg1LS1kaXNhYmxlZF9fX3lQNE8tXCIsXCJib3JkZXJfX2NvbG9yLS1wcmltYXJ5XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1wcmltYXJ5X19fZ2Z4Qk9cIixcImJvcmRlcl9fY29sb3ItLXByaW1hcnktLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1wcmltYXJ5LS1ob3Zlcl9fX3B1SERwXCIsXCJib3JkZXJfX2NvbG9yLS1wcmltYXJ5LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0tZGlzYWJsZWRfX19INUZzR1wiLFwiYm9yZGVyX19jb2xvci0tYWNjZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1hY2NlbnRfX19lLUhsRFwiLFwiYm9yZGVyX19jb2xvci0tYWNjZW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50LS1ob3Zlcl9fX1Myb1ZFXCIsXCJib3JkZXJfX2NvbG9yLS1hY2NlbnQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1hY2NlbnQtLWRpc2FibGVkX19feTNCYmJcIixcImJvcmRlcl9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NfX19adXJsU1wiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzcy0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWhvdmVyX19fV3ktMk1cIixcImJvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzLS1kaXNhYmxlZF9fX1RQM1J2XCIsXCJib3JkZXJfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZV9fX1p3UXZUXCIsXCJib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWhvdmVyX19fTUpRVWhcIixcImJvcmRlcl9fY29sb3ItLW5vdGljZS0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZS0tZGlzYWJsZWRfX195VnVpMlwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ19fX0xLNkF6XCIsXCJib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZy0taG92ZXJfX19tQW9TQlwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZy0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmctLWRpc2FibGVkX19fV2NBSy1cIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbF9fX0dUWXoxXCIsXCJib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsLS1ob3Zlcl9fX3VNRmphXCIsXCJib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsLS1kaXNhYmxlZF9fX0s5Z2w3XCIsXCJib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnRfX19QU1JNblwiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnQtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0taG92ZXJfX19VZkpQZ1wiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0tZGlzYWJsZWRfX19Xa09wQVwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50X19fSVRXbU1cIixcImJvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWhvdmVyX19fSmMtTm5cIixcImJvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWRpc2FibGVkX19fdXF6Qm9cIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50X19fT1F1eHRcIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludC0taG92ZXJfX19sV2E5RFwiLFwiYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZF9fX2xZaGg0XCIsXCJib3JkZXJfX2NvbG9yLS1saW5rXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1saW5rX19faVllRmtcIixcImJvcmRlcl9fY29sb3ItLWxpbmstLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1saW5rLS1ob3Zlcl9fXzR5UkpQXCIsXCJib3JkZXJfX2NvbG9yLS1saW5rLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0tZGlzYWJsZWRfX18wazlkQlwiLFwiYm9yZGVyX19jb2xvci0tY29kZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZV9fXzhPc0ZpXCIsXCJib3JkZXJfX2NvbG9yLS1jb2RlLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZS0taG92ZXJfX19aNXM1ZFwiLFwiYm9yZGVyX19jb2xvci0tY29kZS0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNvZGUtLWRpc2FibGVkX19fdURRWk1cIixcImJvcmRlclRvcF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXplcm9fX19WS1JxLVwiLFwiYm9yZGVyVG9wX193aWR0aC0teHhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14eHNfX184emk3VFwiLFwiYm9yZGVyVG9wX193aWR0aC0teHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXhzX19fUk5FSzJcIixcImJvcmRlclRvcF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXNfX19hVm4xV1wiLFwiYm9yZGVyVG9wX193aWR0aC0tbVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tbV9fX0I2MTRqXCIsXCJib3JkZXJUb3BfX3dpZHRoLS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS1sX19fLW9lUFBcIixcImJvcmRlclRvcF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14bF9fX1pKYzZJXCIsXCJib3JkZXJUb3BfX3dpZHRoLS14eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXh4bF9fX01uckh6XCIsXCJib3JkZXJUb3BfX3dpZHRoLS0zeGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTN4bF9fXzV4Sy0tXCIsXCJib3JkZXJUb3BfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTR4bF9fX3BFRHRjXCIsXCJib3JkZXJUb3BfX3dpZHRoLS01eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTV4bF9fX01GdmZoXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0X19fQ3IxbmFcIixcImJvcmRlclRvcF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13aGl0ZV9fX3UtdVFiXCIsXCJib3JkZXJUb3BfX2NvbG9yLS10cmFuc3BhcmVudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tdHJhbnNwYXJlbnRfX19Qc01teFwiLFwiYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMF9fX1djOXRMXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk4MF9fX2VIanpGXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NjBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk2MF9fX3RTQXRlXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk0MF9fX0hpcmdmXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkzMF9fX0JCckJRXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyNV9fX1VIVlpYXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyMF9fXzFsdXBQXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkxMF9fX0UyR2ZUXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk3MF9fX0RiQzJHXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fa0I5LXZcIixcImJvcmRlclRvcF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXByaW1hcnlfX181MTFqa1wiLFwiYm9yZGVyVG9wX19jb2xvci0tYWNjZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1hY2NlbnRfX19JMUtCUFwiLFwiYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc19fXzc5LXVqXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLW5vdGljZV9fXy1kT0QwXCIsXCJib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nX19fVDM1a1hcIixcImJvcmRlclRvcF9fY29sb3ItLWNyaXRpY2FsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbF9fX3MtcXZrXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc1RpbnRfX19QYTBOR1wiLFwiYm9yZGVyVG9wX19jb2xvci0td2FybmluZ1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXdhcm5pbmdUaW50X19fMmVVUVRcIixcImJvcmRlclRvcF9fY29sb3ItLWNyaXRpY2FsVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY3JpdGljYWxUaW50X19fSEpBbzJcIixcImJvcmRlclRvcF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWxpbmtfX19LWUZHS1wiLFwiYm9yZGVyVG9wX19jb2xvci0tY29kZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY29kZV9fX3ZLT0t3XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0temVyb19fX3JsREluXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXh4c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14eHNfX18tejc5YVwiLFwiYm9yZGVyUmlnaHRfX3dpZHRoLS14c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14c19fX3daVmhqXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tc19fX010WVQ2XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbV9fX1NEOTd3XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbF9fX3FTSTBFXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXhsX19fMDVuMDBcIixcImJvcmRlclJpZ2h0X193aWR0aC0teHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXh4bF9fXy1hRXd2XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLTN4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS0zeGxfX19EdTBSb1wiLFwiYm9yZGVyUmlnaHRfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tNHhsX19fMlpDWGtcIixcImJvcmRlclJpZ2h0X193aWR0aC0tNXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLTV4bF9fX1NwNDhrXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWluaGVyaXRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0taW5oZXJpdF9fXzl5UGVJXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlX19faElPQmRcIixcImJvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRfX19veElOSlwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTAwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkxMDBfX19hYVNuYVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwX19fNVBUNWpcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk2MF9fX29OVy1VXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXk0MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NDBfX18ySndpOVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTMwX19fVDZodHhcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyNV9fX1FiRlVKXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MjBfX19lc01RTVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTEwX19fWjBRemZcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk3MF9fX3RrekFKXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2o0NVVOXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tcHJpbWFyeV9fX0hJazJBXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWFjY2VudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1hY2NlbnRfX19XWDJMU1wiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXN1Y2Nlc3NfX19SSXdhSFwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbm90aWNlX19fdlVMYVRcIixcImJvcmRlclJpZ2h0X19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS13YXJuaW5nX19fWTJpUGlcIixcImJvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxfX19YbTZ0UVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzVGludF9fX20xbnZZXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50X19fbi1oeEZcIixcImJvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsVGludF9fXzRWSk44XCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbGlua19fX0gycmUzXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWNvZGVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tY29kZV9fX1VDZE0wXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS16ZXJvX19fUGxBQkxcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLXh4c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teHhzX19fWkZtLVVcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLXhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14c19fX2hEelNzXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS1zX19fSVd0LXVcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLW1fX19mMXItc1wiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tbF9fXzBIdmwxXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS14bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teGxfX19zU1J0c1wiLFwiYm9yZGVyQm90dG9tX193aWR0aC0teHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14eGxfX19OdUJnRlwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tM3hsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS0zeGxfX19HakxZVVwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tNHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS00eGxfX19CdkpXUFwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tNXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS01eGxfX19yQ2VEQlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdF9fXzczZHFWXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS13aGl0ZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2hpdGVfX19EWm1qNlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXRyYW5zcGFyZW50X19fcWtOZ0ZcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBfX19YMnY3eFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5ODBfX190bk1qNVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NjBfX19VT1cwblwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTQwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NDBfX19jN3VjMFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTMwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MzBfX19ZODVDNFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjVfX19rdjJObVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTIwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjBfX192Ty1tSlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTEwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MTBfX19GYS1oeVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NzBfX19oLUNrVlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2lyeG9IXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1wcmltYXJ5XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1wcmltYXJ5X19fSi1yNUpcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWFjY2VudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tYWNjZW50X19fb2M0UVNcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NfX19meFp2UlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tbm90aWNlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ub3RpY2VfX19JSUE1UlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ19fX2xzWkctXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1jcml0aWNhbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxfX19CN0w1LVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tc3VjY2Vzc1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fQXN2dGNcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLXdhcm5pbmdUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS13YXJuaW5nVGludF9fXzRPUGZPXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1jcml0aWNhbFRpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNyaXRpY2FsVGludF9fX3gyVUxRXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1saW5rXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1saW5rX19fUjJYRHVcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVfX19FcjloYlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS16ZXJvX19fMS1GTS1cIixcImJvcmRlckxlZnRfX3dpZHRoLS14eHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14eHNfX19vakFhcFwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teHNfX196MlhJRlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1zX19fRHFYYmNcIixcImJvcmRlckxlZnRfX3dpZHRoLS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tbV9fXzRqUHU1XCIsXCJib3JkZXJMZWZ0X193aWR0aC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLWxfX19sUGFSS1wiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teGxfX19NYy0tUlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXh4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLXh4bF9fX0tYT1JaXCIsXCJib3JkZXJMZWZ0X193aWR0aC0tM3hsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tM3hsX19fNGZZSUVcIixcImJvcmRlckxlZnRfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS00eGxfX19jZFVsV1wiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLTV4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLTV4bF9fXzdsOUgwXCIsXCJib3JkZXJMZWZ0X19jb2xvci0taW5oZXJpdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWluaGVyaXRfX19xZDRrRFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0td2hpdGVfX18tcnpzN1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXRyYW5zcGFyZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tdHJhbnNwYXJlbnRfX191VVVFeFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTAwX19fUURiVjJcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5ODBfX183aFZ5OFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk2MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk2MF9fX3E5VHMyXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwX19feUlyMEpcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MzBfX19pdFVVc1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkyNVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkyNV9fX3o5RWdEXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwX19fSHFySm5cIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTBfX195dFpQTlwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk3MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk3MF9fX0VveVZXXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwQWxwaGE4NVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk4MEFscGhhODVfX18yR0lXMlwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1wcmltYXJ5X19fSU5DOHlcIixcImJvcmRlckxlZnRfX2NvbG9yLS1hY2NlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1hY2NlbnRfX18xUlMwclwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzX19fMTJLaXVcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ub3RpY2VfX19taEpBblwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nX19fdVY1dFdcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWNyaXRpY2FsX19fQTZKaU9cIixcImJvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fZ09yWWpcIixcImJvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdUaW50X19fTjdVY1RcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFRpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19hLWZhR1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1saW5rX19fbXdSS3dcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jb2RlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY29kZV9fX3VKV0ZIXCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXplcm9fX19kbHN0VlwiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1zX19fdm81ZWxcIixcImJvcmRlclJhZGl1c1RvcFJpZ2h0LS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tbV9fX0dJRWN0XCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1tbF9fX21FY0R2XCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWxfX19yZy1EMFwiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLTUwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tNTBfX19YbGxHc1wiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1mdWxsX19fNVpJdjhcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0temVyb19fX084ZEUzXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXNfX19ueEx0TFwiLFwiYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1tX19fU2w1UlJcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1sX19fQW9RMGJcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tbF9fXzUySm9sXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS01MF9fXzctd09HXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tZnVsbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLWZ1bGxfX19MQmFQNlwiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb19fX29RQmRtXCIsXCJib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1zX19fekZJTDNcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1fX19LTlNjVFwiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1sX19fdnQ3eDJcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWxfX19rOHBpa1wiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLTUwX19fZjJYVHVcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWZ1bGxfX19lSGo2c1wiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0temVyb19fX1AxWXR3XCIsXCJib3JkZXJSYWRpdXNUb3BMZWZ0LS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS1zX19fSC1sWGVcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1fX18zTFJSMFwiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1sX19faWd2MHdcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWxfX18zczJDSlwiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLTUwX19fd05Zd1FcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxfX19DZnotUlwiLFwiYm9yZGVyLS1leGNlcHQtbGFzdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyLS1leGNlcHQtbGFzdF9fXzIyWXNCXCJ9OyIsICJpbXBvcnQgYm9yZGVyU3R5bGVzIGZyb20gXCIuL2JvcmRlci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBCb3JkZXJSYWRpdXNTaXplIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb3JuZXJTdHlsZXMge1xuICByYWRpdXM/OiBCb3JkZXJSYWRpdXNTaXplIHwgYm9vbGVhbjtcbiAgcmFkaXVzVG9wUmlnaHQ/OiBCb3JkZXJSYWRpdXNTaXplO1xuICByYWRpdXNCb3R0b21SaWdodD86IEJvcmRlclJhZGl1c1NpemU7XG4gIHJhZGl1c0JvdHRvbUxlZnQ/OiBCb3JkZXJSYWRpdXNTaXplO1xuICByYWRpdXNUb3BMZWZ0PzogQm9yZGVyUmFkaXVzU2l6ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldENvcm5lclN0eWxlcyA9IChzdHlsZXM6IENvcm5lclN0eWxlcykgPT4ge1xuICBjb25zdCB7IHJhZGl1cywgcmFkaXVzVG9wUmlnaHQsIHJhZGl1c0JvdHRvbVJpZ2h0LCByYWRpdXNCb3R0b21MZWZ0LCByYWRpdXNUb3BMZWZ0IH0gPSBzdHlsZXM7XG5cbiAgaWYgKHJhZGl1cykge1xuICAgIGNvbnN0IGJvcmRlclJhZGl1c1NpemUgPSByYWRpdXMgPT09IHRydWUgPyBcInNcIiA6IHJhZGl1cztcblxuICAgIHJldHVybiBib3JkZXJSYWRpdXNTaXplID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX3JhZGl1cy0tJHtib3JkZXJSYWRpdXNTaXplfWBdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIFtcbiAgICByYWRpdXNUb3BSaWdodCA/IGJvcmRlclN0eWxlc1tgYm9yZGVyUmFkaXVzVG9wUmlnaHQtLSR7cmFkaXVzVG9wUmlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgcmFkaXVzQm90dG9tUmlnaHQgPyBib3JkZXJTdHlsZXNbYGJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS0ke3JhZGl1c0JvdHRvbVJpZ2h0fWBdIDogdW5kZWZpbmVkLFxuICAgIHJhZGl1c0JvdHRvbUxlZnQgPyBib3JkZXJTdHlsZXNbYGJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLSR7cmFkaXVzQm90dG9tTGVmdH1gXSA6IHVuZGVmaW5lZCxcbiAgICByYWRpdXNUb3BMZWZ0ID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJSYWRpdXNUb3BMZWZ0LS0ke3JhZGl1c1RvcExlZnR9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuIiwgImltcG9ydCBib3JkZXJTdHlsZXMgZnJvbSBcIi4vYm9yZGVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IEJvcmRlclNpZGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBjYXBpdGFsaXplIGFzIGxvZGFzaENhcGl0YWxpemUgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lkZVN0eWxlcyB7XG4gIHRvcD86IEJvcmRlclNpZGU7XG4gIHJpZ2h0PzogQm9yZGVyU2lkZTtcbiAgYm90dG9tPzogQm9yZGVyU2lkZTtcbiAgbGVmdD86IEJvcmRlclNpZGU7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRTaWRlU3R5bGVzID0gKHNpZGVzOiBTaWRlU3R5bGVzKSA9PiBbXG4gIC4uLmdldFNwZWNpZmljU2lkZVN0eWxlcyhcInRvcFwiLCBzaWRlcyksXG4gIC4uLmdldFNwZWNpZmljU2lkZVN0eWxlcyhcInJpZ2h0XCIsIHNpZGVzKSxcbiAgLi4uZ2V0U3BlY2lmaWNTaWRlU3R5bGVzKFwiYm90dG9tXCIsIHNpZGVzKSxcbiAgLi4uZ2V0U3BlY2lmaWNTaWRlU3R5bGVzKFwibGVmdFwiLCBzaWRlcyksXG5dO1xuXG5jb25zdCBnZXRTcGVjaWZpY1NpZGVTdHlsZXMgPSAoc2lkZToga2V5b2YgU2lkZVN0eWxlcywgc2lkZXM6IFNpZGVTdHlsZXMpID0+IHtcbiAgY29uc3QgeyB3aWR0aCwgY29sb3IgfSA9IHNpZGVzW3NpZGVdID8/IHt9O1xuICBjb25zdCBzaWRlTmFtZSA9IGNhcGl0YWxpemUoc2lkZSk7XG5cbiAgcmV0dXJuIFtcbiAgICB3aWR0aCA/IGJvcmRlclN0eWxlc1tgYm9yZGVyJHtzaWRlTmFtZX1fX3dpZHRoLS0ke3dpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgIGNvbG9yID8gYm9yZGVyU3R5bGVzW2Bib3JkZXIke3NpZGVOYW1lfV9fY29sb3ItLSR7Y29sb3J9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuXG5jb25zdCBjYXBpdGFsaXplID0gPFQgZXh0ZW5kcyBzdHJpbmc+KHRhcmdldDogVCkgPT4gbG9kYXNoQ2FwaXRhbGl6ZSh0YXJnZXQpIGFzIENhcGl0YWxpemU8VD47XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBmb250U3R5bGVzIGZyb20gXCIuL2ZvbnQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRm9udFNpemUgPSBcInh4c1wiIHwgXCJ4c1wiIHwgXCJzXCIgfCBcIm1cIiB8IFwibFwiIHwgXCJ4bFwiIHwgXCJ4eGxcIiB8IFwiM3hsXCIgfCBcIjR4bFwiO1xuXG5leHBvcnQgdHlwZSBGb250Qm9sZCA9IFwiNjAwXCI7XG5cbmV4cG9ydCB0eXBlIEZvbnRMaW5lSGVpZ2h0ID0gXCJub25lXCIgfCBcInRpZ2h0XCIgfCBcIm5vcm1hbFwiIHwgXCJsb29zZVwiO1xuXG5leHBvcnQgdHlwZSBGb250UGx1Z2luUHJvcHMgPSB7XG4gICRmb250PzpcbiAgICB8IGJvb2xlYW5cbiAgICB8IHtcbiAgICAgICAgc2l6ZT86IEZvbnRTaXplO1xuICAgICAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgICAgICBib2xkPzogYm9vbGVhbiB8IEZvbnRCb2xkO1xuICAgICAgICBsaW5lSGVpZ2h0PzogRm9udExpbmVIZWlnaHQ7XG4gICAgICAgIGZvcmNlV3JhcD86IGJvb2xlYW47XG4gICAgICAgIG5vV3JhcD86IGJvb2xlYW47XG4gICAgICAgIHVwcGVyY2FzZT86IGJvb2xlYW47XG4gICAgICAgIHVuZGVybGluZT86IGJvb2xlYW47XG4gICAgICAgIHRleHRPdmVyZmxvdz86IFwiY2xpcFwiIHwgXCJlbGxpcHNpc1wiIHwgXCJkZWZhdWx0XCI7XG4gICAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGZvbnRQbHVnaW4gPSBnZXRQbHVnaW48Rm9udFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRmb250KSB7XG4gICAgcmV0dXJuIHsgJGZvbnQ6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3Qge1xuICAgIHNpemUgPSB1bmRlZmluZWQsXG4gICAgYm9sZCA9IGZhbHNlLFxuICAgIGxpbmVIZWlnaHQgPSB1bmRlZmluZWQsXG4gICAgbm9XcmFwID0gZmFsc2UsXG4gICAgdXBwZXJjYXNlID0gZmFsc2UsXG4gICAgaXRhbGljID0gZmFsc2UsXG4gICAgZm9yY2VXcmFwID0gZmFsc2UsXG4gICAgdW5kZXJsaW5lID0gZmFsc2UsXG4gICAgdGV4dE92ZXJmbG93ID0gXCJkZWZhdWx0XCIsXG4gIH0gPSBwcm9wcy4kZm9udCA9PT0gdHJ1ZSA/IHt9IDogcHJvcHMuJGZvbnQ7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgICAgc2l6ZSA/IGZvbnRTdHlsZXNbYGZvbnRfX3NpemUtLSR7c2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGJvbGQgPT09IHRydWUgPyBmb250U3R5bGVzW1wiZm9udC0tYm9sZFwiXSA6IGJvbGQgPyBmb250U3R5bGVzW2Bmb250LS13ZWlnaHQtJHtib2xkfWBdIDogdW5kZWZpbmVkLFxuICAgICAgbGluZUhlaWdodCA/IGZvbnRTdHlsZXNbYGZvbnRfX2xpbmUtaGVpZ2h0LS0ke2xpbmVIZWlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgICB0ZXh0T3ZlcmZsb3cgPT09IFwiZGVmYXVsdFwiID8gdW5kZWZpbmVkIDogZm9udFN0eWxlc1tgZm9udC0tdGV4dC1vdmVyZmxvdy0tJHt0ZXh0T3ZlcmZsb3d9YF0sXG4gICAgICB7XG4gICAgICAgIFtmb250U3R5bGVzW1wiZm9udC0tbm8td3JhcFwiXV06IG5vV3JhcCxcbiAgICAgICAgW2ZvbnRTdHlsZXNbXCJmb250LS1mb3JjZS13cmFwXCJdXTogZm9yY2VXcmFwLFxuICAgICAgICBbZm9udFN0eWxlc1tcImZvbnQtLWl0YWxpY1wiXV06IGl0YWxpYyxcbiAgICAgICAgW2ZvbnRTdHlsZXNbXCJmb250LS11cHBlcmNhc2VcIl1dOiB1cHBlcmNhc2UsXG4gICAgICAgIFtmb250U3R5bGVzW1wiZm9udC0tdW5kZXJsaW5lXCJdXTogdW5kZXJsaW5lLFxuICAgICAgfSxcbiAgICBdLFxuICAgICRmb250OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZvbnQvZm9udC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14eHNfX19LSjJRLSB7XFxuICBmb250LXNpemU6IGNhbGMoMS4yNSAqIHZhcigtLXVuaXQpKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14c19fX3hFYVU5IHtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtYWxsKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS1zX19fVGJuTWwge1xcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLW1fX19mREpBaiB7XFxuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iaWcpO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLWxfX191S2N1ayB7XFxuICBmb250LXNpemU6IGNhbGMoMi4yNSAqIHZhcigtLXVuaXQpKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14bF9fX1JlaG9RIHtcXG4gIGZvbnQtc2l6ZTogY2FsYygyLjUgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0teHhsX19fQ2dvS1Age1xcbiAgZm9udC1zaXplOiBjYWxjKDIuNzUgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tM3hsX19fc0NJZXoge1xcbiAgZm9udC1zaXplOiBjYWxjKDMgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tNHhsX19fQTVrc2Uge1xcbiAgZm9udC1zaXplOiBjYWxjKDQgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLW5vbmVfX18xc0k5SyB7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19saW5lLWhlaWdodC0tdGlnaHRfX19yLUVCOSB7XFxuICBsaW5lLWhlaWdodDogMS4yO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1ub3JtYWxfX19ySjRWTiB7XFxuICBsaW5lLWhlaWdodDogMS41O1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZV9fX2RwelMtIHtcXG4gIGxpbmUtaGVpZ2h0OiAyO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnQtLWJvbGRfX19iamUtYiB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS13ZWlnaHQtNjAwX19fRWdkem0ge1xcbiAgZm9udC13ZWlnaHQ6IDYwMDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS1uby13cmFwX19fcWJSUk8ge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS1mb3JjZS13cmFwX19fT0dDRnoge1xcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS11cHBlcmNhc2VfX192UVhtbiB7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnQtLWl0YWxpY19fX0pINFRaIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS11bmRlcmxpbmVfX19kNG9uTCB7XFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS10ZXh0LW92ZXJmbG93LS1lbGxpcHNpc19fX0hxZlgtIHtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5mb250LW1vZHVsZV9fZm9udC0tdGV4dC1vdmVyZmxvdy0tY2xpcF9fXzk2eEI5IHtcXG4gIHRleHQtb3ZlcmZsb3c6IGNsaXA7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmb250X19zaXplLS14eHNcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS14eHNfX19LSjJRLVwiLFwiZm9udF9fc2l6ZS0teHNcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS14c19fX3hFYVU5XCIsXCJmb250X19zaXplLS1zXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tc19fX1Ribk1sXCIsXCJmb250X19zaXplLS1tXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tbV9fX2ZESkFqXCIsXCJmb250X19zaXplLS1sXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tbF9fX3VLY3VrXCIsXCJmb250X19zaXplLS14bFwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLXhsX19fUmVob1FcIixcImZvbnRfX3NpemUtLXh4bFwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLXh4bF9fX0Nnb0tQXCIsXCJmb250X19zaXplLS0zeGxcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS0zeGxfX19zQ0llelwiLFwiZm9udF9fc2l6ZS0tNHhsXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tNHhsX19fQTVrc2VcIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1ub25lXCI6XCJmb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLW5vbmVfX18xc0k5S1wiLFwiZm9udF9fbGluZS1oZWlnaHQtLXRpZ2h0XCI6XCJmb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLXRpZ2h0X19fci1FQjlcIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1ub3JtYWxcIjpcImZvbnQtbW9kdWxlX19mb250X19saW5lLWhlaWdodC0tbm9ybWFsX19fcko0Vk5cIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZVwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZV9fX2RwelMtXCIsXCJmb250LS1ib2xkXCI6XCJmb250LW1vZHVsZV9fZm9udC0tYm9sZF9fX2JqZS1iXCIsXCJmb250LS13ZWlnaHQtNjAwXCI6XCJmb250LW1vZHVsZV9fZm9udC0td2VpZ2h0LTYwMF9fX0VnZHptXCIsXCJmb250LS1uby13cmFwXCI6XCJmb250LW1vZHVsZV9fZm9udC0tbm8td3JhcF9fX3FiUlJPXCIsXCJmb250LS1mb3JjZS13cmFwXCI6XCJmb250LW1vZHVsZV9fZm9udC0tZm9yY2Utd3JhcF9fX09HQ0Z6XCIsXCJmb250LS11cHBlcmNhc2VcIjpcImZvbnQtbW9kdWxlX19mb250LS11cHBlcmNhc2VfX192UVhtblwiLFwiZm9udC0taXRhbGljXCI6XCJmb250LW1vZHVsZV9fZm9udC0taXRhbGljX19fSkg0VFpcIixcImZvbnQtLXVuZGVybGluZVwiOlwiZm9udC1tb2R1bGVfX2ZvbnQtLXVuZGVybGluZV9fX2Q0b25MXCIsXCJmb250LS10ZXh0LW92ZXJmbG93LS1lbGxpcHNpc1wiOlwiZm9udC1tb2R1bGVfX2ZvbnQtLXRleHQtb3ZlcmZsb3ctLWVsbGlwc2lzX19fSHFmWC1cIixcImZvbnQtLXRleHQtb3ZlcmZsb3ctLWNsaXBcIjpcImZvbnQtbW9kdWxlX19mb250LS10ZXh0LW92ZXJmbG93LS1jbGlwX19fOTZ4QjlcIn07IiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2JveC1zaGFkb3cubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgQm94U2hhZG93UGx1Z2luUHJvcHMgPSB7XG4gICRib3hTaGFkb3c/OiBib29sZWFuIHwgXCJlbGV2YXRlZFwiIHwgXCJzdWJ0bGVcIjtcbn07XG5cbmV4cG9ydCBjb25zdCBib3hTaGFkb3dQbHVnaW4gPSBnZXRQbHVnaW48Qm94U2hhZG93UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGJveFNoYWRvdykge1xuICAgIHJldHVybiB7XG4gICAgICAkYm94U2hhZG93OiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHZhcmlhbnQgPSBwcm9wcy4kYm94U2hhZG93ID09PSB0cnVlID8gXCJlbGV2YXRlZFwiIDogcHJvcHMuJGJveFNoYWRvdztcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBzdHlsZXNbYGJveC1zaGFkb3ctLSR7dmFyaWFudH1gXV0sXG4gICAgJGJveFNoYWRvdzogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ib3gtc2hhZG93L2JveC1zaGFkb3cubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ib3gtc2hhZG93LW1vZHVsZV9fYm94LXNoYWRvdy0tZWxldmF0ZWRfX19qYWg3ZiB7XFxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgMCA4cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xcbn1cXG4uYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLXN1YnRsZV9fX1ZvNnhNIHtcXG4gIGJveC1zaGFkb3c6IDAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuMjI3NDUwOTgwNCksIDAgMC42cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yMjc0NTA5ODA0KTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJib3gtc2hhZG93LS1lbGV2YXRlZFwiOlwiYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLWVsZXZhdGVkX19famFoN2ZcIixcImJveC1zaGFkb3ctLXN1YnRsZVwiOlwiYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLXN1YnRsZV9fX1ZvNnhNXCJ9OyIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcyA9IHsgJG5vUG9pbnRlckV2ZW50cz86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IG5vUG9pbnRlckV2ZW50c1BsdWdpbiA9IGdldFBsdWdpbjxOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCB7IFtzdHlsZXNbXCJuby1wb2ludGVyLWV2ZW50c1wiXV06IHByb3BzLiRub1BvaW50ZXJFdmVudHMgfV0sXG4gICRub1BvaW50ZXJFdmVudHM6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLm1vZHVsZS5zY3NzXCIsIGNzczogXCIubm8tcG9pbnRlci1ldmVudHMtbW9kdWxlX19uby1wb2ludGVyLWV2ZW50c19fXzdtRjBiICoge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wibm8tcG9pbnRlci1ldmVudHNcIjpcIm5vLXBvaW50ZXItZXZlbnRzLW1vZHVsZV9fbm8tcG9pbnRlci1ldmVudHNfX183bUYwYlwifTsiLCAiaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuLy8gU2ltcGxpZmllZCB0eXBlIHNpbmNlIFJlZkNhbGxiYWNrIGZyb20gXCJyZWFjdFwiIGNhdXNlcyBVTkRFRklORURfVk9JRF9PTkxZIGVycm9yXG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vQ29uZnVzaW5nVm9pZFR5cGU6IHZvaWQgdHlwaW5nIHJlcXVpcmVkXG50eXBlIFJlZkNhbGxiYWNrPFQ+ID0gKGluc3RhbmNlOiBUIHwgbnVsbCkgPT4gdW5kZWZpbmVkIHwgdm9pZCB8ICgoKSA9PiBhbnkpO1xuXG5leHBvcnQgdHlwZSBSZWZMaWtlPFQ+ID0gUmVmQ2FsbGJhY2s8VD4gfCBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PFQgfCBudWxsPiB8IFJlYWN0LlJlZk9iamVjdDxUPiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgJFJlZlByb3A8VD4gPSBSZWZMaWtlPFQ+IHwgJFJlZlByb3A8VD5bXTtcblxuZXhwb3J0IHR5cGUgUmVmUGx1Z2luUHJvcHM8VD4gPSB7XG4gICRyZWY/OiAkUmVmUHJvcDxUPjtcbiAgcmVmPzogUmVmTGlrZTxUPjtcbn07XG5cbmV4cG9ydCB0eXBlIFJlZlBsdWdpbjxUPiA9IFBsdWdpbjxSZWZQbHVnaW5Qcm9wczxUPiwgdW5rbm93bj47XG5cbmV4cG9ydCBmdW5jdGlvbiByZWZQbHVnaW48VCA9IEhUTUxFbGVtZW50PigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxSZWZQbHVnaW5Qcm9wczxUPj4oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyAkcmVmIH0gPSBwcm9wcztcbiAgICBjb25zdCBwcmV2UmVmcyA9IHVzZVJlZihuZXcgU2V0PFJlZkxpa2U8VD4+KCkpO1xuICAgIGNvbnN0IGVsZW1lbnRSZWYgPSB1c2VSZWY8VCB8IG51bGw+KG51bGwpO1xuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIGRvIG5vdCB3YW50IHRvIHJ1biB0aGlzIG11bHRpcGxlIHRpbWVzXG4gICAgY29uc3QgcmVmID0gdXNlQ2FsbGJhY2soKGN1cnJlbnQ6IFQpID0+IHtcbiAgICAgIGNvbnN0IGZpcnN0UmVmcyA9IGZsYXR0ZW5SZWZzKCRyZWYpO1xuXG4gICAgICBmaXJzdFJlZnMuZm9yRWFjaChoYW5kbGVSZWZzRm9yKGN1cnJlbnQpKTtcbiAgICAgIHByZXZSZWZzLmN1cnJlbnQgPSBmaXJzdFJlZnM7XG4gICAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBjdXJyZW50O1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBwcmV2UmVmcy5jdXJyZW50LmZvckVhY2goaGFuZGxlUmVmc0ZvcjxUPihudWxsKSk7XG4gICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBmaXJzdFJlbmRlciA9IHVzZVJlZih0cnVlKTtcblxuICAgIGlmICghZmlyc3RSZW5kZXIuY3VycmVudCkge1xuICAgICAgY29uc3QgY3VycmVudFJlZnMgPSBmbGF0dGVuUmVmcygkcmVmKTtcbiAgICAgIGNvbnN0IGFkZGVkUmVmcyA9IGN1cnJlbnRSZWZzLmRpZmZlcmVuY2UocHJldlJlZnMuY3VycmVudCk7XG4gICAgICBjb25zdCByZW1vdmVkUmVmcyA9IHByZXZSZWZzLmN1cnJlbnQuZGlmZmVyZW5jZShjdXJyZW50UmVmcyk7XG5cbiAgICAgIGFkZGVkUmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3I8VD4oZWxlbWVudFJlZi5jdXJyZW50KSk7XG4gICAgICByZW1vdmVkUmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3I8VD4obnVsbCkpO1xuICAgICAgcHJldlJlZnMuY3VycmVudCA9IGN1cnJlbnRSZWZzO1xuICAgIH1cblxuICAgIGZpcnN0UmVuZGVyLmN1cnJlbnQgPSBmYWxzZTtcblxuICAgIHJldHVybiB7XG4gICAgICByZWYsXG4gICAgICAkcmVmOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IGZsYXR0ZW5SZWZzID0gPFQsPihyZWZzOiAkUmVmUHJvcDxUPik6IFNldDxSZWZMaWtlPFQ+PiA9PlxuICBuZXcgU2V0KChbcmVmc10uZmxhdChJbmZpbml0eSBhcyAxKSBhcyBBcnJheTxOb25OdWxsYWJsZTxSZWZMaWtlPFQ+Pj4pLmZpbHRlcihpc0RlZmluZWQpKTtcblxuY29uc3QgaGFuZGxlUmVmc0ZvciA9XG4gIDxULD4odmFsdWU6IFQgfCBudWxsKSA9PlxuICAocmVmczogJFJlZlByb3A8VD4pID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZWZzKSkge1xuICAgICAgcmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3IodmFsdWUpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWZzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJlZnModmFsdWUpO1xuICAgIH0gZWxzZSBpZiAocmVmcykge1xuICAgICAgKHJlZnMgYXMgTXV0YWJsZVJlZk9iamVjdDxUIHwgbnVsbD4pLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG4gIH07XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBjc3NOYW1lcywgdHlwZSBJQ2xhc3NOYW1lIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuZXhwb3J0IHR5cGUgQ2xhc3NOYW1lUGx1Z2luUHJvcHMgPSB7ICRjbGFzc05hbWU/OiBJQ2xhc3NOYW1lOyBjbGFzc05hbWU/OiBzdHJpbmcgfTtcblxubGV0IHNob3dDbHV0dGVyID0gdHJ1ZTtcblxuZXhwb3J0IGNvbnN0IGNsYXNzTmFtZVBsdWdpbiA9IGdldFBsdWdpbjxDbGFzc05hbWVQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IGNzc05hbWVzKHByb3BzLmNsYXNzTmFtZSwgcHJvcHMuJGNsYXNzTmFtZSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi4oY2xhc3NOYW1lID8geyBjbGFzc05hbWU6IHNob3dDbHV0dGVyID8gY2xhc3NOYW1lIDogcmVtb3ZlQ2x1dHRlcihjbGFzc05hbWUpIH0gOiB7fSksXG4gICAgJGNsYXNzTmFtZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG5cbmNvbnN0IHJlbW92ZUNsdXR0ZXIgPSAoY2xhc3NOYW1lOiBzdHJpbmcpID0+XG4gIGNsYXNzTmFtZS5yZXBsYWNlKC9fX18uKj8oPz1cXHN8JCkvZywgXCJcIikucmVwbGFjZSgvXFxiW2EtekEtWjAtOS1dKy1tb2R1bGVfXy9nLCBcIlwiKTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZyA9ICgpID0+IHtcbiAgc2hvd0NsdXR0ZXIgPSBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaG93Q3NzTW9kdWxlQ2x1dHRlckZvclByb2R1Y3Rpb24gPSAoKSA9PiB7XG4gIHNob3dDbHV0dGVyID0gdHJ1ZTtcbn07XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCByZWxhdGl2ZVN0eWxlcyBmcm9tIFwiLi9yZWxhdGl2ZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBSZWxhdGl2ZVBsdWdpblByb3BzID0geyAkcmVsYXRpdmU/OiBib29sZWFuOyAkZml4ZWQ/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCByZWxhdGl2ZVBsdWdpbiA9IGdldFBsdWdpbjxSZWxhdGl2ZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW1xuICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgeyBbcmVsYXRpdmVTdHlsZXMucmVsYXRpdmVdOiAhIXByb3BzLiRyZWxhdGl2ZSwgW3JlbGF0aXZlU3R5bGVzLmZpeGVkXTogISFwcm9wcy4kZml4ZWQgfSxcbiAgXSxcbiAgJGZpeGVkOiB1bmRlZmluZWQsXG4gICRyZWxhdGl2ZTogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5yZWxhdGl2ZS1tb2R1bGVfX3JlbGF0aXZlX19fa3dNNXEge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4ucmVsYXRpdmUtbW9kdWxlX19maXhlZF9fX0NzWEhEIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJyZWxhdGl2ZVwiOlwicmVsYXRpdmUtbW9kdWxlX19yZWxhdGl2ZV9fX2t3TTVxXCIsXCJmaXhlZFwiOlwicmVsYXRpdmUtbW9kdWxlX19maXhlZF9fX0NzWEhEXCJ9OyIsICJleHBvcnQgdHlwZSBEcmFnZ2FibGVQbHVnaW5Qcm9wczxUID0gYW55PiA9IHtcbiAgJGRyYWdnYWJsZT86IHtcbiAgICBjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+O1xuICAgIGl0ZW06IFQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEcm9wcGFibGVQbHVnaW5Qcm9wczxUID0gYW55PiA9IHtcbiAgJGRyb3BwYWJsZT86IHtcbiAgICBjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+O1xuICAgIG9uRHJvcDogKGl0ZW06IFQpID0+IHZvaWQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEcmFnZ2FibGVDb250ZXh0PERyYWdnZWRJdGVtPiA9IHtcbiAgZHJhZ2dhYmxlOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IE5vbk51bGxhYmxlPERyYWdnYWJsZVBsdWdpblByb3BzPERyYWdnZWRJdGVtPltgJGRyYWdnYWJsZWBdPjtcbiAgZHJvcHBhYmxlOiAob25Ecm9wOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IHZvaWQpID0+IE5vbk51bGxhYmxlPERyb3BwYWJsZVBsdWdpblByb3BzPERyYWdnZWRJdGVtPltcIiRkcm9wcGFibGVcIl0+O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERyYWdnYWJsZUNvbnRleHQgPSA8RHJhZ2dlZEl0ZW0+KCk6IERyYWdnYWJsZUNvbnRleHQ8RHJhZ2dlZEl0ZW0+ID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICBkcmFnZ2FibGU6IChpdGVtOiBEcmFnZ2VkSXRlbSkgPT4gKHtcbiAgICAgIGNvbnRleHQsXG4gICAgICBpdGVtLFxuICAgIH0pLFxuXG4gICAgZHJvcHBhYmxlOiAob25Ecm9wOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IHZvaWQpID0+ICh7XG4gICAgICBjb250ZXh0LFxuICAgICAgb25Ecm9wLFxuICAgIH0pLFxuICB9O1xuXG4gIHJldHVybiBjb250ZXh0O1xufTtcbiIsICJpbXBvcnQgeyBnZXRGZWF0dXJlIH0gZnJvbSBcIkBrOHNsZW5zL2ZlYXR1cmUtY29yZVwiO1xuaW1wb3J0IHsgcmVnaXN0ZXJJbmplY3RhYmxlc0Zyb21Nb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL2ZlYXR1cmUtY29yZVwiO1xuaW1wb3J0IG1vZHVsZXNXaXRoSW5qZWN0YWJsZXMgZnJvbSBcIi4vKiovKi5pbmplY3RhYmxlLih0c3x0c3gpXCI7XG5pbXBvcnQgc3R5bGVzaGVldHMgZnJvbSBcIi4vKiovIShfKikuKHNjc3N8Y3NzKVwiO1xuXG5leHBvcnQgY29uc3QgZWxlbWVudENvbXBvbmVudEZlYXR1cmUgPSBnZXRGZWF0dXJlKHtcbiAgaWQ6IFwiZWxlbWVudC1jb21wb25lbnRcIixcbiAgcmVnaXN0ZXI6IChkaSkgPT4gcmVnaXN0ZXJJbmplY3RhYmxlc0Zyb21Nb2R1bGVzKGRpLCBbLi4ubW9kdWxlc1dpdGhJbmplY3RhYmxlcywgLi4uc3R5bGVzaGVldHNdKSxcbiAgLy8gTm8gZmVhdHVyZSBkZXBlbmRlbmNpZXM6IGEgZGVzaWduIHN5c3RlbSBldmVyeW9uZSBtYXkgaW5zdGFsbCBjYW5ub3QgZHJhZ1xuICAvLyBMZW5zIGZlYXR1cmVzIGludG8gdGhlIGNsb3N1cmUuIFRoZSBjbG9jayB0aGUgaG92ZXJhYmxlIHBsdWdpbiBuZWVkcyBpc1xuICAvLyBsb2NhbCwgYW5kIHRoZSBwbGF0Zm9ybSBpcyByZWFkIGRpcmVjdGx5LlxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuXG4vKipcbiAqIFdoZXRoZXIgdGhlIGtleWJvYXJkIGNvbnZlbnRpb25zIG9mIG1hY09TIGFwcGx5LlxuICpcbiAqIFJlYWQgZnJvbSB0aGUgYnJvd3NlciByYXRoZXIgdGhhbiBmcm9tIGBwcm9jZXNzYCBvciB0aGUgdmFycyBmZWF0dXJlOiB0aGlzIGlzXG4gKiBhIHJlbmRlcmVyLW9ubHkgZGVzaWduIHN5c3RlbSwgaXQgbWF5IG5vdCBkZXBlbmQgb24gYSBmZWF0dXJlIHBhY2thZ2UsIGFuZFxuICogYHByb2Nlc3NgIGlzIG5vdCB0aGVyZSB0byByZWFkIG9uY2UgdGhlIHJlbmRlcmVyIHN0b3BzIHJ1bm5pbmcgd2l0aCBub2RlXG4gKiBpbnRlZ3JhdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzTWFjSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiaXMtbWFjXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+ICgpID0+IHtcbiAgICBjb25zdCB7IHVzZXJBZ2VudERhdGEsIHBsYXRmb3JtLCB1c2VyQWdlbnQgfSA9IG5hdmlnYXRvciBhcyBOYXZpZ2F0b3IgJiB7XG4gICAgICByZWFkb25seSB1c2VyQWdlbnREYXRhPzogeyByZWFkb25seSBwbGF0Zm9ybT86IHN0cmluZyB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gL21hYy9pLnRlc3QodXNlckFnZW50RGF0YT8ucGxhdGZvcm0gPz8gcGxhdGZvcm0gPz8gdXNlckFnZW50ID8/IFwiXCIpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgbWF0Y2hlcyB9IGZyb20gXCJsb2Rhc2gvZnBcIjtcbmltcG9ydCB7IGlzTWFjSW5qZWN0YWJsZSB9IGZyb20gXCIuL2lzLW1hYy5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBvblJpZ2h0VHJpZ2dlckluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIm9uLXJpZ2h0LXRyaWdnZXJcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgaXNNYWMgPSBkaS5pbmplY3QoaXNNYWNJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PiBvblJpZ2h0VHJpZ2dlckZvcihpc01hYygpID8gaXNNYWNvc1Nob3J0Y3V0IDogaXNMaW51eE9yV2luZG93c1Nob3J0Y3V0KTtcbiAgfSxcbn0pO1xuXG5jb25zdCBvblJpZ2h0VHJpZ2dlckZvciA9XG4gIDxUPihjYjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PFQ+KSA9PiBib29sZWFuKSA9PlxuICAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8VD4sIGNhbGxiYWNrOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxUPikgPT4ge1xuICAgIGlmIChjYihldmVudCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgfVxuICB9O1xuXG5jb25zdCBpc01hY29zU2hvcnRjdXQgPSBtYXRjaGVzKHtcbiAgc2hpZnRLZXk6IGZhbHNlLFxuICBhbHRLZXk6IGZhbHNlLFxuICBjdHJsS2V5OiBmYWxzZSxcbiAgbWV0YUtleTogdHJ1ZSxcbiAgY29kZTogXCJFbnRlclwiLFxufSk7XG5cbmNvbnN0IGlzTGludXhPcldpbmRvd3NTaG9ydGN1dCA9IG1hdGNoZXMoe1xuICBzaGlmdEtleTogZmFsc2UsXG4gIGFsdEtleTogZmFsc2UsXG4gIGN0cmxLZXk6IHRydWUsXG4gIG1ldGFLZXk6IGZhbHNlLFxuICBjb2RlOiBcIkVudGVyXCIsXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBtYWtlU3VyZURyYWdBbmREcm9wRXZlbnRzSGF2ZVRpbWVUb0hhcHBlbkluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIm1ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+ICgpID0+IChjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9LCA1MCk7XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgTmF2aWdhYmxlRW50cnkgPSB7XG4gIHJlYWRvbmx5IGl0ZW06IHVua25vd247XG4gIHJlYWRvbmx5IG9yZGVyTnVtYmVyOiBudW1iZXI7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufTtcblxudHlwZSBOYXZpZ2FibGVDb250ZXh0ID0gS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PGFueT47XG5cbi8qKlxuICogVGhlIG1lbWJlcnMgb2YgZXZlcnkga2V5Ym9hcmQtbmF2aWdhYmxlIGNvbnRleHQsIHRoZSBvcmRlciB0aGUgY29udGV4dHMgYXBwZWFyZWQgaW4sIGFuZCB3aGljaFxuICogbWVtYmVyIG9mIGVhY2ggaGFkIGZvY3VzLiBGb2N1cyBiZWxvbmdzIHRvIHRoZSBjb250ZXh0IHRoYXQgYXBwZWFyZWQgbGFzdDsgd2hlbiBpdCBnb2VzIGF3YXksIHRoZVxuICogcHJldmlvdXMgb25lIHRha2VzIGl0IGJhY2sgXHUyMDE0IGF0IHRoZSBtZW1iZXIgaXQgd2FzIGxlZnQgb24sIHdoaWNoIGlzIHdoYXQgbWFrZXMgc3RlcHBpbmcgaW50b1xuICogc29tZXRoaW5nIGFuZCBiYWNrIG91dCBvZiBpdCBsYW5kIHdoZXJlIGl0IHN0YXJ0ZWQgcmF0aGVyIHRoYW4gYXQgdGhlIGJlZ2lubmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IGtleWJvYXJkTmF2aWdhdGlvblN0YXRlSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwia2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiB7XG4gICAgY29uc3QgZW50cmllc0J5Q29udGV4dCA9IG5ldyBNYXA8TmF2aWdhYmxlQ29udGV4dCwgU2V0PE5hdmlnYWJsZUVudHJ5Pj4oKTtcbiAgICBjb25zdCBpdGVtSW5Gb2N1c0J5Q29udGV4dCA9IG5ldyBNYXA8TmF2aWdhYmxlQ29udGV4dCwgdW5rbm93bj4oKTtcbiAgICBjb25zdCBjb250ZXh0U3RhY2s6IE5hdmlnYWJsZUNvbnRleHRbXSA9IFtdO1xuXG4gICAgY29uc3QgZW50cmllc09mID0gKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gZW50cmllc0J5Q29udGV4dC5nZXQoY29udGV4dCk7XG5cbiAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNyZWF0ZWQgPSBuZXcgU2V0PE5hdmlnYWJsZUVudHJ5PigpO1xuXG4gICAgICBlbnRyaWVzQnlDb250ZXh0LnNldChjb250ZXh0LCBjcmVhdGVkKTtcblxuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfTtcblxuICAgIHJldHVybiAoKSA9PiAoe1xuICAgICAgc29ydGVkRW50cmllc09mOiAoY29udGV4dDogTmF2aWdhYmxlQ29udGV4dCkgPT5cbiAgICAgICAgWy4uLmVudHJpZXNPZihjb250ZXh0KV0uc29ydCgoYSwgYikgPT4gYS5vcmRlck51bWJlciAtIGIub3JkZXJOdW1iZXIpLFxuXG4gICAgICBjb250ZXh0SW5Gb2N1czogKCkgPT4gY29udGV4dFN0YWNrLmF0KC0xKSxcblxuICAgICAgaXRlbUluRm9jdXNPZjogKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQpID0+IGl0ZW1JbkZvY3VzQnlDb250ZXh0LmdldChjb250ZXh0KSxcblxuICAgICAgbm90ZUl0ZW1JbkZvY3VzOiAoY29udGV4dDogTmF2aWdhYmxlQ29udGV4dCwgaXRlbTogdW5rbm93bikgPT4ge1xuICAgICAgICBpdGVtSW5Gb2N1c0J5Q29udGV4dC5zZXQoY29udGV4dCwgaXRlbSk7XG4gICAgICB9LFxuXG4gICAgICByZWdpc3RlcjogKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQsIGVudHJ5OiBOYXZpZ2FibGVFbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gZW50cmllc09mKGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChlbnRyaWVzLnNpemUgPT09IDApIHtcbiAgICAgICAgICBjb250ZXh0U3RhY2sucHVzaChjb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVudHJpZXMuYWRkKGVudHJ5KTtcbiAgICAgIH0sXG5cbiAgICAgIGRlcmVnaXN0ZXI6IChjb250ZXh0OiBOYXZpZ2FibGVDb250ZXh0LCBlbnRyeTogTmF2aWdhYmxlRW50cnkpID0+IHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IGVudHJpZXNPZihjb250ZXh0KTtcblxuICAgICAgICBlbnRyaWVzLmRlbGV0ZShlbnRyeSk7XG5cbiAgICAgICAgaWYgKGVudHJpZXMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IGluZGV4SW5TdGFjayA9IGNvbnRleHRTdGFjay5sYXN0SW5kZXhPZihjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChpbmRleEluU3RhY2sgIT09IC0xKSB7XG4gICAgICAgICAgICBjb250ZXh0U3RhY2suc3BsaWNlKGluZGV4SW5TdGFjaywgMSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQSBjb250ZXh0IHRoYXQgaXMgZ29uZSByZW1lbWJlcnMgbm90aGluZzogdGhlIG5leHQgdGltZSBpdHMgbWVtYmVycyBhcHBlYXIsIHRoZXlcbiAgICAgICAgICAvLyBhcHBlYXIgYW5ldywgYW5kIHRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRha2VzIGZvY3VzIGFzIGl0IGRpZCB0aGUgZmlyc3QgdGltZS5cbiAgICAgICAgICBpdGVtSW5Gb2N1c0J5Q29udGV4dC5kZWxldGUoY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi4vLi4vaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgSG92ZXJhYmxlQ29udGV4dCB9IGZyb20gXCIuLi8uLi9ob3ZlcmFibGVcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tIFwibW9ieFwiO1xuXG5leHBvcnQgY29uc3QgY29udGV4dElzQmVpbmdIb3ZlcmVkSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkXCIsXG4gIGNvbnN1bXB0aW9uczogW2l0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbl0sXG5cbiAgaW5zdGFudGlhdGU6IChkaSkgPT4ge1xuICAgIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSBkaS5pbmplY3QoaXRlbUJlaW5nSG92ZXJlZEluamVjdGlvblRva2VuKTtcblxuICAgIHJldHVybiAoY29udGV4dDogSG92ZXJhYmxlQ29udGV4dDxNdXRhYmxlUmVmT2JqZWN0PGFueT4+KSA9PiB7XG4gICAgICBjb25zdCBob3ZlcmVkSXRlbSA9IGl0ZW1CZWluZ0hvdmVyZWQoKShjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIGNvbXB1dGVkKCgpID0+ICEhaG92ZXJlZEl0ZW0uZ2V0KCkpO1xuICAgIH07XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRUZXN0VXRpbFJ1bm5hYmxlRm9yT3ZlcnJpZGVzIH0gZnJvbSBcIkBrOHNsZW5zL3Rlc3QtdXRpbHNcIjtcbmltcG9ydCBnbG9iYWxPdmVycmlkZXMgZnJvbSBcIi4vKiovKi5nbG9iYWwtb3ZlcnJpZGUtZm9yLWluamVjdGFibGUuKHRzfHRzeClcIjtcbmltcG9ydCBkZWZhdWx0T3ZlcnJpZGVzIGZyb20gXCIuLyoqLyouZGVmYXVsdC1vdmVycmlkZS4odHN8dHN4KVwiO1xuXG5leHBvcnQgY29uc3QgdGVzdFV0aWxSdW5uYWJsZUluamVjdGFibGUgPSBnZXRUZXN0VXRpbFJ1bm5hYmxlRm9yT3ZlcnJpZGVzKHtcbiAgZ2xvYmFsT3ZlcnJpZGVzLFxuICBkZWZhdWx0T3ZlcnJpZGVzLFxufSk7XG4iLCAiXG5cbmNvbnN0IG1vZHVsZXMgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbXVxuIiwgImltcG9ydCB0eXBlIHsgRGlDb250YWluZXIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgbWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlIH0gZnJvbSBcIi4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZVwiO1xuXG4vLyBSdW5zIHRoZSBjYWxsYmFjayBzdHJhaWdodCBhd2F5IGluIHRlc3RzLCBpbnN0ZWFkIG9mIGFmdGVyIHRoZSByZWFsIGRlbGF5LlxuZXhwb3J0IGRlZmF1bHQgKGRpOiBEaUNvbnRhaW5lcikgPT4ge1xuICBkaS5vdmVycmlkZTIobWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlLCAoKSA9PiAoKSA9PiAoY2FsbGJhY2s6ICgpID0+IHZvaWQpID0+IGNhbGxiYWNrKCkpO1xufTtcbiIsICJpbXBvcnQgdHlwZSB7IERpQ29udGFpbmVyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB7IHRvb2x0aXBEZWxheUluamVjdGFibGUgfSBmcm9tIFwiLi90b29sdGlwLWRlbGF5LmluamVjdGFibGVcIjtcblxuLy8gTm8gZGVsYXkgaW4gdGVzdHMsIHNvIGEgdG9vbHRpcCBhcHBlYXJzIHdpdGhvdXQgYW55b25lIGFkdmFuY2luZyB0aW1lcnMuXG4vLyBXcml0dGVuIGFzIGEgcGxhaW4gZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhyb3VnaCBnZXREZWZhdWx0TW9ja2luZ092ZXJyaWRlLFxuLy8gd2hpY2ggaXMgYW4gaWRlbnRpdHkgZnVuY3Rpb24gaW4gYSB0ZXN0IHBhY2thZ2UgdGhpcyBvbmUgbWF5IG5vdCBpbXBvcnQuXG5leHBvcnQgZGVmYXVsdCAoZGk6IERpQ29udGFpbmVyKSA9PiB7XG4gIGRpLm92ZXJyaWRlMih0b29sdGlwRGVsYXlJbmplY3RhYmxlLCAoKSA9PiAoKSA9PiB1bmRlZmluZWQpO1xufTtcbiIsICJpbXBvcnQgeyByZW1vdmVDc3NNb2R1bGVDbHV0dGVyRm9yVW5pdFRlc3RpbmcgfSBmcm9tIFwiLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZygpO1xufTtcbiIsICJpbXBvcnQgKiBhcyBtb2R1bGUwIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyXTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbJ3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uZGVmYXVsdC1vdmVycmlkZS50cycsJ3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cycsJ3JlbW92ZS1jc3MtbW9kdWxlLWNsdXR0ZXIuZGVmYXVsdC1vdmVycmlkZS50cyddXG4iLCAiaW1wb3J0ICogYXMgbW9kdWxlMCBmcm9tICcuL3BsdWdpbnMvY2xpY2thYmxlL2lzLW1hYy5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy9jbGlja2FibGUvb24tcmlnaHQtdHJpZ2dlci5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUzIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNCBmcm9tICcuL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNSBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWh0bWwtZWxlbWVudC1yZWYtc2V0LmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTYgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2ZvY3VzYWJsZS1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTcgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlOCBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTkgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9pdGVtLWJlaW5nLWZvY3VzZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTAgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9jb21wdXRlZC1ub3cuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTEgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTIgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9pdGVtLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTMgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUvX3ByaXZhdGUvY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTE0IGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxNSBmcm9tICcuL3Rlc3QtdXRpbC1ydW5uYWJsZS5pbmplY3RhYmxlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyLG1vZHVsZTMsbW9kdWxlNCxtb2R1bGU1LG1vZHVsZTYsbW9kdWxlNyxtb2R1bGU4LG1vZHVsZTksbW9kdWxlMTAsbW9kdWxlMTEsbW9kdWxlMTIsbW9kdWxlMTMsbW9kdWxlMTQsbW9kdWxlMTVdO1xuXG5leHBvcnQgZGVmYXVsdCBtb2R1bGVzO1xuZXhwb3J0IGNvbnN0IGZpbGVuYW1lcyA9IFsncGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2NsaWNrYWJsZS9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQva2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZS5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvY29tcHV0ZWQtbm93LmluamVjdGFibGUudHMnLCdwbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvaG92ZXJhYmxlL2l0ZW0tYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJywndGVzdC11dGlsLXJ1bm5hYmxlLmluamVjdGFibGUudHMnXVxuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmFuY2hvci1tb2R1bGVfX2FuY2hvcl9fX20tNXViIHtcXG4gIGFuY2hvci1uYW1lOiB2YXIoLS1hbmNob3ItbmFtZSk7XFxufVxcblxcbi5hbmNob3ItbW9kdWxlX19hbmNob3JlZEF0X19fVUFyVUsge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgcG9zaXRpb24tYW5jaG9yOiB2YXIoLS1hbmNob3ItdGFyZ2V0KTtcXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLWFuY2hvci1wb3NpdGlvbik7XFxuICAvKiBUaGUgYnJvd3NlciBjZW50ZXJzIGEgcG9wb3ZlciBpbiB0aGUgdmlld3BvcnQ7IHRoZSBwb3NpdGlvbiBhcmVhIHBsYWNlcyB0aGlzIG9uZSBpbnN0ZWFkLiAqL1xcbiAgaW5zZXQ6IGF1dG87XFxuICAvKiBNaXJyb3IgdG8gdGhlIG9wcG9zaXRlIHNpZGUsIHRoZW4gdGhlIG9wcG9zaXRlIHNwYW4sIGJlZm9yZSBnaXZpbmcgdXAuICovXFxuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiBmbGlwLWJsb2NrLCBmbGlwLWlubGluZSwgZmxpcC1ibG9jayBmbGlwLWlubGluZTtcXG4gIC8qIFRoZSBnYXAgYmVsb25ncyB0byB0aGUgZWxlbWVudCBhcyBmYXIgYXMgdGhlIHBvaW50ZXIgaXMgY29uY2VybmVkLCBzbyBtb3Zpbmcgb250byBpdCBhY3Jvc3NcXG4gICAgIHRoZSBnYXAgbmV2ZXIgY291bnRzIGFzIGxlYXZpbmcuIFJlYWNoZXMgb3V0IG9uIGV2ZXJ5IHNpZGUsIHNvIGl0IGhvbGRzIGhvd2V2ZXIgdGhlIGVsZW1lbnRcXG4gICAgIGVuZHMgdXAgZmxpcHBlZC4gKi9cXG59XFxuLmFuY2hvci1tb2R1bGVfX2FuY2hvcmVkQXRfX19VQXJVSzo6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaW5zZXQ6IGNhbGMoLTEgKiB2YXIoLS1hbmNob3ItZ2FwLCAwcHgpKTtcXG4gIHotaW5kZXg6IC0xO1xcbn1cXG5cXG4uYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBYyB7XFxuICAvKiBJbiB0aGUgdG9wIGxheWVyLCBsaWtlIHdoYXRldmVyIGlzIGFuY2hvcmVkIHRvIGl0LCBzbyB0aGUgcG9pbnQgaXMgdGhlIG9uZSBpbiB0aGUgdmlld3BvcnQgdGhlXFxuICAgICBjdXJzb3Igd2FzIGF0IHJhdGhlciB0aGFuIG9uZSBvZmZzZXQgYnkgZXZlcnkgdHJhbnNmb3JtaW5nIGFuY2VzdG9yIGluIGJldHdlZW4uICovXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBpbnNldDogYXV0bztcXG4gIGxlZnQ6IHZhcigtLWFuY2hvci1wb2ludC14KTtcXG4gIHRvcDogdmFyKC0tYW5jaG9yLXBvaW50LXkpO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBhbmNob3ItbmFtZTogdmFyKC0tYW5jaG9yLW5hbWUpO1xcbiAgLyogVW5kbyB3aGF0IHRoZSBicm93c2VyIGdpdmVzIGFuIGVsZW1lbnQgb2YgdGhlIHRvcCBsYXllcjogdGhpcyBvbmUgaGFzIG5vdGhpbmcgdG8gc2hvdy4gKi9cXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3JkZXI6IDA7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYW5jaG9yXCI6XCJhbmNob3ItbW9kdWxlX19hbmNob3JfX19tLTV1YlwiLFwiYW5jaG9yZWRBdFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yZWRBdF9fX1VBclVLXCIsXCJhbmNob3JQb2ludFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBY1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmJsb2NrLW1vZHVsZV9fYmxvY2tfX19ZNHR6aiB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLmJsb2NrLW1vZHVsZV9fYmxvY2stLWlubGluZV9fXy0xWUNnIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJibG9ja1wiOlwiYmxvY2stbW9kdWxlX19ibG9ja19fX1k0dHpqXCIsXCJibG9jay0taW5saW5lXCI6XCJibG9jay1tb2R1bGVfX2Jsb2NrLS1pbmxpbmVfX18tMVlDZ1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jb2xvci9jb2xvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYSB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNjpob3ZlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZTpmb2N1cyB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSTpkaXNhYmxlZCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdoaXRlX19fZjhjMXMge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2hpdGVfX19NNmFSZzpob3ZlciB7XFxuICBjb2xvcjogd2hpdGU7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13aGl0ZV9fX2k2dVl6OmZvY3VzIHtcXG4gIGNvbG9yOiB3aGl0ZTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdoaXRlX19fbnRqWUU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tdHJhbnNwYXJlbnRfX18xdmZydiB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS10cmFuc3BhcmVudF9fX3htN0JEOmhvdmVyIHtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fcGRlLVc6Zm9jdXMge1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRfX19aMFF1VTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenYge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTEwMF9fX0dGQ29tOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMDBfX19BTTdvTTpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUo6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTgwX19fRDcxZm4ge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4Yjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MF9fXzhQbHlvOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTgwX19fdzFucGM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk2MF9fX3hmWm1iOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTYwX19fa3dtMkc6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk0MF9fX2lST3pSIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTQwX19fcmJOMDQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk0MF9fX05pWnhpOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTMwX19fTHduTDIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaDpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkzMF9fX1FVYjRTOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTMwX19fS3E5Z1c6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1byB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyNV9fX3RZeWdEOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTI1X19fVHhpNWw6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xYzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkyMF9fX0VGMk9MIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTIwX19fdVB0WFU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXYzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkyMF9fX3ZwdXkxOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTEwX19fbDVhWnAge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjcjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMF9fX1Z3VzcxOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTEwX19fWTVxeXc6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITSB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk3MF9fXzNrcnRMOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTcwX19fcDNpZXg6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVjpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1X19fRG9mbzA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwQWxwaGE4NV9fX1Q0QmdGOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6czpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1wcmltYXJ5X19fMDhXblYge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tcHJpbWFyeV9fX1Z0LTNmOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1wcmltYXJ5X19fMFhzazk6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm8ge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tYWNjZW50X19fNGgzTFQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tYWNjZW50X19fQWpTN1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc19fX3dvVEYyIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NfX183RUlXYzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc19fX05lMldJOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tbm90aWNlX19fZU9kVXA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ub3RpY2VfX19OZ1VSTDpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdfX19HajJoTTpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13YXJuaW5nX19fY0JtdDk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnEge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNyaXRpY2FsX19fUlFXWlk6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsX19fOVlsQ1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fRGQwUnkge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50X19fTEtsemc6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHA6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXN1Y2Nlc3NUaW50X19fbHNtSmg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdUaW50X19fajNQWlgge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3U6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXdhcm5pbmdUaW50X19fQzZ6bkQ6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50X19fVzZqSTg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsVGludF9fX3lSSmFBIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRfX184dERtZzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsVGludF9fX1RBQkhrOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tbGlua19fX25TTW05IHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZMzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1saW5rX19fODZKdGY6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tbGlua19fX0ZvSjVYOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQSB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1jb2RlX19fVjV1dVY6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tY29kZV9fX0lBSzdkOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVdzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29sb3ItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYVwiLFwiY29sb3ItaG92ZXItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNlwiLFwiY29sb3ItZm9jdXMtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZVwiLFwiY29sb3ItZGlzYWJsZWQtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSVwiLFwiY29sb3ItLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13aGl0ZV9fX2Y4YzFzXCIsXCJjb2xvci1ob3Zlci0td2hpdGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdoaXRlX19fTTZhUmdcIixcImNvbG9yLWZvY3VzLS13aGl0ZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2hpdGVfX19pNnVZelwiLFwiY29sb3ItZGlzYWJsZWQtLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13aGl0ZV9fX250allFXCIsXCJjb2xvci0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXRyYW5zcGFyZW50X19fMXZmcnZcIixcImNvbG9yLWhvdmVyLS10cmFuc3BhcmVudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRfX194bTdCRFwiLFwiY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS10cmFuc3BhcmVudF9fX3BkZS1XXCIsXCJjb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXRyYW5zcGFyZW50X19fWjBRdVVcIixcImNvbG9yLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenZcIixcImNvbG9yLWhvdmVyLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTAwX19fR0ZDb21cIixcImNvbG9yLWZvY3VzLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MTAwX19fQU03b01cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUpcIixcImNvbG9yLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MF9fX0Q3MWZuXCIsXCJjb2xvci1ob3Zlci0tZ3JleTgwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4YlwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwX19fOFBseW9cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MF9fX3cxbnBjXCIsXCJjb2xvci0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WFwiLFwiY29sb3ItaG92ZXItLWdyZXk2MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTYwX19feGZabWJcIixcImNvbG9yLWZvY3VzLS1ncmV5NjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk2MF9fX2t3bTJHXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncVwiLFwiY29sb3ItLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTQwX19faVJPelJcIixcImNvbG9yLWhvdmVyLS1ncmV5NDBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk0MF9fX3JiTjA0XCIsXCJjb2xvci1mb2N1cy0tZ3JleTQwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTQwX19fTmlaeGlcIixcImNvbG9yLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkzMF9fX0x3bkwyXCIsXCJjb2xvci1ob3Zlci0tZ3JleTMwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaFwiLFwiY29sb3ItZm9jdXMtLWdyZXkzMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTMwX19fUVViNFNcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkzMF9fX0txOWdXXCIsXCJjb2xvci0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1b1wiLFwiY29sb3ItaG92ZXItLWdyZXkyNVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTI1X19fdFl5Z0RcIixcImNvbG9yLWZvY3VzLS1ncmV5MjVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkyNV9fX1R4aTVsXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xY1wiLFwiY29sb3ItLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTIwX19fRUYyT0xcIixcImNvbG9yLWhvdmVyLS1ncmV5MjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyMF9fX3VQdFhVXCIsXCJjb2xvci1mb2N1cy0tZ3JleTIwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXY1wiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTIwX19fdnB1eTFcIixcImNvbG9yLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkxMF9fX2w1YVpwXCIsXCJjb2xvci1ob3Zlci0tZ3JleTEwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjclwiLFwiY29sb3ItZm9jdXMtLWdyZXkxMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTEwX19fVndXNzFcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkxMF9fX1k1cXl3XCIsXCJjb2xvci0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITVwiLFwiY29sb3ItaG92ZXItLWdyZXk3MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTcwX19fM2tydExcIixcImNvbG9yLWZvY3VzLS1ncmV5NzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk3MF9fX3AzaWV4XCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVlwiLFwiY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZFwiLFwiY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVfX19Eb2ZvMFwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVfX19UNEJnRlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6c1wiLFwiY29sb3ItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXByaW1hcnlfX18wOFduVlwiLFwiY29sb3ItaG92ZXItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXByaW1hcnlfX19WdC0zZlwiLFwiY29sb3ItZm9jdXMtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMlwiLFwiY29sb3ItZGlzYWJsZWQtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXByaW1hcnlfX18wWHNrOVwiLFwiY29sb3ItLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm9cIixcImNvbG9yLWhvdmVyLS1hY2NlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWFjY2VudF9fXzRoM0xUXCIsXCJjb2xvci1mb2N1cy0tYWNjZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1hY2NlbnRfX19BalM3WVwiLFwiY29sb3ItZGlzYWJsZWQtLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzVcIixcImNvbG9yLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzX19fd29URjJcIixcImNvbG9yLWhvdmVyLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzX19fN0VJV2NcIixcImNvbG9yLWZvY3VzLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGlcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1zdWNjZXNzX19fTmUyV0lcIixcImNvbG9yLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHXCIsXCJjb2xvci1ob3Zlci0tbm90aWNlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ub3RpY2VfX19lT2RVcFwiLFwiY29sb3ItZm9jdXMtLW5vdGljZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tbm90aWNlX19fTmdVUkxcIixcImNvbG9yLWRpc2FibGVkLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyXCIsXCJjb2xvci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2FybmluZ19fX0dqMmhNXCIsXCJjb2xvci1mb2N1cy0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ19fX2NCbXQ5XCIsXCJjb2xvci1kaXNhYmxlZC0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSXCIsXCJjb2xvci0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnFcIixcImNvbG9yLWhvdmVyLS1jcml0aWNhbFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxfX19SUVdaWVwiLFwiY29sb3ItZm9jdXMtLWNyaXRpY2FsXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbF9fXzlZbENZXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTNcIixcImNvbG9yLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc1RpbnRfX19EZDBSeVwiLFwiY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fX0xLbHpnXCIsXCJjb2xvci1mb2N1cy0tc3VjY2Vzc1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHBcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc1RpbnRfX19sc21KaFwiLFwiY29sb3ItLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13YXJuaW5nVGludF9fX2ozUFpYXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3VcIixcImNvbG9yLWZvY3VzLS13YXJuaW5nVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ1RpbnRfX19DNnpuRFwiLFwiY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13YXJuaW5nVGludF9fX1c2akk4XCIsXCJjb2xvci0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbFRpbnRfX195UkphQVwiLFwiY29sb3ItaG92ZXItLWNyaXRpY2FsVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjVcIixcImNvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsVGludF9fXzh0RG1nXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1jcml0aWNhbFRpbnRfX19UQUJIa1wiLFwiY29sb3ItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWxpbmtfX19uU01tOVwiLFwiY29sb3ItaG92ZXItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZM1wiLFwiY29sb3ItZm9jdXMtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWxpbmtfX184Nkp0ZlwiLFwiY29sb3ItZGlzYWJsZWQtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWxpbmtfX19Gb0o1WFwiLFwiY29sb3ItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQVwiLFwiY29sb3ItaG92ZXItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNvZGVfX19WNXV1VlwiLFwiY29sb3ItZm9jdXMtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNvZGVfX19JQUs3ZFwiLFwiY29sb3ItZGlzYWJsZWQtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVd1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jdXJzb3IvY3Vyc29yLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMiB7XFxuICBjdXJzb3I6IGFsaWFzO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84IHtcXG4gIGN1cnNvcjogYWxsLXNjcm9sbDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2NlbGxfX181V08yRiB7XFxuICBjdXJzb3I6IGNlbGw7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb2x1bW4tcmVzaXplX19fcExxM3Mge1xcbiAgY3Vyc29yOiBjb2wtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY29udGV4dC1tZW51X19fSXFwNTYge1xcbiAgY3Vyc29yOiBjb250ZXh0LW1lbnU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb3B5X19fWFU3eUwge1xcbiAgY3Vyc29yOiBjb3B5O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY3Jvc3NoYWlyX19fMThheWsge1xcbiAgY3Vyc29yOiBjcm9zc2hhaXI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFQge1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1yZXNpemVfX19TNEhGNSB7XFxuICBjdXJzb3I6IGUtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLSB7XFxuICBjdXJzb3I6IGV3LXJlc2l6ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2dyYWJfX19VdkFGNyB7XFxuICBjdXJzb3I6IGdyYWI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ncmFiYmluZ19fX01NaXZYIHtcXG4gIGN1cnNvcjogZ3JhYmJpbmc7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19oZWxwX19faUI4RzQge1xcbiAgY3Vyc29yOiBoZWxwO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbW92ZV9fX3lwZC1QIHtcXG4gIGN1cnNvcjogbW92ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vcnRoLXJlc2l6ZV9fXzdOa2hWIHtcXG4gIGN1cnNvcjogbi1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtcmVzaXplX19fTTRNSXoge1xcbiAgY3Vyc29yOiBuZS1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcSB7XFxuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5IHtcXG4gIGN1cnNvcjogbm8tZHJvcDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vbmVfX19FaTlzeiB7XFxuICBjdXJzb3I6IG5vbmU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1IHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU4ge1xcbiAgY3Vyc29yOiBucy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtcmVzaXplX19fY2tDb2gge1xcbiAgY3Vyc29yOiBudy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWUyB7XFxuICBjdXJzb3I6IG53c2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Byb2dyZXNzX19fSWdFeHkge1xcbiAgY3Vyc29yOiBwcm9ncmVzcztcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Jvdy1yZXNpemVfX18wU3NlNiB7XFxuICBjdXJzb3I6IHJvdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19zb3V0aC1yZXNpemVfX180RmVuUyB7XFxuICBjdXJzb3I6IHMtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGhlYXN0LXJlc2l6ZV9fX3c4aEdxIHtcXG4gIGN1cnNvcjogc2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGh3ZXN0LXJlc2l6ZV9fXzZVdjRHIHtcXG4gIGN1cnNvcjogc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3IHtcXG4gIGN1cnNvcjogdGV4dDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3ZlcnRpY2FsLXRleHRfX18zT2F6RSB7XFxuICBjdXJzb3I6IHZlcnRpY2FsLXRleHQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2IHtcXG4gIGN1cnNvcjogdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEcge1xcbiAgY3Vyc29yOiB3YWl0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fem9vbS1pbl9fX3pFREhRIHtcXG4gIGN1cnNvcjogem9vbS1pbjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzYge1xcbiAgY3Vyc29yOiB6b29tLW91dDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJhbGlhc1wiOlwiY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMlwiLFwiYWxsLXNjcm9sbFwiOlwiY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84XCIsXCJjZWxsXCI6XCJjdXJzb3ItbW9kdWxlX19jZWxsX19fNVdPMkZcIixcImNvbHVtbi1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX2NvbHVtbi1yZXNpemVfX19wTHEzc1wiLFwiY29udGV4dC1tZW51XCI6XCJjdXJzb3ItbW9kdWxlX19jb250ZXh0LW1lbnVfX19JcXA1NlwiLFwiY29weVwiOlwiY3Vyc29yLW1vZHVsZV9fY29weV9fX1hVN3lMXCIsXCJjcm9zc2hhaXJcIjpcImN1cnNvci1tb2R1bGVfX2Nyb3NzaGFpcl9fXzE4YXlrXCIsXCJkZWZhdWx0XCI6XCJjdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFRcIixcImVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19lYXN0LXJlc2l6ZV9fX1M0SEY1XCIsXCJlYXN0LWFuZC13ZXN0LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLVwiLFwiZ3JhYlwiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYl9fX1V2QUY3XCIsXCJncmFiYmluZ1wiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYmJpbmdfX19NTWl2WFwiLFwiaGVscFwiOlwiY3Vyc29yLW1vZHVsZV9faGVscF9fX2lCOEc0XCIsXCJtb3ZlXCI6XCJjdXJzb3ItbW9kdWxlX19tb3ZlX19feXBkLVBcIixcIm5vcnRoLXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fbm9ydGgtcmVzaXplX19fN05raFZcIixcIm5vcnRoZWFzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRoZWFzdC1yZXNpemVfX19NNE1JelwiLFwibm9ydGhlYXN0LWFuZC1zb3V0aHdlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcVwiLFwibm8tZHJvcFwiOlwiY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5XCIsXCJub25lXCI6XCJjdXJzb3ItbW9kdWxlX19ub25lX19fRWk5c3pcIixcIm5vdC1hbGxvd2VkXCI6XCJjdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1XCIsXCJub3J0aC1hbmQtc291dGgtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU5cIixcIm5vcnRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRod2VzdC1yZXNpemVfX19ja0NvaFwiLFwibm9ydGh3ZXN0LWFuZC1zb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWU1wiLFwicG9pbnRlclwiOlwiY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLXCIsXCJwcm9ncmVzc1wiOlwiY3Vyc29yLW1vZHVsZV9fcHJvZ3Jlc3NfX19JZ0V4eVwiLFwicm93LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fcm93LXJlc2l6ZV9fXzBTc2U2XCIsXCJzb3V0aC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRoLXJlc2l6ZV9fXzRGZW5TXCIsXCJzb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19zb3V0aGVhc3QtcmVzaXplX19fdzhoR3FcIixcInNvdXRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRod2VzdC1yZXNpemVfX182VXY0R1wiLFwidGV4dFwiOlwiY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3XCIsXCJ2ZXJ0aWNhbC10ZXh0XCI6XCJjdXJzb3ItbW9kdWxlX192ZXJ0aWNhbC10ZXh0X19fM09hekVcIixcIndlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2XCIsXCJ3YWl0XCI6XCJjdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEdcIixcInpvb20taW5cIjpcImN1cnNvci1tb2R1bGVfX3pvb20taW5fX196RURIUVwiLFwiem9vbS1vdXRcIjpcImN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZGlzcGxheS1jb250ZW50cy1tb2R1bGVfX2NvbnRlbnRzX19fbVJlWEsge1xcbiAgZGlzcGxheTogY29udGVudHM7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29udGVudHNcIjpcImRpc3BsYXktY29udGVudHMtbW9kdWxlX19jb250ZW50c19fX21SZVhLXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmRyYWdnYWJsZS1tb2R1bGVfX2RyYWdnYWJsZV9fX2JqQ0EzIGltZyxcXG4uZHJhZ2dhYmxlLW1vZHVsZV9fZHJhZ2dhYmxlX19fYmpDQTMgYSB7XFxuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJkcmFnZ2FibGVcIjpcImRyYWdnYWJsZS1tb2R1bGVfX2RyYWdnYWJsZV9fX2JqQ0EzXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZhZGVkL2ZhZGVkLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZmFkZWQtbW9kdWxlX19mYWRlZF9fXy11YmJNIHtcXG4gIG9wYWNpdHk6IDUwJTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmYWRlZFwiOlwiZmFkZWQtbW9kdWxlX19mYWRlZF9fXy11YmJNXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkX19fN0JkaGQge1xcbiAgZmxleDogMSAxIDA7XFxufVxcblxcbi5mbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tc2hyaW5rYWJsZV9fXzZINS0tIHtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBtaW4td2lkdGg6IDA7XFxufVxcblxcbi5mbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tZml4ZWRfX19GS2V0TCB7XFxuICBmbGV4LXNocmluazogMDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmbGV4LWNoaWxkXCI6XCJmbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZF9fXzdCZGhkXCIsXCJmbGV4LWNoaWxkLS1zaHJpbmthYmxlXCI6XCJmbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tc2hyaW5rYWJsZV9fXzZINS0tXCIsXCJmbGV4LWNoaWxkLS1maXhlZFwiOlwiZmxleC1jaGlsZC1tb2R1bGVfX2ZsZXgtY2hpbGQtLWZpeGVkX19fRktldExcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC9mbGV4Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZmxleC1tb2R1bGVfX2ZsZXhfX19lRkxFYyB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX3dyYXAtLXdyYXBfX18yTHFUZyB7XFxuICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbF9fXzBBaU9mIHtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbC1yZXZlcnNlZF9fX0lvZS01IHtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLWhvcml6b250YWxfX19hMzJ6byB7XFxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbC1yZXZlcnNlZF9fX2lMd0RLIHtcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VCZXR3ZWVuX19fYTZvTUgge1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUFyb3VuZF9fXzVZT1U0IHtcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJfX191clpZRyB7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3RyZXRjaF9fX001YXowIHtcXG4gIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleFN0YXJ0X19fUEhGMUUge1xcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4RW5kX19fYU1QeDAge1xcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoX19fYkFOaWcge1xcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fYWxpZ25JdGVtcy0tY2VudGVyX19fMFZzeTkge1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4U3RhcnRfX19qMEp6eCB7XFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4RW5kX19fRG1VNVIge1xcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0temVyb19fX3czLVRnIHtcXG4gIGdhcDogMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS16ZXJvX19fOTYwQTcge1xcbiAgY29sdW1uLWdhcDogMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS16ZXJvX19fb0t1c1Qge1xcbiAgcm93LWdhcDogMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhzX19fcnJUSmUge1xcbiAgZ2FwOiAxcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTR4c19fX1RSM1lFIHtcXG4gIGNvbHVtbi1nYXA6IDFweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNHhzX19fNmluM2oge1xcbiAgcm93LWdhcDogMXB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hzX19fUmN1bVIge1xcbiAgZ2FwOiAycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTN4c19fX1gtQzFhIHtcXG4gIGNvbHVtbi1nYXA6IDJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tM3hzX19fa1cwaU8ge1xcbiAgcm93LWdhcDogMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHhzX19fVUIzRmoge1xcbiAgZ2FwOiA0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXh4c19fX3VJWnYyIHtcXG4gIGNvbHVtbi1nYXA6IDRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teHhzX19fdC1ncU4ge1xcbiAgcm93LWdhcDogNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHNfX190dDNTbyB7XFxuICBnYXA6IDhweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teHNfX19CNW9YYyB7XFxuICBjb2x1bW4tZ2FwOiA4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXhzX19fMUVYMmYge1xcbiAgcm93LWdhcDogOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tc19fXzltWXpTIHtcXG4gIGdhcDogMTJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tc19fX2F2dGYtIHtcXG4gIGNvbHVtbi1nYXA6IDEycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXNfX19ZT0JWViB7XFxuICByb3ctZ2FwOiAxMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tbV9fX0FiLXQwIHtcXG4gIGdhcDogMTZweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tbV9fX1E2Y0ItIHtcXG4gIGNvbHVtbi1nYXA6IDE2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLW1fX183LURRMCB7XFxuICByb3ctZ2FwOiAxNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tbF9fX2N2bWp3IHtcXG4gIGdhcDogMjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tbF9fX0VwUXRUIHtcXG4gIGNvbHVtbi1nYXA6IDIwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLWxfX194WWlLaCB7XFxuICByb3ctZ2FwOiAyMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teGxfX19DSXNOUCB7XFxuICBnYXA6IDI0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXhsX19fbUxVeFIge1xcbiAgY29sdW1uLWdhcDogMjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teGxfX19LV04zMyB7XFxuICByb3ctZ2FwOiAyNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHhsX19fMTJ0LTYge1xcbiAgZ2FwOiAyOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14eGxfX192QUx0ZiB7XFxuICBjb2x1bW4tZ2FwOiAyOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eGxfX19JZGNxVSB7XFxuICByb3ctZ2FwOiAyOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hsX19faVVyeDEge1xcbiAgZ2FwOiAzMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0zeGxfX18tTlYwWiB7XFxuICBjb2x1bW4tZ2FwOiAzMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0zeGxfX19WWWNSaCB7XFxuICByb3ctZ2FwOiAzMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhsX19fZlppS1Yge1xcbiAgZ2FwOiAzNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS00eGxfX19YOUtweSB7XFxuICBjb2x1bW4tZ2FwOiAzNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS00eGxfX19kYnZXMCB7XFxuICByb3ctZ2FwOiAzNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNXhsX19fNDNoSHYge1xcbiAgZ2FwOiA0MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS01eGxfX18yWHllUSB7XFxuICBjb2x1bW4tZ2FwOiA0MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS01eGxfX19xdmpPRSB7XFxuICByb3ctZ2FwOiA0MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNnhsX19fc1B5Nkwge1xcbiAgZ2FwOiA0NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS02eGxfX196YWdXTSB7XFxuICBjb2x1bW4tZ2FwOiA0NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS02eGxfX19VLXVaSiB7XFxuICByb3ctZ2FwOiA0NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tN3hsX19fT2F3di0ge1xcbiAgZ2FwOiA0OHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS03eGxfX19LenJNciB7XFxuICBjb2x1bW4tZ2FwOiA0OHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS03eGxfX19wQXZMdiB7XFxuICByb3ctZ2FwOiA0OHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tOHhsX19fRWVvRS0ge1xcbiAgZ2FwOiA1MnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS04eGxfX19rYmlvSiB7XFxuICBjb2x1bW4tZ2FwOiA1MnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS04eGxfX19QLTktZSB7XFxuICByb3ctZ2FwOiA1MnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tOXhsX19fVGduVVMge1xcbiAgZ2FwOiA1NnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS05eGxfX19OR2wzSiB7XFxuICBjb2x1bW4tZ2FwOiA1NnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS05eGxfX19FR3VlaCB7XFxuICByb3ctZ2FwOiA1NnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTB4bF9fX0NmMXc2IHtcXG4gIGdhcDogNjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tMTB4bF9fX0xKUkdsIHtcXG4gIGNvbHVtbi1nYXA6IDYwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTEweGxfX196UHR5TiB7XFxuICByb3ctZ2FwOiA2MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTF4bF9fX29yZmdJIHtcXG4gIGdhcDogNjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tMTF4bF9fX2RES2RwIHtcXG4gIGNvbHVtbi1nYXA6IDY0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTExeGxfX192REctQSB7XFxuICByb3ctZ2FwOiA2NHB4O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImZsZXhcIjpcImZsZXgtbW9kdWxlX19mbGV4X19fZUZMRWNcIixcImZsZXhfX3dyYXAtLXdyYXBcIjpcImZsZXgtbW9kdWxlX19mbGV4X193cmFwLS13cmFwX19fMkxxVGdcIixcImZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsX19fMEFpT2ZcIixcImZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWwtcmV2ZXJzZWRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsLXJldmVyc2VkX19fSW9lLTVcIixcImZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbF9fX2EzMnpvXCIsXCJmbGV4X19kaXJlY3Rpb24tLWhvcml6b250YWwtcmV2ZXJzZWRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLWhvcml6b250YWwtcmV2ZXJzZWRfX19pTHdES1wiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQmV0d2VlblwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUJldHdlZW5fX19hNm9NSFwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQXJvdW5kXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQXJvdW5kX19fNVlPVTRcIixcImZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tY2VudGVyX19fdXJaWUdcIixcImZsZXhfX2p1c3RpZnlDb250ZW50LS1zdHJldGNoXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXN0cmV0Y2hfX19NNWF6MFwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhTdGFydFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4U3RhcnRfX19QSEYxRVwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhFbmRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleEVuZF9fX2FNUHgwXCIsXCJmbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fYWxpZ25JdGVtcy0tc3RyZXRjaF9fX2JBTmlnXCIsXCJmbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJfX18wVnN5OVwiLFwiZmxleF9fYWxpZ25JdGVtcy0tZmxleFN0YXJ0XCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fYWxpZ25JdGVtcy0tZmxleFN0YXJ0X19fajBKenhcIixcImZsZXhfX2FsaWduSXRlbXMtLWZsZXhFbmRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4RW5kX19fRG1VNVJcIixcImZsZXhfX2dhcC0temVyb1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0temVyb19fX3czLVRnXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0temVyb1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS16ZXJvX19fOTYwQTdcIixcImZsZXhfX2dhcC0tcm93LS16ZXJvXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXplcm9fX19vS3VzVFwiLFwiZmxleF9fZ2FwLS00eHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTR4c19fX3JyVEplXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tNHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTR4c19fX1RSM1lFXCIsXCJmbGV4X19nYXAtLXJvdy0tNHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTR4c19fXzZpbjNqXCIsXCJmbGV4X19nYXAtLTN4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hzX19fUmN1bVJcIixcImZsZXhfX2dhcC0tY29sdW1uLS0zeHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tM3hzX19fWC1DMWFcIixcImZsZXhfX2dhcC0tcm93LS0zeHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tM3hzX19fa1cwaU9cIixcImZsZXhfX2dhcC0teHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eHNfX19VQjNGalwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXh4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14eHNfX191SVp2MlwiLFwiZmxleF9fZ2FwLS1yb3ctLXh4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eHNfX190LWdxTlwiLFwiZmxleF9fZ2FwLS14c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHNfX190dDNTb1wiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXhzX19fQjVvWGNcIixcImZsZXhfX2dhcC0tcm93LS14c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14c19fXzFFWDJmXCIsXCJmbGV4X19nYXAtLXNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXNfX185bVl6U1wiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tc19fX2F2dGYtXCIsXCJmbGV4X19nYXAtLXJvdy0tc1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS1zX19fWU9CVlZcIixcImZsZXhfX2dhcC0tbVwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tbV9fX0FiLXQwXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tbVwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1tX19fUTZjQi1cIixcImZsZXhfX2dhcC0tcm93LS1tXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLW1fX183LURRMFwiLFwiZmxleF9fZ2FwLS1sXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1sX19fY3ZtandcIixcImZsZXhfX2dhcC0tY29sdW1uLS1sXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLWxfX19FcFF0VFwiLFwiZmxleF9fZ2FwLS1yb3ctLWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tbF9fX3hZaUtoXCIsXCJmbGV4X19nYXAtLXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14bF9fX0NJc05QXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0teGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teGxfX19tTFV4UlwiLFwiZmxleF9fZ2FwLS1yb3ctLXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXhsX19fS1dOMzNcIixcImZsZXhfX2dhcC0teHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eGxfX18xMnQtNlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14eGxfX192QUx0ZlwiLFwiZmxleF9fZ2FwLS1yb3ctLXh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eGxfX19JZGNxVVwiLFwiZmxleF9fZ2FwLS0zeGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTN4bF9fX2lVcngxXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tM3hsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTN4bF9fXy1OVjBaXCIsXCJmbGV4X19nYXAtLXJvdy0tM3hsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTN4bF9fX1ZZY1JoXCIsXCJmbGV4X19nYXAtLTR4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhsX19fZlppS1ZcIixcImZsZXhfX2dhcC0tY29sdW1uLS00eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tNHhsX19fWDlLcHlcIixcImZsZXhfX2dhcC0tcm93LS00eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNHhsX19fZGJ2VzBcIixcImZsZXhfX2dhcC0tNXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS01eGxfX180M2hIdlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTV4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS01eGxfX18yWHllUVwiLFwiZmxleF9fZ2FwLS1yb3ctLTV4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS01eGxfX19xdmpPRVwiLFwiZmxleF9fZ2FwLS02eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTZ4bF9fX3NQeTZMXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tNnhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX3phZ1dNXCIsXCJmbGV4X19nYXAtLXJvdy0tNnhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTZ4bF9fX1UtdVpKXCIsXCJmbGV4X19nYXAtLTd4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tN3hsX19fT2F3di1cIixcImZsZXhfX2dhcC0tY29sdW1uLS03eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tN3hsX19fS3pyTXJcIixcImZsZXhfX2dhcC0tcm93LS03eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tN3hsX19fcEF2THZcIixcImZsZXhfX2dhcC0tOHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS04eGxfX19FZW9FLVwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS04eGxfX19rYmlvSlwiLFwiZmxleF9fZ2FwLS1yb3ctLTh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS04eGxfX19QLTktZVwiLFwiZmxleF9fZ2FwLS05eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTl4bF9fX1RnblVTXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tOXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTl4bF9fX05HbDNKXCIsXCJmbGV4X19nYXAtLXJvdy0tOXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTl4bF9fX0VHdWVoXCIsXCJmbGV4X19nYXAtLTEweGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTEweGxfX19DZjF3NlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTEweGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tMTB4bF9fX0xKUkdsXCIsXCJmbGV4X19nYXAtLXJvdy0tMTB4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0xMHhsX19felB0eU5cIixcImZsZXhfX2dhcC0tMTF4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTF4bF9fX29yZmdJXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tMTF4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0xMXhsX19fZERLZHBcIixcImZsZXhfX2dhcC0tcm93LS0xMXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTExeGxfX192REctQVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmFkaWVudC9ncmFkaWVudC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmdyYWRpZW50LW1vZHVsZV9fZ3JhZGllbnRfX19NREJ2RiB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1zdXJmYWNlR3JhZGllbnQpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImdyYWRpZW50XCI6XCJncmFkaWVudC1tb2R1bGVfX2dyYWRpZW50X19fTURCdkZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmdyYXlzY2FsZS1tb2R1bGVfX2dyYXlzY2FsZV9fXzNtWlA2IHtcXG4gIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImdyYXlzY2FsZVwiOlwiZ3JheXNjYWxlLW1vZHVsZV9fZ3JheXNjYWxlX19fM21aUDZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZ3JpZC9ncmlkLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZ3JpZC1tb2R1bGVfX2dyaWRfX19NUFRoTyB7XFxuICBkaXNwbGF5OiBncmlkO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTFfX19ZMFUyTSB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMl9fX1lnUzRIIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS0zX19fbWFCRDIge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTRfX183M0JqQSB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNV9fX1NsdC1EIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS02X19fbnlNOHoge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLXN0cmV0Y2hfX194WGQzWiB7XFxuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19hbGlnbkl0ZW1zLS1jZW50ZXJfX19FOG1MLSB7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLXN0YXJ0X19fMk5kdlMge1xcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLWVuZF9fXzFJcFltIHtcXG4gIGFsaWduLWl0ZW1zOiBlbmQ7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS16ZXJvX19fRzFxOGQge1xcbiAgZ2FwOiAwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXplcm9fX195Z1FwSiB7XFxuICBjb2x1bW4tZ2FwOiAwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXplcm9fX193MS1PeCB7XFxuICByb3ctZ2FwOiAwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS00eHNfX196TzBtdiB7XFxuICBnYXA6IDFweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhzX19fR1VvZDMge1xcbiAgY29sdW1uLWdhcDogMXB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS00eHNfX19zVlFaZSB7XFxuICByb3ctZ2FwOiAxcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0zeHNfX18tSXhTdyB7XFxuICBnYXA6IDJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hzX19fdXc0NjYge1xcbiAgY29sdW1uLWdhcDogMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0zeHNfX19KZndtWSB7XFxuICByb3ctZ2FwOiAycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eHNfX19naDhjLSB7XFxuICBnYXA6IDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teHhzX19fRTc2Z0sge1xcbiAgY29sdW1uLWdhcDogNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14eHNfX19uaHh6LSB7XFxuICByb3ctZ2FwOiA0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14c19fX0dINGgyIHtcXG4gIGdhcDogOHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14c19fX3VScXJpIHtcXG4gIGNvbHVtbi1nYXA6IDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0teHNfX19sQU5FdSB7XFxuICByb3ctZ2FwOiA4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1zX19fN1IwcHMge1xcbiAgZ2FwOiAxMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1zX19fYURWQUcge1xcbiAgY29sdW1uLWdhcDogMTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tc19fX0FSRG14IHtcXG4gIHJvdy1nYXA6IDEycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1tX19fbTNYaWgge1xcbiAgZ2FwOiAxNnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1tX19fQ3N5ZU0ge1xcbiAgY29sdW1uLWdhcDogMTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tbV9fX3NPQVhuIHtcXG4gIHJvdy1nYXA6IDE2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1sX19fMFN5S2wge1xcbiAgZ2FwOiAyMHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1sX19fSnZKaE0ge1xcbiAgY29sdW1uLWdhcDogMjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tbF9fX2FwSDhiIHtcXG4gIHJvdy1nYXA6IDIwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14bF9fX0ktdlJ0IHtcXG4gIGdhcDogMjRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teGxfX190MFNPMyB7XFxuICBjb2x1bW4tZ2FwOiAyNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14bF9fX2V2TkVkIHtcXG4gIHJvdy1nYXA6IDI0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eGxfX19lV1MwMiB7XFxuICBnYXA6IDI4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4bF9fX3MtLS1iIHtcXG4gIGNvbHVtbi1nYXA6IDI4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXh4bF9fX0o0RjdvIHtcXG4gIHJvdy1nYXA6IDI4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0zeGxfX19IVmxrRCB7XFxuICBnYXA6IDMycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTN4bF9fX3pLdExMIHtcXG4gIGNvbHVtbi1nYXA6IDMycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTN4bF9fX0U5U1Y5IHtcXG4gIHJvdy1nYXA6IDMycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS00eGxfX19NM0czZiB7XFxuICBnYXA6IDM2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTR4bF9fX25udC1wIHtcXG4gIGNvbHVtbi1nYXA6IDM2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTR4bF9fXzFXOGJkIHtcXG4gIHJvdy1nYXA6IDM2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS01eGxfX195QW5YRCB7XFxuICBnYXA6IDQwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTV4bF9fXzJ3NFIxIHtcXG4gIGNvbHVtbi1nYXA6IDQwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTV4bF9fX1ZDZmpnIHtcXG4gIHJvdy1nYXA6IDQwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS02eGxfX19oRWwwRiB7XFxuICBnYXA6IDQ0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX0Z4UHRwIHtcXG4gIGNvbHVtbi1nYXA6IDQ0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTZ4bF9fX3luMWYtIHtcXG4gIHJvdy1nYXA6IDQ0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS03eGxfX19nYkdIdSB7XFxuICBnYXA6IDQ4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTd4bF9fX1Z5ajFwIHtcXG4gIGNvbHVtbi1nYXA6IDQ4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTd4bF9fXzVCQnNTIHtcXG4gIHJvdy1nYXA6IDQ4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS04eGxfX19qQ2xtQyB7XFxuICBnYXA6IDUycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTh4bF9fX2JxN0V6IHtcXG4gIGNvbHVtbi1nYXA6IDUycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTh4bF9fX3dOdVoyIHtcXG4gIHJvdy1nYXA6IDUycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS05eGxfX19pbkUxRSB7XFxuICBnYXA6IDU2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTl4bF9fX01zZmpxIHtcXG4gIGNvbHVtbi1nYXA6IDU2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTl4bF9fX2kyMy1jIHtcXG4gIHJvdy1nYXA6IDU2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0xMHhsX19fTENEdGMge1xcbiAgZ2FwOiA2MHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0xMHhsX19fbzhjQnkge1xcbiAgY29sdW1uLWdhcDogNjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tMTB4bF9fX1JqUnc5IHtcXG4gIHJvdy1nYXA6IDYwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0xMXhsX19fU3F1TmEge1xcbiAgZ2FwOiA2NHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0xMXhsX19fdVNlV3oge1xcbiAgY29sdW1uLWdhcDogNjRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tMTF4bF9fX2pxRy1JIHtcXG4gIHJvdy1nYXA6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiZ3JpZFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX19NUFRoT1wiLFwiZ3JpZF9fY29sdW1ucy0tMVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTFfX19ZMFUyTVwiLFwiZ3JpZF9fY29sdW1ucy0tMlwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTJfX19ZZ1M0SFwiLFwiZ3JpZF9fY29sdW1ucy0tM1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTNfX19tYUJEMlwiLFwiZ3JpZF9fY29sdW1ucy0tNFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTRfX183M0JqQVwiLFwiZ3JpZF9fY29sdW1ucy0tNVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTVfX19TbHQtRFwiLFwiZ3JpZF9fY29sdW1ucy0tNlwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTZfX19ueU04elwiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tc3RyZXRjaFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLXN0cmV0Y2hfX194WGQzWlwiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tY2VudGVyXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tY2VudGVyX19fRThtTC1cIixcImdyaWRfX2FsaWduSXRlbXMtLXN0YXJ0XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RhcnRfX18yTmR2U1wiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tZW5kXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tZW5kX19fMUlwWW1cIixcImdyaWRfX2dhcC0temVyb1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0temVyb19fX0cxcThkXCIsXCJncmlkX19nYXAtLWNvbHVtbi0temVyb1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS16ZXJvX19feWdRcEpcIixcImdyaWRfX2dhcC0tcm93LS16ZXJvXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXplcm9fX193MS1PeFwiLFwiZ3JpZF9fZ2FwLS00eHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTR4c19fX3pPMG12XCIsXCJncmlkX19nYXAtLWNvbHVtbi0tNHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTR4c19fX0dVb2QzXCIsXCJncmlkX19nYXAtLXJvdy0tNHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTR4c19fX3NWUVplXCIsXCJncmlkX19nYXAtLTN4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tM3hzX19fLUl4U3dcIixcImdyaWRfX2dhcC0tY29sdW1uLS0zeHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hzX19fdXc0NjZcIixcImdyaWRfX2dhcC0tcm93LS0zeHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tM3hzX19fSmZ3bVlcIixcImdyaWRfX2dhcC0teHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eHNfX19naDhjLVwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14eHNfX19FNzZnS1wiLFwiZ3JpZF9fZ2FwLS1yb3ctLXh4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14eHNfX19uaHh6LVwiLFwiZ3JpZF9fZ2FwLS14c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0teHNfX19HSDRoMlwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXhzX19fdVJxcmlcIixcImdyaWRfX2dhcC0tcm93LS14c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14c19fX2xBTkV1XCIsXCJncmlkX19nYXAtLXNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXNfX183UjBwc1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tc19fX2FEVkFHXCIsXCJncmlkX19nYXAtLXJvdy0tc1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1zX19fQVJEbXhcIixcImdyaWRfX2dhcC0tbVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tbV9fX20zWGloXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tbVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1tX19fQ3N5ZU1cIixcImdyaWRfX2dhcC0tcm93LS1tXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLW1fX19zT0FYblwiLFwiZ3JpZF9fZ2FwLS1sXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1sX19fMFN5S2xcIixcImdyaWRfX2dhcC0tY29sdW1uLS1sXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLWxfX19KdkpoTVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLWxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tbF9fX2FwSDhiXCIsXCJncmlkX19nYXAtLXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14bF9fX0ktdlJ0XCIsXCJncmlkX19nYXAtLWNvbHVtbi0teGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teGxfX190MFNPM1wiLFwiZ3JpZF9fZ2FwLS1yb3ctLXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXhsX19fZXZORWRcIixcImdyaWRfX2dhcC0teHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eGxfX19lV1MwMlwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14eGxfX19zLS0tYlwiLFwiZ3JpZF9fZ2FwLS1yb3ctLXh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14eGxfX19KNEY3b1wiLFwiZ3JpZF9fZ2FwLS0zeGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTN4bF9fX0hWbGtEXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tM3hsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTN4bF9fX3pLdExMXCIsXCJncmlkX19nYXAtLXJvdy0tM3hsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTN4bF9fX0U5U1Y5XCIsXCJncmlkX19nYXAtLTR4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tNHhsX19fTTNHM2ZcIixcImdyaWRfX2dhcC0tY29sdW1uLS00eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhsX19fbm50LXBcIixcImdyaWRfX2dhcC0tcm93LS00eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNHhsX19fMVc4YmRcIixcImdyaWRfX2dhcC0tNXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS01eGxfX195QW5YRFwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTV4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS01eGxfX18ydzRSMVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTV4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS01eGxfX19WQ2ZqZ1wiLFwiZ3JpZF9fZ2FwLS02eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTZ4bF9fX2hFbDBGXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tNnhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX0Z4UHRwXCIsXCJncmlkX19nYXAtLXJvdy0tNnhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTZ4bF9fX3luMWYtXCIsXCJncmlkX19nYXAtLTd4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tN3hsX19fZ2JHSHVcIixcImdyaWRfX2dhcC0tY29sdW1uLS03eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tN3hsX19fVnlqMXBcIixcImdyaWRfX2dhcC0tcm93LS03eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tN3hsX19fNUJCc1NcIixcImdyaWRfX2dhcC0tOHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS04eGxfX19qQ2xtQ1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS04eGxfX19icTdFelwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS04eGxfX193TnVaMlwiLFwiZ3JpZF9fZ2FwLS05eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTl4bF9fX2luRTFFXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tOXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTl4bF9fX01zZmpxXCIsXCJncmlkX19nYXAtLXJvdy0tOXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTl4bF9fX2kyMy1jXCIsXCJncmlkX19nYXAtLTEweGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTEweGxfX19MQ0R0Y1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTEweGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tMTB4bF9fX284Y0J5XCIsXCJncmlkX19nYXAtLXJvdy0tMTB4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0xMHhsX19fUmpSdzlcIixcImdyaWRfX2dhcC0tMTF4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tMTF4bF9fX1NxdU5hXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tMTF4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0xMXhsX19fdVNlV3pcIixcImdyaWRfX2dhcC0tcm93LS0xMXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTExeGxfX19qcUctSVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9oZWlnaHQvaGVpZ2h0Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIuaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tZnVsbF9fXy1pb2pmIHtcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS16ZXJvX19fZDU3d1cge1xcbiAgbWF4LWhlaWdodDogMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhzX19fTEpVQm4ge1xcbiAgbWF4LWhlaWdodDogMXB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hzX19fLTJXby0ge1xcbiAgbWF4LWhlaWdodDogMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHhzX19faEZyQmUge1xcbiAgbWF4LWhlaWdodDogNHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHNfX19jMnBhRCB7XFxuICBtYXgtaGVpZ2h0OiA4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1zX19fQWNwNlQge1xcbiAgbWF4LWhlaWdodDogMTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLW1fX19Wem9ROSB7XFxuICBtYXgtaGVpZ2h0OiAxNnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tbF9fX1dnbHFiIHtcXG4gIG1heC1oZWlnaHQ6IDIwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14bF9fX0xVbWxKIHtcXG4gIG1heC1oZWlnaHQ6IDI0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14eGxfX19kUjN6SyB7XFxuICBtYXgtaGVpZ2h0OiAyOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hsX19fYnViVEQge1xcbiAgbWF4LWhlaWdodDogMzJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTR4bF9fX2JkWlg2IHtcXG4gIG1heC1oZWlnaHQ6IDM2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS01eGxfX19UVVRBUiB7XFxuICBtYXgtaGVpZ2h0OiA0MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNnhsX19fR2MtSGwge1xcbiAgbWF4LWhlaWdodDogNDRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTd4bF9fX1l4ZHRYIHtcXG4gIG1heC1oZWlnaHQ6IDQ4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS04eGxfX19BMld2ZCB7XFxuICBtYXgtaGVpZ2h0OiA1MnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tOXhsX19fSnZyR0oge1xcbiAgbWF4LWhlaWdodDogNTZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTEweGxfX193TFJRdSB7XFxuICBtYXgtaGVpZ2h0OiA2MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTF4bF9fX2dVM3hJIHtcXG4gIG1heC1oZWlnaHQ6IDY0cHg7XFxufVxcblxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS16ZXJvX19fUEJWNDcge1xcbiAgbWluLWhlaWdodDogMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNHhzX19fVjNOLWIge1xcbiAgbWluLWhlaWdodDogMXB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tM3hzX19fdGdEUVEge1xcbiAgbWluLWhlaWdodDogMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teHhzX19fLXFoU3oge1xcbiAgbWluLWhlaWdodDogNHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teHNfX19aSXBxdSB7XFxuICBtaW4taGVpZ2h0OiA4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1zX19feE1pR2Mge1xcbiAgbWluLWhlaWdodDogMTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLW1fX19WRVdMciB7XFxuICBtaW4taGVpZ2h0OiAxNnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbF9fX2E2LUY3IHtcXG4gIG1pbi1oZWlnaHQ6IDIwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14bF9fXy15bEZ1IHtcXG4gIG1pbi1oZWlnaHQ6IDI0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eGxfX183SzZmLSB7XFxuICBtaW4taGVpZ2h0OiAyOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tM3hsX19fMEZaUW0ge1xcbiAgbWluLWhlaWdodDogMzJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTR4bF9fX2NHb0prIHtcXG4gIG1pbi1oZWlnaHQ6IDM2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS01eGxfX19mVjNhTyB7XFxuICBtaW4taGVpZ2h0OiA0MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNnhsX19fRmtVR0Mge1xcbiAgbWluLWhlaWdodDogNDRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTd4bF9fX0NzaXdWIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS04eGxfX19oLS1ESyB7XFxuICBtaW4taGVpZ2h0OiA1MnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tOXhsX19fbkZNU0gge1xcbiAgbWluLWhlaWdodDogNTZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTEweGxfX19LYS1jQSB7XFxuICBtaW4taGVpZ2h0OiA2MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tMTF4bF9fX2ZRc2djIHtcXG4gIG1pbi1oZWlnaHQ6IDY0cHg7XFxufVxcblxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXN0cmV0Y2hfX19yWWFZbiB7XFxuICBoZWlnaHQ6IHN0cmV0Y2g7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLWZ1bGxfX192V3hpZSB7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLWF1dG9fX182N25GTiB7XFxuICBoZWlnaHQ6IGF1dG87XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXplcm9fX19BcUEwUCB7XFxuICBoZWlnaHQ6IDBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tNHhzX19fRmRKMGgge1xcbiAgaGVpZ2h0OiAxcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTN4c19fX2FzVUpiIHtcXG4gIGhlaWdodDogMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14eHNfX19ZcVRxcCB7XFxuICBoZWlnaHQ6IDRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0teHNfX19sTlJ0WSB7XFxuICBoZWlnaHQ6IDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tc19fX0g3bS0tIHtcXG4gIGhlaWdodDogMTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tbV9fX0NtTHAxIHtcXG4gIGhlaWdodDogMTZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tbF9fXzJ0a2toIHtcXG4gIGhlaWdodDogMjBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0teGxfX183eEJKaSB7XFxuICBoZWlnaHQ6IDI0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXh4bF9fX0NqU3U1IHtcXG4gIGhlaWdodDogMjhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tM3hsX19fcFVkdk4ge1xcbiAgaGVpZ2h0OiAzMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS00eGxfX19RSFpZeSB7XFxuICBoZWlnaHQ6IDM2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTV4bF9fX1diZ283IHtcXG4gIGhlaWdodDogNDBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tNnhsX19fa3djOGEge1xcbiAgaGVpZ2h0OiA0NHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS03eGxfX19tdU8xbCB7XFxuICBoZWlnaHQ6IDQ4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTh4bF9fXzlwRU1OIHtcXG4gIGhlaWdodDogNTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tOXhsX19fNmU0NlEge1xcbiAgaGVpZ2h0OiA1NnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMHhsX19fWGdYcC0ge1xcbiAgaGVpZ2h0OiA2MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMXhsX19fYWR3dUgge1xcbiAgaGVpZ2h0OiA2NHB4O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm1heC1oZWlnaHQtLWZ1bGxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLWZ1bGxfX18taW9qZlwiLFwibWF4LWhlaWdodC0temVyb1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0temVyb19fX2Q1N3dXXCIsXCJtYXgtaGVpZ2h0LS00eHNcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTR4c19fX0xKVUJuXCIsXCJtYXgtaGVpZ2h0LS0zeHNcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTN4c19fXy0yV28tXCIsXCJtYXgtaGVpZ2h0LS14eHNcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXh4c19fX2hGckJlXCIsXCJtYXgtaGVpZ2h0LS14c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHNfX19jMnBhRFwiLFwibWF4LWhlaWdodC0tc1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tc19fX0FjcDZUXCIsXCJtYXgtaGVpZ2h0LS1tXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1tX19fVnpvUTlcIixcIm1heC1oZWlnaHQtLWxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLWxfX19XZ2xxYlwiLFwibWF4LWhlaWdodC0teGxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXhsX19fTFVtbEpcIixcIm1heC1oZWlnaHQtLXh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHhsX19fZFIzektcIixcIm1heC1oZWlnaHQtLTN4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hsX19fYnViVERcIixcIm1heC1oZWlnaHQtLTR4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhsX19fYmRaWDZcIixcIm1heC1oZWlnaHQtLTV4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNXhsX19fVFVUQVJcIixcIm1heC1oZWlnaHQtLTZ4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNnhsX19fR2MtSGxcIixcIm1heC1oZWlnaHQtLTd4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tN3hsX19fWXhkdFhcIixcIm1heC1oZWlnaHQtLTh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tOHhsX19fQTJXdmRcIixcIm1heC1oZWlnaHQtLTl4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tOXhsX19fSnZyR0pcIixcIm1heC1oZWlnaHQtLTEweGxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTEweGxfX193TFJRdVwiLFwibWF4LWhlaWdodC0tMTF4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTF4bF9fX2dVM3hJXCIsXCJtaW4taGVpZ2h0LS16ZXJvXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS16ZXJvX19fUEJWNDdcIixcIm1pbi1oZWlnaHQtLTR4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNHhzX19fVjNOLWJcIixcIm1pbi1oZWlnaHQtLTN4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tM3hzX19fdGdEUVFcIixcIm1pbi1oZWlnaHQtLXh4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teHhzX19fLXFoU3pcIixcIm1pbi1oZWlnaHQtLXhzXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14c19fX1pJcHF1XCIsXCJtaW4taGVpZ2h0LS1zXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1zX19feE1pR2NcIixcIm1pbi1oZWlnaHQtLW1cIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLW1fX19WRVdMclwiLFwibWluLWhlaWdodC0tbFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbF9fX2E2LUY3XCIsXCJtaW4taGVpZ2h0LS14bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teGxfX18teWxGdVwiLFwibWluLWhlaWdodC0teHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eGxfX183SzZmLVwiLFwibWluLWhlaWdodC0tM3hsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0zeGxfX18wRlpRbVwiLFwibWluLWhlaWdodC0tNHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS00eGxfX19jR29Ka1wiLFwibWluLWhlaWdodC0tNXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS01eGxfX19mVjNhT1wiLFwibWluLWhlaWdodC0tNnhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS02eGxfX19Ga1VHQ1wiLFwibWluLWhlaWdodC0tN3hsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS03eGxfX19Dc2l3VlwiLFwibWluLWhlaWdodC0tOHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS04eGxfX19oLS1ES1wiLFwibWluLWhlaWdodC0tOXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS05eGxfX19uRk1TSFwiLFwibWluLWhlaWdodC0tMTB4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tMTB4bF9fX0thLWNBXCIsXCJtaW4taGVpZ2h0LS0xMXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0xMXhsX19fZlFzZ2NcIixcImhlaWdodC0tc3RyZXRjaFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1zdHJldGNoX19fcllhWW5cIixcImhlaWdodC0tZnVsbFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1mdWxsX19fdld4aWVcIixcImhlaWdodC0tYXV0b1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1hdXRvX19fNjduRk5cIixcImhlaWdodC0temVyb1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS16ZXJvX19fQXFBMFBcIixcImhlaWdodC0tNHhzXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTR4c19fX0ZkSjBoXCIsXCJoZWlnaHQtLTN4c1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0zeHNfX19hc1VKYlwiLFwiaGVpZ2h0LS14eHNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0teHhzX19fWXFUcXBcIixcImhlaWdodC0teHNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0teHNfX19sTlJ0WVwiLFwiaGVpZ2h0LS1zXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXNfX19IN20tLVwiLFwiaGVpZ2h0LS1tXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLW1fX19DbUxwMVwiLFwiaGVpZ2h0LS1sXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLWxfX18ydGtraFwiLFwiaGVpZ2h0LS14bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14bF9fXzd4QkppXCIsXCJoZWlnaHQtLXh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14eGxfX19DalN1NVwiLFwiaGVpZ2h0LS0zeGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tM3hsX19fcFVkdk5cIixcImhlaWdodC0tNHhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTR4bF9fX1FIWll5XCIsXCJoZWlnaHQtLTV4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS01eGxfX19XYmdvN1wiLFwiaGVpZ2h0LS02eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tNnhsX19fa3djOGFcIixcImhlaWdodC0tN3hsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTd4bF9fX211TzFsXCIsXCJoZWlnaHQtLTh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS04eGxfX185cEVNTlwiLFwiaGVpZ2h0LS05eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tOXhsX19fNmU0NlFcIixcImhlaWdodC0tMTB4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMHhsX19fWGdYcC1cIixcImhlaWdodC0tMTF4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMXhsX19fYWR3dUhcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvaGlkZGVuL2hpZGRlbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmhpZGRlbi1tb2R1bGVfX2hpZGRlbl9fX25VVWkxIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiaGlkZGVuXCI6XCJoaWRkZW4tbW9kdWxlX19oaWRkZW5fX19uVVVpMVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aCB7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICB0cmFuc2l0aW9uOiAyNTBtcyBjb2xvciwgMjUwbXMgb3BhY2l0eSwgMTUwbXMgYmFja2dyb3VuZC1jb2xvciwgMTUwbXMgYm94LXNoYWRvdztcXG59XFxuLmludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aDpub3QoLmludGVyYWN0aXZlLW1vZHVsZV9faWdub3JlRm9jdXNWaXNpYmxlX19fV2RyREcpOmZvY3VzLXZpc2libGUge1xcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWJsdWUpO1xcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xcbn1cXG4uaW50ZXJhY3RpdmUtbW9kdWxlX19pbnRlcmFjdGl2ZV9fX0ZsVXVoOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQ29sb3IpO1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMCB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxufVxcbi5pbnRlcmFjdGl2ZS1tb2R1bGVfX2ludGVyYWN0aXZlX19fRmxVdWguaW50ZXJhY3RpdmUtbW9kdWxlX19hY3RpdmVfX19vbW03eSB7XFxuICBjb2xvcjogdmFyKC0taWNvbkFjdGl2ZUNvbG9yKTtcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiaW50ZXJhY3RpdmVcIjpcImludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aFwiLFwiaWdub3JlRm9jdXNWaXNpYmxlXCI6XCJpbnRlcmFjdGl2ZS1tb2R1bGVfX2lnbm9yZUZvY3VzVmlzaWJsZV9fX1dkckRHXCIsXCJhY3RpdmVcIjpcImludGVyYWN0aXZlLW1vZHVsZV9fYWN0aXZlX19fb21tN3lcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvaW52aXNpYmxlLWJhY2tkcm9wL2ludmlzaWJsZS1iYWNrZHJvcC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmludmlzaWJsZS1iYWNrZHJvcC1tb2R1bGVfX2ludmlzaWJsZUJhY2tkcm9wX19faE9oNWI6OmJhY2tkcm9wIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImludmlzaWJsZUJhY2tkcm9wXCI6XCJpbnZpc2libGUtYmFja2Ryb3AtbW9kdWxlX19pbnZpc2libGVCYWNrZHJvcF9fX2hPaDViXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL21hcmdpbi9tYXJnaW4ubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0temVyb19fX2dHTHF3IHtcXG4gIG1hcmdpbi10b3A6IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS00eHNfX19FdjhyNyB7XFxuICBtYXJnaW4tdG9wOiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tM3hzX19fbTRZT1oge1xcbiAgbWFyZ2luLXRvcDogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXh4c19fX29wWHZwIHtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14c19fX0pJallDIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1zX19fWU44REkge1xcbiAgbWFyZ2luLXRvcDogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1tX19fWHdrLVMge1xcbiAgbWFyZ2luLXRvcDogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1sX19fS1RXaUcge1xcbiAgbWFyZ2luLXRvcDogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14bF9fXzlJT2JaIHtcXG4gIG1hcmdpbi10b3A6IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHhsX19fM01XenAge1xcbiAgbWFyZ2luLXRvcDogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0zeGxfX19NOHhIMyB7XFxuICBtYXJnaW4tdG9wOiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4bF9fX3J2TkhSIHtcXG4gIG1hcmdpbi10b3A6IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNXhsX19fSW5FUngge1xcbiAgbWFyZ2luLXRvcDogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS02eGxfX19QUy10NiB7XFxuICBtYXJnaW4tdG9wOiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTd4bF9fX1A1WWJ6IHtcXG4gIG1hcmdpbi10b3A6IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tOHhsX19fOTZNb0sge1xcbiAgbWFyZ2luLXRvcDogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS05eGxfX19vcGVEYyB7XFxuICBtYXJnaW4tdG9wOiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTEweGxfX19wdkY2eCB7XFxuICBtYXJnaW4tdG9wOiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTExeGxfX19wQnpBbSB7XFxuICBtYXJnaW4tdG9wOiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0temVyb19fX0JXdzZPIHtcXG4gIG1hcmdpbi1yaWdodDogMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhzX19fcmRQT28ge1xcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0zeHNfX18tWTlPTyB7XFxuICBtYXJnaW4tcmlnaHQ6IDJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXh4c19fX0pyb0FBIHtcXG4gIG1hcmdpbi1yaWdodDogNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHNfX19abDhNaSB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXNfX18yNERJbiB7XFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1tX19fWkxsNkIge1xcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tbF9fX2VIUy1CIHtcXG4gIG1hcmdpbi1yaWdodDogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXhsX19fSVc4ZDQge1xcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhsX19fLU9EN0wge1xcbiAgbWFyZ2luLXJpZ2h0OiAyOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tM3hsX19fdEdZUlIge1xcbiAgbWFyZ2luLXJpZ2h0OiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhsX19fRVhxaDMge1xcbiAgbWFyZ2luLXJpZ2h0OiAzNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNXhsX19fQ3VZVkcge1xcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNnhsX19fREtnRFQge1xcbiAgbWFyZ2luLXJpZ2h0OiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tN3hsX19fRnp4NGIge1xcbiAgbWFyZ2luLXJpZ2h0OiA0OHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOHhsX19fRWxTV00ge1xcbiAgbWFyZ2luLXJpZ2h0OiA1MnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOXhsX19fMG9hVHgge1xcbiAgbWFyZ2luLXJpZ2h0OiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTB4bF9fX1E1NVBDIHtcXG4gIG1hcmdpbi1yaWdodDogNjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTExeGxfX19wMDJrbiB7XFxuICBtYXJnaW4tcmlnaHQ6IDY0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0temVyb19fX24tTlZRIHtcXG4gIG1hcmdpbi1ib3R0b206IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS00eHNfX19pSkphYSB7XFxuICBtYXJnaW4tYm90dG9tOiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tM3hzX19fZndRZDEge1xcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXh4c19fXzZVYWZIIHtcXG4gIG1hcmdpbi1ib3R0b206IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14c19fX3oySjFlIHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1zX19fLUhGNlEge1xcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1tX19fSkpPUkUge1xcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1sX19fR0laY0Yge1xcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14bF9fX000QXdOIHtcXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHhsX19fVHI4bVoge1xcbiAgbWFyZ2luLWJvdHRvbTogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0zeGxfX18tMFotSCB7XFxuICBtYXJnaW4tYm90dG9tOiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4bF9fXzRsa1NGIHtcXG4gIG1hcmdpbi1ib3R0b206IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNXhsX19feml6VVAge1xcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS02eGxfX19zTW10SyB7XFxuICBtYXJnaW4tYm90dG9tOiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTd4bF9fX0pPQVpyIHtcXG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tOHhsX19fQTVRNEMge1xcbiAgbWFyZ2luLWJvdHRvbTogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS05eGxfX183dVN6diB7XFxuICBtYXJnaW4tYm90dG9tOiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTEweGxfX19KbVFKNSB7XFxuICBtYXJnaW4tYm90dG9tOiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTExeGxfX182S0VZcyB7XFxuICBtYXJnaW4tYm90dG9tOiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS16ZXJvX19fdkN2U28ge1xcbiAgbWFyZ2luLWxlZnQ6IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhzX19fbEs1LXkge1xcbiAgbWFyZ2luLWxlZnQ6IDFweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tM3hzX19fNy14Vi0ge1xcbiAgbWFyZ2luLWxlZnQ6IDJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teHhzX19fZ2U2Vkoge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teHNfX19kdnJVaiB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1zX19fRE1aSjIge1xcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLW1fX181cGVkdyB7XFxuICBtYXJnaW4tbGVmdDogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbF9fXy1TeERJIHtcXG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14bF9fXzZOLWtaIHtcXG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14eGxfX19Za2FwWSB7XFxuICBtYXJnaW4tbGVmdDogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tM3hsX19fOFVVdXgge1xcbiAgbWFyZ2luLWxlZnQ6IDMycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTR4bF9fX2FxbDViIHtcXG4gIG1hcmdpbi1sZWZ0OiAzNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS01eGxfX19oUU50cCB7XFxuICBtYXJnaW4tbGVmdDogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNnhsX19fU3FQMzEge1xcbiAgbWFyZ2luLWxlZnQ6IDQ0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTd4bF9fX2Uwai1qIHtcXG4gIG1hcmdpbi1sZWZ0OiA0OHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS04eGxfX191a3BWeiB7XFxuICBtYXJnaW4tbGVmdDogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tOXhsX19fbE5IQlQge1xcbiAgbWFyZ2luLWxlZnQ6IDU2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTEweGxfX19DQlVTbiB7XFxuICBtYXJnaW4tbGVmdDogNjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tMTF4bF9fX3VjS0M4IHtcXG4gIG1hcmdpbi1sZWZ0OiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS16ZXJvX19feUtMREgge1xcbiAgbWFyZ2luOiAwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTR4c19fXzduanNpIHtcXG4gIG1hcmdpbjogMXB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0zeHNfX19rV0JiZSB7XFxuICBtYXJnaW46IDJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teHhzX19fZlppVWEge1xcbiAgbWFyZ2luOiA0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhzX19fLXRkT2oge1xcbiAgbWFyZ2luOiA4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXNfX18weFAwZyB7XFxuICBtYXJnaW46IDEycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLW1fX19XZDRwcCB7XFxuICBtYXJnaW46IDE2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLWxfX195TVVYcyB7XFxuICBtYXJnaW46IDIwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhsX19fd2paUFIge1xcbiAgbWFyZ2luOiAyNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14eGxfX19FbTRUNyB7XFxuICBtYXJnaW46IDI4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4bF9fX2NRWkhmIHtcXG4gIG1hcmdpbjogMzJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhsX19fN0lXck0ge1xcbiAgbWFyZ2luOiAzNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS01eGxfX19jU09VUSB7XFxuICBtYXJnaW46IDQwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTZ4bF9fX0YzYlNtIHtcXG4gIG1hcmdpbjogNDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tN3hsX19fMVVRbUoge1xcbiAgbWFyZ2luOiA0OHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS04eGxfX19HRTBTdiB7XFxuICBtYXJnaW46IDUycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTl4bF9fX2g1aGhFIHtcXG4gIG1hcmdpbjogNTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTB4bF9fX2RHSy1SIHtcXG4gIG1hcmdpbjogNjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTF4bF9fXzN5eEJwIHtcXG4gIG1hcmdpbjogNjRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tYXV0b19fX3k3Z2Y5IHtcXG4gIG1hcmdpbjogYXV0bztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJtYXJnaW5fX3RvcC0temVyb1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXplcm9fX19nR0xxd1wiLFwibWFyZ2luX190b3AtLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4c19fX0V2OHI3XCIsXCJtYXJnaW5fX3RvcC0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tM3hzX19fbTRZT1pcIixcIm1hcmdpbl9fdG9wLS14eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14eHNfX19vcFh2cFwiLFwibWFyZ2luX190b3AtLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHNfX19KSWpZQ1wiLFwibWFyZ2luX190b3AtLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1zX19fWU44RElcIixcIm1hcmdpbl9fdG9wLS1tXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tbV9fX1h3ay1TXCIsXCJtYXJnaW5fX3RvcC0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLWxfX19LVFdpR1wiLFwibWFyZ2luX190b3AtLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teGxfX185SU9iWlwiLFwibWFyZ2luX190b3AtLXh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXh4bF9fXzNNV3pwXCIsXCJtYXJnaW5fX3RvcC0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tM3hsX19fTTh4SDNcIixcIm1hcmdpbl9fdG9wLS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS00eGxfX19ydk5IUlwiLFwibWFyZ2luX190b3AtLTV4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTV4bF9fX0luRVJ4XCIsXCJtYXJnaW5fX3RvcC0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNnhsX19fUFMtdDZcIixcIm1hcmdpbl9fdG9wLS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS03eGxfX19QNVlielwiLFwibWFyZ2luX190b3AtLTh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTh4bF9fXzk2TW9LXCIsXCJtYXJnaW5fX3RvcC0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tOXhsX19fb3BlRGNcIixcIm1hcmdpbl9fdG9wLS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tMTB4bF9fX3B2RjZ4XCIsXCJtYXJnaW5fX3RvcC0tMTF4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTExeGxfX19wQnpBbVwiLFwibWFyZ2luX19yaWdodC0temVyb1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0temVyb19fX0JXdzZPXCIsXCJtYXJnaW5fX3JpZ2h0LS00eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTR4c19fX3JkUE9vXCIsXCJtYXJnaW5fX3JpZ2h0LS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTN4c19fXy1ZOU9PXCIsXCJtYXJnaW5fX3JpZ2h0LS14eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXh4c19fX0pyb0FBXCIsXCJtYXJnaW5fX3JpZ2h0LS14c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHNfX19abDhNaVwiLFwibWFyZ2luX19yaWdodC0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tc19fXzI0REluXCIsXCJtYXJnaW5fX3JpZ2h0LS1tXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1tX19fWkxsNkJcIixcIm1hcmdpbl9fcmlnaHQtLWxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLWxfX19lSFMtQlwiLFwibWFyZ2luX19yaWdodC0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXhsX19fSVc4ZDRcIixcIm1hcmdpbl9fcmlnaHQtLXh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhsX19fLU9EN0xcIixcIm1hcmdpbl9fcmlnaHQtLTN4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tM3hsX19fdEdZUlJcIixcIm1hcmdpbl9fcmlnaHQtLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhsX19fRVhxaDNcIixcIm1hcmdpbl9fcmlnaHQtLTV4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNXhsX19fQ3VZVkdcIixcIm1hcmdpbl9fcmlnaHQtLTZ4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNnhsX19fREtnRFRcIixcIm1hcmdpbl9fcmlnaHQtLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tN3hsX19fRnp4NGJcIixcIm1hcmdpbl9fcmlnaHQtLTh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOHhsX19fRWxTV01cIixcIm1hcmdpbl9fcmlnaHQtLTl4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOXhsX19fMG9hVHhcIixcIm1hcmdpbl9fcmlnaHQtLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTEweGxfX19RNTVQQ1wiLFwibWFyZ2luX19yaWdodC0tMTF4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTF4bF9fX3AwMmtuXCIsXCJtYXJnaW5fX2JvdHRvbS0temVyb1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXplcm9fX19uLU5WUVwiLFwibWFyZ2luX19ib3R0b20tLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4c19fX2lKSmFhXCIsXCJtYXJnaW5fX2JvdHRvbS0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tM3hzX19fZndRZDFcIixcIm1hcmdpbl9fYm90dG9tLS14eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14eHNfX182VWFmSFwiLFwibWFyZ2luX19ib3R0b20tLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHNfX196MkoxZVwiLFwibWFyZ2luX19ib3R0b20tLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1zX19fLUhGNlFcIixcIm1hcmdpbl9fYm90dG9tLS1tXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tbV9fX0pKT1JFXCIsXCJtYXJnaW5fX2JvdHRvbS0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLWxfX19HSVpjRlwiLFwibWFyZ2luX19ib3R0b20tLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teGxfX19NNEF3TlwiLFwibWFyZ2luX19ib3R0b20tLXh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXh4bF9fX1RyOG1aXCIsXCJtYXJnaW5fX2JvdHRvbS0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tM3hsX19fLTBaLUhcIixcIm1hcmdpbl9fYm90dG9tLS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS00eGxfX180bGtTRlwiLFwibWFyZ2luX19ib3R0b20tLTV4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTV4bF9fX3ppelVQXCIsXCJtYXJnaW5fX2JvdHRvbS0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNnhsX19fc01tdEtcIixcIm1hcmdpbl9fYm90dG9tLS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS03eGxfX19KT0FaclwiLFwibWFyZ2luX19ib3R0b20tLTh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTh4bF9fX0E1UTRDXCIsXCJtYXJnaW5fX2JvdHRvbS0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tOXhsX19fN3VTenZcIixcIm1hcmdpbl9fYm90dG9tLS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tMTB4bF9fX0ptUUo1XCIsXCJtYXJnaW5fX2JvdHRvbS0tMTF4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTExeGxfX182S0VZc1wiLFwibWFyZ2luX19sZWZ0LS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXplcm9fX192Q3ZTb1wiLFwibWFyZ2luX19sZWZ0LS00eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhzX19fbEs1LXlcIixcIm1hcmdpbl9fbGVmdC0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTN4c19fXzcteFYtXCIsXCJtYXJnaW5fX2xlZnQtLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14eHNfX19nZTZWSlwiLFwibWFyZ2luX19sZWZ0LS14c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14c19fX2R2clVqXCIsXCJtYXJnaW5fX2xlZnQtLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tc19fX0RNWkoyXCIsXCJtYXJnaW5fX2xlZnQtLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbV9fXzVwZWR3XCIsXCJtYXJnaW5fX2xlZnQtLWxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbF9fXy1TeERJXCIsXCJtYXJnaW5fX2xlZnQtLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXhsX19fNk4ta1pcIixcIm1hcmdpbl9fbGVmdC0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXh4bF9fX1lrYXBZXCIsXCJtYXJnaW5fX2xlZnQtLTN4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS0zeGxfX184VVV1eFwiLFwibWFyZ2luX19sZWZ0LS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhsX19fYXFsNWJcIixcIm1hcmdpbl9fbGVmdC0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTV4bF9fX2hRTnRwXCIsXCJtYXJnaW5fX2xlZnQtLTZ4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS02eGxfX19TcVAzMVwiLFwibWFyZ2luX19sZWZ0LS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tN3hsX19fZTBqLWpcIixcIm1hcmdpbl9fbGVmdC0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTh4bF9fX3VrcFZ6XCIsXCJtYXJnaW5fX2xlZnQtLTl4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS05eGxfX19sTkhCVFwiLFwibWFyZ2luX19sZWZ0LS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTEweGxfX19DQlVTblwiLFwibWFyZ2luX19sZWZ0LS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTExeGxfX191Y0tDOFwiLFwibWFyZ2luLS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXplcm9fX195S0xESFwiLFwibWFyZ2luLS00eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhzX19fN25qc2lcIixcIm1hcmdpbi0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4c19fX2tXQmJlXCIsXCJtYXJnaW4tLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14eHNfX19mWmlVYVwiLFwibWFyZ2luLS14c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14c19fXy10ZE9qXCIsXCJtYXJnaW4tLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tc19fXzB4UDBnXCIsXCJtYXJnaW4tLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbV9fX1dkNHBwXCIsXCJtYXJnaW4tLWxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbF9fX3lNVVhzXCIsXCJtYXJnaW4tLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhsX19fd2paUFJcIixcIm1hcmdpbi0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXh4bF9fX0VtNFQ3XCIsXCJtYXJnaW4tLTN4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0zeGxfX19jUVpIZlwiLFwibWFyZ2luLS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhsX19fN0lXck1cIixcIm1hcmdpbi0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTV4bF9fX2NTT1VRXCIsXCJtYXJnaW4tLTZ4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS02eGxfX19GM2JTbVwiLFwibWFyZ2luLS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tN3hsX19fMVVRbUpcIixcIm1hcmdpbi0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTh4bF9fX0dFMFN2XCIsXCJtYXJnaW4tLTl4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS05eGxfX19oNWhoRVwiLFwibWFyZ2luLS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTEweGxfX19kR0stUlwiLFwibWFyZ2luLS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTExeGxfX18zeXhCcFwiLFwibWFyZ2luLS1hdXRvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLWF1dG9fX195N2dmOVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzXCIsIGNzczogXCIub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXplcm9fX184bHlHaSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXplcm9fX19EYkkzaiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXplcm9fX19paG5TWCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0wcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0temVyb19fX1E0TFhPID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS00eHNfX19MZk0weCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTR4c19fX1lleXc2ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhzX19fVEFhREsgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4c19fXzZpV1VvID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeHNfX191cmtpZyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4c19fX3lYSDN6ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tM3hzX19fZ0F6VkEgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTN4c19fX1dyNDhjID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14eHNfX19kcVRUUyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXh4c19fX0VwNjZSID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhzX19fOXZQWWQgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4c19fX2p1dUtwID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14c19fX253NWFhID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHNfX19KZ0M2bCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhzX19fY3h0VnggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhzX19fMmlQNWcgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXNfX19IbTJpcCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1zX19fV2EzOE4gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tc19fX1dXQkZoID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tc19fX3d6RlY5ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tbV9fX1pqT0NNID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLW1fX19pcERrVyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1tX19fWThxRFcgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1tX19fNFhKZnYgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS1sX19fUXZUUm8gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbF9fX0VHa0FSID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLWxfX19VblVIdiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLWxfX19qVk5OWCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXhsX19fRU5jY1ggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teGxfX19ibXJzYSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14bF9fX0tqby1jID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teGxfX19ESFJ1eSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4bF9fX29uamVBID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXh4bF9fX3YtMVRsID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXh4bF9fX2ktYzJoID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhsX19fcUcwODUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeGxfX19MOW1zUSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0zeGxfX193TU1ibSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeGxfX19iU1NPciA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTN4bF9fX2U5Vzd2ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhsX19fVkFrLXggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhsX19fRHl5NVggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhsX19fWDB4NWEgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS00eGxfX19RdWwtaiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDM2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTV4bF9fX2VXNVFrID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTV4bF9fX3BpYS1aID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTV4bF9fX2lBQWhvID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNXhsX19feGp1Q0wgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS02eGxfX19DMFd2ayA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS02eGxfX184NHpwLSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQ0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS02eGxfX19pdWVCRiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTZ4bF9fX1VOUS1CID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tN3hsX19faFBjbGMgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tN3hsX19fNVJad1EgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0OHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tN3hsX19fSElwNkIgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS03eGxfX19GaU9FSSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQ4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTh4bF9fX2d0NGZ1ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTh4bF9fX2ZQRU9EID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTh4bF9fXy10VGZQID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOHhsX19fZFVYUmggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS05eGxfX19rUk5BNiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01NnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS05eGxfX19qYkhhQiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDU2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS05eGxfX19TRmdQbCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01NnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTl4bF9fX1RKaWVIID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tMTB4bF9fXy11dE9uID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTYwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTEweGxfX19hNTl3VCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDYwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0xMHhsX19fS2NlemUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMHhsX19fTm9tWXUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2MHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0xMXhsX19fU1l0Z24gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTF4bF9fX1A2MnU0ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTExeGxfX19nMG9vZSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTExeGxfX19FT1dMLSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDY0cHgpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS16ZXJvXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0temVyb19fXzhseUdpXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0temVyb1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXplcm9fX19EYkkzalwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS16ZXJvXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXplcm9fX19paG5TWFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0temVyb1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0temVyb19fX1E0TFhPXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhzX19fTGZNMHhcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eHNfX19ZZXl3NlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS00eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhzX19fVEFhREtcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNHhzX19fNmlXVW9cIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS0zeHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeHNfX191cmtpZ1wiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4c19fX3lYSDN6XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeHNfX19nQXpWQVwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tM3hzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0zeHNfX19XcjQ4Y1wiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4c19fX2RxVFRTXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHhzX19fRXA2NlJcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXh4c19fXzl2UFlkXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4c19fX2p1dUtwXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14c19fX253NWFhXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14c19fX0pnQzZsXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhzX19fY3h0VnhcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14c19fXzJpUDVnXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tc1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXNfX19IbTJpcFwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1zX19fV2EzOE5cIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tc1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1zX19fV1dCRmhcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXNfX193ekZWOVwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLW1cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS1tX19fWmpPQ01cIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1tXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbV9fX2lwRGtXXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLW1cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tbV9fX1k4cURXXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1tXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1tX19fNFhKZnZcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS1sXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tbF9fX1F2VFJvXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLWxfX19FR2tBUlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1sXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLWxfX19VblVIdlwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tbFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tbF9fX2pWTk5YXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14bF9fX0VOY2NYXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14bF9fX2JtcnNhXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhsX19fS2pvLWNcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14bF9fX0RIUnV5XCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhsX19fb25qZUFcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14eGxfX192LTFUbFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhsX19faS1jMmhcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhsX19fcUcwODVcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS0zeGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeGxfX19MOW1zUVwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4bF9fX3dNTWJtXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeGxfX19iU1NPclwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tM3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0zeGxfX19lOVc3dlwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTR4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTR4bF9fX1ZBay14XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhsX19fRHl5NVhcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTR4bF9fX1gweDVhXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS00eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4bF9fX1F1bC1qXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tNXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNXhsX19fZVc1UWtcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS01eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS01eGxfX19waWEtWlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS01eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNXhsX19faUFBaG9cIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTV4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNXhsX19feGp1Q0xcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS02eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS02eGxfX19DMFd2a1wiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTZ4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTZ4bF9fXzg0enAtXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTZ4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS02eGxfX19pdWVCRlwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNnhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS02eGxfX19VTlEtQlwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTd4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTd4bF9fX2hQY2xjXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tN3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tN3hsX19fNVJad1FcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tN3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTd4bF9fX0hJcDZCXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS03eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTd4bF9fX0ZpT0VJXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tOHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tOHhsX19fZ3Q0ZnVcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS04eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS04eGxfX19mUEVPRFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS04eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tOHhsX19fLXRUZlBcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOHhsX19fZFVYUmhcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS05eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS05eGxfX19rUk5BNlwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTl4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTl4bF9fX2piSGFCXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTl4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS05eGxfX19TRmdQbFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS05eGxfX19USmllSFwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTEweGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0xMHhsX19fLXV0T25cIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0xMHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTB4bF9fX2E1OXdUXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTEweGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tMTB4bF9fX0tjZXplXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMHhsX19fTm9tWXVcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS0xMXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tMTF4bF9fX1NZdGduXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTF4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTExeGxfX19QNjJ1NFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0xMXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTExeGxfX19nMG9vZVwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tMTF4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tMTF4bF9fX0VPV0wtXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL29mZnNldC9vZmZzZXQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0temVyb19fX2Fwck9yIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS16ZXJvX19fYkZOeTQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXplcm9fX181S2RNeCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS16ZXJvX19fRHJqMHUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNHhzX19fRmE4emUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTR4c19fX0pjN1p3IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS00eHNfX190N2pHeiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS00eHNfX18ybWNMWiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0zeHNfX19oSHhBSyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tM3hzX19fcVAzTHYge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTN4c19fX05tRDdpIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTN4c19fXzlZbHVlIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXh4c19fX1pBS3hvIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14eHNfX19rOUY0eCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teHhzX19fRUVmNEQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teHhzX19fLUo3NUsge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHNfX19pcnBuYSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teHNfX18zR1hvSCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teHNfX183V1lKSSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLThweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14c19fX3FZLWxPIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXNfX19OZFJLcSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXNfX19ZS2Y5ZSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXNfX19taXhwQSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tc19fX202amY1IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS1tX19fRVhrcWkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS1tX19fT3ZsWXIge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS1tX19fWFMtUEcge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLW1fX19vMHpaLSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tbF9fXzBiR2FQIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tbF9fX1MxLUxXIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tbF9fX2hTMWIzIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS1sX19fdlE0WXoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXhsX19fNk1mS1Yge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14bF9fX2RnYldXIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teGxfX18wYVdCNSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teGxfX195UHo4TyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHhsX19faXZKUmQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14eGxfX19adEU2WiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXh4bF9fXzRsSy1FIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14eGxfX19FTThyQiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tM3hsX19fQTlCa24ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0zeGxfX196QzgtYSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTN4bF9fX1dyTC1UIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0zeGxfX19uZVdhcCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNHhsX19fQldROWkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS00eGxfX184WDRrRSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTR4bF9fX0hjNDBUIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS00eGxfX19zUmpHUSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNXhsX19fNnVSWFkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS01eGxfX19uV2M2biB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTV4bF9fX1ZrV3pKIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS01eGxfX19jbmdLRSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNnhsX19fdHI3aEgge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00NHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS02eGxfX19DWVUxTSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTZ4bF9fXzBJdU1iIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS02eGxfX18tMXN3byB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tN3hsX19fTjctWGQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00OHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS03eGxfX18tcEFoeSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTd4bF9fX214VnJrIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS03eGxfX19uenVsUCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tOHhsX19fZU0tN1cge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS04eGxfX19lbnBFbSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTh4bF9fX2ppRlluIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS04eGxfX19GTnFOcyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tOXhsX19fLUNtaDkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01NnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS05eGxfX190d0UzdCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTl4bF9fXzc1bXViIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS05eGxfX19rQ1NzQyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tMTB4bF9fX2psYmhaIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tMTB4bF9fX3JleVRxIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tMTB4bF9fXzlwM2NuIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0xMHhsX19fdC12bzcge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDYwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTExeGxfX18wbnJaYSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTY0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTExeGxfX193Y2ZXZyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTExeGxfX19zSXRnNSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTY0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tMTF4bF9fX05VcC1uIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2NHB4KTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJvZmZzZXRfX3RvcC0temVyb1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXplcm9fX19hcHJPclwiLFwib2Zmc2V0X19ib3R0b20tLXplcm9cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS16ZXJvX19fYkZOeTRcIixcIm9mZnNldF9fbGVmdC0temVyb1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS16ZXJvX19fNUtkTXhcIixcIm9mZnNldF9fcmlnaHQtLXplcm9cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXplcm9fX19EcmowdVwiLFwib2Zmc2V0X190b3AtLTR4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTR4c19fX0ZhOHplXCIsXCJvZmZzZXRfX2JvdHRvbS0tNHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNHhzX19fSmM3WndcIixcIm9mZnNldF9fbGVmdC0tNHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTR4c19fX3Q3akd6XCIsXCJvZmZzZXRfX3JpZ2h0LS00eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTR4c19fXzJtY0xaXCIsXCJvZmZzZXRfX3RvcC0tM3hzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tM3hzX19faEh4QUtcIixcIm9mZnNldF9fYm90dG9tLS0zeHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0zeHNfX19xUDNMdlwiLFwib2Zmc2V0X19sZWZ0LS0zeHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tM3hzX19fTm1EN2lcIixcIm9mZnNldF9fcmlnaHQtLTN4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tM3hzX19fOVlsdWVcIixcIm9mZnNldF9fdG9wLS14eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14eHNfX19aQUt4b1wiLFwib2Zmc2V0X19ib3R0b20tLXh4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXh4c19fX2s5RjR4XCIsXCJvZmZzZXRfX2xlZnQtLXh4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14eHNfX19FRWY0RFwiLFwib2Zmc2V0X19yaWdodC0teHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14eHNfX18tSjc1S1wiLFwib2Zmc2V0X190b3AtLXhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHNfX19pcnBuYVwiLFwib2Zmc2V0X19ib3R0b20tLXhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teHNfX18zR1hvSFwiLFwib2Zmc2V0X19sZWZ0LS14c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14c19fXzdXWUpJXCIsXCJvZmZzZXRfX3JpZ2h0LS14c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teHNfX19xWS1sT1wiLFwib2Zmc2V0X190b3AtLXNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS1zX19fTmRSS3FcIixcIm9mZnNldF9fYm90dG9tLS1zXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tc19fX1lLZjllXCIsXCJvZmZzZXRfX2xlZnQtLXNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tc19fX21peHBBXCIsXCJvZmZzZXRfX3JpZ2h0LS1zXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS1zX19fbTZqZjVcIixcIm9mZnNldF9fdG9wLS1tXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tbV9fX0VYa3FpXCIsXCJvZmZzZXRfX2JvdHRvbS0tbVwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLW1fX19PdmxZclwiLFwib2Zmc2V0X19sZWZ0LS1tXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLW1fX19YUy1QR1wiLFwib2Zmc2V0X19yaWdodC0tbVwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tbV9fX28welotXCIsXCJvZmZzZXRfX3RvcC0tbFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLWxfX18wYkdhUFwiLFwib2Zmc2V0X19ib3R0b20tLWxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS1sX19fUzEtTFdcIixcIm9mZnNldF9fbGVmdC0tbFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS1sX19faFMxYjNcIixcIm9mZnNldF9fcmlnaHQtLWxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLWxfX192UTRZelwiLFwib2Zmc2V0X190b3AtLXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teGxfX182TWZLVlwiLFwib2Zmc2V0X19ib3R0b20tLXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teGxfX19kZ2JXV1wiLFwib2Zmc2V0X19sZWZ0LS14bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14bF9fXzBhV0I1XCIsXCJvZmZzZXRfX3JpZ2h0LS14bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teGxfX195UHo4T1wiLFwib2Zmc2V0X190b3AtLXh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXh4bF9fX2l2SlJkXCIsXCJvZmZzZXRfX2JvdHRvbS0teHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teHhsX19fWnRFNlpcIixcIm9mZnNldF9fbGVmdC0teHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXh4bF9fXzRsSy1FXCIsXCJvZmZzZXRfX3JpZ2h0LS14eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXh4bF9fX0VNOHJCXCIsXCJvZmZzZXRfX3RvcC0tM3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tM3hsX19fQTlCa25cIixcIm9mZnNldF9fYm90dG9tLS0zeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0zeGxfX196QzgtYVwiLFwib2Zmc2V0X19sZWZ0LS0zeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tM3hsX19fV3JMLVRcIixcIm9mZnNldF9fcmlnaHQtLTN4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tM3hsX19fbmVXYXBcIixcIm9mZnNldF9fdG9wLS00eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS00eGxfX19CV1E5aVwiLFwib2Zmc2V0X19ib3R0b20tLTR4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTR4bF9fXzhYNGtFXCIsXCJvZmZzZXRfX2xlZnQtLTR4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS00eGxfX19IYzQwVFwiLFwib2Zmc2V0X19yaWdodC0tNHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS00eGxfX19zUmpHUVwiLFwib2Zmc2V0X190b3AtLTV4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTV4bF9fXzZ1UlhZXCIsXCJvZmZzZXRfX2JvdHRvbS0tNXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNXhsX19fbldjNm5cIixcIm9mZnNldF9fbGVmdC0tNXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTV4bF9fX1ZrV3pKXCIsXCJvZmZzZXRfX3JpZ2h0LS01eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTV4bF9fX2NuZ0tFXCIsXCJvZmZzZXRfX3RvcC0tNnhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNnhsX19fdHI3aEhcIixcIm9mZnNldF9fYm90dG9tLS02eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS02eGxfX19DWVUxTVwiLFwib2Zmc2V0X19sZWZ0LS02eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNnhsX19fMEl1TWJcIixcIm9mZnNldF9fcmlnaHQtLTZ4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tNnhsX19fLTFzd29cIixcIm9mZnNldF9fdG9wLS03eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS03eGxfX19ONy1YZFwiLFwib2Zmc2V0X19ib3R0b20tLTd4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTd4bF9fXy1wQWh5XCIsXCJvZmZzZXRfX2xlZnQtLTd4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS03eGxfX19teFZya1wiLFwib2Zmc2V0X19yaWdodC0tN3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS03eGxfX19uenVsUFwiLFwib2Zmc2V0X190b3AtLTh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTh4bF9fX2VNLTdXXCIsXCJvZmZzZXRfX2JvdHRvbS0tOHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tOHhsX19fZW5wRW1cIixcIm9mZnNldF9fbGVmdC0tOHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTh4bF9fX2ppRlluXCIsXCJvZmZzZXRfX3JpZ2h0LS04eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTh4bF9fX0ZOcU5zXCIsXCJvZmZzZXRfX3RvcC0tOXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tOXhsX19fLUNtaDlcIixcIm9mZnNldF9fYm90dG9tLS05eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS05eGxfX190d0UzdFwiLFwib2Zmc2V0X19sZWZ0LS05eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tOXhsX19fNzVtdWJcIixcIm9mZnNldF9fcmlnaHQtLTl4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tOXhsX19fa0NTc0NcIixcIm9mZnNldF9fdG9wLS0xMHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tMTB4bF9fX2psYmhaXCIsXCJvZmZzZXRfX2JvdHRvbS0tMTB4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTEweGxfX19yZXlUcVwiLFwib2Zmc2V0X19sZWZ0LS0xMHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTEweGxfX185cDNjblwiLFwib2Zmc2V0X19yaWdodC0tMTB4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tMTB4bF9fX3Qtdm83XCIsXCJvZmZzZXRfX3RvcC0tMTF4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTExeGxfX18wbnJaYVwiLFwib2Zmc2V0X19ib3R0b20tLTExeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0xMXhsX19fd2NmV2dcIixcIm9mZnNldF9fbGVmdC0tMTF4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS0xMXhsX19fc0l0ZzVcIixcIm9mZnNldF9fcmlnaHQtLTExeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTExeGxfX19OVXAtblwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0taW5oZXJpdF9fXzBXUDByIHtcXG4gIG91dGxpbmUtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0td2hpdGVfX19VcS1nZCB7XFxuICBvdXRsaW5lLWNvbG9yOiB3aGl0ZTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS10cmFuc3BhcmVudF9fX1ROb012IHtcXG4gIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkxMDBfX19WTUY3WSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5ODBfX19LZDhmTSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk2MF9fX1pHak90IHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTQwX19fdWFGbkcge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MzBfX183UUJWViB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkyNV9fX3ItYmJKIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTIwX19faXd6ZUwge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MTBfX19oSnR0UyB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk3MF9fXzBPR2xVIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2pSd0huIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLXByaW1hcnlfX19QeGNteCB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1hY2NlbnRfX19qTWhJTiB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzX19feGpKTG4ge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tbm90aWNlX19fQ1JpWWIge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS13YXJuaW5nX19fMU9lN1cge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tY3JpdGljYWxfX195UXgtTCB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tc3VjY2Vzc1RpbnRfX19HSGFxLSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0td2FybmluZ1RpbnRfX19ZQW50dSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tY3JpdGljYWxUaW50X19fUTFtZGgge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1saW5rX19fdUlrM28ge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tY29kZV9fX3libndpIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXplcm9fX19Fa2Z6TiB7XFxuICBvdXRsaW5lLXdpZHRoOiAwcHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0teHhzX19fYkd5VHIge1xcbiAgb3V0bGluZS13aWR0aDogMXB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXhzX19fWlpSMkIge1xcbiAgb3V0bGluZS13aWR0aDogMnB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXNfX184ZERFeiB7XFxuICBvdXRsaW5lLXdpZHRoOiAzcHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0tbV9fX2cydUc1IHtcXG4gIG91dGxpbmUtd2lkdGg6IDRweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS1sX19fV2gwYkMge1xcbiAgb3V0bGluZS13aWR0aDogNnB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXhsX19fOGRPTWoge1xcbiAgb3V0bGluZS13aWR0aDogOHB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXh4bF9fX0JFc1VtIHtcXG4gIG91dGxpbmUtd2lkdGg6IDEwcHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0tM3hsX19fRXMwU1kge1xcbiAgb3V0bGluZS13aWR0aDogMTJweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS00eGxfX19ZZW92OCB7XFxuICBvdXRsaW5lLXdpZHRoOiAxNHB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTV4bF9fX05zVjhQIHtcXG4gIG91dGxpbmUtd2lkdGg6IDE2cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wib3V0bGluZVwiOlwib3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0RlwiLFwiZm9jdXNWaXNpYmxlXCI6XCJvdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEpcIixcImNvbG9yLS1pbmhlcml0XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX18wV1AwclwiLFwiY29sb3ItLXdoaXRlXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXdoaXRlX19fVXEtZ2RcIixcImNvbG9yLS10cmFuc3BhcmVudFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS10cmFuc3BhcmVudF9fX1ROb012XCIsXCJjb2xvci0tZ3JleTEwMFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fVk1GN1lcIixcImNvbG9yLS1ncmV5ODBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTgwX19fS2Q4Zk1cIixcImNvbG9yLS1ncmV5NjBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTYwX19fWkdqT3RcIixcImNvbG9yLS1ncmV5NDBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTQwX19fdWFGbkdcIixcImNvbG9yLS1ncmV5MzBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTMwX19fN1FCVlZcIixcImNvbG9yLS1ncmV5MjVcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTI1X19fci1iYkpcIixcImNvbG9yLS1ncmV5MjBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTIwX19faXd6ZUxcIixcImNvbG9yLS1ncmV5MTBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTEwX19faEp0dFNcIixcImNvbG9yLS1ncmV5NzBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTcwX19fME9HbFVcIixcImNvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX19qUndIblwiLFwiY29sb3ItLXByaW1hcnlcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tcHJpbWFyeV9fX1B4Y214XCIsXCJjb2xvci0tYWNjZW50XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWFjY2VudF9fX2pNaElOXCIsXCJjb2xvci0tc3VjY2Vzc1wiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzX19feGpKTG5cIixcImNvbG9yLS1ub3RpY2VcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tbm90aWNlX19fQ1JpWWJcIixcImNvbG9yLS13YXJuaW5nXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdfX18xT2U3V1wiLFwiY29sb3ItLWNyaXRpY2FsXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19feVF4LUxcIixcImNvbG9yLS1zdWNjZXNzVGludFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzVGludF9fX0dIYXEtXCIsXCJjb2xvci0td2FybmluZ1RpbnRcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0td2FybmluZ1RpbnRfX19ZQW50dVwiLFwiY29sb3ItLWNyaXRpY2FsVGludFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19RMW1kaFwiLFwiY29sb3ItLWxpbmtcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tbGlua19fX3VJazNvXCIsXCJjb2xvci0tY29kZVwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1jb2RlX19feWJud2lcIixcIndpZHRoLS16ZXJvXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXplcm9fX19Fa2Z6TlwiLFwid2lkdGgtLXh4c1wiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS14eHNfX19iR3lUclwiLFwid2lkdGgtLXhzXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXhzX19fWlpSMkJcIixcIndpZHRoLS1zXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXNfX184ZERFelwiLFwid2lkdGgtLW1cIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0tbV9fX2cydUc1XCIsXCJ3aWR0aC0tbFwiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS1sX19fV2gwYkNcIixcIndpZHRoLS14bFwiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS14bF9fXzhkT01qXCIsXCJ3aWR0aC0teHhsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXh4bF9fX0JFc1VtXCIsXCJ3aWR0aC0tM3hsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTN4bF9fX0VzMFNZXCIsXCJ3aWR0aC0tNHhsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTR4bF9fX1llb3Y4XCIsXCJ3aWR0aC0tNXhsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTV4bF9fX05zVjhQXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvdy0taGlkZS1zY3JvbGxiYXJfX193YzZqUCB7XFxuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS1oaWRkZW5fX19VQklYUSB7XFxuICBvdmVyZmxvdy15OiBoaWRkZW47XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS12aXNpYmxlX19fc2ZPYlUge1xcbiAgb3ZlcmZsb3cteTogdmlzaWJsZTtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLXNjcm9sbF9fX3lrWjIxIHtcXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLWF1dG9fX18xT05ISyB7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0taGlkZGVuX19fTEszVWgge1xcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0tdmlzaWJsZV9fX3UtLTZGIHtcXG4gIG92ZXJmbG93LXg6IHZpc2libGU7XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS1zY3JvbGxfX19haUlINiB7XFxuICBvdmVyZmxvdy14OiBzY3JvbGw7XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS1hdXRvX19fUzZvVkwge1xcbiAgb3ZlcmZsb3cteDogYXV0bztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJvdmVyZmxvdy0taGlkZS1zY3JvbGxiYXJcIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3ctLWhpZGUtc2Nyb2xsYmFyX19fd2M2alBcIixcIm92ZXJmbG93X195LS1oaWRkZW5cIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLWhpZGRlbl9fX1VCSVhRXCIsXCJvdmVyZmxvd19feS0tdmlzaWJsZVwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0tdmlzaWJsZV9fX3NmT2JVXCIsXCJvdmVyZmxvd19feS0tc2Nyb2xsXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS1zY3JvbGxfX195a1oyMVwiLFwib3ZlcmZsb3dfX3ktLWF1dG9cIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLWF1dG9fX18xT05IS1wiLFwib3ZlcmZsb3dfX3gtLWhpZGRlblwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0taGlkZGVuX19fTEszVWhcIixcIm92ZXJmbG93X194LS12aXNpYmxlXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS12aXNpYmxlX19fdS0tNkZcIixcIm92ZXJmbG93X194LS1zY3JvbGxcIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3gtLXNjcm9sbF9fX2FpSUg2XCIsXCJvdmVyZmxvd19feC0tYXV0b1wiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0tYXV0b19fX1M2b1ZMXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3BvcG92ZXIvcG9wb3Zlci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLnBvcG92ZXItbW9kdWxlX19wb3BvdmVyX19vdmVybGF5X19fVGNLdi0ge1xcbiAgaW5zZXQ6IDA7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIHotaW5kZXg6IDk5OTtcXG59XFxuLnBvcG92ZXItbW9kdWxlX19wb3BvdmVyX19jb250ZW50X19fVUNVWjYge1xcbiAgei1pbmRleDogMTAwMDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJwb3BvdmVyX19vdmVybGF5XCI6XCJwb3BvdmVyLW1vZHVsZV9fcG9wb3Zlcl9fb3ZlcmxheV9fX1RjS3YtXCIsXCJwb3BvdmVyX19jb250ZW50XCI6XCJwb3BvdmVyLW1vZHVsZV9fcG9wb3Zlcl9fY29udGVudF9fX1VDVVo2XCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLnRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1jZW50ZXJfX19iRHJSMiB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi50ZXh0LWFsaWduLW1vZHVsZV9fdGV4dC1hbGlnbi0tcmlnaHRfX19KVlJNUCB7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuLnRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1sZWZ0X19fTExMazYge1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0ZXh0LWFsaWduLS1jZW50ZXJcIjpcInRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1jZW50ZXJfX19iRHJSMlwiLFwidGV4dC1hbGlnbi0tcmlnaHRcIjpcInRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1yaWdodF9fX0pWUk1QXCIsXCJ0ZXh0LWFsaWduLS1sZWZ0XCI6XCJ0ZXh0LWFsaWduLW1vZHVsZV9fdGV4dC1hbGlnbi0tbGVmdF9fX0xMTGs2XCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RpbnQvdGludC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLnRpbnQtbW9kdWxlX190aW50X19fZ0N6RzcsIC50aW50LW1vZHVsZV9fdGludF9fX2dDekc3ICoge1xcbiAgZmlsbDogdmFyKC0tZWxlbWVudC10aW50KTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0aW50XCI6XCJ0aW50LW1vZHVsZV9fdGludF9fX2dDekc3XCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RyYW5zaXRpb24vdHJhbnNpdGlvbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLnRyYW5zaXRpb24tbW9kdWxlX190cmFuc2l0aW9uX19fU3d3T0Uge1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1widHJhbnNpdGlvblwiOlwidHJhbnNpdGlvbi1tb2R1bGVfX3RyYW5zaXRpb25fX19Td3dPRVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLm1vZHVsZS5zY3NzXCIsIGNzczogXCIudmlzdWFsbHktaGlkZGVuLW1vZHVsZV9fdmlzdWFsbHktaGlkZGVuX19fRFB1bE0ge1xcbiAgb3BhY2l0eTogMDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ2aXN1YWxseS1oaWRkZW5cIjpcInZpc3VhbGx5LWhpZGRlbi1tb2R1bGVfX3Zpc3VhbGx5LWhpZGRlbl9fX0RQdWxNXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzXCIsIGNzczogXCIud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLWZ1bGxfX19ub0lrVCB7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tY29udGVudF9fX3lrc1VyIHtcXG4gIG1heC13aWR0aDogOTAwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0temVyb19fXzhOVUYxIHtcXG4gIG1heC13aWR0aDogMHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTR4c19fX2dIbExJIHtcXG4gIG1heC13aWR0aDogMXB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTN4c19fX3Jkb1A4IHtcXG4gIG1heC13aWR0aDogMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXh4c19fX2pscDh2IHtcXG4gIG1heC13aWR0aDogNHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXhzX19fa1FzV3gge1xcbiAgbWF4LXdpZHRoOiA4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tc19fX01nR2F6IHtcXG4gIG1heC13aWR0aDogMTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1tX19fYUZ6U2Mge1xcbiAgbWF4LXdpZHRoOiAxNnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLWxfX19pS2xhSCB7XFxuICBtYXgtd2lkdGg6IDIwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0teGxfX180elVkQyB7XFxuICBtYXgtd2lkdGg6IDI0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0teHhsX19fNTh6M1Age1xcbiAgbWF4LXdpZHRoOiAyOHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTN4bF9fXzJZWG5IIHtcXG4gIG1heC13aWR0aDogMzJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS00eGxfX19qRko5ViB7XFxuICBtYXgtd2lkdGg6IDM2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNXhsX19fNy1WUUcge1xcbiAgbWF4LXdpZHRoOiA0MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTZ4bF9fX1BTMzdKIHtcXG4gIG1heC13aWR0aDogNDRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS03eGxfX19zU0J3ayB7XFxuICBtYXgtd2lkdGg6IDQ4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tOHhsX19fVjNJSHkge1xcbiAgbWF4LXdpZHRoOiA1MnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTl4bF9fXzRWV0VNIHtcXG4gIG1heC13aWR0aDogNTZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0xMHhsX19fejk3VFEge1xcbiAgbWF4LXdpZHRoOiA2MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTExeGxfX19qeGVuWCB7XFxuICBtYXgtd2lkdGg6IDY0cHg7XFxufVxcblxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aF9fX3FubFlDIHtcXG4gIC8qIEFzIHdpZGUgYXMgdGhlIGNvbnRlbnQgd2FudHMgdG8gYmUsIHNvIGl0IG5ldmVyIGhhcyB0byB3cmFwIHRvIGZpdCBpdHMgc3Vycm91bmRpbmdzLiAqL1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLWZpdF9fXzJXLVREIHtcXG4gIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0temVyb19fXzk0MjlTIHtcXG4gIG1pbi13aWR0aDogMHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTR4c19fXzNUR00tIHtcXG4gIG1pbi13aWR0aDogMXB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTN4c19fX1I2ajMyIHtcXG4gIG1pbi13aWR0aDogMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXh4c19fX3ZqS2RDIHtcXG4gIG1pbi13aWR0aDogNHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXhzX19fVi1MMXMge1xcbiAgbWluLXdpZHRoOiA4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tc19fX2RJZlptIHtcXG4gIG1pbi13aWR0aDogMTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1tX19fSkg1SVAge1xcbiAgbWluLXdpZHRoOiAxNnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLWxfX19HZ2tFOCB7XFxuICBtaW4td2lkdGg6IDIwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teGxfX19hR0x1aSB7XFxuICBtaW4td2lkdGg6IDI0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHhsX19felFPdFQge1xcbiAgbWluLXdpZHRoOiAyOHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTN4bF9fX0pldkRaIHtcXG4gIG1pbi13aWR0aDogMzJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS00eGxfX18xZTZOMSB7XFxuICBtaW4td2lkdGg6IDM2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNXhsX19fS3VtdG8ge1xcbiAgbWluLXdpZHRoOiA0MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTZ4bF9fX1lFa204IHtcXG4gIG1pbi13aWR0aDogNDRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS03eGxfX192WDFGWSB7XFxuICBtaW4td2lkdGg6IDQ4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tOHhsX19fVmJRaGsge1xcbiAgbWluLXdpZHRoOiA1MnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTl4bF9fX2VVS1FpIHtcXG4gIG1pbi13aWR0aDogNTZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS0xMHhsX19fWm9OM04ge1xcbiAgbWluLXdpZHRoOiA2MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTExeGxfX19CTkZqQSB7XFxuICBtaW4td2lkdGg6IDY0cHg7XFxufVxcblxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS1mdWxsX19fMW1waXoge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS1zdHJldGNoX19fUnF3MDAge1xcbiAgd2lkdGg6IHN0cmV0Y2g7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS16ZXJvX19fSU5kVnYge1xcbiAgd2lkdGg6IDBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTR4c19fX2RSVWhXIHtcXG4gIHdpZHRoOiAxcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS0zeHNfX19vUkoweiB7XFxuICB3aWR0aDogMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0teHhzX19fSHlsOVIge1xcbiAgd2lkdGg6IDRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXhzX19fRzNqUXoge1xcbiAgd2lkdGg6IDhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXNfX18tbXpxbSB7XFxuICB3aWR0aDogMTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLW1fX19tRVo3NyB7XFxuICB3aWR0aDogMTZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLWxfX19xeUlONyB7XFxuICB3aWR0aDogMjBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXhsX19fbU8yNUkge1xcbiAgd2lkdGg6IDI0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS14eGxfX19FR1FNcCB7XFxuICB3aWR0aDogMjhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTN4bF9fX0h1bDctIHtcXG4gIHdpZHRoOiAzMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tNHhsX19fek9QYlMge1xcbiAgd2lkdGg6IDM2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS01eGxfX194YnFuaSB7XFxuICB3aWR0aDogNDBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTZ4bF9fX05tYmY5IHtcXG4gIHdpZHRoOiA0NHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tN3hsX19fQjBudncge1xcbiAgd2lkdGg6IDQ4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS04eGxfX19XMUhEUCB7XFxuICB3aWR0aDogNTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTl4bF9fX0tKTDhVIHtcXG4gIHdpZHRoOiA1NnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tMTB4bF9fXzk0ejE5IHtcXG4gIHdpZHRoOiA2MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tMTF4bF9fX2pCLUxuIHtcXG4gIHdpZHRoOiA2NHB4O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm1heC13aWR0aC0tZnVsbFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLWZ1bGxfX19ub0lrVFwiLFwibWF4LXdpZHRoLS1jb250ZW50XCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tY29udGVudF9fX3lrc1VyXCIsXCJtYXgtd2lkdGgtLXplcm9cIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS16ZXJvX19fOE5VRjFcIixcIm1heC13aWR0aC0tNHhzXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNHhzX19fZ0hsTElcIixcIm1heC13aWR0aC0tM3hzXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tM3hzX19fcmRvUDhcIixcIm1heC13aWR0aC0teHhzXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0teHhzX19famxwOHZcIixcIm1heC13aWR0aC0teHNcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14c19fX2tRc1d4XCIsXCJtYXgtd2lkdGgtLXNcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1zX19fTWdHYXpcIixcIm1heC13aWR0aC0tbVwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLW1fX19hRnpTY1wiLFwibWF4LXdpZHRoLS1sXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tbF9fX2lLbGFIXCIsXCJtYXgtd2lkdGgtLXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0teGxfX180elVkQ1wiLFwibWF4LXdpZHRoLS14eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14eGxfX181OHozUFwiLFwibWF4LXdpZHRoLS0zeGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0zeGxfX18yWVhuSFwiLFwibWF4LXdpZHRoLS00eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS00eGxfX19qRko5VlwiLFwibWF4LXdpZHRoLS01eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS01eGxfX183LVZRR1wiLFwibWF4LXdpZHRoLS02eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS02eGxfX19QUzM3SlwiLFwibWF4LXdpZHRoLS03eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS03eGxfX19zU0J3a1wiLFwibWF4LXdpZHRoLS04eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS04eGxfX19WM0lIeVwiLFwibWF4LXdpZHRoLS05eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS05eGxfX180VldFTVwiLFwibWF4LXdpZHRoLS0xMHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tMTB4bF9fX3o5N1RRXCIsXCJtYXgtd2lkdGgtLTExeGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0xMXhsX19fanhlblhcIixcIm1pbi13aWR0aFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGhfX19xbmxZQ1wiLFwibWluLXdpZHRoLS1maXRcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1maXRfX18yVy1URFwiLFwibWluLXdpZHRoLS16ZXJvXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0temVyb19fXzk0MjlTXCIsXCJtaW4td2lkdGgtLTR4c1wiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTR4c19fXzNUR00tXCIsXCJtaW4td2lkdGgtLTN4c1wiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTN4c19fX1I2ajMyXCIsXCJtaW4td2lkdGgtLXh4c1wiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXh4c19fX3ZqS2RDXCIsXCJtaW4td2lkdGgtLXhzXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHNfX19WLUwxc1wiLFwibWluLXdpZHRoLS1zXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tc19fX2RJZlptXCIsXCJtaW4td2lkdGgtLW1cIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1tX19fSkg1SVBcIixcIm1pbi13aWR0aC0tbFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLWxfX19HZ2tFOFwiLFwibWluLXdpZHRoLS14bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXhsX19fYUdMdWlcIixcIm1pbi13aWR0aC0teHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHhsX19felFPdFRcIixcIm1pbi13aWR0aC0tM3hsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tM3hsX19fSmV2RFpcIixcIm1pbi13aWR0aC0tNHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNHhsX19fMWU2TjFcIixcIm1pbi13aWR0aC0tNXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNXhsX19fS3VtdG9cIixcIm1pbi13aWR0aC0tNnhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNnhsX19fWUVrbThcIixcIm1pbi13aWR0aC0tN3hsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tN3hsX19fdlgxRllcIixcIm1pbi13aWR0aC0tOHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tOHhsX19fVmJRaGtcIixcIm1pbi13aWR0aC0tOXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tOXhsX19fZVVLUWlcIixcIm1pbi13aWR0aC0tMTB4bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTEweGxfX19ab04zTlwiLFwibWluLXdpZHRoLS0xMXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tMTF4bF9fX0JORmpBXCIsXCJ3aWR0aC0tZnVsbFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tZnVsbF9fXzFtcGl6XCIsXCJ3aWR0aC0tc3RyZXRjaFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tc3RyZXRjaF9fX1JxdzAwXCIsXCJ3aWR0aC0temVyb1wiOlwid2lkdGgtbW9kdWxlX193aWR0aC0temVyb19fX0lOZFZ2XCIsXCJ3aWR0aC0tNHhzXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS00eHNfX19kUlVoV1wiLFwid2lkdGgtLTN4c1wiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tM3hzX19fb1JKMHpcIixcIndpZHRoLS14eHNcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLXh4c19fX0h5bDlSXCIsXCJ3aWR0aC0teHNcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLXhzX19fRzNqUXpcIixcIndpZHRoLS1zXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS1zX19fLW16cW1cIixcIndpZHRoLS1tXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS1tX19fbUVaNzdcIixcIndpZHRoLS1sXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS1sX19fcXlJTjdcIixcIndpZHRoLS14bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0teGxfX19tTzI1SVwiLFwid2lkdGgtLXh4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0teHhsX19fRUdRTXBcIixcIndpZHRoLS0zeGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTN4bF9fX0h1bDctXCIsXCJ3aWR0aC0tNHhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS00eGxfX196T1BiU1wiLFwid2lkdGgtLTV4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tNXhsX19feGJxbmlcIixcIndpZHRoLS02eGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTZ4bF9fX05tYmY5XCIsXCJ3aWR0aC0tN3hsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS03eGxfX19CMG52d1wiLFwid2lkdGgtLTh4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tOHhsX19fVzFIRFBcIixcIndpZHRoLS05eGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTl4bF9fX0tKTDhVXCIsXCJ3aWR0aC0tMTB4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tMTB4bF9fXzk0ejE5XCIsXCJ3aWR0aC0tMTF4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tMTF4bF9fX2pCLUxuXCJ9OyIsICJpbXBvcnQgKiBhcyBtb2R1bGUwIGZyb20gJy4vcGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZS5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMSBmcm9tICcuL3BsdWdpbnMvYW5jaG9yL2FuY2hvci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMiBmcm9tICcuL3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzIGZyb20gJy4vcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlNCBmcm9tICcuL3BsdWdpbnMvYm9yZGVyL2JvcmRlci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlNSBmcm9tICcuL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU2IGZyb20gJy4vcGx1Z2lucy9jb2xvci9jb2xvci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlNyBmcm9tICcuL3BsdWdpbnMvY3Vyc29yL2N1cnNvci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlOCBmcm9tICcuL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU5IGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9kcmFnZ2FibGUubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTEwIGZyb20gJy4vcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTExIGZyb20gJy4vcGx1Z2lucy9mYWRlZC9mYWRlZC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTIgZnJvbSAnLi9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTMgZnJvbSAnLi9wbHVnaW5zL2ZsZXgvZmxleC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTQgZnJvbSAnLi9wbHVnaW5zL2ZvbnQvZm9udC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTUgZnJvbSAnLi9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxNiBmcm9tICcuL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZS5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTcgZnJvbSAnLi9wbHVnaW5zL2dyaWQvZ3JpZC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTggZnJvbSAnLi9wbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTE5IGZyb20gJy4vcGx1Z2lucy9oaWRkZW4vaGlkZGVuLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyMCBmcm9tICcuL3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTIxIGZyb20gJy4vcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyMiBmcm9tICcuL3BsdWdpbnMvbWFyZ2luL21hcmdpbi5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjMgZnJvbSAnLi9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyNCBmcm9tICcuL3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlbi5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjUgZnJvbSAnLi9wbHVnaW5zL29mZnNldC9vZmZzZXQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTI2IGZyb20gJy4vcGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTI3IGZyb20gJy4vcGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvdy5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjggZnJvbSAnLi9wbHVnaW5zL3BhZGRpbmcvcGFkZGluZy5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjkgZnJvbSAnLi9wbHVnaW5zL3BvcG92ZXIvcG9wb3Zlci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMzAgZnJvbSAnLi9wbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzMSBmcm9tICcuL3BsdWdpbnMvdGV4dC1hbGlnbi90ZXh0LWFsaWduLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzMiBmcm9tICcuL3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzMyBmcm9tICcuL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzNCBmcm9tICcuL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzNSBmcm9tICcuL3BsdWdpbnMvdmlzdWFsbHktaGlkZGVuL3Zpc3VhbGx5LWhpZGRlbi5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMzYgZnJvbSAnLi9wbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyLG1vZHVsZTMsbW9kdWxlNCxtb2R1bGU1LG1vZHVsZTYsbW9kdWxlNyxtb2R1bGU4LG1vZHVsZTksbW9kdWxlMTAsbW9kdWxlMTEsbW9kdWxlMTIsbW9kdWxlMTMsbW9kdWxlMTQsbW9kdWxlMTUsbW9kdWxlMTYsbW9kdWxlMTcsbW9kdWxlMTgsbW9kdWxlMTksbW9kdWxlMjAsbW9kdWxlMjEsbW9kdWxlMjIsbW9kdWxlMjMsbW9kdWxlMjQsbW9kdWxlMjUsbW9kdWxlMjYsbW9kdWxlMjcsbW9kdWxlMjgsbW9kdWxlMjksbW9kdWxlMzAsbW9kdWxlMzEsbW9kdWxlMzIsbW9kdWxlMzMsbW9kdWxlMzQsbW9kdWxlMzUsbW9kdWxlMzZdO1xuXG5leHBvcnQgZGVmYXVsdCBtb2R1bGVzO1xuZXhwb3J0IGNvbnN0IGZpbGVuYW1lcyA9IFsncGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZS5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvYW5jaG9yL2FuY2hvci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yLm1vZHVsZS5zY3NzJywncGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvYm9yZGVyL2JvcmRlci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9jb2xvci9jb2xvci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvY3Vyc29yL2N1cnNvci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzJywncGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9kcmFnZ2FibGUubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2VuYWJsZWQvZW5hYmxlZC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZmFkZWQvZmFkZWQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZmxleC9mbGV4Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9mb250L2ZvbnQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzJywncGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2hpZGRlbi9oaWRkZW4ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzJywncGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzJywncGx1Z2lucy9tYXJnaW4vbWFyZ2luLm1vZHVsZS5zY3NzJywncGx1Z2lucy9uby1wb2ludGVyLWV2ZW50cy9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlbi5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvb2Zmc2V0L29mZnNldC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvb3V0bGluZS9vdXRsaW5lLm1vZHVsZS5zY3NzJywncGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvdy5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nLm1vZHVsZS5zY3NzJywncGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlLm1vZHVsZS5zY3NzJywncGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ24ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3RpbnQvdGludC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS5zY3NzJywncGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzJ11cbiIsICJpbXBvcnQgdHlwZSB7IFR1cGxlIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuLyogYzggaWdub3JlIHN0YXJ0ICovXG5leHBvcnQgdHlwZSBUU2hpcnRTaXplID1cbiAgfCBcInplcm9cIlxuICB8IGAke1JhbmdlPDMsIDQ+fXhzYFxuICB8IFwieHhzXCJcbiAgfCBcInhzXCJcbiAgfCBcInNcIlxuICB8IFwibVwiXG4gIHwgXCJsXCJcbiAgfCBcInhsXCJcbiAgfCBcInh4bFwiXG4gIHwgYCR7UmFuZ2U8MywgMTE+fXhsYDtcblxuZXhwb3J0IHR5cGUgUmFuZ2U8U3RhcnQgZXh0ZW5kcyBudW1iZXIsIEVuZCBleHRlbmRzIG51bWJlcj4gPSBSYW5nZUltcGw8U3RhcnQsIEVuZD47XG50eXBlIFJhbmdlSW1wbDxcbiAgU3RhcnQgZXh0ZW5kcyBudW1iZXIsXG4gIEVuZCBleHRlbmRzIG51bWJlcixcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0NvbmZ1c2luZ1ZvaWRUeXBlOiByZXF1aXJlZCBmb3IgdGhlIGJ1aWxkIHRvIHBhc3NcbiAgVCBleHRlbmRzIHZvaWRbXSA9IFR1cGxlPHZvaWQsIFN0YXJ0Pixcbj4gPSBFbmQgZXh0ZW5kcyBUW1wibGVuZ3RoXCJdID8gRW5kIDogVFtcImxlbmd0aFwiXSB8IFJhbmdlSW1wbDxTdGFydCwgRW5kLCBbdW5kZWZpbmVkLCAuLi5UXT47XG5cbi8qIGM4IGlnbm9yZSBlbmQgKi9cblxuLyoqIFRoZSBiYXNlIHVuaXQgKGluIHBpeGVscykgdGhlIHQtc2hpcnQgc2NhbGUgaXMgYnVpbHQgb24uIE1pcnJvcnMgYCR1bml0YCBpbiBgc2l6ZXMuc2Nzc2AuICovXG5leHBvcnQgY29uc3Qgc2l6ZVVuaXRJblBpeGVscyA9IDQ7XG5cbi8vIE11bHRpcGxpZXIgcGVyIHNpemUsIG1pcnJvcmluZyB0aGUgYCRzaXplc2AgbWFwIGluIGBzaXplcy5zY3NzYC4gS2VlcCB0aGUgdHdvIGluIHN5bmMuXG5jb25zdCBzaXplTXVsdGlwbGllcnM6IFJlY29yZDxUU2hpcnRTaXplLCBudW1iZXI+ID0ge1xuICB6ZXJvOiAwLFxuICBcIjR4c1wiOiAxIC8gNCxcbiAgXCIzeHNcIjogMSAvIDIsXG4gIHh4czogMSxcbiAgeHM6IDIsXG4gIHM6IDMsXG4gIG06IDQsXG4gIGw6IDUsXG4gIHhsOiA2LFxuICB4eGw6IDcsXG4gIFwiM3hsXCI6IDgsXG4gIFwiNHhsXCI6IDksXG4gIFwiNXhsXCI6IDEwLFxuICBcIjZ4bFwiOiAxMSxcbiAgXCI3eGxcIjogMTIsXG4gIFwiOHhsXCI6IDEzLFxuICBcIjl4bFwiOiAxNCxcbiAgXCIxMHhsXCI6IDE1LFxuICBcIjExeGxcIjogMTYsXG59O1xuXG4vKipcbiAqIFRoZSBwaXhlbCBsZW5ndGggb2YgYSB0LXNoaXJ0IHNpemUgXHUyMDE0IHRoZSBzYW1lIHZhbHVlIHRoZSBgJHNpemVgL2Akd2lkdGhgL2AkaGVpZ2h0YFxuICogY2xhc3NlcyByZXNvbHZlIHRvIGluIENTUy4gVXNlIHdoZW4gYSBsZW5ndGggaXMgbmVlZGVkIHJhdGhlciB0aGFuIGEgc2l6aW5nIGNsYXNzLFxuICogZS5nLiB0byBkcml2ZSBhbiBpY29uIGZvbnQncyBgZm9udC1zaXplYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHRTaGlydFNpemVJblBpeGVscyA9IChzaXplOiBUU2hpcnRTaXplKTogbnVtYmVyID0+IHNpemVVbml0SW5QaXhlbHMgKiBzaXplTXVsdGlwbGllcnNbc2l6ZV07XG4iLCAiLyogYzggaWdub3JlIHN0YXJ0ICovXG5pbXBvcnQgeyBnZXRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBmbGV4UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9mbGV4L2ZsZXhcIjtcbmltcG9ydCB7IGdyaWRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2dyaWQvZ3JpZFwiO1xuaW1wb3J0IHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IHdpZHRoUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy93aWR0aC93aWR0aFwiO1xuaW1wb3J0IHsgcGFkZGluZ1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5pbXBvcnQgeyBzdHlsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvc3R5bGUvc3R5bGVcIjtcbmltcG9ydCB7IGhlaWdodFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaGVpZ2h0L2hlaWdodFwiO1xuaW1wb3J0IHsgYm9yZGVyUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ib3JkZXIvYm9yZGVyXCI7XG5pbXBvcnQgeyBmb250UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9mb250L2ZvbnRcIjtcbmltcG9ydCB7IGNvbG9yUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9jb2xvci9jb2xvclwiO1xuaW1wb3J0IHsgYmFja2dyb3VuZENvbG9yUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3JcIjtcbmltcG9ydCB7IGdyYWRpZW50UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ncmFkaWVudC9ncmFkaWVudFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBkcmFnZ2FibGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZVwiO1xuaW1wb3J0IHsgZHJvcHBhYmxlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9kcm9wcGFibGVcIjtcbmltcG9ydCB7IG9ic2VydmVyIH0gZnJvbSBcIm1vYngtcmVhY3RcIjtcbmltcG9ydCB7IHRvb2x0aXBQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3Rvb2x0aXAvdG9vbHRpcFwiO1xuaW1wb3J0IHsgdHJhbnNpdGlvblBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uXCI7XG5pbXBvcnQgeyBvZmZzZXRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL29mZnNldC9vZmZzZXRcIjtcbmltcG9ydCB7IG9mZnNldENoaWxkcmVuUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuXCI7XG5pbXBvcnQgeyBoaWRkZW5QbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2hpZGRlbi9oaWRkZW5cIjtcbmltcG9ydCB7IG5vUG9pbnRlckV2ZW50c1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvbm8tcG9pbnRlci1ldmVudHMvbm8tcG9pbnRlci1ldmVudHNcIjtcbmltcG9ydCB7IG1hcmdpblBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvbWFyZ2luL21hcmdpblwiO1xuaW1wb3J0IHsgcmVsYXRpdmVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlXCI7XG5pbXBvcnQgeyBhYnNvbHV0ZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYWJzb2x1dGUvYWJzb2x1dGVcIjtcbmltcG9ydCB7IHZpc3VhbGx5SGlkZGVuUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuXCI7XG5pbXBvcnQgeyBob3ZlcmFibGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmFibGVcIjtcbmltcG9ydCB7IGhvdmVyYWJsZUJ5RHJhZ2dpbmdQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmFibGUtYnktZHJhZ2dpbmdcIjtcbmltcG9ydCB7IGJveFNoYWRvd1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93XCI7XG5pbXBvcnQgeyBvdmVyZmxvd1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvb3ZlcmZsb3cvb3ZlcmZsb3dcIjtcbmltcG9ydCB7IGZsZXhDaGlsZFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkXCI7XG5pbXBvcnQgeyBncmF5c2NhbGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2dyYXlzY2FsZS9ncmF5c2NhbGVcIjtcbmltcG9ydCB7IHRpbnRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3RpbnQvdGludFwiO1xuaW1wb3J0IHsgZmFkZWRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2ZhZGVkL2ZhZGVkXCI7XG5pbXBvcnQgeyBlbmFibGVkUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9lbmFibGVkL2VuYWJsZWRcIjtcbmltcG9ydCB7IGZvY3VzYWJsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZm9jdXNhYmxlL2ZvY3VzYWJsZVwiO1xuaW1wb3J0IHsgYXJlYVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYXJlYS9hcmVhXCI7XG5pbXBvcnQgeyBhcmVhQ29udGVudFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYXJlYS1jb250ZW50L2FyZWEtY29udGVudFwiO1xuaW1wb3J0IHsgc2l6ZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvc2l6ZS9zaXplXCI7XG5pbXBvcnQgeyBjdXJzb3JQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2N1cnNvci9jdXJzb3JcIjtcbmltcG9ydCB7IGNsaWNrYWJsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvY2xpY2thYmxlL2NsaWNrYWJsZVwiO1xuaW1wb3J0IHsgcmVmUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9yZWYvcmVmXCI7XG5pbXBvcnQgeyBkaXNwbGF5Q29udGVudHNQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50c1wiO1xuaW1wb3J0IHsgdGV4dEFsaWduUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ25cIjtcbmltcG9ydCB7IGJsb2NrUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ibG9jay9ibG9ja1wiO1xuaW1wb3J0IHsgb3V0bGluZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvb3V0bGluZS9vdXRsaW5lXCI7XG5pbXBvcnQgeyBpbnRlcmFjdGl2ZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVcIjtcbmltcG9ydCB7IHBvcG92ZXJQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3BvcG92ZXIvcG9wb3ZlclwiO1xuaW1wb3J0IHsgZmxvYXRpbmdQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2Zsb2F0aW5nL2Zsb2F0aW5nXCI7XG5pbXBvcnQgeyBpbnZpc2libGVCYWNrZHJvcFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaW52aXNpYmxlLWJhY2tkcm9wL2ludmlzaWJsZS1iYWNrZHJvcFwiO1xuaW1wb3J0IHsgb25PdXRzaWRlQ2xpY2tQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL29uLW91dHNpZGUtY2xpY2svb24tb3V0c2lkZS1jbGlja1wiO1xuaW1wb3J0IHsgZHJvcERvd25NZW51UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudVwiO1xuaW1wb3J0IHsgYW5jaG9yUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9hbmNob3IvYW5jaG9yXCI7XG5cbmV4cG9ydCBjb25zdCBzaGFyZWRQbHVnaW5zID0gW1xuICAvLyBDb250cmlidXRlcyBwcm9wcyBvZiBpdHMgb3duLCBzbyBpdCBoYXMgdG8gcnVuIGJlZm9yZSB0aGUgcGx1Z2lucyB0aGF0IHJlc29sdmUgdGhlbS5cbiAgYW5jaG9yUGx1Z2luLFxuICBzaXplUGx1Z2luLFxuICBkcmFnZ2FibGVQbHVnaW4sXG4gIHRleHRBbGlnblBsdWdpbixcbiAgZHJvcHBhYmxlUGx1Z2luLFxuICBhcmVhUGx1Z2luLFxuICBhcmVhQ29udGVudFBsdWdpbixcbiAgZmxleFBsdWdpbixcbiAgZ3JpZFBsdWdpbixcbiAgd2lkdGhQbHVnaW4sXG4gIGhlaWdodFBsdWdpbixcbiAgZmxleENoaWxkUGx1Z2luLFxuICBvdmVyZmxvd1BsdWdpbixcbiAgcGFkZGluZ1BsdWdpbixcbiAgbWFyZ2luUGx1Z2luLFxuICBibG9ja1BsdWdpbixcbiAgYm94U2hhZG93UGx1Z2luLFxuICBib3JkZXJQbHVnaW4sXG4gIG91dGxpbmVQbHVnaW4sXG4gIGludGVyYWN0aXZlUGx1Z2luLFxuICBmb250UGx1Z2luLFxuICBjb2xvclBsdWdpbixcbiAgYmFja2dyb3VuZENvbG9yUGx1Z2luLFxuICBncmFkaWVudFBsdWdpbixcbiAgZ3JheXNjYWxlUGx1Z2luLFxuICB0aW50UGx1Z2luLFxuICBmYWRlZFBsdWdpbixcbiAgc3R5bGVQbHVnaW4sXG4gIHRyYW5zaXRpb25QbHVnaW4sXG4gIG9mZnNldFBsdWdpbixcbiAgb2Zmc2V0Q2hpbGRyZW5QbHVnaW4sXG4gIGhpZGRlblBsdWdpbixcbiAgbm9Qb2ludGVyRXZlbnRzUGx1Z2luLFxuICBpbnZpc2libGVCYWNrZHJvcFBsdWdpbixcbiAgdmlzdWFsbHlIaWRkZW5QbHVnaW4sXG4gIHJlbGF0aXZlUGx1Z2luLFxuICBhYnNvbHV0ZVBsdWdpbixcbiAgY3Vyc29yUGx1Z2luLFxuICBkaXNwbGF5Q29udGVudHNQbHVnaW4sXG4gIG9uT3V0c2lkZUNsaWNrUGx1Z2luLFxuICBjbGFzc05hbWVQbHVnaW4sXG5dO1xuXG5jb25zdCBzaGFyZWRDbGlja2FibGVQbHVnaW5zID0gW2Ryb3BEb3duTWVudVBsdWdpbiwgcG9wb3ZlclBsdWdpbiwgZW5hYmxlZFBsdWdpbiwgY2xpY2thYmxlUGx1Z2luXTtcblxuZXhwb3J0IGNvbnN0IGdldFNoYXJlZFR5cGVkUGx1Z2lucyA9IDxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KCkgPT4gW1xuICAuLi5nZXRTaGFyZWRDaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2luczxUPigpLFxuICAuLi5nZXRTaGFyZWROb25DaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2luczxUPigpLFxuXTtcblxuY29uc3QgZ2V0U2hhcmVkQ2hpbGRyZW5BZGRpbmdUeXBlZFBsdWdpbnMgPSA8VCBleHRlbmRzIEhUTUxFbGVtZW50PigpID0+IFt0b29sdGlwUGx1Z2luPFQ+KCksIGZsb2F0aW5nUGx1Z2luPFQ+KCldO1xuXG5jb25zdCBnZXRTaGFyZWROb25DaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2lucyA9IDxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KCkgPT4gW1xuICBob3ZlcmFibGVQbHVnaW48VD4oKSxcbiAgaG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpbjxUPigpLFxuICBmb2N1c2FibGVQbHVnaW48VD4oKSxcbiAgcmVmUGx1Z2luPFQ+KCksXG5dO1xuXG5leHBvcnQgY29uc3QgRGl2ID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImRpdlwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTERpdkVsZW1lbnQ+KCkpKTtcblxuZXhwb3J0IHR5cGUgRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgRGl2PjtcblxuLy8gVXNlIGRpdiBhcyBuZXV0cmFsIHRlbXBsYXRlIGZvciB3aGF0IGNvbW1vbiBwcm9wcyBzaG91bGQgbG9vayBsaWtlXG5leHBvcnQgY29uc3QgQ29tbW9uID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImRpdlwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8YW55PigpKSk7XG5leHBvcnQgdHlwZSBDb21tb25Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBDb21tb24+O1xuXG5leHBvcnQgY29uc3QgU3ZnID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcInN2Z1wiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEVsZW1lbnQ+KCkpKTtcblxuZXhwb3J0IHR5cGUgU3ZnUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgU3ZnPjtcblxuZXhwb3J0IGNvbnN0IElucHV0ID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXG4gICAgXCJpbnB1dFwiLFxuICAgIGVuYWJsZWRQbHVnaW4sXG4gICAgLi4uc2hhcmVkUGx1Z2lucyxcbiAgICAuLi5nZXRTaGFyZWROb25DaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2luczxIVE1MSW5wdXRFbGVtZW50PigpLFxuICApLFxuKTtcbmV4cG9ydCB0eXBlIElucHV0UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSW5wdXQ+O1xuXG5leHBvcnQgY29uc3QgVGV4dEFyZWEgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRleHRhcmVhXCIsIGVuYWJsZWRQbHVnaW4sIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGV4dEFyZWFFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBUZXh0QXJlYVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFRleHRBcmVhPjtcblxuZXhwb3J0IGNvbnN0IEZvcm0gPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcImZvcm1cIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxGb3JtRWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgRm9ybVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEZvcm0+O1xuXG5leHBvcnQgY29uc3QgU3BhbiA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwic3BhblwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFNwYW5FbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBTcGFuUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgU3Bhbj47XG5cbmV4cG9ydCBjb25zdCBDbGlja2FibGVEaXYgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcImRpdlwiLCAuLi5zaGFyZWRDbGlja2FibGVQbHVnaW5zLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTERpdkVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIENsaWNrYWJsZURpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIENsaWNrYWJsZURpdj47XG5cbmV4cG9ydCBjb25zdCBJID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImlcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBJUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgST47XG5cbmV4cG9ydCBjb25zdCBBID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImFcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxBbmNob3JFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBBUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQT47XG5cbmV4cG9ydCBjb25zdCBCdXR0b24gPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcbiAgICBcImJ1dHRvblwiLFxuICAgIC4uLnNoYXJlZENsaWNrYWJsZVBsdWdpbnMsXG4gICAgLi4uc2hhcmVkUGx1Z2lucyxcbiAgICAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEJ1dHRvbkVsZW1lbnQ+KCksXG4gICksXG4pO1xuZXhwb3J0IHR5cGUgQnV0dG9uUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQnV0dG9uPjtcblxuZXhwb3J0IGNvbnN0IENvZGUgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiY29kZVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIENvZGVQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBDb2RlPjtcblxuZXhwb3J0IGNvbnN0IExhYmVsID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImxhYmVsXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgTGFiZWxQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBMYWJlbD47XG5cbmV4cG9ydCBjb25zdCBQcmUgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwicHJlXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MUHJlRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgUHJlUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgUHJlPjtcblxuZXhwb3J0IGNvbnN0IE5hdiA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJuYXZcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBOYXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBOYXY+O1xuXG5leHBvcnQgY29uc3QgSDEgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaDFcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxIZWFkaW5nRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSDFQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBIMT47XG5cbmV4cG9ydCBjb25zdCBIMiA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJoMlwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEhlYWRpbmdFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBIMlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEgyPjtcblxuZXhwb3J0IGNvbnN0IEgzID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImgzXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSGVhZGluZ0VsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEgzUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSDM+O1xuXG5leHBvcnQgY29uc3QgSDQgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaDRcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxIZWFkaW5nRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSDRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBIND47XG5cbmV4cG9ydCBjb25zdCBINSA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJoNVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEhlYWRpbmdFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBINVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEg1PjtcblxuZXhwb3J0IGNvbnN0IEg2ID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImg2XCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSGVhZGluZ0VsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEg2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSDY+O1xuXG5leHBvcnQgY29uc3QgT2wgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwib2xcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxPTGlzdEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIE9sUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgT2w+O1xuXG5leHBvcnQgY29uc3QgVWwgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwidWxcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxVTGlzdEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIFVsUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVWw+O1xuXG5leHBvcnQgY29uc3QgTGkgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwibGlcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxMSUVsZW1lbnQ+KCkpKTtcblxuZXhwb3J0IGNvbnN0IENsaWNrYWJsZUxpID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJsaVwiLCAuLi5zaGFyZWRDbGlja2FibGVQbHVnaW5zLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTExJRWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgQ2xpY2thYmxlTGlQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBDbGlja2FibGVMaT47XG5leHBvcnQgdHlwZSBMaVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIExpPjtcblxuZXhwb3J0IGNvbnN0IFAgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwicFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFBhcmFncmFwaEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIFBQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBQPjtcblxuZXhwb3J0IGNvbnN0IFRoID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJ0aFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+KCkpLFxuKTtcblxuZXhwb3J0IHR5cGUgVGhQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBUaD47XG5cbmV4cG9ydCBjb25zdCBUZCA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwidGRcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxUYWJsZUNlbGxFbGVtZW50PigpKSxcbik7XG5cbmV4cG9ydCB0eXBlIFRkUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVGQ+O1xuXG5leHBvcnQgY29uc3QgVHIgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRyXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGFibGVSb3dFbGVtZW50PigpKSxcbik7XG5cbmV4cG9ydCB0eXBlIFRyUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVHI+O1xuXG5leHBvcnQgY29uc3QgVGFibGUgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRhYmxlXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGFibGVFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBUYWJsZVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFRhYmxlPjtcblxuZXhwb3J0IGNvbnN0IFRCb2R5ID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJ0Ym9keVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIFRCb2R5UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVEJvZHk+O1xuXG5leHBvcnQgY29uc3QgRGlhbG9nID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJkaWFsb2dcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxEaWFsb2dFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBEaWFsb2dQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBEaWFsb2c+O1xuXG5leHBvcnQgY29uc3QgQ2FudmFzID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJjYW52YXNcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxDYW52YXNFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBDYW52YXNQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBDYW52YXM+O1xuXG5leHBvcnQgY29uc3QgSW1nID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImltZ1wiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEltYWdlRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSW1nUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSW1nPjtcblxuLyogYzggaWdub3JlIGVuZCAqL1xuIiwgImltcG9ydCBmbGV4U3R5bGVzIGZyb20gXCIuL2ZsZXgubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBIb3Jpem9udGFsRmxleFByb3BzID0ge1xuICBkaXJlY3Rpb24/OiBcImhvcml6b250YWxcIiB8IFwiaG9yaXpvbnRhbC1yZXZlcnNlZFwiO1xuXG4gIGhvcml6b250YWxBbGlnbj86IFwiY2VudGVyXCIgfCBcInNwYWNlLWJldHdlZW5cIiB8IFwic3BhY2UtYXJvdW5kXCIgfCBcImxlZnRcIiB8IFwicmlnaHRcIjtcbiAgdmVydGljYWxBbGlnbj86IFwiY2VudGVyXCIgfCBcInN0cmV0Y2hcIiB8IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxuZXhwb3J0IHR5cGUgVmVydGljYWxGbGV4UHJvcHMgPSB7XG4gIGRpcmVjdGlvbj86IFwidmVydGljYWxcIiB8IFwidmVydGljYWwtcmV2ZXJzZWRcIjtcblxuICBob3Jpem9udGFsQWxpZ24/OiBcImNlbnRlclwiIHwgXCJzdHJldGNoXCIgfCBcImxlZnRcIiB8IFwicmlnaHRcIjtcbiAgdmVydGljYWxBbGlnbj86IFwiY2VudGVyXCIgfCBcInNwYWNlLWJldHdlZW5cIiB8IFwic3BhY2UtYXJvdW5kXCIgfCBcInRvcFwiIHwgXCJib3R0b21cIjtcbn07XG5cbmV4cG9ydCB0eXBlIE1heGltYWxGbGV4UHJvcHMgPSAoSG9yaXpvbnRhbEZsZXhQcm9wcyB8IFZlcnRpY2FsRmxleFByb3BzKSAmIHtcbiAgZ2FwPzogVFNoaXJ0U2l6ZSB8IHsgcm93PzogVFNoaXJ0U2l6ZTsgY29sdW1uPzogVFNoaXJ0U2l6ZSB9O1xuICB3cmFwPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFNpbXBsZUZsZXhQcm9wID0gYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgRmxleFBsdWdpblByb3BzID0geyAkZmxleD86IFNpbXBsZUZsZXhQcm9wIHwgTWF4aW1hbEZsZXhQcm9wcyB9O1xuXG5leHBvcnQgY29uc3QgZmxleFBsdWdpbiA9IGdldFBsdWdpbjxGbGV4UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGZsZXggfSA9IHByb3BzO1xuXG4gIGlmICghJGZsZXgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJGZsZXg6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGRpcmVjdGlvbiA9IFwiaG9yaXpvbnRhbFwiLFxuICAgIHZlcnRpY2FsQWxpZ24gPSBcIlwiLFxuICAgIGhvcml6b250YWxBbGlnbiA9IFwiXCIsXG4gICAgZ2FwID0gdW5kZWZpbmVkLFxuICAgIHdyYXAsXG4gIH0gPSAkZmxleCA9PT0gdHJ1ZSA/IHt9IDogJGZsZXg7XG5cbiAgY29uc3QgaG9yaXpvbnRhbEFsaWduUHJvcHMgPSB7XG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLXN0cmV0Y2hgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwic3RyZXRjaFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwiY2VudGVyXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLWZsZXhTdGFydGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJ0b3BcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tZmxleEVuZGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJib3R0b21cIixcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJzcGFjZS1hcm91bmRcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQmV0d2VlbmBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInNwYWNlLWJldHdlZW5cIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLXN0cmV0Y2hgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJzdHJldGNoXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJjZW50ZXJcIixcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleFN0YXJ0YF1dOlxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJob3Jpem9udGFsXCIgJiYgaG9yaXpvbnRhbEFsaWduID09PSBcImxlZnRcIikgfHxcbiAgICAgIChkaXJlY3Rpb24gPT09IFwiaG9yaXpvbnRhbC1yZXZlcnNlZFwiICYmIGhvcml6b250YWxBbGlnbiA9PT0gXCJyaWdodFwiKSxcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleEVuZGBdXTpcbiAgICAgIChkaXJlY3Rpb24gPT09IFwiaG9yaXpvbnRhbFwiICYmIGhvcml6b250YWxBbGlnbiA9PT0gXCJyaWdodFwiKSB8fFxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJob3Jpem9udGFsLXJldmVyc2VkXCIgJiYgaG9yaXpvbnRhbEFsaWduID09PSBcImxlZnRcIiksXG4gIH07XG5cbiAgY29uc3QgdmVydGljYWxBbGlnblByb3BzID0ge1xuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwic3BhY2UtYXJvdW5kXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUJldHdlZW5gXV06IHZlcnRpY2FsQWxpZ24gPT09IFwic3BhY2UtYmV0d2VlblwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3RyZXRjaGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJzdHJldGNoXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwiY2VudGVyXCIsXG5cbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhTdGFydGBdXTpcbiAgICAgIChkaXJlY3Rpb24gPT09IFwidmVydGljYWxcIiAmJiB2ZXJ0aWNhbEFsaWduID09PSBcInRvcFwiKSB8fFxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJ2ZXJ0aWNhbC1yZXZlcnNlZFwiICYmIHZlcnRpY2FsQWxpZ24gPT09IFwiYm90dG9tXCIpLFxuXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4RW5kYF1dOlxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiICYmIHZlcnRpY2FsQWxpZ24gPT09IFwiYm90dG9tXCIpIHx8XG4gICAgICAoZGlyZWN0aW9uID09PSBcInZlcnRpY2FsLXJldmVyc2VkXCIgJiYgdmVydGljYWxBbGlnbiA9PT0gXCJ0b3BcIiksXG5cbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tc3RyZXRjaGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInN0cmV0Y2hcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tY2VudGVyYF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwiY2VudGVyXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLWZsZXhTdGFydGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcImxlZnRcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tZmxleEVuZGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInJpZ2h0XCIsXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBmbGV4U3R5bGVzLmZsZXgsXG4gICAgICBmbGV4U3R5bGVzW2BmbGV4X19kaXJlY3Rpb24tLSR7ZGlyZWN0aW9ufWBdLFxuXG4gICAgICBbXCJob3Jpem9udGFsXCIsIFwiaG9yaXpvbnRhbC1yZXZlcnNlZFwiXS5pbmNsdWRlcyhkaXJlY3Rpb24pID8gaG9yaXpvbnRhbEFsaWduUHJvcHMgOiB2ZXJ0aWNhbEFsaWduUHJvcHMsXG5cbiAgICAgIHR5cGVvZiBnYXAgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBmbGV4U3R5bGVzW2BmbGV4X19nYXAtLSR7Z2FwfWBdXG4gICAgICAgIDogZ2FwXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIGdhcC5jb2x1bW4gPyBmbGV4U3R5bGVzW2BmbGV4X19nYXAtLWNvbHVtbi0tJHtnYXAuY29sdW1ufWBdIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBnYXAucm93ID8gZmxleFN0eWxlc1tgZmxleF9fZ2FwLS1yb3ctLSR7Z2FwLnJvd31gXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHdyYXAgJiYgZmxleFN0eWxlc1tgZmxleF9fd3JhcC0td3JhcGBdLFxuXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIF0sXG5cbiAgICAkZmxleDogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IGdyaWRTdHlsZXMgZnJvbSBcIi4vZ3JpZC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbmV4cG9ydCB0eXBlIEdyaWRDb2x1bW5zID0gMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xuXG5leHBvcnQgdHlwZSBHcmlkUHJvcHMgPSB7XG4gIGNvbHVtbnM6IEdyaWRDb2x1bW5zO1xuICBnYXA/OiBUU2hpcnRTaXplIHwgeyByb3c/OiBUU2hpcnRTaXplOyBjb2x1bW4/OiBUU2hpcnRTaXplIH07XG4gIGFsaWduSXRlbXM/OiBcInN0cmV0Y2hcIiB8IFwiY2VudGVyXCIgfCBcInN0YXJ0XCIgfCBcImVuZFwiO1xufTtcblxuZXhwb3J0IHR5cGUgR3JpZFBsdWdpblByb3BzID0geyAkZ3JpZD86IEdyaWRQcm9wcyB9O1xuXG5leHBvcnQgY29uc3QgZ3JpZFBsdWdpbiA9IGdldFBsdWdpbjxHcmlkUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGdyaWQgfSA9IHByb3BzO1xuXG4gIGlmICghJGdyaWQpIHtcbiAgICByZXR1cm4geyAkZ3JpZDogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCB7IGNvbHVtbnMsIGdhcCwgYWxpZ25JdGVtcyB9ID0gJGdyaWQ7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBncmlkU3R5bGVzLmdyaWQsXG4gICAgICBncmlkU3R5bGVzW2BncmlkX19jb2x1bW5zLS0ke2NvbHVtbnN9YF0sXG4gICAgICBhbGlnbkl0ZW1zID8gZ3JpZFN0eWxlc1tgZ3JpZF9fYWxpZ25JdGVtcy0tJHthbGlnbkl0ZW1zfWBdIDogdW5kZWZpbmVkLFxuXG4gICAgICB0eXBlb2YgZ2FwID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gZ3JpZFN0eWxlc1tgZ3JpZF9fZ2FwLS0ke2dhcH1gXVxuICAgICAgICA6IGdhcFxuICAgICAgICAgID8gW1xuICAgICAgICAgICAgICBnYXAuY29sdW1uID8gZ3JpZFN0eWxlc1tgZ3JpZF9fZ2FwLS1jb2x1bW4tLSR7Z2FwLmNvbHVtbn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgZ2FwLnJvdyA/IGdyaWRTdHlsZXNbYGdyaWRfX2dhcC0tcm93LS0ke2dhcC5yb3d9YF0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG5cbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgXSxcblxuICAgICRncmlkOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgd2lkdGhTdHlsZXMgZnJvbSBcIi4vd2lkdGgubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBzdHlsZVBsdWdpbiB9IGZyb20gXCIuLi9zdHlsZS9zdHlsZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG4vKiogQSBzaGFyZSBvZiB0aGUgcGFyZW50J3Mgd2lkdGgsIGUuZy4gYFwiMzAlXCJgLCBmb3IgbGF5b3V0cyB0aGF0IGRpdmlkZSBhIHJvdyByYXRoZXIgdGhhbiBzaXplIGEgYm94LiAqL1xuZXhwb3J0IHR5cGUgUGVyY2VudGFnZSA9IGAke251bWJlcn0lYDtcblxuZXhwb3J0IHR5cGUgJFdpZHRoUHJvcHMgPSB7XG4gIHdpZHRoPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJzdHJldGNoXCIgfCBQZXJjZW50YWdlO1xuICBtaW4/OiBUU2hpcnRTaXplIHwgXCJmaXRcIiB8IFBlcmNlbnRhZ2U7XG4gIG1heD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwiY29udGVudFwiIHwgUGVyY2VudGFnZTtcbn07XG5cbmV4cG9ydCB0eXBlIFdpZHRoUGx1Z2luUHJvcHMgPSB7ICR3aWR0aD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwic3RyZXRjaFwiIHwgUGVyY2VudGFnZSB8ICRXaWR0aFByb3BzIH07XG5cbmNvbnN0IGlzUGVyY2VudGFnZSA9ICh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdmFsdWUgaXMgUGVyY2VudGFnZSA9PiB2YWx1ZT8uZW5kc1dpdGgoXCIlXCIpID09PSB0cnVlO1xuXG5leHBvcnQgY29uc3Qgd2lkdGhQbHVnaW4gPSBnZXRQbHVnaW48V2lkdGhQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW4sIHR5cGVvZiBzdHlsZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICR3aWR0aCwgJGNsYXNzTmFtZSwgJHN0eWxlIH0gPSBwcm9wcztcbiAgY29uc3QgeyB3aWR0aCwgbWluLCBtYXggfSA9IHR5cGVvZiAkd2lkdGggPT09IFwic3RyaW5nXCIgPyB7IHdpZHRoOiAkd2lkdGggfSA6ICgkd2lkdGggPz8ge30pO1xuICBjb25zdCBwZXJjZW50YWdlcyA9IHtcbiAgICAuLi4oaXNQZXJjZW50YWdlKHdpZHRoKSA/IHsgd2lkdGggfSA6IHt9KSxcbiAgICAuLi4oaXNQZXJjZW50YWdlKG1pbikgPyB7IG1pbldpZHRoOiBtaW4gfSA6IHt9KSxcbiAgICAuLi4oaXNQZXJjZW50YWdlKG1heCkgPyB7IG1heFdpZHRoOiBtYXggfSA6IHt9KSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIHdpZHRoICYmICFpc1BlcmNlbnRhZ2Uod2lkdGgpID8gd2lkdGhTdHlsZXNbYHdpZHRoLS0ke3dpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgICAgbWluICYmICFpc1BlcmNlbnRhZ2UobWluKSA/IHdpZHRoU3R5bGVzW2BtaW4td2lkdGgtLSR7bWlufWBdIDogdW5kZWZpbmVkLFxuICAgICAgbWF4ICYmICFpc1BlcmNlbnRhZ2UobWF4KSA/IHdpZHRoU3R5bGVzW2BtYXgtd2lkdGgtLSR7bWF4fWBdIDogdW5kZWZpbmVkLFxuICAgICAgJGNsYXNzTmFtZSxcbiAgICBdLFxuICAgICRzdHlsZTogT2JqZWN0LmtleXMocGVyY2VudGFnZXMpLmxlbmd0aCA+IDAgPyB7IC4uLiRzdHlsZSwgLi4ucGVyY2VudGFnZXMgfSA6ICRzdHlsZSxcbiAgICAkd2lkdGg6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuXG5leHBvcnQgdHlwZSBTdHlsZVBsdWdpblByb3BzID0geyAkc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzOyBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXMgfTtcblxuZXhwb3J0IGNvbnN0IHN0eWxlUGx1Z2luID0gZ2V0UGx1Z2luPFN0eWxlUGx1Z2luUHJvcHM+KChwcm9wcykgPT4ge1xuICAvKiBjOCBpZ25vcmUgbmV4dCAqL1xuICBjb25zdCAkc3R5bGUgPSBwcm9wcy4kc3R5bGUgfHwge307XG5cbiAgY29uc3Qgc3R5bGUgPSBwcm9wcy5zdHlsZSB8fCB7fTtcblxuICByZXR1cm4ge1xuICAgIHN0eWxlOiB7IC4uLiRzdHlsZSwgLi4uc3R5bGUgfSxcbiAgICAkc3R5bGU6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCBoZWlnaHRTdHlsZXMgZnJvbSBcIi4vaGVpZ2h0Lm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB0eXBlIHsgc3R5bGVQbHVnaW4gfSBmcm9tIFwiLi4vc3R5bGUvc3R5bGVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcbmltcG9ydCB0eXBlIHsgUGVyY2VudGFnZSB9IGZyb20gXCIuLi93aWR0aC93aWR0aFwiO1xuXG5leHBvcnQgdHlwZSAkSGVpZ2h0UHJvcHMgPSB7XG4gIGhlaWdodD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwic3RyZXRjaFwiIHwgXCJhdXRvXCIgfCBQZXJjZW50YWdlO1xuICBtaW4/OiBUU2hpcnRTaXplIHwgUGVyY2VudGFnZTtcbiAgbWF4PzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgUGVyY2VudGFnZTtcbn07XG5cbmV4cG9ydCB0eXBlIEhlaWdodFBsdWdpblByb3BzID0geyAkaGVpZ2h0PzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJhdXRvXCIgfCBcInN0cmV0Y2hcIiB8IFBlcmNlbnRhZ2UgfCAkSGVpZ2h0UHJvcHMgfTtcblxuY29uc3QgaXNQZXJjZW50YWdlID0gKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2YWx1ZSBpcyBQZXJjZW50YWdlID0+IHZhbHVlPy5lbmRzV2l0aChcIiVcIikgPT09IHRydWU7XG5cbmV4cG9ydCBjb25zdCBoZWlnaHRQbHVnaW4gPSBnZXRQbHVnaW48SGVpZ2h0UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luLCB0eXBlb2Ygc3R5bGVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkaGVpZ2h0LCAkc3R5bGUgfSA9IHByb3BzO1xuICBjb25zdCB7IGhlaWdodCwgbWluLCBtYXggfSA9IHR5cGVvZiAkaGVpZ2h0ID09PSBcInN0cmluZ1wiID8geyBoZWlnaHQ6ICRoZWlnaHQgfSA6ICgkaGVpZ2h0ID8/IHt9KTtcbiAgY29uc3QgcGVyY2VudGFnZXMgPSB7XG4gICAgLi4uKGlzUGVyY2VudGFnZShoZWlnaHQpID8geyBoZWlnaHQgfSA6IHt9KSxcbiAgICAuLi4oaXNQZXJjZW50YWdlKG1pbikgPyB7IG1pbkhlaWdodDogbWluIH0gOiB7fSksXG4gICAgLi4uKGlzUGVyY2VudGFnZShtYXgpID8geyBtYXhIZWlnaHQ6IG1heCB9IDoge30pLFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgaGVpZ2h0ICYmICFpc1BlcmNlbnRhZ2UoaGVpZ2h0KSA/IGhlaWdodFN0eWxlc1tgaGVpZ2h0LS0ke2hlaWdodH1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIG1pbiAmJiAhaXNQZXJjZW50YWdlKG1pbikgPyBoZWlnaHRTdHlsZXNbYG1pbi1oZWlnaHQtLSR7bWlufWBdIDogdW5kZWZpbmVkLFxuICAgICAgbWF4ICYmICFpc1BlcmNlbnRhZ2UobWF4KSA/IGhlaWdodFN0eWxlc1tgbWF4LWhlaWdodC0tJHttYXh9YF0gOiB1bmRlZmluZWQsXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIF0sXG4gICAgJHN0eWxlOiBPYmplY3Qua2V5cyhwZXJjZW50YWdlcykubGVuZ3RoID4gMCA/IHsgLi4uJHN0eWxlLCAuLi5wZXJjZW50YWdlcyB9IDogJHN0eWxlLFxuICAgICRoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgY29sb3JTdHlsZXMgZnJvbSBcIi4vY29sb3IubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tIFwiLi4vX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUgVGV4dENvbG9yID0gQ29sb3IgfCBUZXh0Q29sb3JBbGlhcztcblxuZXhwb3J0IHR5cGUgJENvbG9yUHJvcHMgPSB7XG4gIHJlYWRvbmx5IG5vcm1hbD86IFRleHRDb2xvcjtcbiAgcmVhZG9ubHkgaG92ZXI/OiBUZXh0Q29sb3I7XG4gIHJlYWRvbmx5IGZvY3VzPzogVGV4dENvbG9yO1xuICByZWFkb25seSBkaXNhYmxlZD86IFRleHRDb2xvcjtcbn07XG5cbmV4cG9ydCB0eXBlIENvbG9yUGx1Z2luUHJvcHMgPSB7IHJlYWRvbmx5ICRjb2xvcj86IFRleHRDb2xvciB8ICRDb2xvclByb3BzIH07XG5leHBvcnQgdHlwZSBUZXh0Q29sb3JBbGlhcyA9IGtleW9mIHR5cGVvZiBhbGlhc1RvTm9taW5hbDtcblxuY29uc3QgYWxpYXNUb05vbWluYWwgPSB7XG4gIHRleHRNdXRlZDogXCJncmV5MjVcIixcbiAgdGV4dERlZmF1bHQ6IFwiZ3JleTIwXCIsXG4gIHRleHRIaWdobGlnaHQ6IFwiZ3JleTEwXCIsXG59IGFzIGNvbnN0O1xuXG5jb25zdCBpc1RleHRDb2xvckFsaWFzID0gKGNvbG9yOiBUZXh0Q29sb3IpOiBjb2xvciBpcyBUZXh0Q29sb3JBbGlhcyA9PiBjb2xvciBpbiBhbGlhc1RvTm9taW5hbDtcblxuZXhwb3J0IGNvbnN0IGNvbG9yUGx1Z2luID0gZ2V0UGx1Z2luPENvbG9yUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGNsYXNzTmFtZSwgJGNvbG9yIH0gPSBwcm9wcztcbiAgY29uc3QgeyBub3JtYWwsIGhvdmVyLCBmb2N1cywgZGlzYWJsZWQgfSA9IHR5cGVvZiAkY29sb3IgPT09IFwic3RyaW5nXCIgPyB7IG5vcm1hbDogJGNvbG9yIH0gOiAoJGNvbG9yID8/IHt9KTtcblxuICBjb25zdCBub3JtYWxDb2xvciA9IG5vcm1hbCA/IChpc1RleHRDb2xvckFsaWFzKG5vcm1hbCkgPyBhbGlhc1RvTm9taW5hbFtub3JtYWxdIDogbm9ybWFsKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgaG92ZXJDb2xvciA9IGhvdmVyID8gKGlzVGV4dENvbG9yQWxpYXMoaG92ZXIpID8gYWxpYXNUb05vbWluYWxbaG92ZXJdIDogaG92ZXIpIDogdW5kZWZpbmVkO1xuICBjb25zdCBmb2N1c0NvbG9yID0gZm9jdXMgPyAoaXNUZXh0Q29sb3JBbGlhcyhmb2N1cykgPyBhbGlhc1RvTm9taW5hbFtmb2N1c10gOiBmb2N1cykgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGRpc2FibGVkQ29sb3IgPSBkaXNhYmxlZCA/IChpc1RleHRDb2xvckFsaWFzKGRpc2FibGVkKSA/IGFsaWFzVG9Ob21pbmFsW2Rpc2FibGVkXSA6IGRpc2FibGVkKSA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgICRjbGFzc05hbWUsXG4gICAgICBub3JtYWxDb2xvciA/IGNvbG9yU3R5bGVzW2Bjb2xvci0tJHtub3JtYWxDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGhvdmVyQ29sb3IgPyBjb2xvclN0eWxlc1tgY29sb3ItaG92ZXItLSR7aG92ZXJDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGZvY3VzQ29sb3IgPyBjb2xvclN0eWxlc1tgY29sb3ItZm9jdXMtLSR7Zm9jdXNDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGRpc2FibGVkQ29sb3IgPyBjb2xvclN0eWxlc1tgY29sb3ItZGlzYWJsZWQtLSR7ZGlzYWJsZWRDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICBdLFxuICAgICRjb2xvcjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBncmFkaWVudFN0eWxlcyBmcm9tIFwiLi9ncmFkaWVudC5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBHcmFkaWVudFBsdWdpblByb3BzID0geyAkZ3JhZGllbnQ/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBncmFkaWVudFBsdWdpbiA9IGdldFBsdWdpbjxHcmFkaWVudFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHByb3BzLiRncmFkaWVudCA/IGdyYWRpZW50U3R5bGVzLmdyYWRpZW50IDogdW5kZWZpbmVkXSxcbiAgJGdyYWRpZW50OiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IERyYWdnYWJsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgeyBhY3Rpb24gfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9kcmFnZ2FibGUubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBkcmFnZ2FibGVQbHVnaW4gPSBnZXRQbHVnaW48RHJhZ2dhYmxlUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGRyYWdnYWJsZSkge1xuICAgIHJldHVybiB7ICRkcmFnZ2FibGU6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgW2RyYWdnaW5nLCBzZXREcmFnZ2luZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBjb250ZXh0LCBpdGVtIH0gPSBwcm9wcy4kZHJhZ2dhYmxlO1xuXG4gIGNvbnN0IGRyYWdnZWRJdGVtU3RhdGUgPSB1c2VTeW5jSW5qZWN0KGRyYWdnZWRJdGVtU3RhdGVJbmplY3RhYmxlLCBjb250ZXh0KTtcblxuICByZXR1cm4ge1xuICAgIGRyYWdnYWJsZTogdHJ1ZSxcblxuICAgICR2aXN1YWxseUhpZGRlbjogZHJhZ2dpbmcsXG5cbiAgICBvbkRyYWdTdGFydDogYWN0aW9uKChldmVudDogUmVhY3QuRHJhZ0V2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSBcIm1vdmVcIjtcblxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgcHJvcHMub25EcmFnU3RhcnQ/LihldmVudCk7XG5cbiAgICAgIG1ha2VDaHJvbWl1bU5vdEdsaXRjaFdoZW5EcmFnZ2luZyhldmVudCk7XG5cbiAgICAgIGRyYWdnZWRJdGVtU3RhdGUuc2V0KGl0ZW0pO1xuXG4gICAgICAvLyBEb24ndCBzZXQgZHJhZ2dpbmcgdG9vIGVhcmx5LCBiZWNhdXNlIGl0IHdvdWxkIGhpZGUgdGhlIFwiZHJhZyBwcmV2aWV3XCIgZm9yIGVsZW1lbnQgYmVpbmcgZHJhZ2dlZC5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzZXREcmFnZ2luZyh0cnVlKTtcbiAgICAgIH0sIDApO1xuICAgIH0pLFxuXG4gICAgb25EcmFnRW5kOiBhY3Rpb24oKGV2ZW50OiBSZWFjdC5EcmFnRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBwcm9wcy5vbkRyYWdFbmQ/LihldmVudCk7XG5cbiAgICAgIGRyYWdnZWRJdGVtU3RhdGUuc2V0KHVuZGVmaW5lZCk7XG4gICAgICBzZXREcmFnZ2luZyhmYWxzZSk7XG4gICAgfSksXG5cbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgc3R5bGVzLmRyYWdnYWJsZV0sXG5cbiAgICAkZHJhZ2dhYmxlOiB1bmRlZmluZWQsXG4gIH07XG59KTtcblxuY29uc3QgbWFrZUNocm9taXVtTm90R2xpdGNoV2hlbkRyYWdnaW5nID0gKGV2ZW50OiBSZWFjdC5EcmFnRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFwidGV4dC9wbGFpblwiLCBcInN0dWItZGF0YS10by1maXgtY2hyb21pdW1cIik7XG59O1xuIiwgImltcG9ydCB7IGRyYWdnZWRJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9kcmFnZ2VkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7IG1ha2VTdXJlRHJhZ0FuZERyb3BFdmVudHNIYXZlVGltZVRvSGFwcGVuSW5qZWN0YWJsZSB9IGZyb20gXCIuL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgRHJvcHBhYmxlUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9nZXQtZHJhZ2dhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IGRyb3BwYWJsZVBsdWdpbiA9IGdldFBsdWdpbjxEcm9wcGFibGVQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGRyb3BwYWJsZSkge1xuICAgIHJldHVybiB7ICRkcm9wcGFibGU6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgeyBjb250ZXh0LCBvbkRyb3AgfSA9IHByb3BzLiRkcm9wcGFibGU7XG5cbiAgY29uc3QgZHJhZ2dlZEl0ZW1TdGF0ZSA9IHVzZVN5bmNJbmplY3QoZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUsIGNvbnRleHQpO1xuICBjb25zdCBzb21lID0gdXNlU3luY0luamVjdChtYWtlU3VyZURyYWdBbmREcm9wRXZlbnRzSGF2ZVRpbWVUb0hhcHBlbkluamVjdGFibGUpO1xuXG4gIGNvbnN0IGRyYWdnZWRJdGVtID0gZHJhZ2dlZEl0ZW1TdGF0ZS5nZXQoKTtcblxuICByZXR1cm4ge1xuICAgIG9uRHJhZ092ZXI6IChldmVudDogUmVhY3QuRHJhZ0V2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgcHJvcHMub25EcmFnT3Zlcj8uKGV2ZW50KTtcblxuICAgICAgaWYgKGRyYWdnZWRJdGVtKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIG9uRHJvcDogKGV2ZW50OiBSZWFjdC5EcmFnRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBwcm9wcy5vbkRyb3A/LihldmVudCk7XG5cbiAgICAgIGlmIChkcmFnZ2VkSXRlbSkge1xuICAgICAgICBzb21lKCgpID0+IHtcbiAgICAgICAgICBvbkRyb3AoZHJhZ2dlZEl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgJGRyb3BwYWJsZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0cmFuc2l0aW9uU3R5bGVzIGZyb20gXCIuL3RyYW5zaXRpb24ubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgVHJhbnNpdGlvblBsdWdpblByb3BzID0geyAkdHJhbnNpdGlvbj86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zaXRpb25QbHVnaW4gPSBnZXRQbHVnaW48VHJhbnNpdGlvblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHsgW3RyYW5zaXRpb25TdHlsZXMudHJhbnNpdGlvbl06ICEhcHJvcHMuJHRyYW5zaXRpb24gfV0sXG4gICR0cmFuc2l0aW9uOiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBvZmZzZXRTdHlsZXMgZnJvbSBcIi4vb2Zmc2V0Lm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IERpcmVjdGlvbiB9IGZyb20gXCIuLi9fc2hhcmVkL2RpcmVjdGlvbnNcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbmV4cG9ydCB0eXBlIE9mZnNldFBsdWdpblByb3BzID0geyAkb2Zmc2V0PzogeyBkaXJlY3Rpb246IERpcmVjdGlvbjsgc2l6ZTogVFNoaXJ0U2l6ZSB9IH07XG5cbmV4cG9ydCBjb25zdCBvZmZzZXRQbHVnaW4gPSBnZXRQbHVnaW48T2Zmc2V0UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJG9mZnNldCkge1xuICAgIHJldHVybiB7ICRvZmZzZXQ6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgb2Zmc2V0U3R5bGVzW2BvZmZzZXRfXyR7cHJvcHMuJG9mZnNldC5kaXJlY3Rpb259LS0ke3Byb3BzLiRvZmZzZXQuc2l6ZX1gXV0sXG5cbiAgICAkb2Zmc2V0OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IG9mZnNldFN0eWxlcyBmcm9tIFwiLi9vZmZzZXQtY2hpbGRyZW4ubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgRGlyZWN0aW9uIH0gZnJvbSBcIi4uL19zaGFyZWQvZGlyZWN0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgT2Zmc2V0Q2hpbGRyZW5QbHVnaW5Qcm9wcyA9IHsgJG9mZnNldENoaWxkcmVuPzogeyBkaXJlY3Rpb246IERpcmVjdGlvbjsgc2l6ZTogVFNoaXJ0U2l6ZSB9IH07XG5cbmV4cG9ydCBjb25zdCBvZmZzZXRDaGlsZHJlblBsdWdpbiA9IGdldFBsdWdpbjxPZmZzZXRDaGlsZHJlblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRvZmZzZXRDaGlsZHJlbikge1xuICAgIHJldHVybiB7ICRvZmZzZXRDaGlsZHJlbjogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgICBvZmZzZXRTdHlsZXNbYG9mZnNldC1jaGlsZHJlbl9fJHtwcm9wcy4kb2Zmc2V0Q2hpbGRyZW4uZGlyZWN0aW9ufS0tJHtwcm9wcy4kb2Zmc2V0Q2hpbGRyZW4uc2l6ZX1gXSxcbiAgICBdLFxuXG4gICAgJG9mZnNldENoaWxkcmVuOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IGhpZGRlblN0eWxlcyBmcm9tIFwiLi9oaWRkZW4ubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgSGlkZGVuUGx1Z2luUHJvcHMgPSB7ICRoaWRkZW4/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBoaWRkZW5QbHVnaW4gPSBnZXRQbHVnaW48SGlkZGVuUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgeyBbaGlkZGVuU3R5bGVzLmhpZGRlbl06ICEhcHJvcHMuJGhpZGRlbiB9XSxcblxuICAkaGlkZGVuOiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBtYXJnaW5TdHlsZXMgZnJvbSBcIi4vbWFyZ2luLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gXCJsb2Rhc2gvZnBcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbmV4cG9ydCB0eXBlIERpcmVjdGlvbmFsTWFyZ2luID0ge1xuICB0b3A/OiBUU2hpcnRTaXplO1xuICBib3R0b20/OiBUU2hpcnRTaXplO1xuICBsZWZ0PzogVFNoaXJ0U2l6ZTtcbiAgcmlnaHQ/OiBUU2hpcnRTaXplO1xuICBob3Jpem9udGFsPzogVFNoaXJ0U2l6ZTtcbiAgdmVydGljYWw/OiBUU2hpcnRTaXplO1xufTtcblxuZXhwb3J0IHR5cGUgTWFyZ2luUGx1Z2luUHJvcHMgPSB7ICRtYXJnaW4/OiBib29sZWFuIHwgRGlyZWN0aW9uYWxNYXJnaW4gfCBUU2hpcnRTaXplIHwgXCJhdXRvXCIgfTtcblxuZXhwb3J0IGNvbnN0IG1hcmdpblBsdWdpbiA9IGdldFBsdWdpbjxNYXJnaW5QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgaWYgKCFwcm9wcy4kbWFyZ2luKSB7XG4gICAgcmV0dXJuIHsgJG1hcmdpbjogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCBtYXJnaW4gPSBwcm9wcy4kbWFyZ2luID09PSB0cnVlID8gXCJ4c1wiIDogcHJvcHMuJG1hcmdpbjtcblxuICBpZiAoaXNTdHJpbmcobWFyZ2luKSkge1xuICAgIHJldHVybiB7XG4gICAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgbWFyZ2luU3R5bGVzW2BtYXJnaW4tLSR7bWFyZ2lufWBdXSxcbiAgICAgICRtYXJnaW46IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgdG9wU2l6ZSA9IG1hcmdpbi50b3AgfHwgbWFyZ2luLnZlcnRpY2FsO1xuICBjb25zdCBib3R0b21TaXplID0gbWFyZ2luLmJvdHRvbSB8fCBtYXJnaW4udmVydGljYWw7XG4gIGNvbnN0IHJpZ2h0U2l6ZSA9IG1hcmdpbi5yaWdodCB8fCBtYXJnaW4uaG9yaXpvbnRhbDtcbiAgY29uc3QgbGVmdFNpemUgPSBtYXJnaW4ubGVmdCB8fCBtYXJnaW4uaG9yaXpvbnRhbDtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgICB0b3BTaXplID8gbWFyZ2luU3R5bGVzW2BtYXJnaW5fX3RvcC0tJHt0b3BTaXplfWBdIDogdW5kZWZpbmVkLFxuICAgICAgcmlnaHRTaXplID8gbWFyZ2luU3R5bGVzW2BtYXJnaW5fX3JpZ2h0LS0ke3JpZ2h0U2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGJvdHRvbVNpemUgPyBtYXJnaW5TdHlsZXNbYG1hcmdpbl9fYm90dG9tLS0ke2JvdHRvbVNpemV9YF0gOiB1bmRlZmluZWQsXG4gICAgICBsZWZ0U2l6ZSA/IG1hcmdpblN0eWxlc1tgbWFyZ2luX19sZWZ0LS0ke2xlZnRTaXplfWBdIDogdW5kZWZpbmVkLFxuICAgIF0sXG4gICAgJG1hcmdpbjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB2aXN1YWxseUhpZGRlblN0eWxlcyBmcm9tIFwiLi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgVmlzdWFsbHlIaWRkZW5QbHVnaW5Qcm9wcyA9IHsgJHZpc3VhbGx5SGlkZGVuPzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgdmlzdWFsbHlIaWRkZW5QbHVnaW4gPSBnZXRQbHVnaW48VmlzdWFsbHlIaWRkZW5QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCB7IFt2aXN1YWxseUhpZGRlblN0eWxlc1tcInZpc3VhbGx5LWhpZGRlblwiXV06ICEhcHJvcHMuJHZpc3VhbGx5SGlkZGVuIH1dLFxuXG4gICR2aXN1YWxseUhpZGRlbjogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgb3ZlcmZsb3dTdHlsZXMgZnJvbSBcIi4vb3ZlcmZsb3cubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgT3ZlcmZsb3cgPSBcImhpZGRlblwiIHwgXCJzY3JvbGxcIiB8IFwiYXV0b1wiIHwgXCJ2aXNpYmxlXCI7XG5cbmV4cG9ydCB0eXBlIE92ZXJmbG93UGx1Z2luUHJvcHMgPSB7ICRvdmVyZmxvdz86IE92ZXJmbG93IHwgeyB4PzogT3ZlcmZsb3c7IHk/OiBPdmVyZmxvdzsgaGlkZVNjcm9sbGJhcj86IGJvb2xlYW4gfSB9O1xuXG5leHBvcnQgY29uc3Qgb3ZlcmZsb3dQbHVnaW4gPSBnZXRQbHVnaW48T3ZlcmZsb3dQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgJG92ZXJmbG93ID0gcHJvcHMuJG92ZXJmbG93O1xuXG4gIGlmICghJG92ZXJmbG93KSB7XG4gICAgcmV0dXJuIHsgJG92ZXJmbG93OiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IHggPSB0eXBlb2YgJG92ZXJmbG93ID09PSBcInN0cmluZ1wiID8gJG92ZXJmbG93IDogJG92ZXJmbG93Lng7XG4gIGNvbnN0IHkgPSB0eXBlb2YgJG92ZXJmbG93ID09PSBcInN0cmluZ1wiID8gJG92ZXJmbG93IDogJG92ZXJmbG93Lnk7XG4gIGNvbnN0IGhpZGVTY3JvbGxiYXIgPSB0eXBlb2YgJG92ZXJmbG93ID09PSBcInN0cmluZ1wiID8gZmFsc2UgOiAkb3ZlcmZsb3cuaGlkZVNjcm9sbGJhcjtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG5cbiAgICAgIHggPyBvdmVyZmxvd1N0eWxlc1tgb3ZlcmZsb3dfX3gtLSR7eH1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIHkgPyBvdmVyZmxvd1N0eWxlc1tgb3ZlcmZsb3dfX3ktLSR7eX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIHsgW292ZXJmbG93U3R5bGVzW1wib3ZlcmZsb3ctLWhpZGUtc2Nyb2xsYmFyXCJdXTogaGlkZVNjcm9sbGJhciB9LFxuICAgIF0sXG5cbiAgICAkb3ZlcmZsb3c6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCBmbGV4Q2hpbGRTdHlsZXMgZnJvbSBcIi4vZmxleC1jaGlsZC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IHN0eWxlUGx1Z2luIH0gZnJvbSBcIi4uL3N0eWxlL3N0eWxlXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuLyoqXG4gKiAtIGB0cnVlYDogc2hhcmUgdGhlIHBhcmVudCdzIHJlbWFpbmluZyBzcGFjZSBlcXVhbGx5IChgZmxleDogMSAxIDBgKS5cbiAqIC0gYFwic2hyaW5rYWJsZVwiYDogYWRkaXRpb25hbGx5IHJlbW92ZSB0aGUgaXRlbSdzIGltcGxpY2l0IGNvbnRlbnQtc2l6ZWRcbiAqICAgbWluaW11bSAoYG1pbi1oZWlnaHQ6IGF1dG9gIC8gYG1pbi13aWR0aDogYXV0b2ApLCBzbyBpdCBjYW4gYWN0dWFsbHkgYmVcbiAqICAgc2l6ZWQgdG8gdGhlIHJlbWFpbmluZyBzcGFjZSBpbiBhIGNvbnN0cmFpbmVkIGxheW91dCBcdTIwMTQgcmVxdWlyZWQgZm9yIGFcbiAqICAgZGVzY2VuZGFudCB0byBzY3JvbGwgaW50ZXJuYWxseSBpbnN0ZWFkIG9mIGluZmxhdGluZyBldmVyeSBhbmNlc3Rvci5cbiAqIC0gYSBudW1iZXI6IGxpa2UgYFwic2hyaW5rYWJsZVwiYCwgYnV0IHRha2luZyB0aGF0IG1hbnkgc2hhcmVzIG9mIHRoZVxuICogICByZW1haW5pbmcgc3BhY2UgaW5zdGVhZCBvZiBvbmUgKGBmbGV4LWdyb3dgKSwgZm9yIHdlaWdodGVkIHNwbGl0cyBiZXR3ZWVuXG4gKiAgIHNpYmxpbmdzLlxuICogLSBgXCJmaXhlZFwiYDogdGhlIG9wcG9zaXRlIFx1MjAxNCBrZWVwIHRoZSBpdGVtJ3Mgb3duIHNpemUgKGBmbGV4LXNocmluazogMGApLFxuICogICBvcHRpbmcgb3V0IG9mIHRoZSBzaHJpbmsgbmVnb3RpYXRpb24gZW50aXJlbHkgKGUuZy4gYSBjb250ZW50LWh1Z2dpbmdcbiAqICAgcGFuZWwgbmV4dCB0byBhIGZpbGxpbmcgb25lKS5cbiAqL1xuZXhwb3J0IHR5cGUgRmxleENoaWxkUGx1Z2luUHJvcHMgPSB7ICRmbGV4Q2hpbGQ/OiBib29sZWFuIHwgbnVtYmVyIHwgXCJzaHJpbmthYmxlXCIgfCBcImZpeGVkXCIgfTtcblxuZXhwb3J0IGNvbnN0IGZsZXhDaGlsZFBsdWdpbiA9IGdldFBsdWdpbjxGbGV4Q2hpbGRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW4sIHR5cGVvZiBzdHlsZVBsdWdpbl0+KFxuICAocHJvcHMpID0+IHtcbiAgICBjb25zdCB3ZWlnaHQgPSB0eXBlb2YgcHJvcHMuJGZsZXhDaGlsZCA9PT0gXCJudW1iZXJcIiA/IHByb3BzLiRmbGV4Q2hpbGQgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2hyaW5rYWJsZSA9IHByb3BzLiRmbGV4Q2hpbGQgPT09IFwic2hyaW5rYWJsZVwiIHx8IHdlaWdodCAhPT0gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICRjbGFzc05hbWU6IFtcbiAgICAgICAgcHJvcHMuJGZsZXhDaGlsZCA9PT0gdHJ1ZSB8fCBzaHJpbmthYmxlID8gZmxleENoaWxkU3R5bGVzW1wiZmxleC1jaGlsZFwiXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgc2hyaW5rYWJsZSA/IGZsZXhDaGlsZFN0eWxlc1tcImZsZXgtY2hpbGQtLXNocmlua2FibGVcIl0gOiB1bmRlZmluZWQsXG4gICAgICAgIHByb3BzLiRmbGV4Q2hpbGQgPT09IFwiZml4ZWRcIiA/IGZsZXhDaGlsZFN0eWxlc1tcImZsZXgtY2hpbGQtLWZpeGVkXCJdIDogdW5kZWZpbmVkLFxuICAgICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgICAgXSxcbiAgICAgICRzdHlsZTogd2VpZ2h0ID09PSB1bmRlZmluZWQgPyBwcm9wcy4kc3R5bGUgOiB7IC4uLnByb3BzLiRzdHlsZSwgZmxleEdyb3c6IHdlaWdodCB9LFxuICAgICAgJGZsZXhDaGlsZDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG4pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgZ3JheXNjYWxlU3R5bGVzIGZyb20gXCIuL2dyYXlzY2FsZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBHcmF5c2NhbGVQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqXG4gICAqIEZ1bGx5IGRlc2F0dXJhdGVzIHRoZSBlbGVtZW50IChgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSlgKSB3aGVuIGB0cnVlYCBcdTIwMTQgc29cbiAgICogZXZlbiBmaXhlZC1jb2xvdXIgY29udGVudCAoZS5nLiBicmFuZCBsb2dvcykgZ3JleXMgb3V0LCBub3QganVzdCB0aGVtZWRcbiAgICogY29sb3Vycy4gQ29tYmluZSB3aXRoIGAkZmFkZWRgIHRvIGRlLWVtcGhhc2lzZSBhbiB1bmF2YWlsYWJsZSBpdGVtLlxuICAgKi9cbiAgJGdyYXlzY2FsZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgZ3JheXNjYWxlUGx1Z2luID0gZ2V0UGx1Z2luPEdyYXlzY2FsZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHByb3BzLiRncmF5c2NhbGUgPyBncmF5c2NhbGVTdHlsZXMuZ3JheXNjYWxlIDogdW5kZWZpbmVkXSxcbiAgJGdyYXlzY2FsZTogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBzdHlsZVBsdWdpbiB9IGZyb20gXCIuLi9zdHlsZS9zdHlsZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0aW50U3R5bGVzIGZyb20gXCIuL3RpbnQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgVGludFBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBlbGVtZW50J3MgKGFuZCBpdHMgZGVzY2VuZGFudHMnKSBTVkcgYGZpbGxgIHRvIHRoaXMgY29sb3VyLCB2aWEgYSBDU1MgY3VzdG9tXG4gICAqIHByb3BlcnR5IFx1MjAxNCBgc3Ryb2tlYCBpcyBsZWZ0IHVudG91Y2hlZCwgc28gc3Ryb2tlZCBkZXRhaWxzIHN1cnZpdmUuIFVubGlrZSBgJGdyYXlzY2FsZWAgKHdoaWNoIG9ubHlcbiAgICogZGVzYXR1cmF0ZXMpIHRoaXMgcGFpbnRzIHRoZSBzaGFwZSBhbiBleGFjdCBmbGF0IGNvbG91ciB3aGlsZSByZXNwZWN0aW5nIHRyYW5zcGFyZW5jeSwgc28gYVxuICAgKiBmaXhlZC1jb2xvdXIgYnJhbmQgbWFyayBjYW4gYmUgdGludGVkIChlLmcuIGFuIEFJLXRvb2wgbG9nbyB0aW50ZWQgdG8gdGhlIGNsdXN0ZXIgY29sb3VyKS4gTGVhdmVcbiAgICogdW5zZXQgdG8gcmVuZGVyIHRoZSBlbGVtZW50J3MgbmF0dXJhbCBjb2xvdXJzLlxuICAgKi9cbiAgJHRpbnQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3QgdGludFBsdWdpbiA9IGdldFBsdWdpbjxUaW50UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luLCB0eXBlb2Ygc3R5bGVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwcm9wcy4kdGludCA/IHRpbnRTdHlsZXMudGludCA6IHVuZGVmaW5lZF0sXG4gIC8vIFRoZSB0aW50IGNvbG91ciBpcyBleHBvc2VkIGFzIGEgY3VzdG9tIHByb3BlcnR5IHRoZSBgLnRpbnRgIGNsYXNzIHJlYWRzIChgZmlsbDogdmFyKC0tZWxlbWVudC10aW50KWApLlxuICAkc3R5bGU6IHByb3BzLiR0aW50ID8gKHsgLi4ucHJvcHMuJHN0eWxlLCBcIi0tZWxlbWVudC10aW50XCI6IHByb3BzLiR0aW50IH0gYXMgUmVhY3QuQ1NTUHJvcGVydGllcykgOiBwcm9wcy4kc3R5bGUsXG4gICR0aW50OiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBmYWRlZFN0eWxlcyBmcm9tIFwiLi9mYWRlZC5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBGYWRlZFBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogRmFkZXMgdGhlIGVsZW1lbnQgKGBvcGFjaXR5OiA1MCVgKSB3aGVuIGB0cnVlYC4gQ29tYmluZSB3aXRoIGAkZ3JheXNjYWxlYFxuICAgKiB0byBkZS1lbXBoYXNpc2UgYW4gdW5hdmFpbGFibGUgaXRlbS5cbiAgICovXG4gICRmYWRlZD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgZmFkZWRQbHVnaW4gPSBnZXRQbHVnaW48RmFkZWRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwcm9wcy4kZmFkZWQgPyBmYWRlZFN0eWxlcy5mYWRlZCA6IHVuZGVmaW5lZF0sXG4gICRmYWRlZDogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMsIHR5cGUgQ29udHJpYnV0ZVJlZiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB0eXBlIHsgSU9ic2VydmFibGVWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyB1c2VVcGRhdGVXaGVuUHJvcHNDaGFuZ2UgfSBmcm9tIFwiLi9fcHJpdmF0ZS91c2UtdXBkYXRlLXdoZW4tcHJvcHMtY2hhbmdlXCI7XG5pbXBvcnQgeyB1c2VDbGVhbnVwT25Vbm1vdW50IH0gZnJvbSBcIi4vX3ByaXZhdGUvdXNlLWNsZWFudXAtb24tdW5tb3VudFwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgeyB1c2VLZXlib2FyZE5hdmlnYXRpb24gfSBmcm9tIFwiLi9fcHJpdmF0ZS91c2Uta2V5Ym9hcmQtbmF2aWdhdGlvblwiO1xuaW1wb3J0IHsgaGFuZGxlRm9jdXNGb3IgfSBmcm9tIFwiLi9fcHJpdmF0ZS9oYW5kbGUtZm9jdXNcIjtcbmltcG9ydCB7IGhhbmRsZUJsdXJGb3IgfSBmcm9tIFwiLi9fcHJpdmF0ZS9oYW5kbGUtYmx1clwiO1xuaW1wb3J0IHsgdXNlUHJvZ3JhbW1hdGljRm9jdXNpbmcgfSBmcm9tIFwiLi9fcHJpdmF0ZS91c2UtcHJvZ3JhbW1hdGljLWZvY3VzaW5nXCI7XG5pbXBvcnQgdHlwZSB7IHJlZlBsdWdpbiB9IGZyb20gXCIuLi9yZWYvcmVmXCI7XG5cbmV4cG9ydCB0eXBlIEZvY3VzYWJsZVBsdWdpblByb3BzPFQsIEZvY3VzZWRJdGVtID0gYW55PiA9IHtcbiAgJGZvY3VzYWJsZT86IHtcbiAgICBjb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPjtcbiAgICBpdGVtOiBGb2N1c2VkSXRlbTtcbiAgICBvcmRlck51bWJlcj86IG51bWJlcjtcbiAgfTtcblxuICBvbkZvY3VzPzogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8VD47XG4gIG9uQmx1cj86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPFQ+O1xuICBvbktleURvd24/OiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxUPjtcbiAgdGFiSW5kZXg/OiBIVE1MRWxlbWVudFtcInRhYkluZGV4XCJdO1xufTtcblxudHlwZSBGb2N1c2FibGVXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGZvY3VzYWJsZToge1xuICAgIGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8YW55PjtcbiAgICBpdGVtOiBhbnk7XG4gICAgb3JkZXJOdW1iZXI/OiBudW1iZXI7XG4gIH07XG4gIHJlYWRvbmx5IHRhYkluZGV4OiBudW1iZXI7XG4gIHJlYWRvbmx5IG9uRm9jdXM/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxhbnk+O1xuICByZWFkb25seSBvbkJsdXI/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxhbnk+O1xuICByZWFkb25seSBvbktleURvd24/OiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxhbnk+O1xuICByZWFkb25seSBjb250cmlidXRlUmVmOiBDb250cmlidXRlUmVmO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IEZvY3VzYWJsZVdyYXBwZXJDb21wb25lbnQgPSAoe1xuICBmb2N1c2FibGUsXG4gIHRhYkluZGV4LFxuICBvbkZvY3VzLFxuICBvbkJsdXIsXG4gIG9uS2V5RG93bixcbiAgY29udHJpYnV0ZVJlZixcbiAgY29udHJpYnV0ZVByb3BzLFxuICBjaGlsZHJlbixcbn06IEZvY3VzYWJsZVdyYXBwZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IGNvbnRleHQ6IGZvY3VzYWJsZUNvbnRleHQsIGl0ZW06IGZvY3VzYWJsZUl0ZW0sIG9yZGVyTnVtYmVyIH0gPSBmb2N1c2FibGU7XG5cbiAgY29uc3QgW2VsZW1lbnQsIHNldEVsZW1lbnRdID0gdXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29udHJpYnV0ZVJlZihzZXRFbGVtZW50KTtcblxuICBjb25zdCBodG1sRWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudD4odW5kZWZpbmVkKTtcbiAgaHRtbEVsZW1lbnRSZWYuY3VycmVudCA9IChlbGVtZW50ID8/IHVuZGVmaW5lZCkgYXMgSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3QgaHRtbEVsZW1lbnRJc0ZvY3VzZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBvbGRTdGF0ZVJlZiA9IHVzZVJlZjxJT2JzZXJ2YWJsZVZhbHVlPHVua25vd24+Pih1bmRlZmluZWQpO1xuXG4gIGNvbnN0IHN0YXRlID0gdXNlU3luY0luamVjdChmb2N1c2FibGVJdGVtU3RhdGVJbmplY3RhYmxlLCBmb2N1c2FibGVDb250ZXh0KTtcblxuICB1c2VVcGRhdGVXaGVuUHJvcHNDaGFuZ2UoaHRtbEVsZW1lbnRJc0ZvY3VzZWRSZWYsIG9sZFN0YXRlUmVmLCBzdGF0ZSwgZm9jdXNhYmxlSXRlbSk7XG4gIHVzZUNsZWFudXBPblVubW91bnQoaHRtbEVsZW1lbnRJc0ZvY3VzZWRSZWYsIG9sZFN0YXRlUmVmKTtcbiAgdXNlUHJvZ3JhbW1hdGljRm9jdXNpbmcoZm9jdXNhYmxlQ29udGV4dCwgZm9jdXNhYmxlSXRlbSwgaHRtbEVsZW1lbnRSZWYpO1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzID0gaGFuZGxlRm9jdXNGb3Ioc3RhdGUsIGZvY3VzYWJsZUl0ZW0sIGZvY3VzYWJsZUNvbnRleHQsIGh0bWxFbGVtZW50SXNGb2N1c2VkUmVmKTtcbiAgY29uc3QgaGFuZGxlQmx1ciA9IGhhbmRsZUJsdXJGb3IoZm9jdXNhYmxlQ29udGV4dCwgc3RhdGUsIGh0bWxFbGVtZW50SXNGb2N1c2VkUmVmKTtcblxuICBjb25zdCBrZXlib2FyZE5hdmlnYXRpb24gPSB1c2VLZXlib2FyZE5hdmlnYXRpb24oXG4gICAgZm9jdXNhYmxlQ29udGV4dC5pc0tleWJvYXJkTmF2aWdhYmxlID8gZm9jdXNhYmxlQ29udGV4dCA6IHVuZGVmaW5lZCxcbiAgICBmb2N1c2FibGVJdGVtLFxuICAgIG9yZGVyTnVtYmVyLFxuICAgIGVsZW1lbnQsXG4gICk7XG5cbiAgY29udHJpYnV0ZVByb3BzKHtcbiAgICB0YWJJbmRleCxcblxuICAgIG9uRm9jdXM6IChlOiBSZWFjdC5Gb2N1c0V2ZW50PGFueT4pID0+IHtcbiAgICAgIGhhbmRsZUZvY3VzKGUpO1xuICAgICAga2V5Ym9hcmROYXZpZ2F0aW9uLm9uRm9jdXMoKTtcbiAgICAgIG9uRm9jdXM/LihlKTtcbiAgICB9LFxuXG4gICAgb25CbHVyOiAoZTogUmVhY3QuRm9jdXNFdmVudDxhbnk+KSA9PiB7XG4gICAgICBpZiAoIWh0bWxFbGVtZW50UmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgaGFuZGxlQmx1cihlKTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGUpO1xuICAgIH0sXG5cbiAgICBvbktleURvd246IChlOiBSZWFjdC5LZXlib2FyZEV2ZW50PGFueT4pID0+IHtcbiAgICAgIG9uS2V5RG93bj8uKGUpO1xuICAgICAga2V5Ym9hcmROYXZpZ2F0aW9uLm9uS2V5RG93bihlKTtcbiAgICB9LFxuXG4gICAgb25Nb3VzZUVudGVyOiBrZXlib2FyZE5hdmlnYXRpb24uZm9jdXNXaGF0VGhlUG9pbnRlcklzT24sXG4gICAgb25Nb3VzZU1vdmU6IGtleWJvYXJkTmF2aWdhdGlvbi5mb2N1c1doYXRUaGVQb2ludGVySXNPbixcbiAgfSk7XG5cbiAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmb2N1c2FibGVQbHVnaW48VD4oKSB7XG4gIHJldHVybiBnZXRQbHVnaW48Rm9jdXNhYmxlUGx1Z2luUHJvcHM8VD4sIFtSZXR1cm5UeXBlPHR5cGVvZiByZWZQbHVnaW48VD4+XT4oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyAkZm9jdXNhYmxlLCB0YWJJbmRleCwgb25CbHVyLCBvbkZvY3VzLCBvbktleURvd24gfSA9IHByb3BzO1xuXG4gICAgaWYgKCEkZm9jdXNhYmxlKSB7XG4gICAgICByZXR1cm4geyAkZm9jdXNhYmxlOiB1bmRlZmluZWQgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJGZvY3VzYWJsZTogdW5kZWZpbmVkLFxuICAgICAgJHdyYXBwZXI6IHtcbiAgICAgICAgQ29tcG9uZW50OiBGb2N1c2FibGVXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIGZvY3VzYWJsZTogJGZvY3VzYWJsZSxcbiAgICAgICAgICB0YWJJbmRleDogdGFiSW5kZXggPz8gLTEsXG4gICAgICAgICAgb25Gb2N1cyxcbiAgICAgICAgICBvbkJsdXIsXG4gICAgICAgICAgb25LZXlEb3duLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBhc3NlcnREZWZpbmVkIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIHsgSU9ic2VydmFibGVWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHR5cGUgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgdXNlVXBkYXRlV2hlblByb3BzQ2hhbmdlID0gKFxuICBmb2N1c2VkUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGJvb2xlYW4+LFxuICBvbGRTdGF0ZVJlZjogTXV0YWJsZVJlZk9iamVjdDxJT2JzZXJ2YWJsZVZhbHVlPHVua25vd24+IHwgdW5kZWZpbmVkPixcbiAgc3RhdGU6IElPYnNlcnZhYmxlVmFsdWU8dW5rbm93bj4sXG4gIGZvY3VzYWJsZUl0ZW06IHVua25vd24sXG4pID0+IHtcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29ycmVjdG5lc3MvdXNlRXhoYXVzdGl2ZURlcGVuZGVuY2llczogcmVtb3ZlIHdoZW4gcG9zc2libGVcbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmIChmb2N1c2VkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcnVuSW5BY3Rpb24oKCkgPT4ge1xuICAgICAgICAgIHN0YXRlLnNldChmb2N1c2FibGVJdGVtKTtcblxuICAgICAgICAgIGNvbnN0IGNvbnRleHRIYXNDaGFuZ2VkID0gb2xkU3RhdGVSZWYuY3VycmVudCAhPT0gc3RhdGU7XG5cbiAgICAgICAgICBpZiAoY29udGV4dEhhc0NoYW5nZWQgJiYgb2xkU3RhdGVSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgYXNzZXJ0RGVmaW5lZChvbGRTdGF0ZVJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIG9sZFN0YXRlUmVmLmN1cnJlbnQuc2V0KHVuZGVmaW5lZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgb2xkU3RhdGVSZWYuY3VycmVudCA9IHN0YXRlO1xuICAgIH0sXG4gICAgLy8gTm90ZTogZm9jdXNlZFJlZiBhbmQgb2xkU3RhdGVSZWYgbmV2ZXIgY2hhbmdlLlxuICAgIFtmb2N1c2FibGVJdGVtLCBzdGF0ZV0sXG4gICk7XG59O1xuIiwgImltcG9ydCB7IGFzc2VydERlZmluZWQgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyBJT2JzZXJ2YWJsZVZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHJ1bkluQWN0aW9uIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdHlwZSBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCB1c2VDbGVhbnVwT25Vbm1vdW50ID0gKFxuICBmb2N1c2VkUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGJvb2xlYW4+LFxuICBvbGRTdGF0ZVJlZjogTXV0YWJsZVJlZk9iamVjdDxJT2JzZXJ2YWJsZVZhbHVlPHVua25vd24+IHwgdW5kZWZpbmVkPixcbikgPT4ge1xuICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiByZW1vdmUgd2hlbiBwb3NzaWJsZVxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4gKCkgPT4ge1xuICAgICAgaWYgKGZvY3VzZWRSZWYuY3VycmVudCkge1xuICAgICAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICAgICAgYXNzZXJ0RGVmaW5lZChvbGRTdGF0ZVJlZi5jdXJyZW50KTtcbiAgICAgICAgICBvbGRTdGF0ZVJlZi5jdXJyZW50LnNldCh1bmRlZmluZWQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLy8gTm90ZTogZm9jdXNlZFJlZiBhbmQgb2xkU3RhdGVSZWYgbmV2ZXIgY2hhbmdlLlxuICAgIFtdLFxuICApO1xufTtcbiIsICJpbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHtcbiAga2V5Ym9hcmROYXZpZ2F0aW9uU3RhdGVJbmplY3RhYmxlLFxuICB0eXBlIE5hdmlnYWJsZUVudHJ5LFxufSBmcm9tIFwiLi4vX3NoYXJlZC9rZXlib2FyZC1uYXZpZ2F0aW9uLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0LCBLZXlib2FyZE5hdmlnYXRpb25PcmllbnRhdGlvbiB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxudHlwZSBLZXlib2FyZE5hdmlnYXRpb24gPSB7XG4gIHJlYWRvbmx5IG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xuICByZWFkb25seSBvbkZvY3VzOiAoKSA9PiB2b2lkO1xuICByZWFkb25seSBmb2N1c1doYXRUaGVQb2ludGVySXNPbjogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB2b2lkO1xufTtcblxuY29uc3Qgbm9LZXlib2FyZE5hdmlnYXRpb246IEtleWJvYXJkTmF2aWdhdGlvbiA9IHtcbiAgb25LZXlEb3duOiAoKSA9PiB7fSxcbiAgb25Gb2N1czogKCkgPT4ge30sXG4gIGZvY3VzV2hhdFRoZVBvaW50ZXJJc09uOiAoKSA9PiB7fSxcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VLZXlib2FyZE5hdmlnYXRpb24gPSAoXG4gIGNvbnRleHQ6IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dDxhbnk+IHwgdW5kZWZpbmVkLFxuICBpdGVtOiB1bmtub3duLFxuICBvcmRlck51bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwsXG4pOiBLZXlib2FyZE5hdmlnYXRpb24gPT4ge1xuICBjb25zdCBuYXZpZ2F0aW9uID0gdXNlU3luY0luamVjdChrZXlib2FyZE5hdmlnYXRpb25TdGF0ZUluamVjdGFibGUpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjb250ZXh0IHx8ICFlbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnk6IE5hdmlnYWJsZUVudHJ5ID0geyBpdGVtLCBvcmRlck51bWJlcjogb3JkZXJOdW1iZXIgPz8gMCwgZWxlbWVudCB9O1xuXG4gICAgbmF2aWdhdGlvbi5yZWdpc3Rlcihjb250ZXh0LCBlbnRyeSk7XG5cbiAgICBjb25zdCBmb2N1c1doYXRTaG91bGRIYXZlRm9jdXMgPSAoKSA9PiB7XG4gICAgICAvLyBPbmx5IHdpdGhpbiB0aGUgd2luZG93IHRoZSB1c2VyIGlzIGFjdHVhbGx5IGluLiBMZW5zIERlc2t0b3AgaXMgbW9yZSB0aGFuIG9uZSB3aW5kb3csXG4gICAgICAvLyBhbmQgZm9jdXNpbmcgYW4gZWxlbWVudCBvZiBhIHdpbmRvdyB0aGF0IGRvZXMgbm90IGhhdmUgZm9jdXMgaXMgaG93IGEgYnJvd3NlciBpcyBhc2tlZFxuICAgICAgLy8gdG8gYnJpbmcgdGhhdCB3aW5kb3cgdG8gdGhlIGZyb250OiBhIGxpc3QgdXBkYXRpbmcgaW4gdGhlIGFwcGxpY2F0aW9uIHdpbmRvdyB3aGlsZSB0aGVcbiAgICAgIC8vIHVzZXIgcmVhZHMgYSBzdWItd2luZG93IHdvdWxkIGtlZXAgc25hdGNoaW5nIHRoZSBzdWItd2luZG93J3MgZm9jdXMgYXdheS4gV2hpY2ggbWVtYmVyXG4gICAgICAvLyB0aGlzIHdpbmRvdyBpcyBvbiBpcyBzdGlsbCByZW1lbWJlcmVkLCBzbyBpdCBsYW5kcyB0aGVyZSB3aGVuIHRoZSB1c2VyIGNvbWVzIGJhY2suXG4gICAgICBpZiAoIWRvY3VtZW50Lmhhc0ZvY3VzKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250ZXh0SW5Gb2N1cyA9IG5hdmlnYXRpb24uY29udGV4dEluRm9jdXMoKTtcblxuICAgICAgaWYgKCFjb250ZXh0SW5Gb2N1cykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVudHJpZXMgPSBuYXZpZ2F0aW9uLnNvcnRlZEVudHJpZXNPZihjb250ZXh0SW5Gb2N1cyk7XG5cbiAgICAgIC8vIFRoZSBtZW1iZXIgdGhhdCBjb250ZXh0IHdhcyBsZWZ0IG9uLCBzbyBzdGVwcGluZyBpbnRvIHNvbWV0aGluZyBhbmQgYmFjayBvdXQgb2YgaXQgbGFuZHNcbiAgICAgIC8vIHdoZXJlIGl0IHN0YXJ0ZWQuIE9ubHkgdGhlIGxvd2VzdCBvcmRlciBudW1iZXIgd2hlbiBpdCB3YXMgbmV2ZXIgbGVmdCBhbnl3aGVyZTogdGhhdCBpcyBhXG4gICAgICAvLyBzZXQgb2YgbWVtYmVycyBhcHBlYXJpbmcgcmF0aGVyIHRoYW4gb25lIGJlaW5nIHJldHVybmVkIHRvIFx1MjAxNCBhbmQgYSBzZXQgdGhhdCBsZWF2ZXMgZm9jdXNcbiAgICAgIC8vIHdoZXJlIGl0IGlzIGFzIGl0IGFwcGVhcnMgaGFzIG5vdGhpbmcgdG8gb2ZmZXIgdW50aWwgb25lIG9mIGl0cyBtZW1iZXJzIGhhcyBoYWQgZm9jdXMuXG4gICAgICBjb25zdCBpdGVtSW5Gb2N1cyA9IG5hdmlnYXRpb24uaXRlbUluRm9jdXNPZihjb250ZXh0SW5Gb2N1cyk7XG4gICAgICBjb25zdCB0b0ZvY3VzID1cbiAgICAgICAgZW50cmllcy5maW5kKChjYW5kaWRhdGUpID0+IGNhbmRpZGF0ZS5pdGVtID09PSBpdGVtSW5Gb2N1cykgPz9cbiAgICAgICAgKGNvbnRleHRJbkZvY3VzLnRha2VzRm9jdXNBc0l0QXBwZWFycyA/IGVudHJpZXNbMF0gOiB1bmRlZmluZWQpO1xuXG4gICAgICBpZiAodG9Gb2N1cz8uZWxlbWVudC5pc0Nvbm5lY3RlZCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSB0b0ZvY3VzLmVsZW1lbnQpIHtcbiAgICAgICAgdG9Gb2N1cy5lbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIERlZmVycmVkIHNvIHRoYXQgZXZlcnl0aGluZyBhcHBlYXJpbmcgdG9nZXRoZXIgaGFzIHJlZ2lzdGVyZWQsIGFuZCB0aGUgbG93ZXN0IG9yZGVyIG51bWJlciBvZlxuICAgIC8vIHRoZSB3aG9sZSBzZXQgd2lucyByYXRoZXIgdGhhbiB3aGljaGV2ZXIgYXBwZWFyZWQgZmlyc3QuXG4gICAgdm9pZCBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZvY3VzV2hhdFNob3VsZEhhdmVGb2N1cyk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgbmF2aWdhdGlvbi5kZXJlZ2lzdGVyKGNvbnRleHQsIGVudHJ5KTtcblxuICAgICAgdm9pZCBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZvY3VzV2hhdFNob3VsZEhhdmVGb2N1cyk7XG4gICAgfTtcbiAgfSwgW25hdmlnYXRpb24sIGNvbnRleHQsIGl0ZW0sIG9yZGVyTnVtYmVyLCBlbGVtZW50XSk7XG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgcmV0dXJuIG5vS2V5Ym9hcmROYXZpZ2F0aW9uO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBXaGljaCBtZW1iZXIgdGhlIGNvbnRleHQgaXMgb24sIHJlbWVtYmVyZWQgZm9yIGFzIGxvbmcgYXMgaXRzIG1lbWJlcnMgYXJlIHRoZXJlOiBpdCBpcyB3aGF0XG4gICAgLy8gZm9jdXMgcmV0dXJucyB0byB3aGVuIHNvbWV0aGluZyB0aGF0IHRvb2sgZm9jdXMgb3ZlciBnb2VzIGF3YXkgYWdhaW4uXG4gICAgb25Gb2N1czogKCkgPT4gbmF2aWdhdGlvbi5ub3RlSXRlbUluRm9jdXMoY29udGV4dCwgaXRlbSksXG5cbiAgICAvLyBXaGVyZSB0aGUgcG9pbnRlciBnb2VzLCBmb2N1cyBnb2VzOiB0aGUgbWVtYmVyIHVuZGVyIGl0IGJlY29tZXMgdGhlIGZvY3VzZWQgb25lLCBzbyBhcnJvd2luZ1xuICAgIC8vIG9uIGZyb20gdGhlcmUgY29udGludWVzIGZyb20gd2hhdCB0aGUgdXNlciBpcyBsb29raW5nIGF0IHJhdGhlciB0aGFuIGZyb20gd2hlcmV2ZXIgdGhlXG4gICAgLy8ga2V5Ym9hcmQgd2FzIGxlZnQuIFdoaWNoZXZlciBvZiB0aGUgdHdvIG1vdmVkIGxhc3QgZGVjaWRlcywgd2hpY2ggaXMgd2h5IHRoaXMgYW5zd2VycyB0byB0aGVcbiAgICAvLyBwb2ludGVyIG1vdmluZyBhcyB3ZWxsIGFzIHRvIGl0IGFycml2aW5nIFx1MjAxNCB0aGUga2V5Ym9hcmQgbWF5IGhhdmUgdGFrZW4gZm9jdXMgZWxzZXdoZXJlIHdoaWxlXG4gICAgLy8gdGhlIHBvaW50ZXIgcmVzdGVkIHdoZXJlIGl0IHdhcywgYW5kIG1vdmluZyBpdCBhdCBhbGwgaXMgdGhlIHVzZXIgcG9pbnRpbmcgYWdhaW4uXG4gICAgLy9cbiAgICAvLyBUaGUgZWxlbWVudCBjb21lcyBmcm9tIHRoZSBldmVudCByYXRoZXIgdGhhbiBmcm9tIHRoZSByZW5kZXIgdGhpcyBoYW5kbGVyIHdhcyBjcmVhdGVkIGluOlxuICAgIC8vIHRoZSBoYW5kbGVyIHRoZSBET00gZW5kcyB1cCB3aXRoIGlzIHRoZSBvbmUgZnJvbSB0aGUgZmlyc3QgcmVuZGVyLCB3aGVuIHRoZXJlIHdhcyBubyBlbGVtZW50XG4gICAgLy8geWV0IFx1MjAxNCBSZWFjdCBoYXMgbm8gcmVhc29uIHRvIHJlbmRlciB0aGUgZWxlbWVudCBhZ2FpbiBmb3IgYSB3cmFwcGVyJ3Mgb3duIHN0YXRlLlxuICAgIGZvY3VzV2hhdFRoZVBvaW50ZXJJc09uOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGhvdmVyZWQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gaG92ZXJlZCkge1xuICAgICAgICBob3ZlcmVkLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBzdGVwID0gc3RlcE9mKGV2ZW50LmtleSwgY29udGV4dC5vcmllbnRhdGlvbik7XG5cbiAgICAgIGlmIChzdGVwID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnRyaWVzID0gbmF2aWdhdGlvbi5zb3J0ZWRFbnRyaWVzT2YoY29udGV4dCk7XG5cbiAgICAgIGlmIChlbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGVudHJpZXMuZmluZEluZGV4KChjYW5kaWRhdGUpID0+IGNhbmRpZGF0ZS5pdGVtID09PSBpdGVtKTtcblxuICAgICAgY29uc3QgbmV4dEluZGV4ID1cbiAgICAgICAgc3RlcCA9PT0gXCJmaXJzdFwiXG4gICAgICAgICAgPyAwXG4gICAgICAgICAgOiBzdGVwID09PSBcImxhc3RcIlxuICAgICAgICAgICAgPyBlbnRyaWVzLmxlbmd0aCAtIDFcbiAgICAgICAgICAgIDogKGN1cnJlbnRJbmRleCArIHN0ZXAgKyBlbnRyaWVzLmxlbmd0aCkgJSBlbnRyaWVzLmxlbmd0aDtcblxuICAgICAgY29uc3QgbmV4dCA9IGVudHJpZXNbbmV4dEluZGV4XTtcblxuICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbmV4dC5lbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn07XG5cbmNvbnN0IHN0ZXBPZiA9IChrZXk6IHN0cmluZywgb3JpZW50YXRpb246IEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uKSA9PiB7XG4gIHN3aXRjaCAoa2V5KSB7XG4gICAgY2FzZSBcIkFycm93RG93blwiOlxuICAgICAgcmV0dXJuIG9yaWVudGF0aW9uID09PSBcImhvcml6b250YWxcIiA/IHVuZGVmaW5lZCA6IDE7XG4gICAgY2FzZSBcIkFycm93UmlnaHRcIjpcbiAgICAgIHJldHVybiBvcmllbnRhdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiID8gdW5kZWZpbmVkIDogMTtcbiAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgcmV0dXJuIG9yaWVudGF0aW9uID09PSBcImhvcml6b250YWxcIiA/IHVuZGVmaW5lZCA6IC0xO1xuICAgIGNhc2UgXCJBcnJvd0xlZnRcIjpcbiAgICAgIHJldHVybiBvcmllbnRhdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiID8gdW5kZWZpbmVkIDogLTE7XG4gICAgY2FzZSBcIkhvbWVcIjpcbiAgICAgIHJldHVybiBcImZpcnN0XCIgYXMgY29uc3Q7XG4gICAgY2FzZSBcIkVuZFwiOlxuICAgICAgcmV0dXJuIFwibGFzdFwiIGFzIGNvbnN0O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuIiwgImltcG9ydCB7IHJ1bkluQWN0aW9uLCB0eXBlIElPYnNlcnZhYmxlVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4uL2dldC1mb2N1c2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IEZvY3VzYWJsZUV2ZW50IH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtZXZlbnRcIjtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZUZvY3VzRm9yID1cbiAgPEZvY3VzYWJsZUl0ZW0+KFxuICAgIHN0YXRlOiBJT2JzZXJ2YWJsZVZhbHVlPEZvY3VzYWJsZUl0ZW0gfCB1bmRlZmluZWQ+LFxuICAgIGZvY3VzYWJsZUl0ZW06IEZvY3VzYWJsZUl0ZW0sXG4gICAgZm9jdXNhYmxlQ29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxGb2N1c2FibGVJdGVtPixcbiAgICBmb2N1c2VkUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGJvb2xlYW4+LFxuICApID0+XG4gIDxUPihldmVudDogRm9jdXNhYmxlRXZlbnQ8VD4pID0+IHtcbiAgICBjb25zdCBuYXRpdmVFdmVudCA9IGV2ZW50Lm5hdGl2ZUV2ZW50O1xuXG4gICAgbmF0aXZlRXZlbnQuYWxyZWFkeVByb2Nlc3NlZEZvY3VzYWJsZUNvbnRleHRzID8/PSBuZXcgU2V0KCk7XG5cbiAgICBpZiAobmF0aXZlRXZlbnQuYWxyZWFkeVByb2Nlc3NlZEZvY3VzYWJsZUNvbnRleHRzLmhhcyhmb2N1c2FibGVDb250ZXh0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG5hdGl2ZUV2ZW50LmFscmVhZHlQcm9jZXNzZWRGb2N1c2FibGVDb250ZXh0cy5hZGQoZm9jdXNhYmxlQ29udGV4dCk7XG5cbiAgICBmb2N1c2VkUmVmLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgcnVuSW5BY3Rpb24oKCkgPT4ge1xuICAgICAgc3RhdGUuc2V0KGZvY3VzYWJsZUl0ZW0pO1xuICAgIH0pO1xuICB9O1xuIiwgImltcG9ydCB0eXBlIHsgSU9ic2VydmFibGVWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEZvY3VzYWJsZUV2ZW50IH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtZXZlbnRcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlQmx1ckZvciA9XG4gIDxUPihcbiAgICBmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+LFxuICAgIHN0YXRlOiBJT2JzZXJ2YWJsZVZhbHVlPFQgfCB1bmRlZmluZWQ+LFxuICAgIGZvY3VzZWRSZWY6IE11dGFibGVSZWZPYmplY3Q8Ym9vbGVhbj4sXG4gICkgPT5cbiAgPFQ+KGV2ZW50OiBGb2N1c2FibGVFdmVudDxUPikgPT4ge1xuICAgIGNvbnN0IG5hdGl2ZUV2ZW50ID0gZXZlbnQubmF0aXZlRXZlbnQ7XG5cbiAgICBpZiAobmF0aXZlRXZlbnQuYWxyZWFkeVByb2Nlc3NlZEZvY3VzYWJsZUNvbnRleHRzPy5oYXMoZm9jdXNhYmxlQ29udGV4dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb2N1c2VkUmVmLmN1cnJlbnQgPSBmYWxzZTtcblxuICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgIHN0YXRlLnNldCh1bmRlZmluZWQpO1xuICAgIH0pO1xuICB9O1xuIiwgImltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVIdG1sRWxlbWVudFJlZlNldEluamVjdGFibGUgfSBmcm9tIFwiLi4vX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCBjb25zdCB1c2VQcm9ncmFtbWF0aWNGb2N1c2luZyA9IDxUPihcbiAgZm9jdXNhYmxlQ29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxUPixcbiAgZm9jdXNhYmxlSXRlbTogVCxcbiAgaHRtbEVsZW1lbnRSZWY6IE11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ+LFxuKSA9PiB7XG4gIGNvbnN0IGh0bWxFbGVtZW50c0J5Rm9jdXNhYmxlTWFwID0gdXNlU3luY0luamVjdChcbiAgICBmb2N1c2FibGVIdG1sRWxlbWVudFJlZlNldEluamVjdGFibGUsXG4gICAgZm9jdXNhYmxlQ29udGV4dCxcbiAgICBmb2N1c2FibGVJdGVtLFxuICApO1xuXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IHJlbW92ZSB3aGVuIHBvc3NpYmxlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaHRtbEVsZW1lbnRzQnlGb2N1c2FibGVNYXAuYWRkKGh0bWxFbGVtZW50UmVmKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBodG1sRWxlbWVudHNCeUZvY3VzYWJsZU1hcC5kZWxldGUoaHRtbEVsZW1lbnRSZWYpO1xuICAgIH07XG4gIH0sIFtodG1sRWxlbWVudHNCeUZvY3VzYWJsZU1hcCwgZm9jdXNhYmxlSXRlbSwgaHRtbEVsZW1lbnRSZWZdKTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGZsZXhQbHVnaW4gfSBmcm9tIFwiLi4vZmxleC9mbGV4XCI7XG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgdHlwZSB7IG92ZXJmbG93UGx1Z2luIH0gZnJvbSBcIi4uL292ZXJmbG93L292ZXJmbG93XCI7XG5cbmV4cG9ydCB0eXBlIEFyZWFQbHVnaW5Qcm9wcyA9IHsgJGFyZWE/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBhcmVhUGx1Z2luID0gZ2V0UGx1Z2luPEFyZWFQbHVnaW5Qcm9wcywgW3R5cGVvZiBmbGV4UGx1Z2luLCB0eXBlb2Ygb3ZlcmZsb3dQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgZXhwbGljaXRGbGV4UHJvcHMgPSBpc09iamVjdChwcm9wcy4kZmxleCkgPyBwcm9wcy4kZmxleCA6IHt9O1xuXG4gIHJldHVybiB7XG4gICAgJGFyZWE6IHVuZGVmaW5lZCxcblxuICAgICRmbGV4OiBwcm9wcy4kYXJlYVxuICAgICAgPyB7XG4gICAgICAgICAgdmVydGljYWxBbGlnbjogXCJzdHJldGNoXCIsXG4gICAgICAgICAgaG9yaXpvbnRhbEFsaWduOiBcInN0cmV0Y2hcIixcbiAgICAgICAgICAuLi5leHBsaWNpdEZsZXhQcm9wcyxcbiAgICAgICAgfVxuICAgICAgOiBwcm9wcy4kZmxleCxcblxuICAgICRvdmVyZmxvdzogcHJvcHMuJG92ZXJmbG93ID8/IChwcm9wcy4kYXJlYSA/IFwiaGlkZGVuXCIgOiB1bmRlZmluZWQpLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGZsZXhDaGlsZFBsdWdpbiB9IGZyb20gXCIuLi9mbGV4LWNoaWxkL2ZsZXgtY2hpbGRcIjtcblxuZXhwb3J0IHR5cGUgQXJlYUNvbnRlbnRQbHVnaW5Qcm9wcyA9IHsgJGFyZWFDb250ZW50PzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgYXJlYUNvbnRlbnRQbHVnaW4gPSBnZXRQbHVnaW48QXJlYUNvbnRlbnRQbHVnaW5Qcm9wcywgW3R5cGVvZiBmbGV4Q2hpbGRQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRhcmVhQ29udGVudDogdW5kZWZpbmVkLFxuICAkZmxleENoaWxkOiBwcm9wcy4kYXJlYUNvbnRlbnQgPyB0cnVlIDogcHJvcHMuJGZsZXhDaGlsZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5pbXBvcnQgdHlwZSB7IHdpZHRoUGx1Z2luIH0gZnJvbSBcIi4uL3dpZHRoL3dpZHRoXCI7XG5pbXBvcnQgdHlwZSB7IGhlaWdodFBsdWdpbiB9IGZyb20gXCIuLi9oZWlnaHQvaGVpZ2h0XCI7XG5cbmV4cG9ydCB0eXBlICRTaXplUHJvcHMgPSB7XG4gIHNpemU/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCBcImF1dG9cIjtcbiAgbWluPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiO1xuICBtYXg/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCI7XG59O1xuXG5leHBvcnQgdHlwZSBTaXplUGx1Z2luUHJvcHMgPSB7ICRzaXplPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgJFNpemVQcm9wcyB9O1xuXG5leHBvcnQgY29uc3Qgc2l6ZVBsdWdpbiA9IGdldFBsdWdpbjxTaXplUGx1Z2luUHJvcHMsIFt0eXBlb2Ygd2lkdGhQbHVnaW4sIHR5cGVvZiBoZWlnaHRQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkc2l6ZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkc2l6ZSkge1xuICAgIHJldHVybiB7ICRzaXplOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IHsgc2l6ZSwgbWluLCBtYXggfSA9IHR5cGVvZiAkc2l6ZSA9PT0gXCJzdHJpbmdcIiA/IHsgc2l6ZTogJHNpemUgfSA6ICRzaXplO1xuXG4gIHJldHVybiB7XG4gICAgJGhlaWdodDogeyBoZWlnaHQ6IHNpemUsIG1pbiwgbWF4IH0sXG4gICAgJHdpZHRoOiB7IHdpZHRoOiBzaXplLCBtaW4sIG1heCB9LFxuICAgICRzaXplOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgcmF3U3R5bGVzIGZyb20gXCIuL2N1cnNvci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IHNhbml0aXplU2Nzc01vZHVsZXMgfSBmcm9tIFwiQGs4c2xlbnMvdGVzdC11dGlsc1wiO1xuXG5jb25zdCBzdHlsZXMgPSBzYW5pdGl6ZVNjc3NNb2R1bGVzKHJhd1N0eWxlcyk7XG5cbmV4cG9ydCB0eXBlICRDdXJzb3JQcm9wcyA9XG4gIHwgXCJhbGlhc1wiXG4gIHwgXCJhbGwtc2Nyb2xsXCJcbiAgfCBcImNlbGxcIlxuICB8IFwiY29sdW1uLXJlc2l6ZVwiXG4gIHwgXCJjb250ZXh0LW1lbnVcIlxuICB8IFwiY29weVwiXG4gIHwgXCJjcm9zc2hhaXJcIlxuICB8IFwiZGVmYXVsdFwiXG4gIHwgXCJlYXN0LXJlc2l6ZVwiXG4gIHwgXCJlYXN0LWFuZC13ZXN0LXJlc2l6ZVwiXG4gIHwgXCJncmFiXCJcbiAgfCBcImdyYWJiaW5nXCJcbiAgfCBcImhlbHBcIlxuICB8IFwibW92ZVwiXG4gIHwgXCJub3J0aC1yZXNpemVcIlxuICB8IFwibm9ydGhlYXN0LXJlc2l6ZVwiXG4gIHwgXCJub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVcIlxuICB8IFwibm8tZHJvcFwiXG4gIHwgXCJub25lXCJcbiAgfCBcIm5vdC1hbGxvd2VkXCJcbiAgfCBcIm5vcnRoLWFuZC1zb3V0aC1yZXNpemVcIlxuICB8IFwibm9ydGh3ZXN0LXJlc2l6ZVwiXG4gIHwgXCJub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVcIlxuICB8IFwicG9pbnRlclwiXG4gIHwgXCJwcm9ncmVzc1wiXG4gIHwgXCJyb3ctcmVzaXplXCJcbiAgfCBcInNvdXRoLXJlc2l6ZVwiXG4gIHwgXCJzb3V0aGVhc3QtcmVzaXplXCJcbiAgfCBcInNvdXRod2VzdC1yZXNpemVcIlxuICB8IFwidGV4dFwiXG4gIHwgXCJ2ZXJ0aWNhbC10ZXh0XCJcbiAgfCBcIndlc3QtcmVzaXplXCJcbiAgfCBcIndhaXRcIlxuICB8IFwiem9vbS1pblwiXG4gIHwgXCJ6b29tLW91dFwiO1xuXG5leHBvcnQgdHlwZSBDdXJzb3JQbHVnaW5Qcm9wcyA9IHtcbiAgJGN1cnNvcj86ICRDdXJzb3JQcm9wcztcbn07XG5cbmV4cG9ydCBjb25zdCBjdXJzb3JQbHVnaW4gPSBnZXRQbHVnaW48Q3Vyc29yUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGN1cnNvciwgJGNsYXNzTmFtZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkY3Vyc29yKSB7XG4gICAgcmV0dXJuIHsgJGN1cnNvcjogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRjdXJzb3I6IHVuZGVmaW5lZCxcbiAgICAkY2xhc3NOYW1lOiBbJGNsYXNzTmFtZSwgc3R5bGVzWyRjdXJzb3JdXSxcbiAgICBcImRhdGEtY3Vyc29yLXRlc3RcIjogJGN1cnNvcixcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgb25NaWRkbGVDbGljaywgb25UcmlnZ2VyIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBlbmFibGVkUGx1Z2luIH0gZnJvbSBcIi4uL2VuYWJsZWQvZW5hYmxlZFwiO1xuaW1wb3J0IHR5cGUgeyAkQ3Vyc29yUHJvcHMsIGN1cnNvclBsdWdpbiB9IGZyb20gXCIuLi9jdXJzb3IvY3Vyc29yXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgeyBvblJpZ2h0VHJpZ2dlckluamVjdGFibGUgfSBmcm9tIFwiLi9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgUG9zaXRpb24yZCA9IHtcbiAgcmVhZG9ubHkgeDogbnVtYmVyO1xuICByZWFkb25seSB5OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBDbGlja0hhbmRsZXJEZXRhaWxzID0ge1xuICByZWFkb25seSBjdXJzb3I6IFBvc2l0aW9uMmQ7XG4gIHJlYWRvbmx5IGNhdXNlOiBcImNsaWNrXCIgfCBcImtleWJvYXJkXCI7XG59O1xuXG5leHBvcnQgdHlwZSBDbGlja0hhbmRsZXIgPSAoKGRldGFpbHM6IENsaWNrSGFuZGxlckRldGFpbHMpID0+IHZvaWQpIHwgKChkZXRhaWxzOiBDbGlja0hhbmRsZXJEZXRhaWxzKSA9PiBQcm9taXNlPHZvaWQ+KTtcblxuZXhwb3J0IHR5cGUgQ2xpY2tQbHVnaW5Qcm9wcyA9IHtcbiAgJG9uQ2xpY2s/OiBDbGlja0hhbmRsZXI7XG4gICRvbk9ubHlNb3VzZUNsaWNrPzogQ2xpY2tIYW5kbGVyO1xuICAkb25Eb3VibGVDbGljaz86IENsaWNrSGFuZGxlcjtcbiAgJG9uUmlnaHRDbGljaz86IENsaWNrSGFuZGxlcjtcbiAgJG9uTWlkZGxlQ2xpY2s/OiBDbGlja0hhbmRsZXI7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xufTtcblxuY29uc3QgY2xpY2tVc2VkID0gU3ltYm9sKCk7XG5cbmV4cG9ydCBjb25zdCBjbGlja2FibGVQbHVnaW4gPSBnZXRQbHVnaW48Q2xpY2tQbHVnaW5Qcm9wcywgW3R5cGVvZiBlbmFibGVkUGx1Z2luLCB0eXBlb2YgY3Vyc29yUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIC8vIHR5cGluZyByZXF1aXJlZCBkdWUgdG8gbGFjayBvZiBnb29kIHR5cGluZyBvZiBwcmUtcHJvY2Vzc2VkIGRlcGVuZGVudCBwbHVnaW5zXG4gIGNvbnN0IHtcbiAgICAkY3Vyc29yLFxuICAgICRvbkNsaWNrLFxuICAgICRvbk9ubHlNb3VzZUNsaWNrLFxuICAgICRvbk1pZGRsZUNsaWNrLFxuICAgICRvblJpZ2h0Q2xpY2ssXG4gICAgJG9uRG91YmxlQ2xpY2ssXG4gICAgb25Eb3VibGVDbGljayxcbiAgICBvbkF1eENsaWNrLFxuICAgIG9uQ2xpY2ssXG4gICAgb25Db250ZXh0TWVudSxcbiAgICBvbktleURvd24sXG4gICAgdGFiSW5kZXgsXG4gICAgZGlzYWJsZWQsXG4gICAgcm9sZSxcbiAgfSA9IHByb3BzIGFzIHR5cGVvZiBwcm9wcyAmIFJlYWN0LkhUTUxQcm9wczxIVE1MRWxlbWVudD47XG4gIGNvbnN0IFtwZW5kaW5nLCBzZXRQZW5kaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3Qgb25SaWdodFRyaWdnZXIgPSB1c2VTeW5jSW5qZWN0KG9uUmlnaHRUcmlnZ2VySW5qZWN0YWJsZSk7XG4gIGNvbnN0IG9uTW91c2VDbGljayA9ICRvbkNsaWNrID8/ICRvbk9ubHlNb3VzZUNsaWNrO1xuXG4gIGlmICgkb25DbGljayAmJiAkb25Pbmx5TW91c2VDbGljaykge1xuICAgIGNvbnNvbGUud2FybihcIkNhbm5vdCBoYXZlIGJvdGggJG9uQ2xpY2sgYW5kICRvbk1vdXNlQ2xpY2tPbmx5IG9uIHRoZSBzYW1lIGNvbXBvbmVudFwiKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJG9uQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkb25NaWRkbGVDbGljazogdW5kZWZpbmVkLFxuICAgICRvblJpZ2h0Q2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkb25Eb3VibGVDbGljazogdW5kZWZpbmVkLFxuICAgICRvbk9ubHlNb3VzZUNsaWNrOiB1bmRlZmluZWQsXG4gICAgdGFiSW5kZXg6IHRhYkluZGV4ID8/IChvbk1vdXNlQ2xpY2sgfHwgJG9uUmlnaHRDbGljayB8fCAkb25Eb3VibGVDbGljayA/IDAgOiB1bmRlZmluZWQpLFxuICAgICRjdXJzb3I6IGdldEN1cnNvclByb3BzKCRjdXJzb3IsIGRpc2FibGVkLCBwZW5kaW5nLCBvbk1vdXNlQ2xpY2ssICRvblJpZ2h0Q2xpY2spLFxuICAgIHJvbGU6IHJvbGUgPz8gKG9uTW91c2VDbGljayA/IFwiYnV0dG9uXCIgOiByb2xlKSxcbiAgICBvbkNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBvbkNsaWNrPy4oZXZlbnQpO1xuXG4gICAgICBpZiAoIWRpc2FibGVkICYmIG9uTW91c2VDbGljayAmJiAhKGNsaWNrVXNlZCBpbiBldmVudCkpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihldmVudCwgeyBbY2xpY2tVc2VkXTogdHJ1ZSB9KTtcblxuICAgICAgICBjb25zdCBtYXliZVByb21pc2UgPSBvbk1vdXNlQ2xpY2sodG9EZXRhaWxzKGV2ZW50KSk7XG5cbiAgICAgICAgaWYgKGlzUHJvbWlzZUxpa2UobWF5YmVQcm9taXNlKSkge1xuICAgICAgICAgIHNldFBlbmRpbmcodHJ1ZSk7XG4gICAgICAgICAgbWF5YmVQcm9taXNlLnRoZW4oKCkgPT4gc2V0UGVuZGluZyhmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBvbkRvdWJsZUNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBvbkRvdWJsZUNsaWNrPy4oZXZlbnQpO1xuICAgICAgJG9uRG91YmxlQ2xpY2s/Lih0b0RldGFpbHMoZXZlbnQpKTtcbiAgICB9LFxuICAgIG9uQ29udGV4dE1lbnU6IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uQ29udGV4dE1lbnU/LihldmVudCk7XG4gICAgICAkb25SaWdodENsaWNrPy4odG9EZXRhaWxzKGV2ZW50KSk7XG4gICAgfSxcbiAgICBvbkF1eENsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBvbkF1eENsaWNrPy4oZXZlbnQpO1xuICAgICAgb25NaWRkbGVDbGljayhldmVudCwgKCkgPT4gJG9uTWlkZGxlQ2xpY2s/Lih0b0RldGFpbHMoZXZlbnQpKSk7XG4gICAgfSxcbiAgICBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uS2V5RG93bj8uKGV2ZW50KTtcblxuICAgICAgaWYgKCRvbkNsaWNrKSB7XG4gICAgICAgIG9uVHJpZ2dlcihldmVudCwgKCkgPT4ge1xuICAgICAgICAgIGlmICghZGlzYWJsZWQgJiYgIShjbGlja1VzZWQgaW4gZXZlbnQpKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGV2ZW50LCB7IFtjbGlja1VzZWRdOiB0cnVlIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBtYXliZVByb21pc2UgPSAkb25DbGljayh0b0RldGFpbHMoZXZlbnQpKTtcblxuICAgICAgICAgICAgaWYgKGlzUHJvbWlzZUxpa2UobWF5YmVQcm9taXNlKSkge1xuICAgICAgICAgICAgICBzZXRQZW5kaW5nKHRydWUpO1xuICAgICAgICAgICAgICBtYXliZVByb21pc2UudGhlbigoKSA9PiBzZXRQZW5kaW5nKGZhbHNlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCRvblJpZ2h0Q2xpY2spIHtcbiAgICAgICAgb25SaWdodFRyaWdnZXIoZXZlbnQsICgpID0+IHtcbiAgICAgICAgICAkb25SaWdodENsaWNrKHRvRGV0YWlscyhldmVudCkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufSk7XG5cbmNvbnN0IHRvTWlkZGxlID0gKHJlY3Q6IERPTVJlY3QpID0+ICh7XG4gIHg6IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyLFxuICB5OiByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMixcbn0pO1xuXG5jb25zdCB0b0RldGFpbHMgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+IHwgUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MRWxlbWVudD4pOiBDbGlja0hhbmRsZXJEZXRhaWxzID0+IHtcbiAgY29uc3QgY3Vyc29yID1cbiAgICBcImNsaWVudFhcIiBpbiBldmVudFxuICAgICAgPyB7XG4gICAgICAgICAgeDogZXZlbnQuY2xpZW50WCxcbiAgICAgICAgICB5OiBldmVudC5jbGllbnRZLFxuICAgICAgICB9XG4gICAgICA6IHRvTWlkZGxlKGV2ZW50LmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuXG4gIHJldHVybiB7XG4gICAgY3Vyc29yLFxuICAgIGNhdXNlOiBldmVudC5kZXRhaWwgPyBcImNsaWNrXCIgOiBcImtleWJvYXJkXCIsXG4gIH07XG59O1xuXG5jb25zdCBpc1Byb21pc2VMaWtlID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUHJvbWlzZTx1bmtub3duPiA9PlxuICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgISF2YWx1ZSAmJiBcInRoZW5cIiBpbiB2YWx1ZTtcblxuY29uc3QgZ2V0Q3Vyc29yUHJvcHMgPSAoXG4gICRjdXJzb3I6ICRDdXJzb3JQcm9wcyB8IHVuZGVmaW5lZCxcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIHBlbmRpbmc6IGJvb2xlYW4sXG4gICRvbkNsaWNrOiBGdW5jdGlvbiB8IHVuZGVmaW5lZCxcbiAgJG9uUmlnaHRDbGljazogRnVuY3Rpb24gfCB1bmRlZmluZWQsXG4pOiAkQ3Vyc29yUHJvcHMgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAoJGN1cnNvcikge1xuICAgIHJldHVybiAkY3Vyc29yO1xuICB9XG5cbiAgaWYgKHBlbmRpbmcpIHtcbiAgICByZXR1cm4gXCJwcm9ncmVzc1wiO1xuICB9XG5cbiAgaWYgKCEkb25DbGljayAmJiAhJG9uUmlnaHRDbGljaykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAoZGlzYWJsZWQpIHtcbiAgICByZXR1cm4gXCJub3QtYWxsb3dlZFwiO1xuICB9XG5cbiAgaWYgKCRvbkNsaWNrKSB7XG4gICAgcmV0dXJuIFwicG9pbnRlclwiO1xuICB9XG5cbiAgcmV0dXJuIFwiY29udGV4dC1tZW51XCI7XG59O1xuIiwgImltcG9ydCByYXdTdHlsZXMgZnJvbSBcIi4vZGlzcGxheS1jb250ZW50cy5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IHNhbml0aXplU2Nzc01vZHVsZXMgfSBmcm9tIFwiQGs4c2xlbnMvdGVzdC11dGlsc1wiO1xuXG5jb25zdCBzdHlsZXMgPSBzYW5pdGl6ZVNjc3NNb2R1bGVzKHJhd1N0eWxlcyk7XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlDb250ZW50c1BsdWdpblByb3BzID0ge1xuICAkZGlzcGxheUNvbnRlbnRzPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBkaXNwbGF5Q29udGVudHNQbHVnaW4gPSBnZXRQbHVnaW48RGlzcGxheUNvbnRlbnRzUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGRpc3BsYXlDb250ZW50cywgJGNsYXNzTmFtZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkZGlzcGxheUNvbnRlbnRzKSB7XG4gICAgcmV0dXJuIHsgJGRpc3BsYXlDb250ZW50czogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRkaXNwbGF5Q29udGVudHM6IHVuZGVmaW5lZCxcbiAgICAkY2xhc3NOYW1lOiBbJGNsYXNzTmFtZSwgc3R5bGVzLmNvbnRlbnRzXSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCBzdHlsZXMgZnJvbSBcIi4vdGV4dC1hbGlnbi5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuZXhwb3J0IHR5cGUgVGV4dEFsaWduUGx1Z2luUHJvcHMgPSB7ICR0ZXh0QWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCIgfCBcInJpZ2h0XCIgfTtcblxuZXhwb3J0IGNvbnN0IHRleHRBbGlnblBsdWdpbiA9IGdldFBsdWdpbjxUZXh0QWxpZ25QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkdGV4dEFsaWduIH0gPSBwcm9wcztcblxuICBpZiAoISR0ZXh0QWxpZ24pIHtcbiAgICByZXR1cm4geyAkdGV4dEFsaWduOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7ICRjbGFzc05hbWU6IFtzdHlsZXNbYHRleHQtYWxpZ24tLSR7JHRleHRBbGlnbn1gXSwgcHJvcHMuJGNsYXNzTmFtZV0sICR0ZXh0QWxpZ246IHVuZGVmaW5lZCB9O1xufSk7XG4iLCAiaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9ibG9jay5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcblxuZXhwb3J0IHR5cGUgQmxvY2tQbHVnaW5Qcm9wcyA9IHtcbiAgJGJsb2NrPzogYm9vbGVhbiB8IFwiaW5saW5lXCI7XG59O1xuXG5leHBvcnQgY29uc3QgYmxvY2tQbHVnaW4gPSBnZXRQbHVnaW48QmxvY2tQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkYmxvY2ssICRjbGFzc05hbWUgfSA9IHByb3BzO1xuXG4gIGlmICghJGJsb2NrKSB7XG4gICAgcmV0dXJuIHsgJGJsb2NrOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGJsb2NrOiB1bmRlZmluZWQsXG4gICAgJGNsYXNzTmFtZTogWyRjbGFzc05hbWUsICRibG9jayA9PT0gXCJpbmxpbmVcIiA/IHN0eWxlc1tcImJsb2NrLS1pbmxpbmVcIl0gOiBzdHlsZXMuYmxvY2tdLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tIFwiLi4vX3NoYXJlZC9jb2xvcnNcIjtcbmltcG9ydCB0eXBlIHsgUmFuZ2UgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuaW1wb3J0IG91dGxpbmVTdHlsZXMgZnJvbSBcIi4vb3V0bGluZS5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgc2FuaXRpemVTY3NzTW9kdWxlcyB9IGZyb20gXCJAazhzbGVucy90ZXN0LXV0aWxzXCI7XG5pbXBvcnQgdHlwZSB7IElDbGFzc05hbWUgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuXG5jb25zdCBzdHlsZXMgPSBzYW5pdGl6ZVNjc3NNb2R1bGVzKG91dGxpbmVTdHlsZXMpO1xuXG5leHBvcnQgdHlwZSBPdXRsaW5lV2lkdGggPSBcInplcm9cIiB8IFwieHhzXCIgfCBcInhzXCIgfCBcInNcIiB8IFwibVwiIHwgXCJsXCIgfCBcInhsXCIgfCBcInh4bFwiIHwgYCR7UmFuZ2U8MywgNT59eGxgO1xuXG5leHBvcnQgdHlwZSAkT3V0bGluZVByb3BzID0geyBjb2xvcj86IENvbG9yOyB3aWR0aD86IE91dGxpbmVXaWR0aCB9O1xuXG5leHBvcnQgdHlwZSBPdXRsaW5lUGx1Z2luUHJvcHMgPSB7ICRvdXRsaW5lPzogeyBmb2N1c1Zpc2libGU/OiAkT3V0bGluZVByb3BzIH0gfTtcblxuZXhwb3J0IGNvbnN0IG91dGxpbmVQbHVnaW4gPSBnZXRQbHVnaW48T3V0bGluZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBnZXRGb2N1c1Zpc2libGVPdXRsaW5lU3R5bGVzKHByb3BzLiRvdXRsaW5lPy5mb2N1c1Zpc2libGUpXSxcbiAgICAkb3V0bGluZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG5cbmNvbnN0IGdldEZvY3VzVmlzaWJsZU91dGxpbmVTdHlsZXMgPSAocHJvcHM6ICRPdXRsaW5lUHJvcHMgfCB1bmRlZmluZWQpOiBJQ2xhc3NOYW1lID0+IHtcbiAgaWYgKCFwcm9wcykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCB7IGNvbG9yLCB3aWR0aCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIFtcbiAgICBjb2xvciAhPT0gdW5kZWZpbmVkIHx8IHdpZHRoICE9PSB1bmRlZmluZWQgPyBbc3R5bGVzLm91dGxpbmUsIHN0eWxlcy5mb2N1c1Zpc2libGVdIDogdW5kZWZpbmVkLFxuICAgIGNvbG9yID8gc3R5bGVzW2Bjb2xvci0tJHtjb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICB3aWR0aCA/IHN0eWxlc1tgd2lkdGgtLSR7d2lkdGh9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyB0eXBlIElDbGFzc05hbWUsIHNhbml0aXplU2Nzc01vZHVsZXMgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IGludGVyYWN0aXZlU3R5bGVzIGZyb20gXCIuL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzXCI7XG5cbmNvbnN0IHN0eWxlcyA9IHNhbml0aXplU2Nzc01vZHVsZXMoaW50ZXJhY3RpdmVTdHlsZXMpO1xuXG5leHBvcnQgdHlwZSAkSW50ZXJhY3RpdmVQcm9wcyA9IHtcbiAgLyoqXG4gICAqIFNob3dzIHRoZSBlbGVtZW50IGFzIHRoZSBhY3RpdmUgb25lLCBlLmcuIHRoZSB0cmlnZ2VyIG9mIGEgbWVudSB0aGF0IGlzXG4gICAqIG9wZW46IHRoZSBoaWdobGlnaHQgc3RheXMgb24gd2l0aCBhIHJpbmcgYXJvdW5kIGl0LlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBrZXlib2FyZCBmb2N1cyBkcmF3cyB0aGUgZm9jdXMgcmluZy4gRGVmYXVsdHMgdG8gYHRydWVgOyBvcHQgb3V0XG4gICAqIG9ubHkgd2hlcmUgdGhlIHN1cnJvdW5kaW5nIGNvbnRyb2wgZHJhd3MgaXRzIG93bi5cbiAgICovXG4gIGZvY3VzVmlzaWJsZU91dGxpbmU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgSW50ZXJhY3RpdmVQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqXG4gICAqIEdpdmVzIHRoZSBlbGVtZW50IHRoZSBhZmZvcmRhbmNlIG9mIGFuIGljb24gYnV0dG9uOiBhIGhpZ2hsaWdodCBvbiBob3ZlcixcbiAgICogYSBmb2N1cyByaW5nIGZvciBrZXlib2FyZCB1c2VycywgYW5kIHdpdGggYGFjdGl2ZWAgYSByaW5nIHRoYXQgbWFya3MgaXRcbiAgICogYXMgdGhlIGFjdGl2ZSBvbmUuXG4gICAqL1xuICAkaW50ZXJhY3RpdmU/OiBib29sZWFuIHwgJEludGVyYWN0aXZlUHJvcHM7XG59O1xuXG5leHBvcnQgY29uc3QgaW50ZXJhY3RpdmVQbHVnaW4gPSBnZXRQbHVnaW48SW50ZXJhY3RpdmVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBnZXRJbnRlcmFjdGl2ZUNsYXNzTmFtZXMocHJvcHMuJGludGVyYWN0aXZlKV0sXG4gICRpbnRlcmFjdGl2ZTogdW5kZWZpbmVkLFxufSkpO1xuXG5jb25zdCBnZXRJbnRlcmFjdGl2ZUNsYXNzTmFtZXMgPSAoaW50ZXJhY3RpdmU6IGJvb2xlYW4gfCAkSW50ZXJhY3RpdmVQcm9wcyB8IHVuZGVmaW5lZCk6IElDbGFzc05hbWUgPT4ge1xuICBpZiAoIWludGVyYWN0aXZlKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHsgYWN0aXZlID0gZmFsc2UsIGZvY3VzVmlzaWJsZU91dGxpbmUgPSB0cnVlIH0gPSBpbnRlcmFjdGl2ZSA9PT0gdHJ1ZSA/IHt9IDogaW50ZXJhY3RpdmU7XG5cbiAgcmV0dXJuIFtzdHlsZXMuaW50ZXJhY3RpdmUsIHsgW3N0eWxlcy5hY3RpdmVdOiBhY3RpdmUsIFtzdHlsZXMuaWdub3JlRm9jdXNWaXNpYmxlXTogIWZvY3VzVmlzaWJsZU91dGxpbmUgfV07XG59O1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgY2xpY2thYmxlUGx1Z2luLCBDbGlja0hhbmRsZXJEZXRhaWxzIH0gZnJvbSBcIi4uL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIG9mZnNldCwgc2hpZnQsIHVzZUZsb2F0aW5nIH0gZnJvbSBcIkBmbG9hdGluZy11aS9yZWFjdC1kb21cIjtcbmltcG9ydCB0eXBlIHsgUmVmUGx1Z2luIH0gZnJvbSBcIi4uL3JlZi9yZWZcIjtcbmltcG9ydCB7IGV4cGVjdERlZmluZWQsIHN0b3BQcm9wYWdhdGlvbiB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL3BvcG92ZXIubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IE1pbmltYWxEaXYgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHMvbWluaW1hbC1kaXZcIjtcblxuZXhwb3J0IHR5cGUgUG9wb3ZlclBsdWdpblByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgJHBvcG92ZXI/OiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgcG9wb3ZlcklzT3BlbkNvbnRleHQgPSBjcmVhdGVDb250ZXh0KGZhbHNlKTtcblxuZXhwb3J0IGNvbnN0IHVzZVBvcG92ZXJJc09wZW4gPSAoKSA9PiB1c2VDb250ZXh0KHBvcG92ZXJJc09wZW5Db250ZXh0KTtcblxuZXhwb3J0IGNvbnN0IHBvcG92ZXJQbHVnaW4gPSBnZXRQbHVnaW48UG9wb3ZlclBsdWdpblByb3BzLCBbdHlwZW9mIGNsaWNrYWJsZVBsdWdpbiwgUmVmUGx1Z2luPGFueT5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkcG9wb3ZlciwgJG9uQ2xpY2ssICRyZWYgfSA9IHByb3BzO1xuICBjb25zdCBbcG9wb3ZlckNvbnRlbnRJc1Nob3duLCBzZXRQb3BvdmVyQ29udGVudElzU2hvd25dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbcmVmZXJlbmNlLCBzZXRFbGVtZW50XSA9IHVzZVN0YXRlPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGNsb3NlUG9wb3ZlciA9IHVzZUNhbGxiYWNrKCgpID0+IHNldFBvcG92ZXJDb250ZW50SXNTaG93bihmYWxzZSksIFtdKTtcblxuICBpZiAoISRwb3BvdmVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRwb3BvdmVyOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJHBvcG92ZXI6IHVuZGVmaW5lZCxcbiAgICAkcmVmOiBbJHJlZiwgc2V0RWxlbWVudF0sXG4gICAgJG9uQ2xpY2s6IChkZXRhaWxzOiBDbGlja0hhbmRsZXJEZXRhaWxzKSA9PiB7XG4gICAgICBzZXRQb3BvdmVyQ29udGVudElzU2hvd24oIXBvcG92ZXJDb250ZW50SXNTaG93bik7XG4gICAgICAkb25DbGljaz8uKGRldGFpbHMpO1xuICAgIH0sXG4gICAgb25DbGljazogc3RvcFByb3BhZ2F0aW9uLFxuICAgICR3cmFwcGVyOiB7XG4gICAgICBDb21wb25lbnQ6IFBvcG92ZXJXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgcHJvcHM6IHtcbiAgICAgICAgcG9wb3Zlcjoge1xuICAgICAgICAgICRwb3BvdmVyLFxuICAgICAgICAgIGlzU2hvd246IHBvcG92ZXJDb250ZW50SXNTaG93bixcbiAgICAgICAgICByZWZlcmVuY2UsXG4gICAgICAgICAgY2xvc2VQb3BvdmVyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufSk7XG5cbnR5cGUgUG9wb3ZlcldyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgcG9wb3Zlcjoge1xuICAgIHJlYWRvbmx5ICRwb3BvdmVyOiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgcmVhZG9ubHkgaXNTaG93bjogYm9vbGVhbjtcbiAgICByZWFkb25seSByZWZlcmVuY2U6IEhUTUxEaXZFbGVtZW50IHwgbnVsbDtcbiAgICByZWFkb25seSBjbG9zZVBvcG92ZXI6IFZvaWRGdW5jdGlvbjtcbiAgfTtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IFBvcG92ZXJXcmFwcGVyQ29tcG9uZW50ID0gKHsgcG9wb3ZlciwgY2hpbGRyZW4gfTogUG9wb3ZlcldyYXBwZXJQcm9wcykgPT4ge1xuICBjb25zdCB7ICRwb3BvdmVyLCBpc1Nob3duLCByZWZlcmVuY2UsIGNsb3NlUG9wb3ZlciB9ID0gcG9wb3ZlcjtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7aXNTaG93biAmJlxuICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgPFBvcG92ZXJPdmVybGF5Q29udGVudFxuICAgICAgICAgICAgey4uLntcbiAgICAgICAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICAgICAgICAkcG9wb3ZlcixcbiAgICAgICAgICAgICAgY2xvc2VQb3BvdmVyLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPixcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LFxuICAgICAgICApfVxuICAgICAgPHBvcG92ZXJJc09wZW5Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXtpc1Nob3dufT57Y2hpbGRyZW59PC9wb3BvdmVySXNPcGVuQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbnR5cGUgUG9wb3Zlck92ZXJsYXlDb250ZW50UHJvcHMgPSB7XG4gIHJlZmVyZW5jZTogSFRNTERpdkVsZW1lbnQgfCBudWxsO1xuICAkcG9wb3ZlcjogKCkgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICBjbG9zZVBvcG92ZXI6IFZvaWRGdW5jdGlvbjtcbn07XG5cbmNvbnN0IFBvcG92ZXJPdmVybGF5Q29udGVudCA9IChwcm9wczogUG9wb3Zlck92ZXJsYXlDb250ZW50UHJvcHMpID0+IHtcbiAgY29uc3QgeyAkcG9wb3ZlciwgY2xvc2VQb3BvdmVyLCByZWZlcmVuY2UgfSA9IHByb3BzO1xuICBjb25zdCBbZmxvYXRpbmcsIHNldEZsb2F0aW5nXSA9IHVzZVN0YXRlPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICBwbGFjZW1lbnQ6IFwiYm90dG9tXCIsXG4gICAgbWlkZGxld2FyZTogW2ZsaXAoKSwgb2Zmc2V0KDgpLCBzaGlmdCgpXSxcbiAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1VwZGF0ZSxcbiAgICBlbGVtZW50czoge1xuICAgICAgZmxvYXRpbmcsXG4gICAgICByZWZlcmVuY2UsXG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgY2xvc2VQb3BvdmVyRnJvbU92ZXJsYXkgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBzdG9wUHJvcGFnYXRpb24oZXZlbnQpO1xuICAgIGNsb3NlUG9wb3ZlcigpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPE1pbmltYWxEaXZcbiAgICAgIGRhdGEtcG9wb3Zlci1vdmVybGF5LXRlc3RcbiAgICAgICRhYnNvbHV0ZVxuICAgICAgJGNsYXNzTmFtZT17c3R5bGVzLnBvcG92ZXJfX292ZXJsYXl9XG4gICAgICBvbkNsaWNrPXtjbG9zZVBvcG92ZXJGcm9tT3ZlcmxheX1cbiAgICA+XG4gICAgICA8TWluaW1hbERpdlxuICAgICAgICAkcmVmPXtzZXRGbG9hdGluZ31cbiAgICAgICAgc3R5bGU9e2Zsb2F0aW5nU3R5bGVzfVxuICAgICAgICBvbkNsaWNrPXtzdG9wUHJvcGFnYXRpb259XG4gICAgICAgICRjbGFzc05hbWU9e3N0eWxlcy5wb3BvdmVyX19jb250ZW50fVxuICAgICAgPlxuICAgICAgICA8Y29udGV4dEZvckNsb3NpbmdQb3BvdmVyLlByb3ZpZGVyIHZhbHVlPXtjbG9zZVBvcG92ZXJ9PnskcG9wb3ZlcigpfTwvY29udGV4dEZvckNsb3NpbmdQb3BvdmVyLlByb3ZpZGVyPlxuICAgICAgPC9NaW5pbWFsRGl2PlxuICAgIDwvTWluaW1hbERpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb250ZXh0Rm9yQ2xvc2luZ1BvcG92ZXIgPSBjcmVhdGVDb250ZXh0PFZvaWRGdW5jdGlvbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IHVzZUNsb3NlUG9wb3ZlciA9ICgpID0+XG4gIGV4cGVjdERlZmluZWQoXG4gICAgdXNlQ29udGV4dChjb250ZXh0Rm9yQ2xvc2luZ1BvcG92ZXIpLFxuICAgIFwiVHJpZWQgdG8gdXNlIGNsb3NlIHBvcG92ZXIgd2hpbGUgY29udGVudCBpcyBub3Qgc2hvd24gaW5zaWRlIHRoZSBwb3BvdmVyIGNvbnRlbnQuXCIsXG4gICk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVSZWYsIHR5cGUgUGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFJlZlBsdWdpbiB9IGZyb20gXCIuLi9yZWYvcmVmXCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIG9mZnNldCwgc2hpZnQsIHVzZUZsb2F0aW5nLCB0eXBlIFBsYWNlbWVudCB9IGZyb20gXCJAZmxvYXRpbmctdWkvcmVhY3QtZG9tXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgdHlwZSBGbG9hdGluZ0NvbnRlbnRBcmdzID0ge1xuICByZWFkb25seSBmbG9hdGluZ1N0eWxlczogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgcmVhZG9ubHkgY29udGVudFJlZjogTm9uTnVsbGFibGU8UmVhY3QuUmVmPEhUTUxEaXZFbGVtZW50Pj47XG59O1xuXG5leHBvcnQgdHlwZSBGbG9hdGluZ0NvbnRlbnRGYWN0b3J5ID0gKGFyZ3M6IEZsb2F0aW5nQ29udGVudEFyZ3MpID0+IFJlYWN0LlJlYWN0Tm9kZTtcblxuZXhwb3J0IHR5cGUgJEZsb2F0aW5nUHJvcHMgPSB7XG4gIHJlYWRvbmx5IHBvc2l0aW9uPzogUGxhY2VtZW50O1xuICByZWFkb25seSBjb250ZW50OiBGbG9hdGluZ0NvbnRlbnRGYWN0b3J5O1xufTtcblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdQbHVnaW5Qcm9wcyA9IHtcbiAgcmVhZG9ubHkgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHJlYWRvbmx5ICRmbG9hdGluZz86ICRGbG9hdGluZ1Byb3BzO1xufTtcblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdQbHVnaW4gPSBQbHVnaW48RmxvYXRpbmdQbHVnaW5Qcm9wcywgdW5rbm93bj47XG5cbnR5cGUgRmxvYXRpbmdXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGZsb2F0aW5nOiAkRmxvYXRpbmdQcm9wcztcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVJlZjogQ29udHJpYnV0ZVJlZjtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IEZsb2F0aW5nV3JhcHBlckNvbXBvbmVudCA9ICh7IGZsb2F0aW5nLCBjb250cmlidXRlUmVmLCBjaGlsZHJlbiB9OiBGbG9hdGluZ1dyYXBwZXJQcm9wcykgPT4ge1xuICBjb25zdCBbcmVmZXJlbmNlLCBzZXRSZWZlcmVuY2VdID0gdXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2Zsb2F0aW5nRWwsIHNldEZsb2F0aW5nXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgY29udHJpYnV0ZVJlZihzZXRSZWZlcmVuY2UpO1xuXG4gIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICBwbGFjZW1lbnQ6IGZsb2F0aW5nLnBvc2l0aW9uID8/IFwiYm90dG9tXCIsXG4gICAgbWlkZGxld2FyZTogW2ZsaXAoKSwgb2Zmc2V0KDgpLCBzaGlmdCgpXSxcbiAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1VwZGF0ZSxcbiAgICBlbGVtZW50czoge1xuICAgICAgZmxvYXRpbmc6IGZsb2F0aW5nRWwsXG4gICAgICByZWZlcmVuY2UsXG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgZmxvYXRpbmdDb250ZW50ID0gZmxvYXRpbmcuY29udGVudCh7IGZsb2F0aW5nU3R5bGVzLCBjb250ZW50UmVmOiBzZXRGbG9hdGluZyB9KTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7ZmxvYXRpbmdDb250ZW50ID8gY3JlYXRlUG9ydGFsKGZsb2F0aW5nQ29udGVudCwgZG9jdW1lbnQuYm9keSkgOiBudWxsfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZsb2F0aW5nUGx1Z2luPFQ+KCkge1xuICByZXR1cm4gZ2V0UGx1Z2luPEZsb2F0aW5nUGx1Z2luUHJvcHMsIFtSZWZQbHVnaW48VD5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICRmbG9hdGluZyB9ID0gcHJvcHM7XG5cbiAgICBpZiAoJGZsb2F0aW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB7ICRmbG9hdGluZzogdW5kZWZpbmVkIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICRmbG9hdGluZzogdW5kZWZpbmVkLFxuICAgICAgJHdyYXBwZXI6IHtcbiAgICAgICAgQ29tcG9uZW50OiBGbG9hdGluZ1dyYXBwZXJDb21wb25lbnQsXG4gICAgICAgIHByb3BzOiB7IGZsb2F0aW5nOiAkZmxvYXRpbmcgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbnZpc2libGUtYmFja2Ryb3AubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5cbmV4cG9ydCB0eXBlIEludmlzaWJsZUJhY2tkcm9wUGx1Z2luUHJvcHMgPSB7XG4gICRpbnZpc2libGVCYWNrZHJvcD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgaW52aXNpYmxlQmFja2Ryb3BQbHVnaW4gPSBnZXRQbHVnaW48SW52aXNpYmxlQmFja2Ryb3BQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkaW52aXNpYmxlQmFja2Ryb3AsICRjbGFzc05hbWUgfSA9IHByb3BzO1xuXG4gIGlmICghJGludmlzaWJsZUJhY2tkcm9wKSB7XG4gICAgcmV0dXJuIHsgJGludmlzaWJsZUJhY2tkcm9wOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGludmlzaWJsZUJhY2tkcm9wOiB1bmRlZmluZWQsXG4gICAgJGNsYXNzTmFtZTogWyRjbGFzc05hbWUsIHN0eWxlcy5pbnZpc2libGVCYWNrZHJvcF0sXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4sIHR5cGUgQ29udHJpYnV0ZVByb3BzLCB0eXBlIENvbnRyaWJ1dGVSZWYgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IERyb3BEb3duTWVudSwgdHlwZSBEcm9wRG93bk1lbnVTcGVjIH0gZnJvbSBcIkBrOHNsZW5zL2Ryb3AtZG93bi1tZW51LWNvbnRyYWN0c1wiO1xuaW1wb3J0IHsgY3NzTmFtZXMsIG9uVHJpZ2dlciB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgYW5jaG9yYWJsZUNsYXNzTmFtZSwgQW5jaG9yTmFtZVByb3ZpZGVyLCB1c2VBbmNob3JOYW1lRm9yIH0gZnJvbSBcIi4uL2FuY2hvci9hbmNob3JcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgb25SaWdodFRyaWdnZXJJbmplY3RhYmxlIH0gZnJvbSBcIi4uL2NsaWNrYWJsZS9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgUG9zaXRpb24yZCB9IGZyb20gXCIuLi9jbGlja2FibGUvY2xpY2thYmxlXCI7XG5pbXBvcnQgdHlwZSB7IGN1cnNvclBsdWdpbiB9IGZyb20gXCIuLi9jdXJzb3IvY3Vyc29yXCI7XG5pbXBvcnQgeyB0eXBlIGVuYWJsZWRQbHVnaW4sIGlzRGlzYWJsZWQgfSBmcm9tIFwiLi4vZW5hYmxlZC9lbmFibGVkXCI7XG5pbXBvcnQgeyB1c2VPbk91dHNpZGVDbGljayB9IGZyb20gXCIuLi9vbi1vdXRzaWRlLWNsaWNrL29uLW91dHNpZGUtY2xpY2tcIjtcblxuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51UGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICByZWFkb25seSB0YWJJbmRleD86IG51bWJlcjtcblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBkcm9wLWRvd24gbWVudSB0byB0aGUgZWxlbWVudC4gQ3JlYXRlIHRoZSB2YWx1ZSB3aXRoIGBkcm9wRG93bk1lbnUoa2luZCwgb3B0aW9ucz8pYFxuICAgKiBmcm9tIGBAazhzbGVucy9kcm9wLWRvd24tbWVudS1jb250cmFjdHNgOyB0aGUgaXRlbXMgY29tZSBmcm9tIHRoZSBjb250cmlidXRpb25zIHJlZ2lzdGVyZWQgZm9yXG4gICAqIHRoZSBraW5kLlxuICAgKlxuICAgKiBUaGUgbWVudSBwb3NpdGlvbnMgaXRzZWxmIGFnYWluc3QgdGhlIG5lYXJlc3QgYCRhbmNob3JgIGFyb3VuZCB0aGUgZWxlbWVudCwgb3IgYWdhaW5zdCB0aGVcbiAgICogZWxlbWVudCBpdHNlbGYgd2hlbiB0aGVyZSBpcyBub25lLiBEZWNsYXJlIGAkYW5jaG9yYCBvbiBhbiBlbmNsb3NpbmcgZWxlbWVudCB0byBoYXZlIHRoZSBtZW51XG4gICAqIGxpbmUgdXAgd2l0aCB0aGF0IGluc3RlYWQsIGFzIGEgbWVudSBvcGVuZWQgZnJvbSBvbmUgaGFsZiBvZiBhIHNwbGl0IGJ1dHRvbiBsaW5lcyB1cCB3aXRoIHRoZVxuICAgKiB3aG9sZSBvZiBpdC5cbiAgICpcbiAgICogVGhlIG1lbnUgdGFrZXMgZm9jdXMgYXMgaXQgb3BlbnMsIGl0cyBmaXJzdCBpdGVtIGJlY29taW5nIHRoZSBjdXJyZW50IG9uZSBcdTIwMTQgZXhjZXB0IHdoZW4gaXRcbiAgICogb3BlbnMgYnkgYmVpbmcgaG92ZXJlZCwgd2hlcmUgZm9jdXMgc3RheXMgb24gdGhlIGVsZW1lbnQ6IHRoZSByb3cgdGhlIHBvaW50ZXIgcmVzdHMgb24gaXMgd2hhdFxuICAgKiB0aGUgdXNlciBpcyBsb29raW5nIGF0LiBGb2N1cyByZXR1cm5zIHRvIHRoZSBlbGVtZW50IG9uY2UgdGhlIG1lbnUgaXMgZ29uZS4gQSBtZW51IHRoYXQgb3BlbnMgb25cbiAgICogaG92ZXJpbmcgb3BlbnMgd2l0aCBBcnJvd1JpZ2h0IGFzIHdlbGwsIHRha2luZyBmb2N1cyB0aGVuLCBhbmQgY2xvc2VzIHdpdGggQXJyb3dMZWZ0IGZyb21cbiAgICogYW55d2hlcmUgd2l0aGluIGl0LCBzbyBhIG1lbnUgaGVsZCBieSBhIG1lbnUgcm93IGlzIHJlYWNoYWJsZSB3aXRob3V0IGEgcG9pbnRlci5cbiAgICpcbiAgICogUmVxdWlyZXMgYGRyb3BEb3duTWVudUZlYXR1cmVgIG9mIGBAbGVuc2FwcC9kcm9wLWRvd24tbWVudWAgdG8gYmUgcmVnaXN0ZXJlZDogdGhlIG1lbnVcbiAgICogY29tcG9uZW50IGlzIHJlc29sdmVkIHRocm91Z2ggYW4gaW5qZWN0aW9uIHRva2VuIHRoaXMgcGFja2FnZSBkb2VzIG5vdCBpbXBsZW1lbnQuXG4gICAqL1xuICByZWFkb25seSAkZHJvcERvd25NZW51PzogRHJvcERvd25NZW51U3BlYztcbn07XG5cbmNvbnN0IGhvdmVyQ2xvc2VEZWxheUluTWlsbGlzZWNvbmRzID0gMjAwO1xuXG50eXBlIERyb3BEb3duTWVudVdyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgZHJvcERvd25NZW51OiBEcm9wRG93bk1lbnVTcGVjO1xuICByZWFkb25seSBjb250cmlidXRlUmVmOiBDb250cmlidXRlUmVmO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IERyb3BEb3duTWVudVdyYXBwZXJDb21wb25lbnQgPSAoe1xuICBkcm9wRG93bk1lbnUsXG4gIGNvbnRyaWJ1dGVSZWYsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBEcm9wRG93bk1lbnVXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgLy8gV2hldGhlciB0aGUgbWVudSB0YWtlcyBmb2N1cyBhcyBpdCBvcGVucy4gT25seSBhIG1lbnUgdGhlIHBvaW50ZXIgb3BlbmVkIGJ5IHJlc3Rpbmcgb24gdGhlXG4gIC8vIGVsZW1lbnQgbGVhdmVzIGl0IGJlOiB0aGUga2V5Ym9hcmQgb3BlbmluZyBvbmUsIG9yIGEgY2xpY2ssIGlzIHRoZSB1c2VyIGFza2luZyBmb3IgdGhlIG1lbnUsXG4gIC8vIGFuZCBpdHMgZmlyc3QgaXRlbSBpcyB3aGVyZSB0aGV5IGdvIG9uIGZyb20uXG4gIGNvbnN0IFt0YWtlc0ZvY3VzLCBzZXRUYWtlc0ZvY3VzXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbY3Vyc29yLCBzZXRDdXJzb3JdID0gdXNlU3RhdGU8UG9zaXRpb24yZCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3QgY2xvc2VUaW1lclJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3Qgb25SaWdodFRyaWdnZXIgPSB1c2VTeW5jSW5qZWN0KG9uUmlnaHRUcmlnZ2VySW5qZWN0YWJsZSk7XG5cbiAgY29uc3QgZWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBtZW51UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGVsZW1lbnRUYWtlc0ZvY3VzQmFja1JlZiA9IHVzZVJlZihmYWxzZSk7XG5cbiAgY29udHJpYnV0ZVJlZihcbiAgICB1c2VDYWxsYmFjaygoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBlbGVtZW50O1xuICAgIH0sIFtdKSxcbiAgKTtcblxuICBjb25zdCB0b2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGFrZXNGb2N1cyh0cnVlKTtcbiAgICBzZXRJc09wZW4oKHdhc09wZW4pID0+ICF3YXNPcGVuKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGNsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFRoZSBlbGVtZW50IHRoZSBtZW51IGJlbG9uZ3MgdG8gdGFrZXMgZm9jdXMgYmFjayB3aGVuIGZvY3VzIGlzIGluIHRoZSBtZW51IHRoYXQgaXMgY2xvc2luZyxcbiAgICAvLyBvciBub3doZXJlIGF0IGFsbDogd2hhdGV2ZXIgdGhlIHVzZXIgZG9lcyBuZXh0LCB0aGV5IGRvIGZyb20gd2hlcmUgdGhleSB3ZXJlLiBEZWNpZGVkIGhlcmUsXG4gICAgLy8gd2hpbGUgaXQgaXMgc3RpbGwgY2xlYXIgd2hlcmUgZm9jdXMgd2FzLCByYXRoZXIgdGhhbiBvbmNlIHRoZSBtZW51IGhhcyBnb25lLlxuICAgIGNvbnN0IGZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG4gICAgZWxlbWVudFRha2VzRm9jdXNCYWNrUmVmLmN1cnJlbnQgPVxuICAgICAgZm9jdXNlZCA9PT0gbnVsbCB8fCBmb2N1c2VkID09PSBkb2N1bWVudC5ib2R5IHx8IG1lbnVSZWYuY3VycmVudD8uY29udGFpbnMoZm9jdXNlZCkgPT09IHRydWU7XG5cbiAgICBzZXRJc09wZW4oZmFsc2UpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgY2FuY2VsU2NoZWR1bGVkQ2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGNsb3NlVGltZXJSZWYuY3VycmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbGVhclRpbWVvdXQoY2xvc2VUaW1lclJlZi5jdXJyZW50KTtcbiAgICAgIGNsb3NlVGltZXJSZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBvcGVuID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wZW5lZEJ5OiBcInBvaW50ZXJcIiB8IFwia2V5Ym9hcmRcIikgPT4ge1xuICAgICAgY2FuY2VsU2NoZWR1bGVkQ2xvc2UoKTtcbiAgICAgIHNldFRha2VzRm9jdXMob3BlbmVkQnkgPT09IFwia2V5Ym9hcmRcIik7XG4gICAgICBzZXRJc09wZW4odHJ1ZSk7XG4gICAgfSxcbiAgICBbY2FuY2VsU2NoZWR1bGVkQ2xvc2VdLFxuICApO1xuXG4gIGNvbnN0IHNjaGVkdWxlQ2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY2FuY2VsU2NoZWR1bGVkQ2xvc2UoKTtcbiAgICBjbG9zZVRpbWVyUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KGNsb3NlLCBob3ZlckNsb3NlRGVsYXlJbk1pbGxpc2Vjb25kcyk7XG4gIH0sIFtjYW5jZWxTY2hlZHVsZWRDbG9zZSwgY2xvc2VdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4gY2FuY2VsU2NoZWR1bGVkQ2xvc2UsIFtjYW5jZWxTY2hlZHVsZWRDbG9zZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc09wZW4pIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gQSBtZW51IHRoYXQgaXMgZGlzbWlzc2VkIHJhdGhlciB0aGFuIGNsb3NlZCBcdTIwMTQgY2xpY2tlZCBhd2F5IGZyb20gXHUyMDE0IGxlYXZlcyBmb2N1cyB3aGVyZXZlciB0aGVcbiAgICAvLyB1c2VyIHB1dCBpdC5cbiAgICBlbGVtZW50VGFrZXNGb2N1c0JhY2tSZWYuY3VycmVudCA9IGZhbHNlO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmICghZWxlbWVudFRha2VzRm9jdXNCYWNrUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBEZWZlcnJlZCBwYXN0IHdoYXQgaXMgYmVpbmcgdGFrZW4gYXdheTogdGhlIGVsZW1lbnQgbWF5IGJlIGdvaW5nIHdpdGggdGhlIG1lbnUsIGEgbWVudVxuICAgICAgLy8gaW5zaWRlIGEgbWVudSB0aGF0IGlzIGNsb3NpbmcgdG9vLCBhbmQgb25seSB0aGVuIGlzIGl0IGNsZWFyIHdoZXRoZXIgaXQgaXMgc3RpbGwgdGhlcmUgdG9cbiAgICAgIC8vIHRha2UgZm9jdXMgYmFjay4gQW55dGhpbmcgdGhhdCB0b29rIGZvY3VzIGluIHRoZSBtZWFudGltZSB3YXMgZ2l2ZW4gaXQgb24gcHVycG9zZSwgYW5kIGFcbiAgICAgIC8vIG1lbnUgY2xvc2luZyBpcyBubyByZWFzb24gdG8gdGFrZSBpdCBhd2F5IGFnYWluLlxuICAgICAgdm9pZCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudDtcbiAgICAgICAgY29uc3QgZm9jdXNlZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGVsZW1lbnQ/LmlzQ29ubmVjdGVkICYmIChmb2N1c2VkID09PSBudWxsIHx8IGZvY3VzZWQgPT09IGRvY3VtZW50LmJvZHkpKSB7XG4gICAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICB9LCBbaXNPcGVuXSk7XG5cbiAgLy8gVGhlIG5lYXJlc3QgYW5jaG9yIGFyb3VuZCB0aGUgZWxlbWVudCwgd2hpY2ggaXMgdGhlIGVsZW1lbnQgaXRzZWxmIHdoZW4gaXQgZGVjbGFyZXMgYCRhbmNob3JgO1xuICAvLyBhbiBlbGVtZW50IHdpdGggbm9uZSBhcm91bmQgaXQgYW5jaG9ycyBpdHMgbWVudSBpdHNlbGYsIHNvIGEgbWVudSBuZXZlciBmYWlscyB0byBvcGVuIGZvciB0aGVcbiAgLy8gd2FudCBvZiBvbmUuIE5hbWVkIG9ubHkgd2hpbGUgdGhlIG1lbnUgaXMgb3Blbiwgd2hpY2ggaXMgdGhlIG9ubHkgdGltZSBhbnl0aGluZyBuZWVkcyB0aGUgbmFtZS5cbiAgY29uc3QgYW5jaG9yTmFtZSA9IHVzZUFuY2hvck5hbWVGb3IoZWxlbWVudFJlZiwgaXNPcGVuKTtcblxuICBjb25zdCBvcGVuT24gPSBkcm9wRG93bk1lbnUub3Blbk9uID8/IFwiY2xpY2tcIjtcblxuICBjb25zdCBjbG9zZU9uQXJyb3dMZWZ0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93TGVmdFwiKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBjbG9zZSgpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2Nsb3NlXSxcbiAgKTtcblxuICAvLyBNYXJrcyB0aGUgZWxlbWVudCBhbmQsIGJlbG93LCB0aGUgbWVudSBpdCBvcGVucyBhcyBvbmUgdGhpbmcgZm9yIG91dHNpZGUtY2xpY2sgcHVycG9zZXMuXG4gIGNvbnN0IG91dHNpZGVDbGlja01hcmtpbmdQcm9wcyA9IHVzZU9uT3V0c2lkZUNsaWNrKFxuICAgIHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgc2V0SXNPcGVuKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9LCBbaXNPcGVuXSksXG4gICk7XG5cbiAgY29udHJpYnV0ZVByb3BzKHtcbiAgICAuLi5vdXRzaWRlQ2xpY2tNYXJraW5nUHJvcHMsXG4gICAgXCJhcmlhLWhhc3BvcHVwXCI6IFwibWVudVwiLFxuXG4gICAgLi4uKG9wZW5PbiA9PT0gXCJjbGlja1wiICYmIHtcbiAgICAgIG9uQ2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdG9nZ2xlKCk7XG4gICAgICB9LFxuXG4gICAgICAvLyBBIGtleSBwcmVzcyB0aGUgZWxlbWVudCBhbnN3ZXJzIHdpdGggYSBtZW51IGlzIGFuc3dlcmVkIGhlcmUgYW5kIG5vd2hlcmUgZWxzZSxcbiAgICAgIC8vIGV4YWN0bHkgYXMgaXRzIGNsaWNrIGlzOiB3aGF0ZXZlciBlbmNsb3NlcyB0aGUgZWxlbWVudCAoYSBtZW51IHJvdyB3aXRoIGFuXG4gICAgICAvLyBhY3Rpb24gb2YgaXRzIG93biwgc2F5KSBtdXN0IG5vdCB0YWtlIHRoZSBzYW1lIHByZXNzIGZvciBiZWluZyBhY3RpdmF0ZWQgdG9vLlxuICAgICAgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgb25UcmlnZ2VyKGV2ZW50LCAoKSA9PiB7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgdG9nZ2xlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KSxcblxuICAgIC4uLihvcGVuT24gPT09IFwicmlnaHQtY2xpY2tcIiAmJiB7XG4gICAgICBvbkNvbnRleHRNZW51OiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIC8vIEEgbWVudSBvcGVuZWQgYnkgcmlnaHQtY2xpY2tpbmcgYmVsb25ncyBhdCB0aGUgY3Vyc29yIHJhdGhlciB0aGFuIGF0IHRoZSBlbGVtZW50LlxuICAgICAgICBzZXRDdXJzb3IoeyB4OiBldmVudC5jbGllbnRYLCB5OiBldmVudC5jbGllbnRZIH0pO1xuICAgICAgICB0b2dnbGUoKTtcbiAgICAgIH0sXG5cbiAgICAgIG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIG9uUmlnaHRUcmlnZ2VyKGV2ZW50LCAoKSA9PiB7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgLy8gQSBtZW51IHRoZSBrZXlib2FyZCBvcGVuZWQgYmVsb25ncyBhdCB0aGUgZWxlbWVudCwgd2hlcmV2ZXIgdGhlIGN1cnNvciBsYXN0IHdhcy5cbiAgICAgICAgICBzZXRDdXJzb3IodW5kZWZpbmVkKTtcbiAgICAgICAgICB0b2dnbGUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgLi4uKG9wZW5PbiA9PT0gXCJob3ZlclwiICYmIHtcbiAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gb3BlbihcInBvaW50ZXJcIiksXG4gICAgICBvbk1vdXNlTGVhdmU6IHNjaGVkdWxlQ2xvc2UsXG5cbiAgICAgIC8vIEEgbWVudSB0aGF0IG9wZW5zIG9uIGhvdmVyaW5nIHdvdWxkIGJlIG91dCBvZiB0aGUga2V5Ym9hcmQncyByZWFjaCBvdGhlcndpc2UuIFNpZGV3YXlzXG4gICAgICAvLyBpbnRvIGl0LCBzaW5jZSB0aGF0IGlzIHdoZXJlIHN1Y2ggYSBtZW51IHNpdHM6IGJlc2lkZSB0aGUgZWxlbWVudCBpdCBiZWxvbmdzIHRvLiBGb2N1c1xuICAgICAgLy8gZm9sbG93cyBvbiBpdHMgb3duLCB0aGUgbWVudSB0YWtpbmcgaXQgYXMgaXQgYXBwZWFycyBcdTIwMTQgb3IsIHRoZSBwb2ludGVyIGhhdmluZyBvcGVuZWQgaXRcbiAgICAgIC8vIGFscmVhZHksIGFzIHRoZSBrZXlib2FyZCBzdGVwcyBpbnRvIGl0LlxuICAgICAgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd1JpZ2h0XCIpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIG9wZW4oXCJrZXlib2FyZFwiKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KSxcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2NoaWxkcmVufVxuXG4gICAgICB7aXNPcGVuICYmIChcbiAgICAgICAgLy8gTWFya2VkIGFzIGluc2lkZSBmb3IgdGhlIG91dHNpZGUtY2xpY2sgZGV0ZWN0aW9uIGFib3ZlOiB0aGUgbWVudSBpcyBhIHNpYmxpbmcgb2YgdGhlXG4gICAgICAgIC8vIGVsZW1lbnQgaW4gdGhlIERPTSwgYnV0IHBhcnQgb2YgdGhlIHNhbWUgdGhpbmcgYXMgZmFyIGFzIGEgdXNlciBpcyBjb25jZXJuZWQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIEEgY2xpY2sgbGFuZGluZyBvbiB0aGUgbWVudSBpcyBhIGNsaWNrIG9uIHRoZSBtZW51IGFuZCBub3RoaW5nIGVsc2UsIHNvIGl0IHN0b3BzIGhlcmVcbiAgICAgICAgLy8gcmF0aGVyIHRoYW4gZ29pbmcgb24gdG8gd2hhdGV2ZXIgZW5jbG9zZXMgdGhlIGVsZW1lbnQgdGhlIG1lbnUgd2FzIG9wZW5lZCBmcm9tIFx1MjAxNCBhIHJvd1xuICAgICAgICAvLyBvZiBhIG1lbnUgb2YgaXRzIG93biwgc2F5LCB3aGljaCB3b3VsZCB0YWtlIGl0IGZvciB0aGUgcm93IGJlaW5nIGFjdGl2YXRlZC4gT25seVxuICAgICAgICAvLyBgY2xpY2tgIHN0b3BzOiB0aGUgb3V0c2lkZS1jbGljayBkZXRlY3Rpb24gYWJvdmUgd29ya3Mgb24gYHBvaW50ZXJkb3duYC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gRm9jdXMgbGFuZGluZyBpbiB0aGUgbWVudSBpcyBsaWtld2lzZSBmb2N1cyBpbiB0aGUgbWVudSBhbmQgbm90aGluZyBlbHNlLiBBIHRyZWUgcm93XG4gICAgICAgIC8vIGVuY2xvc2luZyB0aGUgZWxlbWVudCB3b3VsZCBvdGhlcndpc2UgdGFrZSBpdCBmb3IgdGhlIHJvdyBpdHNlbGYgYmVpbmcgZm9jdXNlZCwgYW5kXG4gICAgICAgIC8vIHRha2UgZm9jdXMgc3RyYWlnaHQgYmFjayBmcm9tIHRoZSBtZW51IHJvdyB0aGUgcG9pbnRlciBoYWQganVzdCBwdXQgaXQgb24gXHUyMDE0IGFuZCBzaW5jZVxuICAgICAgICAvLyB0aGUgaGlnaGxpZ2h0IG9mIGEgbWVudSByb3cgZm9sbG93cyBmb2N1cywgdGhhdCBpcyBhIG1lbnUgdGhhdCBuZXZlciBsb29rcyBwb2ludGVkIGF0LlxuICAgICAgICAvLyBPbmx5IGZvY3VzIHN0b3BzLCBub3QgYmx1cjogd2hhdGV2ZXIgZW5jbG9zZXMgdGhlIGVsZW1lbnQgdGVsbHMgZm9jdXMgbGVhdmluZyBpdCBhcGFydFxuICAgICAgICAvLyBmcm9tIGZvY3VzIG1vdmluZyB3aXRoaW4gaXQgYnkgd2hlcmUgZm9jdXMgd2VudCwgYW5kIGhhcyB0byBoZWFyIG9mIGl0IGxlYXZpbmcgZnJvbSB0aGVcbiAgICAgICAgLy8gbWVudSBhcyBtdWNoIGFzIGZyb20gYW55d2hlcmUgZWxzZS5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICB7Li4ub3V0c2lkZUNsaWNrTWFya2luZ1Byb3BzfVxuICAgICAgICAgIHJlZj17bWVudVJlZn1cbiAgICAgICAgICBzdHlsZT17ZGlzcGxheUNvbnRlbnRzfVxuICAgICAgICAgIG9uQ2xpY2s9e3N0b3BQcm9wYWdhdGlvbn1cbiAgICAgICAgICBvbkZvY3VzPXtzdG9wUHJvcGFnYXRpb259XG4gICAgICAgICAgLy8gU2lkZXdheXMgYmFjayBvdXQgb2YgYSBtZW51IHRoYXQgb3BlbmVkIHNpZGV3YXlzLCBmcm9tIHdoZXJldmVyIGluIGl0IGZvY3VzIGhhcHBlbnMgdG9cbiAgICAgICAgICAvLyBiZS4gSXQgc3RvcHMgaGVyZSwgc28gdGhlIG1lbnUgdGhpcyBvbmUgd2FzIG9wZW5lZCBmcm9tIGlzIGxlZnQgYXMgaXQgaXMgcmF0aGVyIHRoYW5cbiAgICAgICAgICAvLyBjbG9zaW5nIGFsb25nIHdpdGggaXQgXHUyMDE0IG9uZSBzdGVwIG91dCBwZXIgcHJlc3MuIE9ubHkgc3VjaCBhIG1lbnU6IGVsc2V3aGVyZSB0aGUga2V5XG4gICAgICAgICAgLy8gYmVsb25ncyB0byB3aGF0ZXZlciB0aGUgbWVudSBob2xkcywgYW5kIEVzY2FwZSBpcyBob3cgYSBtZW51IGlzIGRpc21pc3NlZC5cbiAgICAgICAgICBvbktleURvd249e29wZW5PbiA9PT0gXCJob3ZlclwiID8gY2xvc2VPbkFycm93TGVmdCA6IHVuZGVmaW5lZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxBbmNob3JOYW1lUHJvdmlkZXIgdmFsdWU9e2FuY2hvck5hbWV9PlxuICAgICAgICAgICAgPERyb3BEb3duTWVudVxuICAgICAgICAgICAgICBzcGVjPXtkcm9wRG93bk1lbnV9XG4gICAgICAgICAgICAgIGFuY2hvclBvaW50PXtvcGVuT24gPT09IFwicmlnaHQtY2xpY2tcIiA/IGN1cnNvciA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgdGFrZXNGb2N1cz17dGFrZXNGb2N1c31cbiAgICAgICAgICAgICAgb25DbG9zZT17Y2xvc2V9XG4gICAgICAgICAgICAgIG9uTWVudUhvdmVyQ2hhbmdlPXtcbiAgICAgICAgICAgICAgICBvcGVuT24gPT09IFwiaG92ZXJcIlxuICAgICAgICAgICAgICAgICAgPyAobWVudUlzSG92ZXJlZCkgPT4gKG1lbnVJc0hvdmVyZWQgPyBjYW5jZWxTY2hlZHVsZWRDbG9zZSgpIDogc2NoZWR1bGVDbG9zZSgpKVxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0FuY2hvck5hbWVQcm92aWRlcj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgKX1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmNvbnN0IGRpc3BsYXlDb250ZW50cyA9IHsgZGlzcGxheTogXCJjb250ZW50c1wiIH0gYXMgY29uc3Q7XG5cbmNvbnN0IHN0b3BQcm9wYWdhdGlvbiA9IChldmVudDogUmVhY3QuU3ludGhldGljRXZlbnQpID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG5leHBvcnQgY29uc3QgZHJvcERvd25NZW51UGx1Z2luID0gZ2V0UGx1Z2luPFxuICBEcm9wRG93bk1lbnVQbHVnaW5Qcm9wcyxcbiAgW3R5cGVvZiBlbmFibGVkUGx1Z2luLCB0eXBlb2YgY3Vyc29yUGx1Z2luLCB0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXVxuPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkZHJvcERvd25NZW51LCAkY3Vyc29yLCAkY2xhc3NOYW1lLCByb2xlIH0gPSBwcm9wcyBhcyB0eXBlb2YgcHJvcHMgJiBSZWFjdC5IVE1MUHJvcHM8SFRNTEVsZW1lbnQ+O1xuXG4gIGlmICgkZHJvcERvd25NZW51ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyAkZHJvcERvd25NZW51OiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IG9wZW5zT25DbGljayA9ICgkZHJvcERvd25NZW51Lm9wZW5PbiA/PyBcImNsaWNrXCIpID09PSBcImNsaWNrXCI7XG4gIC8vIFJlYWQgZnJvbSB3aGF0IHRoZSBlbGVtZW50IHdhcyBnaXZlbjogdGhpcyBwbHVnaW4gcnVucyBiZWZvcmUgdGhlIG9uZSB0aGF0IHR1cm5zIGl0IGludG9cbiAgLy8gdGhlIGBkaXNhYmxlZGAgcHJvcC5cbiAgY29uc3QgY2Fubm90QmVVc2VkID0gaXNEaXNhYmxlZChwcm9wcyk7XG5cbiAgcmV0dXJuIHtcbiAgICAkZHJvcERvd25NZW51OiB1bmRlZmluZWQsXG5cbiAgICAuLi4oJGRyb3BEb3duTWVudS5vcGVuT24gPT09IFwiaG92ZXJcIiA/IHt9IDogeyB0YWJJbmRleDogcHJvcHMudGFiSW5kZXggPz8gMCB9KSxcblxuICAgIC8vIEFuIGVsZW1lbnQgdGhhdCBhbnN3ZXJzIGEgY2xpY2sgd2l0aCBhIG1lbnUgaXMgYSBidXR0b24sIGFuZCB0aGUgY3Vyc29yIGlzIGhvdyBpdCBzYXlzIHNvXG4gICAgLy8gLS0gb3Igc2F5cyB0aGF0IGl0IGNhbm5vdCByaWdodCBub3cuIEJvdGggd291bGQgb3RoZXJ3aXNlIGNvbWUgZnJvbSBhIGNsaWNrIGhhbmRsZXIgc3VjaCBhblxuICAgIC8vIGVsZW1lbnQgaGFzIG5vIHJlYXNvbiB0byBoYXZlLiBPbmx5IGEgY2xpY2s6IHNvbWV0aGluZyByaWdodC1jbGlja2VkIGlzIG5vdCBhIGJ1dHRvbiwgYW5kIGFcbiAgICAvLyByb3cgdGhhdCByZXZlYWxzIGEgbWVudSBvbiBob3ZlciBpcyBhIHJvdy5cbiAgICAuLi4ob3BlbnNPbkNsaWNrICYmIHtcbiAgICAgIHJvbGU6IHJvbGUgPz8gXCJidXR0b25cIixcbiAgICAgICRjdXJzb3I6ICRjdXJzb3IgPz8gKGNhbm5vdEJlVXNlZCA/IFwibm90LWFsbG93ZWRcIiA6IFwicG9pbnRlclwiKSxcbiAgICB9KSxcblxuICAgIC8vIFRoZSBlbGVtZW50IG1heSB0dXJuIG91dCB0byBiZSB0aGUgYW5jaG9yIG9mIGl0cyBvd24gbWVudSwgd2hpY2ggb25seSBpdHMgd3JhcHBlciBjYW4gdGVsbCxcbiAgICAvLyByZW5kZXJpbmcgd2l0aGluIHdoYXRldmVyIGFuY2hvcnMgZW5jbG9zZSB0aGUgZWxlbWVudDsgdGhpcyBsZXRzIHRoZSBuYW1lIGl0IGlzIHRoZW4gZ2l2ZW5cbiAgICAvLyB0YWtlIGVmZmVjdC5cbiAgICAkY2xhc3NOYW1lOiBjc3NOYW1lcygkY2xhc3NOYW1lLCBhbmNob3JhYmxlQ2xhc3NOYW1lKSxcblxuICAgICR3cmFwcGVyOiB7XG4gICAgICBDb21wb25lbnQ6IERyb3BEb3duTWVudVdyYXBwZXJDb21wb25lbnQsXG4gICAgICBwcm9wczogeyBkcm9wRG93bk1lbnU6ICRkcm9wRG93bk1lbnUgfSxcbiAgICB9LFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcywgdHlwZSBDb250cmlidXRlUmVmIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBjc3NOYW1lcyB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vYW5jaG9yLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uMmQgfSBmcm9tIFwiLi4vY2xpY2thYmxlL2NsaWNrYWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBUU2hpcnRTaXplLCB0U2hpcnRTaXplSW5QaXhlbHMgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IGNvbG9yUGx1Z2luIH0gZnJvbSBcIi4uL2NvbG9yL2NvbG9yXCI7XG5pbXBvcnQgdHlwZSB7IGJhY2tncm91bmRDb2xvclBsdWdpbiB9IGZyb20gXCIuLi9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3JcIjtcbmltcG9ydCB0eXBlIHsgYm9yZGVyUGx1Z2luIH0gZnJvbSBcIi4uL2JvcmRlci9ib3JkZXJcIjtcbmltcG9ydCB0eXBlIHsgcGFkZGluZ1BsdWdpbiB9IGZyb20gXCIuLi9wYWRkaW5nL3BhZGRpbmdcIjtcbmltcG9ydCB0eXBlIHsgbWFyZ2luUGx1Z2luIH0gZnJvbSBcIi4uL21hcmdpbi9tYXJnaW5cIjtcbmltcG9ydCB0eXBlIHsgb3ZlcmZsb3dQbHVnaW4gfSBmcm9tIFwiLi4vb3ZlcmZsb3cvb3ZlcmZsb3dcIjtcblxuLyoqXG4gKiBXaGVyZSBhbiBlbGVtZW50IHNpdHMgcmVsYXRpdmUgdG8gaXRzIGFuY2hvcjogYSBzaWRlIG9mIHRoZSBhbmNob3IsIG9wdGlvbmFsbHkgcmVmaW5lZCB3aXRoIGhvd1xuICogdGhlIGVsZW1lbnQgZXh0ZW5kcyBhbG9uZyB0aGF0IHNpZGUuIEEgYmFyZSBzaWRlIGNlbnRlcnMgdGhlIGVsZW1lbnQgb24gaXQ7IGBzcGFuLTxkaXJlY3Rpb24+YFxuICogYWxpZ25zIHRoZWlyIGVkZ2VzIGFuZCBsZXRzIHRoZSBlbGVtZW50IGV4dGVuZCB0b3dhcmQgdGhhdCBkaXJlY3Rpb24uXG4gKlxuICogV2hlbiB0aGUgZWxlbWVudCB3b3VsZCBub3QgZml0IHRoZSB2aWV3cG9ydCwgaXQgZmFsbHMgYmFjayB0byB0aGUgbWlycm9yZWQgcG9zaXRpb25zLlxuICovXG5leHBvcnQgdHlwZSBBbmNob3JQb3NpdGlvbiA9XG4gIHwgXCJ0b3BcIlxuICB8IFwiYm90dG9tXCJcbiAgfCBcImxlZnRcIlxuICB8IFwicmlnaHRcIlxuICB8IFwidG9wIHNwYW4tbGVmdFwiXG4gIHwgXCJ0b3Agc3Bhbi1yaWdodFwiXG4gIHwgXCJib3R0b20gc3Bhbi1sZWZ0XCJcbiAgfCBcImJvdHRvbSBzcGFuLXJpZ2h0XCJcbiAgfCBcImxlZnQgc3Bhbi10b3BcIlxuICB8IFwibGVmdCBzcGFuLWJvdHRvbVwiXG4gIHwgXCJyaWdodCBzcGFuLXRvcFwiXG4gIHwgXCJyaWdodCBzcGFuLWJvdHRvbVwiO1xuXG4vKipcbiAqIEVpdGhlciBhIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBuZWFyZXN0IGFuY2VzdG9yIGAkYW5jaG9yYCwgb3IgdGhlIHNhbWUgcG9zaXRpb24gcmVsYXRpdmUgdG8gYVxuICogcG9pbnQgaW4gdGhlIHZpZXdwb3J0LlxuICovXG5leHBvcnQgdHlwZSBBbmNob3JlZEF0ID1cbiAgfCBBbmNob3JQb3NpdGlvblxuICB8IHtcbiAgICAgIHJlYWRvbmx5IHBvc2l0aW9uOiBBbmNob3JQb3NpdGlvbjtcblxuICAgICAgLyoqIEhvdyBmYXIgZnJvbSB0aGUgYW5jaG9yIHRoZSBlbGVtZW50IHNpdHMuIERlZmF1bHRzIHRvIGBcInhzXCJgLiAqL1xuICAgICAgcmVhZG9ubHkgZ2FwPzogVFNoaXJ0U2l6ZTtcblxuICAgICAgLyoqIFNpdCBhdCB0aGlzIHZpZXdwb3J0IHBvaW50IGluc3RlYWQgb2YgYXQgYW4gYW5jaG9yLiAqL1xuICAgICAgcmVhZG9ubHkgcG9pbnQ/OiBQb3NpdGlvbjJkO1xuICAgIH07XG5cbmNvbnN0IGRlZmF1bHRHYXA6IFRTaGlydFNpemUgPSBcInhzXCI7XG5cbmV4cG9ydCB0eXBlIEFuY2hvclBsdWdpblByb3BzID0ge1xuICByZWFkb25seSBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcblxuICAvKipcbiAgICogTWFrZXMgdGhlIGVsZW1lbnQgYW4gYW5jaG9yIGZvciB0aGUgZWxlbWVudHMgb2YgaXRzIHN1YnRyZWUgdGhhdCBkZWNsYXJlIHtAbGluayAkYW5jaG9yZWRBdH0uXG4gICAqIFRoZSBuZWFyZXN0IHN1Y2ggYW5jZXN0b3Igd2lucywgc28gbmVzdGluZyB3b3JrcyB3aXRob3V0IG5hbWluZyBhbnl0aGluZy5cbiAgICovXG4gIHJlYWRvbmx5ICRhbmNob3I/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbnMgdGhlIGVsZW1lbnQgcmVsYXRpdmUgdG8gYW4gYW5jaG9yLCBhYm92ZSBldmVyeXRoaW5nIGVsc2Ugb24gdGhlIHBhZ2UgXHUyMDE0IGl0IGVzY2FwZXNcbiAgICogY2xpcHBpbmcgYW5jZXN0b3JzIGFuZCBzdGFja2luZyBjb250ZXh0cywgc28gaXQgbmVlZHMgbm8gcG9ydGFsLlxuICAgKlxuICAgKiBUaGUgYW5jaG9yIGlzIHRoZSBuZWFyZXN0IGFuY2VzdG9yIGRlY2xhcmluZyB7QGxpbmsgJGFuY2hvcn0sIG9yIHRoZSBnaXZlbiBwb2ludCB3aGVuIGEgcG9pbnRcbiAgICogaXMgcHJvdmlkZWQgaW5zdGVhZC5cbiAgICovXG4gIHJlYWRvbmx5ICRhbmNob3JlZEF0PzogQW5jaG9yZWRBdDtcbn07XG5cbmNvbnN0IGFuY2hvck5hbWVDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbi8qKlxuICogTGV0cyB7QGxpbmsgdXNlQW5jaG9yTmFtZUZvcn0gbmFtZSBhbiBlbGVtZW50IGFzIGFuIGFuY2hvci4gQSBwbHVnaW4gd2hvc2Ugd3JhcHBlciBtYXkgYW5jaG9yXG4gKiB3aGF0IGl0IHJlbmRlcnMgdG8gdGhlIGVsZW1lbnQgaXRzZWxmIGFkZHMgdGhpcyB0byB0aGUgZWxlbWVudCdzIGAkY2xhc3NOYW1lYC4gVGhlIG5hbWUgZm9sbG93c1xuICogb25seSB3aGVuIG5vdGhpbmcgZWxzZSBhbmNob3JzIHRoZSBlbGVtZW50LCBzbyB0aGUgY2xhc3MgYWxvbmUgY2hhbmdlcyBub3RoaW5nLlxuICovXG5leHBvcnQgY29uc3QgYW5jaG9yYWJsZUNsYXNzTmFtZSA9IHN0eWxlcy5hbmNob3I7XG5cbi8qKlxuICogVGhlIGFuY2hvciBuYW1lIGZvciB3aGF0IGEgcGx1Z2luJ3Mgd3JhcHBlciByZW5kZXJzIGJlc2lkZSBpdHMgZWxlbWVudCBhbmQgcG9zaXRpb25zIHdpdGhcbiAqIGAkYW5jaG9yZWRBdGAgXHUyMDE0IGEgbWVudSwgc2F5OiB0aGF0IG9mIHRoZSBuZWFyZXN0IGAkYW5jaG9yYCBhcm91bmQgdGhlIGVsZW1lbnQsIHRoZSBlbGVtZW50J3Mgb3duXG4gKiBpbmNsdWRlZCwgb3IgZmFpbGluZyB0aGF0IGEgbmFtZSBvZiB0aGUgZWxlbWVudCdzIG93biwgd2hpY2ggdGhpcyBnaXZlcyBpdC4gUmVuZGVyIHdoYXQgaXNcbiAqIHBvc2l0aW9uZWQgaW5zaWRlIHtAbGluayBBbmNob3JOYW1lUHJvdmlkZXJ9IHdpdGggdGhlIHJldHVybmVkIG5hbWUsIHNvIGl0IGZpbmRzIGl0cyBhbmNob3IuXG4gKlxuICogVGhlIGVsZW1lbnQgbmVlZHMge0BsaW5rIGFuY2hvcmFibGVDbGFzc05hbWV9IGZvciBhIG5hbWUgb2YgaXRzIG93biB0byB0YWtlIGVmZmVjdCwgYW5kIGlzIG5hbWVkXG4gKiBvbmx5IHdoaWxlIGBpc0FuY2hvcmluZ2A6IHdoaWxlIHdoYXQgaXMgcG9zaXRpb25lZCBhZ2FpbnN0IGl0IGlzIHNob3duLlxuICovXG5leHBvcnQgY29uc3QgdXNlQW5jaG9yTmFtZUZvciA9IChlbGVtZW50UmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPiwgaXNBbmNob3Jpbmc6IGJvb2xlYW4pID0+IHtcbiAgY29uc3QgZW5jbG9zaW5nQW5jaG9yTmFtZSA9IHVzZUNvbnRleHQoYW5jaG9yTmFtZUNvbnRleHQpO1xuICBjb25zdCBhbmNob3JzSXRzZWxmID0gaXNBbmNob3JpbmcgJiYgZW5jbG9zaW5nQW5jaG9yTmFtZSA9PT0gdW5kZWZpbmVkO1xuXG4gIC8vIE5hbWVkIHRoZSBmaXJzdCB0aW1lIGl0IGFuY2hvcnMgcmF0aGVyIHRoYW4gZnJvbSB1c2VJZDogZXZlcnkgZWxlbWVudCB0aGF0IG1heSBvcGVuIGEgbWVudVxuICAvLyB3b3VsZCBvdGhlcndpc2UgdGFrZSBhbiBpZCwgc2hpZnRpbmcgdGhvc2Ugb2YgZXZlcnl0aGluZyByZW5kZXJlZCBhZnRlciBpdC5cbiAgY29uc3Qgb3duQW5jaG9yTmFtZVJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgaWYgKGFuY2hvcnNJdHNlbGYgJiYgb3duQW5jaG9yTmFtZVJlZi5jdXJyZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICBvd25BbmNob3JOYW1lUmVmLmN1cnJlbnQgPSBgLS1hbmNob3Itb3duLSR7Kytvd25BbmNob3JOYW1lQ291bnR9YDtcbiAgfVxuXG4gIGNvbnN0IG93bkFuY2hvck5hbWUgPSBvd25BbmNob3JOYW1lUmVmLmN1cnJlbnQ7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudFJlZi5jdXJyZW50O1xuXG4gICAgaWYgKCFhbmNob3JzSXRzZWxmIHx8ICFlbGVtZW50IHx8IG93bkFuY2hvck5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoYW5jaG9yTmFtZVByb3BlcnR5LCBvd25BbmNob3JOYW1lKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBlbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KGFuY2hvck5hbWVQcm9wZXJ0eSk7XG5cbiAgICAgIC8vIExlZnQgYXMgaXQgd2FzIGZvdW5kOiBhbiBlbGVtZW50IHdpdGggbm8gc3R5bGUgb2YgaXRzIG93biBrZWVwcyBubyBlbXB0eSBhdHRyaWJ1dGUuXG4gICAgICBpZiAoZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJzdHlsZVwiKSA9PT0gXCJcIikge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcInN0eWxlXCIpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFthbmNob3JzSXRzZWxmLCBvd25BbmNob3JOYW1lLCBlbGVtZW50UmVmXSk7XG5cbiAgcmV0dXJuIGVuY2xvc2luZ0FuY2hvck5hbWUgPz8gb3duQW5jaG9yTmFtZTtcbn07XG5cbmxldCBvd25BbmNob3JOYW1lQ291bnQgPSAwO1xuXG4vKiogVGVsbHMgd2hhdCBpcyByZW5kZXJlZCBpbnNpZGUgd2hpY2ggYW5jaG9yIHRvIHBvc2l0aW9uIGFnYWluc3Q7IHNlZSB7QGxpbmsgdXNlQW5jaG9yTmFtZUZvcn0uICovXG5leHBvcnQgY29uc3QgQW5jaG9yTmFtZVByb3ZpZGVyID0gYW5jaG9yTmFtZUNvbnRleHQuUHJvdmlkZXI7XG5cbnR5cGUgQW5jaG9yV3JhcHBlclByb3BzID0ge1xuICByZWFkb25seSBpc0FuY2hvcjogYm9vbGVhbjtcbiAgcmVhZG9ubHkgYW5jaG9yZWRBdDogQW5jaG9yZWRBdCB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVJlZjogQ29udHJpYnV0ZVJlZjtcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVByb3BzOiBDb250cmlidXRlUHJvcHM7XG4gIHJlYWRvbmx5IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBBbmNob3JXcmFwcGVyQ29tcG9uZW50ID0gKHtcbiAgaXNBbmNob3IsXG4gIGFuY2hvcmVkQXQsXG4gIGNvbnRyaWJ1dGVSZWYsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBBbmNob3JXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3Qgb3duQW5jaG9yTmFtZSA9IHRvQW5jaG9yTmFtZSh1c2VJZCgpKTtcbiAgY29uc3QgaW5oZXJpdGVkQW5jaG9yTmFtZSA9IHVzZUNvbnRleHQoYW5jaG9yTmFtZUNvbnRleHQpO1xuICBjb25zdCBlbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHBvaW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgY29udHJpYnV0ZVJlZihcbiAgICB1c2VDYWxsYmFjaygoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBlbGVtZW50O1xuICAgIH0sIFtdKSxcbiAgKTtcblxuICBjb25zdCBwb3NpdGlvbiA9IHR5cGVvZiBhbmNob3JlZEF0ID09PSBcInN0cmluZ1wiID8gYW5jaG9yZWRBdCA6IGFuY2hvcmVkQXQ/LnBvc2l0aW9uO1xuICBjb25zdCBwb2ludCA9IHR5cGVvZiBhbmNob3JlZEF0ID09PSBcIm9iamVjdFwiID8gYW5jaG9yZWRBdC5wb2ludCA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZ2FwID0gdHlwZW9mIGFuY2hvcmVkQXQgPT09IFwib2JqZWN0XCIgPyAoYW5jaG9yZWRBdC5nYXAgPz8gZGVmYXVsdEdhcCkgOiBkZWZhdWx0R2FwO1xuXG4gIGlmIChwb3NpdGlvbiAmJiAhcG9pbnQgJiYgIWluaGVyaXRlZEFuY2hvck5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVHJpZWQgdG8gcG9zaXRpb24gYW4gZWxlbWVudCBhdCBcIiR7cG9zaXRpb259XCIgd2l0aG91dCBhbiBhbmNob3IuIEVpdGhlciBnaXZlIGFuIGFuY2VzdG9yIHRoZSAkYW5jaG9yIHByb3AsIG9yIGFuY2hvciB0byBhIHBvaW50IGluc3RlYWQuYCxcbiAgICApO1xuICB9XG5cbiAgLy8gQSBwb2ludCBhbmNob3IgaXMgdGhlIGVsZW1lbnQncyBvd247IG90aGVyd2lzZSBpdCBwb3NpdGlvbnMgYWdhaW5zdCB3aGF0ZXZlciBhbmNob3IgZW5jbG9zZXMgaXQuXG4gIGNvbnN0IGFuY2hvck5hbWVUb1Bvc2l0aW9uQWdhaW5zdCA9IHBvaW50ID8gb3duQW5jaG9yTmFtZSA6IGluaGVyaXRlZEFuY2hvck5hbWU7XG5cbiAgaWYgKGFuY2hvcmVkQXQgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnRyaWJ1dGVQcm9wcyh7IHBvcG92ZXI6IFwibWFudWFsXCIgfSk7XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50UmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBbmNob3IpIHtcbiAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoYW5jaG9yTmFtZVByb3BlcnR5LCBvd25BbmNob3JOYW1lKTtcbiAgICB9XG5cbiAgICBpZiAocG9zaXRpb24pIHtcbiAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkocG9zaXRpb25Qcm9wZXJ0eSwgcG9zaXRpb24pO1xuICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShnYXBQcm9wZXJ0eSwgYCR7dFNoaXJ0U2l6ZUluUGl4ZWxzKGdhcCl9cHhgKTtcblxuICAgICAgLy8gT25seSB0b3dhcmQgdGhlIGFuY2hvciwgc28gdGhlIGVsZW1lbnQgc3RpbGwgbGluZXMgdXAgd2l0aCBpdCBvbiB0aGUgb3RoZXIgYXhpcy4gQVxuICAgICAgLy8gZmFsbGJhY2sgdGhhdCBtaXJyb3JzIHRoZSBwb3NpdGlvbiBtaXJyb3JzIHRoaXMgbWFyZ2luIHdpdGggaXQuXG4gICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KG1hcmdpblByb3BlcnR5VG93YXJkc0FuY2hvcihwb3NpdGlvbiksIGAke3RTaGlydFNpemVJblBpeGVscyhnYXApfXB4YCk7XG5cbiAgICAgIGlmIChhbmNob3JOYW1lVG9Qb3NpdGlvbkFnYWluc3QpIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShwb3NpdGlvbkFuY2hvclByb3BlcnR5LCBhbmNob3JOYW1lVG9Qb3NpdGlvbkFnYWluc3QpO1xuICAgICAgfVxuXG4gICAgICBpZiAocG9pbnQpIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShwb2ludFhQcm9wZXJ0eSwgYCR7cG9pbnQueH1weGApO1xuICAgICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHBvaW50WVByb3BlcnR5LCBgJHtwb2ludC55fXB4YCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICAvLyBUaGUgcG9pbnQgcmlzZXMgdG8gdGhlIHRvcCBsYXllciBhbG9uZyB3aXRoIHdoYXQgaXMgYW5jaG9yZWQgdG8gaXQuIEEgYGZpeGVkYCBlbGVtZW50IHJlc29sdmVzXG4gIC8vIGFnYWluc3QgdGhlIG5lYXJlc3QgYW5jZXN0b3IgdGhhdCB0cmFuc2Zvcm1zLCBmaWx0ZXJzIG9yIGNvbnRhaW5zIGl0cyBzdWJ0cmVlLCBzbyBhIHBvaW50IGxlZnRcbiAgLy8gaW4gdGhlIHRyZWUgbGFuZHMgYXQgdGhlIGN1cnNvciBwbHVzIHRoYXQgYW5jZXN0b3IncyBvd24gb2Zmc2V0IFx1MjAxNCB3aGljaCBpcyBob3cgYSBtZW51IG9wZW5lZFxuICAvLyBvdmVyIGEgbmF2aWdhdG9yIGl0ZW0gdXNlZCB0byBhcHBlYXIgaHVuZHJlZHMgb2YgcGl4ZWxzIGJlbG93IHRoZSBjdXJzb3IuXG4gIC8vXG4gIC8vIFNob3duIGJlZm9yZSB0aGUgZWxlbWVudCBhbmNob3JlZCB0byBpdDogYW4gYW5jaG9yIGhhcyB0byByZWFjaCB0aGUgdG9wIGxheWVyIGZpcnN0LCBvciB0aGVcbiAgLy8gZWxlbWVudCBwb3NpdGlvbmluZyBhZ2FpbnN0IGl0IGZpbmRzIG5vIGFuY2hvciBhdCBhbGwgYW5kIGxhbmRzIGluIHRoZSB2aWV3cG9ydCdzIGNvcm5lci5cbiAgLy9cbiAgLy8gT25jZSwgb24gbW91bnQ6IGFuIGVsZW1lbnQgaXMgYW5jaG9yZWQgdG8gYSBwb2ludCBmb3IgYXMgbG9uZyBhcyBpdCBpcyBtb3VudGVkLCBzaW5jZSB0aGUgcG9pbnRcbiAgLy8gaXMgd2hlcmUgdGhlIGN1cnNvciB3YXMgd2hlbiB3aGF0ZXZlciBvcGVuZWQgaXQgd2FzIG9wZW5lZC5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gcG9pbnRSZWYuY3VycmVudDtcblxuICAgIGlmICghZWxlbWVudCB8fCAhaXNQb3BvdmVyQ2FwYWJsZShlbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQuc2hvd1BvcG92ZXIoKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoZWxlbWVudC5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBlbGVtZW50LmhpZGVQb3BvdmVyKCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudDtcblxuICAgIGlmICghcG9zaXRpb24gfHwgIWVsZW1lbnQgfHwgIWlzUG9wb3ZlckNhcGFibGUoZWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlbGVtZW50LnNob3dQb3BvdmVyKCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgZWxlbWVudC5oaWRlUG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtwb3NpdGlvbl0pO1xuXG4gIGNvbnN0IGNvbnRlbnQgPSBwb2ludCA/IChcbiAgICA8PlxuICAgICAgey8qIEEgemVyby1zaXplIGFuY2hvciBhdCB0aGUgcG9pbnQsIHNvIGEgY3Vyc29yLWFuY2hvcmVkIGVsZW1lbnQgcG9zaXRpb25zIGxpa2UgYW55IG90aGVyLiAqL31cbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXtwb2ludFJlZiBhcyBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+fVxuICAgICAgICBwb3BvdmVyPVwibWFudWFsXCJcbiAgICAgICAgZGF0YS1hbmNob3ItcG9pbnQtdGVzdFxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5hbmNob3JQb2ludH1cbiAgICAgICAgc3R5bGU9e1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFthbmNob3JOYW1lUHJvcGVydHldOiBvd25BbmNob3JOYW1lLFxuICAgICAgICAgICAgW3BvaW50WFByb3BlcnR5XTogYCR7cG9pbnQueH1weGAsXG4gICAgICAgICAgICBbcG9pbnRZUHJvcGVydHldOiBgJHtwb2ludC55fXB4YCxcbiAgICAgICAgICB9IGFzIFJlYWN0LkNTU1Byb3BlcnRpZXNcbiAgICAgICAgfVxuICAgICAgLz5cblxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICApIDogKFxuICAgIGNoaWxkcmVuXG4gICk7XG5cbiAgaWYgKGlzQW5jaG9yKSB7XG4gICAgcmV0dXJuIDxhbmNob3JOYW1lQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17b3duQW5jaG9yTmFtZX0+e2NvbnRlbnR9PC9hbmNob3JOYW1lQ29udGV4dC5Qcm92aWRlcj47XG4gIH1cblxuICByZXR1cm4gPD57Y29udGVudH08Lz47XG59O1xuXG5leHBvcnQgY29uc3QgYW5jaG9yUGx1Z2luID0gZ2V0UGx1Z2luPFxuICBBbmNob3JQbHVnaW5Qcm9wcyxcbiAgW1xuICAgIHR5cGVvZiBjbGFzc05hbWVQbHVnaW4sXG4gICAgdHlwZW9mIGNvbG9yUGx1Z2luLFxuICAgIHR5cGVvZiBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4sXG4gICAgdHlwZW9mIGJvcmRlclBsdWdpbixcbiAgICB0eXBlb2YgcGFkZGluZ1BsdWdpbixcbiAgICB0eXBlb2YgbWFyZ2luUGx1Z2luLFxuICAgIHR5cGVvZiBvdmVyZmxvd1BsdWdpbixcbiAgXVxuPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkYW5jaG9yLCAkYW5jaG9yZWRBdCwgJGNsYXNzTmFtZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkYW5jaG9yICYmICRhbmNob3JlZEF0ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyAkYW5jaG9yOiB1bmRlZmluZWQsICRhbmNob3JlZEF0OiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGFuY2hvcjogdW5kZWZpbmVkLFxuICAgICRhbmNob3JlZEF0OiB1bmRlZmluZWQsXG5cbiAgICAvLyBSaXNpbmcgdG8gdGhlIHRvcCBsYXllciBpcyBhIHRlY2huaWNhbGl0eSBvZiBwb3NpdGlvbmluZywgYnV0IHRoZSBicm93c2VyIG1ha2VzIGl0IGEgbG9vazpcbiAgICAvLyBjb2xvdXJzIG9mIGl0cyBvd24sIGEgYm9yZGVyLCBwYWRkaW5nLCBhbmQgYSBtYXJnaW4gdGhhdCB3b3VsZCBjZW50ZXIgdGhlIGVsZW1lbnQuIFVuZG8gdGhhdCxcbiAgICAvLyBzbyBhbiBlbGVtZW50IHBvc2l0aW9uZWQgdGhpcyB3YXkgbG9va3MgbGlrZSBpdCBkb2VzIGFueXdoZXJlIGVsc2UsIGFuZCBsZXQgd2hhdGV2ZXIgaXQgc2F5c1xuICAgIC8vIGFib3V0IGl0c2VsZiB3aW4uXG4gICAgLi4uKCRhbmNob3JlZEF0ICE9PSB1bmRlZmluZWQgJiYge1xuICAgICAgJGNvbG9yOiBwcm9wcy4kY29sb3IgPz8gXCJpbmhlcml0XCIsXG4gICAgICAkYmFja2dyb3VuZENvbG9yOiBwcm9wcy4kYmFja2dyb3VuZENvbG9yID8/IFwidHJhbnNwYXJlbnRcIixcbiAgICAgICRib3JkZXI6IHsgd2lkdGg6IFwiemVyb1wiLCAuLi5wcm9wcy4kYm9yZGVyIH0sXG4gICAgICAkcGFkZGluZzogcHJvcHMuJHBhZGRpbmcgPz8gXCJ6ZXJvXCIsXG4gICAgICAkbWFyZ2luOiBwcm9wcy4kbWFyZ2luID8/IFwiemVyb1wiLFxuICAgICAgJG92ZXJmbG93OiBwcm9wcy4kb3ZlcmZsb3cgPz8gXCJ2aXNpYmxlXCIsXG4gICAgfSksXG5cbiAgICAkY2xhc3NOYW1lOiBjc3NOYW1lcygkY2xhc3NOYW1lLCB7XG4gICAgICBbc3R5bGVzLmFuY2hvcl06ICEhJGFuY2hvcixcbiAgICAgIFtzdHlsZXMuYW5jaG9yZWRBdF06ICRhbmNob3JlZEF0ICE9PSB1bmRlZmluZWQsXG4gICAgfSksXG5cbiAgICAkd3JhcHBlcjoge1xuICAgICAgQ29tcG9uZW50OiBBbmNob3JXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgcHJvcHM6IHsgaXNBbmNob3I6ICEhJGFuY2hvciwgYW5jaG9yZWRBdDogJGFuY2hvcmVkQXQgfSxcbiAgICB9LFxuICB9O1xufSk7XG5cbmNvbnN0IG1hcmdpblByb3BlcnR5VG93YXJkc0FuY2hvciA9IChwb3NpdGlvbjogQW5jaG9yUG9zaXRpb24pID0+IHtcbiAgaWYgKHBvc2l0aW9uLnN0YXJ0c1dpdGgoXCJib3R0b21cIikpIHtcbiAgICByZXR1cm4gXCJtYXJnaW4tdG9wXCI7XG4gIH1cblxuICBpZiAocG9zaXRpb24uc3RhcnRzV2l0aChcInRvcFwiKSkge1xuICAgIHJldHVybiBcIm1hcmdpbi1ib3R0b21cIjtcbiAgfVxuXG4gIHJldHVybiBwb3NpdGlvbi5zdGFydHNXaXRoKFwicmlnaHRcIikgPyBcIm1hcmdpbi1sZWZ0XCIgOiBcIm1hcmdpbi1yaWdodFwiO1xufTtcblxuY29uc3QgYW5jaG9yTmFtZVByb3BlcnR5ID0gXCItLWFuY2hvci1uYW1lXCI7XG5jb25zdCBnYXBQcm9wZXJ0eSA9IFwiLS1hbmNob3ItZ2FwXCI7XG5jb25zdCBwb3NpdGlvbkFuY2hvclByb3BlcnR5ID0gXCItLWFuY2hvci10YXJnZXRcIjtcbmNvbnN0IHBvc2l0aW9uUHJvcGVydHkgPSBcIi0tYW5jaG9yLXBvc2l0aW9uXCI7XG5jb25zdCBwb2ludFhQcm9wZXJ0eSA9IFwiLS1hbmNob3ItcG9pbnQteFwiO1xuY29uc3QgcG9pbnRZUHJvcGVydHkgPSBcIi0tYW5jaG9yLXBvaW50LXlcIjtcblxuLyoqIEFuY2hvciBuYW1lcyBhcmUgZGFzaGVkIGlkZW50cywgc28gdGhlIGdlbmVyYXRlZCBpZCBoYXMgdG8gbG9zZSBldmVyeXRoaW5nIGVsc2UuICovXG5jb25zdCB0b0FuY2hvck5hbWUgPSAoaWQ6IHN0cmluZykgPT4gYC0tYW5jaG9yLSR7aWQucmVwbGFjZSgvW15hLXpBLVowLTldL2csIFwiXCIpfWA7XG5cbnR5cGUgUG9wb3ZlckNhcGFibGUgPSBIVE1MRWxlbWVudCAmIHsgc2hvd1BvcG92ZXI6IFZvaWRGdW5jdGlvbjsgaGlkZVBvcG92ZXI6IFZvaWRGdW5jdGlvbiB9O1xuXG5jb25zdCBpc1BvcG92ZXJDYXBhYmxlID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogZWxlbWVudCBpcyBQb3BvdmVyQ2FwYWJsZSA9PlxuICB0eXBlb2YgKGVsZW1lbnQgYXMgUGFydGlhbDxQb3BvdmVyQ2FwYWJsZT4pLnNob3dQb3BvdmVyID09PSBcImZ1bmN0aW9uXCI7XG4iLCAiaW1wb3J0IHR5cGUgeyBGb2N1c2FibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL2ZvY3VzYWJsZVwiO1xuXG5leHBvcnQgdHlwZSAkRm9jdXNhYmxlUHJvcHM8Rm9jdXNlZEl0ZW0+ID0gUmVxdWlyZWQ8Rm9jdXNhYmxlUGx1Z2luUHJvcHM8Rm9jdXNlZEl0ZW0+PltcIiRmb2N1c2FibGVcIl07XG5cbi8qKlxuICogSWRlbnRpZmllcyBhIHNldCBvZiBmb2N1c2FibGVzIGNvbXBldGluZyBmb3Igb25lIGZvY3VzZWQgaXRlbS4gRWxlbWVudHMgam9pbiBpdCBieSBkZWNsYXJpbmdcbiAqIGAkZm9jdXNhYmxlYDsgbm90aGluZyBlbnVtZXJhdGVzIHRoZW0gYXQgdGhlIGNhbGwgc2l0ZS5cbiAqL1xuZXhwb3J0IHR5cGUgRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT4gPSB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlzS2V5Ym9hcmROYXZpZ2FibGU6IGZhbHNlO1xuICBmb2N1c2FibGU6IChpdGVtOiBGb2N1c2VkSXRlbSkgPT4gJEZvY3VzYWJsZVByb3BzPEZvY3VzZWRJdGVtPjtcbn07XG5cbi8qKiBXaGljaCBhcnJvdyBrZXlzIG1vdmUgZm9jdXMgd2l0aGluIGEga2V5Ym9hcmQtbmF2aWdhYmxlIGNvbnRleHQuICovXG5leHBvcnQgdHlwZSBLZXlib2FyZE5hdmlnYXRpb25PcmllbnRhdGlvbiA9IFwidmVydGljYWxcIiB8IFwiaG9yaXpvbnRhbFwiIHwgXCJib3RoXCI7XG5cbi8qKlxuICogQSBmb2N1c2FibGUgY29udGV4dCB3aG9zZSBtZW1iZXJzIGFyZSBhbHNvIG5hdmlnYXRlZCB3aXRoIGFycm93IGtleXMsIGluIHRoZSBvcmRlciB0aGV5IHN0YXRlLlxuICogVGhlIGxvd2VzdCBvcmRlciBudW1iZXIgaXMgZm9jdXNlZCB3aGVuIHRoZSBtZW1iZXJzIGFwcGVhciwgdW5sZXNzIHRoZSBjb250ZXh0IHNheXMgb3RoZXJ3aXNlLFxuICogYW5kIGZvY3VzIHJldHVybnMgdG8gdGhlIGVuY2xvc2luZyBjb250ZXh0IHdoZW4gdGhleSBnbyBhd2F5LlxuICovXG5leHBvcnQgdHlwZSBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0ge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBpc0tleWJvYXJkTmF2aWdhYmxlOiB0cnVlO1xuICByZWFkb25seSBvcmllbnRhdGlvbjogS2V5Ym9hcmROYXZpZ2F0aW9uT3JpZW50YXRpb247XG4gIHJlYWRvbmx5IHRha2VzRm9jdXNBc0l0QXBwZWFyczogYm9vbGVhbjtcbiAgZm9jdXNhYmxlOiAoaXRlbTogRm9jdXNlZEl0ZW0sIG9yZGVyTnVtYmVyOiBudW1iZXIpID0+ICRGb2N1c2FibGVQcm9wczxGb2N1c2VkSXRlbT47XG59O1xuXG5leHBvcnQgdHlwZSBBbnlGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtID0gYW55PiA9XG4gIHwgRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT5cbiAgfCBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+O1xuXG5jb25zdCBjb250ZXh0c0J5S2V5ID0gbmV3IE1hcDxzdHJpbmcsIEFueUZvY3VzYWJsZUNvbnRleHQ+KCk7XG5cbi8qKlxuICogRGVjbGFyZXMgYSBmb2N1c2FibGUgY29udGV4dC4gVGhlIHNhbWUgaWQgYWx3YXlzIHlpZWxkcyB0aGUgc2FtZSBjb250ZXh0LCBzbyBjYWxsaW5nIHRoaXMgZHVyaW5nXG4gKiByZW5kZXIgaXMgc3RhYmxlIFx1MjAxNCB3aGljaCBpcyB3aGF0IGxldHMgYSBzdXJmYWNlIHdpdGggc2V2ZXJhbCBsaXZlIGluc3RhbmNlcyBuYW1lIG9uZSBjb250ZXh0IHBlclxuICogaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRGb2N1c2FibGVDb250ZXh0ID0gPEZvY3VzZWRJdGVtLD4oaWQ6IHN0cmluZyk6IEZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0+XG4gIGdldE9yQ3JlYXRlQ29udGV4dChgZm9jdXNhYmxlOiR7aWR9YCwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQ6IEZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0ge1xuICAgICAgaWQsXG4gICAgICBpc0tleWJvYXJkTmF2aWdhYmxlOiBmYWxzZSxcbiAgICAgIGZvY3VzYWJsZTogKGl0ZW0pID0+ICh7IGNvbnRleHQsIGl0ZW0gfSksXG4gICAgfTtcblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9KTtcblxuZXhwb3J0IHR5cGUgS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFdoaWNoIGFycm93IGtleXMgbW92ZSBmb2N1cy4gRG93bndhcmRzIGJ5IGRlZmF1bHQsIGFzIG1vc3Qgc2V0cyBvZiB0aGluZ3MgYXJlIGxhaWQgb3V0OiB0aGVcbiAgICoga2V5cyBvZiB0aGUgb3RoZXIgYXhpcyBhcmUgdGhlbiBsZWZ0IHRvIHdoYXRldmVyIHRoZSBtZW1iZXJzIHdhbnQgdGhlbSBmb3IsIHN1Y2ggYXMgYSBtZW1iZXJcbiAgICogb3BlbmluZyBzb21ldGhpbmcgb2YgaXRzIG93biB3aXRoIEFycm93UmlnaHQuXG4gICAqL1xuICByZWFkb25seSBvcmllbnRhdGlvbj86IEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIGlzIGZvY3VzZWQgYXMgdGhlIG1lbWJlcnMgYXBwZWFyLiBJdCBpcyBieSBkZWZhdWx0OiBhIHNldCBvZlxuICAgKiBtZW1iZXJzIGFwcGVhcmluZyBpcyB1c3VhbGx5IHNvbWV0aGluZyB0aGUgdXNlciBhc2tlZCBmb3IgYW5kIHdpbGwgZ28gb24gd2l0aC4gTm90IHNvIGZvciBhIHNldFxuICAgKiB0aGF0IGFwcGVhcnMgYmVjYXVzZSB0aGUgcG9pbnRlciByZXN0cyBvbiBzb21ldGhpbmcsIHdoZXJlIHdoYXQgdGhlIHVzZXIgaXMgbG9va2luZyBhdCBpcyB3aGF0XG4gICAqIHRoZSBwb2ludGVyIGlzIG9uLCBhbmQgZm9jdXMgc3RheXMgdGhlcmUgdW50aWwgZWl0aGVyIHRoZSBwb2ludGVyIG9yIHRoZSBrZXlib2FyZCBtb3ZlcyBpdC5cbiAgICovXG4gIHJlYWRvbmx5IHRha2VzRm9jdXNBc0l0QXBwZWFycz86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIERlY2xhcmVzIGEgZm9jdXNhYmxlIGNvbnRleHQgd2hvc2UgbWVtYmVycyBhcmUgbmF2aWdhdGVkIHdpdGggYXJyb3cga2V5cy4gQXMgd2l0aFxuICoge0BsaW5rIGdldEZvY3VzYWJsZUNvbnRleHR9LCB0aGUgc2FtZSBpZCBhbHdheXMgeWllbGRzIHRoZSBzYW1lIGNvbnRleHQgXHUyMDE0IHRoZSBzYW1lIGlkIHdpdGggdGhlXG4gKiBzYW1lIG9wdGlvbnMsIHRoYXQgaXMuIEEgY29udGV4dCB3aXRoIG90aGVyIG9wdGlvbnMgaXMgYSBjb250ZXh0IG9mIGl0cyBvd24sIHdoYXRldmVyIGl0IGlzXG4gKiBuYW1lZCwgc28gYSBzdXJmYWNlIHRoYXQgYXNrcyBmb3IgaXRzIGNvbnRleHQgYnkgdGhlIHNhbWUgbmFtZSB3aXRoIG90aGVyIG9wdGlvbnMgbW92ZXMgaXRzXG4gKiBtZW1iZXJzIHRoZXJlIGFzIHRoZXkgcmVuZGVyIGFnYWluLCBhbmQgdGhleSBhcHBlYXIgYW5ldyBhcyBmYXIgYXMgdGhhdCBjb250ZXh0IGlzIGNvbmNlcm5lZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dCA9IDxGb2N1c2VkSXRlbSw+KFxuICBpZDogc3RyaW5nLFxuICBvcHRpb25zOiBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHRPcHRpb25zID0ge30sXG4pOiBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0+IHtcbiAgY29uc3Qgb3JpZW50YXRpb24gPSBvcHRpb25zLm9yaWVudGF0aW9uID8/IFwidmVydGljYWxcIjtcbiAgY29uc3QgdGFrZXNGb2N1c0FzSXRBcHBlYXJzID0gb3B0aW9ucy50YWtlc0ZvY3VzQXNJdEFwcGVhcnMgPz8gdHJ1ZTtcblxuICBjb25zdCBrZXkgPSBga2V5Ym9hcmQtbmF2aWdhYmxlOiR7aWR9fCR7b3JpZW50YXRpb259fCR7dGFrZXNGb2N1c0FzSXRBcHBlYXJzID8gXCJ0YWtpbmdcIiA6IFwibGVhdmluZ1wifS1mb2N1c2A7XG5cbiAgcmV0dXJuIGdldE9yQ3JlYXRlQ29udGV4dChrZXksICgpID0+IHtcbiAgICBjb25zdCBjb250ZXh0OiBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0ge1xuICAgICAgaWQsXG4gICAgICBpc0tleWJvYXJkTmF2aWdhYmxlOiB0cnVlLFxuICAgICAgb3JpZW50YXRpb24sXG4gICAgICB0YWtlc0ZvY3VzQXNJdEFwcGVhcnMsXG4gICAgICBmb2N1c2FibGU6IChpdGVtLCBvcmRlck51bWJlcikgPT4gKHsgY29udGV4dCwgaXRlbSwgb3JkZXJOdW1iZXIgfSksXG4gICAgfTtcblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9KTtcbn07XG5cbmNvbnN0IGdldE9yQ3JlYXRlQ29udGV4dCA9IDxUIGV4dGVuZHMgQW55Rm9jdXNhYmxlQ29udGV4dD4oa2V5OiBzdHJpbmcsIGNyZWF0ZTogKCkgPT4gVCk6IFQgPT4ge1xuICBjb25zdCBleGlzdGluZyA9IGNvbnRleHRzQnlLZXkuZ2V0KGtleSk7XG5cbiAgaWYgKGV4aXN0aW5nKSB7XG4gICAgcmV0dXJuIGV4aXN0aW5nIGFzIFQ7XG4gIH1cblxuICBjb25zdCBjcmVhdGVkID0gY3JlYXRlKCk7XG5cbiAgY29udGV4dHNCeUtleS5zZXQoa2V5LCBjcmVhdGVkKTtcblxuICByZXR1cm4gY3JlYXRlZDtcbn07XG4iLCAiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyAkRm9jdXNhYmxlUHJvcHMgfSBmcm9tIFwiLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuLyoqXG4gKiBDYXJyaWVzIHRoZSBmb2N1c2FibGUgYW4gZWxlbWVudCBpcywgYXMgZGVjaWRlZCBieSB0aGUgc3VyZmFjZSBpdCByZW5kZXJzIGluIHJhdGhlciB0aGFuIGJ5IHRoZVxuICogZWxlbWVudCBpdHNlbGY6IHdoaWNoIGNvbnRleHQgaXQgY29tcGV0ZXMgaW4sIHdoaWNoIGl0ZW0gaXQgc3RhbmRzIGZvciwgYW5kIHdoZXJlIGl0IHNpdHMgYW1vbmdcbiAqIHRoZSBvdGhlcnMuXG4gKlxuICogQSBzdXJmYWNlIHRoYXQga25vd3MgaXRzIGl0ZW1zIFx1MjAxNCBhIG1lbnUsIGEgdG9vbGJhciBcdTIwMTQgcHJvdmlkZXMgb25lIG9mIHRoZXNlIHBlciBpdGVtOyB3aGF0ZXZlclxuICogZHJhd3MgdGhlIGl0ZW0gYWRvcHRzIGl0IHRocm91Z2gge0BsaW5rIHVzZUZvY3VzYWJsZUl0ZW19IHdoaWxlIGtub3dpbmcgbm90aGluZyBhYm91dCB0aGVcbiAqIHN1cmZhY2UsIHdoaWNoIGlzIHdoYXQgbGV0cyBhIGR1bWIgY29tcG9uZW50IGJlIGtleWJvYXJkLW5hdmlnYWJsZSBpbiBvbmUgc3VyZmFjZSBhbmQgb3JkaW5hcnlcbiAqIGluIGFub3RoZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBjb250ZXh0Rm9yRm9jdXNhYmxlSXRlbSA9IGNyZWF0ZUNvbnRleHQ8JEZvY3VzYWJsZVByb3BzPGFueT4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbi8qKlxuICogVGhlIGAkZm9jdXNhYmxlYCBvZiB0aGUgaXRlbSBhIGNvbXBvbmVudCBkcmF3cywgd2hlbiB0aGUgc3VyZmFjZSBhcm91bmQgaXQgZGVjaWRlZCBvbmUuXG4gKiBgdW5kZWZpbmVkYCBvdXRzaWRlIHN1Y2ggYSBzdXJmYWNlLCB3aGljaCBpcyB3aGF0IG1ha2VzIGFkb3B0aW5nIGl0IGEgbWF0dGVyIG9mIHBhc3NpbmcgaXQgb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgUm93ID0gKHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pID0+IChcbiAqICAgPENsaWNrYWJsZUxpICRmb2N1c2FibGU9e3VzZUZvY3VzYWJsZUl0ZW0oKX0+e2NoaWxkcmVufTwvQ2xpY2thYmxlTGk+XG4gKiApO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VGb2N1c2FibGVJdGVtID0gKCkgPT4gdXNlQ29udGV4dChjb250ZXh0Rm9yRm9jdXNhYmxlSXRlbSk7XG4iLCAiaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgeyBnZXRIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4uL2hvdmVyYWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBNdXRhYmxlUmVmT2JqZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNvbnRleHRJc0JlaW5nSG92ZXJlZEluamVjdGFibGUgfSBmcm9tIFwiLi9fcHJpdmF0ZS9jb250ZXh0LWlzLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgY29uc3QgdXNlTG9jYWxIb3ZlcmFibGUgPSA8RWxlbSBleHRlbmRzIEhUTUxFbGVtZW50PigpID0+IHtcbiAgY29uc3QgaG92ZXJhYmxlQ29udGV4dCA9IHVzZU1lbW8oKCkgPT4gZ2V0SG92ZXJhYmxlQ29udGV4dDxNdXRhYmxlUmVmT2JqZWN0PEVsZW0gfCBudWxsPj4oKSwgW10pO1xuICBjb25zdCByZWYgPSB1c2VSZWY8RWxlbT4obnVsbCk7XG4gIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSB1c2VTeW5jSW5qZWN0KGNvbnRleHRJc0JlaW5nSG92ZXJlZEluamVjdGFibGUsIGhvdmVyYWJsZUNvbnRleHQpO1xuXG4gIHJldHVybiB7XG4gICAgcmVmLFxuICAgIGNvbnRleHQ6IGhvdmVyYWJsZUNvbnRleHQuaG92ZXJhYmxlKHJlZiksXG4gICAgY29tcG9uZW50SXNIb3ZlcmVkOiBpdGVtQmVpbmdIb3ZlcmVkLFxuICB9O1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7QUNBQSwrQkFBZ0Q7QUFFaEQsbUJBQStDO0FBd0R0QztBQXBDRixJQUFNLG9CQUFvQixDQUFDLG1CQUFrRDtBQUNsRixRQUFNLCtCQUEyQixxQkFBMEIsTUFBUztBQUNwRSxRQUFNLGlCQUFhLHFCQUFPLGNBQWM7QUFFeEMsOEJBQVUsTUFBTTtBQUNkLGVBQVcsVUFBVTtBQUFBLEVBQ3ZCLENBQUM7QUFFRCw4QkFBVSxNQUFNO0FBQ2QsVUFBTSw0QkFBNEIsQ0FBQyxVQUF3QjtBQUN6RCxVQUFJ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O0FBYW5DLElBQU0sOEJBQTBCLDhCQUFnRCxNQUFTO0FBYXpGLElBQU0sbUJBQW1CLFVBQU0sMkJBQVcsdUJBQXVCOzs7QUMxQnhFLElBQUFDLHNCQUE4QjtBQUU5QixJQUFBQyxpQkFBdUQ7QUFHaEQsSUFBTSxvQkFBb0IsTUFBZ0M7QUFDL0QsUUFBTSx1QkFBbUIsd0JBQVEsTUFBTSxvQkFBbUQsR0FBRyxDQUFDLENBQUM7QUFDL0YsUUFBTSxVQUFNLHVCQUFhLElBQUk7QUFDN0IsUUFBTSx1QkFBbUIsbUNBQWMsaUNBQWlDLGdCQUFnQjtBQUV4RixTQUFPO0FBQUEsSUFDTDtBQUFBLElBQ0EsU0FBUyxpQkFBaUIsVUFBVSxHQUFHO0FBQUEsSUFDdkMsb0JBQW9CO0FBQUEsRUFDdEI7QUFDRjsiLAogICJuYW1lcyI6IFsiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAidG9Db250ZXh0TWFwIiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2luamVjdGFibGUiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X3JlYWN0X2RvbSIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfZnAiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXMiLCAiaW1wb3J0X2ZwIiwgImxvZGFzaENhcGl0YWxpemUiLCAiaW1wb3J0X2ZwIiwgImFsaWFzVG9Ob21pbmFsIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiaW1wb3J0X2ZlYXR1cmVfY29yZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfZnAiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAibW9kdWxlcyIsICJtb2R1bGVzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgIm1vZHVsZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaXNQZXJjZW50YWdlIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJhbGlhc1RvTm9taW5hbCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9tb2J4IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X21vYnhfcmVhY3QiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZnAiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdGVzdF91dGlscyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdGVzdF91dGlscyIsICJzdHlsZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3Rlc3RfdXRpbHMiLCAic3R5bGVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJzdHlsZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9yZWFjdF9kb20iLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9qc3hfcnVudGltZSIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3JlYWN0X2RvbSIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImlzUG9wb3ZlckNhcGFibGUiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgInN0b3BQcm9wYWdhdGlvbiIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X3JlYWN0Il0KfQo=
|