@k8slens/element-components 3.9.2 → 3.10.0

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 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/28c124af-7229-4157-a247-d9ac7dc5463b
1288
+ // import-glob:./**/*.global-override-for-injectable.(ts|tsx)/proof-of-uniqueness/e84f22b5-1277-41ed-8e25-685579576b70
1289
1289
  var modules = [];
1290
- var c124af_7229_4157_a247_d9ac7dc5463b_default = modules;
1290
+ var e84f22b5_1277_41ed_8e25_685579576b70_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/70c39131-0457-441b-bd63-e44a569c0c4a
1319
+ // import-glob:./**/*.default-override.(ts|tsx)/proof-of-uniqueness/ad080fda-bc5d-4868-bc52-1d1a9a7afda9
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 c39131_0457_441b_bd63_e44a569c0c4a_default = modules2;
1321
+ var ad080fda_bc5d_4868_bc52_1d1a9a7afda9_default = modules2;
1322
1322
 
1323
1323
  // src/test-util-runnable.injectable.ts
1324
1324
  var testUtilRunnableInjectable = (0, import_test_utils.getTestUtilRunnableForOverrides)({
1325
- globalOverrides: c124af_7229_4157_a247_d9ac7dc5463b_default,
1326
- defaultOverrides: c39131_0457_441b_bd63_e44a569c0c4a_default
1325
+ globalOverrides: e84f22b5_1277_41ed_8e25_685579576b70_default,
1326
+ defaultOverrides: ad080fda_bc5d_4868_bc52_1d1a9a7afda9_default
1327
1327
  });
1328
1328
 
1329
- // import-glob:./**/*.injectable.(ts|tsx)/proof-of-uniqueness/9217f6b6-ee12-4c52-8907-f4cce464b8cf
1329
+ // import-glob:./**/*.injectable.(ts|tsx)/proof-of-uniqueness/be83ce44-ad64-48fa-b7cf-2403a78932a2
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 f6b6_ee12_4c52_8907_f4cce464b8cf_default = modules3;
1331
+ var be83ce44_ad64_48fa_b7cf_2403a78932a2_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 = {};
@@ -1447,8 +1447,8 @@ __export(grid_module_exports, {
1447
1447
  stylesheet: () => stylesheet22
1448
1448
  });
1449
1449
  var import_stylesheet_contracts22 = require("@k8slens/stylesheet-contracts");
1450
- var stylesheet22 = (0, import_stylesheet_contracts22.asStylesheet)({ id: "@k8slens/element-components/src/plugins/grid/grid.module.scss", css: ".grid-module__grid___MPThO {\n display: grid;\n}\n.grid-module__grid__columns--1___Y0U2M {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.grid-module__grid__columns--2___YgS4H {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.grid-module__grid__columns--3___maBD2 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.grid-module__grid__columns--4___73BjA {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.grid-module__grid__columns--5___Slt-D {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n}\n.grid-module__grid__columns--6___nyM8z {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n}\n.grid-module__grid__alignItems--stretch___xXd3Z {\n align-items: stretch;\n}\n.grid-module__grid__alignItems--center___E8mL- {\n align-items: center;\n}\n.grid-module__grid__alignItems--start___2NdvS {\n align-items: start;\n}\n.grid-module__grid__alignItems--end___1IpYm {\n align-items: end;\n}\n.grid-module__grid__gap--zero___G1q8d {\n gap: 0px;\n}\n.grid-module__grid__gap--column--zero___ygQpJ {\n column-gap: 0px;\n}\n.grid-module__grid__gap--row--zero___w1-Ox {\n row-gap: 0px;\n}\n.grid-module__grid__gap--4xs___zO0mv {\n gap: 1px;\n}\n.grid-module__grid__gap--column--4xs___GUod3 {\n column-gap: 1px;\n}\n.grid-module__grid__gap--row--4xs___sVQZe {\n row-gap: 1px;\n}\n.grid-module__grid__gap--3xs___-IxSw {\n gap: 2px;\n}\n.grid-module__grid__gap--column--3xs___uw466 {\n column-gap: 2px;\n}\n.grid-module__grid__gap--row--3xs___JfwmY {\n row-gap: 2px;\n}\n.grid-module__grid__gap--xxs___gh8c- {\n gap: 4px;\n}\n.grid-module__grid__gap--column--xxs___E76gK {\n column-gap: 4px;\n}\n.grid-module__grid__gap--row--xxs___nhxz- {\n row-gap: 4px;\n}\n.grid-module__grid__gap--xs___GH4h2 {\n gap: 8px;\n}\n.grid-module__grid__gap--column--xs___uRqri {\n column-gap: 8px;\n}\n.grid-module__grid__gap--row--xs___lANEu {\n row-gap: 8px;\n}\n.grid-module__grid__gap--s___7R0ps {\n gap: 12px;\n}\n.grid-module__grid__gap--column--s___aDVAG {\n column-gap: 12px;\n}\n.grid-module__grid__gap--row--s___ARDmx {\n row-gap: 12px;\n}\n.grid-module__grid__gap--m___m3Xih {\n gap: 16px;\n}\n.grid-module__grid__gap--column--m___CsyeM {\n column-gap: 16px;\n}\n.grid-module__grid__gap--row--m___sOAXn {\n row-gap: 16px;\n}\n.grid-module__grid__gap--l___0SyKl {\n gap: 20px;\n}\n.grid-module__grid__gap--column--l___JvJhM {\n column-gap: 20px;\n}\n.grid-module__grid__gap--row--l___apH8b {\n row-gap: 20px;\n}\n.grid-module__grid__gap--xl___I-vRt {\n gap: 24px;\n}\n.grid-module__grid__gap--column--xl___t0SO3 {\n column-gap: 24px;\n}\n.grid-module__grid__gap--row--xl___evNEd {\n row-gap: 24px;\n}\n.grid-module__grid__gap--xxl___eWS02 {\n gap: 28px;\n}\n.grid-module__grid__gap--column--xxl___s---b {\n column-gap: 28px;\n}\n.grid-module__grid__gap--row--xxl___J4F7o {\n row-gap: 28px;\n}\n.grid-module__grid__gap--3xl___HVlkD {\n gap: 32px;\n}\n.grid-module__grid__gap--column--3xl___zKtLL {\n column-gap: 32px;\n}\n.grid-module__grid__gap--row--3xl___E9SV9 {\n row-gap: 32px;\n}\n.grid-module__grid__gap--4xl___M3G3f {\n gap: 36px;\n}\n.grid-module__grid__gap--column--4xl___nnt-p {\n column-gap: 36px;\n}\n.grid-module__grid__gap--row--4xl___1W8bd {\n row-gap: 36px;\n}\n.grid-module__grid__gap--5xl___yAnXD {\n gap: 40px;\n}\n.grid-module__grid__gap--column--5xl___2w4R1 {\n column-gap: 40px;\n}\n.grid-module__grid__gap--row--5xl___VCfjg {\n row-gap: 40px;\n}\n.grid-module__grid__gap--6xl___hEl0F {\n gap: 44px;\n}\n.grid-module__grid__gap--column--6xl___FxPtp {\n column-gap: 44px;\n}\n.grid-module__grid__gap--row--6xl___yn1f- {\n row-gap: 44px;\n}\n.grid-module__grid__gap--7xl___gbGHu {\n gap: 48px;\n}\n.grid-module__grid__gap--column--7xl___Vyj1p {\n column-gap: 48px;\n}\n.grid-module__grid__gap--row--7xl___5BBsS {\n row-gap: 48px;\n}\n.grid-module__grid__gap--8xl___jClmC {\n gap: 52px;\n}\n.grid-module__grid__gap--column--8xl___bq7Ez {\n column-gap: 52px;\n}\n.grid-module__grid__gap--row--8xl___wNuZ2 {\n row-gap: 52px;\n}\n.grid-module__grid__gap--9xl___inE1E {\n gap: 56px;\n}\n.grid-module__grid__gap--column--9xl___Msfjq {\n column-gap: 56px;\n}\n.grid-module__grid__gap--row--9xl___i23-c {\n row-gap: 56px;\n}\n.grid-module__grid__gap--10xl___LCDtc {\n gap: 60px;\n}\n.grid-module__grid__gap--column--10xl___o8cBy {\n column-gap: 60px;\n}\n.grid-module__grid__gap--row--10xl___RjRw9 {\n row-gap: 60px;\n}\n.grid-module__grid__gap--11xl___SquNa {\n gap: 64px;\n}\n.grid-module__grid__gap--column--11xl___uSeWz {\n column-gap: 64px;\n}\n.grid-module__grid__gap--row--11xl___jqG-I {\n row-gap: 64px;\n}" });
1451
- var grid_module_default = { "grid": "grid-module__grid___MPThO", "grid__columns--1": "grid-module__grid__columns--1___Y0U2M", "grid__columns--2": "grid-module__grid__columns--2___YgS4H", "grid__columns--3": "grid-module__grid__columns--3___maBD2", "grid__columns--4": "grid-module__grid__columns--4___73BjA", "grid__columns--5": "grid-module__grid__columns--5___Slt-D", "grid__columns--6": "grid-module__grid__columns--6___nyM8z", "grid__alignItems--stretch": "grid-module__grid__alignItems--stretch___xXd3Z", "grid__alignItems--center": "grid-module__grid__alignItems--center___E8mL-", "grid__alignItems--start": "grid-module__grid__alignItems--start___2NdvS", "grid__alignItems--end": "grid-module__grid__alignItems--end___1IpYm", "grid__gap--zero": "grid-module__grid__gap--zero___G1q8d", "grid__gap--column--zero": "grid-module__grid__gap--column--zero___ygQpJ", "grid__gap--row--zero": "grid-module__grid__gap--row--zero___w1-Ox", "grid__gap--4xs": "grid-module__grid__gap--4xs___zO0mv", "grid__gap--column--4xs": "grid-module__grid__gap--column--4xs___GUod3", "grid__gap--row--4xs": "grid-module__grid__gap--row--4xs___sVQZe", "grid__gap--3xs": "grid-module__grid__gap--3xs___-IxSw", "grid__gap--column--3xs": "grid-module__grid__gap--column--3xs___uw466", "grid__gap--row--3xs": "grid-module__grid__gap--row--3xs___JfwmY", "grid__gap--xxs": "grid-module__grid__gap--xxs___gh8c-", "grid__gap--column--xxs": "grid-module__grid__gap--column--xxs___E76gK", "grid__gap--row--xxs": "grid-module__grid__gap--row--xxs___nhxz-", "grid__gap--xs": "grid-module__grid__gap--xs___GH4h2", "grid__gap--column--xs": "grid-module__grid__gap--column--xs___uRqri", "grid__gap--row--xs": "grid-module__grid__gap--row--xs___lANEu", "grid__gap--s": "grid-module__grid__gap--s___7R0ps", "grid__gap--column--s": "grid-module__grid__gap--column--s___aDVAG", "grid__gap--row--s": "grid-module__grid__gap--row--s___ARDmx", "grid__gap--m": "grid-module__grid__gap--m___m3Xih", "grid__gap--column--m": "grid-module__grid__gap--column--m___CsyeM", "grid__gap--row--m": "grid-module__grid__gap--row--m___sOAXn", "grid__gap--l": "grid-module__grid__gap--l___0SyKl", "grid__gap--column--l": "grid-module__grid__gap--column--l___JvJhM", "grid__gap--row--l": "grid-module__grid__gap--row--l___apH8b", "grid__gap--xl": "grid-module__grid__gap--xl___I-vRt", "grid__gap--column--xl": "grid-module__grid__gap--column--xl___t0SO3", "grid__gap--row--xl": "grid-module__grid__gap--row--xl___evNEd", "grid__gap--xxl": "grid-module__grid__gap--xxl___eWS02", "grid__gap--column--xxl": "grid-module__grid__gap--column--xxl___s---b", "grid__gap--row--xxl": "grid-module__grid__gap--row--xxl___J4F7o", "grid__gap--3xl": "grid-module__grid__gap--3xl___HVlkD", "grid__gap--column--3xl": "grid-module__grid__gap--column--3xl___zKtLL", "grid__gap--row--3xl": "grid-module__grid__gap--row--3xl___E9SV9", "grid__gap--4xl": "grid-module__grid__gap--4xl___M3G3f", "grid__gap--column--4xl": "grid-module__grid__gap--column--4xl___nnt-p", "grid__gap--row--4xl": "grid-module__grid__gap--row--4xl___1W8bd", "grid__gap--5xl": "grid-module__grid__gap--5xl___yAnXD", "grid__gap--column--5xl": "grid-module__grid__gap--column--5xl___2w4R1", "grid__gap--row--5xl": "grid-module__grid__gap--row--5xl___VCfjg", "grid__gap--6xl": "grid-module__grid__gap--6xl___hEl0F", "grid__gap--column--6xl": "grid-module__grid__gap--column--6xl___FxPtp", "grid__gap--row--6xl": "grid-module__grid__gap--row--6xl___yn1f-", "grid__gap--7xl": "grid-module__grid__gap--7xl___gbGHu", "grid__gap--column--7xl": "grid-module__grid__gap--column--7xl___Vyj1p", "grid__gap--row--7xl": "grid-module__grid__gap--row--7xl___5BBsS", "grid__gap--8xl": "grid-module__grid__gap--8xl___jClmC", "grid__gap--column--8xl": "grid-module__grid__gap--column--8xl___bq7Ez", "grid__gap--row--8xl": "grid-module__grid__gap--row--8xl___wNuZ2", "grid__gap--9xl": "grid-module__grid__gap--9xl___inE1E", "grid__gap--column--9xl": "grid-module__grid__gap--column--9xl___Msfjq", "grid__gap--row--9xl": "grid-module__grid__gap--row--9xl___i23-c", "grid__gap--10xl": "grid-module__grid__gap--10xl___LCDtc", "grid__gap--column--10xl": "grid-module__grid__gap--column--10xl___o8cBy", "grid__gap--row--10xl": "grid-module__grid__gap--row--10xl___RjRw9", "grid__gap--11xl": "grid-module__grid__gap--11xl___SquNa", "grid__gap--column--11xl": "grid-module__grid__gap--column--11xl___uSeWz", "grid__gap--row--11xl": "grid-module__grid__gap--row--11xl___jqG-I" };
1450
+ var stylesheet22 = (0, import_stylesheet_contracts22.asStylesheet)({ id: "@k8slens/element-components/src/plugins/grid/grid.module.scss", css: ".grid-module__grid___MPThO {\n display: grid;\n}\n.grid-module__grid__columns--1___Y0U2M {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.grid-module__grid__columns--2___YgS4H {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.grid-module__grid__columns--3___maBD2 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.grid-module__grid__columns--4___73BjA {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.grid-module__grid__columns--5___Slt-D {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n}\n.grid-module__grid__columns--6___nyM8z {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n}\n.grid-module__grid__columns--auto-fill___JaDVm {\n grid-template-columns: repeat(auto-fill, minmax(min(var(--grid-min-column-width), 100%), 1fr));\n}\n.grid-module__grid__alignItems--stretch___xXd3Z {\n align-items: stretch;\n}\n.grid-module__grid__alignItems--center___E8mL- {\n align-items: center;\n}\n.grid-module__grid__alignItems--start___2NdvS {\n align-items: start;\n}\n.grid-module__grid__alignItems--end___1IpYm {\n align-items: end;\n}\n.grid-module__grid__gap--zero___G1q8d {\n gap: 0px;\n}\n.grid-module__grid__gap--column--zero___ygQpJ {\n column-gap: 0px;\n}\n.grid-module__grid__gap--row--zero___w1-Ox {\n row-gap: 0px;\n}\n.grid-module__grid__gap--4xs___zO0mv {\n gap: 1px;\n}\n.grid-module__grid__gap--column--4xs___GUod3 {\n column-gap: 1px;\n}\n.grid-module__grid__gap--row--4xs___sVQZe {\n row-gap: 1px;\n}\n.grid-module__grid__gap--3xs___-IxSw {\n gap: 2px;\n}\n.grid-module__grid__gap--column--3xs___uw466 {\n column-gap: 2px;\n}\n.grid-module__grid__gap--row--3xs___JfwmY {\n row-gap: 2px;\n}\n.grid-module__grid__gap--xxs___gh8c- {\n gap: 4px;\n}\n.grid-module__grid__gap--column--xxs___E76gK {\n column-gap: 4px;\n}\n.grid-module__grid__gap--row--xxs___nhxz- {\n row-gap: 4px;\n}\n.grid-module__grid__gap--xs___GH4h2 {\n gap: 8px;\n}\n.grid-module__grid__gap--column--xs___uRqri {\n column-gap: 8px;\n}\n.grid-module__grid__gap--row--xs___lANEu {\n row-gap: 8px;\n}\n.grid-module__grid__gap--s___7R0ps {\n gap: 12px;\n}\n.grid-module__grid__gap--column--s___aDVAG {\n column-gap: 12px;\n}\n.grid-module__grid__gap--row--s___ARDmx {\n row-gap: 12px;\n}\n.grid-module__grid__gap--m___m3Xih {\n gap: 16px;\n}\n.grid-module__grid__gap--column--m___CsyeM {\n column-gap: 16px;\n}\n.grid-module__grid__gap--row--m___sOAXn {\n row-gap: 16px;\n}\n.grid-module__grid__gap--l___0SyKl {\n gap: 20px;\n}\n.grid-module__grid__gap--column--l___JvJhM {\n column-gap: 20px;\n}\n.grid-module__grid__gap--row--l___apH8b {\n row-gap: 20px;\n}\n.grid-module__grid__gap--xl___I-vRt {\n gap: 24px;\n}\n.grid-module__grid__gap--column--xl___t0SO3 {\n column-gap: 24px;\n}\n.grid-module__grid__gap--row--xl___evNEd {\n row-gap: 24px;\n}\n.grid-module__grid__gap--xxl___eWS02 {\n gap: 28px;\n}\n.grid-module__grid__gap--column--xxl___s---b {\n column-gap: 28px;\n}\n.grid-module__grid__gap--row--xxl___J4F7o {\n row-gap: 28px;\n}\n.grid-module__grid__gap--3xl___HVlkD {\n gap: 32px;\n}\n.grid-module__grid__gap--column--3xl___zKtLL {\n column-gap: 32px;\n}\n.grid-module__grid__gap--row--3xl___E9SV9 {\n row-gap: 32px;\n}\n.grid-module__grid__gap--4xl___M3G3f {\n gap: 36px;\n}\n.grid-module__grid__gap--column--4xl___nnt-p {\n column-gap: 36px;\n}\n.grid-module__grid__gap--row--4xl___1W8bd {\n row-gap: 36px;\n}\n.grid-module__grid__gap--5xl___yAnXD {\n gap: 40px;\n}\n.grid-module__grid__gap--column--5xl___2w4R1 {\n column-gap: 40px;\n}\n.grid-module__grid__gap--row--5xl___VCfjg {\n row-gap: 40px;\n}\n.grid-module__grid__gap--6xl___hEl0F {\n gap: 44px;\n}\n.grid-module__grid__gap--column--6xl___FxPtp {\n column-gap: 44px;\n}\n.grid-module__grid__gap--row--6xl___yn1f- {\n row-gap: 44px;\n}\n.grid-module__grid__gap--7xl___gbGHu {\n gap: 48px;\n}\n.grid-module__grid__gap--column--7xl___Vyj1p {\n column-gap: 48px;\n}\n.grid-module__grid__gap--row--7xl___5BBsS {\n row-gap: 48px;\n}\n.grid-module__grid__gap--8xl___jClmC {\n gap: 52px;\n}\n.grid-module__grid__gap--column--8xl___bq7Ez {\n column-gap: 52px;\n}\n.grid-module__grid__gap--row--8xl___wNuZ2 {\n row-gap: 52px;\n}\n.grid-module__grid__gap--9xl___inE1E {\n gap: 56px;\n}\n.grid-module__grid__gap--column--9xl___Msfjq {\n column-gap: 56px;\n}\n.grid-module__grid__gap--row--9xl___i23-c {\n row-gap: 56px;\n}\n.grid-module__grid__gap--10xl___LCDtc {\n gap: 60px;\n}\n.grid-module__grid__gap--column--10xl___o8cBy {\n column-gap: 60px;\n}\n.grid-module__grid__gap--row--10xl___RjRw9 {\n row-gap: 60px;\n}\n.grid-module__grid__gap--11xl___SquNa {\n gap: 64px;\n}\n.grid-module__grid__gap--column--11xl___uSeWz {\n column-gap: 64px;\n}\n.grid-module__grid__gap--row--11xl___jqG-I {\n row-gap: 64px;\n}" });
1451
+ var grid_module_default = { "grid": "grid-module__grid___MPThO", "grid__columns--1": "grid-module__grid__columns--1___Y0U2M", "grid__columns--2": "grid-module__grid__columns--2___YgS4H", "grid__columns--3": "grid-module__grid__columns--3___maBD2", "grid__columns--4": "grid-module__grid__columns--4___73BjA", "grid__columns--5": "grid-module__grid__columns--5___Slt-D", "grid__columns--6": "grid-module__grid__columns--6___nyM8z", "grid__columns--auto-fill": "grid-module__grid__columns--auto-fill___JaDVm", "grid__alignItems--stretch": "grid-module__grid__alignItems--stretch___xXd3Z", "grid__alignItems--center": "grid-module__grid__alignItems--center___E8mL-", "grid__alignItems--start": "grid-module__grid__alignItems--start___2NdvS", "grid__alignItems--end": "grid-module__grid__alignItems--end___1IpYm", "grid__gap--zero": "grid-module__grid__gap--zero___G1q8d", "grid__gap--column--zero": "grid-module__grid__gap--column--zero___ygQpJ", "grid__gap--row--zero": "grid-module__grid__gap--row--zero___w1-Ox", "grid__gap--4xs": "grid-module__grid__gap--4xs___zO0mv", "grid__gap--column--4xs": "grid-module__grid__gap--column--4xs___GUod3", "grid__gap--row--4xs": "grid-module__grid__gap--row--4xs___sVQZe", "grid__gap--3xs": "grid-module__grid__gap--3xs___-IxSw", "grid__gap--column--3xs": "grid-module__grid__gap--column--3xs___uw466", "grid__gap--row--3xs": "grid-module__grid__gap--row--3xs___JfwmY", "grid__gap--xxs": "grid-module__grid__gap--xxs___gh8c-", "grid__gap--column--xxs": "grid-module__grid__gap--column--xxs___E76gK", "grid__gap--row--xxs": "grid-module__grid__gap--row--xxs___nhxz-", "grid__gap--xs": "grid-module__grid__gap--xs___GH4h2", "grid__gap--column--xs": "grid-module__grid__gap--column--xs___uRqri", "grid__gap--row--xs": "grid-module__grid__gap--row--xs___lANEu", "grid__gap--s": "grid-module__grid__gap--s___7R0ps", "grid__gap--column--s": "grid-module__grid__gap--column--s___aDVAG", "grid__gap--row--s": "grid-module__grid__gap--row--s___ARDmx", "grid__gap--m": "grid-module__grid__gap--m___m3Xih", "grid__gap--column--m": "grid-module__grid__gap--column--m___CsyeM", "grid__gap--row--m": "grid-module__grid__gap--row--m___sOAXn", "grid__gap--l": "grid-module__grid__gap--l___0SyKl", "grid__gap--column--l": "grid-module__grid__gap--column--l___JvJhM", "grid__gap--row--l": "grid-module__grid__gap--row--l___apH8b", "grid__gap--xl": "grid-module__grid__gap--xl___I-vRt", "grid__gap--column--xl": "grid-module__grid__gap--column--xl___t0SO3", "grid__gap--row--xl": "grid-module__grid__gap--row--xl___evNEd", "grid__gap--xxl": "grid-module__grid__gap--xxl___eWS02", "grid__gap--column--xxl": "grid-module__grid__gap--column--xxl___s---b", "grid__gap--row--xxl": "grid-module__grid__gap--row--xxl___J4F7o", "grid__gap--3xl": "grid-module__grid__gap--3xl___HVlkD", "grid__gap--column--3xl": "grid-module__grid__gap--column--3xl___zKtLL", "grid__gap--row--3xl": "grid-module__grid__gap--row--3xl___E9SV9", "grid__gap--4xl": "grid-module__grid__gap--4xl___M3G3f", "grid__gap--column--4xl": "grid-module__grid__gap--column--4xl___nnt-p", "grid__gap--row--4xl": "grid-module__grid__gap--row--4xl___1W8bd", "grid__gap--5xl": "grid-module__grid__gap--5xl___yAnXD", "grid__gap--column--5xl": "grid-module__grid__gap--column--5xl___2w4R1", "grid__gap--row--5xl": "grid-module__grid__gap--row--5xl___VCfjg", "grid__gap--6xl": "grid-module__grid__gap--6xl___hEl0F", "grid__gap--column--6xl": "grid-module__grid__gap--column--6xl___FxPtp", "grid__gap--row--6xl": "grid-module__grid__gap--row--6xl___yn1f-", "grid__gap--7xl": "grid-module__grid__gap--7xl___gbGHu", "grid__gap--column--7xl": "grid-module__grid__gap--column--7xl___Vyj1p", "grid__gap--row--7xl": "grid-module__grid__gap--row--7xl___5BBsS", "grid__gap--8xl": "grid-module__grid__gap--8xl___jClmC", "grid__gap--column--8xl": "grid-module__grid__gap--column--8xl___bq7Ez", "grid__gap--row--8xl": "grid-module__grid__gap--row--8xl___wNuZ2", "grid__gap--9xl": "grid-module__grid__gap--9xl___inE1E", "grid__gap--column--9xl": "grid-module__grid__gap--column--9xl___Msfjq", "grid__gap--row--9xl": "grid-module__grid__gap--row--9xl___i23-c", "grid__gap--10xl": "grid-module__grid__gap--10xl___LCDtc", "grid__gap--column--10xl": "grid-module__grid__gap--column--10xl___o8cBy", "grid__gap--row--10xl": "grid-module__grid__gap--row--10xl___RjRw9", "grid__gap--11xl": "grid-module__grid__gap--11xl___SquNa", "grid__gap--column--11xl": "grid-module__grid__gap--column--11xl___uSeWz", "grid__gap--row--11xl": "grid-module__grid__gap--row--11xl___jqG-I" };
1452
1452
 
1453
1453
  // lens-stylesheet:/home/runner/work/lens-desktop-monorepo/lens-desktop-monorepo/packages/technical-features/_low-level/element-components/src/plugins/height/height.module.scss
1454
1454
  var height_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/7c8ce359-a57a-4062-bd90-fc1df711070f
1603
+ // import-glob:./**/!(_*).(scss|css)/proof-of-uniqueness/dec3b0eb-b1ed-4f73-aafb-8be740883b39
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 c8ce359_a57a_4062_bd90_fc1df711070f_default = modules4;
1605
+ var dec3b0eb_b1ed_4f73_aafb_8be740883b39_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, [...f6b6_ee12_4c52_8907_f4cce464b8cf_default, ...c8ce359_a57a_4062_bd90_fc1df711070f_default])
1610
+ register: (di) => (0, import_feature_core2.registerInjectablesFromModules)(di, [...be83ce44_ad64_48fa_b7cf_2403a78932a2_default, ...dec3b0eb_b1ed_4f73_aafb_8be740883b39_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.
@@ -1708,7 +1708,7 @@ var gridPlugin = (0, import_element_component18.getPlugin)((props) => {
1708
1708
  return {
1709
1709
  $className: [
1710
1710
  grid_module_default.grid,
1711
- grid_module_default[`grid__columns--${columns}`],
1711
+ typeof columns === "number" ? grid_module_default[`grid__columns--${columns}`] : grid_module_default["grid__columns--auto-fill"],
1712
1712
  alignItems ? grid_module_default[`grid__alignItems--${alignItems}`] : void 0,
1713
1713
  typeof gap === "string" ? grid_module_default[`grid__gap--${gap}`] : gap ? [
1714
1714
  gap.column ? grid_module_default[`grid__gap--column--${gap.column}`] : void 0,
@@ -1716,29 +1716,36 @@ var gridPlugin = (0, import_element_component18.getPlugin)((props) => {
1716
1716
  ] : void 0,
1717
1717
  props.$className
1718
1718
  ],
1719
+ // The minimum column width is a custom property the auto-fill class reads.
1720
+ $style: typeof columns === "number" ? props.$style : {
1721
+ ...props.$style,
1722
+ "--grid-min-column-width": `calc(var(--unit) * ${columns.minWidth})`
1723
+ },
1719
1724
  $grid: void 0
1720
1725
  };
1721
1726
  });
1722
1727
 
1723
1728
  // src/plugins/width/width.ts
1724
1729
  var import_element_component19 = require("@k8slens/element-component");
1725
- var isPercentage = (value) => (value == null ? void 0 : value.endsWith("%")) === true;
1730
+ var isPercentage = (value) => typeof value === "string" && value.endsWith("%");
1731
+ var isDesignUnits = (value) => typeof value === "object";
1726
1732
  var widthPlugin = (0, import_element_component19.getPlugin)((props) => {
1727
1733
  const { $width, $className, $style } = props;
1728
1734
  const { width, min, max } = typeof $width === "string" ? { width: $width } : $width ?? {};
1729
- const percentages = {
1735
+ const inline = {
1730
1736
  ...isPercentage(width) ? { width } : {},
1731
1737
  ...isPercentage(min) ? { minWidth: min } : {},
1738
+ ...isDesignUnits(min) ? { minWidth: `calc(var(--unit) * ${min.units})` } : {},
1732
1739
  ...isPercentage(max) ? { maxWidth: max } : {}
1733
1740
  };
1734
1741
  return {
1735
1742
  $className: [
1736
1743
  width && !isPercentage(width) ? width_module_default[`width--${width}`] : void 0,
1737
- min && !isPercentage(min) ? width_module_default[`min-width--${min}`] : void 0,
1744
+ min && !isPercentage(min) && !isDesignUnits(min) ? width_module_default[`min-width--${min}`] : void 0,
1738
1745
  max && !isPercentage(max) ? width_module_default[`max-width--${max}`] : void 0,
1739
1746
  $className
1740
1747
  ],
1741
- $style: Object.keys(percentages).length > 0 ? { ...$style, ...percentages } : $style,
1748
+ $style: Object.keys(inline).length > 0 ? { ...$style, ...inline } : $style,
1742
1749
  $width: void 0
1743
1750
  };
1744
1751
  });
@@ -3335,4 +3342,4 @@ var useLocalHoverable = () => {
3335
3342
  useOnOutsideClick,
3336
3343
  usePopoverIsOpen
3337
3344
  });
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=
3345
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vaW5kZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2VuYWJsZWQvZW5hYmxlZC5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2NvbXB1dGVkLW5vdy5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAubW9kdWxlLnNjc3MiLCAiLi4vc3JjL2VsZW1lbnRzL21pbmltYWwtZGl2LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZS5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9wYWRkaW5nL3BhZGRpbmcudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3BhZGRpbmcvcGFkZGluZy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvci5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtY29ybmVyLXN0eWxlcy50cyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvZ2V0LXNpZGUtc3R5bGVzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvbnQvZm9udC50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZm9udC9mb250Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvdy50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9uby1wb2ludGVyLWV2ZW50cy9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9yZWYvcmVmLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWUudHMiLCAiLi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2dldC1kcmFnZ2FibGUtY29udGV4dC50cyIsICIuLi9zcmMvZmVhdHVyZS50cyIsICIuLi9zcmMvcGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL29uLXJpZ2h0LXRyaWdnZXIuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy90ZXN0LXV0aWwtcnVubmFibGUuaW5qZWN0YWJsZS50cyIsICJpbXBvcnQtZ2xvYjouLyoqLyouZ2xvYmFsLW92ZXJyaWRlLWZvci1pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvZTg0ZjIyYjUtMTI3Ny00MWVkLThlMjUtNjg1NTc5NTc2YjcwIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuLmRlZmF1bHQtb3ZlcnJpZGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cyIsICIuLi9zcmMvcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzIiwgImltcG9ydC1nbG9iOi4vKiovKi5kZWZhdWx0LW92ZXJyaWRlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvYWQwODBmZGEtYmM1ZC00ODY4LWJjNTItMWQxYTlhN2FmZGE5IiwgImltcG9ydC1nbG9iOi4vKiovKi5pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvYmU4M2NlNDQtYWQ2NC00OGZhLWI3Y2YtMjQwM2E3ODkzMmEyIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hbmNob3IvYW5jaG9yLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvY29sb3IvY29sb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2N1cnNvci9jdXJzb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50cy5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9tYXJnaW4vbWFyZ2luLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQvb2Zmc2V0Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnbi5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzIiwgImltcG9ydC1nbG9iOi4vKiovIShfKikuKHNjc3N8Y3NzKS9wcm9vZi1vZi11bmlxdWVuZXNzL2RlYzNiMGViLWIxZWQtNGY3My1hYWZiLThiZTc0MDg4M2IzOSIsICIuLi9zcmMvcGx1Z2lucy9fc2hhcmVkL3NpemVzLnRzIiwgIi4uL3NyYy9lbGVtZW50cy50cyIsICIuLi9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JpZC9ncmlkLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvY29sb3IvY29sb3IudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JhZGllbnQvZ3JhZGllbnQudHMiLCAiLi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2Ryb3BwYWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24udHMiLCAiLi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldC50cyIsICIuLi9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4udHMiLCAiLi4vc3JjL3BsdWdpbnMvbWFyZ2luL21hcmdpbi50cyIsICIuLi9zcmMvcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC50cyIsICIuLi9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3RpbnQvdGludC50cyIsICIuLi9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZm9jdXNhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXVwZGF0ZS13aGVuLXByb3BzLWNoYW5nZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19wcml2YXRlL3VzZS1jbGVhbnVwLW9uLXVubW91bnQudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS91c2Uta2V5Ym9hcmQtbmF2aWdhdGlvbi50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvaGFuZGxlLWZvY3VzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS9oYW5kbGUtYmx1ci50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXByb2dyYW1tYXRpYy1mb2N1c2luZy50cyIsICIuLi9zcmMvcGx1Z2lucy9hcmVhL2FyZWEudHMiLCAiLi4vc3JjL3BsdWdpbnMvYXJlYS1jb250ZW50L2FyZWEtY29udGVudC50cyIsICIuLi9zcmMvcGx1Z2lucy9zaXplL3NpemUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL2NsaWNrYWJsZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ24udHMiLCAiLi4vc3JjL3BsdWdpbnMvYmxvY2svYmxvY2sudHN4IiwgIi4uL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZS50cyIsICIuLi9zcmMvcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS50cyIsICIuLi9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2Zsb2F0aW5nL2Zsb2F0aW5nLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudS50c3giLCAiLi4vc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2dldC1mb2N1c2FibGUtY29udGV4dC50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2ZvY3VzYWJsZS1pdGVtLWNvbnRleHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB0eXBlIHsgQmxvY2tQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Jsb2NrL2Jsb2NrXCI7XG5leHBvcnQgdHlwZSB7IEFuY2hvcmVkQXQsIEFuY2hvclBsdWdpblByb3BzLCBBbmNob3JQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2FuY2hvci9hbmNob3JcIjtcbmV4cG9ydCB7IHVzZU9uT3V0c2lkZUNsaWNrIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrXCI7XG5leHBvcnQgdHlwZSB7IE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vbi1vdXRzaWRlLWNsaWNrL29uLW91dHNpZGUtY2xpY2tcIjtcbmV4cG9ydCB0eXBlIHsgRHJvcERvd25NZW51UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudVwiO1xuZXhwb3J0IHR5cGUgeyBUZXh0QWxpZ25QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnblwiO1xuXG5leHBvcnQgeyB0eXBlIERvRm9jdXMsIHR5cGUgRG9Gb2N1c0ZvciwgZG9Gb2N1c0ZvckluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHsgaXRlbUJlaW5nRm9jdXNlZEluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlXCI7XG5leHBvcnQgdHlwZSB7IEl0ZW1CZWluZ0ZvY3VzZWQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBGb2N1c2FibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGVcIjtcbmV4cG9ydCB7IHR5cGUgRW5hYmxlZFBsdWdpblByb3BzLCBpc0Rpc2FibGVkIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZW5hYmxlZC9lbmFibGVkXCI7XG5leHBvcnQgdHlwZSB7IEdyYXlzY2FsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZVwiO1xuZXhwb3J0IHR5cGUgeyBUaW50UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90aW50L3RpbnRcIjtcbmV4cG9ydCB0eXBlIHsgRmFkZWRQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZhZGVkL2ZhZGVkXCI7XG5cbmV4cG9ydCB0eXBlIHsgU2lkZVN0eWxlcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtc2lkZS1zdHlsZXNcIjtcbmV4cG9ydCB0eXBlIHsgQ29ybmVyU3R5bGVzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2dldC1jb3JuZXItc3R5bGVzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMsXG4gIEJhY2tncm91bmRDb2xvcixcbiAgQmFja2dyb3VuZENvbG9yQWxpYXMsXG4gICRCYWNrZ3JvdW5kQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgT3V0bGluZVdpZHRoLFxuICAkT3V0bGluZVByb3BzLFxuICBPdXRsaW5lUGx1Z2luUHJvcHMsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEZsb2F0aW5nQ29udGVudEFyZ3MsXG4gIEZsb2F0aW5nQ29udGVudEZhY3RvcnksXG4gICRGbG9hdGluZ1Byb3BzLFxuICBGbG9hdGluZ1BsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mbG9hdGluZy9mbG9hdGluZ1wiO1xuXG5leHBvcnQgdHlwZSB7IFBhZGRpbmdQbHVnaW5Qcm9wcywgRGlyZWN0aW9uYWxQYWRkaW5nIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5leHBvcnQgdHlwZSB7IE1hcmdpblBsdWdpblByb3BzLCBEaXJlY3Rpb25hbE1hcmdpbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL21hcmdpbi9tYXJnaW5cIjtcbmV4cG9ydCB0eXBlIHsgT3ZlcmZsb3dQbHVnaW5Qcm9wcywgT3ZlcmZsb3cgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvd1wiO1xuXG5leHBvcnQgdHlwZSB7IEJveFNoYWRvd1BsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93XCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgSG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpblByb3BzLFxuICAkSG92ZXJhYmxlQnlEcmFnZ2luZ1Byb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nXCI7XG5leHBvcnQgeyBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZS1ieS1kcmFnZ2luZ1wiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEhvdmVyYWJsZUNvbnRleHQsXG4gICRIb3ZlcmFibGVQcm9wcyxcbiAgSG92ZXJhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEhvdmVyYWJsZVBsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBob3ZlcmFibGVQbHVnaW4sIGdldEhvdmVyYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBSZWZQbHVnaW5Qcm9wcywgJFJlZlByb3AsIFJlZkxpa2UgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9yZWYvcmVmXCI7XG5cbmV4cG9ydCB0eXBlIHsgQWJzb2x1dGVQbHVnaW5Qcm9wcywgQWJzb2x1dGVQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5leHBvcnQgdHlwZSB7IEhpZGRlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaGlkZGVuL2hpZGRlblwiO1xuZXhwb3J0IHR5cGUgeyBOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzXCI7XG5leHBvcnQgdHlwZSB7IE9mZnNldFBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldFwiO1xuZXhwb3J0IHR5cGUgeyBPZmZzZXRDaGlsZHJlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlblwiO1xuZXhwb3J0IHR5cGUgeyBSZWxhdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVHJhbnNpdGlvblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uXCI7XG5leHBvcnQgdHlwZSB7ICRJbnRlcmFjdGl2ZVByb3BzLCBJbnRlcmFjdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVmlzdWFsbHlIaWRkZW5QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW5cIjtcblxuZXhwb3J0IHR5cGUgeyAkQ3Vyc29yUHJvcHMsIEN1cnNvclBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvclwiO1xuZXhwb3J0IHR5cGUgeyBEaXNwbGF5Q29udGVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50c1wiO1xuXG5leHBvcnQgeyBpdGVtQmVpbmdEcmFnZ2VkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSB7IFRvb2x0aXBQbHVnaW5Qcm9wcywgJFRvb2x0aXBQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Rvb2x0aXAvdG9vbHRpcFwiO1xuZXhwb3J0IHsgU3R5bGVkVG9vbHRpcENvbnRhaW5lciwgZ2V0VG9vbHRpcFByb3BzLCBzdXBwcmVzc1Rvb2x0aXAgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXBcIjtcblxuZXhwb3J0IHR5cGUgeyBEcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBnZXREcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB7IGVsZW1lbnRDb21wb25lbnRGZWF0dXJlIH0gZnJvbSBcIi4vc3JjL2ZlYXR1cmVcIjtcblxuZXhwb3J0IHR5cGUgeyBTaXplUGx1Z2luUHJvcHMsICRTaXplUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9zaXplL3NpemVcIjtcblxuZXhwb3J0IHR5cGUgeyBXaWR0aFBsdWdpblByb3BzLCAkV2lkdGhQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoXCI7XG5cbmV4cG9ydCB0eXBlIHsgU3R5bGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlXCI7XG5cbmV4cG9ydCB0eXBlIHsgSGVpZ2h0UGx1Z2luUHJvcHMsICRIZWlnaHRQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHRcIjtcblxuZXhwb3J0IHR5cGUgeyBGb250UGx1Z2luUHJvcHMsIEZvbnRTaXplLCBGb250TGluZUhlaWdodCB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvbnQvZm9udFwiO1xuXG5leHBvcnQgdHlwZSB7IEdyaWRQbHVnaW5Qcm9wcywgR3JpZFByb3BzLCBHcmlkQ29sdW1ucyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2dyaWQvZ3JpZFwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIERyYWdnYWJsZVBsdWdpblByb3BzLFxuICBEcm9wcGFibGVQbHVnaW5Qcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIHsgQ29sb3JQbHVnaW5Qcm9wcywgJENvbG9yUHJvcHMsIFRleHRDb2xvciwgVGV4dENvbG9yQWxpYXMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jb2xvci9jb2xvclwiO1xuZXhwb3J0IHR5cGUgeyBDbGFzc05hbWVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEJvcmRlclBsdWdpblByb3BzLFxuICBCb3JkZXJDb2xvckFsaWFzLFxuICBCb3JkZXJDb2xvcixcbiAgJEJvcmRlclByb3BzLFxuICAkQm9yZGVyQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2JvcmRlclwiO1xuXG5leHBvcnQgdHlwZSB7IEJvcmRlclJhZGl1c1NpemUsIEJvcmRlcldpZHRoLCBCb3JkZXJTaWRlIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL3R5cGVzXCI7XG5cbmV4cG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcbmV4cG9ydCB7IHRTaGlydFNpemVJblBpeGVscywgc2l6ZVVuaXRJblBpeGVscyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgeyBEaXJlY3Rpb24sIFNob3J0RGlyZWN0aW9uIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9kaXJlY3Rpb25zXCI7XG5leHBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUge1xuICBDbGlja0hhbmRsZXIsXG4gIENsaWNrSGFuZGxlckRldGFpbHMsXG4gIENsaWNrUGx1Z2luUHJvcHMsXG4gIFBvc2l0aW9uMmQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcblxuZXhwb3J0IHR5cGUge1xuICBGbGV4UGx1Z2luUHJvcHMsXG4gIEhvcml6b250YWxGbGV4UHJvcHMsXG4gIE1heGltYWxGbGV4UHJvcHMsXG4gIFNpbXBsZUZsZXhQcm9wLFxuICBWZXJ0aWNhbEZsZXhQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZmxleC9mbGV4XCI7XG5cbmltcG9ydCB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZyxcbiAgc2hvd0Nzc01vZHVsZUNsdXR0ZXJGb3JQcm9kdWN0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcblxuZXhwb3J0IHsgcmVtb3ZlQ3NzTW9kdWxlQ2x1dHRlckZvclVuaXRUZXN0aW5nLCBzaG93Q3NzTW9kdWxlQ2x1dHRlckZvclByb2R1Y3Rpb24gfTtcblxuZXhwb3J0IHtcbiAgQ2xpY2thYmxlRGl2LFxuICBOYXYsXG4gIFN2ZyxcbiAgRGl2LFxuICBCdXR0b24sXG4gIEksXG4gIElucHV0LFxuICBGb3JtLFxuICBTcGFuLFxuICBUZXh0QXJlYSxcbiAgQSxcbiAgQ29kZSxcbiAgUHJlLFxuICBIMSxcbiAgSDIsXG4gIEgzLFxuICBINCxcbiAgSDUsXG4gIEg2LFxuICBQLFxuICBDbGlja2FibGVMaSxcbiAgTGksXG4gIE9sLFxuICBVbCxcbiAgVGgsXG4gIFRkLFxuICBUcixcbiAgVGFibGUsXG4gIExhYmVsLFxuICBUQm9keSxcbiAgRGlhbG9nLFxuICBDYW52YXMsXG4gIEltZyxcbn0gZnJvbSBcIi4vc3JjL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQ29tbW9uUHJvcHMsXG4gIENsaWNrYWJsZURpdlByb3BzLFxuICBDbGlja2FibGVMaVByb3BzLFxuICBOYXZQcm9wcyxcbiAgU3ZnUHJvcHMsXG4gIERpdlByb3BzLFxuICBCdXR0b25Qcm9wcyxcbiAgSVByb3BzLFxuICBJbnB1dFByb3BzLFxuICBGb3JtUHJvcHMsXG4gIFNwYW5Qcm9wcyxcbiAgVGV4dEFyZWFQcm9wcyxcbiAgQVByb3BzLFxuICBDb2RlUHJvcHMsXG4gIFByZVByb3BzLFxuICBIMVByb3BzLFxuICBIMlByb3BzLFxuICBIM1Byb3BzLFxuICBINFByb3BzLFxuICBINVByb3BzLFxuICBINlByb3BzLFxuICBQUHJvcHMsXG4gIExpUHJvcHMsXG4gIE9sUHJvcHMsXG4gIFVsUHJvcHMsXG4gIFRoUHJvcHMsXG4gIFRkUHJvcHMsXG4gIFRyUHJvcHMsXG4gIFRhYmxlUHJvcHMsXG4gIExhYmVsUHJvcHMsXG4gIFRCb2R5UHJvcHMsXG4gIERpYWxvZ1Byb3BzLFxuICBDYW52YXNQcm9wcyxcbiAgSW1nUHJvcHMsXG59IGZyb20gXCIuL3NyYy9lbGVtZW50c1wiO1xuXG5leHBvcnQge1xuICBnZXRGb2N1c2FibGVDb250ZXh0LFxuICBnZXRLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmV4cG9ydCB0eXBlIHtcbiAgJEZvY3VzYWJsZVByb3BzLFxuICBBbnlGb2N1c2FibGVDb250ZXh0LFxuICBGb2N1c2FibGVDb250ZXh0LFxuICBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG4gIEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBjb250ZXh0Rm9yRm9jdXNhYmxlSXRlbSwgdXNlRm9jdXNhYmxlSXRlbSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGUtaXRlbS1jb250ZXh0XCI7XG5leHBvcnQgeyB1c2VDbG9zZVBvcG92ZXIsIHVzZVBvcG92ZXJJc09wZW4sIGNvbnRleHRGb3JDbG9zaW5nUG9wb3ZlciB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3BvcG92ZXIvcG9wb3ZlclwiO1xuZXhwb3J0IHsgdXNlTG9jYWxIb3ZlcmFibGUgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZVwiO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIHBvaW50ZXItZG93biBsYW5kcyBvdXRzaWRlIHRoZSBlbGVtZW50J3MgUmVhY3QgdHJlZS4gVGhlIHRyZWUgaW5jbHVkZXMgY29udGVudFxuICAgKiB0aGUgZWxlbWVudCBwb3J0YWxzIGVsc2V3aGVyZSwgc28gcG9ydGFsZWQgY2hpbGRyZW4gY291bnQgYXMgaW5zaWRlLiBDYXZlYXQ6IGFuIG91dHNpZGVcbiAgICogcG9pbnRlci1kb3duIHdob3NlIHByb3BhZ2F0aW9uIHRvIHRoZSBkb2N1bWVudCBpcyBzdG9wcGVkIG5hdGl2ZWx5IGdvZXMgdW5kZXRlY3RlZC5cbiAgICovXG4gIHJlYWRvbmx5ICRvbk91dHNpZGVDbGljaz86IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xufTtcblxuLyoqXG4gKiBSZWFjdC10cmVlIG91dHNpZGUtY2xpY2sgZGV0ZWN0aW9uOiBhIGNhcHR1cmUtcGhhc2UgaGFuZGxlciBvbiB0aGUgZWxlbWVudCByZWNvcmRzIHRoZVxuICogcG9pbnRlci1kb3duIGV2ZW50cyBvZiBpdHMgb3duIFJlYWN0IHRyZWUgKHBvcnRhbHMgaW5jbHVkZWQsIHNpbmNlIFJlYWN0IGV2ZW50cyBwcm9wYWdhdGVcbiAqIHRocm91Z2ggdGhlbSksIGFuZCBhIGRvY3VtZW50LWxldmVsIGxpc3RlbmVyIHJlcG9ydHMgZXZlcnkgcG9pbnRlci1kb3duIGl0IGRpZCBub3QgcmVjb3JkLlxuICogUmV0dXJucyB0aGUgcHJvcHMgbWFya2luZyB0aGUgZWxlbWVudCdzIHRyZWU7IGdpdmUgdGhlbSB0byBgY29udHJpYnV0ZVByb3BzYCBvciBzcHJlYWQgdGhlbVxuICogb250byB0aGUgc3VidHJlZSdzIHJvb3QuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VPbk91dHNpZGVDbGljayA9IChvbk91dHNpZGVDbGljazogKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+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+IGNhbGxiYWNrKCkpO1xufTtcbiIsICJpbXBvcnQgdHlwZSB7IERpQ29udGFpbmVyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB7IHRvb2x0aXBEZWxheUluamVjdGFibGUgfSBmcm9tIFwiLi90b29sdGlwLWRlbGF5LmluamVjdGFibGVcIjtcblxuLy8gTm8gZGVsYXkgaW4gdGVzdHMsIHNvIGEgdG9vbHRpcCBhcHBlYXJzIHdpdGhvdXQgYW55b25lIGFkdmFuY2luZyB0aW1lcnMuXG4vLyBXcml0dGVuIGFzIGEgcGxhaW4gZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhyb3VnaCBnZXREZWZhdWx0TW9ja2luZ092ZXJyaWRlLFxuLy8gd2hpY2ggaXMgYW4gaWRlbnRpdHkgZnVuY3Rpb24gaW4gYSB0ZXN0IHBhY2thZ2UgdGhpcyBvbmUgbWF5IG5vdCBpbXBvcnQuXG5leHBvcnQgZGVmYXVsdCAoZGk6IERpQ29udGFpbmVyKSA9PiB7XG4gIGRpLm92ZXJyaWRlMih0b29sdGlwRGVsYXlJbmplY3RhYmxlLCAoKSA9PiAoKSA9PiB1bmRlZmluZWQpO1xufTtcbiIsICJpbXBvcnQgeyByZW1vdmVDc3NNb2R1bGVDbHV0dGVyRm9yVW5pdFRlc3RpbmcgfSBmcm9tIFwiLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZygpO1xufTtcbiIsICJpbXBvcnQgKiBhcyBtb2R1bGUwIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyXTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbJ3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uZGVmYXVsdC1vdmVycmlkZS50cycsJ3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cycsJ3JlbW92ZS1jc3MtbW9kdWxlLWNsdXR0ZXIuZGVmYXVsdC1vdmVycmlkZS50cyddXG4iLCAiaW1wb3J0ICogYXMgbW9kdWxlMCBmcm9tICcuL3BsdWdpbnMvY2xpY2thYmxlL2lzLW1hYy5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy9jbGlja2FibGUvb24tcmlnaHQtdHJpZ2dlci5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUzIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNCBmcm9tICcuL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNSBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWh0bWwtZWxlbWVudC1yZWYtc2V0LmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTYgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2ZvY3VzYWJsZS1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTcgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlOCBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTkgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9pdGVtLWJlaW5nLWZvY3VzZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTAgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9jb21wdXRlZC1ub3cuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTEgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTIgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9pdGVtLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTMgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUvX3ByaXZhdGUvY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTE0IGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxNSBmcm9tICcuL3Rlc3QtdXRpbC1ydW5uYWJsZS5pbmplY3RhYmxlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyLG1vZHVsZTMsbW9kdWxlNCxtb2R1bGU1LG1vZHVsZTYsbW9kdWxlNyxtb2R1bGU4LG1vZHVsZTksbW9kdWxlMTAsbW9kdWxlMTEsbW9kdWxlMTIsbW9kdWxlMTMsbW9kdWxlMTQsbW9kdWxlMTVdO1xuXG5leHBvcnQgZGVmYXVsdCBtb2R1bGVzO1xuZXhwb3J0IGNvbnN0IGZpbGVuYW1lcyA9IFsncGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2NsaWNrYWJsZS9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQva2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZS5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvY29tcHV0ZWQtbm93LmluamVjdGFibGUudHMnLCdwbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvaG92ZXJhYmxlL2l0ZW0tYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJywndGVzdC11dGlsLXJ1bm5hYmxlLmluamVjdGFibGUudHMnXVxuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmFuY2hvci1tb2R1bGVfX2FuY2hvcl9fX20tNXViIHtcXG4gIGFuY2hvci1uYW1lOiB2YXIoLS1hbmNob3ItbmFtZSk7XFxufVxcblxcbi5hbmNob3ItbW9kdWxlX19hbmNob3JlZEF0X19fVUFyVUsge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgcG9zaXRpb24tYW5jaG9yOiB2YXIoLS1hbmNob3ItdGFyZ2V0KTtcXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLWFuY2hvci1wb3NpdGlvbik7XFxuICAvKiBUaGUgYnJvd3NlciBjZW50ZXJzIGEgcG9wb3ZlciBpbiB0aGUgdmlld3BvcnQ7IHRoZSBwb3NpdGlvbiBhcmVhIHBsYWNlcyB0aGlzIG9uZSBpbnN0ZWFkLiAqL1xcbiAgaW5zZXQ6IGF1dG87XFxuICAvKiBNaXJyb3IgdG8gdGhlIG9wcG9zaXRlIHNpZGUsIHRoZW4gdGhlIG9wcG9zaXRlIHNwYW4sIGJlZm9yZSBnaXZpbmcgdXAuICovXFxuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiBmbGlwLWJsb2NrLCBmbGlwLWlubGluZSwgZmxpcC1ibG9jayBmbGlwLWlubGluZTtcXG4gIC8qIFRoZSBnYXAgYmVsb25ncyB0byB0aGUgZWxlbWVudCBhcyBmYXIgYXMgdGhlIHBvaW50ZXIgaXMgY29uY2VybmVkLCBzbyBtb3Zpbmcgb250byBpdCBhY3Jvc3NcXG4gICAgIHRoZSBnYXAgbmV2ZXIgY291bnRzIGFzIGxlYXZpbmcuIFJlYWNoZXMgb3V0IG9uIGV2ZXJ5IHNpZGUsIHNvIGl0IGhvbGRzIGhvd2V2ZXIgdGhlIGVsZW1lbnRcXG4gICAgIGVuZHMgdXAgZmxpcHBlZC4gKi9cXG59XFxuLmFuY2hvci1tb2R1bGVfX2FuY2hvcmVkQXRfX19VQXJVSzo6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaW5zZXQ6IGNhbGMoLTEgKiB2YXIoLS1hbmNob3ItZ2FwLCAwcHgpKTtcXG4gIHotaW5kZXg6IC0xO1xcbn1cXG5cXG4uYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBYyB7XFxuICAvKiBJbiB0aGUgdG9wIGxheWVyLCBsaWtlIHdoYXRldmVyIGlzIGFuY2hvcmVkIHRvIGl0LCBzbyB0aGUgcG9pbnQgaXMgdGhlIG9uZSBpbiB0aGUgdmlld3BvcnQgdGhlXFxuICAgICBjdXJzb3Igd2FzIGF0IHJhdGhlciB0aGFuIG9uZSBvZmZzZXQgYnkgZXZlcnkgdHJhbnNmb3JtaW5nIGFuY2VzdG9yIGluIGJldHdlZW4uICovXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBpbnNldDogYXV0bztcXG4gIGxlZnQ6IHZhcigtLWFuY2hvci1wb2ludC14KTtcXG4gIHRvcDogdmFyKC0tYW5jaG9yLXBvaW50LXkpO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBhbmNob3ItbmFtZTogdmFyKC0tYW5jaG9yLW5hbWUpO1xcbiAgLyogVW5kbyB3aGF0IHRoZSBicm93c2VyIGdpdmVzIGFuIGVsZW1lbnQgb2YgdGhlIHRvcCBsYXllcjogdGhpcyBvbmUgaGFzIG5vdGhpbmcgdG8gc2hvdy4gKi9cXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3JkZXI6IDA7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYW5jaG9yXCI6XCJhbmNob3ItbW9kdWxlX19hbmNob3JfX19tLTV1YlwiLFwiYW5jaG9yZWRBdFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yZWRBdF9fX1VBclVLXCIsXCJhbmNob3JQb2ludFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBY1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmJsb2NrLW1vZHVsZV9fYmxvY2tfX19ZNHR6aiB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLmJsb2NrLW1vZHVsZV9fYmxvY2stLWlubGluZV9fXy0xWUNnIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJibG9ja1wiOlwiYmxvY2stbW9kdWxlX19ibG9ja19fX1k0dHpqXCIsXCJibG9jay0taW5saW5lXCI6XCJibG9jay1tb2R1bGVfX2Jsb2NrLS1pbmxpbmVfX18tMVlDZ1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jb2xvci9jb2xvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYSB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNjpob3ZlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZTpmb2N1cyB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSTpkaXNhYmxlZCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdoaXRlX19fZjhjMXMge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2hpdGVfX19NNmFSZzpob3ZlciB7XFxuICBjb2xvcjogd2hpdGU7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13aGl0ZV9fX2k2dVl6OmZvY3VzIHtcXG4gIGNvbG9yOiB3aGl0ZTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdoaXRlX19fbnRqWUU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tdHJhbnNwYXJlbnRfX18xdmZydiB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS10cmFuc3BhcmVudF9fX3htN0JEOmhvdmVyIHtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fcGRlLVc6Zm9jdXMge1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRfX19aMFF1VTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenYge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTEwMF9fX0dGQ29tOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMDBfX19BTTdvTTpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUo6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTgwX19fRDcxZm4ge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4Yjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MF9fXzhQbHlvOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTgwX19fdzFucGM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk2MF9fX3hmWm1iOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTYwX19fa3dtMkc6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk0MF9fX2lST3pSIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTQwX19fcmJOMDQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk0MF9fX05pWnhpOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTMwX19fTHduTDIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaDpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkzMF9fX1FVYjRTOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTMwX19fS3E5Z1c6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1byB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyNV9fX3RZeWdEOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTI1X19fVHhpNWw6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xYzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkyMF9fX0VGMk9MIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTIwX19fdVB0WFU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXYzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkyMF9fX3ZwdXkxOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTEwX19fbDVhWnAge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjcjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMF9fX1Z3VzcxOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTEwX19fWTVxeXc6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITSB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk3MF9fXzNrcnRMOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTcwX19fcDNpZXg6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVjpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1X19fRG9mbzA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwQWxwaGE4NV9fX1Q0QmdGOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6czpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1wcmltYXJ5X19fMDhXblYge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tcHJpbWFyeV9fX1Z0LTNmOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1wcmltYXJ5X19fMFhzazk6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm8ge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tYWNjZW50X19fNGgzTFQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tYWNjZW50X19fQWpTN1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc19fX3dvVEYyIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NfX183RUlXYzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc19fX05lMldJOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tbm90aWNlX19fZU9kVXA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ub3RpY2VfX19OZ1VSTDpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdfX19HajJoTTpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13YXJuaW5nX19fY0JtdDk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnEge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNyaXRpY2FsX19fUlFXWlk6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsX19fOVlsQ1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fRGQwUnkge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50X19fTEtsemc6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHA6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXN1Y2Nlc3NUaW50X19fbHNtSmg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdUaW50X19fajNQWlgge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3U6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXdhcm5pbmdUaW50X19fQzZ6bkQ6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50X19fVzZqSTg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsVGludF9fX3lSSmFBIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRfX184dERtZzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsVGludF9fX1RBQkhrOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tbGlua19fX25TTW05IHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZMzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1saW5rX19fODZKdGY6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tbGlua19fX0ZvSjVYOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQSB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1jb2RlX19fVjV1dVY6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tY29kZV9fX0lBSzdkOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVdzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29sb3ItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYVwiLFwiY29sb3ItaG92ZXItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNlwiLFwiY29sb3ItZm9jdXMtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZVwiLFwiY29sb3ItZGlzYWJsZWQtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSVwiLFwiY29sb3ItLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13aGl0ZV9fX2Y4YzFzXCIsXCJjb2xvci1ob3Zlci0td2hpdGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdoaXRlX19fTTZhUmdcIixcImNvbG9yLWZvY3VzLS13aGl0ZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2hpdGVfX19pNnVZelwiLFwiY29sb3ItZGlzYWJsZWQtLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13aGl0ZV9fX250allFXCIsXCJjb2xvci0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXRyYW5zcGFyZW50X19fMXZmcnZcIixcImNvbG9yLWhvdmVyLS10cmFuc3BhcmVudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRfX194bTdCRFwiLFwiY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS10cmFuc3BhcmVudF9fX3BkZS1XXCIsXCJjb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXRyYW5zcGFyZW50X19fWjBRdVVcIixcImNvbG9yLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenZcIixcImNvbG9yLWhvdmVyLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTAwX19fR0ZDb21cIixcImNvbG9yLWZvY3VzLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MTAwX19fQU03b01cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUpcIixcImNvbG9yLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MF9fX0Q3MWZuXCIsXCJjb2xvci1ob3Zlci0tZ3JleTgwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4YlwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwX19fOFBseW9cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MF9fX3cxbnBjXCIsXCJjb2xvci0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WFwiLFwiY29sb3ItaG92ZXItLWdyZXk2MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTYwX19feGZabWJcIixcImNvbG9yLWZvY3VzLS1ncmV5NjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk2MF9fX2t3bTJHXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncVwiLFwiY29sb3ItLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTQwX19faVJPelJcIixcImNvbG9yLWhvdmVyLS1ncmV5NDBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk0MF9fX3JiTjA0XCIsXCJjb2xvci1mb2N1cy0tZ3JleTQwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTQwX19fTmlaeGlcIixcImNvbG9yLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkzMF9fX0x3bkwyXCIsXCJjb2xvci1ob3Zlci0tZ3JleTMwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaFwiLFwiY29sb3ItZm9jdXMtLWdyZXkzMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTMwX19fUVViNFNcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkzMF9fX0txOWdXXCIsXCJjb2xvci0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1b1wiLFwiY29sb3ItaG92ZXItLWdyZXkyNVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTI1X19fdFl5Z0RcIixcImNvbG9yLWZvY3VzLS1ncmV5MjVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkyNV9fX1R4aTVsXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xY1wiLFwiY29sb3ItLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTIwX19fRUYyT0xcIixcImNvbG9yLWhvdmVyLS1ncmV5MjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyMF9fX3VQdFhVXCIsXCJjb2xvci1mb2N1cy0tZ3JleTIwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXY1wiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTIwX19fdnB1eTFcIixcImNvbG9yLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkxMF9fX2w1YVpwXCIsXCJjb2xvci1ob3Zlci0tZ3JleTEwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjclwiLFwiY29sb3ItZm9jdXMtLWdyZXkxMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTEwX19fVndXNzFcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkxMF9fX1k1cXl3XCIsXCJjb2xvci0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITVwiLFwiY29sb3ItaG92ZXItLWdyZXk3MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTcwX19fM2tydExcIixcImNvbG9yLWZvY3VzLS1ncmV5NzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk3MF9fX3AzaWV4XCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVlwiLFwiY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZFwiLFwiY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVfX19Eb2ZvMFwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVfX19UNEJnRlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6c1wiLFwiY29sb3ItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXByaW1hcnlfX18wOFduVlwiLFwiY29sb3ItaG92ZXItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXByaW1hcnlfX19WdC0zZlwiLFwiY29sb3ItZm9jdXMtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMlwiLFwiY29sb3ItZGlzYWJsZWQtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXByaW1hcnlfX18wWHNrOVwiLFwiY29sb3ItLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm9cIixcImNvbG9yLWhvdmVyLS1hY2NlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWFjY2VudF9fXzRoM0xUXCIsXCJjb2xvci1mb2N1cy0tYWNjZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1hY2NlbnRfX19BalM3WVwiLFwiY29sb3ItZGlzYWJsZWQtLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzVcIixcImNvbG9yLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzX19fd29URjJcIixcImNvbG9yLWhvdmVyLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzX19fN0VJV2NcIixcImNvbG9yLWZvY3VzLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGlcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1zdWNjZXNzX19fTmUyV0lcIixcImNvbG9yLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHXCIsXCJjb2xvci1ob3Zlci0tbm90aWNlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ub3RpY2VfX19lT2RVcFwiLFwiY29sb3ItZm9jdXMtLW5vdGljZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tbm90aWNlX19fTmdVUkxcIixcImNvbG9yLWRpc2FibGVkLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyXCIsXCJjb2xvci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2FybmluZ19fX0dqMmhNXCIsXCJjb2xvci1mb2N1cy0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ19fX2NCbXQ5XCIsXCJjb2xvci1kaXNhYmxlZC0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSXCIsXCJjb2xvci0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnFcIixcImNvbG9yLWhvdmVyLS1jcml0aWNhbFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxfX19SUVdaWVwiLFwiY29sb3ItZm9jdXMtLWNyaXRpY2FsXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbF9fXzlZbENZXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTNcIixcImNvbG9yLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc1RpbnRfX19EZDBSeVwiLFwiY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fX0xLbHpnXCIsXCJjb2xvci1mb2N1cy0tc3VjY2Vzc1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHBcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc1RpbnRfX19sc21KaFwiLFwiY29sb3ItLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13YXJuaW5nVGludF9fX2ozUFpYXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3VcIixcImNvbG9yLWZvY3VzLS13YXJuaW5nVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ1RpbnRfX19DNnpuRFwiLFwiY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13YXJuaW5nVGludF9fX1c2akk4XCIsXCJjb2xvci0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbFRpbnRfX195UkphQVwiLFwiY29sb3ItaG92ZXItLWNyaXRpY2FsVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjVcIixcImNvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsVGludF9fXzh0RG1nXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1jcml0aWNhbFRpbnRfX19UQUJIa1wiLFwiY29sb3ItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWxpbmtfX19uU01tOVwiLFwiY29sb3ItaG92ZXItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZM1wiLFwiY29sb3ItZm9jdXMtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWxpbmtfX184Nkp0ZlwiLFwiY29sb3ItZGlzYWJsZWQtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWxpbmtfX19Gb0o1WFwiLFwiY29sb3ItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQVwiLFwiY29sb3ItaG92ZXItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNvZGVfX19WNXV1VlwiLFwiY29sb3ItZm9jdXMtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNvZGVfX19JQUs3ZFwiLFwiY29sb3ItZGlzYWJsZWQtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVd1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jdXJzb3IvY3Vyc29yLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMiB7XFxuICBjdXJzb3I6IGFsaWFzO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84IHtcXG4gIGN1cnNvcjogYWxsLXNjcm9sbDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2NlbGxfX181V08yRiB7XFxuICBjdXJzb3I6IGNlbGw7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb2x1bW4tcmVzaXplX19fcExxM3Mge1xcbiAgY3Vyc29yOiBjb2wtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY29udGV4dC1tZW51X19fSXFwNTYge1xcbiAgY3Vyc29yOiBjb250ZXh0LW1lbnU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb3B5X19fWFU3eUwge1xcbiAgY3Vyc29yOiBjb3B5O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY3Jvc3NoYWlyX19fMThheWsge1xcbiAgY3Vyc29yOiBjcm9zc2hhaXI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFQge1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1yZXNpemVfX19TNEhGNSB7XFxuICBjdXJzb3I6IGUtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLSB7XFxuICBjdXJzb3I6IGV3LXJlc2l6ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2dyYWJfX19VdkFGNyB7XFxuICBjdXJzb3I6IGdyYWI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ncmFiYmluZ19fX01NaXZYIHtcXG4gIGN1cnNvcjogZ3JhYmJpbmc7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19oZWxwX19faUI4RzQge1xcbiAgY3Vyc29yOiBoZWxwO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbW92ZV9fX3lwZC1QIHtcXG4gIGN1cnNvcjogbW92ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vcnRoLXJlc2l6ZV9fXzdOa2hWIHtcXG4gIGN1cnNvcjogbi1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtcmVzaXplX19fTTRNSXoge1xcbiAgY3Vyc29yOiBuZS1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcSB7XFxuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5IHtcXG4gIGN1cnNvcjogbm8tZHJvcDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vbmVfX19FaTlzeiB7XFxuICBjdXJzb3I6IG5vbmU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1IHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU4ge1xcbiAgY3Vyc29yOiBucy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtcmVzaXplX19fY2tDb2gge1xcbiAgY3Vyc29yOiBudy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWUyB7XFxuICBjdXJzb3I6IG53c2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Byb2dyZXNzX19fSWdFeHkge1xcbiAgY3Vyc29yOiBwcm9ncmVzcztcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Jvdy1yZXNpemVfX18wU3NlNiB7XFxuICBjdXJzb3I6IHJvdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19zb3V0aC1yZXNpemVfX180RmVuUyB7XFxuICBjdXJzb3I6IHMtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGhlYXN0LXJlc2l6ZV9fX3c4aEdxIHtcXG4gIGN1cnNvcjogc2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGh3ZXN0LXJlc2l6ZV9fXzZVdjRHIHtcXG4gIGN1cnNvcjogc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3IHtcXG4gIGN1cnNvcjogdGV4dDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3ZlcnRpY2FsLXRleHRfX18zT2F6RSB7XFxuICBjdXJzb3I6IHZlcnRpY2FsLXRleHQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2IHtcXG4gIGN1cnNvcjogdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEcge1xcbiAgY3Vyc29yOiB3YWl0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fem9vbS1pbl9fX3pFREhRIHtcXG4gIGN1cnNvcjogem9vbS1pbjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzYge1xcbiAgY3Vyc29yOiB6b29tLW91dDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJhbGlhc1wiOlwiY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMlwiLFwiYWxsLXNjcm9sbFwiOlwiY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84XCIsXCJjZWxsXCI6XCJjdXJzb3ItbW9kdWxlX19jZWxsX19fNVdPMkZcIixcImNvbHVtbi1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX2NvbHVtbi1yZXNpemVfX19wTHEzc1wiLFwiY29udGV4dC1tZW51XCI6XCJjdXJzb3ItbW9kdWxlX19jb250ZXh0LW1lbnVfX19JcXA1NlwiLFwiY29weVwiOlwiY3Vyc29yLW1vZHVsZV9fY29weV9fX1hVN3lMXCIsXCJjcm9zc2hhaXJcIjpcImN1cnNvci1tb2R1bGVfX2Nyb3NzaGFpcl9fXzE4YXlrXCIsXCJkZWZhdWx0XCI6XCJjdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFRcIixcImVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19lYXN0LXJlc2l6ZV9fX1M0SEY1XCIsXCJlYXN0LWFuZC13ZXN0LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLVwiLFwiZ3JhYlwiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYl9fX1V2QUY3XCIsXCJncmFiYmluZ1wiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYmJpbmdfX19NTWl2WFwiLFwiaGVscFwiOlwiY3Vyc29yLW1vZHVsZV9faGVscF9fX2lCOEc0XCIsXCJtb3ZlXCI6XCJjdXJzb3ItbW9kdWxlX19tb3ZlX19feXBkLVBcIixcIm5vcnRoLXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fbm9ydGgtcmVzaXplX19fN05raFZcIixcIm5vcnRoZWFzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRoZWFzdC1yZXNpemVfX19NNE1JelwiLFwibm9ydGhlYXN0LWFuZC1zb3V0aHdlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcVwiLFwibm8tZHJvcFwiOlwiY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5XCIsXCJub25lXCI6XCJjdXJzb3ItbW9kdWxlX19ub25lX19fRWk5c3pcIixcIm5vdC1hbGxvd2VkXCI6XCJjdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1XCIsXCJub3J0aC1hbmQtc291dGgtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU5cIixcIm5vcnRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRod2VzdC1yZXNpemVfX19ja0NvaFwiLFwibm9ydGh3ZXN0LWFuZC1zb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWU1wiLFwicG9pbnRlclwiOlwiY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLXCIsXCJwcm9ncmVzc1wiOlwiY3Vyc29yLW1vZHVsZV9fcHJvZ3Jlc3NfX19JZ0V4eVwiLFwicm93LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fcm93LXJlc2l6ZV9fXzBTc2U2XCIsXCJzb3V0aC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRoLXJlc2l6ZV9fXzRGZW5TXCIsXCJzb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19zb3V0aGVhc3QtcmVzaXplX19fdzhoR3FcIixcInNvdXRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRod2VzdC1yZXNpemVfX182VXY0R1wiLFwidGV4dFwiOlwiY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3XCIsXCJ2ZXJ0aWNhbC10ZXh0XCI6XCJjdXJzb3ItbW9kdWxlX192ZXJ0aWNhbC10ZXh0X19fM09hekVcIixcIndlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2XCIsXCJ3YWl0XCI6XCJjdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEdcIixcInpvb20taW5cIjpcImN1cnNvci1tb2R1bGVfX3pvb20taW5fX196RURIUVwiLFwiem9vbS1vdXRcIjpcImN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZGlzcGxheS1jb250ZW50cy1tb2R1bGVfX2NvbnRlbnRzX19fbVJlWEsge1xcbiAgZGlzcGxheTogY29udGVudHM7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29udGVudHNcIjpcImRpc3BsYXktY29udGVudHMtbW9kdWxlX19jb250ZW50c19fX21SZVhLXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmRyYWdnYWJsZS1tb2R1bGVfX2RyYWdnYWJsZV9fX2JqQ0EzIGltZyxcXG4uZHJhZ2dhYmxlLW1vZHVsZV9fZHJhZ2dhYmxlX19fYmpDQTMgYSB7XFxuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJkcmFnZ2FibGVcIjpcImRyYWdnYWJsZS1tb2R1bGVfX2RyYWdnYWJsZV9fX2JqQ0EzXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZhZGVkL2ZhZGVkLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZmFkZWQtbW9kdWxlX19mYWRlZF9fXy11YmJNIHtcXG4gIG9wYWNpdHk6IDUwJTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmYWRlZFwiOlwiZmFkZWQtbW9kdWxlX19mYWRlZF9fXy11YmJNXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkX19fN0JkaGQge1xcbiAgZmxleDogMSAxIDA7XFxufVxcblxcbi5mbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tc2hyaW5rYWJsZV9fXzZINS0tIHtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBtaW4td2lkdGg6IDA7XFxufVxcblxcbi5mbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tZml4ZWRfX19GS2V0TCB7XFxuICBmbGV4LXNocmluazogMDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmbGV4LWNoaWxkXCI6XCJmbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZF9fXzdCZGhkXCIsXCJmbGV4LWNoaWxkLS1zaHJpbmthYmxlXCI6XCJmbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tc2hyaW5rYWJsZV9fXzZINS0tXCIsXCJmbGV4LWNoaWxkLS1maXhlZFwiOlwiZmxleC1jaGlsZC1tb2R1bGVfX2ZsZXgtY2hpbGQtLWZpeGVkX19fRktldExcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC9mbGV4Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZmxleC1tb2R1bGVfX2ZsZXhfX19lRkxFYyB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX3dyYXAtLXdyYXBfX18yTHFUZyB7XFxuICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbF9fXzBBaU9mIHtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbC1yZXZlcnNlZF9fX0lvZS01IHtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLWhvcml6b250YWxfX19hMzJ6byB7XFxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbC1yZXZlcnNlZF9fX2lMd0RLIHtcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VCZXR3ZWVuX19fYTZvTUgge1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUFyb3VuZF9fXzVZT1U0IHtcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJfX191clpZRyB7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3RyZXRjaF9fX001YXowIHtcXG4gIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleFN0YXJ0X19fUEhGMUUge1xcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4RW5kX19fYU1QeDAge1xcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoX19fYkFOaWcge1xcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fYWxpZ25JdGVtcy0tY2VudGVyX19fMFZzeTkge1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4U3RhcnRfX19qMEp6eCB7XFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4RW5kX19fRG1VNVIge1xcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0temVyb19fX3czLVRnIHtcXG4gIGdhcDogMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS16ZXJvX19fOTYwQTcge1xcbiAgY29sdW1uLWdhcDogMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS16ZXJvX19fb0t1c1Qge1xcbiAgcm93LWdhcDogMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhzX19fcnJUSmUge1xcbiAgZ2FwOiAxcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTR4c19fX1RSM1lFIHtcXG4gIGNvbHVtbi1nYXA6IDFweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNHhzX19fNmluM2oge1xcbiAgcm93LWdhcDogMXB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hzX19fUmN1bVIge1xcbiAgZ2FwOiAycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTN4c19fX1gtQzFhIHtcXG4gIGNvbHVtbi1nYXA6IDJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tM3hzX19fa1cwaU8ge1xcbiAgcm93LWdhcDogMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHhzX19fVUIzRmoge1xcbiAgZ2FwOiA0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXh4c19fX3VJWnYyIHtcXG4gIGNvbHVtbi1nYXA6IDRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teHhzX19fdC1ncU4ge1xcbiAgcm93LWdhcDogNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHNfX190dDNTbyB7XFxuICBnYXA6IDhweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teHNfX19CNW9YYyB7XFxuICBjb2x1bW4tZ2FwOiA4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXhzX19fMUVYMmYge1xcbiAgcm93LWdhcDogOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tc19fXzltWXpTIHtcXG4gIGdhcDogMTJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tc19fX2F2dGYtIHtcXG4gIGNvbHVtbi1nYXA6IDEycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXNfX19ZT0JWViB7XFxuICByb3ctZ2FwOiAxMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tbV9fX0FiLXQwIHtcXG4gIGdhcDogMTZweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tbV9fX1E2Y0ItIHtcXG4gIGNvbHVtbi1nYXA6IDE2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLW1fX183LURRMCB7XFxuICByb3ctZ2FwOiAxNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tbF9fX2N2bWp3IHtcXG4gIGdhcDogMjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tbF9fX0VwUXRUIHtcXG4gIGNvbHVtbi1nYXA6IDIwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLWxfX194WWlLaCB7XFxuICByb3ctZ2FwOiAyMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teGxfX19DSXNOUCB7XFxuICBnYXA6IDI0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXhsX19fbUxVeFIge1xcbiAgY29sdW1uLWdhcDogMjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teGxfX19LV04zMyB7XFxuICByb3ctZ2FwOiAyNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHhsX19fMTJ0LTYge1xcbiAgZ2FwOiAyOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14eGxfX192QUx0ZiB7XFxuICBjb2x1bW4tZ2FwOiAyOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eGxfX19JZGNxVSB7XFxuICByb3ctZ2FwOiAyOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hsX19faVVyeDEge1xcbiAgZ2FwOiAzMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0zeGxfX18tTlYwWiB7XFxuICBjb2x1bW4tZ2FwOiAzMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0zeGxfX19WWWNSaCB7XFxuICByb3ctZ2FwOiAzMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhsX19fZlppS1Yge1xcbiAgZ2FwOiAzNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS00eGxfX19YOUtweSB7XFxuICBjb2x1bW4tZ2FwOiAzNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS00eGxfX19kYnZXMCB7XFxuICByb3ctZ2FwOiAzNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNXhsX19fNDNoSHYge1xcbiAgZ2FwOiA0MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS01eGxfX18yWHllUSB7XFxuICBjb2x1bW4tZ2FwOiA0MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS01eGxfX19xdmpPRSB7XFxuICByb3ctZ2FwOiA0MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNnhsX19fc1B5Nkwge1xcbiAgZ2FwOiA0NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS02eGxfX196YWdXTSB7XFxuICBjb2x1bW4tZ2FwOiA0NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS02eGxfX19VLXVaSiB7XFxuICByb3ctZ2FwOiA0NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tN3hsX19fT2F3di0ge1xcbiAgZ2FwOiA0OHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS03eGxfX19LenJNciB7XFxuICBjb2x1bW4tZ2FwOiA0OHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS03eGxfX19wQXZMdiB7XFxuICByb3ctZ2FwOiA0OHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tOHhsX19fRWVvRS0ge1xcbiAgZ2FwOiA1MnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS04eGxfX19rYmlvSiB7XFxuICBjb2x1bW4tZ2FwOiA1MnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS04eGxfX19QLTktZSB7XFxuICByb3ctZ2FwOiA1MnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tOXhsX19fVGduVVMge1xcbiAgZ2FwOiA1NnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS05eGxfX19OR2wzSiB7XFxuICBjb2x1bW4tZ2FwOiA1NnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS05eGxfX19FR3VlaCB7XFxuICByb3ctZ2FwOiA1NnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTB4bF9fX0NmMXc2IHtcXG4gIGdhcDogNjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tMTB4bF9fX0xKUkdsIHtcXG4gIGNvbHVtbi1nYXA6IDYwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTEweGxfX196UHR5TiB7XFxuICByb3ctZ2FwOiA2MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTF4bF9fX29yZmdJIHtcXG4gIGdhcDogNjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tMTF4bF9fX2RES2RwIHtcXG4gIGNvbHVtbi1nYXA6IDY0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTExeGxfX192REctQSB7XFxuICByb3ctZ2FwOiA2NHB4O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImZsZXhcIjpcImZsZXgtbW9kdWxlX19mbGV4X19fZUZMRWNcIixcImZsZXhfX3dyYXAtLXdyYXBcIjpcImZsZXgtbW9kdWxlX19mbGV4X193cmFwLS13cmFwX19fMkxxVGdcIixcImZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsX19fMEFpT2ZcIixcImZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWwtcmV2ZXJzZWRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsLXJldmVyc2VkX19fSW9lLTVcIixcImZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbF9fX2EzMnpvXCIsXCJmbGV4X19kaXJlY3Rpb24tLWhvcml6b250YWwtcmV2ZXJzZWRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLWhvcml6b250YWwtcmV2ZXJzZWRfX19pTHdES1wiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQmV0d2VlblwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUJldHdlZW5fX19hNm9NSFwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQXJvdW5kXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQXJvdW5kX19fNVlPVTRcIixcImZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tY2VudGVyX19fdXJaWUdcIixcImZsZXhfX2p1c3RpZnlDb250ZW50LS1zdHJldGNoXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXN0cmV0Y2hfX19NNWF6MFwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhTdGFydFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4U3RhcnRfX19QSEYxRVwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhFbmRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleEVuZF9fX2FNUHgwXCIsXCJmbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fYWxpZ25JdGVtcy0tc3RyZXRjaF9fX2JBTmlnXCIsXCJmbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJfX18wVnN5OVwiLFwiZmxleF9fYWxpZ25JdGVtcy0tZmxleFN0YXJ0XCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fYWxpZ25JdGVtcy0tZmxleFN0YXJ0X19fajBKenhcIixcImZsZXhfX2FsaWduSXRlbXMtLWZsZXhFbmRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4RW5kX19fRG1VNVJcIixcImZsZXhfX2dhcC0temVyb1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0temVyb19fX3czLVRnXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0temVyb1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS16ZXJvX19fOTYwQTdcIixcImZsZXhfX2dhcC0tcm93LS16ZXJvXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXplcm9fX19vS3VzVFwiLFwiZmxleF9fZ2FwLS00eHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTR4c19fX3JyVEplXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tNHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTR4c19fX1RSM1lFXCIsXCJmbGV4X19nYXAtLXJvdy0tNHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTR4c19fXzZpbjNqXCIsXCJmbGV4X19nYXAtLTN4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hzX19fUmN1bVJcIixcImZsZXhfX2dhcC0tY29sdW1uLS0zeHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tM3hzX19fWC1DMWFcIixcImZsZXhfX2dhcC0tcm93LS0zeHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tM3hzX19fa1cwaU9cIixcImZsZXhfX2dhcC0teHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eHNfX19VQjNGalwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXh4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14eHNfX191SVp2MlwiLFwiZmxleF9fZ2FwLS1yb3ctLXh4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eHNfX190LWdxTlwiLFwiZmxleF9fZ2FwLS14c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHNfX190dDNTb1wiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXhzX19fQjVvWGNcIixcImZsZXhfX2dhcC0tcm93LS14c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14c19fXzFFWDJmXCIsXCJmbGV4X19nYXAtLXNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXNfX185bVl6U1wiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tc19fX2F2dGYtXCIsXCJmbGV4X19nYXAtLXJvdy0tc1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS1zX19fWU9CVlZcIixcImZsZXhfX2dhcC0tbVwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tbV9fX0FiLXQwXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tbVwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1tX19fUTZjQi1cIixcImZsZXhfX2dhcC0tcm93LS1tXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLW1fX183LURRMFwiLFwiZmxleF9fZ2FwLS1sXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1sX19fY3ZtandcIixcImZsZXhfX2dhcC0tY29sdW1uLS1sXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLWxfX19FcFF0VFwiLFwiZmxleF9fZ2FwLS1yb3ctLWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tbF9fX3hZaUtoXCIsXCJmbGV4X19nYXAtLXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14bF9fX0NJc05QXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0teGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teGxfX19tTFV4UlwiLFwiZmxleF9fZ2FwLS1yb3ctLXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXhsX19fS1dOMzNcIixcImZsZXhfX2dhcC0teHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eGxfX18xMnQtNlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14eGxfX192QUx0ZlwiLFwiZmxleF9fZ2FwLS1yb3ctLXh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eGxfX19JZGNxVVwiLFwiZmxleF9fZ2FwLS0zeGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTN4bF9fX2lVcngxXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tM3hsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTN4bF9fXy1OVjBaXCIsXCJmbGV4X19nYXAtLXJvdy0tM3hsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTN4bF9fX1ZZY1JoXCIsXCJmbGV4X19nYXAtLTR4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhsX19fZlppS1ZcIixcImZsZXhfX2dhcC0tY29sdW1uLS00eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tNHhsX19fWDlLcHlcIixcImZsZXhfX2dhcC0tcm93LS00eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNHhsX19fZGJ2VzBcIixcImZsZXhfX2dhcC0tNXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS01eGxfX180M2hIdlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTV4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS01eGxfX18yWHllUVwiLFwiZmxleF9fZ2FwLS1yb3ctLTV4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS01eGxfX19xdmpPRVwiLFwiZmxleF9fZ2FwLS02eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTZ4bF9fX3NQeTZMXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tNnhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX3phZ1dNXCIsXCJmbGV4X19nYXAtLXJvdy0tNnhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTZ4bF9fX1UtdVpKXCIsXCJmbGV4X19nYXAtLTd4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tN3hsX19fT2F3di1cIixcImZsZXhfX2dhcC0tY29sdW1uLS03eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tN3hsX19fS3pyTXJcIixcImZsZXhfX2dhcC0tcm93LS03eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tN3hsX19fcEF2THZcIixcImZsZXhfX2dhcC0tOHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS04eGxfX19FZW9FLVwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS04eGxfX19rYmlvSlwiLFwiZmxleF9fZ2FwLS1yb3ctLTh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS04eGxfX19QLTktZVwiLFwiZmxleF9fZ2FwLS05eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTl4bF9fX1RnblVTXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tOXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTl4bF9fX05HbDNKXCIsXCJmbGV4X19nYXAtLXJvdy0tOXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTl4bF9fX0VHdWVoXCIsXCJmbGV4X19nYXAtLTEweGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTEweGxfX19DZjF3NlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTEweGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tMTB4bF9fX0xKUkdsXCIsXCJmbGV4X19nYXAtLXJvdy0tMTB4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0xMHhsX19felB0eU5cIixcImZsZXhfX2dhcC0tMTF4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTF4bF9fX29yZmdJXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tMTF4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0xMXhsX19fZERLZHBcIixcImZsZXhfX2dhcC0tcm93LS0xMXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTExeGxfX192REctQVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmFkaWVudC9ncmFkaWVudC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmdyYWRpZW50LW1vZHVsZV9fZ3JhZGllbnRfX19NREJ2RiB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1zdXJmYWNlR3JhZGllbnQpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImdyYWRpZW50XCI6XCJncmFkaWVudC1tb2R1bGVfX2dyYWRpZW50X19fTURCdkZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmdyYXlzY2FsZS1tb2R1bGVfX2dyYXlzY2FsZV9fXzNtWlA2IHtcXG4gIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImdyYXlzY2FsZVwiOlwiZ3JheXNjYWxlLW1vZHVsZV9fZ3JheXNjYWxlX19fM21aUDZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZ3JpZC9ncmlkLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZ3JpZC1tb2R1bGVfX2dyaWRfX19NUFRoTyB7XFxuICBkaXNwbGF5OiBncmlkO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTFfX19ZMFUyTSB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMl9fX1lnUzRIIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS0zX19fbWFCRDIge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTRfX183M0JqQSB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNV9fX1NsdC1EIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS02X19fbnlNOHoge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLWF1dG8tZmlsbF9fX0phRFZtIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KG1pbih2YXIoLS1ncmlkLW1pbi1jb2x1bW4td2lkdGgpLCAxMDAlKSwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RyZXRjaF9fX3hYZDNaIHtcXG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLWNlbnRlcl9fX0U4bUwtIHtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RhcnRfX18yTmR2UyB7XFxuICBhbGlnbi1pdGVtczogc3RhcnQ7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tZW5kX19fMUlwWW0ge1xcbiAgYWxpZ24taXRlbXM6IGVuZDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXplcm9fX19HMXE4ZCB7XFxuICBnYXA6IDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0temVyb19fX3lnUXBKIHtcXG4gIGNvbHVtbi1nYXA6IDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0temVyb19fX3cxLU94IHtcXG4gIHJvdy1nYXA6IDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTR4c19fX3pPMG12IHtcXG4gIGdhcDogMXB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS00eHNfX19HVW9kMyB7XFxuICBjb2x1bW4tZ2FwOiAxcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTR4c19fX3NWUVplIHtcXG4gIHJvdy1nYXA6IDFweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTN4c19fXy1JeFN3IHtcXG4gIGdhcDogMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0zeHNfX191dzQ2NiB7XFxuICBjb2x1bW4tZ2FwOiAycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTN4c19fX0pmd21ZIHtcXG4gIHJvdy1nYXA6IDJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4c19fX2doOGMtIHtcXG4gIGdhcDogNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14eHNfX19FNzZnSyB7XFxuICBjb2x1bW4tZ2FwOiA0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXh4c19fX25oeHotIHtcXG4gIHJvdy1nYXA6IDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXhzX19fR0g0aDIge1xcbiAgZ2FwOiA4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXhzX19fdVJxcmkge1xcbiAgY29sdW1uLWdhcDogOHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14c19fX2xBTkV1IHtcXG4gIHJvdy1nYXA6IDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXNfX183UjBwcyB7XFxuICBnYXA6IDEycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXNfX19hRFZBRyB7XFxuICBjb2x1bW4tZ2FwOiAxMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1zX19fQVJEbXgge1xcbiAgcm93LWdhcDogMTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLW1fX19tM1hpaCB7XFxuICBnYXA6IDE2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLW1fX19Dc3llTSB7XFxuICBjb2x1bW4tZ2FwOiAxNnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1tX19fc09BWG4ge1xcbiAgcm93LWdhcDogMTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWxfX18wU3lLbCB7XFxuICBnYXA6IDIwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLWxfX19KdkpoTSB7XFxuICBjb2x1bW4tZ2FwOiAyMHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1sX19fYXBIOGIge1xcbiAgcm93LWdhcDogMjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXhsX19fSS12UnQge1xcbiAgZ2FwOiAyNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14bF9fX3QwU08zIHtcXG4gIGNvbHVtbi1nYXA6IDI0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXhsX19fZXZORWQge1xcbiAgcm93LWdhcDogMjRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4bF9fX2VXUzAyIHtcXG4gIGdhcDogMjhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teHhsX19fcy0tLWIge1xcbiAgY29sdW1uLWdhcDogMjhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0teHhsX19fSjRGN28ge1xcbiAgcm93LWdhcDogMjhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTN4bF9fX0hWbGtEIHtcXG4gIGdhcDogMzJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hsX19fekt0TEwge1xcbiAgY29sdW1uLWdhcDogMzJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tM3hsX19fRTlTVjkge1xcbiAgcm93LWdhcDogMzJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTR4bF9fX00zRzNmIHtcXG4gIGdhcDogMzZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhsX19fbm50LXAge1xcbiAgY29sdW1uLWdhcDogMzZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNHhsX19fMVc4YmQge1xcbiAgcm93LWdhcDogMzZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTV4bF9fX3lBblhEIHtcXG4gIGdhcDogNDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNXhsX19fMnc0UjEge1xcbiAgY29sdW1uLWdhcDogNDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNXhsX19fVkNmamcge1xcbiAgcm93LWdhcDogNDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTZ4bF9fX2hFbDBGIHtcXG4gIGdhcDogNDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNnhsX19fRnhQdHAge1xcbiAgY29sdW1uLWdhcDogNDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNnhsX19feW4xZi0ge1xcbiAgcm93LWdhcDogNDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTd4bF9fX2diR0h1IHtcXG4gIGdhcDogNDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tN3hsX19fVnlqMXAge1xcbiAgY29sdW1uLWdhcDogNDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tN3hsX19fNUJCc1Mge1xcbiAgcm93LWdhcDogNDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTh4bF9fX2pDbG1DIHtcXG4gIGdhcDogNTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tOHhsX19fYnE3RXoge1xcbiAgY29sdW1uLWdhcDogNTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tOHhsX19fd051WjIge1xcbiAgcm93LWdhcDogNTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTl4bF9fX2luRTFFIHtcXG4gIGdhcDogNTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tOXhsX19fTXNmanEge1xcbiAgY29sdW1uLWdhcDogNTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tOXhsX19faTIzLWMge1xcbiAgcm93LWdhcDogNTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTEweGxfX19MQ0R0YyB7XFxuICBnYXA6IDYwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTEweGxfX19vOGNCeSB7XFxuICBjb2x1bW4tZ2FwOiA2MHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0xMHhsX19fUmpSdzkge1xcbiAgcm93LWdhcDogNjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTExeGxfX19TcXVOYSB7XFxuICBnYXA6IDY0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTExeGxfX191U2VXeiB7XFxuICBjb2x1bW4tZ2FwOiA2NHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0xMXhsX19fanFHLUkge1xcbiAgcm93LWdhcDogNjRweDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJncmlkXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fX01QVGhPXCIsXCJncmlkX19jb2x1bW5zLS0xXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMV9fX1kwVTJNXCIsXCJncmlkX19jb2x1bW5zLS0yXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMl9fX1lnUzRIXCIsXCJncmlkX19jb2x1bW5zLS0zXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tM19fX21hQkQyXCIsXCJncmlkX19jb2x1bW5zLS00XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNF9fXzczQmpBXCIsXCJncmlkX19jb2x1bW5zLS01XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNV9fX1NsdC1EXCIsXCJncmlkX19jb2x1bW5zLS02XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNl9fX255TTh6XCIsXCJncmlkX19jb2x1bW5zLS1hdXRvLWZpbGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS1hdXRvLWZpbGxfX19KYURWbVwiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tc3RyZXRjaFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLXN0cmV0Y2hfX194WGQzWlwiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tY2VudGVyXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tY2VudGVyX19fRThtTC1cIixcImdyaWRfX2FsaWduSXRlbXMtLXN0YXJ0XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RhcnRfX18yTmR2U1wiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tZW5kXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tZW5kX19fMUlwWW1cIixcImdyaWRfX2dhcC0temVyb1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0temVyb19fX0cxcThkXCIsXCJncmlkX19nYXAtLWNvbHVtbi0temVyb1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS16ZXJvX19feWdRcEpcIixcImdyaWRfX2dhcC0tcm93LS16ZXJvXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXplcm9fX193MS1PeFwiLFwiZ3JpZF9fZ2FwLS00eHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTR4c19fX3pPMG12XCIsXCJncmlkX19nYXAtLWNvbHVtbi0tNHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTR4c19fX0dVb2QzXCIsXCJncmlkX19nYXAtLXJvdy0tNHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTR4c19fX3NWUVplXCIsXCJncmlkX19nYXAtLTN4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tM3hzX19fLUl4U3dcIixcImdyaWRfX2dhcC0tY29sdW1uLS0zeHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hzX19fdXc0NjZcIixcImdyaWRfX2dhcC0tcm93LS0zeHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tM3hzX19fSmZ3bVlcIixcImdyaWRfX2dhcC0teHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eHNfX19naDhjLVwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14eHNfX19FNzZnS1wiLFwiZ3JpZF9fZ2FwLS1yb3ctLXh4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14eHNfX19uaHh6LVwiLFwiZ3JpZF9fZ2FwLS14c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0teHNfX19HSDRoMlwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXhzX19fdVJxcmlcIixcImdyaWRfX2dhcC0tcm93LS14c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14c19fX2xBTkV1XCIsXCJncmlkX19nYXAtLXNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXNfX183UjBwc1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tc19fX2FEVkFHXCIsXCJncmlkX19nYXAtLXJvdy0tc1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1zX19fQVJEbXhcIixcImdyaWRfX2dhcC0tbVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tbV9fX20zWGloXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tbVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1tX19fQ3N5ZU1cIixcImdyaWRfX2dhcC0tcm93LS1tXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLW1fX19zT0FYblwiLFwiZ3JpZF9fZ2FwLS1sXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1sX19fMFN5S2xcIixcImdyaWRfX2dhcC0tY29sdW1uLS1sXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLWxfX19KdkpoTVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLWxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tbF9fX2FwSDhiXCIsXCJncmlkX19nYXAtLXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14bF9fX0ktdlJ0XCIsXCJncmlkX19nYXAtLWNvbHVtbi0teGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teGxfX190MFNPM1wiLFwiZ3JpZF9fZ2FwLS1yb3ctLXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXhsX19fZXZORWRcIixcImdyaWRfX2dhcC0teHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eGxfX19lV1MwMlwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14eGxfX19zLS0tYlwiLFwiZ3JpZF9fZ2FwLS1yb3ctLXh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14eGxfX19KNEY3b1wiLFwiZ3JpZF9fZ2FwLS0zeGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTN4bF9fX0hWbGtEXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tM3hsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTN4bF9fX3pLdExMXCIsXCJncmlkX19nYXAtLXJvdy0tM3hsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTN4bF9fX0U5U1Y5XCIsXCJncmlkX19nYXAtLTR4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tNHhsX19fTTNHM2ZcIixcImdyaWRfX2dhcC0tY29sdW1uLS00eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhsX19fbm50LXBcIixcImdyaWRfX2dhcC0tcm93LS00eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNHhsX19fMVc4YmRcIixcImdyaWRfX2dhcC0tNXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS01eGxfX195QW5YRFwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTV4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS01eGxfX18ydzRSMVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTV4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS01eGxfX19WQ2ZqZ1wiLFwiZ3JpZF9fZ2FwLS02eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTZ4bF9fX2hFbDBGXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tNnhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX0Z4UHRwXCIsXCJncmlkX19nYXAtLXJvdy0tNnhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTZ4bF9fX3luMWYtXCIsXCJncmlkX19nYXAtLTd4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tN3hsX19fZ2JHSHVcIixcImdyaWRfX2dhcC0tY29sdW1uLS03eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tN3hsX19fVnlqMXBcIixcImdyaWRfX2dhcC0tcm93LS03eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tN3hsX19fNUJCc1NcIixcImdyaWRfX2dhcC0tOHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS04eGxfX19qQ2xtQ1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS04eGxfX19icTdFelwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS04eGxfX193TnVaMlwiLFwiZ3JpZF9fZ2FwLS05eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTl4bF9fX2luRTFFXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tOXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTl4bF9fX01zZmpxXCIsXCJncmlkX19nYXAtLXJvdy0tOXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTl4bF9fX2kyMy1jXCIsXCJncmlkX19nYXAtLTEweGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTEweGxfX19MQ0R0Y1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTEweGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tMTB4bF9fX284Y0J5XCIsXCJncmlkX19nYXAtLXJvdy0tMTB4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0xMHhsX19fUmpSdzlcIixcImdyaWRfX2dhcC0tMTF4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tMTF4bF9fX1NxdU5hXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tMTF4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0xMXhsX19fdVNlV3pcIixcImdyaWRfX2dhcC0tcm93LS0xMXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTExeGxfX19qcUctSVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9oZWlnaHQvaGVpZ2h0Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIuaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tZnVsbF9fXy1pb2pmIHtcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS16ZXJvX19fZDU3d1cge1xcbiAgbWF4LWhlaWdodDogMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhzX19fTEpVQm4ge1xcbiAgbWF4LWhlaWdodDogMXB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hzX19fLTJXby0ge1xcbiAgbWF4LWhlaWdodDogMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHhzX19faEZyQmUge1xcbiAgbWF4LWhlaWdodDogNHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHNfX19jMnBhRCB7XFxuICBtYXgtaGVpZ2h0OiA4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1zX19fQWNwNlQge1xcbiAgbWF4LWhlaWdodDogMTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLW1fX19Wem9ROSB7XFxuICBtYXgtaGVpZ2h0OiAxNnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tbF9fX1dnbHFiIHtcXG4gIG1heC1oZWlnaHQ6IDIwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14bF9fX0xVbWxKIHtcXG4gIG1heC1oZWlnaHQ6IDI0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14eGxfX19kUjN6SyB7XFxuICBtYXgtaGVpZ2h0OiAyOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hsX19fYnViVEQge1xcbiAgbWF4LWhlaWdodDogMzJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTR4bF9fX2JkWlg2IHtcXG4gIG1heC1oZWlnaHQ6IDM2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS01eGxfX19UVVRBUiB7XFxuICBtYXgtaGVpZ2h0OiA0MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNnhsX19fR2MtSGwge1xcbiAgbWF4LWhlaWdodDogNDRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTd4bF9fX1l4ZHRYIHtcXG4gIG1heC1oZWlnaHQ6IDQ4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS04eGxfX19BMld2ZCB7XFxuICBtYXgtaGVpZ2h0OiA1MnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tOXhsX19fSnZyR0oge1xcbiAgbWF4LWhlaWdodDogNTZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTEweGxfX193TFJRdSB7XFxuICBtYXgtaGVpZ2h0OiA2MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTF4bF9fX2dVM3hJIHtcXG4gIG1heC1oZWlnaHQ6IDY0cHg7XFxufVxcblxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS16ZXJvX19fUEJWNDcge1xcbiAgbWluLWhlaWdodDogMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNHhzX19fVjNOLWIge1xcbiAgbWluLWhlaWdodDogMXB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tM3hzX19fdGdEUVEge1xcbiAgbWluLWhlaWdodDogMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teHhzX19fLXFoU3oge1xcbiAgbWluLWhlaWdodDogNHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teHNfX19aSXBxdSB7XFxuICBtaW4taGVpZ2h0OiA4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1zX19feE1pR2Mge1xcbiAgbWluLWhlaWdodDogMTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLW1fX19WRVdMciB7XFxuICBtaW4taGVpZ2h0OiAxNnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbF9fX2E2LUY3IHtcXG4gIG1pbi1oZWlnaHQ6IDIwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14bF9fXy15bEZ1IHtcXG4gIG1pbi1oZWlnaHQ6IDI0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eGxfX183SzZmLSB7XFxuICBtaW4taGVpZ2h0OiAyOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tM3hsX19fMEZaUW0ge1xcbiAgbWluLWhlaWdodDogMzJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTR4bF9fX2NHb0prIHtcXG4gIG1pbi1oZWlnaHQ6IDM2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS01eGxfX19mVjNhTyB7XFxuICBtaW4taGVpZ2h0OiA0MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNnhsX19fRmtVR0Mge1xcbiAgbWluLWhlaWdodDogNDRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTd4bF9fX0NzaXdWIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS04eGxfX19oLS1ESyB7XFxuICBtaW4taGVpZ2h0OiA1MnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tOXhsX19fbkZNU0gge1xcbiAgbWluLWhlaWdodDogNTZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTEweGxfX19LYS1jQSB7XFxuICBtaW4taGVpZ2h0OiA2MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tMTF4bF9fX2ZRc2djIHtcXG4gIG1pbi1oZWlnaHQ6IDY0cHg7XFxufVxcblxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXN0cmV0Y2hfX19yWWFZbiB7XFxuICBoZWlnaHQ6IHN0cmV0Y2g7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLWZ1bGxfX192V3hpZSB7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLWF1dG9fX182N25GTiB7XFxuICBoZWlnaHQ6IGF1dG87XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXplcm9fX19BcUEwUCB7XFxuICBoZWlnaHQ6IDBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tNHhzX19fRmRKMGgge1xcbiAgaGVpZ2h0OiAxcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTN4c19fX2FzVUpiIHtcXG4gIGhlaWdodDogMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14eHNfX19ZcVRxcCB7XFxuICBoZWlnaHQ6IDRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0teHNfX19sTlJ0WSB7XFxuICBoZWlnaHQ6IDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tc19fX0g3bS0tIHtcXG4gIGhlaWdodDogMTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tbV9fX0NtTHAxIHtcXG4gIGhlaWdodDogMTZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tbF9fXzJ0a2toIHtcXG4gIGhlaWdodDogMjBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0teGxfX183eEJKaSB7XFxuICBoZWlnaHQ6IDI0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXh4bF9fX0NqU3U1IHtcXG4gIGhlaWdodDogMjhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tM3hsX19fcFVkdk4ge1xcbiAgaGVpZ2h0OiAzMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS00eGxfX19RSFpZeSB7XFxuICBoZWlnaHQ6IDM2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTV4bF9fX1diZ283IHtcXG4gIGhlaWdodDogNDBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tNnhsX19fa3djOGEge1xcbiAgaGVpZ2h0OiA0NHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS03eGxfX19tdU8xbCB7XFxuICBoZWlnaHQ6IDQ4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTh4bF9fXzlwRU1OIHtcXG4gIGhlaWdodDogNTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tOXhsX19fNmU0NlEge1xcbiAgaGVpZ2h0OiA1NnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMHhsX19fWGdYcC0ge1xcbiAgaGVpZ2h0OiA2MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMXhsX19fYWR3dUgge1xcbiAgaGVpZ2h0OiA2NHB4O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm1heC1oZWlnaHQtLWZ1bGxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLWZ1bGxfX18taW9qZlwiLFwibWF4LWhlaWdodC0temVyb1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0temVyb19fX2Q1N3dXXCIsXCJtYXgtaGVpZ2h0LS00eHNcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTR4c19fX0xKVUJuXCIsXCJtYXgtaGVpZ2h0LS0zeHNcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTN4c19fXy0yV28tXCIsXCJtYXgtaGVpZ2h0LS14eHNcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXh4c19fX2hGckJlXCIsXCJtYXgtaGVpZ2h0LS14c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHNfX19jMnBhRFwiLFwibWF4LWhlaWdodC0tc1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tc19fX0FjcDZUXCIsXCJtYXgtaGVpZ2h0LS1tXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1tX19fVnpvUTlcIixcIm1heC1oZWlnaHQtLWxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLWxfX19XZ2xxYlwiLFwibWF4LWhlaWdodC0teGxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXhsX19fTFVtbEpcIixcIm1heC1oZWlnaHQtLXh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHhsX19fZFIzektcIixcIm1heC1oZWlnaHQtLTN4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hsX19fYnViVERcIixcIm1heC1oZWlnaHQtLTR4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhsX19fYmRaWDZcIixcIm1heC1oZWlnaHQtLTV4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNXhsX19fVFVUQVJcIixcIm1heC1oZWlnaHQtLTZ4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNnhsX19fR2MtSGxcIixcIm1heC1oZWlnaHQtLTd4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tN3hsX19fWXhkdFhcIixcIm1heC1oZWlnaHQtLTh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tOHhsX19fQTJXdmRcIixcIm1heC1oZWlnaHQtLTl4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tOXhsX19fSnZyR0pcIixcIm1heC1oZWlnaHQtLTEweGxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTEweGxfX193TFJRdVwiLFwibWF4LWhlaWdodC0tMTF4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTF4bF9fX2dVM3hJXCIsXCJtaW4taGVpZ2h0LS16ZXJvXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS16ZXJvX19fUEJWNDdcIixcIm1pbi1oZWlnaHQtLTR4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNHhzX19fVjNOLWJcIixcIm1pbi1oZWlnaHQtLTN4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tM3hzX19fdGdEUVFcIixcIm1pbi1oZWlnaHQtLXh4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teHhzX19fLXFoU3pcIixcIm1pbi1oZWlnaHQtLXhzXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14c19fX1pJcHF1XCIsXCJtaW4taGVpZ2h0LS1zXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1zX19feE1pR2NcIixcIm1pbi1oZWlnaHQtLW1cIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLW1fX19WRVdMclwiLFwibWluLWhlaWdodC0tbFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbF9fX2E2LUY3XCIsXCJtaW4taGVpZ2h0LS14bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teGxfX18teWxGdVwiLFwibWluLWhlaWdodC0teHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eGxfX183SzZmLVwiLFwibWluLWhlaWdodC0tM3hsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0zeGxfX18wRlpRbVwiLFwibWluLWhlaWdodC0tNHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS00eGxfX19jR29Ka1wiLFwibWluLWhlaWdodC0tNXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS01eGxfX19mVjNhT1wiLFwibWluLWhlaWdodC0tNnhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS02eGxfX19Ga1VHQ1wiLFwibWluLWhlaWdodC0tN3hsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS03eGxfX19Dc2l3VlwiLFwibWluLWhlaWdodC0tOHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS04eGxfX19oLS1ES1wiLFwibWluLWhlaWdodC0tOXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS05eGxfX19uRk1TSFwiLFwibWluLWhlaWdodC0tMTB4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tMTB4bF9fX0thLWNBXCIsXCJtaW4taGVpZ2h0LS0xMXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0xMXhsX19fZlFzZ2NcIixcImhlaWdodC0tc3RyZXRjaFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1zdHJldGNoX19fcllhWW5cIixcImhlaWdodC0tZnVsbFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1mdWxsX19fdld4aWVcIixcImhlaWdodC0tYXV0b1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1hdXRvX19fNjduRk5cIixcImhlaWdodC0temVyb1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS16ZXJvX19fQXFBMFBcIixcImhlaWdodC0tNHhzXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTR4c19fX0ZkSjBoXCIsXCJoZWlnaHQtLTN4c1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0zeHNfX19hc1VKYlwiLFwiaGVpZ2h0LS14eHNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0teHhzX19fWXFUcXBcIixcImhlaWdodC0teHNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0teHNfX19sTlJ0WVwiLFwiaGVpZ2h0LS1zXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXNfX19IN20tLVwiLFwiaGVpZ2h0LS1tXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLW1fX19DbUxwMVwiLFwiaGVpZ2h0LS1sXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLWxfX18ydGtraFwiLFwiaGVpZ2h0LS14bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14bF9fXzd4QkppXCIsXCJoZWlnaHQtLXh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14eGxfX19DalN1NVwiLFwiaGVpZ2h0LS0zeGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tM3hsX19fcFVkdk5cIixcImhlaWdodC0tNHhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTR4bF9fX1FIWll5XCIsXCJoZWlnaHQtLTV4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS01eGxfX19XYmdvN1wiLFwiaGVpZ2h0LS02eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tNnhsX19fa3djOGFcIixcImhlaWdodC0tN3hsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTd4bF9fX211TzFsXCIsXCJoZWlnaHQtLTh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS04eGxfX185cEVNTlwiLFwiaGVpZ2h0LS05eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tOXhsX19fNmU0NlFcIixcImhlaWdodC0tMTB4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMHhsX19fWGdYcC1cIixcImhlaWdodC0tMTF4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMXhsX19fYWR3dUhcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvaGlkZGVuL2hpZGRlbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmhpZGRlbi1tb2R1bGVfX2hpZGRlbl9fX25VVWkxIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiaGlkZGVuXCI6XCJoaWRkZW4tbW9kdWxlX19oaWRkZW5fX19uVVVpMVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aCB7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICB0cmFuc2l0aW9uOiAyNTBtcyBjb2xvciwgMjUwbXMgb3BhY2l0eSwgMTUwbXMgYmFja2dyb3VuZC1jb2xvciwgMTUwbXMgYm94LXNoYWRvdztcXG59XFxuLmludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aDpub3QoLmludGVyYWN0aXZlLW1vZHVsZV9faWdub3JlRm9jdXNWaXNpYmxlX19fV2RyREcpOmZvY3VzLXZpc2libGUge1xcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWJsdWUpO1xcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xcbn1cXG4uaW50ZXJhY3RpdmUtbW9kdWxlX19pbnRlcmFjdGl2ZV9fX0ZsVXVoOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQ29sb3IpO1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMCB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxufVxcbi5pbnRlcmFjdGl2ZS1tb2R1bGVfX2ludGVyYWN0aXZlX19fRmxVdWguaW50ZXJhY3RpdmUtbW9kdWxlX19hY3RpdmVfX19vbW03eSB7XFxuICBjb2xvcjogdmFyKC0taWNvbkFjdGl2ZUNvbG9yKTtcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiaW50ZXJhY3RpdmVcIjpcImludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aFwiLFwiaWdub3JlRm9jdXNWaXNpYmxlXCI6XCJpbnRlcmFjdGl2ZS1tb2R1bGVfX2lnbm9yZUZvY3VzVmlzaWJsZV9fX1dkckRHXCIsXCJhY3RpdmVcIjpcImludGVyYWN0aXZlLW1vZHVsZV9fYWN0aXZlX19fb21tN3lcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvaW52aXNpYmxlLWJhY2tkcm9wL2ludmlzaWJsZS1iYWNrZHJvcC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmludmlzaWJsZS1iYWNrZHJvcC1tb2R1bGVfX2ludmlzaWJsZUJhY2tkcm9wX19faE9oNWI6OmJhY2tkcm9wIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImludmlzaWJsZUJhY2tkcm9wXCI6XCJpbnZpc2libGUtYmFja2Ryb3AtbW9kdWxlX19pbnZpc2libGVCYWNrZHJvcF9fX2hPaDViXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL21hcmdpbi9tYXJnaW4ubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0temVyb19fX2dHTHF3IHtcXG4gIG1hcmdpbi10b3A6IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS00eHNfX19FdjhyNyB7XFxuICBtYXJnaW4tdG9wOiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tM3hzX19fbTRZT1oge1xcbiAgbWFyZ2luLXRvcDogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXh4c19fX29wWHZwIHtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14c19fX0pJallDIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1zX19fWU44REkge1xcbiAgbWFyZ2luLXRvcDogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1tX19fWHdrLVMge1xcbiAgbWFyZ2luLXRvcDogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1sX19fS1RXaUcge1xcbiAgbWFyZ2luLXRvcDogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14bF9fXzlJT2JaIHtcXG4gIG1hcmdpbi10b3A6IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHhsX19fM01XenAge1xcbiAgbWFyZ2luLXRvcDogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0zeGxfX19NOHhIMyB7XFxuICBtYXJnaW4tdG9wOiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4bF9fX3J2TkhSIHtcXG4gIG1hcmdpbi10b3A6IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNXhsX19fSW5FUngge1xcbiAgbWFyZ2luLXRvcDogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS02eGxfX19QUy10NiB7XFxuICBtYXJnaW4tdG9wOiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTd4bF9fX1A1WWJ6IHtcXG4gIG1hcmdpbi10b3A6IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tOHhsX19fOTZNb0sge1xcbiAgbWFyZ2luLXRvcDogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS05eGxfX19vcGVEYyB7XFxuICBtYXJnaW4tdG9wOiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTEweGxfX19wdkY2eCB7XFxuICBtYXJnaW4tdG9wOiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTExeGxfX19wQnpBbSB7XFxuICBtYXJnaW4tdG9wOiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0temVyb19fX0JXdzZPIHtcXG4gIG1hcmdpbi1yaWdodDogMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhzX19fcmRQT28ge1xcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0zeHNfX18tWTlPTyB7XFxuICBtYXJnaW4tcmlnaHQ6IDJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXh4c19fX0pyb0FBIHtcXG4gIG1hcmdpbi1yaWdodDogNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHNfX19abDhNaSB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXNfX18yNERJbiB7XFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1tX19fWkxsNkIge1xcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tbF9fX2VIUy1CIHtcXG4gIG1hcmdpbi1yaWdodDogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXhsX19fSVc4ZDQge1xcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhsX19fLU9EN0wge1xcbiAgbWFyZ2luLXJpZ2h0OiAyOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tM3hsX19fdEdZUlIge1xcbiAgbWFyZ2luLXJpZ2h0OiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhsX19fRVhxaDMge1xcbiAgbWFyZ2luLXJpZ2h0OiAzNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNXhsX19fQ3VZVkcge1xcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNnhsX19fREtnRFQge1xcbiAgbWFyZ2luLXJpZ2h0OiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tN3hsX19fRnp4NGIge1xcbiAgbWFyZ2luLXJpZ2h0OiA0OHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOHhsX19fRWxTV00ge1xcbiAgbWFyZ2luLXJpZ2h0OiA1MnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOXhsX19fMG9hVHgge1xcbiAgbWFyZ2luLXJpZ2h0OiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTB4bF9fX1E1NVBDIHtcXG4gIG1hcmdpbi1yaWdodDogNjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTExeGxfX19wMDJrbiB7XFxuICBtYXJnaW4tcmlnaHQ6IDY0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0temVyb19fX24tTlZRIHtcXG4gIG1hcmdpbi1ib3R0b206IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS00eHNfX19pSkphYSB7XFxuICBtYXJnaW4tYm90dG9tOiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tM3hzX19fZndRZDEge1xcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXh4c19fXzZVYWZIIHtcXG4gIG1hcmdpbi1ib3R0b206IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14c19fX3oySjFlIHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1zX19fLUhGNlEge1xcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1tX19fSkpPUkUge1xcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1sX19fR0laY0Yge1xcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14bF9fX000QXdOIHtcXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHhsX19fVHI4bVoge1xcbiAgbWFyZ2luLWJvdHRvbTogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0zeGxfX18tMFotSCB7XFxuICBtYXJnaW4tYm90dG9tOiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4bF9fXzRsa1NGIHtcXG4gIG1hcmdpbi1ib3R0b206IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNXhsX19feml6VVAge1xcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS02eGxfX19zTW10SyB7XFxuICBtYXJnaW4tYm90dG9tOiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTd4bF9fX0pPQVpyIHtcXG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tOHhsX19fQTVRNEMge1xcbiAgbWFyZ2luLWJvdHRvbTogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS05eGxfX183dVN6diB7XFxuICBtYXJnaW4tYm90dG9tOiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTEweGxfX19KbVFKNSB7XFxuICBtYXJnaW4tYm90dG9tOiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTExeGxfX182S0VZcyB7XFxuICBtYXJnaW4tYm90dG9tOiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS16ZXJvX19fdkN2U28ge1xcbiAgbWFyZ2luLWxlZnQ6IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhzX19fbEs1LXkge1xcbiAgbWFyZ2luLWxlZnQ6IDFweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tM3hzX19fNy14Vi0ge1xcbiAgbWFyZ2luLWxlZnQ6IDJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teHhzX19fZ2U2Vkoge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teHNfX19kdnJVaiB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1zX19fRE1aSjIge1xcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLW1fX181cGVkdyB7XFxuICBtYXJnaW4tbGVmdDogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbF9fXy1TeERJIHtcXG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14bF9fXzZOLWtaIHtcXG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14eGxfX19Za2FwWSB7XFxuICBtYXJnaW4tbGVmdDogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tM3hsX19fOFVVdXgge1xcbiAgbWFyZ2luLWxlZnQ6IDMycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTR4bF9fX2FxbDViIHtcXG4gIG1hcmdpbi1sZWZ0OiAzNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS01eGxfX19oUU50cCB7XFxuICBtYXJnaW4tbGVmdDogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNnhsX19fU3FQMzEge1xcbiAgbWFyZ2luLWxlZnQ6IDQ0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTd4bF9fX2Uwai1qIHtcXG4gIG1hcmdpbi1sZWZ0OiA0OHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS04eGxfX191a3BWeiB7XFxuICBtYXJnaW4tbGVmdDogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tOXhsX19fbE5IQlQge1xcbiAgbWFyZ2luLWxlZnQ6IDU2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTEweGxfX19DQlVTbiB7XFxuICBtYXJnaW4tbGVmdDogNjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tMTF4bF9fX3VjS0M4IHtcXG4gIG1hcmdpbi1sZWZ0OiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS16ZXJvX19feUtMREgge1xcbiAgbWFyZ2luOiAwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTR4c19fXzduanNpIHtcXG4gIG1hcmdpbjogMXB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0zeHNfX19rV0JiZSB7XFxuICBtYXJnaW46IDJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teHhzX19fZlppVWEge1xcbiAgbWFyZ2luOiA0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhzX19fLXRkT2oge1xcbiAgbWFyZ2luOiA4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXNfX18weFAwZyB7XFxuICBtYXJnaW46IDEycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLW1fX19XZDRwcCB7XFxuICBtYXJnaW46IDE2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLWxfX195TVVYcyB7XFxuICBtYXJnaW46IDIwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhsX19fd2paUFIge1xcbiAgbWFyZ2luOiAyNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14eGxfX19FbTRUNyB7XFxuICBtYXJnaW46IDI4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4bF9fX2NRWkhmIHtcXG4gIG1hcmdpbjogMzJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhsX19fN0lXck0ge1xcbiAgbWFyZ2luOiAzNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS01eGxfX19jU09VUSB7XFxuICBtYXJnaW46IDQwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTZ4bF9fX0YzYlNtIHtcXG4gIG1hcmdpbjogNDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tN3hsX19fMVVRbUoge1xcbiAgbWFyZ2luOiA0OHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS04eGxfX19HRTBTdiB7XFxuICBtYXJnaW46IDUycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTl4bF9fX2g1aGhFIHtcXG4gIG1hcmdpbjogNTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTB4bF9fX2RHSy1SIHtcXG4gIG1hcmdpbjogNjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTF4bF9fXzN5eEJwIHtcXG4gIG1hcmdpbjogNjRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tYXV0b19fX3k3Z2Y5IHtcXG4gIG1hcmdpbjogYXV0bztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJtYXJnaW5fX3RvcC0temVyb1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXplcm9fX19nR0xxd1wiLFwibWFyZ2luX190b3AtLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4c19fX0V2OHI3XCIsXCJtYXJnaW5fX3RvcC0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tM3hzX19fbTRZT1pcIixcIm1hcmdpbl9fdG9wLS14eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14eHNfX19vcFh2cFwiLFwibWFyZ2luX190b3AtLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHNfX19KSWpZQ1wiLFwibWFyZ2luX190b3AtLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1zX19fWU44RElcIixcIm1hcmdpbl9fdG9wLS1tXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tbV9fX1h3ay1TXCIsXCJtYXJnaW5fX3RvcC0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLWxfX19LVFdpR1wiLFwibWFyZ2luX190b3AtLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teGxfX185SU9iWlwiLFwibWFyZ2luX190b3AtLXh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXh4bF9fXzNNV3pwXCIsXCJtYXJnaW5fX3RvcC0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tM3hsX19fTTh4SDNcIixcIm1hcmdpbl9fdG9wLS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS00eGxfX19ydk5IUlwiLFwibWFyZ2luX190b3AtLTV4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTV4bF9fX0luRVJ4XCIsXCJtYXJnaW5fX3RvcC0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNnhsX19fUFMtdDZcIixcIm1hcmdpbl9fdG9wLS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS03eGxfX19QNVlielwiLFwibWFyZ2luX190b3AtLTh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTh4bF9fXzk2TW9LXCIsXCJtYXJnaW5fX3RvcC0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tOXhsX19fb3BlRGNcIixcIm1hcmdpbl9fdG9wLS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tMTB4bF9fX3B2RjZ4XCIsXCJtYXJnaW5fX3RvcC0tMTF4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTExeGxfX19wQnpBbVwiLFwibWFyZ2luX19yaWdodC0temVyb1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0temVyb19fX0JXdzZPXCIsXCJtYXJnaW5fX3JpZ2h0LS00eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTR4c19fX3JkUE9vXCIsXCJtYXJnaW5fX3JpZ2h0LS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTN4c19fXy1ZOU9PXCIsXCJtYXJnaW5fX3JpZ2h0LS14eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXh4c19fX0pyb0FBXCIsXCJtYXJnaW5fX3JpZ2h0LS14c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHNfX19abDhNaVwiLFwibWFyZ2luX19yaWdodC0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tc19fXzI0REluXCIsXCJtYXJnaW5fX3JpZ2h0LS1tXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1tX19fWkxsNkJcIixcIm1hcmdpbl9fcmlnaHQtLWxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLWxfX19lSFMtQlwiLFwibWFyZ2luX19yaWdodC0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXhsX19fSVc4ZDRcIixcIm1hcmdpbl9fcmlnaHQtLXh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhsX19fLU9EN0xcIixcIm1hcmdpbl9fcmlnaHQtLTN4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tM3hsX19fdEdZUlJcIixcIm1hcmdpbl9fcmlnaHQtLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhsX19fRVhxaDNcIixcIm1hcmdpbl9fcmlnaHQtLTV4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNXhsX19fQ3VZVkdcIixcIm1hcmdpbl9fcmlnaHQtLTZ4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNnhsX19fREtnRFRcIixcIm1hcmdpbl9fcmlnaHQtLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tN3hsX19fRnp4NGJcIixcIm1hcmdpbl9fcmlnaHQtLTh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOHhsX19fRWxTV01cIixcIm1hcmdpbl9fcmlnaHQtLTl4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOXhsX19fMG9hVHhcIixcIm1hcmdpbl9fcmlnaHQtLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTEweGxfX19RNTVQQ1wiLFwibWFyZ2luX19yaWdodC0tMTF4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTF4bF9fX3AwMmtuXCIsXCJtYXJnaW5fX2JvdHRvbS0temVyb1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXplcm9fX19uLU5WUVwiLFwibWFyZ2luX19ib3R0b20tLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4c19fX2lKSmFhXCIsXCJtYXJnaW5fX2JvdHRvbS0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tM3hzX19fZndRZDFcIixcIm1hcmdpbl9fYm90dG9tLS14eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14eHNfX182VWFmSFwiLFwibWFyZ2luX19ib3R0b20tLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHNfX196MkoxZVwiLFwibWFyZ2luX19ib3R0b20tLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1zX19fLUhGNlFcIixcIm1hcmdpbl9fYm90dG9tLS1tXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tbV9fX0pKT1JFXCIsXCJtYXJnaW5fX2JvdHRvbS0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLWxfX19HSVpjRlwiLFwibWFyZ2luX19ib3R0b20tLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teGxfX19NNEF3TlwiLFwibWFyZ2luX19ib3R0b20tLXh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXh4bF9fX1RyOG1aXCIsXCJtYXJnaW5fX2JvdHRvbS0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tM3hsX19fLTBaLUhcIixcIm1hcmdpbl9fYm90dG9tLS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS00eGxfX180bGtTRlwiLFwibWFyZ2luX19ib3R0b20tLTV4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTV4bF9fX3ppelVQXCIsXCJtYXJnaW5fX2JvdHRvbS0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNnhsX19fc01tdEtcIixcIm1hcmdpbl9fYm90dG9tLS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS03eGxfX19KT0FaclwiLFwibWFyZ2luX19ib3R0b20tLTh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTh4bF9fX0E1UTRDXCIsXCJtYXJnaW5fX2JvdHRvbS0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tOXhsX19fN3VTenZcIixcIm1hcmdpbl9fYm90dG9tLS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tMTB4bF9fX0ptUUo1XCIsXCJtYXJnaW5fX2JvdHRvbS0tMTF4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTExeGxfX182S0VZc1wiLFwibWFyZ2luX19sZWZ0LS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXplcm9fX192Q3ZTb1wiLFwibWFyZ2luX19sZWZ0LS00eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhzX19fbEs1LXlcIixcIm1hcmdpbl9fbGVmdC0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTN4c19fXzcteFYtXCIsXCJtYXJnaW5fX2xlZnQtLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14eHNfX19nZTZWSlwiLFwibWFyZ2luX19sZWZ0LS14c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14c19fX2R2clVqXCIsXCJtYXJnaW5fX2xlZnQtLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tc19fX0RNWkoyXCIsXCJtYXJnaW5fX2xlZnQtLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbV9fXzVwZWR3XCIsXCJtYXJnaW5fX2xlZnQtLWxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbF9fXy1TeERJXCIsXCJtYXJnaW5fX2xlZnQtLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXhsX19fNk4ta1pcIixcIm1hcmdpbl9fbGVmdC0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXh4bF9fX1lrYXBZXCIsXCJtYXJnaW5fX2xlZnQtLTN4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS0zeGxfX184VVV1eFwiLFwibWFyZ2luX19sZWZ0LS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhsX19fYXFsNWJcIixcIm1hcmdpbl9fbGVmdC0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTV4bF9fX2hRTnRwXCIsXCJtYXJnaW5fX2xlZnQtLTZ4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS02eGxfX19TcVAzMVwiLFwibWFyZ2luX19sZWZ0LS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tN3hsX19fZTBqLWpcIixcIm1hcmdpbl9fbGVmdC0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTh4bF9fX3VrcFZ6XCIsXCJtYXJnaW5fX2xlZnQtLTl4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS05eGxfX19sTkhCVFwiLFwibWFyZ2luX19sZWZ0LS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTEweGxfX19DQlVTblwiLFwibWFyZ2luX19sZWZ0LS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTExeGxfX191Y0tDOFwiLFwibWFyZ2luLS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXplcm9fX195S0xESFwiLFwibWFyZ2luLS00eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhzX19fN25qc2lcIixcIm1hcmdpbi0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4c19fX2tXQmJlXCIsXCJtYXJnaW4tLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14eHNfX19mWmlVYVwiLFwibWFyZ2luLS14c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14c19fXy10ZE9qXCIsXCJtYXJnaW4tLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tc19fXzB4UDBnXCIsXCJtYXJnaW4tLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbV9fX1dkNHBwXCIsXCJtYXJnaW4tLWxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbF9fX3lNVVhzXCIsXCJtYXJnaW4tLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhsX19fd2paUFJcIixcIm1hcmdpbi0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXh4bF9fX0VtNFQ3XCIsXCJtYXJnaW4tLTN4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0zeGxfX19jUVpIZlwiLFwibWFyZ2luLS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhsX19fN0lXck1cIixcIm1hcmdpbi0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTV4bF9fX2NTT1VRXCIsXCJtYXJnaW4tLTZ4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS02eGxfX19GM2JTbVwiLFwibWFyZ2luLS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tN3hsX19fMVVRbUpcIixcIm1hcmdpbi0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTh4bF9fX0dFMFN2XCIsXCJtYXJnaW4tLTl4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS05eGxfX19oNWhoRVwiLFwibWFyZ2luLS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTEweGxfX19kR0stUlwiLFwibWFyZ2luLS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTExeGxfX18zeXhCcFwiLFwibWFyZ2luLS1hdXRvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLWF1dG9fX195N2dmOVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzXCIsIGNzczogXCIub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXplcm9fX184bHlHaSA+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/IHt9IDogJGZsZXg7XG5cbiAgY29uc3QgaG9yaXpvbnRhbEFsaWduUHJvcHMgPSB7XG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLXN0cmV0Y2hgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwic3RyZXRjaFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwiY2VudGVyXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLWZsZXhTdGFydGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJ0b3BcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tZmxleEVuZGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJib3R0b21cIixcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJzcGFjZS1hcm91bmRcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQmV0d2VlbmBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInNwYWNlLWJldHdlZW5cIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLXN0cmV0Y2hgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJzdHJldGNoXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJjZW50ZXJcIixcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleFN0YXJ0YF1dOlxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJob3Jpem9udGFsXCIgJiYgaG9yaXpvbnRhbEFsaWduID09PSBcImxlZnRcIikgfHxcbiAgICAgIChkaXJlY3Rpb24gPT09IFwiaG9yaXpvbnRhbC1yZXZlcnNlZFwiICYmIGhvcml6b250YWxBbGlnbiA9PT0gXCJyaWdodFwiKSxcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleEVuZGBdXTpcbiAgICAgIChkaXJlY3Rpb24gPT09IFwiaG9yaXpvbnRhbFwiICYmIGhvcml6b250YWxBbGlnbiA9PT0gXCJyaWdodFwiKSB8fFxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJob3Jpem9udGFsLXJldmVyc2VkXCIgJiYgaG9yaXpvbnRhbEFsaWduID09PSBcImxlZnRcIiksXG4gIH07XG5cbiAgY29uc3QgdmVydGljYWxBbGlnblByb3BzID0ge1xuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwic3BhY2UtYXJvdW5kXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUJldHdlZW5gXV06IHZlcnRpY2FsQWxpZ24gPT09IFwic3BhY2UtYmV0d2VlblwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3RyZXRjaGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJzdHJldGNoXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwiY2VudGVyXCIsXG5cbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhTdGFydGBdXTpcbiAgICAgIChkaXJlY3Rpb24gPT09IFwidmVydGljYWxcIiAmJiB2ZXJ0aWNhbEFsaWduID09PSBcInRvcFwiKSB8fFxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJ2ZXJ0aWNhbC1yZXZlcnNlZFwiICYmIHZlcnRpY2FsQWxpZ24gPT09IFwiYm90dG9tXCIpLFxuXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4RW5kYF1dOlxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiICYmIHZlcnRpY2FsQWxpZ24gPT09IFwiYm90dG9tXCIpIHx8XG4gICAgICAoZGlyZWN0aW9uID09PSBcInZlcnRpY2FsLXJldmVyc2VkXCIgJiYgdmVydGljYWxBbGlnbiA9PT0gXCJ0b3BcIiksXG5cbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tc3RyZXRjaGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInN0cmV0Y2hcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tY2VudGVyYF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwiY2VudGVyXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLWZsZXhTdGFydGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcImxlZnRcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tZmxleEVuZGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInJpZ2h0XCIsXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBmbGV4U3R5bGVzLmZsZXgsXG4gICAgICBmbGV4U3R5bGVzW2BmbGV4X19kaXJlY3Rpb24tLSR7ZGlyZWN0aW9ufWBdLFxuXG4gICAgICBbXCJob3Jpem9udGFsXCIsIFwiaG9yaXpvbnRhbC1yZXZlcnNlZFwiXS5pbmNsdWRlcyhkaXJlY3Rpb24pID8gaG9yaXpvbnRhbEFsaWduUHJvcHMgOiB2ZXJ0aWNhbEFsaWduUHJvcHMsXG5cbiAgICAgIHR5cGVvZiBnYXAgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBmbGV4U3R5bGVzW2BmbGV4X19nYXAtLSR7Z2FwfWBdXG4gICAgICAgIDogZ2FwXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIGdhcC5jb2x1bW4gPyBmbGV4U3R5bGVzW2BmbGV4X19nYXAtLWNvbHVtbi0tJHtnYXAuY29sdW1ufWBdIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBnYXAucm93ID8gZmxleFN0eWxlc1tgZmxleF9fZ2FwLS1yb3ctLSR7Z2FwLnJvd31gXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHdyYXAgJiYgZmxleFN0eWxlc1tgZmxleF9fd3JhcC0td3JhcGBdLFxuXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIF0sXG5cbiAgICAkZmxleDogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IGdyaWRTdHlsZXMgZnJvbSBcIi4vZ3JpZC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IHN0eWxlUGx1Z2luIH0gZnJvbSBcIi4uL3N0eWxlL3N0eWxlXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgR3JpZENvbHVtbnMgPSAxIHwgMiB8IDMgfCA0IHwgNSB8IDY7XG5cbmV4cG9ydCB0eXBlIEdyaWRQcm9wcyA9IHtcbiAgLyoqXG4gICAqIEhvdyBtYW55IGNvbHVtbnMgb2YgZXF1YWwgd2lkdGgsIG9yIGB7IG1pbldpZHRoIH1gIGZvciBhcyBtYW55IGFzIGZpdCB0aGUgd2lkdGggb2YgdGhlIGdyaWQsIGVhY2hcbiAgICogYXQgbGVhc3QgYG1pbldpZHRoYCB1bml0cyAoYHZhcigtLXVuaXQpYCkgd2lkZSwgb3IgdGhlIHdob2xlIHdpZHRoIHdoZW4gZXZlbiBvbmUgZG9lcyBub3QgZml0LlxuICAgKiBUaGUgbGF0dGVyIGZvbGxvd3MgdGhlIGdyaWQncyBvd24gd2lkdGgsIG5vdCB0aGUgd2luZG93J3MsIHNvIGl0IGFkYXB0cyBpbiBhIHNwbGl0IGFzIHdlbGwuXG4gICAqL1xuICBjb2x1bW5zOiBHcmlkQ29sdW1ucyB8IHsgbWluV2lkdGg6IG51bWJlciB9O1xuICBnYXA/OiBUU2hpcnRTaXplIHwgeyByb3c/OiBUU2hpcnRTaXplOyBjb2x1bW4/OiBUU2hpcnRTaXplIH07XG4gIGFsaWduSXRlbXM/OiBcInN0cmV0Y2hcIiB8IFwiY2VudGVyXCIgfCBcInN0YXJ0XCIgfCBcImVuZFwiO1xufTtcblxuZXhwb3J0IHR5cGUgR3JpZFBsdWdpblByb3BzID0geyAkZ3JpZD86IEdyaWRQcm9wcyB9O1xuXG5leHBvcnQgY29uc3QgZ3JpZFBsdWdpbiA9IGdldFBsdWdpbjxHcmlkUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luLCB0eXBlb2Ygc3R5bGVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkZ3JpZCB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkZ3JpZCkge1xuICAgIHJldHVybiB7ICRncmlkOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IHsgY29sdW1ucywgZ2FwLCBhbGlnbkl0ZW1zIH0gPSAkZ3JpZDtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIGdyaWRTdHlsZXMuZ3JpZCxcbiAgICAgIHR5cGVvZiBjb2x1bW5zID09PSBcIm51bWJlclwiID8gZ3JpZFN0eWxlc1tgZ3JpZF9fY29sdW1ucy0tJHtjb2x1bW5zfWBdIDogZ3JpZFN0eWxlc1tcImdyaWRfX2NvbHVtbnMtLWF1dG8tZmlsbFwiXSxcbiAgICAgIGFsaWduSXRlbXMgPyBncmlkU3R5bGVzW2BncmlkX19hbGlnbkl0ZW1zLS0ke2FsaWduSXRlbXN9YF0gOiB1bmRlZmluZWQsXG5cbiAgICAgIHR5cGVvZiBnYXAgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBncmlkU3R5bGVzW2BncmlkX19nYXAtLSR7Z2FwfWBdXG4gICAgICAgIDogZ2FwXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIGdhcC5jb2x1bW4gPyBncmlkU3R5bGVzW2BncmlkX19nYXAtLWNvbHVtbi0tJHtnYXAuY29sdW1ufWBdIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBnYXAucm93ID8gZ3JpZFN0eWxlc1tgZ3JpZF9fZ2FwLS1yb3ctLSR7Z2FwLnJvd31gXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcblxuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICBdLFxuXG4gICAgLy8gVGhlIG1pbmltdW0gY29sdW1uIHdpZHRoIGlzIGEgY3VzdG9tIHByb3BlcnR5IHRoZSBhdXRvLWZpbGwgY2xhc3MgcmVhZHMuXG4gICAgJHN0eWxlOlxuICAgICAgdHlwZW9mIGNvbHVtbnMgPT09IFwibnVtYmVyXCJcbiAgICAgICAgPyBwcm9wcy4kc3R5bGVcbiAgICAgICAgOiAoe1xuICAgICAgICAgICAgLi4ucHJvcHMuJHN0eWxlLFxuICAgICAgICAgICAgXCItLWdyaWQtbWluLWNvbHVtbi13aWR0aFwiOiBgY2FsYyh2YXIoLS11bml0KSAqICR7Y29sdW1ucy5taW5XaWR0aH0pYCxcbiAgICAgICAgICB9IGFzIFJlYWN0LkNTU1Byb3BlcnRpZXMpLFxuXG4gICAgJGdyaWQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB3aWR0aFN0eWxlcyBmcm9tIFwiLi93aWR0aC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IHN0eWxlUGx1Z2luIH0gZnJvbSBcIi4uL3N0eWxlL3N0eWxlXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbi8qKiBBIHNoYXJlIG9mIHRoZSBwYXJlbnQncyB3aWR0aCwgZS5nLiBgXCIzMCVcImAsIGZvciBsYXlvdXRzIHRoYXQgZGl2aWRlIGEgcm93IHJhdGhlciB0aGFuIHNpemUgYSBib3guICovXG5leHBvcnQgdHlwZSBQZXJjZW50YWdlID0gYCR7bnVtYmVyfSVgO1xuXG4vKiogQSB3aWR0aCBpbiB1bml0cyBvZiB0aGUgZGVzaWduIChgdmFyKC0tdW5pdClgKSwgZm9yIGEgYm94IHRoYXQgbXVzdCBzdGF5IHdpZGUgZW5vdWdoIGZvciB3aGF0IGl0IGhvbGRzLiAqL1xuZXhwb3J0IHR5cGUgRGVzaWduVW5pdHMgPSB7IHVuaXRzOiBudW1iZXIgfTtcblxuZXhwb3J0IHR5cGUgJFdpZHRoUHJvcHMgPSB7XG4gIHdpZHRoPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJzdHJldGNoXCIgfCBQZXJjZW50YWdlO1xuICBtaW4/OiBUU2hpcnRTaXplIHwgXCJmaXRcIiB8IFBlcmNlbnRhZ2UgfCBEZXNpZ25Vbml0cztcbiAgbWF4PzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJjb250ZW50XCIgfCBQZXJjZW50YWdlO1xufTtcblxuZXhwb3J0IHR5cGUgV2lkdGhQbHVnaW5Qcm9wcyA9IHsgJHdpZHRoPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJzdHJldGNoXCIgfCBQZXJjZW50YWdlIHwgJFdpZHRoUHJvcHMgfTtcblxuY29uc3QgaXNQZXJjZW50YWdlID0gKHZhbHVlOiBzdHJpbmcgfCBEZXNpZ25Vbml0cyB8IHVuZGVmaW5lZCk6IHZhbHVlIGlzIFBlcmNlbnRhZ2UgPT5cbiAgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIHZhbHVlLmVuZHNXaXRoKFwiJVwiKTtcblxuY29uc3QgaXNEZXNpZ25Vbml0cyA9ICh2YWx1ZTogc3RyaW5nIHwgRGVzaWduVW5pdHMgfCB1bmRlZmluZWQpOiB2YWx1ZSBpcyBEZXNpZ25Vbml0cyA9PiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG5cbmV4cG9ydCBjb25zdCB3aWR0aFBsdWdpbiA9IGdldFBsdWdpbjxXaWR0aFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbiwgdHlwZW9mIHN0eWxlUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJHdpZHRoLCAkY2xhc3NOYW1lLCAkc3R5bGUgfSA9IHByb3BzO1xuICBjb25zdCB7IHdpZHRoLCBtaW4sIG1heCB9ID0gdHlwZW9mICR3aWR0aCA9PT0gXCJzdHJpbmdcIiA/IHsgd2lkdGg6ICR3aWR0aCB9IDogKCR3aWR0aCA/PyB7fSk7XG4gIC8vIElubGluZSwgc2luY2Ugbm8gY2xhc3MgY2FuIG5hbWUgZXZlcnkgc2hhcmUgb3IgZXZlcnkgbnVtYmVyIG9mIHVuaXRzLlxuICBjb25zdCBpbmxpbmUgPSB7XG4gICAgLi4uKGlzUGVyY2VudGFnZSh3aWR0aCkgPyB7IHdpZHRoIH0gOiB7fSksXG4gICAgLi4uKGlzUGVyY2VudGFnZShtaW4pID8geyBtaW5XaWR0aDogbWluIH0gOiB7fSksXG4gICAgLi4uKGlzRGVzaWduVW5pdHMobWluKSA/IHsgbWluV2lkdGg6IGBjYWxjKHZhcigtLXVuaXQpICogJHttaW4udW5pdHN9KWAgfSA6IHt9KSxcbiAgICAuLi4oaXNQZXJjZW50YWdlKG1heCkgPyB7IG1heFdpZHRoOiBtYXggfSA6IHt9KSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIHdpZHRoICYmICFpc1BlcmNlbnRhZ2Uod2lkdGgpID8gd2lkdGhTdHlsZXNbYHdpZHRoLS0ke3dpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgICAgbWluICYmICFpc1BlcmNlbnRhZ2UobWluKSAmJiAhaXNEZXNpZ25Vbml0cyhtaW4pID8gd2lkdGhTdHlsZXNbYG1pbi13aWR0aC0tJHttaW59YF0gOiB1bmRlZmluZWQsXG4gICAgICBtYXggJiYgIWlzUGVyY2VudGFnZShtYXgpID8gd2lkdGhTdHlsZXNbYG1heC13aWR0aC0tJHttYXh9YF0gOiB1bmRlZmluZWQsXG4gICAgICAkY2xhc3NOYW1lLFxuICAgIF0sXG4gICAgJHN0eWxlOiBPYmplY3Qua2V5cyhpbmxpbmUpLmxlbmd0aCA+IDAgPyB7IC4uLiRzdHlsZSwgLi4uaW5saW5lIH0gOiAkc3R5bGUsXG4gICAgJHdpZHRoOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuZXhwb3J0IHR5cGUgU3R5bGVQbHVnaW5Qcm9wcyA9IHsgJHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllczsgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzIH07XG5cbmV4cG9ydCBjb25zdCBzdHlsZVBsdWdpbiA9IGdldFBsdWdpbjxTdHlsZVBsdWdpblByb3BzPigocHJvcHMpID0+IHtcbiAgLyogYzggaWdub3JlIG5leHQgKi9cbiAgY29uc3QgJHN0eWxlID0gcHJvcHMuJHN0eWxlIHx8IHt9O1xuXG4gIGNvbnN0IHN0eWxlID0gcHJvcHMuc3R5bGUgfHwge307XG5cbiAgcmV0dXJuIHtcbiAgICBzdHlsZTogeyAuLi4kc3R5bGUsIC4uLnN0eWxlIH0sXG4gICAgJHN0eWxlOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgaGVpZ2h0U3R5bGVzIGZyb20gXCIuL2hlaWdodC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IHN0eWxlUGx1Z2luIH0gZnJvbSBcIi4uL3N0eWxlL3N0eWxlXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5pbXBvcnQgdHlwZSB7IFBlcmNlbnRhZ2UgfSBmcm9tIFwiLi4vd2lkdGgvd2lkdGhcIjtcblxuZXhwb3J0IHR5cGUgJEhlaWdodFByb3BzID0ge1xuICBoZWlnaHQ/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCBcInN0cmV0Y2hcIiB8IFwiYXV0b1wiIHwgUGVyY2VudGFnZTtcbiAgbWluPzogVFNoaXJ0U2l6ZSB8IFBlcmNlbnRhZ2U7XG4gIG1heD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFBlcmNlbnRhZ2U7XG59O1xuXG5leHBvcnQgdHlwZSBIZWlnaHRQbHVnaW5Qcm9wcyA9IHsgJGhlaWdodD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwiYXV0b1wiIHwgXCJzdHJldGNoXCIgfCBQZXJjZW50YWdlIHwgJEhlaWdodFByb3BzIH07XG5cbmNvbnN0IGlzUGVyY2VudGFnZSA9ICh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdmFsdWUgaXMgUGVyY2VudGFnZSA9PiB2YWx1ZT8uZW5kc1dpdGgoXCIlXCIpID09PSB0cnVlO1xuXG5leHBvcnQgY29uc3QgaGVpZ2h0UGx1Z2luID0gZ2V0UGx1Z2luPEhlaWdodFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbiwgdHlwZW9mIHN0eWxlUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGhlaWdodCwgJHN0eWxlIH0gPSBwcm9wcztcbiAgY29uc3QgeyBoZWlnaHQsIG1pbiwgbWF4IH0gPSB0eXBlb2YgJGhlaWdodCA9PT0gXCJzdHJpbmdcIiA/IHsgaGVpZ2h0OiAkaGVpZ2h0IH0gOiAoJGhlaWdodCA/PyB7fSk7XG4gIGNvbnN0IHBlcmNlbnRhZ2VzID0ge1xuICAgIC4uLihpc1BlcmNlbnRhZ2UoaGVpZ2h0KSA/IHsgaGVpZ2h0IH0gOiB7fSksXG4gICAgLi4uKGlzUGVyY2VudGFnZShtaW4pID8geyBtaW5IZWlnaHQ6IG1pbiB9IDoge30pLFxuICAgIC4uLihpc1BlcmNlbnRhZ2UobWF4KSA/IHsgbWF4SGVpZ2h0OiBtYXggfSA6IHt9KSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIGhlaWdodCAmJiAhaXNQZXJjZW50YWdlKGhlaWdodCkgPyBoZWlnaHRTdHlsZXNbYGhlaWdodC0tJHtoZWlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgICBtaW4gJiYgIWlzUGVyY2VudGFnZShtaW4pID8gaGVpZ2h0U3R5bGVzW2BtaW4taGVpZ2h0LS0ke21pbn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIG1heCAmJiAhaXNQZXJjZW50YWdlKG1heCkgPyBoZWlnaHRTdHlsZXNbYG1heC1oZWlnaHQtLSR7bWF4fWBdIDogdW5kZWZpbmVkLFxuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICBdLFxuICAgICRzdHlsZTogT2JqZWN0LmtleXMocGVyY2VudGFnZXMpLmxlbmd0aCA+IDAgPyB7IC4uLiRzdHlsZSwgLi4ucGVyY2VudGFnZXMgfSA6ICRzdHlsZSxcbiAgICAkaGVpZ2h0OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IGNvbG9yU3R5bGVzIGZyb20gXCIuL2NvbG9yLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4uL19zaGFyZWQvY29sb3JzXCI7XG5cbmV4cG9ydCB0eXBlIFRleHRDb2xvciA9IENvbG9yIHwgVGV4dENvbG9yQWxpYXM7XG5cbmV4cG9ydCB0eXBlICRDb2xvclByb3BzID0ge1xuICByZWFkb25seSBub3JtYWw/OiBUZXh0Q29sb3I7XG4gIHJlYWRvbmx5IGhvdmVyPzogVGV4dENvbG9yO1xuICByZWFkb25seSBmb2N1cz86IFRleHRDb2xvcjtcbiAgcmVhZG9ubHkgZGlzYWJsZWQ/OiBUZXh0Q29sb3I7XG59O1xuXG5leHBvcnQgdHlwZSBDb2xvclBsdWdpblByb3BzID0geyByZWFkb25seSAkY29sb3I/OiBUZXh0Q29sb3IgfCAkQ29sb3JQcm9wcyB9O1xuZXhwb3J0IHR5cGUgVGV4dENvbG9yQWxpYXMgPSBrZXlvZiB0eXBlb2YgYWxpYXNUb05vbWluYWw7XG5cbmNvbnN0IGFsaWFzVG9Ob21pbmFsID0ge1xuICB0ZXh0TXV0ZWQ6IFwiZ3JleTI1XCIsXG4gIHRleHREZWZhdWx0OiBcImdyZXkyMFwiLFxuICB0ZXh0SGlnaGxpZ2h0OiBcImdyZXkxMFwiLFxufSBhcyBjb25zdDtcblxuY29uc3QgaXNUZXh0Q29sb3JBbGlhcyA9IChjb2xvcjogVGV4dENvbG9yKTogY29sb3IgaXMgVGV4dENvbG9yQWxpYXMgPT4gY29sb3IgaW4gYWxpYXNUb05vbWluYWw7XG5cbmV4cG9ydCBjb25zdCBjb2xvclBsdWdpbiA9IGdldFBsdWdpbjxDb2xvclBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRjbGFzc05hbWUsICRjb2xvciB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgbm9ybWFsLCBob3ZlciwgZm9jdXMsIGRpc2FibGVkIH0gPSB0eXBlb2YgJGNvbG9yID09PSBcInN0cmluZ1wiID8geyBub3JtYWw6ICRjb2xvciB9IDogKCRjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgPyAoaXNUZXh0Q29sb3JBbGlhcyhub3JtYWwpID8gYWxpYXNUb05vbWluYWxbbm9ybWFsXSA6IG5vcm1hbCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGhvdmVyQ29sb3IgPSBob3ZlciA/IChpc1RleHRDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZm9jdXNDb2xvciA9IGZvY3VzID8gKGlzVGV4dENvbG9yQWxpYXMoZm9jdXMpID8gYWxpYXNUb05vbWluYWxbZm9jdXNdIDogZm9jdXMpIDogdW5kZWZpbmVkO1xuICBjb25zdCBkaXNhYmxlZENvbG9yID0gZGlzYWJsZWQgPyAoaXNUZXh0Q29sb3JBbGlhcyhkaXNhYmxlZCkgPyBhbGlhc1RvTm9taW5hbFtkaXNhYmxlZF0gOiBkaXNhYmxlZCkgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICAkY2xhc3NOYW1lLFxuICAgICAgbm9ybWFsQ29sb3IgPyBjb2xvclN0eWxlc1tgY29sb3ItLSR7bm9ybWFsQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgICBob3ZlckNvbG9yID8gY29sb3JTdHlsZXNbYGNvbG9yLWhvdmVyLS0ke2hvdmVyQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgICBmb2N1c0NvbG9yID8gY29sb3JTdHlsZXNbYGNvbG9yLWZvY3VzLS0ke2ZvY3VzQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgICBkaXNhYmxlZENvbG9yID8gY29sb3JTdHlsZXNbYGNvbG9yLWRpc2FibGVkLS0ke2Rpc2FibGVkQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgXSxcbiAgICAkY29sb3I6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgZ3JhZGllbnRTdHlsZXMgZnJvbSBcIi4vZ3JhZGllbnQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgR3JhZGllbnRQbHVnaW5Qcm9wcyA9IHsgJGdyYWRpZW50PzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgZ3JhZGllbnRQbHVnaW4gPSBnZXRQbHVnaW48R3JhZGllbnRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwcm9wcy4kZ3JhZGllbnQgPyBncmFkaWVudFN0eWxlcy5ncmFkaWVudCA6IHVuZGVmaW5lZF0sXG4gICRncmFkaWVudDogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBEcmFnZ2FibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL2dldC1kcmFnZ2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHsgYWN0aW9uIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGRyYWdnZWRJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9kcmFnZ2VkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vZHJhZ2dhYmxlLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgZHJhZ2dhYmxlUGx1Z2luID0gZ2V0UGx1Z2luPERyYWdnYWJsZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRkcmFnZ2FibGUpIHtcbiAgICByZXR1cm4geyAkZHJhZ2dhYmxlOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IFtkcmFnZ2luZywgc2V0RHJhZ2dpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IHsgY29udGV4dCwgaXRlbSB9ID0gcHJvcHMuJGRyYWdnYWJsZTtcblxuICBjb25zdCBkcmFnZ2VkSXRlbVN0YXRlID0gdXNlU3luY0luamVjdChkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIHtcbiAgICBkcmFnZ2FibGU6IHRydWUsXG5cbiAgICAkdmlzdWFsbHlIaWRkZW46IGRyYWdnaW5nLFxuXG4gICAgb25EcmFnU3RhcnQ6IGFjdGlvbigoZXZlbnQ6IFJlYWN0LkRyYWdFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gXCJtb3ZlXCI7XG5cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHByb3BzLm9uRHJhZ1N0YXJ0Py4oZXZlbnQpO1xuXG4gICAgICBtYWtlQ2hyb21pdW1Ob3RHbGl0Y2hXaGVuRHJhZ2dpbmcoZXZlbnQpO1xuXG4gICAgICBkcmFnZ2VkSXRlbVN0YXRlLnNldChpdGVtKTtcblxuICAgICAgLy8gRG9uJ3Qgc2V0IGRyYWdnaW5nIHRvbyBlYXJseSwgYmVjYXVzZSBpdCB3b3VsZCBoaWRlIHRoZSBcImRyYWcgcHJldmlld1wiIGZvciBlbGVtZW50IGJlaW5nIGRyYWdnZWQuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0RHJhZ2dpbmcodHJ1ZSk7XG4gICAgICB9LCAwKTtcbiAgICB9KSxcblxuICAgIG9uRHJhZ0VuZDogYWN0aW9uKChldmVudDogUmVhY3QuRHJhZ0V2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgcHJvcHMub25EcmFnRW5kPy4oZXZlbnQpO1xuXG4gICAgICBkcmFnZ2VkSXRlbVN0YXRlLnNldCh1bmRlZmluZWQpO1xuICAgICAgc2V0RHJhZ2dpbmcoZmFsc2UpO1xuICAgIH0pLFxuXG4gICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHN0eWxlcy5kcmFnZ2FibGVdLFxuXG4gICAgJGRyYWdnYWJsZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG5cbmNvbnN0IG1ha2VDaHJvbWl1bU5vdEdsaXRjaFdoZW5EcmFnZ2luZyA9IChldmVudDogUmVhY3QuRHJhZ0V2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YShcInRleHQvcGxhaW5cIiwgXCJzdHViLWRhdGEtdG8tZml4LWNocm9taXVtXCIpO1xufTtcbiIsICJpbXBvcnQgeyBkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSB9IGZyb20gXCIuL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgeyBtYWtlU3VyZURyYWdBbmREcm9wRXZlbnRzSGF2ZVRpbWVUb0hhcHBlbkluamVjdGFibGUgfSBmcm9tIFwiLi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IERyb3BwYWJsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCBjb25zdCBkcm9wcGFibGVQbHVnaW4gPSBnZXRQbHVnaW48RHJvcHBhYmxlUGx1Z2luUHJvcHM+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRkcm9wcGFibGUpIHtcbiAgICByZXR1cm4geyAkZHJvcHBhYmxlOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IHsgY29udGV4dCwgb25Ecm9wIH0gPSBwcm9wcy4kZHJvcHBhYmxlO1xuXG4gIGNvbnN0IGRyYWdnZWRJdGVtU3RhdGUgPSB1c2VTeW5jSW5qZWN0KGRyYWdnZWRJdGVtU3RhdGVJbmplY3RhYmxlLCBjb250ZXh0KTtcbiAgY29uc3Qgc29tZSA9IHVzZVN5bmNJbmplY3QobWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlKTtcblxuICBjb25zdCBkcmFnZ2VkSXRlbSA9IGRyYWdnZWRJdGVtU3RhdGUuZ2V0KCk7XG5cbiAgcmV0dXJuIHtcbiAgICBvbkRyYWdPdmVyOiAoZXZlbnQ6IFJlYWN0LkRyYWdFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHByb3BzLm9uRHJhZ092ZXI/LihldmVudCk7XG5cbiAgICAgIGlmIChkcmFnZ2VkSXRlbSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBvbkRyb3A6IChldmVudDogUmVhY3QuRHJhZ0V2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgcHJvcHMub25Ecm9wPy4oZXZlbnQpO1xuXG4gICAgICBpZiAoZHJhZ2dlZEl0ZW0pIHtcbiAgICAgICAgc29tZSgoKSA9PiB7XG4gICAgICAgICAgb25Ecm9wKGRyYWdnZWRJdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcblxuICAgICRkcm9wcGFibGU6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHJhbnNpdGlvblN0eWxlcyBmcm9tIFwiLi90cmFuc2l0aW9uLm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIFRyYW5zaXRpb25QbHVnaW5Qcm9wcyA9IHsgJHRyYW5zaXRpb24/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2l0aW9uUGx1Z2luID0gZ2V0UGx1Z2luPFRyYW5zaXRpb25QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCB7IFt0cmFuc2l0aW9uU3R5bGVzLnRyYW5zaXRpb25dOiAhIXByb3BzLiR0cmFuc2l0aW9uIH1dLFxuICAkdHJhbnNpdGlvbjogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgb2Zmc2V0U3R5bGVzIGZyb20gXCIuL29mZnNldC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBEaXJlY3Rpb24gfSBmcm9tIFwiLi4vX3NoYXJlZC9kaXJlY3Rpb25zXCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBPZmZzZXRQbHVnaW5Qcm9wcyA9IHsgJG9mZnNldD86IHsgZGlyZWN0aW9uOiBEaXJlY3Rpb247IHNpemU6IFRTaGlydFNpemUgfSB9O1xuXG5leHBvcnQgY29uc3Qgb2Zmc2V0UGx1Z2luID0gZ2V0UGx1Z2luPE9mZnNldFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRvZmZzZXQpIHtcbiAgICByZXR1cm4geyAkb2Zmc2V0OiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIG9mZnNldFN0eWxlc1tgb2Zmc2V0X18ke3Byb3BzLiRvZmZzZXQuZGlyZWN0aW9ufS0tJHtwcm9wcy4kb2Zmc2V0LnNpemV9YF1dLFxuXG4gICAgJG9mZnNldDogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBvZmZzZXRTdHlsZXMgZnJvbSBcIi4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IERpcmVjdGlvbiB9IGZyb20gXCIuLi9fc2hhcmVkL2RpcmVjdGlvbnNcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbmV4cG9ydCB0eXBlIE9mZnNldENoaWxkcmVuUGx1Z2luUHJvcHMgPSB7ICRvZmZzZXRDaGlsZHJlbj86IHsgZGlyZWN0aW9uOiBEaXJlY3Rpb247IHNpemU6IFRTaGlydFNpemUgfSB9O1xuXG5leHBvcnQgY29uc3Qgb2Zmc2V0Q2hpbGRyZW5QbHVnaW4gPSBnZXRQbHVnaW48T2Zmc2V0Q2hpbGRyZW5QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgaWYgKCFwcm9wcy4kb2Zmc2V0Q2hpbGRyZW4pIHtcbiAgICByZXR1cm4geyAkb2Zmc2V0Q2hpbGRyZW46IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgICAgb2Zmc2V0U3R5bGVzW2BvZmZzZXQtY2hpbGRyZW5fXyR7cHJvcHMuJG9mZnNldENoaWxkcmVuLmRpcmVjdGlvbn0tLSR7cHJvcHMuJG9mZnNldENoaWxkcmVuLnNpemV9YF0sXG4gICAgXSxcblxuICAgICRvZmZzZXRDaGlsZHJlbjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBoaWRkZW5TdHlsZXMgZnJvbSBcIi4vaGlkZGVuLm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIEhpZGRlblBsdWdpblByb3BzID0geyAkaGlkZGVuPzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgaGlkZGVuUGx1Z2luID0gZ2V0UGx1Z2luPEhpZGRlblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHsgW2hpZGRlblN0eWxlcy5oaWRkZW5dOiAhIXByb3BzLiRoaWRkZW4gfV0sXG5cbiAgJGhpZGRlbjogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgbWFyZ2luU3R5bGVzIGZyb20gXCIuL21hcmdpbi5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBEaXJlY3Rpb25hbE1hcmdpbiA9IHtcbiAgdG9wPzogVFNoaXJ0U2l6ZTtcbiAgYm90dG9tPzogVFNoaXJ0U2l6ZTtcbiAgbGVmdD86IFRTaGlydFNpemU7XG4gIHJpZ2h0PzogVFNoaXJ0U2l6ZTtcbiAgaG9yaXpvbnRhbD86IFRTaGlydFNpemU7XG4gIHZlcnRpY2FsPzogVFNoaXJ0U2l6ZTtcbn07XG5cbmV4cG9ydCB0eXBlIE1hcmdpblBsdWdpblByb3BzID0geyAkbWFyZ2luPzogYm9vbGVhbiB8IERpcmVjdGlvbmFsTWFyZ2luIHwgVFNoaXJ0U2l6ZSB8IFwiYXV0b1wiIH07XG5cbmV4cG9ydCBjb25zdCBtYXJnaW5QbHVnaW4gPSBnZXRQbHVnaW48TWFyZ2luUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJG1hcmdpbikge1xuICAgIHJldHVybiB7ICRtYXJnaW46IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgbWFyZ2luID0gcHJvcHMuJG1hcmdpbiA9PT0gdHJ1ZSA/IFwieHNcIiA6IHByb3BzLiRtYXJnaW47XG5cbiAgaWYgKGlzU3RyaW5nKG1hcmdpbikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIG1hcmdpblN0eWxlc1tgbWFyZ2luLS0ke21hcmdpbn1gXV0sXG4gICAgICAkbWFyZ2luOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHRvcFNpemUgPSBtYXJnaW4udG9wIHx8IG1hcmdpbi52ZXJ0aWNhbDtcbiAgY29uc3QgYm90dG9tU2l6ZSA9IG1hcmdpbi5ib3R0b20gfHwgbWFyZ2luLnZlcnRpY2FsO1xuICBjb25zdCByaWdodFNpemUgPSBtYXJnaW4ucmlnaHQgfHwgbWFyZ2luLmhvcml6b250YWw7XG4gIGNvbnN0IGxlZnRTaXplID0gbWFyZ2luLmxlZnQgfHwgbWFyZ2luLmhvcml6b250YWw7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgICAgdG9wU2l6ZSA/IG1hcmdpblN0eWxlc1tgbWFyZ2luX190b3AtLSR7dG9wU2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIHJpZ2h0U2l6ZSA/IG1hcmdpblN0eWxlc1tgbWFyZ2luX19yaWdodC0tJHtyaWdodFNpemV9YF0gOiB1bmRlZmluZWQsXG4gICAgICBib3R0b21TaXplID8gbWFyZ2luU3R5bGVzW2BtYXJnaW5fX2JvdHRvbS0tJHtib3R0b21TaXplfWBdIDogdW5kZWZpbmVkLFxuICAgICAgbGVmdFNpemUgPyBtYXJnaW5TdHlsZXNbYG1hcmdpbl9fbGVmdC0tJHtsZWZ0U2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICBdLFxuICAgICRtYXJnaW46IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdmlzdWFsbHlIaWRkZW5TdHlsZXMgZnJvbSBcIi4vdmlzdWFsbHktaGlkZGVuLm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIFZpc3VhbGx5SGlkZGVuUGx1Z2luUHJvcHMgPSB7ICR2aXN1YWxseUhpZGRlbj86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IHZpc3VhbGx5SGlkZGVuUGx1Z2luID0gZ2V0UGx1Z2luPFZpc3VhbGx5SGlkZGVuUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgeyBbdmlzdWFsbHlIaWRkZW5TdHlsZXNbXCJ2aXN1YWxseS1oaWRkZW5cIl1dOiAhIXByb3BzLiR2aXN1YWxseUhpZGRlbiB9XSxcblxuICAkdmlzdWFsbHlIaWRkZW46IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IG92ZXJmbG93U3R5bGVzIGZyb20gXCIuL292ZXJmbG93Lm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIE92ZXJmbG93ID0gXCJoaWRkZW5cIiB8IFwic2Nyb2xsXCIgfCBcImF1dG9cIiB8IFwidmlzaWJsZVwiO1xuXG5leHBvcnQgdHlwZSBPdmVyZmxvd1BsdWdpblByb3BzID0geyAkb3ZlcmZsb3c/OiBPdmVyZmxvdyB8IHsgeD86IE92ZXJmbG93OyB5PzogT3ZlcmZsb3c7IGhpZGVTY3JvbGxiYXI/OiBib29sZWFuIH0gfTtcblxuZXhwb3J0IGNvbnN0IG92ZXJmbG93UGx1Z2luID0gZ2V0UGx1Z2luPE92ZXJmbG93UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0ICRvdmVyZmxvdyA9IHByb3BzLiRvdmVyZmxvdztcblxuICBpZiAoISRvdmVyZmxvdykge1xuICAgIHJldHVybiB7ICRvdmVyZmxvdzogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCB4ID0gdHlwZW9mICRvdmVyZmxvdyA9PT0gXCJzdHJpbmdcIiA/ICRvdmVyZmxvdyA6ICRvdmVyZmxvdy54O1xuICBjb25zdCB5ID0gdHlwZW9mICRvdmVyZmxvdyA9PT0gXCJzdHJpbmdcIiA/ICRvdmVyZmxvdyA6ICRvdmVyZmxvdy55O1xuICBjb25zdCBoaWRlU2Nyb2xsYmFyID0gdHlwZW9mICRvdmVyZmxvdyA9PT0gXCJzdHJpbmdcIiA/IGZhbHNlIDogJG92ZXJmbG93LmhpZGVTY3JvbGxiYXI7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuXG4gICAgICB4ID8gb3ZlcmZsb3dTdHlsZXNbYG92ZXJmbG93X194LS0ke3h9YF0gOiB1bmRlZmluZWQsXG4gICAgICB5ID8gb3ZlcmZsb3dTdHlsZXNbYG92ZXJmbG93X195LS0ke3l9YF0gOiB1bmRlZmluZWQsXG4gICAgICB7IFtvdmVyZmxvd1N0eWxlc1tcIm92ZXJmbG93LS1oaWRlLXNjcm9sbGJhclwiXV06IGhpZGVTY3JvbGxiYXIgfSxcbiAgICBdLFxuXG4gICAgJG92ZXJmbG93OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgZmxleENoaWxkU3R5bGVzIGZyb20gXCIuL2ZsZXgtY2hpbGQubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBzdHlsZVBsdWdpbiB9IGZyb20gXCIuLi9zdHlsZS9zdHlsZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5cbi8qKlxuICogLSBgdHJ1ZWA6IHNoYXJlIHRoZSBwYXJlbnQncyByZW1haW5pbmcgc3BhY2UgZXF1YWxseSAoYGZsZXg6IDEgMSAwYCkuXG4gKiAtIGBcInNocmlua2FibGVcImA6IGFkZGl0aW9uYWxseSByZW1vdmUgdGhlIGl0ZW0ncyBpbXBsaWNpdCBjb250ZW50LXNpemVkXG4gKiAgIG1pbmltdW0gKGBtaW4taGVpZ2h0OiBhdXRvYCAvIGBtaW4td2lkdGg6IGF1dG9gKSwgc28gaXQgY2FuIGFjdHVhbGx5IGJlXG4gKiAgIHNpemVkIHRvIHRoZSByZW1haW5pbmcgc3BhY2UgaW4gYSBjb25zdHJhaW5lZCBsYXlvdXQgXHUyMDE0IHJlcXVpcmVkIGZvciBhXG4gKiAgIGRlc2NlbmRhbnQgdG8gc2Nyb2xsIGludGVybmFsbHkgaW5zdGVhZCBvZiBpbmZsYXRpbmcgZXZlcnkgYW5jZXN0b3IuXG4gKiAtIGEgbnVtYmVyOiBsaWtlIGBcInNocmlua2FibGVcImAsIGJ1dCB0YWtpbmcgdGhhdCBtYW55IHNoYXJlcyBvZiB0aGVcbiAqICAgcmVtYWluaW5nIHNwYWNlIGluc3RlYWQgb2Ygb25lIChgZmxleC1ncm93YCksIGZvciB3ZWlnaHRlZCBzcGxpdHMgYmV0d2VlblxuICogICBzaWJsaW5ncy5cbiAqIC0gYFwiZml4ZWRcImA6IHRoZSBvcHBvc2l0ZSBcdTIwMTQga2VlcCB0aGUgaXRlbSdzIG93biBzaXplIChgZmxleC1zaHJpbms6IDBgKSxcbiAqICAgb3B0aW5nIG91dCBvZiB0aGUgc2hyaW5rIG5lZ290aWF0aW9uIGVudGlyZWx5IChlLmcuIGEgY29udGVudC1odWdnaW5nXG4gKiAgIHBhbmVsIG5leHQgdG8gYSBmaWxsaW5nIG9uZSkuXG4gKi9cbmV4cG9ydCB0eXBlIEZsZXhDaGlsZFBsdWdpblByb3BzID0geyAkZmxleENoaWxkPzogYm9vbGVhbiB8IG51bWJlciB8IFwic2hyaW5rYWJsZVwiIHwgXCJmaXhlZFwiIH07XG5cbmV4cG9ydCBjb25zdCBmbGV4Q2hpbGRQbHVnaW4gPSBnZXRQbHVnaW48RmxleENoaWxkUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luLCB0eXBlb2Ygc3R5bGVQbHVnaW5dPihcbiAgKHByb3BzKSA9PiB7XG4gICAgY29uc3Qgd2VpZ2h0ID0gdHlwZW9mIHByb3BzLiRmbGV4Q2hpbGQgPT09IFwibnVtYmVyXCIgPyBwcm9wcy4kZmxleENoaWxkIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHNocmlua2FibGUgPSBwcm9wcy4kZmxleENoaWxkID09PSBcInNocmlua2FibGVcIiB8fCB3ZWlnaHQgIT09IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICAkY2xhc3NOYW1lOiBbXG4gICAgICAgIHByb3BzLiRmbGV4Q2hpbGQgPT09IHRydWUgfHwgc2hyaW5rYWJsZSA/IGZsZXhDaGlsZFN0eWxlc1tcImZsZXgtY2hpbGRcIl0gOiB1bmRlZmluZWQsXG4gICAgICAgIHNocmlua2FibGUgPyBmbGV4Q2hpbGRTdHlsZXNbXCJmbGV4LWNoaWxkLS1zaHJpbmthYmxlXCJdIDogdW5kZWZpbmVkLFxuICAgICAgICBwcm9wcy4kZmxleENoaWxkID09PSBcImZpeGVkXCIgPyBmbGV4Q2hpbGRTdHlsZXNbXCJmbGV4LWNoaWxkLS1maXhlZFwiXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIF0sXG4gICAgICAkc3R5bGU6IHdlaWdodCA9PT0gdW5kZWZpbmVkID8gcHJvcHMuJHN0eWxlIDogeyAuLi5wcm9wcy4kc3R5bGUsIGZsZXhHcm93OiB3ZWlnaHQgfSxcbiAgICAgICRmbGV4Q2hpbGQ6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9LFxuKTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IGdyYXlzY2FsZVN0eWxlcyBmcm9tIFwiLi9ncmF5c2NhbGUubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgR3JheXNjYWxlUGx1Z2luUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBGdWxseSBkZXNhdHVyYXRlcyB0aGUgZWxlbWVudCAoYGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpYCkgd2hlbiBgdHJ1ZWAgXHUyMDE0IHNvXG4gICAqIGV2ZW4gZml4ZWQtY29sb3VyIGNvbnRlbnQgKGUuZy4gYnJhbmQgbG9nb3MpIGdyZXlzIG91dCwgbm90IGp1c3QgdGhlbWVkXG4gICAqIGNvbG91cnMuIENvbWJpbmUgd2l0aCBgJGZhZGVkYCB0byBkZS1lbXBoYXNpc2UgYW4gdW5hdmFpbGFibGUgaXRlbS5cbiAgICovXG4gICRncmF5c2NhbGU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IGdyYXlzY2FsZVBsdWdpbiA9IGdldFBsdWdpbjxHcmF5c2NhbGVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwcm9wcy4kZ3JheXNjYWxlID8gZ3JheXNjYWxlU3R5bGVzLmdyYXlzY2FsZSA6IHVuZGVmaW5lZF0sXG4gICRncmF5c2NhbGU6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB0eXBlIHsgc3R5bGVQbHVnaW4gfSBmcm9tIFwiLi4vc3R5bGUvc3R5bGVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdGludFN0eWxlcyBmcm9tIFwiLi90aW50Lm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIFRpbnRQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgZWxlbWVudCdzIChhbmQgaXRzIGRlc2NlbmRhbnRzJykgU1ZHIGBmaWxsYCB0byB0aGlzIGNvbG91ciwgdmlhIGEgQ1NTIGN1c3RvbVxuICAgKiBwcm9wZXJ0eSBcdTIwMTQgYHN0cm9rZWAgaXMgbGVmdCB1bnRvdWNoZWQsIHNvIHN0cm9rZWQgZGV0YWlscyBzdXJ2aXZlLiBVbmxpa2UgYCRncmF5c2NhbGVgICh3aGljaCBvbmx5XG4gICAqIGRlc2F0dXJhdGVzKSB0aGlzIHBhaW50cyB0aGUgc2hhcGUgYW4gZXhhY3QgZmxhdCBjb2xvdXIgd2hpbGUgcmVzcGVjdGluZyB0cmFuc3BhcmVuY3ksIHNvIGFcbiAgICogZml4ZWQtY29sb3VyIGJyYW5kIG1hcmsgY2FuIGJlIHRpbnRlZCAoZS5nLiBhbiBBSS10b29sIGxvZ28gdGludGVkIHRvIHRoZSBjbHVzdGVyIGNvbG91cikuIExlYXZlXG4gICAqIHVuc2V0IHRvIHJlbmRlciB0aGUgZWxlbWVudCdzIG5hdHVyYWwgY29sb3Vycy5cbiAgICovXG4gICR0aW50Pzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IHRpbnRQbHVnaW4gPSBnZXRQbHVnaW48VGludFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbiwgdHlwZW9mIHN0eWxlUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgcHJvcHMuJHRpbnQgPyB0aW50U3R5bGVzLnRpbnQgOiB1bmRlZmluZWRdLFxuICAvLyBUaGUgdGludCBjb2xvdXIgaXMgZXhwb3NlZCBhcyBhIGN1c3RvbSBwcm9wZXJ0eSB0aGUgYC50aW50YCBjbGFzcyByZWFkcyAoYGZpbGw6IHZhcigtLWVsZW1lbnQtdGludClgKS5cbiAgJHN0eWxlOiBwcm9wcy4kdGludCA/ICh7IC4uLnByb3BzLiRzdHlsZSwgXCItLWVsZW1lbnQtdGludFwiOiBwcm9wcy4kdGludCB9IGFzIFJlYWN0LkNTU1Byb3BlcnRpZXMpIDogcHJvcHMuJHN0eWxlLFxuICAkdGludDogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgZmFkZWRTdHlsZXMgZnJvbSBcIi4vZmFkZWQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRmFkZWRQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqXG4gICAqIEZhZGVzIHRoZSBlbGVtZW50IChgb3BhY2l0eTogNTAlYCkgd2hlbiBgdHJ1ZWAuIENvbWJpbmUgd2l0aCBgJGdyYXlzY2FsZWBcbiAgICogdG8gZGUtZW1waGFzaXNlIGFuIHVuYXZhaWxhYmxlIGl0ZW0uXG4gICAqL1xuICAkZmFkZWQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IGZhZGVkUGx1Z2luID0gZ2V0UGx1Z2luPEZhZGVkUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgcHJvcHMuJGZhZGVkID8gZmFkZWRTdHlsZXMuZmFkZWQgOiB1bmRlZmluZWRdLFxuICAkZmFkZWQ6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4sIHR5cGUgQ29udHJpYnV0ZVByb3BzLCB0eXBlIENvbnRyaWJ1dGVSZWYgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZm9jdXNhYmxlSXRlbVN0YXRlSW5qZWN0YWJsZSB9IGZyb20gXCIuL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgdHlwZSB7IElPYnNlcnZhYmxlVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgdXNlVXBkYXRlV2hlblByb3BzQ2hhbmdlIH0gZnJvbSBcIi4vX3ByaXZhdGUvdXNlLXVwZGF0ZS13aGVuLXByb3BzLWNoYW5nZVwiO1xuaW1wb3J0IHsgdXNlQ2xlYW51cE9uVW5tb3VudCB9IGZyb20gXCIuL19wcml2YXRlL3VzZS1jbGVhbnVwLW9uLXVubW91bnRcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuL2dldC1mb2N1c2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmROYXZpZ2F0aW9uIH0gZnJvbSBcIi4vX3ByaXZhdGUvdXNlLWtleWJvYXJkLW5hdmlnYXRpb25cIjtcbmltcG9ydCB7IGhhbmRsZUZvY3VzRm9yIH0gZnJvbSBcIi4vX3ByaXZhdGUvaGFuZGxlLWZvY3VzXCI7XG5pbXBvcnQgeyBoYW5kbGVCbHVyRm9yIH0gZnJvbSBcIi4vX3ByaXZhdGUvaGFuZGxlLWJsdXJcIjtcbmltcG9ydCB7IHVzZVByb2dyYW1tYXRpY0ZvY3VzaW5nIH0gZnJvbSBcIi4vX3ByaXZhdGUvdXNlLXByb2dyYW1tYXRpYy1mb2N1c2luZ1wiO1xuaW1wb3J0IHR5cGUgeyByZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuXG5leHBvcnQgdHlwZSBGb2N1c2FibGVQbHVnaW5Qcm9wczxULCBGb2N1c2VkSXRlbSA9IGFueT4gPSB7XG4gICRmb2N1c2FibGU/OiB7XG4gICAgY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT47XG4gICAgaXRlbTogRm9jdXNlZEl0ZW07XG4gICAgb3JkZXJOdW1iZXI/OiBudW1iZXI7XG4gIH07XG5cbiAgb25Gb2N1cz86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPFQ+O1xuICBvbkJsdXI/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxUPjtcbiAgb25LZXlEb3duPzogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXI8VD47XG4gIHRhYkluZGV4PzogSFRNTEVsZW1lbnRbXCJ0YWJJbmRleFwiXTtcbn07XG5cbnR5cGUgRm9jdXNhYmxlV3JhcHBlclByb3BzID0ge1xuICByZWFkb25seSBmb2N1c2FibGU6IHtcbiAgICBjb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PGFueT47XG4gICAgaXRlbTogYW55O1xuICAgIG9yZGVyTnVtYmVyPzogbnVtYmVyO1xuICB9O1xuICByZWFkb25seSB0YWJJbmRleDogbnVtYmVyO1xuICByZWFkb25seSBvbkZvY3VzPzogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8YW55PjtcbiAgcmVhZG9ubHkgb25CbHVyPzogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8YW55PjtcbiAgcmVhZG9ubHkgb25LZXlEb3duPzogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXI8YW55PjtcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVJlZjogQ29udHJpYnV0ZVJlZjtcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVByb3BzOiBDb250cmlidXRlUHJvcHM7XG4gIHJlYWRvbmx5IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBGb2N1c2FibGVXcmFwcGVyQ29tcG9uZW50ID0gKHtcbiAgZm9jdXNhYmxlLFxuICB0YWJJbmRleCxcbiAgb25Gb2N1cyxcbiAgb25CbHVyLFxuICBvbktleURvd24sXG4gIGNvbnRyaWJ1dGVSZWYsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBGb2N1c2FibGVXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgeyBjb250ZXh0OiBmb2N1c2FibGVDb250ZXh0LCBpdGVtOiBmb2N1c2FibGVJdGVtLCBvcmRlck51bWJlciB9ID0gZm9jdXNhYmxlO1xuXG4gIGNvbnN0IFtlbGVtZW50LCBzZXRFbGVtZW50XSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnRyaWJ1dGVSZWYoc2V0RWxlbWVudCk7XG5cbiAgY29uc3QgaHRtbEVsZW1lbnRSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQ+KHVuZGVmaW5lZCk7XG4gIGh0bWxFbGVtZW50UmVmLmN1cnJlbnQgPSAoZWxlbWVudCA/PyB1bmRlZmluZWQpIGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGh0bWxFbGVtZW50SXNGb2N1c2VkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3Qgb2xkU3RhdGVSZWYgPSB1c2VSZWY8SU9ic2VydmFibGVWYWx1ZTx1bmtub3duPj4odW5kZWZpbmVkKTtcblxuICBjb25zdCBzdGF0ZSA9IHVzZVN5bmNJbmplY3QoZm9jdXNhYmxlSXRlbVN0YXRlSW5qZWN0YWJsZSwgZm9jdXNhYmxlQ29udGV4dCk7XG5cbiAgdXNlVXBkYXRlV2hlblByb3BzQ2hhbmdlKGh0bWxFbGVtZW50SXNGb2N1c2VkUmVmLCBvbGRTdGF0ZVJlZiwgc3RhdGUsIGZvY3VzYWJsZUl0ZW0pO1xuICB1c2VDbGVhbnVwT25Vbm1vdW50KGh0bWxFbGVtZW50SXNGb2N1c2VkUmVmLCBvbGRTdGF0ZVJlZik7XG4gIHVzZVByb2dyYW1tYXRpY0ZvY3VzaW5nKGZvY3VzYWJsZUNvbnRleHQsIGZvY3VzYWJsZUl0ZW0sIGh0bWxFbGVtZW50UmVmKTtcblxuICBjb25zdCBoYW5kbGVGb2N1cyA9IGhhbmRsZUZvY3VzRm9yKHN0YXRlLCBmb2N1c2FibGVJdGVtLCBmb2N1c2FibGVDb250ZXh0LCBodG1sRWxlbWVudElzRm9jdXNlZFJlZik7XG4gIGNvbnN0IGhhbmRsZUJsdXIgPSBoYW5kbGVCbHVyRm9yKGZvY3VzYWJsZUNvbnRleHQsIHN0YXRlLCBodG1sRWxlbWVudElzRm9jdXNlZFJlZik7XG5cbiAgY29uc3Qga2V5Ym9hcmROYXZpZ2F0aW9uID0gdXNlS2V5Ym9hcmROYXZpZ2F0aW9uKFxuICAgIGZvY3VzYWJsZUNvbnRleHQuaXNLZXlib2FyZE5hdmlnYWJsZSA/IGZvY3VzYWJsZUNvbnRleHQgOiB1bmRlZmluZWQsXG4gICAgZm9jdXNhYmxlSXRlbSxcbiAgICBvcmRlck51bWJlcixcbiAgICBlbGVtZW50LFxuICApO1xuXG4gIGNvbnRyaWJ1dGVQcm9wcyh7XG4gICAgdGFiSW5kZXgsXG5cbiAgICBvbkZvY3VzOiAoZTogUmVhY3QuRm9jdXNFdmVudDxhbnk+KSA9PiB7XG4gICAgICBoYW5kbGVGb2N1cyhlKTtcbiAgICAgIGtleWJvYXJkTmF2aWdhdGlvbi5vbkZvY3VzKCk7XG4gICAgICBvbkZvY3VzPy4oZSk7XG4gICAgfSxcblxuICAgIG9uQmx1cjogKGU6IFJlYWN0LkZvY3VzRXZlbnQ8YW55PikgPT4ge1xuICAgICAgaWYgKCFodG1sRWxlbWVudFJlZi5jdXJyZW50Py5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICAgIGhhbmRsZUJsdXIoZSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihlKTtcbiAgICB9LFxuXG4gICAgb25LZXlEb3duOiAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxhbnk+KSA9PiB7XG4gICAgICBvbktleURvd24/LihlKTtcbiAgICAgIGtleWJvYXJkTmF2aWdhdGlvbi5vbktleURvd24oZSk7XG4gICAgfSxcblxuICAgIG9uTW91c2VFbnRlcjoga2V5Ym9hcmROYXZpZ2F0aW9uLmZvY3VzV2hhdFRoZVBvaW50ZXJJc09uLFxuICAgIG9uTW91c2VNb3ZlOiBrZXlib2FyZE5hdmlnYXRpb24uZm9jdXNXaGF0VGhlUG9pbnRlcklzT24sXG4gIH0pO1xuXG4gIHJldHVybiA8PntjaGlsZHJlbn08Lz47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZm9jdXNhYmxlUGx1Z2luPFQ+KCkge1xuICByZXR1cm4gZ2V0UGx1Z2luPEZvY3VzYWJsZVBsdWdpblByb3BzPFQ+LCBbUmV0dXJuVHlwZTx0eXBlb2YgcmVmUGx1Z2luPFQ+Pl0+KChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgJGZvY3VzYWJsZSwgdGFiSW5kZXgsIG9uQmx1ciwgb25Gb2N1cywgb25LZXlEb3duIH0gPSBwcm9wcztcblxuICAgIGlmICghJGZvY3VzYWJsZSkge1xuICAgICAgcmV0dXJuIHsgJGZvY3VzYWJsZTogdW5kZWZpbmVkIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICRmb2N1c2FibGU6IHVuZGVmaW5lZCxcbiAgICAgICR3cmFwcGVyOiB7XG4gICAgICAgIENvbXBvbmVudDogRm9jdXNhYmxlV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICBmb2N1c2FibGU6ICRmb2N1c2FibGUsXG4gICAgICAgICAgdGFiSW5kZXg6IHRhYkluZGV4ID8/IC0xLFxuICAgICAgICAgIG9uRm9jdXMsXG4gICAgICAgICAgb25CbHVyLFxuICAgICAgICAgIG9uS2V5RG93bixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgYXNzZXJ0RGVmaW5lZCB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgdHlwZSB7IElPYnNlcnZhYmxlVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgcnVuSW5BY3Rpb24gfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB0eXBlIE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IHVzZVVwZGF0ZVdoZW5Qcm9wc0NoYW5nZSA9IChcbiAgZm9jdXNlZFJlZjogTXV0YWJsZVJlZk9iamVjdDxib29sZWFuPixcbiAgb2xkU3RhdGVSZWY6IE11dGFibGVSZWZPYmplY3Q8SU9ic2VydmFibGVWYWx1ZTx1bmtub3duPiB8IHVuZGVmaW5lZD4sXG4gIHN0YXRlOiBJT2JzZXJ2YWJsZVZhbHVlPHVua25vd24+LFxuICBmb2N1c2FibGVJdGVtOiB1bmtub3duLFxuKSA9PiB7XG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IHJlbW92ZSB3aGVuIHBvc3NpYmxlXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBpZiAoZm9jdXNlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgICAgICBzdGF0ZS5zZXQoZm9jdXNhYmxlSXRlbSk7XG5cbiAgICAgICAgICBjb25zdCBjb250ZXh0SGFzQ2hhbmdlZCA9IG9sZFN0YXRlUmVmLmN1cnJlbnQgIT09IHN0YXRlO1xuXG4gICAgICAgICAgaWYgKGNvbnRleHRIYXNDaGFuZ2VkICYmIG9sZFN0YXRlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGFzc2VydERlZmluZWQob2xkU3RhdGVSZWYuY3VycmVudCk7XG4gICAgICAgICAgICBvbGRTdGF0ZVJlZi5jdXJyZW50LnNldCh1bmRlZmluZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIG9sZFN0YXRlUmVmLmN1cnJlbnQgPSBzdGF0ZTtcbiAgICB9LFxuICAgIC8vIE5vdGU6IGZvY3VzZWRSZWYgYW5kIG9sZFN0YXRlUmVmIG5ldmVyIGNoYW5nZS5cbiAgICBbZm9jdXNhYmxlSXRlbSwgc3RhdGVdLFxuICApO1xufTtcbiIsICJpbXBvcnQgeyBhc3NlcnREZWZpbmVkIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIHsgSU9ic2VydmFibGVWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHR5cGUgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgdXNlQ2xlYW51cE9uVW5tb3VudCA9IChcbiAgZm9jdXNlZFJlZjogTXV0YWJsZVJlZk9iamVjdDxib29sZWFuPixcbiAgb2xkU3RhdGVSZWY6IE11dGFibGVSZWZPYmplY3Q8SU9ic2VydmFibGVWYWx1ZTx1bmtub3duPiB8IHVuZGVmaW5lZD4sXG4pID0+IHtcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29ycmVjdG5lc3MvdXNlRXhoYXVzdGl2ZURlcGVuZGVuY2llczogcmVtb3ZlIHdoZW4gcG9zc2libGVcbiAgdXNlRWZmZWN0KFxuICAgICgpID0+ICgpID0+IHtcbiAgICAgIGlmIChmb2N1c2VkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcnVuSW5BY3Rpb24oKCkgPT4ge1xuICAgICAgICAgIGFzc2VydERlZmluZWQob2xkU3RhdGVSZWYuY3VycmVudCk7XG4gICAgICAgICAgb2xkU3RhdGVSZWYuY3VycmVudC5zZXQodW5kZWZpbmVkKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIC8vIE5vdGU6IGZvY3VzZWRSZWYgYW5kIG9sZFN0YXRlUmVmIG5ldmVyIGNoYW5nZS5cbiAgICBbXSxcbiAgKTtcbn07XG4iLCAiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7XG4gIGtleWJvYXJkTmF2aWdhdGlvblN0YXRlSW5qZWN0YWJsZSxcbiAgdHlwZSBOYXZpZ2FibGVFbnRyeSxcbn0gZnJvbSBcIi4uL19zaGFyZWQva2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dCwgS2V5Ym9hcmROYXZpZ2F0aW9uT3JpZW50YXRpb24gfSBmcm9tIFwiLi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5cbnR5cGUgS2V5Ym9hcmROYXZpZ2F0aW9uID0ge1xuICByZWFkb25seSBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Gb2N1czogKCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgZm9jdXNXaGF0VGhlUG9pbnRlcklzT246IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IG5vS2V5Ym9hcmROYXZpZ2F0aW9uOiBLZXlib2FyZE5hdmlnYXRpb24gPSB7XG4gIG9uS2V5RG93bjogKCkgPT4ge30sXG4gIG9uRm9jdXM6ICgpID0+IHt9LFxuICBmb2N1c1doYXRUaGVQb2ludGVySXNPbjogKCkgPT4ge30sXG59O1xuXG5leHBvcnQgY29uc3QgdXNlS2V5Ym9hcmROYXZpZ2F0aW9uID0gKFxuICBjb250ZXh0OiBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8YW55PiB8IHVuZGVmaW5lZCxcbiAgaXRlbTogdW5rbm93bixcbiAgb3JkZXJOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsLFxuKTogS2V5Ym9hcmROYXZpZ2F0aW9uID0+IHtcbiAgY29uc3QgbmF2aWdhdGlvbiA9IHVzZVN5bmNJbmplY3Qoa2V5Ym9hcmROYXZpZ2F0aW9uU3RhdGVJbmplY3RhYmxlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghY29udGV4dCB8fCAhZWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVudHJ5OiBOYXZpZ2FibGVFbnRyeSA9IHsgaXRlbSwgb3JkZXJOdW1iZXI6IG9yZGVyTnVtYmVyID8/IDAsIGVsZW1lbnQgfTtcblxuICAgIG5hdmlnYXRpb24ucmVnaXN0ZXIoY29udGV4dCwgZW50cnkpO1xuXG4gICAgY29uc3QgZm9jdXNXaGF0U2hvdWxkSGF2ZUZvY3VzID0gKCkgPT4ge1xuICAgICAgLy8gT25seSB3aXRoaW4gdGhlIHdpbmRvdyB0aGUgdXNlciBpcyBhY3R1YWxseSBpbi4gTGVucyBEZXNrdG9wIGlzIG1vcmUgdGhhbiBvbmUgd2luZG93LFxuICAgICAgLy8gYW5kIGZvY3VzaW5nIGFuIGVsZW1lbnQgb2YgYSB3aW5kb3cgdGhhdCBkb2VzIG5vdCBoYXZlIGZvY3VzIGlzIGhvdyBhIGJyb3dzZXIgaXMgYXNrZWRcbiAgICAgIC8vIHRvIGJyaW5nIHRoYXQgd2luZG93IHRvIHRoZSBmcm9udDogYSBsaXN0IHVwZGF0aW5nIGluIHRoZSBhcHBsaWNhdGlvbiB3aW5kb3cgd2hpbGUgdGhlXG4gICAgICAvLyB1c2VyIHJlYWRzIGEgc3ViLXdpbmRvdyB3b3VsZCBrZWVwIHNuYXRjaGluZyB0aGUgc3ViLXdpbmRvdydzIGZvY3VzIGF3YXkuIFdoaWNoIG1lbWJlclxuICAgICAgLy8gdGhpcyB3aW5kb3cgaXMgb24gaXMgc3RpbGwgcmVtZW1iZXJlZCwgc28gaXQgbGFuZHMgdGhlcmUgd2hlbiB0aGUgdXNlciBjb21lcyBiYWNrLlxuICAgICAgaWYgKCFkb2N1bWVudC5oYXNGb2N1cygpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udGV4dEluRm9jdXMgPSBuYXZpZ2F0aW9uLmNvbnRleHRJbkZvY3VzKCk7XG5cbiAgICAgIGlmICghY29udGV4dEluRm9jdXMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnRyaWVzID0gbmF2aWdhdGlvbi5zb3J0ZWRFbnRyaWVzT2YoY29udGV4dEluRm9jdXMpO1xuXG4gICAgICAvLyBUaGUgbWVtYmVyIHRoYXQgY29udGV4dCB3YXMgbGVmdCBvbiwgc28gc3RlcHBpbmcgaW50byBzb21ldGhpbmcgYW5kIGJhY2sgb3V0IG9mIGl0IGxhbmRzXG4gICAgICAvLyB3aGVyZSBpdCBzdGFydGVkLiBPbmx5IHRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHdoZW4gaXQgd2FzIG5ldmVyIGxlZnQgYW55d2hlcmU6IHRoYXQgaXMgYVxuICAgICAgLy8gc2V0IG9mIG1lbWJlcnMgYXBwZWFyaW5nIHJhdGhlciB0aGFuIG9uZSBiZWluZyByZXR1cm5lZCB0byBcdTIwMTQgYW5kIGEgc2V0IHRoYXQgbGVhdmVzIGZvY3VzXG4gICAgICAvLyB3aGVyZSBpdCBpcyBhcyBpdCBhcHBlYXJzIGhhcyBub3RoaW5nIHRvIG9mZmVyIHVudGlsIG9uZSBvZiBpdHMgbWVtYmVycyBoYXMgaGFkIGZvY3VzLlxuICAgICAgY29uc3QgaXRlbUluRm9jdXMgPSBuYXZpZ2F0aW9uLml0ZW1JbkZvY3VzT2YoY29udGV4dEluRm9jdXMpO1xuICAgICAgY29uc3QgdG9Gb2N1cyA9XG4gICAgICAgIGVudHJpZXMuZmluZCgoY2FuZGlkYXRlKSA9PiBjYW5kaWRhdGUuaXRlbSA9PT0gaXRlbUluRm9jdXMpID8/XG4gICAgICAgIChjb250ZXh0SW5Gb2N1cy50YWtlc0ZvY3VzQXNJdEFwcGVhcnMgPyBlbnRyaWVzWzBdIDogdW5kZWZpbmVkKTtcblxuICAgICAgaWYgKHRvRm9jdXM/LmVsZW1lbnQuaXNDb25uZWN0ZWQgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gdG9Gb2N1cy5lbGVtZW50KSB7XG4gICAgICAgIHRvRm9jdXMuZWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBEZWZlcnJlZCBzbyB0aGF0IGV2ZXJ5dGhpbmcgYXBwZWFyaW5nIHRvZ2V0aGVyIGhhcyByZWdpc3RlcmVkLCBhbmQgdGhlIGxvd2VzdCBvcmRlciBudW1iZXIgb2ZcbiAgICAvLyB0aGUgd2hvbGUgc2V0IHdpbnMgcmF0aGVyIHRoYW4gd2hpY2hldmVyIGFwcGVhcmVkIGZpcnN0LlxuICAgIHZvaWQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmb2N1c1doYXRTaG91bGRIYXZlRm9jdXMpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIG5hdmlnYXRpb24uZGVyZWdpc3Rlcihjb250ZXh0LCBlbnRyeSk7XG5cbiAgICAgIHZvaWQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmb2N1c1doYXRTaG91bGRIYXZlRm9jdXMpO1xuICAgIH07XG4gIH0sIFtuYXZpZ2F0aW9uLCBjb250ZXh0LCBpdGVtLCBvcmRlck51bWJlciwgZWxlbWVudF0pO1xuXG4gIGlmICghY29udGV4dCkge1xuICAgIHJldHVybiBub0tleWJvYXJkTmF2aWdhdGlvbjtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLy8gV2hpY2ggbWVtYmVyIHRoZSBjb250ZXh0IGlzIG9uLCByZW1lbWJlcmVkIGZvciBhcyBsb25nIGFzIGl0cyBtZW1iZXJzIGFyZSB0aGVyZTogaXQgaXMgd2hhdFxuICAgIC8vIGZvY3VzIHJldHVybnMgdG8gd2hlbiBzb21ldGhpbmcgdGhhdCB0b29rIGZvY3VzIG92ZXIgZ29lcyBhd2F5IGFnYWluLlxuICAgIG9uRm9jdXM6ICgpID0+IG5hdmlnYXRpb24ubm90ZUl0ZW1JbkZvY3VzKGNvbnRleHQsIGl0ZW0pLFxuXG4gICAgLy8gV2hlcmUgdGhlIHBvaW50ZXIgZ29lcywgZm9jdXMgZ29lczogdGhlIG1lbWJlciB1bmRlciBpdCBiZWNvbWVzIHRoZSBmb2N1c2VkIG9uZSwgc28gYXJyb3dpbmdcbiAgICAvLyBvbiBmcm9tIHRoZXJlIGNvbnRpbnVlcyBmcm9tIHdoYXQgdGhlIHVzZXIgaXMgbG9va2luZyBhdCByYXRoZXIgdGhhbiBmcm9tIHdoZXJldmVyIHRoZVxuICAgIC8vIGtleWJvYXJkIHdhcyBsZWZ0LiBXaGljaGV2ZXIgb2YgdGhlIHR3byBtb3ZlZCBsYXN0IGRlY2lkZXMsIHdoaWNoIGlzIHdoeSB0aGlzIGFuc3dlcnMgdG8gdGhlXG4gICAgLy8gcG9pbnRlciBtb3ZpbmcgYXMgd2VsbCBhcyB0byBpdCBhcnJpdmluZyBcdTIwMTQgdGhlIGtleWJvYXJkIG1heSBoYXZlIHRha2VuIGZvY3VzIGVsc2V3aGVyZSB3aGlsZVxuICAgIC8vIHRoZSBwb2ludGVyIHJlc3RlZCB3aGVyZSBpdCB3YXMsIGFuZCBtb3ZpbmcgaXQgYXQgYWxsIGlzIHRoZSB1c2VyIHBvaW50aW5nIGFnYWluLlxuICAgIC8vXG4gICAgLy8gVGhlIGVsZW1lbnQgY29tZXMgZnJvbSB0aGUgZXZlbnQgcmF0aGVyIHRoYW4gZnJvbSB0aGUgcmVuZGVyIHRoaXMgaGFuZGxlciB3YXMgY3JlYXRlZCBpbjpcbiAgICAvLyB0aGUgaGFuZGxlciB0aGUgRE9NIGVuZHMgdXAgd2l0aCBpcyB0aGUgb25lIGZyb20gdGhlIGZpcnN0IHJlbmRlciwgd2hlbiB0aGVyZSB3YXMgbm8gZWxlbWVudFxuICAgIC8vIHlldCBcdTIwMTQgUmVhY3QgaGFzIG5vIHJlYXNvbiB0byByZW5kZXIgdGhlIGVsZW1lbnQgYWdhaW4gZm9yIGEgd3JhcHBlcidzIG93biBzdGF0ZS5cbiAgICBmb2N1c1doYXRUaGVQb2ludGVySXNPbjogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBob3ZlcmVkID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGhvdmVyZWQpIHtcbiAgICAgICAgaG92ZXJlZC5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgY29uc3Qgc3RlcCA9IHN0ZXBPZihldmVudC5rZXksIGNvbnRleHQub3JpZW50YXRpb24pO1xuXG4gICAgICBpZiAoc3RlcCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZW50cmllcyA9IG5hdmlnYXRpb24uc29ydGVkRW50cmllc09mKGNvbnRleHQpO1xuXG4gICAgICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBlbnRyaWVzLmZpbmRJbmRleCgoY2FuZGlkYXRlKSA9PiBjYW5kaWRhdGUuaXRlbSA9PT0gaXRlbSk7XG5cbiAgICAgIGNvbnN0IG5leHRJbmRleCA9XG4gICAgICAgIHN0ZXAgPT09IFwiZmlyc3RcIlxuICAgICAgICAgID8gMFxuICAgICAgICAgIDogc3RlcCA9PT0gXCJsYXN0XCJcbiAgICAgICAgICAgID8gZW50cmllcy5sZW5ndGggLSAxXG4gICAgICAgICAgICA6IChjdXJyZW50SW5kZXggKyBzdGVwICsgZW50cmllcy5sZW5ndGgpICUgZW50cmllcy5sZW5ndGg7XG5cbiAgICAgIGNvbnN0IG5leHQgPSBlbnRyaWVzW25leHRJbmRleF07XG5cbiAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG5leHQuZWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59O1xuXG5jb25zdCBzdGVwT2YgPSAoa2V5OiBzdHJpbmcsIG9yaWVudGF0aW9uOiBLZXlib2FyZE5hdmlnYXRpb25PcmllbnRhdGlvbikgPT4ge1xuICBzd2l0Y2ggKGtleSkge1xuICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgIHJldHVybiBvcmllbnRhdGlvbiA9PT0gXCJob3Jpem9udGFsXCIgPyB1bmRlZmluZWQgOiAxO1xuICAgIGNhc2UgXCJBcnJvd1JpZ2h0XCI6XG4gICAgICByZXR1cm4gb3JpZW50YXRpb24gPT09IFwidmVydGljYWxcIiA/IHVuZGVmaW5lZCA6IDE7XG4gICAgY2FzZSBcIkFycm93VXBcIjpcbiAgICAgIHJldHVybiBvcmllbnRhdGlvbiA9PT0gXCJob3Jpem9udGFsXCIgPyB1bmRlZmluZWQgOiAtMTtcbiAgICBjYXNlIFwiQXJyb3dMZWZ0XCI6XG4gICAgICByZXR1cm4gb3JpZW50YXRpb24gPT09IFwidmVydGljYWxcIiA/IHVuZGVmaW5lZCA6IC0xO1xuICAgIGNhc2UgXCJIb21lXCI6XG4gICAgICByZXR1cm4gXCJmaXJzdFwiIGFzIGNvbnN0O1xuICAgIGNhc2UgXCJFbmRcIjpcbiAgICAgIHJldHVybiBcImxhc3RcIiBhcyBjb25zdDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcbiIsICJpbXBvcnQgeyBydW5JbkFjdGlvbiwgdHlwZSBJT2JzZXJ2YWJsZVZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBGb2N1c2FibGVFdmVudCB9IGZyb20gXCIuL19zaGFyZWQvZm9jdXNhYmxlLWV2ZW50XCI7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVGb2N1c0ZvciA9XG4gIDxGb2N1c2FibGVJdGVtPihcbiAgICBzdGF0ZTogSU9ic2VydmFibGVWYWx1ZTxGb2N1c2FibGVJdGVtIHwgdW5kZWZpbmVkPixcbiAgICBmb2N1c2FibGVJdGVtOiBGb2N1c2FibGVJdGVtLFxuICAgIGZvY3VzYWJsZUNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNhYmxlSXRlbT4sXG4gICAgZm9jdXNlZFJlZjogTXV0YWJsZVJlZk9iamVjdDxib29sZWFuPixcbiAgKSA9PlxuICA8VD4oZXZlbnQ6IEZvY3VzYWJsZUV2ZW50PFQ+KSA9PiB7XG4gICAgY29uc3QgbmF0aXZlRXZlbnQgPSBldmVudC5uYXRpdmVFdmVudDtcblxuICAgIG5hdGl2ZUV2ZW50LmFscmVhZHlQcm9jZXNzZWRGb2N1c2FibGVDb250ZXh0cyA/Pz0gbmV3IFNldCgpO1xuXG4gICAgaWYgKG5hdGl2ZUV2ZW50LmFscmVhZHlQcm9jZXNzZWRGb2N1c2FibGVDb250ZXh0cy5oYXMoZm9jdXNhYmxlQ29udGV4dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuYXRpdmVFdmVudC5hbHJlYWR5UHJvY2Vzc2VkRm9jdXNhYmxlQ29udGV4dHMuYWRkKGZvY3VzYWJsZUNvbnRleHQpO1xuXG4gICAgZm9jdXNlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgIHN0YXRlLnNldChmb2N1c2FibGVJdGVtKTtcbiAgICB9KTtcbiAgfTtcbiIsICJpbXBvcnQgdHlwZSB7IElPYnNlcnZhYmxlVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgcnVuSW5BY3Rpb24gfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4uL2dldC1mb2N1c2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBGb2N1c2FibGVFdmVudCB9IGZyb20gXCIuL19zaGFyZWQvZm9jdXNhYmxlLWV2ZW50XCI7XG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZUJsdXJGb3IgPVxuICA8VD4oXG4gICAgZm9jdXNhYmxlQ29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxUPixcbiAgICBzdGF0ZTogSU9ic2VydmFibGVWYWx1ZTxUIHwgdW5kZWZpbmVkPixcbiAgICBmb2N1c2VkUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGJvb2xlYW4+LFxuICApID0+XG4gIDxUPihldmVudDogRm9jdXNhYmxlRXZlbnQ8VD4pID0+IHtcbiAgICBjb25zdCBuYXRpdmVFdmVudCA9IGV2ZW50Lm5hdGl2ZUV2ZW50O1xuXG4gICAgaWYgKG5hdGl2ZUV2ZW50LmFscmVhZHlQcm9jZXNzZWRGb2N1c2FibGVDb250ZXh0cz8uaGFzKGZvY3VzYWJsZUNvbnRleHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9jdXNlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG5cbiAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICBzdGF0ZS5zZXQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbiIsICJpbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZm9jdXNhYmxlSHRtbEVsZW1lbnRSZWZTZXRJbmplY3RhYmxlIH0gZnJvbSBcIi4uL19zaGFyZWQvZm9jdXNhYmxlLWh0bWwtZWxlbWVudC1yZWYtc2V0LmluamVjdGFibGVcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4uL2dldC1mb2N1c2FibGUtY29udGV4dFwiO1xuXG5leHBvcnQgY29uc3QgdXNlUHJvZ3JhbW1hdGljRm9jdXNpbmcgPSA8VD4oXG4gIGZvY3VzYWJsZUNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8VD4sXG4gIGZvY3VzYWJsZUl0ZW06IFQsXG4gIGh0bWxFbGVtZW50UmVmOiBNdXRhYmxlUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkPixcbikgPT4ge1xuICBjb25zdCBodG1sRWxlbWVudHNCeUZvY3VzYWJsZU1hcCA9IHVzZVN5bmNJbmplY3QoXG4gICAgZm9jdXNhYmxlSHRtbEVsZW1lbnRSZWZTZXRJbmplY3RhYmxlLFxuICAgIGZvY3VzYWJsZUNvbnRleHQsXG4gICAgZm9jdXNhYmxlSXRlbSxcbiAgKTtcblxuICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiByZW1vdmUgd2hlbiBwb3NzaWJsZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGh0bWxFbGVtZW50c0J5Rm9jdXNhYmxlTWFwLmFkZChodG1sRWxlbWVudFJlZik7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaHRtbEVsZW1lbnRzQnlGb2N1c2FibGVNYXAuZGVsZXRlKGh0bWxFbGVtZW50UmVmKTtcbiAgICB9O1xuICB9LCBbaHRtbEVsZW1lbnRzQnlGb2N1c2FibGVNYXAsIGZvY3VzYWJsZUl0ZW0sIGh0bWxFbGVtZW50UmVmXSk7XG59O1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBmbGV4UGx1Z2luIH0gZnJvbSBcIi4uL2ZsZXgvZmxleFwiO1xuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyBvdmVyZmxvd1BsdWdpbiB9IGZyb20gXCIuLi9vdmVyZmxvdy9vdmVyZmxvd1wiO1xuXG5leHBvcnQgdHlwZSBBcmVhUGx1Z2luUHJvcHMgPSB7ICRhcmVhPzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgYXJlYVBsdWdpbiA9IGdldFBsdWdpbjxBcmVhUGx1Z2luUHJvcHMsIFt0eXBlb2YgZmxleFBsdWdpbiwgdHlwZW9mIG92ZXJmbG93UGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IGV4cGxpY2l0RmxleFByb3BzID0gaXNPYmplY3QocHJvcHMuJGZsZXgpID8gcHJvcHMuJGZsZXggOiB7fTtcblxuICByZXR1cm4ge1xuICAgICRhcmVhOiB1bmRlZmluZWQsXG5cbiAgICAkZmxleDogcHJvcHMuJGFyZWFcbiAgICAgID8ge1xuICAgICAgICAgIHZlcnRpY2FsQWxpZ246IFwic3RyZXRjaFwiLFxuICAgICAgICAgIGhvcml6b250YWxBbGlnbjogXCJzdHJldGNoXCIsXG4gICAgICAgICAgLi4uZXhwbGljaXRGbGV4UHJvcHMsXG4gICAgICAgIH1cbiAgICAgIDogcHJvcHMuJGZsZXgsXG5cbiAgICAkb3ZlcmZsb3c6IHByb3BzLiRvdmVyZmxvdyA/PyAocHJvcHMuJGFyZWEgPyBcImhpZGRlblwiIDogdW5kZWZpbmVkKSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBmbGV4Q2hpbGRQbHVnaW4gfSBmcm9tIFwiLi4vZmxleC1jaGlsZC9mbGV4LWNoaWxkXCI7XG5cbmV4cG9ydCB0eXBlIEFyZWFDb250ZW50UGx1Z2luUHJvcHMgPSB7ICRhcmVhQ29udGVudD86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IGFyZWFDb250ZW50UGx1Z2luID0gZ2V0UGx1Z2luPEFyZWFDb250ZW50UGx1Z2luUHJvcHMsIFt0eXBlb2YgZmxleENoaWxkUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkYXJlYUNvbnRlbnQ6IHVuZGVmaW5lZCxcbiAgJGZsZXhDaGlsZDogcHJvcHMuJGFyZWFDb250ZW50ID8gdHJ1ZSA6IHByb3BzLiRmbGV4Q2hpbGQsXG59KSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuaW1wb3J0IHR5cGUgeyB3aWR0aFBsdWdpbiB9IGZyb20gXCIuLi93aWR0aC93aWR0aFwiO1xuaW1wb3J0IHR5cGUgeyBoZWlnaHRQbHVnaW4gfSBmcm9tIFwiLi4vaGVpZ2h0L2hlaWdodFwiO1xuXG5leHBvcnQgdHlwZSAkU2l6ZVByb3BzID0ge1xuICBzaXplPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJhdXRvXCI7XG4gIG1pbj86IFRTaGlydFNpemUgfCBcImZ1bGxcIjtcbiAgbWF4PzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiO1xufTtcblxuZXhwb3J0IHR5cGUgU2l6ZVBsdWdpblByb3BzID0geyAkc2l6ZT86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8ICRTaXplUHJvcHMgfTtcblxuZXhwb3J0IGNvbnN0IHNpemVQbHVnaW4gPSBnZXRQbHVnaW48U2l6ZVBsdWdpblByb3BzLCBbdHlwZW9mIHdpZHRoUGx1Z2luLCB0eXBlb2YgaGVpZ2h0UGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJHNpemUgfSA9IHByb3BzO1xuXG4gIGlmICghJHNpemUpIHtcbiAgICByZXR1cm4geyAkc2l6ZTogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCB7IHNpemUsIG1pbiwgbWF4IH0gPSB0eXBlb2YgJHNpemUgPT09IFwic3RyaW5nXCIgPyB7IHNpemU6ICRzaXplIH0gOiAkc2l6ZTtcblxuICByZXR1cm4ge1xuICAgICRoZWlnaHQ6IHsgaGVpZ2h0OiBzaXplLCBtaW4sIG1heCB9LFxuICAgICR3aWR0aDogeyB3aWR0aDogc2l6ZSwgbWluLCBtYXggfSxcbiAgICAkc2l6ZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHJhd1N0eWxlcyBmcm9tIFwiLi9jdXJzb3IubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBzYW5pdGl6ZVNjc3NNb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL3Rlc3QtdXRpbHNcIjtcblxuY29uc3Qgc3R5bGVzID0gc2FuaXRpemVTY3NzTW9kdWxlcyhyYXdTdHlsZXMpO1xuXG5leHBvcnQgdHlwZSAkQ3Vyc29yUHJvcHMgPVxuICB8IFwiYWxpYXNcIlxuICB8IFwiYWxsLXNjcm9sbFwiXG4gIHwgXCJjZWxsXCJcbiAgfCBcImNvbHVtbi1yZXNpemVcIlxuICB8IFwiY29udGV4dC1tZW51XCJcbiAgfCBcImNvcHlcIlxuICB8IFwiY3Jvc3NoYWlyXCJcbiAgfCBcImRlZmF1bHRcIlxuICB8IFwiZWFzdC1yZXNpemVcIlxuICB8IFwiZWFzdC1hbmQtd2VzdC1yZXNpemVcIlxuICB8IFwiZ3JhYlwiXG4gIHwgXCJncmFiYmluZ1wiXG4gIHwgXCJoZWxwXCJcbiAgfCBcIm1vdmVcIlxuICB8IFwibm9ydGgtcmVzaXplXCJcbiAgfCBcIm5vcnRoZWFzdC1yZXNpemVcIlxuICB8IFwibm9ydGhlYXN0LWFuZC1zb3V0aHdlc3QtcmVzaXplXCJcbiAgfCBcIm5vLWRyb3BcIlxuICB8IFwibm9uZVwiXG4gIHwgXCJub3QtYWxsb3dlZFwiXG4gIHwgXCJub3J0aC1hbmQtc291dGgtcmVzaXplXCJcbiAgfCBcIm5vcnRod2VzdC1yZXNpemVcIlxuICB8IFwibm9ydGh3ZXN0LWFuZC1zb3V0aGVhc3QtcmVzaXplXCJcbiAgfCBcInBvaW50ZXJcIlxuICB8IFwicHJvZ3Jlc3NcIlxuICB8IFwicm93LXJlc2l6ZVwiXG4gIHwgXCJzb3V0aC1yZXNpemVcIlxuICB8IFwic291dGhlYXN0LXJlc2l6ZVwiXG4gIHwgXCJzb3V0aHdlc3QtcmVzaXplXCJcbiAgfCBcInRleHRcIlxuICB8IFwidmVydGljYWwtdGV4dFwiXG4gIHwgXCJ3ZXN0LXJlc2l6ZVwiXG4gIHwgXCJ3YWl0XCJcbiAgfCBcInpvb20taW5cIlxuICB8IFwiem9vbS1vdXRcIjtcblxuZXhwb3J0IHR5cGUgQ3Vyc29yUGx1Z2luUHJvcHMgPSB7XG4gICRjdXJzb3I/OiAkQ3Vyc29yUHJvcHM7XG59O1xuXG5leHBvcnQgY29uc3QgY3Vyc29yUGx1Z2luID0gZ2V0UGx1Z2luPEN1cnNvclBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRjdXJzb3IsICRjbGFzc05hbWUgfSA9IHByb3BzO1xuXG4gIGlmICghJGN1cnNvcikge1xuICAgIHJldHVybiB7ICRjdXJzb3I6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkY3Vyc29yOiB1bmRlZmluZWQsXG4gICAgJGNsYXNzTmFtZTogWyRjbGFzc05hbWUsIHN0eWxlc1skY3Vyc29yXV0sXG4gICAgXCJkYXRhLWN1cnNvci10ZXN0XCI6ICRjdXJzb3IsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IG9uTWlkZGxlQ2xpY2ssIG9uVHJpZ2dlciB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgZW5hYmxlZFBsdWdpbiB9IGZyb20gXCIuLi9lbmFibGVkL2VuYWJsZWRcIjtcbmltcG9ydCB0eXBlIHsgJEN1cnNvclByb3BzLCBjdXJzb3JQbHVnaW4gfSBmcm9tIFwiLi4vY3Vyc29yL2N1cnNvclwiO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHsgb25SaWdodFRyaWdnZXJJbmplY3RhYmxlIH0gZnJvbSBcIi4vb24tcmlnaHQtdHJpZ2dlci5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCB0eXBlIFBvc2l0aW9uMmQgPSB7XG4gIHJlYWRvbmx5IHg6IG51bWJlcjtcbiAgcmVhZG9ubHkgeTogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQ2xpY2tIYW5kbGVyRGV0YWlscyA9IHtcbiAgcmVhZG9ubHkgY3Vyc29yOiBQb3NpdGlvbjJkO1xuICByZWFkb25seSBjYXVzZTogXCJjbGlja1wiIHwgXCJrZXlib2FyZFwiO1xufTtcblxuZXhwb3J0IHR5cGUgQ2xpY2tIYW5kbGVyID0gKChkZXRhaWxzOiBDbGlja0hhbmRsZXJEZXRhaWxzKSA9PiB2b2lkKSB8ICgoZGV0YWlsczogQ2xpY2tIYW5kbGVyRGV0YWlscykgPT4gUHJvbWlzZTx2b2lkPik7XG5cbmV4cG9ydCB0eXBlIENsaWNrUGx1Z2luUHJvcHMgPSB7XG4gICRvbkNsaWNrPzogQ2xpY2tIYW5kbGVyO1xuICAkb25Pbmx5TW91c2VDbGljaz86IENsaWNrSGFuZGxlcjtcbiAgJG9uRG91YmxlQ2xpY2s/OiBDbGlja0hhbmRsZXI7XG4gICRvblJpZ2h0Q2xpY2s/OiBDbGlja0hhbmRsZXI7XG4gICRvbk1pZGRsZUNsaWNrPzogQ2xpY2tIYW5kbGVyO1xuICB0YWJJbmRleD86IG51bWJlcjtcbn07XG5cbmNvbnN0IGNsaWNrVXNlZCA9IFN5bWJvbCgpO1xuXG5leHBvcnQgY29uc3QgY2xpY2thYmxlUGx1Z2luID0gZ2V0UGx1Z2luPENsaWNrUGx1Z2luUHJvcHMsIFt0eXBlb2YgZW5hYmxlZFBsdWdpbiwgdHlwZW9mIGN1cnNvclBsdWdpbl0+KChwcm9wcykgPT4ge1xuICAvLyB0eXBpbmcgcmVxdWlyZWQgZHVlIHRvIGxhY2sgb2YgZ29vZCB0eXBpbmcgb2YgcHJlLXByb2Nlc3NlZCBkZXBlbmRlbnQgcGx1Z2luc1xuICBjb25zdCB7XG4gICAgJGN1cnNvcixcbiAgICAkb25DbGljayxcbiAgICAkb25Pbmx5TW91c2VDbGljayxcbiAgICAkb25NaWRkbGVDbGljayxcbiAgICAkb25SaWdodENsaWNrLFxuICAgICRvbkRvdWJsZUNsaWNrLFxuICAgIG9uRG91YmxlQ2xpY2ssXG4gICAgb25BdXhDbGljayxcbiAgICBvbkNsaWNrLFxuICAgIG9uQ29udGV4dE1lbnUsXG4gICAgb25LZXlEb3duLFxuICAgIHRhYkluZGV4LFxuICAgIGRpc2FibGVkLFxuICAgIHJvbGUsXG4gIH0gPSBwcm9wcyBhcyB0eXBlb2YgcHJvcHMgJiBSZWFjdC5IVE1MUHJvcHM8SFRNTEVsZW1lbnQ+O1xuICBjb25zdCBbcGVuZGluZywgc2V0UGVuZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IG9uUmlnaHRUcmlnZ2VyID0gdXNlU3luY0luamVjdChvblJpZ2h0VHJpZ2dlckluamVjdGFibGUpO1xuICBjb25zdCBvbk1vdXNlQ2xpY2sgPSAkb25DbGljayA/PyAkb25Pbmx5TW91c2VDbGljaztcblxuICBpZiAoJG9uQ2xpY2sgJiYgJG9uT25seU1vdXNlQ2xpY2spIHtcbiAgICBjb25zb2xlLndhcm4oXCJDYW5ub3QgaGF2ZSBib3RoICRvbkNsaWNrIGFuZCAkb25Nb3VzZUNsaWNrT25seSBvbiB0aGUgc2FtZSBjb21wb25lbnRcIik7XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRvbkNsaWNrOiB1bmRlZmluZWQsXG4gICAgJG9uTWlkZGxlQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkb25SaWdodENsaWNrOiB1bmRlZmluZWQsXG4gICAgJG9uRG91YmxlQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkb25Pbmx5TW91c2VDbGljazogdW5kZWZpbmVkLFxuICAgIHRhYkluZGV4OiB0YWJJbmRleCA/PyAob25Nb3VzZUNsaWNrIHx8ICRvblJpZ2h0Q2xpY2sgfHwgJG9uRG91YmxlQ2xpY2sgPyAwIDogdW5kZWZpbmVkKSxcbiAgICAkY3Vyc29yOiBnZXRDdXJzb3JQcm9wcygkY3Vyc29yLCBkaXNhYmxlZCwgcGVuZGluZywgb25Nb3VzZUNsaWNrLCAkb25SaWdodENsaWNrKSxcbiAgICByb2xlOiByb2xlID8/IChvbk1vdXNlQ2xpY2sgPyBcImJ1dHRvblwiIDogcm9sZSksXG4gICAgb25DbGljazogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25DbGljaz8uKGV2ZW50KTtcblxuICAgICAgaWYgKCFkaXNhYmxlZCAmJiBvbk1vdXNlQ2xpY2sgJiYgIShjbGlja1VzZWQgaW4gZXZlbnQpKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oZXZlbnQsIHsgW2NsaWNrVXNlZF06IHRydWUgfSk7XG5cbiAgICAgICAgY29uc3QgbWF5YmVQcm9taXNlID0gb25Nb3VzZUNsaWNrKHRvRGV0YWlscyhldmVudCkpO1xuXG4gICAgICAgIGlmIChpc1Byb21pc2VMaWtlKG1heWJlUHJvbWlzZSkpIHtcbiAgICAgICAgICBzZXRQZW5kaW5nKHRydWUpO1xuICAgICAgICAgIG1heWJlUHJvbWlzZS50aGVuKCgpID0+IHNldFBlbmRpbmcoZmFsc2UpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgb25Eb3VibGVDbGljazogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25Eb3VibGVDbGljaz8uKGV2ZW50KTtcbiAgICAgICRvbkRvdWJsZUNsaWNrPy4odG9EZXRhaWxzKGV2ZW50KSk7XG4gICAgfSxcbiAgICBvbkNvbnRleHRNZW51OiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBvbkNvbnRleHRNZW51Py4oZXZlbnQpO1xuICAgICAgJG9uUmlnaHRDbGljaz8uKHRvRGV0YWlscyhldmVudCkpO1xuICAgIH0sXG4gICAgb25BdXhDbGljazogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25BdXhDbGljaz8uKGV2ZW50KTtcbiAgICAgIG9uTWlkZGxlQ2xpY2soZXZlbnQsICgpID0+ICRvbk1pZGRsZUNsaWNrPy4odG9EZXRhaWxzKGV2ZW50KSkpO1xuICAgIH0sXG4gICAgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBvbktleURvd24/LihldmVudCk7XG5cbiAgICAgIGlmICgkb25DbGljaykge1xuICAgICAgICBvblRyaWdnZXIoZXZlbnQsICgpID0+IHtcbiAgICAgICAgICBpZiAoIWRpc2FibGVkICYmICEoY2xpY2tVc2VkIGluIGV2ZW50KSkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihldmVudCwgeyBbY2xpY2tVc2VkXTogdHJ1ZSB9KTtcblxuICAgICAgICAgICAgY29uc3QgbWF5YmVQcm9taXNlID0gJG9uQ2xpY2sodG9EZXRhaWxzKGV2ZW50KSk7XG5cbiAgICAgICAgICAgIGlmIChpc1Byb21pc2VMaWtlKG1heWJlUHJvbWlzZSkpIHtcbiAgICAgICAgICAgICAgc2V0UGVuZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgbWF5YmVQcm9taXNlLnRoZW4oKCkgPT4gc2V0UGVuZGluZyhmYWxzZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICgkb25SaWdodENsaWNrKSB7XG4gICAgICAgIG9uUmlnaHRUcmlnZ2VyKGV2ZW50LCAoKSA9PiB7XG4gICAgICAgICAgJG9uUmlnaHRDbGljayh0b0RldGFpbHMoZXZlbnQpKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn0pO1xuXG5jb25zdCB0b01pZGRsZSA9IChyZWN0OiBET01SZWN0KSA9PiAoe1xuICB4OiByZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMixcbiAgeTogcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDIsXG59KTtcblxuY29uc3QgdG9EZXRhaWxzID0gKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PiB8IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+KTogQ2xpY2tIYW5kbGVyRGV0YWlscyA9PiB7XG4gIGNvbnN0IGN1cnNvciA9XG4gICAgXCJjbGllbnRYXCIgaW4gZXZlbnRcbiAgICAgID8ge1xuICAgICAgICAgIHg6IGV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgeTogZXZlbnQuY2xpZW50WSxcbiAgICAgICAgfVxuICAgICAgOiB0b01pZGRsZShldmVudC5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcblxuICByZXR1cm4ge1xuICAgIGN1cnNvcixcbiAgICBjYXVzZTogZXZlbnQuZGV0YWlsID8gXCJjbGlja1wiIDogXCJrZXlib2FyZFwiLFxuICB9O1xufTtcblxuY29uc3QgaXNQcm9taXNlTGlrZSA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFByb21pc2U8dW5rbm93bj4gPT5cbiAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmICEhdmFsdWUgJiYgXCJ0aGVuXCIgaW4gdmFsdWU7XG5cbmNvbnN0IGdldEN1cnNvclByb3BzID0gKFxuICAkY3Vyc29yOiAkQ3Vyc29yUHJvcHMgfCB1bmRlZmluZWQsXG4gIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBwZW5kaW5nOiBib29sZWFuLFxuICAkb25DbGljazogRnVuY3Rpb24gfCB1bmRlZmluZWQsXG4gICRvblJpZ2h0Q2xpY2s6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkLFxuKTogJEN1cnNvclByb3BzIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKCRjdXJzb3IpIHtcbiAgICByZXR1cm4gJGN1cnNvcjtcbiAgfVxuXG4gIGlmIChwZW5kaW5nKSB7XG4gICAgcmV0dXJuIFwicHJvZ3Jlc3NcIjtcbiAgfVxuXG4gIGlmICghJG9uQ2xpY2sgJiYgISRvblJpZ2h0Q2xpY2spIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKGRpc2FibGVkKSB7XG4gICAgcmV0dXJuIFwibm90LWFsbG93ZWRcIjtcbiAgfVxuXG4gIGlmICgkb25DbGljaykge1xuICAgIHJldHVybiBcInBvaW50ZXJcIjtcbiAgfVxuXG4gIHJldHVybiBcImNvbnRleHQtbWVudVwiO1xufTtcbiIsICJpbXBvcnQgcmF3U3R5bGVzIGZyb20gXCIuL2Rpc3BsYXktY29udGVudHMubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBzYW5pdGl6ZVNjc3NNb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL3Rlc3QtdXRpbHNcIjtcblxuY29uc3Qgc3R5bGVzID0gc2FuaXRpemVTY3NzTW9kdWxlcyhyYXdTdHlsZXMpO1xuXG5leHBvcnQgdHlwZSBEaXNwbGF5Q29udGVudHNQbHVnaW5Qcm9wcyA9IHtcbiAgJGRpc3BsYXlDb250ZW50cz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgZGlzcGxheUNvbnRlbnRzUGx1Z2luID0gZ2V0UGx1Z2luPERpc3BsYXlDb250ZW50c1BsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRkaXNwbGF5Q29udGVudHMsICRjbGFzc05hbWUgfSA9IHByb3BzO1xuXG4gIGlmICghJGRpc3BsYXlDb250ZW50cykge1xuICAgIHJldHVybiB7ICRkaXNwbGF5Q29udGVudHM6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkZGlzcGxheUNvbnRlbnRzOiB1bmRlZmluZWQsXG4gICAgJGNsYXNzTmFtZTogWyRjbGFzc05hbWUsIHN0eWxlcy5jb250ZW50c10sXG4gIH07XG59KTtcbiIsICJpbXBvcnQgc3R5bGVzIGZyb20gXCIuL3RleHQtYWxpZ24ubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5cbmV4cG9ydCB0eXBlIFRleHRBbGlnblBsdWdpblByb3BzID0geyAkdGV4dEFsaWduPzogXCJsZWZ0XCIgfCBcImNlbnRlclwiIHwgXCJyaWdodFwiIH07XG5cbmV4cG9ydCBjb25zdCB0ZXh0QWxpZ25QbHVnaW4gPSBnZXRQbHVnaW48VGV4dEFsaWduUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJHRleHRBbGlnbiB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkdGV4dEFsaWduKSB7XG4gICAgcmV0dXJuIHsgJHRleHRBbGlnbjogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4geyAkY2xhc3NOYW1lOiBbc3R5bGVzW2B0ZXh0LWFsaWduLS0keyR0ZXh0QWxpZ259YF0sIHByb3BzLiRjbGFzc05hbWVdLCAkdGV4dEFsaWduOiB1bmRlZmluZWQgfTtcbn0pO1xuIiwgImltcG9ydCBzdHlsZXMgZnJvbSBcIi4vYmxvY2subW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5cbmV4cG9ydCB0eXBlIEJsb2NrUGx1Z2luUHJvcHMgPSB7XG4gICRibG9jaz86IGJvb2xlYW4gfCBcImlubGluZVwiO1xufTtcblxuZXhwb3J0IGNvbnN0IGJsb2NrUGx1Z2luID0gZ2V0UGx1Z2luPEJsb2NrUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGJsb2NrLCAkY2xhc3NOYW1lIH0gPSBwcm9wcztcblxuICBpZiAoISRibG9jaykge1xuICAgIHJldHVybiB7ICRibG9jazogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRibG9jazogdW5kZWZpbmVkLFxuICAgICRjbGFzc05hbWU6IFskY2xhc3NOYW1lLCAkYmxvY2sgPT09IFwiaW5saW5lXCIgPyBzdHlsZXNbXCJibG9jay0taW5saW5lXCJdIDogc3R5bGVzLmJsb2NrXSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4uL19zaGFyZWQvY29sb3JzXCI7XG5pbXBvcnQgdHlwZSB7IFJhbmdlIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcbmltcG9ydCBvdXRsaW5lU3R5bGVzIGZyb20gXCIuL291dGxpbmUubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IHNhbml0aXplU2Nzc01vZHVsZXMgfSBmcm9tIFwiQGs4c2xlbnMvdGVzdC11dGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBJQ2xhc3NOYW1lIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuY29uc3Qgc3R5bGVzID0gc2FuaXRpemVTY3NzTW9kdWxlcyhvdXRsaW5lU3R5bGVzKTtcblxuZXhwb3J0IHR5cGUgT3V0bGluZVdpZHRoID0gXCJ6ZXJvXCIgfCBcInh4c1wiIHwgXCJ4c1wiIHwgXCJzXCIgfCBcIm1cIiB8IFwibFwiIHwgXCJ4bFwiIHwgXCJ4eGxcIiB8IGAke1JhbmdlPDMsIDU+fXhsYDtcblxuZXhwb3J0IHR5cGUgJE91dGxpbmVQcm9wcyA9IHsgY29sb3I/OiBDb2xvcjsgd2lkdGg/OiBPdXRsaW5lV2lkdGggfTtcblxuZXhwb3J0IHR5cGUgT3V0bGluZVBsdWdpblByb3BzID0geyAkb3V0bGluZT86IHsgZm9jdXNWaXNpYmxlPzogJE91dGxpbmVQcm9wcyB9IH07XG5cbmV4cG9ydCBjb25zdCBvdXRsaW5lUGx1Z2luID0gZ2V0UGx1Z2luPE91dGxpbmVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgZ2V0Rm9jdXNWaXNpYmxlT3V0bGluZVN0eWxlcyhwcm9wcy4kb3V0bGluZT8uZm9jdXNWaXNpYmxlKV0sXG4gICAgJG91dGxpbmU6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5jb25zdCBnZXRGb2N1c1Zpc2libGVPdXRsaW5lU3R5bGVzID0gKHByb3BzOiAkT3V0bGluZVByb3BzIHwgdW5kZWZpbmVkKTogSUNsYXNzTmFtZSA9PiB7XG4gIGlmICghcHJvcHMpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgeyBjb2xvciwgd2lkdGggfSA9IHByb3BzO1xuXG4gIHJldHVybiBbXG4gICAgY29sb3IgIT09IHVuZGVmaW5lZCB8fCB3aWR0aCAhPT0gdW5kZWZpbmVkID8gW3N0eWxlcy5vdXRsaW5lLCBzdHlsZXMuZm9jdXNWaXNpYmxlXSA6IHVuZGVmaW5lZCxcbiAgICBjb2xvciA/IHN0eWxlc1tgY29sb3ItLSR7Y29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgd2lkdGggPyBzdHlsZXNbYHdpZHRoLS0ke3dpZHRofWBdIDogdW5kZWZpbmVkLFxuICBdO1xufTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgdHlwZSBJQ2xhc3NOYW1lLCBzYW5pdGl6ZVNjc3NNb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCBpbnRlcmFjdGl2ZVN0eWxlcyBmcm9tIFwiLi9pbnRlcmFjdGl2ZS5tb2R1bGUuc2Nzc1wiO1xuXG5jb25zdCBzdHlsZXMgPSBzYW5pdGl6ZVNjc3NNb2R1bGVzKGludGVyYWN0aXZlU3R5bGVzKTtcblxuZXhwb3J0IHR5cGUgJEludGVyYWN0aXZlUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBTaG93cyB0aGUgZWxlbWVudCBhcyB0aGUgYWN0aXZlIG9uZSwgZS5nLiB0aGUgdHJpZ2dlciBvZiBhIG1lbnUgdGhhdCBpc1xuICAgKiBvcGVuOiB0aGUgaGlnaGxpZ2h0IHN0YXlzIG9uIHdpdGggYSByaW5nIGFyb3VuZCBpdC5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIga2V5Ym9hcmQgZm9jdXMgZHJhd3MgdGhlIGZvY3VzIHJpbmcuIERlZmF1bHRzIHRvIGB0cnVlYDsgb3B0IG91dFxuICAgKiBvbmx5IHdoZXJlIHRoZSBzdXJyb3VuZGluZyBjb250cm9sIGRyYXdzIGl0cyBvd24uXG4gICAqL1xuICBmb2N1c1Zpc2libGVPdXRsaW5lPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIEludGVyYWN0aXZlUGx1Z2luUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBHaXZlcyB0aGUgZWxlbWVudCB0aGUgYWZmb3JkYW5jZSBvZiBhbiBpY29uIGJ1dHRvbjogYSBoaWdobGlnaHQgb24gaG92ZXIsXG4gICAqIGEgZm9jdXMgcmluZyBmb3Iga2V5Ym9hcmQgdXNlcnMsIGFuZCB3aXRoIGBhY3RpdmVgIGEgcmluZyB0aGF0IG1hcmtzIGl0XG4gICAqIGFzIHRoZSBhY3RpdmUgb25lLlxuICAgKi9cbiAgJGludGVyYWN0aXZlPzogYm9vbGVhbiB8ICRJbnRlcmFjdGl2ZVByb3BzO1xufTtcblxuZXhwb3J0IGNvbnN0IGludGVyYWN0aXZlUGx1Z2luID0gZ2V0UGx1Z2luPEludGVyYWN0aXZlUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgZ2V0SW50ZXJhY3RpdmVDbGFzc05hbWVzKHByb3BzLiRpbnRlcmFjdGl2ZSldLFxuICAkaW50ZXJhY3RpdmU6IHVuZGVmaW5lZCxcbn0pKTtcblxuY29uc3QgZ2V0SW50ZXJhY3RpdmVDbGFzc05hbWVzID0gKGludGVyYWN0aXZlOiBib29sZWFuIHwgJEludGVyYWN0aXZlUHJvcHMgfCB1bmRlZmluZWQpOiBJQ2xhc3NOYW1lID0+IHtcbiAgaWYgKCFpbnRlcmFjdGl2ZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCB7IGFjdGl2ZSA9IGZhbHNlLCBmb2N1c1Zpc2libGVPdXRsaW5lID0gdHJ1ZSB9ID0gaW50ZXJhY3RpdmUgPT09IHRydWUgPyB7fSA6IGludGVyYWN0aXZlO1xuXG4gIHJldHVybiBbc3R5bGVzLmludGVyYWN0aXZlLCB7IFtzdHlsZXMuYWN0aXZlXTogYWN0aXZlLCBbc3R5bGVzLmlnbm9yZUZvY3VzVmlzaWJsZV06ICFmb2N1c1Zpc2libGVPdXRsaW5lIH1dO1xufTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IGNsaWNrYWJsZVBsdWdpbiwgQ2xpY2tIYW5kbGVyRGV0YWlscyB9IGZyb20gXCIuLi9jbGlja2FibGUvY2xpY2thYmxlXCI7XG5pbXBvcnQgeyBhdXRvVXBkYXRlLCBmbGlwLCBvZmZzZXQsIHNoaWZ0LCB1c2VGbG9hdGluZyB9IGZyb20gXCJAZmxvYXRpbmctdWkvcmVhY3QtZG9tXCI7XG5pbXBvcnQgdHlwZSB7IFJlZlBsdWdpbiB9IGZyb20gXCIuLi9yZWYvcmVmXCI7XG5pbXBvcnQgeyBleHBlY3REZWZpbmVkLCBzdG9wUHJvcGFnYXRpb24gfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9wb3BvdmVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBNaW5pbWFsRGl2IH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzL21pbmltYWwtZGl2XCI7XG5cbmV4cG9ydCB0eXBlIFBvcG92ZXJQbHVnaW5Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gICRwb3BvdmVyPzogKCkgPT4gUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuZXhwb3J0IGNvbnN0IHBvcG92ZXJJc09wZW5Db250ZXh0ID0gY3JlYXRlQ29udGV4dChmYWxzZSk7XG5cbmV4cG9ydCBjb25zdCB1c2VQb3BvdmVySXNPcGVuID0gKCkgPT4gdXNlQ29udGV4dChwb3BvdmVySXNPcGVuQ29udGV4dCk7XG5cbmV4cG9ydCBjb25zdCBwb3BvdmVyUGx1Z2luID0gZ2V0UGx1Z2luPFBvcG92ZXJQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGlja2FibGVQbHVnaW4sIFJlZlBsdWdpbjxhbnk+XT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJHBvcG92ZXIsICRvbkNsaWNrLCAkcmVmIH0gPSBwcm9wcztcbiAgY29uc3QgW3BvcG92ZXJDb250ZW50SXNTaG93biwgc2V0UG9wb3ZlckNvbnRlbnRJc1Nob3duXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3JlZmVyZW5jZSwgc2V0RWxlbWVudF0gPSB1c2VTdGF0ZTxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBjbG9zZVBvcG92ZXIgPSB1c2VDYWxsYmFjaygoKSA9PiBzZXRQb3BvdmVyQ29udGVudElzU2hvd24oZmFsc2UpLCBbXSk7XG5cbiAgaWYgKCEkcG9wb3Zlcikge1xuICAgIHJldHVybiB7XG4gICAgICAkcG9wb3ZlcjogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRwb3BvdmVyOiB1bmRlZmluZWQsXG4gICAgJHJlZjogWyRyZWYsIHNldEVsZW1lbnRdLFxuICAgICRvbkNsaWNrOiAoZGV0YWlsczogQ2xpY2tIYW5kbGVyRGV0YWlscykgPT4ge1xuICAgICAgc2V0UG9wb3ZlckNvbnRlbnRJc1Nob3duKCFwb3BvdmVyQ29udGVudElzU2hvd24pO1xuICAgICAgJG9uQ2xpY2s/LihkZXRhaWxzKTtcbiAgICB9LFxuICAgIG9uQ2xpY2s6IHN0b3BQcm9wYWdhdGlvbixcbiAgICAkd3JhcHBlcjoge1xuICAgICAgQ29tcG9uZW50OiBQb3BvdmVyV3JhcHBlckNvbXBvbmVudCxcbiAgICAgIHByb3BzOiB7XG4gICAgICAgIHBvcG92ZXI6IHtcbiAgICAgICAgICAkcG9wb3ZlcixcbiAgICAgICAgICBpc1Nob3duOiBwb3BvdmVyQ29udGVudElzU2hvd24sXG4gICAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICAgIGNsb3NlUG9wb3ZlcixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn0pO1xuXG50eXBlIFBvcG92ZXJXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IHBvcG92ZXI6IHtcbiAgICByZWFkb25seSAkcG9wb3ZlcjogKCkgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICAgIHJlYWRvbmx5IGlzU2hvd246IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgcmVmZXJlbmNlOiBIVE1MRGl2RWxlbWVudCB8IG51bGw7XG4gICAgcmVhZG9ubHkgY2xvc2VQb3BvdmVyOiBWb2lkRnVuY3Rpb247XG4gIH07XG4gIHJlYWRvbmx5IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBQb3BvdmVyV3JhcHBlckNvbXBvbmVudCA9ICh7IHBvcG92ZXIsIGNoaWxkcmVuIH06IFBvcG92ZXJXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgeyAkcG9wb3ZlciwgaXNTaG93biwgcmVmZXJlbmNlLCBjbG9zZVBvcG92ZXIgfSA9IHBvcG92ZXI7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2lzU2hvd24gJiZcbiAgICAgICAgY3JlYXRlUG9ydGFsKFxuICAgICAgICAgIDxQb3BvdmVyT3ZlcmxheUNvbnRlbnRcbiAgICAgICAgICAgIHsuLi57XG4gICAgICAgICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgJHBvcG92ZXIsXG4gICAgICAgICAgICAgIGNsb3NlUG9wb3ZlcixcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz4sXG4gICAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgKX1cbiAgICAgIDxwb3BvdmVySXNPcGVuQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17aXNTaG93bn0+e2NoaWxkcmVufTwvcG9wb3ZlcklzT3BlbkNvbnRleHQuUHJvdmlkZXI+XG4gICAgPC8+XG4gICk7XG59O1xuXG50eXBlIFBvcG92ZXJPdmVybGF5Q29udGVudFByb3BzID0ge1xuICByZWZlcmVuY2U6IEhUTUxEaXZFbGVtZW50IHwgbnVsbDtcbiAgJHBvcG92ZXI6ICgpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbiAgY2xvc2VQb3BvdmVyOiBWb2lkRnVuY3Rpb247XG59O1xuXG5jb25zdCBQb3BvdmVyT3ZlcmxheUNvbnRlbnQgPSAocHJvcHM6IFBvcG92ZXJPdmVybGF5Q29udGVudFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJHBvcG92ZXIsIGNsb3NlUG9wb3ZlciwgcmVmZXJlbmNlIH0gPSBwcm9wcztcbiAgY29uc3QgW2Zsb2F0aW5nLCBzZXRGbG9hdGluZ10gPSB1c2VTdGF0ZTxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCB7IGZsb2F0aW5nU3R5bGVzIH0gPSB1c2VGbG9hdGluZyh7XG4gICAgcGxhY2VtZW50OiBcImJvdHRvbVwiLFxuICAgIG1pZGRsZXdhcmU6IFtmbGlwKCksIG9mZnNldCg4KSwgc2hpZnQoKV0sXG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIGZsb2F0aW5nLFxuICAgICAgcmVmZXJlbmNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGNsb3NlUG9wb3ZlckZyb21PdmVybGF5ID0gKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50KTtcbiAgICBjbG9zZVBvcG92ZXIoKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxNaW5pbWFsRGl2XG4gICAgICBkYXRhLXBvcG92ZXItb3ZlcmxheS10ZXN0XG4gICAgICAkYWJzb2x1dGVcbiAgICAgICRjbGFzc05hbWU9e3N0eWxlcy5wb3BvdmVyX19vdmVybGF5fVxuICAgICAgb25DbGljaz17Y2xvc2VQb3BvdmVyRnJvbU92ZXJsYXl9XG4gICAgPlxuICAgICAgPE1pbmltYWxEaXZcbiAgICAgICAgJHJlZj17c2V0RmxvYXRpbmd9XG4gICAgICAgIHN0eWxlPXtmbG9hdGluZ1N0eWxlc31cbiAgICAgICAgb25DbGljaz17c3RvcFByb3BhZ2F0aW9ufVxuICAgICAgICAkY2xhc3NOYW1lPXtzdHlsZXMucG9wb3Zlcl9fY29udGVudH1cbiAgICAgID5cbiAgICAgICAgPGNvbnRleHRGb3JDbG9zaW5nUG9wb3Zlci5Qcm92aWRlciB2YWx1ZT17Y2xvc2VQb3BvdmVyfT57JHBvcG92ZXIoKX08L2NvbnRleHRGb3JDbG9zaW5nUG9wb3Zlci5Qcm92aWRlcj5cbiAgICAgIDwvTWluaW1hbERpdj5cbiAgICA8L01pbmltYWxEaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgY29udGV4dEZvckNsb3NpbmdQb3BvdmVyID0gY3JlYXRlQ29udGV4dDxWb2lkRnVuY3Rpb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCB1c2VDbG9zZVBvcG92ZXIgPSAoKSA9PlxuICBleHBlY3REZWZpbmVkKFxuICAgIHVzZUNvbnRleHQoY29udGV4dEZvckNsb3NpbmdQb3BvdmVyKSxcbiAgICBcIlRyaWVkIHRvIHVzZSBjbG9zZSBwb3BvdmVyIHdoaWxlIGNvbnRlbnQgaXMgbm90IHNob3duIGluc2lkZSB0aGUgcG9wb3ZlciBjb250ZW50LlwiLFxuICApO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUmVmLCB0eXBlIFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBSZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBhdXRvVXBkYXRlLCBmbGlwLCBvZmZzZXQsIHNoaWZ0LCB1c2VGbG9hdGluZywgdHlwZSBQbGFjZW1lbnQgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdDb250ZW50QXJncyA9IHtcbiAgcmVhZG9ubHkgZmxvYXRpbmdTdHlsZXM6IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIHJlYWRvbmx5IGNvbnRlbnRSZWY6IE5vbk51bGxhYmxlPFJlYWN0LlJlZjxIVE1MRGl2RWxlbWVudD4+O1xufTtcblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdDb250ZW50RmFjdG9yeSA9IChhcmdzOiBGbG9hdGluZ0NvbnRlbnRBcmdzKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG5cbmV4cG9ydCB0eXBlICRGbG9hdGluZ1Byb3BzID0ge1xuICByZWFkb25seSBwb3NpdGlvbj86IFBsYWNlbWVudDtcbiAgcmVhZG9ubHkgY29udGVudDogRmxvYXRpbmdDb250ZW50RmFjdG9yeTtcbn07XG5cbmV4cG9ydCB0eXBlIEZsb2F0aW5nUGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICByZWFkb25seSAkZmxvYXRpbmc/OiAkRmxvYXRpbmdQcm9wcztcbn07XG5cbmV4cG9ydCB0eXBlIEZsb2F0aW5nUGx1Z2luID0gUGx1Z2luPEZsb2F0aW5nUGx1Z2luUHJvcHMsIHVua25vd24+O1xuXG50eXBlIEZsb2F0aW5nV3JhcHBlclByb3BzID0ge1xuICByZWFkb25seSBmbG9hdGluZzogJEZsb2F0aW5nUHJvcHM7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBGbG9hdGluZ1dyYXBwZXJDb21wb25lbnQgPSAoeyBmbG9hdGluZywgY29udHJpYnV0ZVJlZiwgY2hpbGRyZW4gfTogRmxvYXRpbmdXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgW3JlZmVyZW5jZSwgc2V0UmVmZXJlbmNlXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtmbG9hdGluZ0VsLCBzZXRGbG9hdGluZ10gPSB1c2VTdGF0ZTxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnRyaWJ1dGVSZWYoc2V0UmVmZXJlbmNlKTtcblxuICBjb25zdCB7IGZsb2F0aW5nU3R5bGVzIH0gPSB1c2VGbG9hdGluZyh7XG4gICAgcGxhY2VtZW50OiBmbG9hdGluZy5wb3NpdGlvbiA/PyBcImJvdHRvbVwiLFxuICAgIG1pZGRsZXdhcmU6IFtmbGlwKCksIG9mZnNldCg4KSwgc2hpZnQoKV0sXG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIGZsb2F0aW5nOiBmbG9hdGluZ0VsLFxuICAgICAgcmVmZXJlbmNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGZsb2F0aW5nQ29udGVudCA9IGZsb2F0aW5nLmNvbnRlbnQoeyBmbG9hdGluZ1N0eWxlcywgY29udGVudFJlZjogc2V0RmxvYXRpbmcgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2Zsb2F0aW5nQ29udGVudCA/IGNyZWF0ZVBvcnRhbChmbG9hdGluZ0NvbnRlbnQsIGRvY3VtZW50LmJvZHkpIDogbnVsbH1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmbG9hdGluZ1BsdWdpbjxUPigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxGbG9hdGluZ1BsdWdpblByb3BzLCBbUmVmUGx1Z2luPFQ+XT4oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyAkZmxvYXRpbmcgfSA9IHByb3BzO1xuXG4gICAgaWYgKCRmbG9hdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4geyAkZmxvYXRpbmc6IHVuZGVmaW5lZCB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAkZmxvYXRpbmc6IHVuZGVmaW5lZCxcbiAgICAgICR3cmFwcGVyOiB7XG4gICAgICAgIENvbXBvbmVudDogRmxvYXRpbmdXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBwcm9wczogeyBmbG9hdGluZzogJGZsb2F0aW5nIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH0pO1xufVxuIiwgImltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgdHlwZSBJbnZpc2libGVCYWNrZHJvcFBsdWdpblByb3BzID0ge1xuICAkaW52aXNpYmxlQmFja2Ryb3A/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IGludmlzaWJsZUJhY2tkcm9wUGx1Z2luID0gZ2V0UGx1Z2luPEludmlzaWJsZUJhY2tkcm9wUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGludmlzaWJsZUJhY2tkcm9wLCAkY2xhc3NOYW1lIH0gPSBwcm9wcztcblxuICBpZiAoISRpbnZpc2libGVCYWNrZHJvcCkge1xuICAgIHJldHVybiB7ICRpbnZpc2libGVCYWNrZHJvcDogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRpbnZpc2libGVCYWNrZHJvcDogdW5kZWZpbmVkLFxuICAgICRjbGFzc05hbWU6IFskY2xhc3NOYW1lLCBzdHlsZXMuaW52aXNpYmxlQmFja2Ryb3BdLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcywgdHlwZSBDb250cmlidXRlUmVmIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEcm9wRG93bk1lbnUsIHR5cGUgRHJvcERvd25NZW51U3BlYyB9IGZyb20gXCJAazhzbGVucy9kcm9wLWRvd24tbWVudS1jb250cmFjdHNcIjtcbmltcG9ydCB7IGNzc05hbWVzLCBvblRyaWdnZXIgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGFuY2hvcmFibGVDbGFzc05hbWUsIEFuY2hvck5hbWVQcm92aWRlciwgdXNlQW5jaG9yTmFtZUZvciB9IGZyb20gXCIuLi9hbmNob3IvYW5jaG9yXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IG9uUmlnaHRUcmlnZ2VySW5qZWN0YWJsZSB9IGZyb20gXCIuLi9jbGlja2FibGUvb24tcmlnaHQtdHJpZ2dlci5pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uMmQgfSBmcm9tIFwiLi4vY2xpY2thYmxlL2NsaWNrYWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBjdXJzb3JQbHVnaW4gfSBmcm9tIFwiLi4vY3Vyc29yL2N1cnNvclwiO1xuaW1wb3J0IHsgdHlwZSBlbmFibGVkUGx1Z2luLCBpc0Rpc2FibGVkIH0gZnJvbSBcIi4uL2VuYWJsZWQvZW5hYmxlZFwiO1xuaW1wb3J0IHsgdXNlT25PdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrXCI7XG5cbmV4cG9ydCB0eXBlIERyb3BEb3duTWVudVBsdWdpblByb3BzID0ge1xuICByZWFkb25seSBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgcmVhZG9ubHkgdGFiSW5kZXg/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIGEgZHJvcC1kb3duIG1lbnUgdG8gdGhlIGVsZW1lbnQuIENyZWF0ZSB0aGUgdmFsdWUgd2l0aCBgZHJvcERvd25NZW51KGtpbmQsIG9wdGlvbnM/KWBcbiAgICogZnJvbSBgQGs4c2xlbnMvZHJvcC1kb3duLW1lbnUtY29udHJhY3RzYDsgdGhlIGl0ZW1zIGNvbWUgZnJvbSB0aGUgY29udHJpYnV0aW9ucyByZWdpc3RlcmVkIGZvclxuICAgKiB0aGUga2luZC5cbiAgICpcbiAgICogVGhlIG1lbnUgcG9zaXRpb25zIGl0c2VsZiBhZ2FpbnN0IHRoZSBuZWFyZXN0IGAkYW5jaG9yYCBhcm91bmQgdGhlIGVsZW1lbnQsIG9yIGFnYWluc3QgdGhlXG4gICAqIGVsZW1lbnQgaXRzZWxmIHdoZW4gdGhlcmUgaXMgbm9uZS4gRGVjbGFyZSBgJGFuY2hvcmAgb24gYW4gZW5jbG9zaW5nIGVsZW1lbnQgdG8gaGF2ZSB0aGUgbWVudVxuICAgKiBsaW5lIHVwIHdpdGggdGhhdCBpbnN0ZWFkLCBhcyBhIG1lbnUgb3BlbmVkIGZyb20gb25lIGhhbGYgb2YgYSBzcGxpdCBidXR0b24gbGluZXMgdXAgd2l0aCB0aGVcbiAgICogd2hvbGUgb2YgaXQuXG4gICAqXG4gICAqIFRoZSBtZW51IHRha2VzIGZvY3VzIGFzIGl0IG9wZW5zLCBpdHMgZmlyc3QgaXRlbSBiZWNvbWluZyB0aGUgY3VycmVudCBvbmUgXHUyMDE0IGV4Y2VwdCB3aGVuIGl0XG4gICAqIG9wZW5zIGJ5IGJlaW5nIGhvdmVyZWQsIHdoZXJlIGZvY3VzIHN0YXlzIG9uIHRoZSBlbGVtZW50OiB0aGUgcm93IHRoZSBwb2ludGVyIHJlc3RzIG9uIGlzIHdoYXRcbiAgICogdGhlIHVzZXIgaXMgbG9va2luZyBhdC4gRm9jdXMgcmV0dXJucyB0byB0aGUgZWxlbWVudCBvbmNlIHRoZSBtZW51IGlzIGdvbmUuIEEgbWVudSB0aGF0IG9wZW5zIG9uXG4gICAqIGhvdmVyaW5nIG9wZW5zIHdpdGggQXJyb3dSaWdodCBhcyB3ZWxsLCB0YWtpbmcgZm9jdXMgdGhlbiwgYW5kIGNsb3NlcyB3aXRoIEFycm93TGVmdCBmcm9tXG4gICAqIGFueXdoZXJlIHdpdGhpbiBpdCwgc28gYSBtZW51IGhlbGQgYnkgYSBtZW51IHJvdyBpcyByZWFjaGFibGUgd2l0aG91dCBhIHBvaW50ZXIuXG4gICAqXG4gICAqIFJlcXVpcmVzIGBkcm9wRG93bk1lbnVGZWF0dXJlYCBvZiBgQGxlbnNhcHAvZHJvcC1kb3duLW1lbnVgIHRvIGJlIHJlZ2lzdGVyZWQ6IHRoZSBtZW51XG4gICAqIGNvbXBvbmVudCBpcyByZXNvbHZlZCB0aHJvdWdoIGFuIGluamVjdGlvbiB0b2tlbiB0aGlzIHBhY2thZ2UgZG9lcyBub3QgaW1wbGVtZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgJGRyb3BEb3duTWVudT86IERyb3BEb3duTWVudVNwZWM7XG59O1xuXG5jb25zdCBob3ZlckNsb3NlRGVsYXlJbk1pbGxpc2Vjb25kcyA9IDIwMDtcblxudHlwZSBEcm9wRG93bk1lbnVXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGRyb3BEb3duTWVudTogRHJvcERvd25NZW51U3BlYztcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVJlZjogQ29udHJpYnV0ZVJlZjtcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVByb3BzOiBDb250cmlidXRlUHJvcHM7XG4gIHJlYWRvbmx5IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBEcm9wRG93bk1lbnVXcmFwcGVyQ29tcG9uZW50ID0gKHtcbiAgZHJvcERvd25NZW51LFxuICBjb250cmlidXRlUmVmLFxuICBjb250cmlidXRlUHJvcHMsXG4gIGNoaWxkcmVuLFxufTogRHJvcERvd25NZW51V3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnN0IFtpc09wZW4sIHNldElzT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIC8vIFdoZXRoZXIgdGhlIG1lbnUgdGFrZXMgZm9jdXMgYXMgaXQgb3BlbnMuIE9ubHkgYSBtZW51IHRoZSBwb2ludGVyIG9wZW5lZCBieSByZXN0aW5nIG9uIHRoZVxuICAvLyBlbGVtZW50IGxlYXZlcyBpdCBiZTogdGhlIGtleWJvYXJkIG9wZW5pbmcgb25lLCBvciBhIGNsaWNrLCBpcyB0aGUgdXNlciBhc2tpbmcgZm9yIHRoZSBtZW51LFxuICAvLyBhbmQgaXRzIGZpcnN0IGl0ZW0gaXMgd2hlcmUgdGhleSBnbyBvbiBmcm9tLlxuICBjb25zdCBbdGFrZXNGb2N1cywgc2V0VGFrZXNGb2N1c10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW2N1cnNvciwgc2V0Q3Vyc29yXSA9IHVzZVN0YXRlPFBvc2l0aW9uMmQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IGNsb3NlVGltZXJSZWYgPSB1c2VSZWY8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IG9uUmlnaHRUcmlnZ2VyID0gdXNlU3luY0luamVjdChvblJpZ2h0VHJpZ2dlckluamVjdGFibGUpO1xuXG4gIGNvbnN0IGVsZW1lbnRSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgbWVudVJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBlbGVtZW50VGFrZXNGb2N1c0JhY2tSZWYgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIGNvbnRyaWJ1dGVSZWYoXG4gICAgdXNlQ2FsbGJhY2soKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgZWxlbWVudFJlZi5jdXJyZW50ID0gZWxlbWVudDtcbiAgICB9LCBbXSksXG4gICk7XG5cbiAgY29uc3QgdG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRha2VzRm9jdXModHJ1ZSk7XG4gICAgc2V0SXNPcGVuKCh3YXNPcGVuKSA9PiAhd2FzT3Blbik7XG4gIH0sIFtdKTtcblxuICBjb25zdCBjbG9zZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBUaGUgZWxlbWVudCB0aGUgbWVudSBiZWxvbmdzIHRvIHRha2VzIGZvY3VzIGJhY2sgd2hlbiBmb2N1cyBpcyBpbiB0aGUgbWVudSB0aGF0IGlzIGNsb3NpbmcsXG4gICAgLy8gb3Igbm93aGVyZSBhdCBhbGw6IHdoYXRldmVyIHRoZSB1c2VyIGRvZXMgbmV4dCwgdGhleSBkbyBmcm9tIHdoZXJlIHRoZXkgd2VyZS4gRGVjaWRlZCBoZXJlLFxuICAgIC8vIHdoaWxlIGl0IGlzIHN0aWxsIGNsZWFyIHdoZXJlIGZvY3VzIHdhcywgcmF0aGVyIHRoYW4gb25jZSB0aGUgbWVudSBoYXMgZ29uZS5cbiAgICBjb25zdCBmb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblxuICAgIGVsZW1lbnRUYWtlc0ZvY3VzQmFja1JlZi5jdXJyZW50ID1cbiAgICAgIGZvY3VzZWQgPT09IG51bGwgfHwgZm9jdXNlZCA9PT0gZG9jdW1lbnQuYm9keSB8fCBtZW51UmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGZvY3VzZWQpID09PSB0cnVlO1xuXG4gICAgc2V0SXNPcGVuKGZhbHNlKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGNhbmNlbFNjaGVkdWxlZENsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChjbG9zZVRpbWVyUmVmLmN1cnJlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KGNsb3NlVGltZXJSZWYuY3VycmVudCk7XG4gICAgICBjbG9zZVRpbWVyUmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgY29uc3Qgb3BlbiA9IHVzZUNhbGxiYWNrKFxuICAgIChvcGVuZWRCeTogXCJwb2ludGVyXCIgfCBcImtleWJvYXJkXCIpID0+IHtcbiAgICAgIGNhbmNlbFNjaGVkdWxlZENsb3NlKCk7XG4gICAgICBzZXRUYWtlc0ZvY3VzKG9wZW5lZEJ5ID09PSBcImtleWJvYXJkXCIpO1xuICAgICAgc2V0SXNPcGVuKHRydWUpO1xuICAgIH0sXG4gICAgW2NhbmNlbFNjaGVkdWxlZENsb3NlXSxcbiAgKTtcblxuICBjb25zdCBzY2hlZHVsZUNsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNhbmNlbFNjaGVkdWxlZENsb3NlKCk7XG4gICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gc2V0VGltZW91dChjbG9zZSwgaG92ZXJDbG9zZURlbGF5SW5NaWxsaXNlY29uZHMpO1xuICB9LCBbY2FuY2VsU2NoZWR1bGVkQ2xvc2UsIGNsb3NlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IGNhbmNlbFNjaGVkdWxlZENsb3NlLCBbY2FuY2VsU2NoZWR1bGVkQ2xvc2VdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNPcGVuKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIEEgbWVudSB0aGF0IGlzIGRpc21pc3NlZCByYXRoZXIgdGhhbiBjbG9zZWQgXHUyMDE0IGNsaWNrZWQgYXdheSBmcm9tIFx1MjAxNCBsZWF2ZXMgZm9jdXMgd2hlcmV2ZXIgdGhlXG4gICAgLy8gdXNlciBwdXQgaXQuXG4gICAgZWxlbWVudFRha2VzRm9jdXNCYWNrUmVmLmN1cnJlbnQgPSBmYWxzZTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoIWVsZW1lbnRUYWtlc0ZvY3VzQmFja1JlZi5jdXJyZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gRGVmZXJyZWQgcGFzdCB3aGF0IGlzIGJlaW5nIHRha2VuIGF3YXk6IHRoZSBlbGVtZW50IG1heSBiZSBnb2luZyB3aXRoIHRoZSBtZW51LCBhIG1lbnVcbiAgICAgIC8vIGluc2lkZSBhIG1lbnUgdGhhdCBpcyBjbG9zaW5nIHRvbywgYW5kIG9ubHkgdGhlbiBpcyBpdCBjbGVhciB3aGV0aGVyIGl0IGlzIHN0aWxsIHRoZXJlIHRvXG4gICAgICAvLyB0YWtlIGZvY3VzIGJhY2suIEFueXRoaW5nIHRoYXQgdG9vayBmb2N1cyBpbiB0aGUgbWVhbnRpbWUgd2FzIGdpdmVuIGl0IG9uIHB1cnBvc2UsIGFuZCBhXG4gICAgICAvLyBtZW51IGNsb3NpbmcgaXMgbm8gcmVhc29uIHRvIHRha2UgaXQgYXdheSBhZ2Fpbi5cbiAgICAgIHZvaWQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50UmVmLmN1cnJlbnQ7XG4gICAgICAgIGNvbnN0IGZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG4gICAgICAgIGlmIChlbGVtZW50Py5pc0Nvbm5lY3RlZCAmJiAoZm9jdXNlZCA9PT0gbnVsbCB8fCBmb2N1c2VkID09PSBkb2N1bWVudC5ib2R5KSkge1xuICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcbiAgfSwgW2lzT3Blbl0pO1xuXG4gIC8vIFRoZSBuZWFyZXN0IGFuY2hvciBhcm91bmQgdGhlIGVsZW1lbnQsIHdoaWNoIGlzIHRoZSBlbGVtZW50IGl0c2VsZiB3aGVuIGl0IGRlY2xhcmVzIGAkYW5jaG9yYDtcbiAgLy8gYW4gZWxlbWVudCB3aXRoIG5vbmUgYXJvdW5kIGl0IGFuY2hvcnMgaXRzIG1lbnUgaXRzZWxmLCBzbyBhIG1lbnUgbmV2ZXIgZmFpbHMgdG8gb3BlbiBmb3IgdGhlXG4gIC8vIHdhbnQgb2Ygb25lLiBOYW1lZCBvbmx5IHdoaWxlIHRoZSBtZW51IGlzIG9wZW4sIHdoaWNoIGlzIHRoZSBvbmx5IHRpbWUgYW55dGhpbmcgbmVlZHMgdGhlIG5hbWUuXG4gIGNvbnN0IGFuY2hvck5hbWUgPSB1c2VBbmNob3JOYW1lRm9yKGVsZW1lbnRSZWYsIGlzT3Blbik7XG5cbiAgY29uc3Qgb3Blbk9uID0gZHJvcERvd25NZW51Lm9wZW5PbiA/PyBcImNsaWNrXCI7XG5cbiAgY29uc3QgY2xvc2VPbkFycm93TGVmdCA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd0xlZnRcIikge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtjbG9zZV0sXG4gICk7XG5cbiAgLy8gTWFya3MgdGhlIGVsZW1lbnQgYW5kLCBiZWxvdywgdGhlIG1lbnUgaXQgb3BlbnMgYXMgb25lIHRoaW5nIGZvciBvdXRzaWRlLWNsaWNrIHB1cnBvc2VzLlxuICBjb25zdCBvdXRzaWRlQ2xpY2tNYXJraW5nUHJvcHMgPSB1c2VPbk91dHNpZGVDbGljayhcbiAgICB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgIHNldElzT3BlbihmYWxzZSk7XG4gICAgICB9XG4gICAgfSwgW2lzT3Blbl0pLFxuICApO1xuXG4gIGNvbnRyaWJ1dGVQcm9wcyh7XG4gICAgLi4ub3V0c2lkZUNsaWNrTWFya2luZ1Byb3BzLFxuICAgIFwiYXJpYS1oYXNwb3B1cFwiOiBcIm1lbnVcIixcblxuICAgIC4uLihvcGVuT24gPT09IFwiY2xpY2tcIiAmJiB7XG4gICAgICBvbkNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRvZ2dsZSgpO1xuICAgICAgfSxcblxuICAgICAgLy8gQSBrZXkgcHJlc3MgdGhlIGVsZW1lbnQgYW5zd2VycyB3aXRoIGEgbWVudSBpcyBhbnN3ZXJlZCBoZXJlIGFuZCBub3doZXJlIGVsc2UsXG4gICAgICAvLyBleGFjdGx5IGFzIGl0cyBjbGljayBpczogd2hhdGV2ZXIgZW5jbG9zZXMgdGhlIGVsZW1lbnQgKGEgbWVudSByb3cgd2l0aCBhblxuICAgICAgLy8gYWN0aW9uIG9mIGl0cyBvd24sIHNheSkgbXVzdCBub3QgdGFrZSB0aGUgc2FtZSBwcmVzcyBmb3IgYmVpbmcgYWN0aXZhdGVkIHRvby5cbiAgICAgIG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIG9uVHJpZ2dlcihldmVudCwgKCkgPT4ge1xuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIHRvZ2dsZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSksXG5cbiAgICAuLi4ob3Blbk9uID09PSBcInJpZ2h0LWNsaWNrXCIgJiYge1xuICAgICAgb25Db250ZXh0TWVudTogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAvLyBBIG1lbnUgb3BlbmVkIGJ5IHJpZ2h0LWNsaWNraW5nIGJlbG9uZ3MgYXQgdGhlIGN1cnNvciByYXRoZXIgdGhhbiBhdCB0aGUgZWxlbWVudC5cbiAgICAgICAgc2V0Q3Vyc29yKHsgeDogZXZlbnQuY2xpZW50WCwgeTogZXZlbnQuY2xpZW50WSB9KTtcbiAgICAgICAgdG9nZ2xlKCk7XG4gICAgICB9LFxuXG4gICAgICBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBvblJpZ2h0VHJpZ2dlcihldmVudCwgKCkgPT4ge1xuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIC8vIEEgbWVudSB0aGUga2V5Ym9hcmQgb3BlbmVkIGJlbG9uZ3MgYXQgdGhlIGVsZW1lbnQsIHdoZXJldmVyIHRoZSBjdXJzb3IgbGFzdCB3YXMuXG4gICAgICAgICAgc2V0Q3Vyc29yKHVuZGVmaW5lZCk7XG4gICAgICAgICAgdG9nZ2xlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KSxcblxuICAgIC4uLihvcGVuT24gPT09IFwiaG92ZXJcIiAmJiB7XG4gICAgICBvbk1vdXNlRW50ZXI6ICgpID0+IG9wZW4oXCJwb2ludGVyXCIpLFxuICAgICAgb25Nb3VzZUxlYXZlOiBzY2hlZHVsZUNsb3NlLFxuXG4gICAgICAvLyBBIG1lbnUgdGhhdCBvcGVucyBvbiBob3ZlcmluZyB3b3VsZCBiZSBvdXQgb2YgdGhlIGtleWJvYXJkJ3MgcmVhY2ggb3RoZXJ3aXNlLiBTaWRld2F5c1xuICAgICAgLy8gaW50byBpdCwgc2luY2UgdGhhdCBpcyB3aGVyZSBzdWNoIGEgbWVudSBzaXRzOiBiZXNpZGUgdGhlIGVsZW1lbnQgaXQgYmVsb25ncyB0by4gRm9jdXNcbiAgICAgIC8vIGZvbGxvd3Mgb24gaXRzIG93biwgdGhlIG1lbnUgdGFraW5nIGl0IGFzIGl0IGFwcGVhcnMgXHUyMDE0IG9yLCB0aGUgcG9pbnRlciBoYXZpbmcgb3BlbmVkIGl0XG4gICAgICAvLyBhbHJlYWR5LCBhcyB0aGUga2V5Ym9hcmQgc3RlcHMgaW50byBpdC5cbiAgICAgIG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dSaWdodFwiKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBvcGVuKFwia2V5Ym9hcmRcIik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSksXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtjaGlsZHJlbn1cblxuICAgICAge2lzT3BlbiAmJiAoXG4gICAgICAgIC8vIE1hcmtlZCBhcyBpbnNpZGUgZm9yIHRoZSBvdXRzaWRlLWNsaWNrIGRldGVjdGlvbiBhYm92ZTogdGhlIG1lbnUgaXMgYSBzaWJsaW5nIG9mIHRoZVxuICAgICAgICAvLyBlbGVtZW50IGluIHRoZSBET00sIGJ1dCBwYXJ0IG9mIHRoZSBzYW1lIHRoaW5nIGFzIGZhciBhcyBhIHVzZXIgaXMgY29uY2VybmVkLlxuICAgICAgICAvL1xuICAgICAgICAvLyBBIGNsaWNrIGxhbmRpbmcgb24gdGhlIG1lbnUgaXMgYSBjbGljayBvbiB0aGUgbWVudSBhbmQgbm90aGluZyBlbHNlLCBzbyBpdCBzdG9wcyBoZXJlXG4gICAgICAgIC8vIHJhdGhlciB0aGFuIGdvaW5nIG9uIHRvIHdoYXRldmVyIGVuY2xvc2VzIHRoZSBlbGVtZW50IHRoZSBtZW51IHdhcyBvcGVuZWQgZnJvbSBcdTIwMTQgYSByb3dcbiAgICAgICAgLy8gb2YgYSBtZW51IG9mIGl0cyBvd24sIHNheSwgd2hpY2ggd291bGQgdGFrZSBpdCBmb3IgdGhlIHJvdyBiZWluZyBhY3RpdmF0ZWQuIE9ubHlcbiAgICAgICAgLy8gYGNsaWNrYCBzdG9wczogdGhlIG91dHNpZGUtY2xpY2sgZGV0ZWN0aW9uIGFib3ZlIHdvcmtzIG9uIGBwb2ludGVyZG93bmAuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIEZvY3VzIGxhbmRpbmcgaW4gdGhlIG1lbnUgaXMgbGlrZXdpc2UgZm9jdXMgaW4gdGhlIG1lbnUgYW5kIG5vdGhpbmcgZWxzZS4gQSB0cmVlIHJvd1xuICAgICAgICAvLyBlbmNsb3NpbmcgdGhlIGVsZW1lbnQgd291bGQgb3RoZXJ3aXNlIHRha2UgaXQgZm9yIHRoZSByb3cgaXRzZWxmIGJlaW5nIGZvY3VzZWQsIGFuZFxuICAgICAgICAvLyB0YWtlIGZvY3VzIHN0cmFpZ2h0IGJhY2sgZnJvbSB0aGUgbWVudSByb3cgdGhlIHBvaW50ZXIgaGFkIGp1c3QgcHV0IGl0IG9uIFx1MjAxNCBhbmQgc2luY2VcbiAgICAgICAgLy8gdGhlIGhpZ2hsaWdodCBvZiBhIG1lbnUgcm93IGZvbGxvd3MgZm9jdXMsIHRoYXQgaXMgYSBtZW51IHRoYXQgbmV2ZXIgbG9va3MgcG9pbnRlZCBhdC5cbiAgICAgICAgLy8gT25seSBmb2N1cyBzdG9wcywgbm90IGJsdXI6IHdoYXRldmVyIGVuY2xvc2VzIHRoZSBlbGVtZW50IHRlbGxzIGZvY3VzIGxlYXZpbmcgaXQgYXBhcnRcbiAgICAgICAgLy8gZnJvbSBmb2N1cyBtb3Zpbmcgd2l0aGluIGl0IGJ5IHdoZXJlIGZvY3VzIHdlbnQsIGFuZCBoYXMgdG8gaGVhciBvZiBpdCBsZWF2aW5nIGZyb20gdGhlXG4gICAgICAgIC8vIG1lbnUgYXMgbXVjaCBhcyBmcm9tIGFueXdoZXJlIGVsc2UuXG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgey4uLm91dHNpZGVDbGlja01hcmtpbmdQcm9wc31cbiAgICAgICAgICByZWY9e21lbnVSZWZ9XG4gICAgICAgICAgc3R5bGU9e2Rpc3BsYXlDb250ZW50c31cbiAgICAgICAgICBvbkNsaWNrPXtzdG9wUHJvcGFnYXRpb259XG4gICAgICAgICAgb25Gb2N1cz17c3RvcFByb3BhZ2F0aW9ufVxuICAgICAgICAgIC8vIFNpZGV3YXlzIGJhY2sgb3V0IG9mIGEgbWVudSB0aGF0IG9wZW5lZCBzaWRld2F5cywgZnJvbSB3aGVyZXZlciBpbiBpdCBmb2N1cyBoYXBwZW5zIHRvXG4gICAgICAgICAgLy8gYmUuIEl0IHN0b3BzIGhlcmUsIHNvIHRoZSBtZW51IHRoaXMgb25lIHdhcyBvcGVuZWQgZnJvbSBpcyBsZWZ0IGFzIGl0IGlzIHJhdGhlciB0aGFuXG4gICAgICAgICAgLy8gY2xvc2luZyBhbG9uZyB3aXRoIGl0IFx1MjAxNCBvbmUgc3RlcCBvdXQgcGVyIHByZXNzLiBPbmx5IHN1Y2ggYSBtZW51OiBlbHNld2hlcmUgdGhlIGtleVxuICAgICAgICAgIC8vIGJlbG9uZ3MgdG8gd2hhdGV2ZXIgdGhlIG1lbnUgaG9sZHMsIGFuZCBFc2NhcGUgaXMgaG93IGEgbWVudSBpcyBkaXNtaXNzZWQuXG4gICAgICAgICAgb25LZXlEb3duPXtvcGVuT24gPT09IFwiaG92ZXJcIiA/IGNsb3NlT25BcnJvd0xlZnQgOiB1bmRlZmluZWR9XG4gICAgICAgID5cbiAgICAgICAgICA8QW5jaG9yTmFtZVByb3ZpZGVyIHZhbHVlPXthbmNob3JOYW1lfT5cbiAgICAgICAgICAgIDxEcm9wRG93bk1lbnVcbiAgICAgICAgICAgICAgc3BlYz17ZHJvcERvd25NZW51fVxuICAgICAgICAgICAgICBhbmNob3JQb2ludD17b3Blbk9uID09PSBcInJpZ2h0LWNsaWNrXCIgPyBjdXJzb3IgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgIHRha2VzRm9jdXM9e3Rha2VzRm9jdXN9XG4gICAgICAgICAgICAgIG9uQ2xvc2U9e2Nsb3NlfVxuICAgICAgICAgICAgICBvbk1lbnVIb3ZlckNoYW5nZT17XG4gICAgICAgICAgICAgICAgb3Blbk9uID09PSBcImhvdmVyXCJcbiAgICAgICAgICAgICAgICAgID8gKG1lbnVJc0hvdmVyZWQpID0+IChtZW51SXNIb3ZlcmVkID8gY2FuY2VsU2NoZWR1bGVkQ2xvc2UoKSA6IHNjaGVkdWxlQ2xvc2UoKSlcbiAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9BbmNob3JOYW1lUHJvdmlkZXI+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59O1xuXG5jb25zdCBkaXNwbGF5Q29udGVudHMgPSB7IGRpc3BsYXk6IFwiY29udGVudHNcIiB9IGFzIGNvbnN0O1xuXG5jb25zdCBzdG9wUHJvcGFnYXRpb24gPSAoZXZlbnQ6IFJlYWN0LlN5bnRoZXRpY0V2ZW50KSA9PiBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuZXhwb3J0IGNvbnN0IGRyb3BEb3duTWVudVBsdWdpbiA9IGdldFBsdWdpbjxcbiAgRHJvcERvd25NZW51UGx1Z2luUHJvcHMsXG4gIFt0eXBlb2YgZW5hYmxlZFBsdWdpbiwgdHlwZW9mIGN1cnNvclBsdWdpbiwgdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl1cbj4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGRyb3BEb3duTWVudSwgJGN1cnNvciwgJGNsYXNzTmFtZSwgcm9sZSB9ID0gcHJvcHMgYXMgdHlwZW9mIHByb3BzICYgUmVhY3QuSFRNTFByb3BzPEhUTUxFbGVtZW50PjtcblxuICBpZiAoJGRyb3BEb3duTWVudSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHsgJGRyb3BEb3duTWVudTogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCBvcGVuc09uQ2xpY2sgPSAoJGRyb3BEb3duTWVudS5vcGVuT24gPz8gXCJjbGlja1wiKSA9PT0gXCJjbGlja1wiO1xuICAvLyBSZWFkIGZyb20gd2hhdCB0aGUgZWxlbWVudCB3YXMgZ2l2ZW46IHRoaXMgcGx1Z2luIHJ1bnMgYmVmb3JlIHRoZSBvbmUgdGhhdCB0dXJucyBpdCBpbnRvXG4gIC8vIHRoZSBgZGlzYWJsZWRgIHByb3AuXG4gIGNvbnN0IGNhbm5vdEJlVXNlZCA9IGlzRGlzYWJsZWQocHJvcHMpO1xuXG4gIHJldHVybiB7XG4gICAgJGRyb3BEb3duTWVudTogdW5kZWZpbmVkLFxuXG4gICAgLi4uKCRkcm9wRG93bk1lbnUub3Blbk9uID09PSBcImhvdmVyXCIgPyB7fSA6IHsgdGFiSW5kZXg6IHByb3BzLnRhYkluZGV4ID8/IDAgfSksXG5cbiAgICAvLyBBbiBlbGVtZW50IHRoYXQgYW5zd2VycyBhIGNsaWNrIHdpdGggYSBtZW51IGlzIGEgYnV0dG9uLCBhbmQgdGhlIGN1cnNvciBpcyBob3cgaXQgc2F5cyBzb1xuICAgIC8vIC0tIG9yIHNheXMgdGhhdCBpdCBjYW5ub3QgcmlnaHQgbm93LiBCb3RoIHdvdWxkIG90aGVyd2lzZSBjb21lIGZyb20gYSBjbGljayBoYW5kbGVyIHN1Y2ggYW5cbiAgICAvLyBlbGVtZW50IGhhcyBubyByZWFzb24gdG8gaGF2ZS4gT25seSBhIGNsaWNrOiBzb21ldGhpbmcgcmlnaHQtY2xpY2tlZCBpcyBub3QgYSBidXR0b24sIGFuZCBhXG4gICAgLy8gcm93IHRoYXQgcmV2ZWFscyBhIG1lbnUgb24gaG92ZXIgaXMgYSByb3cuXG4gICAgLi4uKG9wZW5zT25DbGljayAmJiB7XG4gICAgICByb2xlOiByb2xlID8/IFwiYnV0dG9uXCIsXG4gICAgICAkY3Vyc29yOiAkY3Vyc29yID8/IChjYW5ub3RCZVVzZWQgPyBcIm5vdC1hbGxvd2VkXCIgOiBcInBvaW50ZXJcIiksXG4gICAgfSksXG5cbiAgICAvLyBUaGUgZWxlbWVudCBtYXkgdHVybiBvdXQgdG8gYmUgdGhlIGFuY2hvciBvZiBpdHMgb3duIG1lbnUsIHdoaWNoIG9ubHkgaXRzIHdyYXBwZXIgY2FuIHRlbGwsXG4gICAgLy8gcmVuZGVyaW5nIHdpdGhpbiB3aGF0ZXZlciBhbmNob3JzIGVuY2xvc2UgdGhlIGVsZW1lbnQ7IHRoaXMgbGV0cyB0aGUgbmFtZSBpdCBpcyB0aGVuIGdpdmVuXG4gICAgLy8gdGFrZSBlZmZlY3QuXG4gICAgJGNsYXNzTmFtZTogY3NzTmFtZXMoJGNsYXNzTmFtZSwgYW5jaG9yYWJsZUNsYXNzTmFtZSksXG5cbiAgICAkd3JhcHBlcjoge1xuICAgICAgQ29tcG9uZW50OiBEcm9wRG93bk1lbnVXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgcHJvcHM6IHsgZHJvcERvd25NZW51OiAkZHJvcERvd25NZW51IH0sXG4gICAgfSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMsIHR5cGUgQ29udHJpYnV0ZVJlZiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgY3NzTmFtZXMgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VJZCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2FuY2hvci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBQb3NpdGlvbjJkIH0gZnJvbSBcIi4uL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcbmltcG9ydCB7IHR5cGUgVFNoaXJ0U2l6ZSwgdFNoaXJ0U2l6ZUluUGl4ZWxzIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBjb2xvclBsdWdpbiB9IGZyb20gXCIuLi9jb2xvci9jb2xvclwiO1xuaW1wb3J0IHR5cGUgeyBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gfSBmcm9tIFwiLi4vYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yXCI7XG5pbXBvcnQgdHlwZSB7IGJvcmRlclBsdWdpbiB9IGZyb20gXCIuLi9ib3JkZXIvYm9yZGVyXCI7XG5pbXBvcnQgdHlwZSB7IHBhZGRpbmdQbHVnaW4gfSBmcm9tIFwiLi4vcGFkZGluZy9wYWRkaW5nXCI7XG5pbXBvcnQgdHlwZSB7IG1hcmdpblBsdWdpbiB9IGZyb20gXCIuLi9tYXJnaW4vbWFyZ2luXCI7XG5pbXBvcnQgdHlwZSB7IG92ZXJmbG93UGx1Z2luIH0gZnJvbSBcIi4uL292ZXJmbG93L292ZXJmbG93XCI7XG5cbi8qKlxuICogV2hlcmUgYW4gZWxlbWVudCBzaXRzIHJlbGF0aXZlIHRvIGl0cyBhbmNob3I6IGEgc2lkZSBvZiB0aGUgYW5jaG9yLCBvcHRpb25hbGx5IHJlZmluZWQgd2l0aCBob3dcbiAqIHRoZSBlbGVtZW50IGV4dGVuZHMgYWxvbmcgdGhhdCBzaWRlLiBBIGJhcmUgc2lkZSBjZW50ZXJzIHRoZSBlbGVtZW50IG9uIGl0OyBgc3Bhbi08ZGlyZWN0aW9uPmBcbiAqIGFsaWducyB0aGVpciBlZGdlcyBhbmQgbGV0cyB0aGUgZWxlbWVudCBleHRlbmQgdG93YXJkIHRoYXQgZGlyZWN0aW9uLlxuICpcbiAqIFdoZW4gdGhlIGVsZW1lbnQgd291bGQgbm90IGZpdCB0aGUgdmlld3BvcnQsIGl0IGZhbGxzIGJhY2sgdG8gdGhlIG1pcnJvcmVkIHBvc2l0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgQW5jaG9yUG9zaXRpb24gPVxuICB8IFwidG9wXCJcbiAgfCBcImJvdHRvbVwiXG4gIHwgXCJsZWZ0XCJcbiAgfCBcInJpZ2h0XCJcbiAgfCBcInRvcCBzcGFuLWxlZnRcIlxuICB8IFwidG9wIHNwYW4tcmlnaHRcIlxuICB8IFwiYm90dG9tIHNwYW4tbGVmdFwiXG4gIHwgXCJib3R0b20gc3Bhbi1yaWdodFwiXG4gIHwgXCJsZWZ0IHNwYW4tdG9wXCJcbiAgfCBcImxlZnQgc3Bhbi1ib3R0b21cIlxuICB8IFwicmlnaHQgc3Bhbi10b3BcIlxuICB8IFwicmlnaHQgc3Bhbi1ib3R0b21cIjtcblxuLyoqXG4gKiBFaXRoZXIgYSBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgbmVhcmVzdCBhbmNlc3RvciBgJGFuY2hvcmAsIG9yIHRoZSBzYW1lIHBvc2l0aW9uIHJlbGF0aXZlIHRvIGFcbiAqIHBvaW50IGluIHRoZSB2aWV3cG9ydC5cbiAqL1xuZXhwb3J0IHR5cGUgQW5jaG9yZWRBdCA9XG4gIHwgQW5jaG9yUG9zaXRpb25cbiAgfCB7XG4gICAgICByZWFkb25seSBwb3NpdGlvbjogQW5jaG9yUG9zaXRpb247XG5cbiAgICAgIC8qKiBIb3cgZmFyIGZyb20gdGhlIGFuY2hvciB0aGUgZWxlbWVudCBzaXRzLiBEZWZhdWx0cyB0byBgXCJ4c1wiYC4gKi9cbiAgICAgIHJlYWRvbmx5IGdhcD86IFRTaGlydFNpemU7XG5cbiAgICAgIC8qKiBTaXQgYXQgdGhpcyB2aWV3cG9ydCBwb2ludCBpbnN0ZWFkIG9mIGF0IGFuIGFuY2hvci4gKi9cbiAgICAgIHJlYWRvbmx5IHBvaW50PzogUG9zaXRpb24yZDtcbiAgICB9O1xuXG5jb25zdCBkZWZhdWx0R2FwOiBUU2hpcnRTaXplID0gXCJ4c1wiO1xuXG5leHBvcnQgdHlwZSBBbmNob3JQbHVnaW5Qcm9wcyA9IHtcbiAgcmVhZG9ubHkgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBlbGVtZW50IGFuIGFuY2hvciBmb3IgdGhlIGVsZW1lbnRzIG9mIGl0cyBzdWJ0cmVlIHRoYXQgZGVjbGFyZSB7QGxpbmsgJGFuY2hvcmVkQXR9LlxuICAgKiBUaGUgbmVhcmVzdCBzdWNoIGFuY2VzdG9yIHdpbnMsIHNvIG5lc3Rpbmcgd29ya3Mgd2l0aG91dCBuYW1pbmcgYW55dGhpbmcuXG4gICAqL1xuICByZWFkb25seSAkYW5jaG9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUG9zaXRpb25zIHRoZSBlbGVtZW50IHJlbGF0aXZlIHRvIGFuIGFuY2hvciwgYWJvdmUgZXZlcnl0aGluZyBlbHNlIG9uIHRoZSBwYWdlIFx1MjAxNCBpdCBlc2NhcGVzXG4gICAqIGNsaXBwaW5nIGFuY2VzdG9ycyBhbmQgc3RhY2tpbmcgY29udGV4dHMsIHNvIGl0IG5lZWRzIG5vIHBvcnRhbC5cbiAgICpcbiAgICogVGhlIGFuY2hvciBpcyB0aGUgbmVhcmVzdCBhbmNlc3RvciBkZWNsYXJpbmcge0BsaW5rICRhbmNob3J9LCBvciB0aGUgZ2l2ZW4gcG9pbnQgd2hlbiBhIHBvaW50XG4gICAqIGlzIHByb3ZpZGVkIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSAkYW5jaG9yZWRBdD86IEFuY2hvcmVkQXQ7XG59O1xuXG5jb25zdCBhbmNob3JOYW1lQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4vKipcbiAqIExldHMge0BsaW5rIHVzZUFuY2hvck5hbWVGb3J9IG5hbWUgYW4gZWxlbWVudCBhcyBhbiBhbmNob3IuIEEgcGx1Z2luIHdob3NlIHdyYXBwZXIgbWF5IGFuY2hvclxuICogd2hhdCBpdCByZW5kZXJzIHRvIHRoZSBlbGVtZW50IGl0c2VsZiBhZGRzIHRoaXMgdG8gdGhlIGVsZW1lbnQncyBgJGNsYXNzTmFtZWAuIFRoZSBuYW1lIGZvbGxvd3NcbiAqIG9ubHkgd2hlbiBub3RoaW5nIGVsc2UgYW5jaG9ycyB0aGUgZWxlbWVudCwgc28gdGhlIGNsYXNzIGFsb25lIGNoYW5nZXMgbm90aGluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IGFuY2hvcmFibGVDbGFzc05hbWUgPSBzdHlsZXMuYW5jaG9yO1xuXG4vKipcbiAqIFRoZSBhbmNob3IgbmFtZSBmb3Igd2hhdCBhIHBsdWdpbidzIHdyYXBwZXIgcmVuZGVycyBiZXNpZGUgaXRzIGVsZW1lbnQgYW5kIHBvc2l0aW9ucyB3aXRoXG4gKiBgJGFuY2hvcmVkQXRgIFx1MjAxNCBhIG1lbnUsIHNheTogdGhhdCBvZiB0aGUgbmVhcmVzdCBgJGFuY2hvcmAgYXJvdW5kIHRoZSBlbGVtZW50LCB0aGUgZWxlbWVudCdzIG93blxuICogaW5jbHVkZWQsIG9yIGZhaWxpbmcgdGhhdCBhIG5hbWUgb2YgdGhlIGVsZW1lbnQncyBvd24sIHdoaWNoIHRoaXMgZ2l2ZXMgaXQuIFJlbmRlciB3aGF0IGlzXG4gKiBwb3NpdGlvbmVkIGluc2lkZSB7QGxpbmsgQW5jaG9yTmFtZVByb3ZpZGVyfSB3aXRoIHRoZSByZXR1cm5lZCBuYW1lLCBzbyBpdCBmaW5kcyBpdHMgYW5jaG9yLlxuICpcbiAqIFRoZSBlbGVtZW50IG5lZWRzIHtAbGluayBhbmNob3JhYmxlQ2xhc3NOYW1lfSBmb3IgYSBuYW1lIG9mIGl0cyBvd24gdG8gdGFrZSBlZmZlY3QsIGFuZCBpcyBuYW1lZFxuICogb25seSB3aGlsZSBgaXNBbmNob3JpbmdgOiB3aGlsZSB3aGF0IGlzIHBvc2l0aW9uZWQgYWdhaW5zdCBpdCBpcyBzaG93bi5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUFuY2hvck5hbWVGb3IgPSAoZWxlbWVudFJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD4sIGlzQW5jaG9yaW5nOiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGVuY2xvc2luZ0FuY2hvck5hbWUgPSB1c2VDb250ZXh0KGFuY2hvck5hbWVDb250ZXh0KTtcbiAgY29uc3QgYW5jaG9yc0l0c2VsZiA9IGlzQW5jaG9yaW5nICYmIGVuY2xvc2luZ0FuY2hvck5hbWUgPT09IHVuZGVmaW5lZDtcblxuICAvLyBOYW1lZCB0aGUgZmlyc3QgdGltZSBpdCBhbmNob3JzIHJhdGhlciB0aGFuIGZyb20gdXNlSWQ6IGV2ZXJ5IGVsZW1lbnQgdGhhdCBtYXkgb3BlbiBhIG1lbnVcbiAgLy8gd291bGQgb3RoZXJ3aXNlIHRha2UgYW4gaWQsIHNoaWZ0aW5nIHRob3NlIG9mIGV2ZXJ5dGhpbmcgcmVuZGVyZWQgYWZ0ZXIgaXQuXG4gIGNvbnN0IG93bkFuY2hvck5hbWVSZWYgPSB1c2VSZWY8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIGlmIChhbmNob3JzSXRzZWxmICYmIG93bkFuY2hvck5hbWVSZWYuY3VycmVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgb3duQW5jaG9yTmFtZVJlZi5jdXJyZW50ID0gYC0tYW5jaG9yLW93bi0keysrb3duQW5jaG9yTmFtZUNvdW50fWA7XG4gIH1cblxuICBjb25zdCBvd25BbmNob3JOYW1lID0gb3duQW5jaG9yTmFtZVJlZi5jdXJyZW50O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudDtcblxuICAgIGlmICghYW5jaG9yc0l0c2VsZiB8fCAhZWxlbWVudCB8fCBvd25BbmNob3JOYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGFuY2hvck5hbWVQcm9wZXJ0eSwgb3duQW5jaG9yTmFtZSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShhbmNob3JOYW1lUHJvcGVydHkpO1xuXG4gICAgICAvLyBMZWZ0IGFzIGl0IHdhcyBmb3VuZDogYW4gZWxlbWVudCB3aXRoIG5vIHN0eWxlIG9mIGl0cyBvd24ga2VlcHMgbm8gZW1wdHkgYXR0cmlidXRlLlxuICAgICAgaWYgKGVsZW1lbnQuZ2V0QXR0cmlidXRlKFwic3R5bGVcIikgPT09IFwiXCIpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJzdHlsZVwiKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbYW5jaG9yc0l0c2VsZiwgb3duQW5jaG9yTmFtZSwgZWxlbWVudFJlZl0pO1xuXG4gIHJldHVybiBlbmNsb3NpbmdBbmNob3JOYW1lID8/IG93bkFuY2hvck5hbWU7XG59O1xuXG5sZXQgb3duQW5jaG9yTmFtZUNvdW50ID0gMDtcblxuLyoqIFRlbGxzIHdoYXQgaXMgcmVuZGVyZWQgaW5zaWRlIHdoaWNoIGFuY2hvciB0byBwb3NpdGlvbiBhZ2FpbnN0OyBzZWUge0BsaW5rIHVzZUFuY2hvck5hbWVGb3J9LiAqL1xuZXhwb3J0IGNvbnN0IEFuY2hvck5hbWVQcm92aWRlciA9IGFuY2hvck5hbWVDb250ZXh0LlByb3ZpZGVyO1xuXG50eXBlIEFuY2hvcldyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgaXNBbmNob3I6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGFuY2hvcmVkQXQ6IEFuY2hvcmVkQXQgfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgQW5jaG9yV3JhcHBlckNvbXBvbmVudCA9ICh7XG4gIGlzQW5jaG9yLFxuICBhbmNob3JlZEF0LFxuICBjb250cmlidXRlUmVmLFxuICBjb250cmlidXRlUHJvcHMsXG4gIGNoaWxkcmVuLFxufTogQW5jaG9yV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnN0IG93bkFuY2hvck5hbWUgPSB0b0FuY2hvck5hbWUodXNlSWQoKSk7XG4gIGNvbnN0IGluaGVyaXRlZEFuY2hvck5hbWUgPSB1c2VDb250ZXh0KGFuY2hvck5hbWVDb250ZXh0KTtcbiAgY29uc3QgZWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBwb2ludFJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnRyaWJ1dGVSZWYoXG4gICAgdXNlQ2FsbGJhY2soKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgZWxlbWVudFJlZi5jdXJyZW50ID0gZWxlbWVudDtcbiAgICB9LCBbXSksXG4gICk7XG5cbiAgY29uc3QgcG9zaXRpb24gPSB0eXBlb2YgYW5jaG9yZWRBdCA9PT0gXCJzdHJpbmdcIiA/IGFuY2hvcmVkQXQgOiBhbmNob3JlZEF0Py5wb3NpdGlvbjtcbiAgY29uc3QgcG9pbnQgPSB0eXBlb2YgYW5jaG9yZWRBdCA9PT0gXCJvYmplY3RcIiA/IGFuY2hvcmVkQXQucG9pbnQgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGdhcCA9IHR5cGVvZiBhbmNob3JlZEF0ID09PSBcIm9iamVjdFwiID8gKGFuY2hvcmVkQXQuZ2FwID8/IGRlZmF1bHRHYXApIDogZGVmYXVsdEdhcDtcblxuICBpZiAocG9zaXRpb24gJiYgIXBvaW50ICYmICFpbmhlcml0ZWRBbmNob3JOYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRyaWVkIHRvIHBvc2l0aW9uIGFuIGVsZW1lbnQgYXQgXCIke3Bvc2l0aW9ufVwiIHdpdGhvdXQgYW4gYW5jaG9yLiBFaXRoZXIgZ2l2ZSBhbiBhbmNlc3RvciB0aGUgJGFuY2hvciBwcm9wLCBvciBhbmNob3IgdG8gYSBwb2ludCBpbnN0ZWFkLmAsXG4gICAgKTtcbiAgfVxuXG4gIC8vIEEgcG9pbnQgYW5jaG9yIGlzIHRoZSBlbGVtZW50J3Mgb3duOyBvdGhlcndpc2UgaXQgcG9zaXRpb25zIGFnYWluc3Qgd2hhdGV2ZXIgYW5jaG9yIGVuY2xvc2VzIGl0LlxuICBjb25zdCBhbmNob3JOYW1lVG9Qb3NpdGlvbkFnYWluc3QgPSBwb2ludCA/IG93bkFuY2hvck5hbWUgOiBpbmhlcml0ZWRBbmNob3JOYW1lO1xuXG4gIGlmIChhbmNob3JlZEF0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb250cmlidXRlUHJvcHMoeyBwb3BvdmVyOiBcIm1hbnVhbFwiIH0pO1xuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudFJlZi5jdXJyZW50O1xuXG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGlzQW5jaG9yKSB7XG4gICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGFuY2hvck5hbWVQcm9wZXJ0eSwgb3duQW5jaG9yTmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uKSB7XG4gICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHBvc2l0aW9uUHJvcGVydHksIHBvc2l0aW9uKTtcbiAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoZ2FwUHJvcGVydHksIGAke3RTaGlydFNpemVJblBpeGVscyhnYXApfXB4YCk7XG5cbiAgICAgIC8vIE9ubHkgdG93YXJkIHRoZSBhbmNob3IsIHNvIHRoZSBlbGVtZW50IHN0aWxsIGxpbmVzIHVwIHdpdGggaXQgb24gdGhlIG90aGVyIGF4aXMuIEFcbiAgICAgIC8vIGZhbGxiYWNrIHRoYXQgbWlycm9ycyB0aGUgcG9zaXRpb24gbWlycm9ycyB0aGlzIG1hcmdpbiB3aXRoIGl0LlxuICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShtYXJnaW5Qcm9wZXJ0eVRvd2FyZHNBbmNob3IocG9zaXRpb24pLCBgJHt0U2hpcnRTaXplSW5QaXhlbHMoZ2FwKX1weGApO1xuXG4gICAgICBpZiAoYW5jaG9yTmFtZVRvUG9zaXRpb25BZ2FpbnN0KSB7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkocG9zaXRpb25BbmNob3JQcm9wZXJ0eSwgYW5jaG9yTmFtZVRvUG9zaXRpb25BZ2FpbnN0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHBvaW50KSB7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkocG9pbnRYUHJvcGVydHksIGAke3BvaW50Lnh9cHhgKTtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShwb2ludFlQcm9wZXJ0eSwgYCR7cG9pbnQueX1weGApO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgLy8gVGhlIHBvaW50IHJpc2VzIHRvIHRoZSB0b3AgbGF5ZXIgYWxvbmcgd2l0aCB3aGF0IGlzIGFuY2hvcmVkIHRvIGl0LiBBIGBmaXhlZGAgZWxlbWVudCByZXNvbHZlc1xuICAvLyBhZ2FpbnN0IHRoZSBuZWFyZXN0IGFuY2VzdG9yIHRoYXQgdHJhbnNmb3JtcywgZmlsdGVycyBvciBjb250YWlucyBpdHMgc3VidHJlZSwgc28gYSBwb2ludCBsZWZ0XG4gIC8vIGluIHRoZSB0cmVlIGxhbmRzIGF0IHRoZSBjdXJzb3IgcGx1cyB0aGF0IGFuY2VzdG9yJ3Mgb3duIG9mZnNldCBcdTIwMTQgd2hpY2ggaXMgaG93IGEgbWVudSBvcGVuZWRcbiAgLy8gb3ZlciBhIG5hdmlnYXRvciBpdGVtIHVzZWQgdG8gYXBwZWFyIGh1bmRyZWRzIG9mIHBpeGVscyBiZWxvdyB0aGUgY3Vyc29yLlxuICAvL1xuICAvLyBTaG93biBiZWZvcmUgdGhlIGVsZW1lbnQgYW5jaG9yZWQgdG8gaXQ6IGFuIGFuY2hvciBoYXMgdG8gcmVhY2ggdGhlIHRvcCBsYXllciBmaXJzdCwgb3IgdGhlXG4gIC8vIGVsZW1lbnQgcG9zaXRpb25pbmcgYWdhaW5zdCBpdCBmaW5kcyBubyBhbmNob3IgYXQgYWxsIGFuZCBsYW5kcyBpbiB0aGUgdmlld3BvcnQncyBjb3JuZXIuXG4gIC8vXG4gIC8vIE9uY2UsIG9uIG1vdW50OiBhbiBlbGVtZW50IGlzIGFuY2hvcmVkIHRvIGEgcG9pbnQgZm9yIGFzIGxvbmcgYXMgaXQgaXMgbW91bnRlZCwgc2luY2UgdGhlIHBvaW50XG4gIC8vIGlzIHdoZXJlIHRoZSBjdXJzb3Igd2FzIHdoZW4gd2hhdGV2ZXIgb3BlbmVkIGl0IHdhcyBvcGVuZWQuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IHBvaW50UmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoIWVsZW1lbnQgfHwgIWlzUG9wb3ZlckNhcGFibGUoZWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlbGVtZW50LnNob3dQb3BvdmVyKCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgZWxlbWVudC5oaWRlUG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50UmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoIXBvc2l0aW9uIHx8ICFlbGVtZW50IHx8ICFpc1BvcG92ZXJDYXBhYmxlKGVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZWxlbWVudC5zaG93UG9wb3ZlcigpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChlbGVtZW50LmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIGVsZW1lbnQuaGlkZVBvcG92ZXIoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbcG9zaXRpb25dKTtcblxuICBjb25zdCBjb250ZW50ID0gcG9pbnQgPyAoXG4gICAgPD5cbiAgICAgIHsvKiBBIHplcm8tc2l6ZSBhbmNob3IgYXQgdGhlIHBvaW50LCBzbyBhIGN1cnNvci1hbmNob3JlZCBlbGVtZW50IHBvc2l0aW9ucyBsaWtlIGFueSBvdGhlci4gKi99XG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17cG9pbnRSZWYgYXMgUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50Pn1cbiAgICAgICAgcG9wb3Zlcj1cIm1hbnVhbFwiXG4gICAgICAgIGRhdGEtYW5jaG9yLXBvaW50LXRlc3RcbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMuYW5jaG9yUG9pbnR9XG4gICAgICAgIHN0eWxlPXtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBbYW5jaG9yTmFtZVByb3BlcnR5XTogb3duQW5jaG9yTmFtZSxcbiAgICAgICAgICAgIFtwb2ludFhQcm9wZXJ0eV06IGAke3BvaW50Lnh9cHhgLFxuICAgICAgICAgICAgW3BvaW50WVByb3BlcnR5XTogYCR7cG9pbnQueX1weGAsXG4gICAgICAgICAgfSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzXG4gICAgICAgIH1cbiAgICAgIC8+XG5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8Lz5cbiAgKSA6IChcbiAgICBjaGlsZHJlblxuICApO1xuXG4gIGlmIChpc0FuY2hvcikge1xuICAgIHJldHVybiA8YW5jaG9yTmFtZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e293bkFuY2hvck5hbWV9Pntjb250ZW50fTwvYW5jaG9yTmFtZUNvbnRleHQuUHJvdmlkZXI+O1xuICB9XG5cbiAgcmV0dXJuIDw+e2NvbnRlbnR9PC8+O1xufTtcblxuZXhwb3J0IGNvbnN0IGFuY2hvclBsdWdpbiA9IGdldFBsdWdpbjxcbiAgQW5jaG9yUGx1Z2luUHJvcHMsXG4gIFtcbiAgICB0eXBlb2YgY2xhc3NOYW1lUGx1Z2luLFxuICAgIHR5cGVvZiBjb2xvclBsdWdpbixcbiAgICB0eXBlb2YgYmFja2dyb3VuZENvbG9yUGx1Z2luLFxuICAgIHR5cGVvZiBib3JkZXJQbHVnaW4sXG4gICAgdHlwZW9mIHBhZGRpbmdQbHVnaW4sXG4gICAgdHlwZW9mIG1hcmdpblBsdWdpbixcbiAgICB0eXBlb2Ygb3ZlcmZsb3dQbHVnaW4sXG4gIF1cbj4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGFuY2hvciwgJGFuY2hvcmVkQXQsICRjbGFzc05hbWUgfSA9IHByb3BzO1xuXG4gIGlmICghJGFuY2hvciAmJiAkYW5jaG9yZWRBdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHsgJGFuY2hvcjogdW5kZWZpbmVkLCAkYW5jaG9yZWRBdDogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRhbmNob3I6IHVuZGVmaW5lZCxcbiAgICAkYW5jaG9yZWRBdDogdW5kZWZpbmVkLFxuXG4gICAgLy8gUmlzaW5nIHRvIHRoZSB0b3AgbGF5ZXIgaXMgYSB0ZWNobmljYWxpdHkgb2YgcG9zaXRpb25pbmcsIGJ1dCB0aGUgYnJvd3NlciBtYWtlcyBpdCBhIGxvb2s6XG4gICAgLy8gY29sb3VycyBvZiBpdHMgb3duLCBhIGJvcmRlciwgcGFkZGluZywgYW5kIGEgbWFyZ2luIHRoYXQgd291bGQgY2VudGVyIHRoZSBlbGVtZW50LiBVbmRvIHRoYXQsXG4gICAgLy8gc28gYW4gZWxlbWVudCBwb3NpdGlvbmVkIHRoaXMgd2F5IGxvb2tzIGxpa2UgaXQgZG9lcyBhbnl3aGVyZSBlbHNlLCBhbmQgbGV0IHdoYXRldmVyIGl0IHNheXNcbiAgICAvLyBhYm91dCBpdHNlbGYgd2luLlxuICAgIC4uLigkYW5jaG9yZWRBdCAhPT0gdW5kZWZpbmVkICYmIHtcbiAgICAgICRjb2xvcjogcHJvcHMuJGNvbG9yID8/IFwiaW5oZXJpdFwiLFxuICAgICAgJGJhY2tncm91bmRDb2xvcjogcHJvcHMuJGJhY2tncm91bmRDb2xvciA/PyBcInRyYW5zcGFyZW50XCIsXG4gICAgICAkYm9yZGVyOiB7IHdpZHRoOiBcInplcm9cIiwgLi4ucHJvcHMuJGJvcmRlciB9LFxuICAgICAgJHBhZGRpbmc6IHByb3BzLiRwYWRkaW5nID8/IFwiemVyb1wiLFxuICAgICAgJG1hcmdpbjogcHJvcHMuJG1hcmdpbiA/PyBcInplcm9cIixcbiAgICAgICRvdmVyZmxvdzogcHJvcHMuJG92ZXJmbG93ID8/IFwidmlzaWJsZVwiLFxuICAgIH0pLFxuXG4gICAgJGNsYXNzTmFtZTogY3NzTmFtZXMoJGNsYXNzTmFtZSwge1xuICAgICAgW3N0eWxlcy5hbmNob3JdOiAhISRhbmNob3IsXG4gICAgICBbc3R5bGVzLmFuY2hvcmVkQXRdOiAkYW5jaG9yZWRBdCAhPT0gdW5kZWZpbmVkLFxuICAgIH0pLFxuXG4gICAgJHdyYXBwZXI6IHtcbiAgICAgIENvbXBvbmVudDogQW5jaG9yV3JhcHBlckNvbXBvbmVudCxcbiAgICAgIHByb3BzOiB7IGlzQW5jaG9yOiAhISRhbmNob3IsIGFuY2hvcmVkQXQ6ICRhbmNob3JlZEF0IH0sXG4gICAgfSxcbiAgfTtcbn0pO1xuXG5jb25zdCBtYXJnaW5Qcm9wZXJ0eVRvd2FyZHNBbmNob3IgPSAocG9zaXRpb246IEFuY2hvclBvc2l0aW9uKSA9PiB7XG4gIGlmIChwb3NpdGlvbi5zdGFydHNXaXRoKFwiYm90dG9tXCIpKSB7XG4gICAgcmV0dXJuIFwibWFyZ2luLXRvcFwiO1xuICB9XG5cbiAgaWYgKHBvc2l0aW9uLnN0YXJ0c1dpdGgoXCJ0b3BcIikpIHtcbiAgICByZXR1cm4gXCJtYXJnaW4tYm90dG9tXCI7XG4gIH1cblxuICByZXR1cm4gcG9zaXRpb24uc3RhcnRzV2l0aChcInJpZ2h0XCIpID8gXCJtYXJnaW4tbGVmdFwiIDogXCJtYXJnaW4tcmlnaHRcIjtcbn07XG5cbmNvbnN0IGFuY2hvck5hbWVQcm9wZXJ0eSA9IFwiLS1hbmNob3ItbmFtZVwiO1xuY29uc3QgZ2FwUHJvcGVydHkgPSBcIi0tYW5jaG9yLWdhcFwiO1xuY29uc3QgcG9zaXRpb25BbmNob3JQcm9wZXJ0eSA9IFwiLS1hbmNob3ItdGFyZ2V0XCI7XG5jb25zdCBwb3NpdGlvblByb3BlcnR5ID0gXCItLWFuY2hvci1wb3NpdGlvblwiO1xuY29uc3QgcG9pbnRYUHJvcGVydHkgPSBcIi0tYW5jaG9yLXBvaW50LXhcIjtcbmNvbnN0IHBvaW50WVByb3BlcnR5ID0gXCItLWFuY2hvci1wb2ludC15XCI7XG5cbi8qKiBBbmNob3IgbmFtZXMgYXJlIGRhc2hlZCBpZGVudHMsIHNvIHRoZSBnZW5lcmF0ZWQgaWQgaGFzIHRvIGxvc2UgZXZlcnl0aGluZyBlbHNlLiAqL1xuY29uc3QgdG9BbmNob3JOYW1lID0gKGlkOiBzdHJpbmcpID0+IGAtLWFuY2hvci0ke2lkLnJlcGxhY2UoL1teYS16QS1aMC05XS9nLCBcIlwiKX1gO1xuXG50eXBlIFBvcG92ZXJDYXBhYmxlID0gSFRNTEVsZW1lbnQgJiB7IHNob3dQb3BvdmVyOiBWb2lkRnVuY3Rpb247IGhpZGVQb3BvdmVyOiBWb2lkRnVuY3Rpb24gfTtcblxuY29uc3QgaXNQb3BvdmVyQ2FwYWJsZSA9IChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGVsZW1lbnQgaXMgUG9wb3ZlckNhcGFibGUgPT5cbiAgdHlwZW9mIChlbGVtZW50IGFzIFBhcnRpYWw8UG9wb3ZlckNhcGFibGU+KS5zaG93UG9wb3ZlciA9PT0gXCJmdW5jdGlvblwiO1xuIiwgImltcG9ydCB0eXBlIHsgRm9jdXNhYmxlUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9mb2N1c2FibGVcIjtcblxuZXhwb3J0IHR5cGUgJEZvY3VzYWJsZVByb3BzPEZvY3VzZWRJdGVtPiA9IFJlcXVpcmVkPEZvY3VzYWJsZVBsdWdpblByb3BzPEZvY3VzZWRJdGVtPj5bXCIkZm9jdXNhYmxlXCJdO1xuXG4vKipcbiAqIElkZW50aWZpZXMgYSBzZXQgb2YgZm9jdXNhYmxlcyBjb21wZXRpbmcgZm9yIG9uZSBmb2N1c2VkIGl0ZW0uIEVsZW1lbnRzIGpvaW4gaXQgYnkgZGVjbGFyaW5nXG4gKiBgJGZvY3VzYWJsZWA7IG5vdGhpbmcgZW51bWVyYXRlcyB0aGVtIGF0IHRoZSBjYWxsIHNpdGUuXG4gKi9cbmV4cG9ydCB0eXBlIEZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0ge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBpc0tleWJvYXJkTmF2aWdhYmxlOiBmYWxzZTtcbiAgZm9jdXNhYmxlOiAoaXRlbTogRm9jdXNlZEl0ZW0pID0+ICRGb2N1c2FibGVQcm9wczxGb2N1c2VkSXRlbT47XG59O1xuXG4vKiogV2hpY2ggYXJyb3cga2V5cyBtb3ZlIGZvY3VzIHdpdGhpbiBhIGtleWJvYXJkLW5hdmlnYWJsZSBjb250ZXh0LiAqL1xuZXhwb3J0IHR5cGUgS2V5Ym9hcmROYXZpZ2F0aW9uT3JpZW50YXRpb24gPSBcInZlcnRpY2FsXCIgfCBcImhvcml6b250YWxcIiB8IFwiYm90aFwiO1xuXG4vKipcbiAqIEEgZm9jdXNhYmxlIGNvbnRleHQgd2hvc2UgbWVtYmVycyBhcmUgYWxzbyBuYXZpZ2F0ZWQgd2l0aCBhcnJvdyBrZXlzLCBpbiB0aGUgb3JkZXIgdGhleSBzdGF0ZS5cbiAqIFRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIGlzIGZvY3VzZWQgd2hlbiB0aGUgbWVtYmVycyBhcHBlYXIsIHVubGVzcyB0aGUgY29udGV4dCBzYXlzIG90aGVyd2lzZSxcbiAqIGFuZCBmb2N1cyByZXR1cm5zIHRvIHRoZSBlbmNsb3NpbmcgY29udGV4dCB3aGVuIHRoZXkgZ28gYXdheS5cbiAqL1xuZXhwb3J0IHR5cGUgS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPiA9IHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgaXNLZXlib2FyZE5hdmlnYWJsZTogdHJ1ZTtcbiAgcmVhZG9ubHkgb3JpZW50YXRpb246IEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uO1xuICByZWFkb25seSB0YWtlc0ZvY3VzQXNJdEFwcGVhcnM6IGJvb2xlYW47XG4gIGZvY3VzYWJsZTogKGl0ZW06IEZvY3VzZWRJdGVtLCBvcmRlck51bWJlcjogbnVtYmVyKSA9PiAkRm9jdXNhYmxlUHJvcHM8Rm9jdXNlZEl0ZW0+O1xufTtcblxuZXhwb3J0IHR5cGUgQW55Rm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbSA9IGFueT4gPVxuICB8IEZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+XG4gIHwgS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPjtcblxuY29uc3QgY29udGV4dHNCeUtleSA9IG5ldyBNYXA8c3RyaW5nLCBBbnlGb2N1c2FibGVDb250ZXh0PigpO1xuXG4vKipcbiAqIERlY2xhcmVzIGEgZm9jdXNhYmxlIGNvbnRleHQuIFRoZSBzYW1lIGlkIGFsd2F5cyB5aWVsZHMgdGhlIHNhbWUgY29udGV4dCwgc28gY2FsbGluZyB0aGlzIGR1cmluZ1xuICogcmVuZGVyIGlzIHN0YWJsZSBcdTIwMTQgd2hpY2ggaXMgd2hhdCBsZXRzIGEgc3VyZmFjZSB3aXRoIHNldmVyYWwgbGl2ZSBpbnN0YW5jZXMgbmFtZSBvbmUgY29udGV4dCBwZXJcbiAqIGluc3RhbmNlLlxuICovXG5leHBvcnQgY29uc3QgZ2V0Rm9jdXNhYmxlQ29udGV4dCA9IDxGb2N1c2VkSXRlbSw+KGlkOiBzdHJpbmcpOiBGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPiA9PlxuICBnZXRPckNyZWF0ZUNvbnRleHQoYGZvY3VzYWJsZToke2lkfWAsICgpID0+IHtcbiAgICBjb25zdCBjb250ZXh0OiBGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPiA9IHtcbiAgICAgIGlkLFxuICAgICAgaXNLZXlib2FyZE5hdmlnYWJsZTogZmFsc2UsXG4gICAgICBmb2N1c2FibGU6IChpdGVtKSA9PiAoeyBjb250ZXh0LCBpdGVtIH0pLFxuICAgIH07XG5cbiAgICByZXR1cm4gY29udGV4dDtcbiAgfSk7XG5cbmV4cG9ydCB0eXBlIEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBXaGljaCBhcnJvdyBrZXlzIG1vdmUgZm9jdXMuIERvd253YXJkcyBieSBkZWZhdWx0LCBhcyBtb3N0IHNldHMgb2YgdGhpbmdzIGFyZSBsYWlkIG91dDogdGhlXG4gICAqIGtleXMgb2YgdGhlIG90aGVyIGF4aXMgYXJlIHRoZW4gbGVmdCB0byB3aGF0ZXZlciB0aGUgbWVtYmVycyB3YW50IHRoZW0gZm9yLCBzdWNoIGFzIGEgbWVtYmVyXG4gICAqIG9wZW5pbmcgc29tZXRoaW5nIG9mIGl0cyBvd24gd2l0aCBBcnJvd1JpZ2h0LlxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZW50YXRpb24/OiBLZXlib2FyZE5hdmlnYXRpb25PcmllbnRhdGlvbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbG93ZXN0IG9yZGVyIG51bWJlciBpcyBmb2N1c2VkIGFzIHRoZSBtZW1iZXJzIGFwcGVhci4gSXQgaXMgYnkgZGVmYXVsdDogYSBzZXQgb2ZcbiAgICogbWVtYmVycyBhcHBlYXJpbmcgaXMgdXN1YWxseSBzb21ldGhpbmcgdGhlIHVzZXIgYXNrZWQgZm9yIGFuZCB3aWxsIGdvIG9uIHdpdGguIE5vdCBzbyBmb3IgYSBzZXRcbiAgICogdGhhdCBhcHBlYXJzIGJlY2F1c2UgdGhlIHBvaW50ZXIgcmVzdHMgb24gc29tZXRoaW5nLCB3aGVyZSB3aGF0IHRoZSB1c2VyIGlzIGxvb2tpbmcgYXQgaXMgd2hhdFxuICAgKiB0aGUgcG9pbnRlciBpcyBvbiwgYW5kIGZvY3VzIHN0YXlzIHRoZXJlIHVudGlsIGVpdGhlciB0aGUgcG9pbnRlciBvciB0aGUga2V5Ym9hcmQgbW92ZXMgaXQuXG4gICAqL1xuICByZWFkb25seSB0YWtlc0ZvY3VzQXNJdEFwcGVhcnM/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBEZWNsYXJlcyBhIGZvY3VzYWJsZSBjb250ZXh0IHdob3NlIG1lbWJlcnMgYXJlIG5hdmlnYXRlZCB3aXRoIGFycm93IGtleXMuIEFzIHdpdGhcbiAqIHtAbGluayBnZXRGb2N1c2FibGVDb250ZXh0fSwgdGhlIHNhbWUgaWQgYWx3YXlzIHlpZWxkcyB0aGUgc2FtZSBjb250ZXh0IFx1MjAxNCB0aGUgc2FtZSBpZCB3aXRoIHRoZVxuICogc2FtZSBvcHRpb25zLCB0aGF0IGlzLiBBIGNvbnRleHQgd2l0aCBvdGhlciBvcHRpb25zIGlzIGEgY29udGV4dCBvZiBpdHMgb3duLCB3aGF0ZXZlciBpdCBpc1xuICogbmFtZWQsIHNvIGEgc3VyZmFjZSB0aGF0IGFza3MgZm9yIGl0cyBjb250ZXh0IGJ5IHRoZSBzYW1lIG5hbWUgd2l0aCBvdGhlciBvcHRpb25zIG1vdmVzIGl0c1xuICogbWVtYmVycyB0aGVyZSBhcyB0aGV5IHJlbmRlciBhZ2FpbiwgYW5kIHRoZXkgYXBwZWFyIGFuZXcgYXMgZmFyIGFzIHRoYXQgY29udGV4dCBpcyBjb25jZXJuZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQgPSA8Rm9jdXNlZEl0ZW0sPihcbiAgaWQ6IHN0cmluZyxcbiAgb3B0aW9uczogS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0T3B0aW9ucyA9IHt9LFxuKTogS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPiA9PiB7XG4gIGNvbnN0IG9yaWVudGF0aW9uID0gb3B0aW9ucy5vcmllbnRhdGlvbiA/PyBcInZlcnRpY2FsXCI7XG4gIGNvbnN0IHRha2VzRm9jdXNBc0l0QXBwZWFycyA9IG9wdGlvbnMudGFrZXNGb2N1c0FzSXRBcHBlYXJzID8/IHRydWU7XG5cbiAgY29uc3Qga2V5ID0gYGtleWJvYXJkLW5hdmlnYWJsZToke2lkfXwke29yaWVudGF0aW9ufXwke3Rha2VzRm9jdXNBc0l0QXBwZWFycyA/IFwidGFraW5nXCIgOiBcImxlYXZpbmdcIn0tZm9jdXNgO1xuXG4gIHJldHVybiBnZXRPckNyZWF0ZUNvbnRleHQoa2V5LCAoKSA9PiB7XG4gICAgY29uc3QgY29udGV4dDogS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPiA9IHtcbiAgICAgIGlkLFxuICAgICAgaXNLZXlib2FyZE5hdmlnYWJsZTogdHJ1ZSxcbiAgICAgIG9yaWVudGF0aW9uLFxuICAgICAgdGFrZXNGb2N1c0FzSXRBcHBlYXJzLFxuICAgICAgZm9jdXNhYmxlOiAoaXRlbSwgb3JkZXJOdW1iZXIpID0+ICh7IGNvbnRleHQsIGl0ZW0sIG9yZGVyTnVtYmVyIH0pLFxuICAgIH07XG5cbiAgICByZXR1cm4gY29udGV4dDtcbiAgfSk7XG59O1xuXG5jb25zdCBnZXRPckNyZWF0ZUNvbnRleHQgPSA8VCBleHRlbmRzIEFueUZvY3VzYWJsZUNvbnRleHQ+KGtleTogc3RyaW5nLCBjcmVhdGU6ICgpID0+IFQpOiBUID0+IHtcbiAgY29uc3QgZXhpc3RpbmcgPSBjb250ZXh0c0J5S2V5LmdldChrZXkpO1xuXG4gIGlmIChleGlzdGluZykge1xuICAgIHJldHVybiBleGlzdGluZyBhcyBUO1xuICB9XG5cbiAgY29uc3QgY3JlYXRlZCA9IGNyZWF0ZSgpO1xuXG4gIGNvbnRleHRzQnlLZXkuc2V0KGtleSwgY3JlYXRlZCk7XG5cbiAgcmV0dXJuIGNyZWF0ZWQ7XG59O1xuIiwgImltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgJEZvY3VzYWJsZVByb3BzIH0gZnJvbSBcIi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5cbi8qKlxuICogQ2FycmllcyB0aGUgZm9jdXNhYmxlIGFuIGVsZW1lbnQgaXMsIGFzIGRlY2lkZWQgYnkgdGhlIHN1cmZhY2UgaXQgcmVuZGVycyBpbiByYXRoZXIgdGhhbiBieSB0aGVcbiAqIGVsZW1lbnQgaXRzZWxmOiB3aGljaCBjb250ZXh0IGl0IGNvbXBldGVzIGluLCB3aGljaCBpdGVtIGl0IHN0YW5kcyBmb3IsIGFuZCB3aGVyZSBpdCBzaXRzIGFtb25nXG4gKiB0aGUgb3RoZXJzLlxuICpcbiAqIEEgc3VyZmFjZSB0aGF0IGtub3dzIGl0cyBpdGVtcyBcdTIwMTQgYSBtZW51LCBhIHRvb2xiYXIgXHUyMDE0IHByb3ZpZGVzIG9uZSBvZiB0aGVzZSBwZXIgaXRlbTsgd2hhdGV2ZXJcbiAqIGRyYXdzIHRoZSBpdGVtIGFkb3B0cyBpdCB0aHJvdWdoIHtAbGluayB1c2VGb2N1c2FibGVJdGVtfSB3aGlsZSBrbm93aW5nIG5vdGhpbmcgYWJvdXQgdGhlXG4gKiBzdXJmYWNlLCB3aGljaCBpcyB3aGF0IGxldHMgYSBkdW1iIGNvbXBvbmVudCBiZSBrZXlib2FyZC1uYXZpZ2FibGUgaW4gb25lIHN1cmZhY2UgYW5kIG9yZGluYXJ5XG4gKiBpbiBhbm90aGVyLlxuICovXG5leHBvcnQgY29uc3QgY29udGV4dEZvckZvY3VzYWJsZUl0ZW0gPSBjcmVhdGVDb250ZXh0PCRGb2N1c2FibGVQcm9wczxhbnk+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4vKipcbiAqIFRoZSBgJGZvY3VzYWJsZWAgb2YgdGhlIGl0ZW0gYSBjb21wb25lbnQgZHJhd3MsIHdoZW4gdGhlIHN1cmZhY2UgYXJvdW5kIGl0IGRlY2lkZWQgb25lLlxuICogYHVuZGVmaW5lZGAgb3V0c2lkZSBzdWNoIGEgc3VyZmFjZSwgd2hpY2ggaXMgd2hhdCBtYWtlcyBhZG9wdGluZyBpdCBhIG1hdHRlciBvZiBwYXNzaW5nIGl0IG9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IFJvdyA9ICh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSA9PiAoXG4gKiAgIDxDbGlja2FibGVMaSAkZm9jdXNhYmxlPXt1c2VGb2N1c2FibGVJdGVtKCl9PntjaGlsZHJlbn08L0NsaWNrYWJsZUxpPlxuICogKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgdXNlRm9jdXNhYmxlSXRlbSA9ICgpID0+IHVzZUNvbnRleHQoY29udGV4dEZvckZvY3VzYWJsZUl0ZW0pO1xuIiwgImltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHsgZ2V0SG92ZXJhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9ob3ZlcmFibGVcIjtcbmltcG9ydCB7IHR5cGUgTXV0YWJsZVJlZk9iamVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjb250ZXh0SXNCZWluZ0hvdmVyZWRJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3ByaXZhdGUvY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IGNvbnN0IHVzZUxvY2FsSG92ZXJhYmxlID0gPEVsZW0gZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSA9PiB7XG4gIGNvbnN0IGhvdmVyYWJsZUNvbnRleHQgPSB1c2VNZW1vKCgpID0+IGdldEhvdmVyYWJsZUNvbnRleHQ8TXV0YWJsZVJlZk9iamVjdDxFbGVtIHwgbnVsbD4+KCksIFtdKTtcbiAgY29uc3QgcmVmID0gdXNlUmVmPEVsZW0+KG51bGwpO1xuICBjb25zdCBpdGVtQmVpbmdIb3ZlcmVkID0gdXNlU3luY0luamVjdChjb250ZXh0SXNCZWluZ0hvdmVyZWRJbmplY3RhYmxlLCBob3ZlcmFibGVDb250ZXh0KTtcblxuICByZXR1cm4ge1xuICAgIHJlZixcbiAgICBjb250ZXh0OiBob3ZlcmFibGVDb250ZXh0LmhvdmVyYWJsZShyZWYpLFxuICAgIGNvbXBvbmVudElzSG92ZXJlZDogaXRlbUJlaW5nSG92ZXJlZCxcbiAgfTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FDQUEsK0JBQWdEO0FBRWhELG1CQUErQztBQXdEdEM7QUFwQ0YsSUFBTSxvQkFBb0IsQ0FBQyxtQkFBa0Q7QUFDbEYsUUFBTSwrQkFBMkIscUJBQTBCLE1BQVM7QUFDcEUsUUFBTSxpQkFBYSxxQkFBTyxjQUFjO0FBRXhDLDhCQUFVLE1BQU07QUFDZCxlQUFXLFVBQVU7QUFBQSxFQUN2QixDQUFDO0FBRUQsOEJBQVUsTUFBTTtBQUNkLFVBQU0sNEJBQTRCLENBQUMsVUFBd0I7QUFDekQsVUFBSSxVQUFVLHlCQUF5QixTQUFTO0FBQzlDLG1CQUFXLFFBQVEsS0FBSztBQUFBLE1BQzFCO0FBQUEsSUFDRjtBQUVBLGFBQVMsaUJBQWlCLGVBQWUseUJBQXlCO0FBRWxFLFdBQU8sTUFBTSxTQUFTLG9CQUFvQixlQUFlLHlCQUF5QjtBQUFBLEVBQ3BGLEdBQUcsQ0FBQyxDQUFDO0FBRUwsUUFBTSwyQkFBdUIsMEJBQVksQ0FBQyxVQUE4QjtBQUN0RSw2QkFBeUIsVUFBVSxNQUFNO0FBQUEsRUFDM0MsR0FBRyxDQUFDLENBQUM7QUFFTCxTQUFPLEVBQUUscUJBQXFCO0FBQ2hDO0FBUUEsSUFBTSxpQ0FBaUMsQ0FBQyxFQUFFLGdCQUFnQixpQkFBaUIsU0FBUyxNQUFrQztBQUNwSCxrQkFBZ0Isa0JBQWtCLGNBQWMsQ0FBQztBQUVqRCxTQUFPLDJFQUFHLFVBQVM7QUFDckI7QUFFTyxJQUFNLDJCQUF1QixvQ0FBcUMsQ0FBQyxVQUFVO0FBQ2xGLFFBQU0sRUFBRSxnQkFBZ0IsSUFBSTtBQUU1QixNQUFJLG9CQUFvQixRQUFXO0FBQ2pDLFdBQU8sRUFBRSxpQkFBaUIsT0FBVTtBQUFBLEVBQ3RDO0FBRUEsU0FBTztBQUFBLElBQ0wsaUJBQWlCO0FBQUEsSUFDakIsVUFBVTtBQUFBLE1BQ1IsV0FBVztBQUFBLE1BQ1gsT0FBTyxFQUFFLGdCQUFnQixnQkFBZ0I7QUFBQSxJQUMzQztBQUFBLEVBQ0Y7QUFDRixDQUFDOzs7QUMzRUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBQUFBLHFCQUFtRDs7O0FDQW5EO0FBQUE7QUFBQTtBQUFBO0FBQUEsd0JBQStCO0FBU3hCLElBQU0sMkNBQXVDLGtDQUFlO0FBQUEsRUFDakUsSUFBSTtBQUFBLEVBRUosYUFBYSxNQUFNLENBQUMsVUFBOEMsVUFDaEUsb0JBQUksSUFBK0M7QUFDdkQsQ0FBQzs7O0FEWEQsOEJBQThCO0FBS3ZCLElBQU0sK0JBQTJCLHVDQUF3RDtBQUFBLEVBQzlGLElBQUk7QUFBQSxFQUNKLGFBQWE7QUFDZixDQUFDLEVBQUU7QUFFSSxJQUFNLDJCQUF1QixtQ0FBZTtBQUFBLEVBQ2pELElBQUk7QUFBQSxFQUVKLGFBQWEsQ0FBQyxPQUFPO0FBQ25CLFVBQU0sWUFBWSxHQUFHLE9BQU8sb0NBQW9DO0FBRWhFLFdBQU8sTUFDSixDQUFJLHFCQUNILENBQUMsa0JBQXFCO0FBQ3BCLFlBQU0sQ0FBQyxnQ0FBZ0MsSUFBSSxVQUFVLGtCQUFrQixhQUFhO0FBRXBGLFVBQUksa0NBQWtDO0FBQ3BDLG1EQUFjLGlDQUFpQyxPQUFPO0FBRXRELHlDQUFpQyxRQUFRLE1BQU07QUFBQSxNQUNqRDtBQUFBLElBQ0Y7QUFBQSxFQUNOO0FBQUEsRUFFQSxnQkFBZ0I7QUFDbEIsQ0FBQzs7O0FFakNEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBQUFDLHFCQUFtRDtBQUVuRCxJQUFBQyxlQUF5Qjs7O0FDRnpCO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFBQUMscUJBQStCO0FBQy9CLGtCQUEyQjtBQUdwQixJQUFNLG1DQUErQixtQ0FBZTtBQUFBLEVBQ3pELElBQUk7QUFBQSxFQUVKLGFBQWEsTUFBTSxDQUFDLGFBQXVDLHVCQUFXLElBQWE7QUFDckYsQ0FBQzs7O0FEQU0sSUFBTSxxQ0FBaUMsdUNBQThEO0FBQUEsRUFDMUcsSUFBSTtBQUFBLEVBQ0osYUFBYTtBQUNmLENBQUMsRUFBRTtBQUVJLElBQU0sd0NBQW9DLG1DQUFlO0FBQUEsRUFDOUQsSUFBSTtBQUFBLEVBRUosYUFBYSxDQUFDLE9BQU87QUFDbkIsVUFBTSx3QkFBd0IsR0FBRyxPQUFPLDRCQUE0QjtBQUVwRSxXQUFPLENBQUMsZ0JBQXNDLHVCQUFTLE1BQU0sc0JBQXNCLE9BQU8sRUFBRSxJQUFJLENBQUM7QUFBQSxFQUNuRztBQUNGLENBQUM7QUFFTSxJQUFNLGlDQUE2QixtQ0FBZTtBQUFBLEVBQ3ZELElBQUk7QUFBQSxFQUVKLGFBQWEsQ0FBQyxPQUFPO0FBQ25CLFVBQU0sNkJBQTZCLEdBQUcsT0FBTyxpQ0FBaUM7QUFFOUUsV0FBTyxNQUNKLENBQUksWUFDSCwyQkFBMkIsT0FBTztBQUFBLEVBQ3hDO0FBQUEsRUFFQSxnQkFBZ0I7QUFDbEIsQ0FBQzs7O0FFbENELElBQUFDLDRCQUEwQjs7O0FDRDFCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxrQ0FBNkI7QUFDdEIsSUFBTSxpQkFBYSwwQ0FBYSxFQUFFLElBQUksdUVBQXVFLEtBQUssc0ZBQXNGLENBQUM7QUFDaE4sSUFBTyx5QkFBUSxFQUFDLFlBQVcsbUNBQWtDOzs7QURjdEQsSUFBTSxvQkFBZ0IscUNBQXdELENBQUMsVUFBVTtBQUM5RixRQUFNLFdBQVcsV0FBVyxLQUFLO0FBRWpDLFNBQU87QUFBQSxJQUNMLFlBQVksQ0FBQyxNQUFNLFlBQVksV0FBVyx1QkFBYyxXQUFXLE1BQVM7QUFBQSxJQUM1RTtBQUFBLElBQ0EsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLEVBQ2I7QUFDRixDQUFDO0FBRU0sSUFBTSxhQUFhLENBQUMsVUFBOEI7QUFDdkQsUUFBTSxFQUFFLFVBQVUsVUFBVSxJQUFJO0FBRWhDLFNBQU8sT0FBTyxhQUFhLFlBQVksQ0FBQyxXQUFZLGFBQWE7QUFDbkU7OztBRS9CQSxJQUFBQyw0QkFBMEI7QUFDMUIsSUFBQUMsZ0JBQWtEO0FBQ2xELHdCQUE4Qjs7O0FDRjlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFBQyxxQkFBK0I7QUFDL0IsSUFBQUMsZUFBa0Q7QUFjM0MsSUFBTSxpQ0FBNkIsbUNBQWU7QUFBQSxFQUN2RCxJQUFJO0FBQUEsRUFFSixhQUFhLE1BQU0sQ0FBQyxhQUFxQix3QkFBVyxJQUE4QixDQUFDLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RyxDQUFDO0FBRU0sSUFBTSxrQ0FBOEIsbUNBQWU7QUFBQSxFQUN4RCxJQUFJO0FBQUEsRUFFSixhQUFhLENBQUMsT0FBTztBQUNuQixVQUFNLHNCQUFzQixHQUFHLE9BQU8sMEJBQTBCO0FBRWhFLFdBQU8sTUFBTSxDQUFDLFlBQW9CLG9CQUFvQixPQUFPO0FBQUEsRUFDL0Q7QUFDRixDQUFDOzs7QUR6QkQsSUFBQUMsZUFBbUM7QUFDbkMsSUFBQUMsMkJBQW1EO0FBVTVDLFNBQVMsNEJBQStCO0FBQzdDLGFBQU8scUNBQTZFLENBQUMsVUFBVTtBQUM3RixVQUFNLEVBQUUsc0JBQXNCLEtBQUssSUFBSTtBQUV2QyxRQUFJLHlCQUF5QixRQUFXO0FBQ3RDLGFBQU87QUFBQSxRQUNMLHNCQUFzQjtBQUFBLE1BQ3hCO0FBQUEsSUFDRjtBQUVBLFVBQU0sU0FBSyxxQkFBTTtBQUNqQixVQUFNLHdCQUFvQixpQ0FBYywyQkFBMkI7QUFDbkUsVUFBTSx3QkFBb0Isc0JBQU8sd0JBQVcsSUFBSSxhQUFhLG9CQUFvQixHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUMsQ0FBQztBQUNwRyxVQUFNLGlCQUFhLHNCQUFPLElBQUksZ0JBQWdCLENBQUM7QUFFL0M7QUFBQSxVQUNFLHFCQUFPLE1BQU07QUFDWCwwQkFBa0IsUUFBUSxRQUFRLGFBQWEsb0JBQW9CLENBQUM7QUFBQSxNQUN0RSxDQUFDO0FBQUEsSUFDSDtBQUVBLFVBQU0sa0JBQWM7QUFBQSxNQUNsQixVQUNFLHFCQUFPLENBQUMsWUFBZ0M7QUFDdEMsWUFBSSxDQUFDLFNBQVM7QUFDWixxQkFBVyxRQUFRLE1BQU07QUFDekIscUJBQVcsVUFBVSxJQUFJLGdCQUFnQjtBQUN6QztBQUFBLFFBQ0Y7QUFFQSxnQkFBUTtBQUFBLFVBQ047QUFBQSxjQUNBLHFCQUFPLENBQUMsVUFBVTtBQUNoQixrQkFBTSxFQUFFLGVBQWUsY0FBYyxJQUFJO0FBQ3pDLGtCQUFNLFlBQVksS0FBSyxJQUFJO0FBRTNCLGdCQUFJLENBQUUsY0FBOEIsU0FBUyxhQUE0QixHQUFHO0FBQzFFLHlCQUFXLFdBQVcsa0JBQWtCLFFBQVEsS0FBSyxHQUFHO0FBQ3RELGtDQUFrQixPQUFPLEVBQUUsSUFBSSxJQUFJO0FBQUEsa0JBQ2pDLFdBQVcsd0JBQVcsSUFBSSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFBQSxrQkFDcEQsVUFBVSxNQUFNLGtCQUFrQixRQUFRLElBQUksT0FBTztBQUFBLGdCQUN2RCxDQUFDO0FBQUEsY0FDSDtBQUFBLFlBQ0Y7QUFBQSxVQUNGLENBQUM7QUFBQSxVQUNEO0FBQUEsWUFDRSxRQUFRLFdBQVcsUUFBUTtBQUFBLFVBQzdCO0FBQUEsUUFDRjtBQUNBLGdCQUFRO0FBQUEsVUFDTjtBQUFBLGNBQ0EscUJBQU8sQ0FBQyxVQUFVO0FBQ2hCLGtCQUFNLEVBQUUsZUFBZSxjQUFjLElBQUk7QUFDekMsa0JBQU0sWUFBWSxLQUFLLElBQUk7QUFFM0IsZ0JBQUksQ0FBRSxjQUE4QixTQUFTLGFBQTRCLEdBQUc7QUFDMUUseUJBQVcsV0FBVyxrQkFBa0IsUUFBUSxLQUFLLEdBQUc7QUFDdEQsc0JBQU0sZUFBZSxrQkFBa0IsT0FBTztBQUU5Qyw2QkFBYSxPQUFPLEVBQUU7QUFDdEIsNkJBQWEsUUFBUSxDQUFDLFVBQVUsTUFBTSxVQUFVLElBQUksU0FBUyxDQUFDO0FBQUEsY0FDaEU7QUFBQSxZQUNGO0FBQUEsVUFDRixDQUFDO0FBQUEsVUFDRDtBQUFBLFlBQ0UsUUFBUSxXQUFXLFFBQVE7QUFBQSxVQUM3QjtBQUFBLFFBQ0Y7QUFBQSxNQUNGLENBQUM7QUFBQSxNQUNILENBQUMsbUJBQW1CLEVBQUU7QUFBQSxJQUN4QjtBQUVBLFdBQU87QUFBQSxNQUNMLE1BQU0sQ0FBQyxNQUFNLFdBQVc7QUFBQSxNQUN4QixzQkFBc0I7QUFBQSxJQUN4QjtBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBRUEsSUFBTSxlQUFlLENBQUMsVUFBd0U7QUFDNUYsUUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLGtDQUFTO0FBQzdDLFFBQU0sVUFBdUMsQ0FBQztBQUU5QyxhQUFXLEVBQUUsU0FBUyxLQUFLLEtBQUssT0FBTztBQUNyQyxZQUFRLEtBQUssQ0FBQyxTQUFTLEVBQUUsTUFBTSxPQUFPLEdBQUcsU0FBUywrQkFBTSxXQUFXLDhCQUFLLENBQUMsQ0FBQztBQUFBLEVBQzVFO0FBRUEsU0FBTztBQUNUOzs7QUV2R0EsSUFBQUMsNEJBQWdEO0FBR2hELElBQUFDLGdCQUFzRDtBQUN0RCxJQUFBQyxxQkFBOEI7QUFFOUIsSUFBQUMsZUFBc0Q7QUFDdEQsZ0JBQXFCOzs7QUNQckI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFBQUMscUJBQW1EO0FBRW5ELElBQUFDLGVBQXlCOzs7QUNGekI7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFBQyxxQkFBK0I7QUFDL0IsSUFBQUMsZUFBd0Y7QUFZakYsSUFBTSw0QkFBd0IsbUNBQWU7QUFBQSxFQUNsRCxJQUFJO0FBQUEsRUFFSixhQUFhLE1BQU0sQ0FBQyxlQUF1QjtBQUN6QyxVQUFNLE1BQU0sd0JBQVcsSUFBSSxLQUFLLElBQUksQ0FBQztBQUVyQyxRQUFJO0FBRUosdUNBQWlCLEtBQUssTUFBTTtBQUMxQixvQ0FBWSxNQUFNLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0FBRXJDLGVBQVMsWUFBWSxVQUFNLDBCQUFZLE1BQU0sSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxVQUFVO0FBQUEsSUFDL0UsQ0FBQztBQUVELHlDQUFtQixLQUFLLE1BQU07QUFDNUIsVUFBSSxXQUFXLFFBQVc7QUFDeEIsc0JBQWMsTUFBTTtBQUFBLE1BQ3RCO0FBRUEsZUFBUztBQUFBLElBQ1gsQ0FBQztBQUVELGVBQU8sdUJBQVMsTUFBTSxJQUFJLElBQUksQ0FBQztBQUFBLEVBQ2pDO0FBQ0YsQ0FBQzs7O0FENUJNLElBQU0scUNBQWlDLHVDQUE4RDtBQUFBLEVBQzFHLElBQUk7QUFBQSxFQUNKLGFBQWE7QUFDZixDQUFDLEVBQUU7QUFFSSxJQUFNLHdDQUFvQyxtQ0FBZTtBQUFBLEVBQzlELElBQUk7QUFBQSxFQUVKLGFBQWEsQ0FBQyxPQUFPO0FBQ25CLFVBQU0sc0JBQXNCLEdBQUcsT0FBTywwQkFBMEI7QUFDaEUsVUFBTSxpQkFBaUIsR0FBRyxPQUFPLHFCQUFxQjtBQUV0RCxXQUFPLENBQUMsWUFBb0I7QUFDMUIsWUFBTSxtQkFBbUIsb0JBQW9CLE9BQU87QUFDcEQsWUFBTSxjQUFjLGVBQWUsQ0FBQztBQUVwQyxpQkFBTyx1QkFBUyxNQUFNO0FBQ3BCLGNBQU0sVUFBVSxDQUFDLEdBQUcsaUJBQWlCLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRTtBQUNwRCxjQUFNLFFBQVEsbUNBQVM7QUFFdkIsWUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPO0FBQ3RCLGlCQUFPO0FBQUEsUUFDVDtBQUVBLGNBQU0sd0JBQXdCLFFBQVEsVUFBVSxJQUFJLElBQUksTUFBTTtBQUM5RCxjQUFNLE1BQU0sWUFBWSxJQUFJO0FBRTVCLGVBQU8sT0FBTyx3QkFBd0IsTUFBTSxPQUFPO0FBQUEsTUFDckQsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0YsQ0FBQztBQUVNLElBQU0saUNBQTZCLG1DQUFlO0FBQUEsRUFDdkQsSUFBSTtBQUFBLEVBRUosYUFBYSxDQUFDLE9BQU87QUFDbkIsVUFBTSw2QkFBNkIsR0FBRyxPQUFPLGlDQUFpQztBQUU5RSxXQUFPLE1BQ0osQ0FBSSxZQUNILDJCQUEyQixPQUFPO0FBQUEsRUFDeEM7QUFBQSxFQUVBLGdCQUFnQjtBQUNsQixDQUFDOzs7QUQ3Q0QsSUFBQUMsMkJBQTZDO0FBNElwQyxJQUFBQyxzQkFBQTtBQWpIRixJQUFNLHNCQUFzQixNQUFtRDtBQUNwRixRQUFNLFVBQVU7QUFBQSxJQUNkLFdBQVcsQ0FBQyxNQUFtQixFQUFFLFFBQVEsR0FBRyxVQUFVLGdCQUFNLFlBQVksZUFBSyxJQUE2QixDQUFDLE9BQU87QUFBQSxNQUNoSDtBQUFBLE1BQ0E7QUFBQSxNQUNBLFNBQVM7QUFBQSxRQUNQO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFZQSxJQUFNLDRCQUE0QixDQUFDO0FBQUEsRUFDakM7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0YsTUFBNkI7QUFDM0IsUUFBTSx3QkFBb0Isa0NBQWMsMkJBQTJCO0FBQ25FLFFBQU0sdUJBQW1CLGtDQUFjLDhCQUE4QjtBQUNyRSxRQUFNLFNBQUsscUJBQU07QUFFakIsUUFBTSx3QkFBb0I7QUFBQSxJQUN4Qix3QkFBVyxJQUFJQyxjQUFhLFNBQVMsR0FBRyxFQUFFLE1BQU0sT0FBTyxRQUFRLHNCQUFTLFdBQVcsQ0FBQztBQUFBLEVBQ3RGO0FBRUE7QUFBQSxRQUNFLHFCQUFPLE1BQU07QUFDWCx3QkFBa0IsUUFBUSxRQUFRQSxjQUFhLFNBQVMsQ0FBQztBQUFBLElBQzNELENBQUM7QUFBQSxFQUNIO0FBRUEsK0JBQVUsTUFBTTtBQUNkLFVBQU0sZ0JBQWdCLG9CQUFJLElBQXFCO0FBRS9DLGVBQU8sc0JBQVEsTUFBTTtBQUNuQixpQkFBVyxDQUFDLFNBQVMsRUFBRSxNQUFNLFNBQVMsVUFBVSxDQUFDLEtBQUssa0JBQWtCLFNBQVM7QUFDL0UsY0FBTSxjQUFjLGlCQUFpQixPQUFvQyxFQUFFLElBQUk7QUFDL0UsY0FBTSxlQUFlLGNBQWMsSUFBSSxPQUFPO0FBRTlDLFlBQUksZ0JBQWdCLE1BQU07QUFDeEIsa0JBQVE7QUFBQSxRQUNWLFdBQVcsaUJBQWlCLE1BQU07QUFDaEMsb0JBQVU7QUFBQSxRQUNaO0FBRUEsc0JBQWMsSUFBSSxTQUFTLFdBQVc7QUFBQSxNQUN4QztBQUFBLElBQ0YsQ0FBQztBQUFBLEVBQ0gsR0FBRyxDQUFDLGdCQUFnQixDQUFDO0FBRXJCO0FBQUEsSUFDRSxVQUNFLHFCQUFPLE1BQU07QUFDWCxpQkFBVyxXQUFXLGtCQUFrQixRQUFRLEtBQUssR0FBRztBQUN0RCwwQkFBa0IsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUFBLE1BQ3RDO0FBQUEsSUFDRixDQUFDO0FBQUEsSUFDSCxDQUFDLG1CQUFtQixFQUFFO0FBQUEsRUFDeEI7QUFFQSxRQUFNLHVCQUFtQjtBQUFBLFFBQ3ZCLHFCQUFPLENBQUMsVUFBeUM7QUFDL0MsbURBQWU7QUFFZixZQUFNLFlBQVksS0FBSyxJQUFJO0FBRTNCLGlCQUFXLFdBQVcsa0JBQWtCLFFBQVEsS0FBSyxHQUFHO0FBQ3RELDBCQUFrQixPQUFPLEVBQUUsSUFBSSxJQUFJO0FBQUEsVUFDakMsV0FBVyx3QkFBVyxJQUFJLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUFBLFVBQ3BELFVBQVUsTUFBTSxrQkFBa0IsUUFBUSxJQUFJLE9BQU87QUFBQSxRQUN2RCxDQUFDO0FBQUEsTUFDSDtBQUFBLElBQ0YsQ0FBQztBQUFBLElBQ0QsQ0FBQztBQUFBLEVBQ0g7QUFFQSxRQUFNLHVCQUFtQjtBQUFBLFFBQ3ZCLHFCQUFPLENBQUMsVUFBeUM7QUFDL0MsbURBQWU7QUFFZixZQUFNLFlBQVksS0FBSyxJQUFJO0FBRTNCLGlCQUFXLFdBQVcsa0JBQWtCLFFBQVEsS0FBSyxHQUFHO0FBQ3RELGNBQU0sZUFBZSxrQkFBa0IsT0FBTztBQUU5QyxxQkFBYSxPQUFPLEVBQUU7QUFDdEIscUJBQWEsUUFBUSxDQUFDLFVBQVUsTUFBTSxVQUFVLElBQUksU0FBUyxDQUFDO0FBQUEsTUFDaEU7QUFBQSxJQUNGLENBQUM7QUFBQSxJQUNELENBQUM7QUFBQSxFQUNIO0FBRUEsa0JBQWdCO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsRUFDaEIsQ0FBQztBQUVELFNBQU8sNkVBQUcsVUFBUztBQUNyQjtBQUVPLFNBQVMsa0JBQWdEO0FBQzlELGFBQU8scUNBQTBDLENBQUMsVUFBVTtBQUMxRCxVQUFNLEVBQUUsWUFBWSxjQUFjLGFBQWEsSUFBSTtBQUVuRCxRQUFJLGVBQWUsVUFBYyxNQUFNLFFBQVEsVUFBVSxLQUFLLFdBQVcsV0FBVyxHQUFJO0FBQ3RGLGFBQU87QUFBQSxRQUNMLFlBQVk7QUFBQSxNQUNkO0FBQUEsSUFDRjtBQUVBLFdBQU87QUFBQSxNQUNMLFlBQVk7QUFBQSxNQUNaLFVBQVU7QUFBQSxRQUNSLFdBQVc7QUFBQSxRQUNYLE9BQU87QUFBQSxVQUNMLFdBQVc7QUFBQSxVQUNYO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBRUEsSUFBTUEsZ0JBQWUsQ0FBQyxVQUE4RDtBQUNsRixRQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sa0NBQVM7QUFDN0MsUUFBTSxVQUF1QyxDQUFDO0FBRTlDLGFBQVcsRUFBRSxTQUFTLE1BQU0sUUFBUSxLQUFLLE9BQU87QUFDOUMsWUFBUSxLQUFLLENBQUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQztBQUFBLEVBQzlDO0FBRUEsU0FBTztBQUNUOzs7QUd6TEE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFBQUMscUJBQW1EO0FBRW5ELElBQUFDLGVBQXlCOzs7QUNGekI7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFBQyxxQkFBK0I7QUFDL0IsSUFBQUMsZUFBMkI7QUFLcEIsSUFBTSxpQ0FBNkIsbUNBQWU7QUFBQSxFQUN2RCxJQUFJO0FBQUEsRUFFSixhQUFhLE1BQU0sQ0FBQyxhQUFvQyx3QkFBVyxJQUFJLFFBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRyxDQUFDOzs7QURGTSxJQUFNLHFDQUFpQyx1Q0FBOEQ7QUFBQSxFQUMxRyxJQUFJO0FBQUEsRUFDSixhQUFhO0FBQ2YsQ0FBQyxFQUFFO0FBRUksSUFBTSx3Q0FBb0MsbUNBQWU7QUFBQSxFQUM5RCxJQUFJO0FBQUEsRUFFSixhQUFhLENBQUMsT0FBTztBQUNuQixVQUFNLHNCQUFzQixHQUFHLE9BQU8sMEJBQTBCO0FBRWhFLFdBQU8sQ0FBQyxnQkFBbUMsdUJBQVMsTUFBTSxvQkFBb0IsT0FBTyxFQUFFLElBQUksQ0FBQztBQUFBLEVBQzlGO0FBQ0YsQ0FBQztBQUVNLElBQU0saUNBQTZCLG1DQUFlO0FBQUEsRUFDdkQsSUFBSTtBQUFBLEVBRUosYUFBYSxDQUFDLE9BQU87QUFDbkIsVUFBTSw2QkFBNkIsR0FBRyxPQUFPLGlDQUFpQztBQUU5RSxXQUFPLE1BQ0osQ0FBSSxZQUNILDJCQUEyQixPQUFPO0FBQUEsRUFDeEM7QUFBQSxFQUVBLGdCQUFnQjtBQUNsQixDQUFDOzs7QUVuQ0QsSUFBQUMsNkJBQW9FO0FBS3BFLElBQUFDLHFCQUE4QjtBQUU5QixJQUFBQyxnQkFBbUQ7OztBQ1BuRDtBQUFBO0FBQUE7QUFBQTtBQUFBLElBQUFDLHNCQUErQjtBQUV4QixJQUFNLDZCQUF5QixvQ0FBZTtBQUFBLEVBQ25ELElBQUk7QUFBQSxFQUNKLGFBQWEsTUFBTSxNQUEwQjtBQUMvQyxDQUFDOzs7QUNMRDtBQUFBO0FBQUE7QUFBQSxvQkFBQUM7QUFBQTtBQUFBLElBQUFDLCtCQUE2QjtBQUN0QixJQUFNRCxrQkFBYSwyQ0FBYSxFQUFFLElBQUksdUVBQXVFLEtBQUssc1ZBQXNWLENBQUM7QUFDaGQsSUFBTyx5QkFBUSxFQUFDLFdBQVUsa0NBQWlDOzs7QUZTM0QsdUJBQTZEO0FBQzdELElBQUFFLG9CQUE2QjtBQUU3QixJQUFBQywyQkFBa0Q7OztBR2RsRCxJQUFBQyw2QkFBb0M7QUFDcEMsd0JBQXlCOzs7QUNBekIsSUFBQUMsNEJBQTBCOzs7QUNEMUI7QUFBQTtBQUFBO0FBQUEsb0JBQUFDO0FBQUE7QUFBQSxJQUFBQywrQkFBNkI7QUFDdEIsSUFBTUQsa0JBQWEsMkNBQWEsRUFBRSxJQUFJLHlFQUF5RSxLQUFLLHV1QkFBdXVCLENBQUM7QUFDbjJCLElBQU8sMEJBQVEsRUFBQyxZQUFXLHFDQUFvQywyREFBMEQsb0ZBQW1GLHVEQUFzRCxnRkFBK0UsNkRBQTRELHNGQUFxRixnREFBK0MseUVBQXdFLHdEQUF1RCxnRkFBK0U7OztBRFV4dEIsSUFBTSxxQkFBaUIscUNBQXlELENBQUMsV0FBVztBQUFBLEVBQ2pHLFlBQVk7QUFBQSxJQUNWLE1BQU07QUFBQSxJQUNOLEVBQUUsQ0FBQyx3QkFBZSxRQUFRLEdBQUcsQ0FBQyxDQUFDLE1BQU0sVUFBVTtBQUFBLElBQy9DLE9BQU8sTUFBTSxjQUFjLFdBQVcsd0JBQWUsYUFBYSxNQUFNLFNBQVMsRUFBRSxJQUFJO0FBQUEsRUFDekY7QUFBQSxFQUVBLFdBQVc7QUFDYixFQUFFOzs7QUVuQkYsSUFBQUUsNEJBQTBCOzs7QUNEMUI7QUFBQTtBQUFBO0FBQUEsb0JBQUFDO0FBQUE7QUFBQSxJQUFBQywrQkFBNkI7QUFDdEIsSUFBTUQsa0JBQWEsMkNBQWEsRUFBRSxJQUFJLHVFQUF1RSxLQUFLLDZ4TkFBNnhOLENBQUM7QUFDdjVOLElBQU8seUJBQVEsRUFBQyxzQkFBcUIsOENBQTZDLHFCQUFvQiw2Q0FBNEMscUJBQW9CLDZDQUE0QyxxQkFBb0IsNkNBQTRDLG9CQUFtQiw0Q0FBMkMsbUJBQWtCLDJDQUEwQyxtQkFBa0IsMkNBQTBDLG1CQUFrQiwyQ0FBMEMsb0JBQW1CLDRDQUEyQyxxQkFBb0IsNkNBQTRDLHFCQUFvQiw2Q0FBNEMscUJBQW9CLDZDQUE0QyxxQkFBb0IsNkNBQTRDLHFCQUFvQiw2Q0FBNEMscUJBQW9CLDZDQUE0QyxxQkFBb0IsNkNBQTRDLHFCQUFvQiw2Q0FBNEMsc0JBQXFCLDhDQUE2QyxzQkFBcUIsOENBQTZDLHdCQUF1QixnREFBK0MsdUJBQXNCLCtDQUE4Qyx1QkFBc0IsK0NBQThDLHVCQUFzQiwrQ0FBOEMsc0JBQXFCLDhDQUE2QyxxQkFBb0IsNkNBQTRDLHFCQUFvQiw2Q0FBNEMscUJBQW9CLDZDQUE0QyxzQkFBcUIsOENBQTZDLHVCQUFzQiwrQ0FBOEMsdUJBQXNCLCtDQUE4Qyx1QkFBc0IsK0NBQThDLHVCQUFzQiwrQ0FBOEMsdUJBQXNCLCtDQUE4Qyx1QkFBc0IsK0NBQThDLHVCQUFzQiwrQ0FBOEMsdUJBQXNCLCtDQUE4Qyx3QkFBdUIsZ0RBQStDLHdCQUF1QixnREFBK0MseUJBQXdCLGlEQUFnRCx3QkFBdUIsZ0RBQStDLHdCQUF1QixnREFBK0Msd0JBQXVCLGdEQUErQyx1QkFBc0IsK0NBQThDLHNCQUFxQiw4Q0FBNkMsc0JBQXFCLDhDQUE2QyxzQkFBcUIsOENBQTZDLHVCQUFzQiwrQ0FBOEMsd0JBQXVCLGdEQUErQyx3QkFBdUIsZ0RBQStDLHdCQUF1QixnREFBK0Msd0JBQXVCLGdEQUErQyx3QkFBdUIsZ0RBQStDLHdCQUF1QixnREFBK0Msd0JBQXVCLGdEQUErQyx3QkFBdUIsZ0RBQStDLHlCQUF3QixpREFBZ0QseUJBQXdCLGlEQUFnRCx1QkFBc0IsK0NBQThDLHNCQUFxQiw4Q0FBNkMsc0JBQXFCLDhDQUE2QyxzQkFBcUIsOENBQTZDLHFCQUFvQiw2Q0FBNEMsb0JBQW1CLDRDQUEyQyxvQkFBbUIsNENBQTJDLG9CQUFtQiw0Q0FBMkMscUJBQW9CLDZDQUE0QyxzQkFBcUIsOENBQTZDLHNCQUFxQiw4Q0FBNkMsc0JBQXFCLDhDQUE2QyxzQkFBcUIsOENBQTZDLHNCQUFxQiw4Q0FBNkMsc0JBQXFCLDhDQUE2QyxzQkFBcUIsOENBQTZDLHNCQUFxQiw4Q0FBNkMsdUJBQXNCLCtDQUE4Qyx1QkFBc0IsK0NBQThDLGlCQUFnQix5Q0FBd0MsZ0JBQWUsd0NBQXVDLGdCQUFlLHdDQUF1QyxnQkFBZSx3Q0FBdUMsZUFBYyx1Q0FBc0MsY0FBYSxzQ0FBcUMsY0FBYSxzQ0FBcUMsY0FBYSxzQ0FBcUMsZUFBYyx1Q0FBc0MsZ0JBQWUsd0NBQXVDLGdCQUFlLHdDQUF1QyxnQkFBZSx3Q0FBdUMsZ0JBQWUsd0NBQXVDLGdCQUFlLHdDQUF1QyxnQkFBZSx3Q0FBdUMsZ0JBQWUsd0NBQXVDLGdCQUFlLHdDQUF1QyxpQkFBZ0IseUNBQXdDLGlCQUFnQix3Q0FBdUM7OztBRENuOEwsSUFBQUUsYUFBeUI7QUFjbEIsSUFBTSxvQkFBZ0IscUNBQXdELENBQUMsVUFBVTtBQUM5RixNQUFJLENBQUMsTUFBTSxVQUFVO0FBQ25CLFdBQU8sRUFBRSxVQUFVLE9BQVU7QUFBQSxFQUMvQjtBQUVBLFFBQU0sVUFBVSxNQUFNLGFBQWEsT0FBTyxPQUFPLE1BQU07QUFFdkQsVUFBSSxxQkFBUyxPQUFPLEdBQUc7QUFDckIsV0FBTztBQUFBLE1BQ0wsWUFBWSxDQUFDLE1BQU0sWUFBWSx1QkFBYyxZQUFZLE9BQU8sRUFBRSxDQUFDO0FBQUEsTUFDbkUsVUFBVTtBQUFBLElBQ1o7QUFBQSxFQUNGO0FBRUEsUUFBTSxVQUFVLFFBQVEsT0FBTyxRQUFRO0FBQ3ZDLFFBQU0sYUFBYSxRQUFRLFVBQVUsUUFBUTtBQUM3QyxRQUFNLFlBQVksUUFBUSxTQUFTLFFBQVE7QUFDM0MsUUFBTSxXQUFXLFFBQVEsUUFBUSxRQUFRO0FBRXpDLFNBQU87QUFBQSxJQUNMLFlBQVk7QUFBQSxNQUNWLE1BQU07QUFBQSxNQUNOLGNBQWMsT0FBTyxPQUFPO0FBQUEsTUFDNUIsY0FBYyxTQUFTLFNBQVM7QUFBQSxNQUNoQyxjQUFjLFVBQVUsVUFBVTtBQUFBLE1BQ2xDLGNBQWMsUUFBUSxRQUFRO0FBQUEsSUFDaEM7QUFBQSxJQUVBLFVBQVU7QUFBQSxFQUNaO0FBQ0YsQ0FBQztBQUVELElBQU0sZ0JBQWdCLENBQUMsTUFBMkMsU0FDaEUsT0FBTyx1QkFBYyxZQUFZLElBQUksS0FBSyxJQUFJLEVBQUUsSUFBSTs7O0FFakR0RCxJQUFBQyw0QkFBMEI7OztBQ0QxQjtBQUFBO0FBQUE7QUFBQSxvQkFBQUM7QUFBQTtBQUFBLElBQUFDLCtCQUE2QjtBQUN0QixJQUFNRCxrQkFBYSwyQ0FBYSxFQUFFLElBQUkseUZBQXlGLEtBQUssdStQQUF1K1AsQ0FBQztBQUNublEsSUFBTyxrQ0FBUSxFQUFDLDRCQUEyQiw2REFBNEQsMEJBQXlCLDJEQUEwRCxnQ0FBK0IsaUVBQWdFLDRCQUEyQiw2REFBNEQsMkJBQTBCLDREQUEyRCwyQkFBMEIsNERBQTJELDJCQUEwQiw0REFBMkQsMkJBQTBCLDREQUEyRCwyQkFBMEIsNERBQTJELDJCQUEwQiw0REFBMkQsMkJBQTBCLDREQUEyRCwyQkFBMEIsNERBQTJELGtDQUFpQyxtRUFBa0UsNEJBQTJCLDZEQUE0RCwyQkFBMEIsNERBQTJELDRCQUEyQiw2REFBNEQsMkJBQTBCLDREQUEyRCw0QkFBMkIsNkRBQTRELDZCQUE0Qiw4REFBNkQsZ0NBQStCLGlFQUFnRSxnQ0FBK0IsaUVBQWdFLGlDQUFnQyxrRUFBaUUseUJBQXdCLDBEQUF5RCx5QkFBd0IsMERBQXlELGtDQUFpQyxtRUFBa0UsZ0NBQStCLGlFQUFnRSxzQ0FBcUMsdUVBQXNFLGtDQUFpQyxtRUFBa0UsaUNBQWdDLGtFQUFpRSxpQ0FBZ0Msa0VBQWlFLGlDQUFnQyxrRUFBaUUsaUNBQWdDLGtFQUFpRSxpQ0FBZ0Msa0VBQWlFLGlDQUFnQyxrRUFBaUUsaUNBQWdDLGtFQUFpRSxpQ0FBZ0Msa0VBQWlFLHdDQUF1Qyx5RUFBd0Usa0NBQWlDLG1FQUFrRSxpQ0FBZ0Msa0VBQWlFLGtDQUFpQyxtRUFBa0UsaUNBQWdDLGtFQUFpRSxrQ0FBaUMsbUVBQWtFLG1DQUFrQyxvRUFBbUUsc0NBQXFDLHVFQUFzRSxzQ0FBcUMsdUVBQXNFLHVDQUFzQyx3RUFBdUUsK0JBQThCLGdFQUErRCwrQkFBOEIsZ0VBQStELGtDQUFpQyxtRUFBa0UsZ0NBQStCLGlFQUFnRSxzQ0FBcUMsdUVBQXNFLGtDQUFpQyxtRUFBa0UsaUNBQWdDLGtFQUFpRSxpQ0FBZ0Msa0VBQWlFLGlDQUFnQyxrRUFBaUUsaUNBQWdDLGtFQUFpRSxpQ0FBZ0Msa0VBQWlFLGlDQUFnQyxrRUFBaUUsaUNBQWdDLGtFQUFpRSxpQ0FBZ0Msa0VBQWlFLHdDQUF1Qyx5RUFBd0Usa0NBQWlDLG1FQUFrRSxpQ0FBZ0Msa0VBQWlFLGtDQUFpQyxtRUFBa0UsaUNBQWdDLGtFQUFpRSxrQ0FBaUMsbUVBQWtFLG1DQUFrQyxvRUFBbUUsc0NBQXFDLHVFQUFzRSxzQ0FBcUMsdUVBQXNFLHVDQUFzQyx3RUFBdUUsK0JBQThCLGdFQUErRCwrQkFBOEIsK0RBQThEOzs7QURjM3VOLElBQU0saUJBQWlCO0FBQUEsRUFDckIsbUJBQW1CO0FBQUEsRUFDbkIscUJBQXFCO0FBQUEsRUFDckIseUJBQXlCO0FBQzNCO0FBRUEsSUFBTSx5QkFBeUIsQ0FBQyxVQUEwRCxTQUFTO0FBRTVGLElBQU0sNEJBQXdCLHFDQUFnRSxDQUFDLFVBQVU7QUFDOUcsUUFBTSxFQUFFLGtCQUFrQixNQUFNLElBQUk7QUFDcEMsUUFBTSxFQUFFLFFBQVEsT0FBTyxNQUFNLElBQUksT0FBTyxVQUFVLFdBQVcsRUFBRSxRQUFRLE1BQU0sSUFBSyxTQUFTLENBQUM7QUFFNUYsUUFBTSxjQUFjLFNBQVUsdUJBQXVCLE1BQU0sSUFBSSxlQUFlLE1BQU0sSUFBSSxTQUFVO0FBQ2xHLFFBQU0sYUFBYSxRQUFTLHVCQUF1QixLQUFLLElBQUksZUFBZSxLQUFLLElBQUksUUFBUztBQUM3RixRQUFNLGFBQWEsUUFBUyx1QkFBdUIsS0FBSyxJQUFJLGVBQWUsS0FBSyxJQUFJLFFBQVM7QUFFN0YsU0FBTztBQUFBLElBQ0wsWUFBWTtBQUFBLE1BQ1YsTUFBTTtBQUFBLE1BQ04sY0FBYyxnQ0FBc0Isb0JBQW9CLFdBQVcsRUFBRSxJQUFJO0FBQUEsTUFDekUsYUFBYSxnQ0FBc0IsMEJBQTBCLFVBQVUsRUFBRSxJQUFJO0FBQUEsTUFDN0UsYUFBYSxnQ0FBc0IsMEJBQTBCLFVBQVUsRUFBRSxJQUFJO0FBQUEsSUFDL0U7QUFBQSxJQUNBLGtCQUFrQjtBQUFBLEVBQ3BCO0FBQ0YsQ0FBQzs7O0FFeENELElBQUFFLDRCQUEwQjs7O0FDRDFCO0FBQUE7QUFBQTtBQUFBLG9CQUFBQztBQUFBO0FBQUEsSUFBQUMsK0JBQTZCO0FBQ3RCLElBQU1ELGtCQUFhLDJDQUFhLEVBQUUsSUFBSSxxRUFBcUUsS0FBSywyenZCQUEyenZCLENBQUM7QUFDbjd2QixJQUFPLHdCQUFRLEVBQUMsd0JBQXVCLCtDQUE4Qyx3QkFBdUIsK0NBQThDLHFCQUFvQiw0Q0FBMkMscUJBQW9CLDRDQUEyQyxzQkFBcUIsNkNBQTRDLHFCQUFvQiw0Q0FBMkMsc0JBQXFCLDZDQUE0Qyx3QkFBdUIsK0NBQThDLHVCQUFzQiw4Q0FBNkMsc0JBQXFCLDZDQUE0QyxxQkFBb0IsNENBQTJDLG9CQUFtQiwyQ0FBMEMsb0JBQW1CLDJDQUEwQyxvQkFBbUIsMkNBQTBDLHFCQUFvQiw0Q0FBMkMsc0JBQXFCLDZDQUE0QyxzQkFBcUIsNkNBQTRDLHNCQUFxQiw2Q0FBNEMsc0JBQXFCLDZDQUE0QywwQkFBeUIsaURBQWdELGlDQUFnQyx3REFBdUQsb0NBQW1DLDJEQUEwRCx3QkFBdUIsK0NBQThDLCtCQUE4QixzREFBcUQsa0NBQWlDLHlEQUF3RCw4QkFBNkIscURBQW9ELHFDQUFvQyw0REFBMkQsd0NBQXVDLCtEQUE4RCwwQkFBeUIsaURBQWdELGlDQUFnQyx3REFBdUQsb0NBQW1DLDJEQUEwRCx5QkFBd0IsZ0RBQStDLGdDQUErQix1REFBc0QsbUNBQWtDLDBEQUF5RCx5QkFBd0IsZ0RBQStDLGdDQUErQix1REFBc0QsbUNBQWtDLDBEQUF5RCx5QkFBd0IsZ0RBQStDLGdDQUErQix1REFBc0QsbUNBQWtDLDBEQUF5RCx5QkFBd0IsZ0RBQStDLGdDQUErQix1REFBc0QsbUNBQWtDLDBEQUF5RCx5QkFBd0IsZ0RBQStDLGdDQUErQix1REFBc0QsbUNBQWtDLDBEQUF5RCx5QkFBd0IsZ0RBQStDLGdDQUErQix1REFBc0QsbUNBQWtDLDBEQUF5RCx5QkFBd0IsZ0RBQStDLGdDQUErQix1REFBc0QsbUNBQWtDLDBEQUF5RCx5QkFBd0IsZ0RBQStDLGdDQUErQix1REFBc0QsbUNBQWtDLDBEQUF5RCxnQ0FBK0IsdURBQXNELHVDQUFzQyw4REFBNkQsMENBQXlDLGlFQUFnRSwwQkFBeUIsaURBQWdELGlDQUFnQyx3REFBdUQsb0NBQW1DLDJEQUEwRCx5QkFBd0IsZ0RBQStDLGdDQUErQix1REFBc0QsbUNBQWtDLDBEQUF5RCwwQkFBeUIsaURBQWdELGlDQUFnQyx3REFBdUQsb0NBQW1DLDJEQUEwRCx5QkFBd0IsZ0RBQStDLGdDQUErQix1REFBc0QsbUNBQWtDLDBEQUF5RCwwQkFBeUIsaURBQWdELGlDQUFnQyx3REFBdUQsb0NBQW1DLDJEQUEwRCwyQkFBMEIsa0RBQWlELGtDQUFpQyx5REFBd0QscUNBQW9DLDREQUEyRCw4QkFBNkIscURBQW9ELHFDQUFvQyw0REFBMkQsd0NBQXVDLCtEQUE4RCw4QkFBNkIscURBQW9ELHFDQUFvQyw0REFBMkQsd0NBQXVDLCtEQUE4RCwrQkFBOEIsc0RBQXFELHNDQUFxQyw2REFBNEQseUNBQXdDLGdFQUErRCx1QkFBc0IsOENBQTZDLDhCQUE2QixxREFBb0QsaUNBQWdDLHdEQUF1RCx1QkFBc0IsOENBQTZDLDhCQUE2QixxREFBb0QsaUNBQWdDLHdEQUF1RCwwQkFBeUIsaURBQWdELHlCQUF3QixnREFBK0Msd0JBQXVCLCtDQUE4Qyx1QkFBc0IsOENBQTZDLHVCQUFzQiw4Q0FBNkMsdUJBQXNCLDhDQUE2Qyx3QkFBdUIsK0NBQThDLHlCQUF3QixnREFBK0MseUJBQXdCLGdEQUErQyx5QkFBd0IsZ0RBQStDLHlCQUF3QixnREFBK0MsNkJBQTRCLG9EQUFtRCwyQkFBMEIsa0RBQWlELGlDQUFnQyx3REFBdUQsNkJBQTRCLG9EQUFtRCw0QkFBMkIsbURBQWtELDRCQUEyQixtREFBa0QsNEJBQTJCLG1EQUFrRCw0QkFBMkIsbURBQWtELDRCQUEyQixtREFBa0QsNEJBQTJCLG1EQUFrRCw0QkFBMkIsbURBQWtELDRCQUEyQixtREFBa0QsbUNBQWtDLDBEQUF5RCw2QkFBNEIsb0RBQW1ELDRCQUEyQixtREFBa0QsNkJBQTRCLG9EQUFtRCw0QkFBMkIsbURBQWtELDZCQUE0QixvREFBbUQsOEJBQTZCLHFEQUFvRCxpQ0FBZ0Msd0RBQXVELGlDQUFnQyx3REFBdUQsa0NBQWlDLHlEQUF3RCwwQkFBeUIsaURBQWdELDBCQUF5QixpREFBZ0QsNEJBQTJCLG1EQUFrRCwyQkFBMEIsa0RBQWlELDBCQUF5QixpREFBZ0QseUJBQXdCLGdEQUErQyx5QkFBd0IsZ0RBQStDLHlCQUF3QixnREFBK0MsMEJBQXlCLGlEQUFnRCwyQkFBMEIsa0RBQWlELDJCQUEwQixrREFBaUQsMkJBQTBCLGtEQUFpRCwyQkFBMEIsa0RBQWlELCtCQUE4QixzREFBcUQsNkJBQTRCLG9EQUFtRCxtQ0FBa0MsMERBQXlELCtCQUE4QixzREFBcUQsOEJBQTZCLHFEQUFvRCw4QkFBNkIscURBQW9ELDhCQUE2QixxREFBb0QsOEJBQTZCLHFEQUFvRCw4QkFBNkIscURBQW9ELDhCQUE2QixxREFBb0QsOEJBQTZCLHFEQUFvRCw4QkFBNkIscURBQW9ELHFDQUFvQyw0REFBMkQsK0JBQThCLHNEQUFxRCw4QkFBNkIscURBQW9ELCtCQUE4QixzREFBcUQsOEJBQTZCLHFEQUFvRCwrQkFBOEIsc0RBQXFELGdDQUErQix1REFBc0QsbUNBQWtDLDBEQUF5RCxtQ0FBa0MsMERBQXlELG9DQUFtQywyREFBMEQsNEJBQTJCLG1EQUFrRCw0QkFBMkIsbURBQWtELDZCQUE0QixvREFBbUQsNEJBQTJCLG1EQUFrRCwyQkFBMEIsa0RBQWlELDBCQUF5QixpREFBZ0QsMEJBQXlCLGlEQUFnRCwwQkFBeUIsaURBQWdELDJCQUEwQixrREFBaUQsNEJBQTJCLG1EQUFrRCw0QkFBMkIsbURBQWtELDRCQUEyQixtREFBa0QsNEJBQTJCLG1EQUFrRCxnQ0FBK0IsdURBQXNELDhCQUE2QixxREFBb0Qsb0NBQW1DLDJEQUEwRCxnQ0FBK0IsdURBQXNELCtCQUE4QixzREFBcUQsK0JBQThCLHNEQUFxRCwrQkFBOEIsc0RBQXFELCtCQUE4QixzREFBcUQsK0JBQThCLHNEQUFxRCwrQkFBOEIsc0RBQXFELCtCQUE4QixzREFBcUQsK0JBQThCLHNEQUFxRCxzQ0FBcUMsNkRBQTRELGdDQUErQix1REFBc0QsK0JBQThCLHNEQUFxRCxnQ0FBK0IsdURBQXNELCtCQUE4QixzREFBcUQsZ0NBQStCLHVEQUFzRCxpQ0FBZ0Msd0RBQXVELG9DQUFtQywyREFBMEQsb0NBQW1DLDJEQUEwRCxxQ0FBb0MsNERBQTJELDZCQUE0QixvREFBbUQsNkJBQTRCLG9EQUFtRCwyQkFBMEIsa0RBQWlELDBCQUF5QixpREFBZ0QseUJBQXdCLGdEQUErQyx3QkFBdUIsK0NBQThDLHdCQUF1QiwrQ0FBOEMsd0JBQXVCLCtDQUE4Qyx5QkFBd0IsZ0RBQStDLDBCQUF5QixpREFBZ0QsMEJBQXlCLGlEQUFnRCwwQkFBeUIsaURBQWdELDBCQUF5QixpREFBZ0QsOEJBQTZCLHFEQUFvRCw0QkFBMkIsbURBQWtELGtDQUFpQyx5REFBd0QsOEJBQTZCLHFEQUFvRCw2QkFBNEIsb0RBQW1ELDZCQUE0QixvREFBbUQsNkJBQTRCLG9EQUFtRCw2QkFBNEIsb0RBQW1ELDZCQUE0QixvREFBbUQsNkJBQTRCLG9EQUFtRCw2QkFBNEIsb0RBQW1ELDZCQUE0QixvREFBbUQsb0NBQW1DLDJEQUEwRCw4QkFBNkIscURBQW9ELDZCQUE0QixvREFBbUQsOEJBQTZCLHFEQUFvRCw2QkFBNEIsb0RBQW1ELDhCQUE2QixxREFBb0QsK0JBQThCLHNEQUFxRCxrQ0FBaUMseURBQXdELGtDQUFpQyx5REFBd0QsbUNBQWtDLDBEQUF5RCwyQkFBMEIsa0RBQWlELDJCQUEwQixrREFBaUQsOEJBQTZCLHFEQUFvRCwyQkFBMEIsa0RBQWlELDJCQUEwQixrREFBaUQsNEJBQTJCLG1EQUFrRCwyQkFBMEIsa0RBQWlELDRCQUEyQixtREFBa0QsOEJBQTZCLHFEQUFvRCxpQ0FBZ0Msd0RBQXVELDhCQUE2QixxREFBb0QsOEJBQTZCLHFEQUFvRCwrQkFBOEIsc0RBQXFELDhCQUE2QixxREFBb0QsK0JBQThCLHNEQUFxRCxpQ0FBZ0Msd0RBQXVELGdDQUErQix1REFBc0QsNkJBQTRCLG9EQUFtRCw2QkFBNEIsb0RBQW1ELDhCQUE2QixxREFBb0QsNkJBQTRCLG9EQUFtRCw4QkFBNkIscURBQW9ELGdDQUErQix1REFBc0QsNkJBQTRCLG9EQUFtRCwwQkFBeUIsaURBQWdELDBCQUF5QixpREFBZ0QsMkJBQTBCLGtEQUFpRCwwQkFBeUIsaURBQWdELDJCQUEwQixrREFBaUQsNkJBQTRCLG9EQUFtRCx1QkFBc0IsNkNBQTRDOzs7QUNTOXdvQixJQUFNLGtCQUFrQixDQUFDRSxZQUF5QjtBQUN2RCxRQUFNLEVBQUUsUUFBUSxnQkFBZ0IsbUJBQW1CLGtCQUFrQixjQUFjLElBQUlBO0FBRXZGLE1BQUksUUFBUTtBQUNWLFVBQU0sbUJBQW1CLFdBQVcsT0FBTyxNQUFNO0FBRWpELFdBQU8sbUJBQW1CLHNCQUFhLG1CQUFtQixnQkFBZ0IsRUFBRSxJQUFJO0FBQUEsRUFDbEY7QUFFQSxTQUFPO0FBQUEsSUFDTCxpQkFBaUIsc0JBQWEseUJBQXlCLGNBQWMsRUFBRSxJQUFJO0FBQUEsSUFDM0Usb0JBQW9CLHNCQUFhLDRCQUE0QixpQkFBaUIsRUFBRSxJQUFJO0FBQUEsSUFDcEYsbUJBQW1CLHNCQUFhLDJCQUEyQixnQkFBZ0IsRUFBRSxJQUFJO0FBQUEsSUFDakYsZ0JBQWdCLHNCQUFhLHdCQUF3QixhQUFhLEVBQUUsSUFBSTtBQUFBLEVBQzFFO0FBQ0Y7OztBQ3ZCQSxJQUFBQyxhQUErQztBQVN4QyxJQUFNLGdCQUFnQixDQUFDLFVBQXNCO0FBQUEsRUFDbEQsR0FBRyxzQkFBc0IsT0FBTyxLQUFLO0FBQUEsRUFDckMsR0FBRyxzQkFBc0IsU0FBUyxLQUFLO0FBQUEsRUFDdkMsR0FBRyxzQkFBc0IsVUFBVSxLQUFLO0FBQUEsRUFDeEMsR0FBRyxzQkFBc0IsUUFBUSxLQUFLO0FBQ3hDO0FBRUEsSUFBTSx3QkFBd0IsQ0FBQyxNQUF3QixVQUFzQjtBQUMzRSxRQUFNLEVBQUUsT0FBTyxNQUFNLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQztBQUN6QyxRQUFNLFdBQVcsV0FBVyxJQUFJO0FBRWhDLFNBQU87QUFBQSxJQUNMLFFBQVEsc0JBQWEsU0FBUyxRQUFRLFlBQVksS0FBSyxFQUFFLElBQUk7QUFBQSxJQUM3RCxRQUFRLHNCQUFhLFNBQVMsUUFBUSxZQUFZLEtBQUssRUFBRSxJQUFJO0FBQUEsRUFDL0Q7QUFDRjtBQUVBLElBQU0sYUFBYSxDQUFtQixlQUFjLFdBQUFDLFlBQWlCLE1BQU07OztBSHRCM0UsSUFBQUMsYUFBd0I7QUFLeEIsSUFBTUMsa0JBQWlCLEVBQUUsZUFBZSxTQUFTO0FBRWpELElBQU0scUJBQXFCLENBQUMsVUFBa0QsU0FBU0E7QUFxQmhGLElBQU0sbUJBQWUscUNBQXVELENBQUMsVUFBVTtBQUM1RixNQUFJLENBQUMsTUFBTSxTQUFTO0FBQ2xCLFdBQU8sRUFBRSxTQUFTLE9BQVU7QUFBQSxFQUM5QjtBQUVBLFNBQU87QUFBQSxJQUNMLFlBQVksQ0FBQyxNQUFNLFlBQVksZ0JBQWdCLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixNQUFNLE9BQU8sQ0FBQztBQUFBLElBQzdGLFNBQVM7QUFBQSxFQUNYO0FBQ0YsQ0FBQztBQUVELElBQU0sa0JBQWtCLENBQUMsRUFBRSxPQUFPLE1BQU0sT0FBTyxRQUFRLEtBQUssT0FBTyxXQUFXLE1BQW9CO0FBQ2hHLFFBQU0sY0FBYyxVQUFVLFFBQVMsVUFBVSxVQUFhLFFBQVMsUUFBUTtBQUMvRSxRQUFNLEVBQUUsUUFBUSxPQUFPLFNBQVMsSUFDOUIsZUFBZSxVQUFVLFNBQ3JCLEVBQUUsUUFBUSxnQkFBeUIsSUFDbkMsT0FBTyxVQUFVLFdBQ2YsRUFBRSxRQUFRLE1BQU0sSUFDZixTQUFTLENBQUM7QUFFbkIsUUFBTSxjQUFjLFVBQVUsbUJBQW1CLE1BQU0sSUFBSUEsZ0JBQWUsTUFBTSxJQUFJO0FBQ3BGLFFBQU0sYUFBYSxTQUFTLG1CQUFtQixLQUFLLElBQUlBLGdCQUFlLEtBQUssSUFBSTtBQUNoRixRQUFNLGdCQUFnQixZQUFZLG1CQUFtQixRQUFRLElBQUlBLGdCQUFlLFFBQVEsSUFBSTtBQUU1RixRQUFNLG1CQUFlLG9CQUFRO0FBQUEsSUFDM0IsY0FBYyxzQkFBYSxrQkFBa0IsV0FBVyxFQUFFLElBQUk7QUFBQSxJQUM5RCxjQUFjLHNCQUFhLGtCQUFrQixXQUFXLEVBQUUsSUFBSTtBQUFBLElBQzlELGFBQWEsc0JBQWEsa0JBQWtCLFVBQVUsU0FBUyxJQUFJO0FBQUEsSUFDbkUsZ0JBQWdCLHNCQUFhLGtCQUFrQixhQUFhLFlBQVksSUFBSTtBQUFBLElBQzVFLEdBQUcsY0FBYyxFQUFFLE1BQU0sT0FBTyxRQUFRLElBQUksQ0FBQztBQUFBLElBQzdDLGFBQWEsc0JBQWEscUJBQXFCLElBQUk7QUFBQSxFQUNyRCxDQUFDO0FBRUQsU0FBTyxDQUFDLGNBQWMsYUFBYSxTQUFTLEtBQUssc0JBQWEsc0JBQXNCLENBQUM7QUFDdkY7OztBSXBFQSxJQUFBQyw0QkFBMEI7OztBQ0QxQjtBQUFBO0FBQUE7QUFBQSxvQkFBQUM7QUFBQTtBQUFBLElBQUFDLCtCQUE2QjtBQUN0QixJQUFNRCxrQkFBYSwyQ0FBYSxFQUFFLElBQUksaUVBQWlFLEtBQUssMnREQUEydEQsQ0FBQztBQUMvMEQsSUFBTyxzQkFBUSxFQUFDLG1CQUFrQix3Q0FBdUMsa0JBQWlCLHVDQUFzQyxpQkFBZ0Isc0NBQXFDLGlCQUFnQixzQ0FBcUMsaUJBQWdCLHNDQUFxQyxrQkFBaUIsdUNBQXNDLG1CQUFrQix3Q0FBdUMsbUJBQWtCLHdDQUF1QyxtQkFBa0Isd0NBQXVDLDJCQUEwQixnREFBK0MsNEJBQTJCLGlEQUFnRCw2QkFBNEIsa0RBQWlELDRCQUEyQixpREFBZ0QsY0FBYSxtQ0FBa0Msb0JBQW1CLHlDQUF3QyxpQkFBZ0Isc0NBQXFDLG9CQUFtQix5Q0FBd0MsbUJBQWtCLHdDQUF1QyxnQkFBZSxxQ0FBb0MsbUJBQWtCLHdDQUF1QyxpQ0FBZ0Msc0RBQXFELDZCQUE0QixpREFBZ0Q7OztBRHdCdDBDLElBQU0saUJBQWEscUNBQXFELENBQUMsVUFBVTtBQUN4RixNQUFJLENBQUMsTUFBTSxPQUFPO0FBQ2hCLFdBQU8sRUFBRSxPQUFPLE9BQVU7QUFBQSxFQUM1QjtBQUVBLFFBQU07QUFBQSxJQUNKLE9BQU87QUFBQSxJQUNQLE9BQU87QUFBQSxJQUNQLGFBQWE7QUFBQSxJQUNiLFNBQVM7QUFBQSxJQUNULFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLGVBQWU7QUFBQSxFQUNqQixJQUFJLE1BQU0sVUFBVSxPQUFPLENBQUMsSUFBSSxNQUFNO0FBRXRDLFNBQU87QUFBQSxJQUNMLFlBQVk7QUFBQSxNQUNWLE1BQU07QUFBQSxNQUNOLE9BQU8sb0JBQVcsZUFBZSxJQUFJLEVBQUUsSUFBSTtBQUFBLE1BQzNDLFNBQVMsT0FBTyxvQkFBVyxZQUFZLElBQUksT0FBTyxvQkFBVyxnQkFBZ0IsSUFBSSxFQUFFLElBQUk7QUFBQSxNQUN2RixhQUFhLG9CQUFXLHNCQUFzQixVQUFVLEVBQUUsSUFBSTtBQUFBLE1BQzlELGlCQUFpQixZQUFZLFNBQVksb0JBQVcsd0JBQXdCLFlBQVksRUFBRTtBQUFBLE1BQzFGO0FBQUEsUUFDRSxDQUFDLG9CQUFXLGVBQWUsQ0FBQyxHQUFHO0FBQUEsUUFDL0IsQ0FBQyxvQkFBVyxrQkFBa0IsQ0FBQyxHQUFHO0FBQUEsUUFDbEMsQ0FBQyxvQkFBVyxjQUFjLENBQUMsR0FBRztBQUFBLFFBQzlCLENBQUMsb0JBQVcsaUJBQWlCLENBQUMsR0FBRztBQUFBLFFBQ2pDLENBQUMsb0JBQVcsaUJBQWlCLENBQUMsR0FBRztBQUFBLE1BQ25DO0FBQUEsSUFDRjtBQUFBLElBQ0EsT0FBTztBQUFBLEVBQ1Q7QUFDRixDQUFDOzs7QUUzREQsSUFBQUUsNkJBQTBCOzs7QUNEMUI7QUFBQTtBQUFBO0FBQUEsb0JBQUFDO0FBQUE7QUFBQSxJQUFBQywrQkFBNkI7QUFDdEIsSUFBTUQsa0JBQWEsMkNBQWEsRUFBRSxJQUFJLDZFQUE2RSxLQUFLLG1TQUFtUyxDQUFDO0FBQ25hLElBQU8sNEJBQVEsRUFBQyx3QkFBdUIsbURBQWtELHNCQUFxQixnREFBK0M7OztBRE10SixJQUFNLHNCQUFrQixzQ0FBMEQsQ0FBQyxVQUFVO0FBQ2xHLE1BQUksQ0FBQyxNQUFNLFlBQVk7QUFDckIsV0FBTztBQUFBLE1BQ0wsWUFBWTtBQUFBLElBQ2Q7QUFBQSxFQUNGO0FBRUEsUUFBTSxVQUFVLE1BQU0sZUFBZSxPQUFPLGFBQWEsTUFBTTtBQUUvRCxTQUFPO0FBQUEsSUFDTCxZQUFZLENBQUMsTUFBTSxZQUFZLDBCQUFPLGVBQWUsT0FBTyxFQUFFLENBQUM7QUFBQSxJQUMvRCxZQUFZO0FBQUEsRUFDZDtBQUNGLENBQUM7OztBRXBCRCxJQUFBRSw2QkFBMEI7OztBQ0QxQjtBQUFBO0FBQUE7QUFBQSxvQkFBQUM7QUFBQTtBQUFBLElBQUFDLCtCQUE2QjtBQUN0QixJQUFNRCxrQkFBYSwyQ0FBYSxFQUFFLElBQUksMkZBQTJGLEtBQUssdUZBQXVGLENBQUM7QUFDck8sSUFBTyxtQ0FBUSxFQUFDLHFCQUFvQixzREFBcUQ7OztBRElsRixJQUFNLDRCQUF3QixzQ0FBZ0UsQ0FBQyxXQUFXO0FBQUEsRUFDL0csWUFBWSxDQUFDLE1BQU0sWUFBWSxFQUFFLENBQUMsaUNBQU8sbUJBQW1CLENBQUMsR0FBRyxNQUFNLGlCQUFpQixDQUFDO0FBQUEsRUFDeEYsa0JBQWtCO0FBQ3BCLEVBQUU7OztBRVBGLElBQUFFLDZCQUEwQjtBQUMxQixJQUFBQywyQkFBMEI7QUFHMUIsSUFBQUMsZ0JBQW9DO0FBaUI3QixTQUFTLFlBQTZCO0FBQzNDLGFBQU8sc0NBQTZCLENBQUMsVUFBVTtBQUM3QyxVQUFNLEVBQUUsS0FBSyxJQUFJO0FBQ2pCLFVBQU0sZUFBVyxzQkFBTyxvQkFBSSxJQUFnQixDQUFDO0FBQzdDLFVBQU0saUJBQWEsc0JBQWlCLElBQUk7QUFFeEMsVUFBTSxVQUFNLDJCQUFZLENBQUMsWUFBZTtBQUN0QyxZQUFNLFlBQVksWUFBWSxJQUFJO0FBRWxDLGdCQUFVLFFBQVEsY0FBYyxPQUFPLENBQUM7QUFDeEMsZUFBUyxVQUFVO0FBQ25CLGlCQUFXLFVBQVU7QUFFckIsYUFBTyxNQUFNO0FBQ1gsaUJBQVMsUUFBUSxRQUFRLGNBQWlCLElBQUksQ0FBQztBQUFBLE1BQ2pEO0FBQUEsSUFDRixHQUFHLENBQUMsQ0FBQztBQUNMLFVBQU0sa0JBQWMsc0JBQU8sSUFBSTtBQUUvQixRQUFJLENBQUMsWUFBWSxTQUFTO0FBQ3hCLFlBQU0sY0FBYyxZQUFZLElBQUk7QUFDcEMsWUFBTSxZQUFZLFlBQVksV0FBVyxTQUFTLE9BQU87QUFDekQsWUFBTSxjQUFjLFNBQVMsUUFBUSxXQUFXLFdBQVc7QUFFM0QsZ0JBQVUsUUFBUSxjQUFpQixXQUFXLE9BQU8sQ0FBQztBQUN0RCxrQkFBWSxRQUFRLGNBQWlCLElBQUksQ0FBQztBQUMxQyxlQUFTLFVBQVU7QUFBQSxJQUNyQjtBQUVBLGdCQUFZLFVBQVU7QUFFdEIsV0FBTztBQUFBLE1BQ0w7QUFBQSxNQUNBLE1BQU07QUFBQSxJQUNSO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFFQSxJQUFNLGNBQWMsQ0FBSyxTQUN2QixJQUFJLElBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxRQUFhLEVBQXFDLE9BQU8sa0NBQVMsQ0FBQztBQUUxRixJQUFNLGdCQUNKLENBQUssVUFDTCxDQUFDLFNBQXNCO0FBQ3JCLE1BQUksTUFBTSxRQUFRLElBQUksR0FBRztBQUN2QixTQUFLLFFBQVEsY0FBYyxLQUFLLENBQUM7QUFBQSxFQUNuQyxXQUFXLE9BQU8sU0FBUyxZQUFZO0FBQ3JDLFNBQUssS0FBSztBQUFBLEVBQ1osV0FBVyxNQUFNO0FBQ2YsSUFBQyxLQUFvQyxVQUFVO0FBQUEsRUFDakQ7QUFDRjs7O0FDMUVGLElBQUFDLDZCQUEwQjtBQUMxQixJQUFBQywyQkFBMEM7QUFJMUMsSUFBSSxjQUFjO0FBRVgsSUFBTSxzQkFBa0Isc0NBQWdDLENBQUMsVUFBVTtBQUN4RSxRQUFNLGdCQUFZLG1DQUFTLE1BQU0sV0FBVyxNQUFNLFVBQVU7QUFFNUQsU0FBTztBQUFBLElBQ0wsR0FBSSxZQUFZLEVBQUUsV0FBVyxjQUFjLFlBQVksY0FBYyxTQUFTLEVBQUUsSUFBSSxDQUFDO0FBQUEsSUFDckYsWUFBWTtBQUFBLEVBQ2Q7QUFDRixDQUFDO0FBRUQsSUFBTSxnQkFBZ0IsQ0FBQyxjQUNyQixVQUFVLFFBQVEsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLDZCQUE2QixFQUFFO0FBRTNFLElBQU0sdUNBQXVDLE1BQU07QUFDeEQsZ0JBQWM7QUFDaEI7QUFFTyxJQUFNLG9DQUFvQyxNQUFNO0FBQ3JELGdCQUFjO0FBQ2hCOzs7QUN4QkEsSUFBQUMsNkJBQTBCOzs7QUNEMUI7QUFBQTtBQUFBO0FBQUEsb0JBQUFDO0FBQUE7QUFBQSxJQUFBQyxnQ0FBNkI7QUFDdEIsSUFBTUQsbUJBQWEsNENBQWEsRUFBRSxJQUFJLHlFQUF5RSxLQUFLLDZIQUE2SCxDQUFDO0FBQ3pQLElBQU8sMEJBQVEsRUFBQyxZQUFXLHFDQUFvQyxTQUFRLGlDQUFnQzs7O0FESWhHLElBQU0scUJBQWlCLHNDQUF5RCxDQUFDLFdBQVc7QUFBQSxFQUNqRyxZQUFZO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixFQUFFLENBQUMsd0JBQWUsUUFBUSxHQUFHLENBQUMsQ0FBQyxNQUFNLFdBQVcsQ0FBQyx3QkFBZSxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sT0FBTztBQUFBLEVBQ3pGO0FBQUEsRUFDQSxRQUFRO0FBQUEsRUFDUixXQUFXO0FBQ2IsRUFBRTs7O0FuQkNGLElBQU0sVUFBVTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBRUEsSUFBTSxrQkFBa0IsTUFBNkIsQ0FBQyxnQkFBbUIsR0FBRyxVQUFhLENBQUM7QUFFbkYsSUFBTSxpQkFBYSxnQ0FBUyxnREFBb0IsT0FBTyxHQUFHLFNBQVMsR0FBRyxnQkFBZ0MsQ0FBQyxDQUFDOzs7QUhaL0csSUFBQUUsZ0JBQTRDO0FBa0V4QyxJQUFBQyxzQkFBQTtBQS9CRyxTQUFTLGdCQUFnQixjQUFzRDtBQUNwRixTQUFPO0FBQ1Q7QUFxQk8sSUFBTSxrQkFBaUMsRUFBRSxhQUFhLEdBQUc7QUFFaEUsSUFBTSwwQkFBMEIsb0JBQXdDO0FBRWpFLElBQU0seUJBQXlCLENBQUMsVUFBMkI7QUFDaEUsUUFBTSxFQUFFLFlBQVksR0FBRyxLQUFLLElBQUk7QUFFaEMsU0FDRTtBQUFBLElBQUM7QUFBQTtBQUFBLE1BQ0MsVUFBUTtBQUFBLE1BQ1Isa0JBQWlCO0FBQUEsTUFDakIsU0FBUyxFQUFFLFFBQVEsS0FBSztBQUFBLE1BQ3hCLE9BQU8sRUFBRSxNQUFNLElBQUk7QUFBQSxNQUNuQixZQUFVO0FBQUEsTUFDVixrQkFBZ0I7QUFBQSxNQUNoQixXQUFTO0FBQUEsTUFDVCxZQUFZLENBQUMsdUJBQU8sU0FBUyxVQUFVO0FBQUEsTUFDdkMsK0JBQTJCO0FBQUEsTUFDMUIsR0FBRztBQUFBO0FBQUEsRUFDTjtBQUVKO0FBV0EsSUFBTSxtQkFBbUIsQ0FBQyxZQUN4QixPQUFRLFFBQW9DLGdCQUFnQjtBQUU5RCxJQUFNLGlDQUFpQyxDQUFDLFVBQStDO0FBQ3JGLFFBQU0sRUFBRSxTQUFTLFVBQVUsV0FBVyxlQUFlLElBQUk7QUFDekQsUUFBTSxDQUFDLFVBQVUsV0FBVyxRQUFJLHdCQUE2QixJQUFJO0FBQ2pFLFFBQU0sRUFBRSxlQUFlLFFBQUksOEJBQVk7QUFBQSxJQUNyQyxXQUFXO0FBQUEsSUFDWCxZQUFZLEtBQUMsdUJBQUssT0FBRyx5QkFBTyxDQUFDLE9BQUcsd0JBQU0sQ0FBQztBQUFBLElBQ3ZDLHNCQUFzQjtBQUFBLElBQ3RCLFVBQVU7QUFBQSxNQUNSO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGLENBQUM7QUFHRCwrQkFBVSxNQUFNO0FBQ2QsU0FBSyxlQUFlO0FBQUEsRUFDdEIsR0FBRyxDQUFDLENBQUM7QUFLTCwrQkFBVSxNQUFNO0FBQ2QsUUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsUUFBUSxHQUFHO0FBQzVDO0FBQUEsSUFDRjtBQUVBLGFBQVMsWUFBWTtBQUVyQixXQUFPLE1BQU07QUFDWCxVQUFJLFNBQVMsYUFBYTtBQUN4QixpQkFBUyxZQUFZO0FBQUEsTUFDdkI7QUFBQSxJQUNGO0FBQUEsRUFDRixHQUFHLENBQUMsUUFBUSxDQUFDO0FBRWIsU0FDRSw2Q0FBQywwQkFBdUIsTUFBTSxhQUFhLFNBQVEsVUFBUyxPQUFPLGdCQUNoRSxtQkFDSDtBQUVKO0FBbUJBLElBQU0sMEJBQTBCLENBQUMsRUFBRSxTQUFTLGVBQWUsaUJBQWlCLFNBQVMsTUFBMkI7QUFDOUcsUUFBTSxDQUFDLFdBQVcsWUFBWSxRQUFJLHdCQUE2QixJQUFJO0FBQ25FLGdCQUFjLFlBQVk7QUFFMUIsUUFBTSxtQkFBZSxrQ0FBYyxzQkFBc0I7QUFDekQsUUFBTSx3QkFBb0Isa0NBQWMsMkJBQTJCO0FBQ25FLFFBQU0sa0JBQWMsa0NBQWMsOEJBQThCLEVBQUUsdUJBQXVCO0FBQ3pGLFFBQU0sU0FBSyxxQkFBTTtBQUVqQixRQUFNLG1CQUFlLHNCQUFPLFNBQVM7QUFDckMsZUFBYSxVQUFVO0FBRXZCLFFBQU0sc0JBQWtCLHNCQUFPLFlBQVk7QUFDM0Msa0JBQWdCLFVBQVU7QUFFMUIsa0JBQWdCO0FBQUEsSUFDZCxrQkFBYyxzQkFBTyxNQUFNO0FBQ3pCLFlBQU0sWUFBWSxLQUFLLElBQUk7QUFFM0Isd0JBQWtCLHVCQUF1QixFQUFFLElBQUksSUFBSTtBQUFBLFFBQ2pELFdBQVcseUJBQVcsSUFBSSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFBQSxRQUNwRCxVQUFVLE9BQU87QUFBQSxVQUNmLE1BQU0sYUFBYTtBQUFBLFVBQ25CLE9BQU8sZ0JBQWdCLFdBQVc7QUFBQSxVQUNsQyxTQUFTO0FBQUEsVUFDVCxXQUFXO0FBQUEsUUFDYjtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0gsQ0FBQztBQUFBLElBRUQsa0JBQWMsc0JBQU8sTUFBTTtBQUN6QixZQUFNLGVBQWUsa0JBQWtCLHVCQUF1QjtBQUM5RCxZQUFNLFlBQVksS0FBSyxJQUFJO0FBRTNCLG1CQUFhLE9BQU8sRUFBRTtBQUN0QixtQkFBYSxRQUFRLENBQUMsVUFBVSxNQUFNLFVBQVUsSUFBSSxTQUFTLENBQUM7QUFBQSxJQUNoRSxDQUFDO0FBQUEsRUFDSCxDQUFDO0FBRUQ7QUFBQSxJQUNFLFVBQ0Usc0JBQU8sTUFBTTtBQUNYLHdCQUFrQix1QkFBdUIsRUFBRSxPQUFPLEVBQUU7QUFBQSxJQUN0RCxDQUFDO0FBQUEsSUFDSCxDQUFDLG1CQUFtQixFQUFFO0FBQUEsRUFDeEI7QUFFQSxRQUFNLENBQUMsU0FBUyxVQUFVLFFBQUksd0JBQVMsS0FBSztBQUU1QywrQkFBVSxNQUFNO0FBQ2QsZUFBTyx1QkFBUSxNQUFNO0FBQ25CLFlBQU0sWUFBWSxZQUFZLElBQUksTUFBTSxhQUFhO0FBQ3JELGlCQUFXLFNBQVM7QUFBQSxJQUN0QixDQUFDO0FBQUEsRUFDSCxHQUFHLENBQUMsV0FBVyxDQUFDO0FBRWhCLFFBQU0sRUFBRSxhQUFhLFNBQVMsY0FBYyxVQUFVLGVBQWUsSUFBSTtBQUN6RSxRQUFNLFVBQVUsVUFBVSxZQUFZLFNBQVksY0FBYyw2Q0FBQyxXQUFTLEdBQUcsY0FBYyxJQUFLO0FBRWhHLFNBQ0UsOEVBQ0c7QUFBQSxrQkFDRztBQUFBLE1BQ0UsNkNBQUMsa0NBQWdDLEdBQUcsRUFBRSxTQUFTLFVBQVUsZ0JBQWdCLFVBQVUsR0FBRztBQUFBLE1BQ3RGLFNBQVM7QUFBQSxJQUNYLElBQ0E7QUFBQSxJQUNIO0FBQUEsS0FDSDtBQUVKO0FBRU8sU0FBUyxnQkFBdUM7QUFDckQsYUFBTyxzQ0FBa0UsQ0FBQyxVQUFVO0FBQ2xGLFVBQU0sRUFBRSxTQUFTLElBQUk7QUFFckIsUUFBSSxZQUFZLE1BQU07QUFDcEIsYUFBTztBQUFBLFFBQ0wsVUFBVTtBQUFBLE1BQ1o7QUFBQSxJQUNGO0FBRUEsVUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsaUJBQWlCO0FBQUEsSUFDbkIsSUFBd0IsT0FBTyxhQUFhLFdBQVcsRUFBRSxhQUFhLFNBQVMsSUFBSTtBQUVuRixXQUFPO0FBQUEsTUFDTCxVQUFVO0FBQUEsTUFDVixVQUFVO0FBQUEsUUFDUixXQUFXO0FBQUEsUUFDWCxPQUFPO0FBQUEsVUFDTCxTQUFTLEVBQUUsYUFBYSxTQUFTLGNBQWMsVUFBVSxlQUFlO0FBQUEsUUFDMUU7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQztBQUNIOzs7QXdCelBPLElBQU0sc0JBQXNCLE1BQWtEO0FBQ25GLFFBQU0sVUFBVTtBQUFBLElBQ2QsV0FBVyxDQUFDLFVBQXVCO0FBQUEsTUFDakM7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLElBRUEsV0FBVyxDQUFDLFlBQXlDO0FBQUEsTUFDbkQ7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7OztBQ2pDQSwwQkFBMkI7QUFDM0IsSUFBQUMsdUJBQStDOzs7QUNEL0M7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFBQyxzQkFBK0I7QUFVeEIsSUFBTSxzQkFBa0Isb0NBQWU7QUFBQSxFQUM1QyxJQUFJO0FBQUEsRUFFSixhQUFhLE1BQU0sTUFBTTtBQUN2QixVQUFNLEVBQUUsZUFBZSxVQUFVLFVBQVUsSUFBSTtBQUkvQyxXQUFPLE9BQU8sTUFBSywrQ0FBZSxhQUFZLFlBQVksYUFBYSxFQUFFO0FBQUEsRUFDM0U7QUFDRixDQUFDOzs7QUNwQkQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFBQyxzQkFBK0I7QUFDL0IsSUFBQUMsYUFBd0I7QUFHakIsSUFBTSwrQkFBMkIsb0NBQWU7QUFBQSxFQUNyRCxJQUFJO0FBQUEsRUFFSixhQUFhLENBQUMsT0FBTztBQUNuQixVQUFNLFFBQVEsR0FBRyxPQUFPLGVBQWU7QUFFdkMsV0FBTyxNQUFNLGtCQUFrQixNQUFNLElBQUksa0JBQWtCLHdCQUF3QjtBQUFBLEVBQ3JGO0FBQ0YsQ0FBQztBQUVELElBQU0sb0JBQ0osQ0FBSSxPQUNKLENBQUMsT0FBK0IsYUFBNEM7QUFDMUUsTUFBSSxHQUFHLEtBQUssR0FBRztBQUNiLFVBQU0sZUFBZTtBQUNyQixhQUFTLEtBQUs7QUFBQSxFQUNoQjtBQUNGO0FBRUYsSUFBTSxzQkFBa0Isb0JBQVE7QUFBQSxFQUM5QixVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQ1IsQ0FBQztBQUVELElBQU0sK0JBQTJCLG9CQUFRO0FBQUEsRUFDdkMsVUFBVTtBQUFBLEVBQ1YsUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUNSLENBQUM7OztBQ3JDRDtBQUFBO0FBQUE7QUFBQTtBQUFBLElBQUFDLHNCQUErQjtBQUV4QixJQUFNLDBEQUFzRCxvQ0FBZTtBQUFBLEVBQ2hGLElBQUk7QUFBQSxFQUVKLGFBQWEsTUFBTSxNQUFNLENBQUMsYUFBeUI7QUFDakQsZUFBVyxNQUFNO0FBQ2YsZUFBUztBQUFBLElBQ1gsR0FBRyxFQUFFO0FBQUEsRUFDUDtBQUNGLENBQUM7OztBQ1ZEO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFBQUMsc0JBQStCO0FBaUJ4QixJQUFNLHdDQUFvQyxvQ0FBZTtBQUFBLEVBQzlELElBQUk7QUFBQSxFQUVKLGFBQWEsTUFBTTtBQUNqQixVQUFNLG1CQUFtQixvQkFBSSxJQUEyQztBQUN4RSxVQUFNLHVCQUF1QixvQkFBSSxJQUErQjtBQUNoRSxVQUFNLGVBQW1DLENBQUM7QUFFMUMsVUFBTSxZQUFZLENBQUMsWUFBOEI7QUFDL0MsWUFBTSxXQUFXLGlCQUFpQixJQUFJLE9BQU87QUFFN0MsVUFBSSxVQUFVO0FBQ1osZUFBTztBQUFBLE1BQ1Q7QUFFQSxZQUFNLFVBQVUsb0JBQUksSUFBb0I7QUFFeEMsdUJBQWlCLElBQUksU0FBUyxPQUFPO0FBRXJDLGFBQU87QUFBQSxJQUNUO0FBRUEsV0FBTyxPQUFPO0FBQUEsTUFDWixpQkFBaUIsQ0FBQyxZQUNoQixDQUFDLEdBQUcsVUFBVSxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLEVBQUUsY0FBYyxFQUFFLFdBQVc7QUFBQSxNQUV0RSxnQkFBZ0IsTUFBTSxhQUFhLEdBQUcsRUFBRTtBQUFBLE1BRXhDLGVBQWUsQ0FBQyxZQUE4QixxQkFBcUIsSUFBSSxPQUFPO0FBQUEsTUFFOUUsaUJBQWlCLENBQUMsU0FBMkIsU0FBa0I7QUFDN0QsNkJBQXFCLElBQUksU0FBUyxJQUFJO0FBQUEsTUFDeEM7QUFBQSxNQUVBLFVBQVUsQ0FBQyxTQUEyQixVQUEwQjtBQUM5RCxjQUFNLFVBQVUsVUFBVSxPQUFPO0FBRWpDLFlBQUksUUFBUSxTQUFTLEdBQUc7QUFDdEIsdUJBQWEsS0FBSyxPQUFPO0FBQUEsUUFDM0I7QUFFQSxnQkFBUSxJQUFJLEtBQUs7QUFBQSxNQUNuQjtBQUFBLE1BRUEsWUFBWSxDQUFDLFNBQTJCLFVBQTBCO0FBQ2hFLGNBQU0sVUFBVSxVQUFVLE9BQU87QUFFakMsZ0JBQVEsT0FBTyxLQUFLO0FBRXBCLFlBQUksUUFBUSxTQUFTLEdBQUc7QUFDdEIsZ0JBQU0sZUFBZSxhQUFhLFlBQVksT0FBTztBQUVyRCxjQUFJLGlCQUFpQixJQUFJO0FBQ3ZCLHlCQUFhLE9BQU8sY0FBYyxDQUFDO0FBQUEsVUFDckM7QUFJQSwrQkFBcUIsT0FBTyxPQUFPO0FBQUEsUUFDckM7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDOzs7QUNoRkQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFBQyxzQkFBK0I7QUFJL0IsSUFBQUMsZ0JBQXlCO0FBRWxCLElBQU0sc0NBQWtDLG9DQUFlO0FBQUEsRUFDNUQsSUFBSTtBQUFBLEVBQ0osY0FBYyxDQUFDLDhCQUE4QjtBQUFBLEVBRTdDLGFBQWEsQ0FBQyxPQUFPO0FBQ25CLFVBQU0sbUJBQW1CLEdBQUcsT0FBTyw4QkFBOEI7QUFFakUsV0FBTyxDQUFDLFlBQXFEO0FBQzNELFlBQU0sY0FBYyxpQkFBaUIsRUFBRSxPQUFPO0FBRTlDLGlCQUFPLHdCQUFTLE1BQU0sQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDO0FBQUEsSUFDM0M7QUFBQSxFQUNGO0FBQ0YsQ0FBQzs7O0FDbkJEO0FBQUE7QUFBQTtBQUFBO0FBQUEsd0JBQWdEOzs7QUNFaEQsSUFBTSxVQUFVLENBQUM7QUFFakIsSUFBTywrQ0FBUTs7O0FDSmY7QUFBQTtBQUFBO0FBQUE7QUFJQSxJQUFPLDhFQUFRLENBQUMsT0FBb0I7QUFDbEMsS0FBRyxVQUFVLHFEQUFxRCxNQUFNLE1BQU0sQ0FBQyxhQUF5QixTQUFTLENBQUM7QUFDcEg7OztBQ05BO0FBQUE7QUFBQTtBQUFBO0FBTUEsSUFBTyx5Q0FBUSxDQUFDLE9BQW9CO0FBQ2xDLEtBQUcsVUFBVSx3QkFBd0IsTUFBTSxNQUFNLE1BQVM7QUFDNUQ7OztBQ1JBO0FBQUE7QUFBQTtBQUFBO0FBRUEsSUFBTyxxREFBUSxNQUFNO0FBQ25CLHVDQUFxQztBQUN2Qzs7O0FDRkEsSUFBTUMsV0FBVSxDQUFDLDZFQUFRLHdDQUFRLGtEQUFPO0FBRXhDLElBQU8sK0NBQVFBOzs7QUxBUixJQUFNLGlDQUE2QixtREFBZ0M7QUFBQSxFQUN4RTtBQUFBLEVBQ0E7QUFDRixDQUFDOzs7QU1MRCxJQUFNQyxXQUFVLENBQUMsMkJBQVEscUNBQVEsdUNBQVEsdUNBQVEsdUVBQVEsbURBQVEseUNBQVEsOENBQVEsNkJBQVEsdUNBQVEsaUNBQVMsdUNBQVMsdUNBQVMsNkNBQVMsa0NBQVMscUNBQVE7QUFFdEosSUFBTywrQ0FBUUE7OztBQ0pmO0FBQUE7QUFBQTtBQUFBLG9CQUFBQztBQUFBO0FBQUEsSUFBQUMsZ0NBQTZCO0FBQ3RCLElBQU1ELG1CQUFhLDRDQUFhLEVBQUUsSUFBSSxxRUFBcUUsS0FBSyxpNkNBQW02QyxDQUFDO0FBQzNoRCxJQUFPLHdCQUFRLEVBQUMsVUFBUyxpQ0FBZ0MsY0FBYSxxQ0FBb0MsZUFBYyxxQ0FBb0M7OztBQ0Y1SjtBQUFBO0FBQUE7QUFBQSxvQkFBQUU7QUFBQTtBQUFBLElBQUFDLGdDQUE2QjtBQUN0QixJQUFNRCxtQkFBYSw0Q0FBYSxFQUFFLElBQUksbUVBQW1FLEtBQUssNEhBQTRILENBQUM7QUFDbFAsSUFBTyx1QkFBUSxFQUFDLFNBQVEsK0JBQThCLGlCQUFnQixzQ0FBcUM7OztBQ0YzRztBQUFBO0FBQUE7QUFBQSxvQkFBQUU7QUFBQTtBQUFBLElBQUFDLGdDQUE2QjtBQUN0QixJQUFNRCxtQkFBYSw0Q0FBYSxFQUFFLElBQUksbUVBQW1FLEtBQUsseTNQQUF5M1AsQ0FBQztBQUMvK1AsSUFBTyx1QkFBUSxFQUFDLGtCQUFpQix3Q0FBdUMsd0JBQXVCLDhDQUE2Qyx3QkFBdUIsOENBQTZDLDJCQUEwQixpREFBZ0QsZ0JBQWUsc0NBQXFDLHNCQUFxQiw0Q0FBMkMsc0JBQXFCLDRDQUEyQyx5QkFBd0IsK0NBQThDLHNCQUFxQiw0Q0FBMkMsNEJBQTJCLGtEQUFpRCw0QkFBMkIsa0RBQWlELCtCQUE4QixxREFBb0Qsa0JBQWlCLHdDQUF1Qyx3QkFBdUIsOENBQTZDLHdCQUF1Qiw4Q0FBNkMsMkJBQTBCLGlEQUFnRCxpQkFBZ0IsdUNBQXNDLHVCQUFzQiw2Q0FBNEMsdUJBQXNCLDZDQUE0QywwQkFBeUIsZ0RBQStDLGlCQUFnQix1Q0FBc0MsdUJBQXNCLDZDQUE0Qyx1QkFBc0IsNkNBQTRDLDBCQUF5QixnREFBK0MsaUJBQWdCLHVDQUFzQyx1QkFBc0IsNkNBQTRDLHVCQUFzQiw2Q0FBNEMsMEJBQXlCLGdEQUErQyxpQkFBZ0IsdUNBQXNDLHVCQUFzQiw2Q0FBNEMsdUJBQXNCLDZDQUE0QywwQkFBeUIsZ0RBQStDLGlCQUFnQix1Q0FBc0MsdUJBQXNCLDZDQUE0Qyx1QkFBc0IsNkNBQTRDLDBCQUF5QixnREFBK0MsaUJBQWdCLHVDQUFzQyx1QkFBc0IsNkNBQTRDLHVCQUFzQiw2Q0FBNEMsMEJBQXlCLGdEQUErQyxpQkFBZ0IsdUNBQXNDLHVCQUFzQiw2Q0FBNEMsdUJBQXNCLDZDQUE0QywwQkFBeUIsZ0RBQStDLGlCQUFnQix1Q0FBc0MsdUJBQXNCLDZDQUE0Qyx1QkFBc0IsNkNBQTRDLDBCQUF5QixnREFBK0Msd0JBQXVCLDhDQUE2Qyw4QkFBNkIsb0RBQW1ELDhCQUE2QixvREFBbUQsaUNBQWdDLHVEQUFzRCxrQkFBaUIsd0NBQXVDLHdCQUF1Qiw4Q0FBNkMsd0JBQXVCLDhDQUE2QywyQkFBMEIsaURBQWdELGlCQUFnQix1Q0FBc0MsdUJBQXNCLDZDQUE0Qyx1QkFBc0IsNkNBQTRDLDBCQUF5QixnREFBK0Msa0JBQWlCLHdDQUF1Qyx3QkFBdUIsOENBQTZDLHdCQUF1Qiw4Q0FBNkMsMkJBQTBCLGlEQUFnRCxpQkFBZ0IsdUNBQXNDLHVCQUFzQiw2Q0FBNEMsdUJBQXNCLDZDQUE0QywwQkFBeUIsZ0RBQStDLGtCQUFpQix3Q0FBdUMsd0JBQXVCLDhDQUE2Qyx3QkFBdUIsOENBQTZDLDJCQUEwQixpREFBZ0QsbUJBQWtCLHlDQUF3Qyx5QkFBd0IsK0NBQThDLHlCQUF3QiwrQ0FBOEMsNEJBQTJCLGtEQUFpRCxzQkFBcUIsNENBQTJDLDRCQUEyQixrREFBaUQsNEJBQTJCLGtEQUFpRCwrQkFBOEIscURBQW9ELHNCQUFxQiw0Q0FBMkMsNEJBQTJCLGtEQUFpRCw0QkFBMkIsa0RBQWlELCtCQUE4QixxREFBb0QsdUJBQXNCLDZDQUE0Qyw2QkFBNEIsbURBQWtELDZCQUE0QixtREFBa0QsZ0NBQStCLHNEQUFxRCxlQUFjLHFDQUFvQyxxQkFBb0IsMkNBQTBDLHFCQUFvQiwyQ0FBMEMsd0JBQXVCLDhDQUE2QyxlQUFjLHFDQUFvQyxxQkFBb0IsMkNBQTBDLHFCQUFvQiwyQ0FBMEMsd0JBQXVCLDZDQUE0Qzs7O0FDRi95TTtBQUFBO0FBQUE7QUFBQSxvQkFBQUU7QUFBQTtBQUFBLElBQUFDLGdDQUE2QjtBQUN0QixJQUFNRCxtQkFBYSw0Q0FBYSxFQUFFLElBQUkscUVBQXFFLEtBQUssb3RFQUFvdEUsQ0FBQztBQUM1MEUsSUFBTyx3QkFBUSxFQUFDLFNBQVEsZ0NBQStCLGNBQWEscUNBQW9DLFFBQU8sK0JBQThCLGlCQUFnQix3Q0FBdUMsZ0JBQWUsdUNBQXNDLFFBQU8sK0JBQThCLGFBQVksb0NBQW1DLFdBQVUsa0NBQWlDLGVBQWMsc0NBQXFDLHdCQUF1QiwrQ0FBOEMsUUFBTywrQkFBOEIsWUFBVyxtQ0FBa0MsUUFBTywrQkFBOEIsUUFBTywrQkFBOEIsZ0JBQWUsdUNBQXNDLG9CQUFtQiwyQ0FBMEMsa0NBQWlDLHlEQUF3RCxXQUFVLGtDQUFpQyxRQUFPLCtCQUE4QixlQUFjLHNDQUFxQywwQkFBeUIsaURBQWdELG9CQUFtQiwyQ0FBMEMsa0NBQWlDLHlEQUF3RCxXQUFVLGtDQUFpQyxZQUFXLG1DQUFrQyxjQUFhLHFDQUFvQyxnQkFBZSx1Q0FBc0Msb0JBQW1CLDJDQUEwQyxvQkFBbUIsMkNBQTBDLFFBQU8sK0JBQThCLGlCQUFnQix3Q0FBdUMsZUFBYyxzQ0FBcUMsUUFBTywrQkFBOEIsV0FBVSxrQ0FBaUMsWUFBVyxrQ0FBaUM7OztBQ0Y1dkQ7QUFBQTtBQUFBO0FBQUEsb0JBQUFFO0FBQUE7QUFBQSxJQUFBQyxnQ0FBNkI7QUFDdEIsSUFBTUQsbUJBQWEsNENBQWEsRUFBRSxJQUFJLHlGQUF5RixLQUFLLHdFQUF3RSxDQUFDO0FBQ3BOLElBQU8sa0NBQVEsRUFBQyxZQUFXLDRDQUEyQzs7O0FDRnRFO0FBQUE7QUFBQTtBQUFBLG9CQUFBRTtBQUFBO0FBQUEsSUFBQUMsZ0NBQTZCO0FBQ3RCLElBQU1ELG1CQUFhLDRDQUFhLEVBQUUsSUFBSSx5RkFBeUYsS0FBSyxxSEFBcUgsQ0FBQztBQUNqUSxJQUFPLDJCQUFRLEVBQUMsYUFBWSxzQ0FBcUM7OztBQ0ZqRTtBQUFBO0FBQUE7QUFBQSxvQkFBQUU7QUFBQTtBQUFBLElBQUFDLGdDQUE2QjtBQUN0QixJQUFNRCxtQkFBYSw0Q0FBYSxFQUFFLElBQUksbUVBQW1FLEtBQUsscURBQXFELENBQUM7QUFDM0ssSUFBTyx1QkFBUSxFQUFDLFNBQVEsOEJBQTZCOzs7QUNGckQ7QUFBQTtBQUFBO0FBQUEsb0JBQUFFO0FBQUE7QUFBQSxJQUFBQyxnQ0FBNkI7QUFDdEIsSUFBTUQsbUJBQWEsNENBQWEsRUFBRSxJQUFJLDZFQUE2RSxLQUFLLHFPQUFxTyxDQUFDO0FBQ3JXLElBQU8sNEJBQVEsRUFBQyxjQUFhLHlDQUF3QywwQkFBeUIscURBQW9ELHFCQUFvQiwrQ0FBOEM7OztBQ0ZwTjtBQUFBO0FBQUE7QUFBQSxvQkFBQUU7QUFBQTtBQUFBLElBQUFDLGdDQUE2QjtBQUN0QixJQUFNRCxtQkFBYSw0Q0FBYSxFQUFFLElBQUksaUVBQWlFLEtBQUssczVKQUFzNUosQ0FBQztBQUMxZ0ssSUFBTyxzQkFBUSxFQUFDLFFBQU8sNkJBQTRCLG9CQUFtQix5Q0FBd0MsNkJBQTRCLGtEQUFpRCxzQ0FBcUMsMkRBQTBELCtCQUE4QixvREFBbUQsd0NBQXVDLDZEQUE0RCxzQ0FBcUMsMkRBQTBELHFDQUFvQywwREFBeUQsZ0NBQStCLHFEQUFvRCxpQ0FBZ0Msc0RBQXFELG1DQUFrQyx3REFBdUQsaUNBQWdDLHNEQUFxRCw2QkFBNEIsa0RBQWlELDRCQUEyQixpREFBZ0QsK0JBQThCLG9EQUFtRCw2QkFBNEIsa0RBQWlELG1CQUFrQix3Q0FBdUMsMkJBQTBCLGdEQUErQyx3QkFBdUIsNkNBQTRDLGtCQUFpQix1Q0FBc0MsMEJBQXlCLCtDQUE4Qyx1QkFBc0IsNENBQTJDLGtCQUFpQix1Q0FBc0MsMEJBQXlCLCtDQUE4Qyx1QkFBc0IsNENBQTJDLGtCQUFpQix1Q0FBc0MsMEJBQXlCLCtDQUE4Qyx1QkFBc0IsNENBQTJDLGlCQUFnQixzQ0FBcUMseUJBQXdCLDhDQUE2QyxzQkFBcUIsMkNBQTBDLGdCQUFlLHFDQUFvQyx3QkFBdUIsNkNBQTRDLHFCQUFvQiwwQ0FBeUMsZ0JBQWUscUNBQW9DLHdCQUF1Qiw2Q0FBNEMscUJBQW9CLDBDQUF5QyxnQkFBZSxxQ0FBb0Msd0JBQXVCLDZDQUE0QyxxQkFBb0IsMENBQXlDLGlCQUFnQixzQ0FBcUMseUJBQXdCLDhDQUE2QyxzQkFBcUIsMkNBQTBDLGtCQUFpQix1Q0FBc0MsMEJBQXlCLCtDQUE4Qyx1QkFBc0IsNENBQTJDLGtCQUFpQix1Q0FBc0MsMEJBQXlCLCtDQUE4Qyx1QkFBc0IsNENBQTJDLGtCQUFpQix1Q0FBc0MsMEJBQXlCLCtDQUE4Qyx1QkFBc0IsNENBQTJDLGtCQUFpQix1Q0FBc0MsMEJBQXlCLCtDQUE4Qyx1QkFBc0IsNENBQTJDLGtCQUFpQix1Q0FBc0MsMEJBQXlCLCtDQUE4Qyx1QkFBc0IsNENBQTJDLGtCQUFpQix1Q0FBc0MsMEJBQXlCLCtDQUE4Qyx1QkFBc0IsNENBQTJDLGtCQUFpQix1Q0FBc0MsMEJBQXlCLCtDQUE4Qyx1QkFBc0IsNENBQTJDLGtCQUFpQix1Q0FBc0MsMEJBQXlCLCtDQUE4Qyx1QkFBc0IsNENBQTJDLG1CQUFrQix3Q0FBdUMsMkJBQTBCLGdEQUErQyx3QkFBdUIsNkNBQTRDLG1CQUFrQix3Q0FBdUMsMkJBQTBCLGdEQUErQyx3QkFBdUIsNENBQTJDOzs7QUNGcHlKO0FBQUE7QUFBQTtBQUFBLG9CQUFBRTtBQUFBO0FBQUEsSUFBQUMsZ0NBQTZCO0FBQ3RCLElBQU1ELG1CQUFhLDRDQUFhLEVBQUUsSUFBSSx5RUFBeUUsS0FBSyx1RkFBdUYsQ0FBQztBQUNuTixJQUFPLDBCQUFRLEVBQUMsWUFBVyxvQ0FBbUM7OztBQ0Y5RDtBQUFBO0FBQUE7QUFBQSxvQkFBQUU7QUFBQTtBQUFBLElBQUFDLGdDQUE2QjtBQUN0QixJQUFNRCxtQkFBYSw0Q0FBYSxFQUFFLElBQUksMkVBQTJFLEtBQUssd0VBQXdFLENBQUM7QUFDdE0sSUFBTywyQkFBUSxFQUFDLGFBQVksc0NBQXFDOzs7QUNGakU7QUFBQTtBQUFBO0FBQUEsb0JBQUFFO0FBQUE7QUFBQSxJQUFBQyxnQ0FBNkI7QUFDdEIsSUFBTUQsbUJBQWEsNENBQWEsRUFBRSxJQUFJLGlFQUFpRSxLQUFLLGlxSkFBaXFKLENBQUM7QUFDcnhKLElBQU8sc0JBQVEsRUFBQyxRQUFPLDZCQUE0QixvQkFBbUIseUNBQXdDLG9CQUFtQix5Q0FBd0Msb0JBQW1CLHlDQUF3QyxvQkFBbUIseUNBQXdDLG9CQUFtQix5Q0FBd0Msb0JBQW1CLHlDQUF3Qyw0QkFBMkIsaURBQWdELDZCQUE0QixrREFBaUQsNEJBQTJCLGlEQUFnRCwyQkFBMEIsZ0RBQStDLHlCQUF3Qiw4Q0FBNkMsbUJBQWtCLHdDQUF1QywyQkFBMEIsZ0RBQStDLHdCQUF1Qiw2Q0FBNEMsa0JBQWlCLHVDQUFzQywwQkFBeUIsK0NBQThDLHVCQUFzQiw0Q0FBMkMsa0JBQWlCLHVDQUFzQywwQkFBeUIsK0NBQThDLHVCQUFzQiw0Q0FBMkMsa0JBQWlCLHVDQUFzQywwQkFBeUIsK0NBQThDLHVCQUFzQiw0Q0FBMkMsaUJBQWdCLHNDQUFxQyx5QkFBd0IsOENBQTZDLHNCQUFxQiwyQ0FBMEMsZ0JBQWUscUNBQW9DLHdCQUF1Qiw2Q0FBNEMscUJBQW9CLDBDQUF5QyxnQkFBZSxxQ0FBb0Msd0JBQXVCLDZDQUE0QyxxQkFBb0IsMENBQXlDLGdCQUFlLHFDQUFvQyx3QkFBdUIsNkNBQTRDLHFCQUFvQiwwQ0FBeUMsaUJBQWdCLHNDQUFxQyx5QkFBd0IsOENBQTZDLHNCQUFxQiwyQ0FBMEMsa0JBQWlCLHVDQUFzQywwQkFBeUIsK0NBQThDLHVCQUFzQiw0Q0FBMkMsa0JBQWlCLHVDQUFzQywwQkFBeUIsK0NBQThDLHVCQUFzQiw0Q0FBMkMsa0JBQWlCLHVDQUFzQywwQkFBeUIsK0NBQThDLHVCQUFzQiw0Q0FBMkMsa0JBQWlCLHVDQUFzQywwQkFBeUIsK0NBQThDLHVCQUFzQiw0Q0FBMkMsa0JBQWlCLHVDQUFzQywwQkFBeUIsK0NBQThDLHVCQUFzQiw0Q0FBMkMsa0JBQWlCLHVDQUFzQywwQkFBeUIsK0NBQThDLHVCQUFzQiw0Q0FBMkMsa0JBQWlCLHVDQUFzQywwQkFBeUIsK0NBQThDLHVCQUFzQiw0Q0FBMkMsa0JBQWlCLHVDQUFzQywwQkFBeUIsK0NBQThDLHVCQUFzQiw0Q0FBMkMsbUJBQWtCLHdDQUF1QywyQkFBMEIsZ0RBQStDLHdCQUF1Qiw2Q0FBNEMsbUJBQWtCLHdDQUF1QywyQkFBMEIsZ0RBQStDLHdCQUF1Qiw0Q0FBMkM7OztBQ0ZweEk7QUFBQTtBQUFBO0FBQUEsb0JBQUFFO0FBQUE7QUFBQSxJQUFBQyxnQ0FBNkI7QUFDdEIsSUFBTUQsbUJBQWEsNENBQWEsRUFBRSxJQUFJLHFFQUFxRSxLQUFLLHd6SEFBd3pILENBQUM7QUFDaDdILElBQU8sd0JBQVEsRUFBQyxvQkFBbUIsMkNBQTBDLG9CQUFtQiwyQ0FBMEMsbUJBQWtCLDBDQUF5QyxtQkFBa0IsMENBQXlDLG1CQUFrQiwwQ0FBeUMsa0JBQWlCLHlDQUF3QyxpQkFBZ0Isd0NBQXVDLGlCQUFnQix3Q0FBdUMsaUJBQWdCLHdDQUF1QyxrQkFBaUIseUNBQXdDLG1CQUFrQiwwQ0FBeUMsbUJBQWtCLDBDQUF5QyxtQkFBa0IsMENBQXlDLG1CQUFrQiwwQ0FBeUMsbUJBQWtCLDBDQUF5QyxtQkFBa0IsMENBQXlDLG1CQUFrQiwwQ0FBeUMsbUJBQWtCLDBDQUF5QyxvQkFBbUIsMkNBQTBDLG9CQUFtQiwyQ0FBMEMsb0JBQW1CLDJDQUEwQyxtQkFBa0IsMENBQXlDLG1CQUFrQiwwQ0FBeUMsbUJBQWtCLDBDQUF5QyxrQkFBaUIseUNBQXdDLGlCQUFnQix3Q0FBdUMsaUJBQWdCLHdDQUF1QyxpQkFBZ0Isd0NBQXVDLGtCQUFpQix5Q0FBd0MsbUJBQWtCLDBDQUF5QyxtQkFBa0IsMENBQXlDLG1CQUFrQiwwQ0FBeUMsbUJBQWtCLDBDQUF5QyxtQkFBa0IsMENBQXlDLG1CQUFrQiwwQ0FBeUMsbUJBQWtCLDBDQUF5QyxtQkFBa0IsMENBQXlDLG9CQUFtQiwyQ0FBMEMsb0JBQW1CLDJDQUEwQyxtQkFBa0IsMENBQXlDLGdCQUFlLHVDQUFzQyxnQkFBZSx1Q0FBc0MsZ0JBQWUsdUNBQXNDLGVBQWMsc0NBQXFDLGVBQWMsc0NBQXFDLGVBQWMsc0NBQXFDLGNBQWEscUNBQW9DLGFBQVksb0NBQW1DLGFBQVksb0NBQW1DLGFBQVksb0NBQW1DLGNBQWEscUNBQW9DLGVBQWMsc0NBQXFDLGVBQWMsc0NBQXFDLGVBQWMsc0NBQXFDLGVBQWMsc0NBQXFDLGVBQWMsc0NBQXFDLGVBQWMsc0NBQXFDLGVBQWMsc0NBQXFDLGVBQWMsc0NBQXFDLGdCQUFlLHVDQUFzQyxnQkFBZSxzQ0FBcUM7OztBQ0Y5MUc7QUFBQTtBQUFBO0FBQUEsb0JBQUFFO0FBQUE7QUFBQSxJQUFBQyxnQ0FBNkI7QUFDdEIsSUFBTUQsbUJBQWEsNENBQWEsRUFBRSxJQUFJLHFFQUFxRSxLQUFLLHdEQUF3RCxDQUFDO0FBQ2hMLElBQU8sd0JBQVEsRUFBQyxVQUFTLGdDQUErQjs7O0FDRnhEO0FBQUE7QUFBQTtBQUFBLG9CQUFBRTtBQUFBO0FBQUEsSUFBQUMsZ0NBQTZCO0FBQ3RCLElBQU1ELG1CQUFhLDRDQUFhLEVBQUUsSUFBSSwrRUFBK0UsS0FBSyxvdUJBQW91QixDQUFDO0FBQ3QyQixJQUFPLDZCQUFRLEVBQUMsZUFBYywyQ0FBMEMsc0JBQXFCLGtEQUFpRCxVQUFTLHFDQUFvQzs7O0FDRjNMO0FBQUE7QUFBQTtBQUFBLG9CQUFBRTtBQUFBO0FBQUEsSUFBQUMsZ0NBQTZCO0FBQ3RCLElBQU1ELG1CQUFhLDRDQUFhLEVBQUUsSUFBSSw2RkFBNkYsS0FBSyx5R0FBeUcsQ0FBQztBQUN6UCxJQUFPLG9DQUFRLEVBQUMscUJBQW9CLHVEQUFzRDs7O0FDRjFGO0FBQUE7QUFBQTtBQUFBLG9CQUFBRTtBQUFBO0FBQUEsSUFBQUMsZ0NBQTZCO0FBQ3RCLElBQU1ELG1CQUFhLDRDQUFhLEVBQUUsSUFBSSxxRUFBcUUsS0FBSyw4ak5BQThqTixDQUFDO0FBQ3RyTixJQUFPLHdCQUFRLEVBQUMscUJBQW9CLDRDQUEyQyxvQkFBbUIsMkNBQTBDLG9CQUFtQiwyQ0FBMEMsb0JBQW1CLDJDQUEwQyxtQkFBa0IsMENBQXlDLGtCQUFpQix5Q0FBd0Msa0JBQWlCLHlDQUF3QyxrQkFBaUIseUNBQXdDLG1CQUFrQiwwQ0FBeUMsb0JBQW1CLDJDQUEwQyxvQkFBbUIsMkNBQTBDLG9CQUFtQiwyQ0FBMEMsb0JBQW1CLDJDQUEwQyxvQkFBbUIsMkNBQTBDLG9CQUFtQiwyQ0FBMEMsb0JBQW1CLDJDQUEwQyxvQkFBbUIsMkNBQTBDLHFCQUFvQiw0Q0FBMkMscUJBQW9CLDRDQUEyQyx1QkFBc0IsOENBQTZDLHNCQUFxQiw2Q0FBNEMsc0JBQXFCLDZDQUE0QyxzQkFBcUIsNkNBQTRDLHFCQUFvQiw0Q0FBMkMsb0JBQW1CLDJDQUEwQyxvQkFBbUIsMkNBQTBDLG9CQUFtQiwyQ0FBMEMscUJBQW9CLDRDQUEyQyxzQkFBcUIsNkNBQTRDLHNCQUFxQiw2Q0FBNEMsc0JBQXFCLDZDQUE0QyxzQkFBcUIsNkNBQTRDLHNCQUFxQiw2Q0FBNEMsc0JBQXFCLDZDQUE0QyxzQkFBcUIsNkNBQTRDLHNCQUFxQiw2Q0FBNEMsdUJBQXNCLDhDQUE2Qyx1QkFBc0IsOENBQTZDLHdCQUF1QiwrQ0FBOEMsdUJBQXNCLDhDQUE2Qyx1QkFBc0IsOENBQTZDLHVCQUFzQiw4Q0FBNkMsc0JBQXFCLDZDQUE0QyxxQkFBb0IsNENBQTJDLHFCQUFvQiw0Q0FBMkMscUJBQW9CLDRDQUEyQyxzQkFBcUIsNkNBQTRDLHVCQUFzQiw4Q0FBNkMsdUJBQXNCLDhDQUE2Qyx1QkFBc0IsOENBQTZDLHVCQUFzQiw4Q0FBNkMsdUJBQXNCLDhDQUE2Qyx1QkFBc0IsOENBQTZDLHVCQUFzQiw4Q0FBNkMsdUJBQXNCLDhDQUE2Qyx3QkFBdUIsK0NBQThDLHdCQUF1QiwrQ0FBOEMsc0JBQXFCLDZDQUE0QyxxQkFBb0IsNENBQTJDLHFCQUFvQiw0Q0FBMkMscUJBQW9CLDRDQUEyQyxvQkFBbUIsMkNBQTBDLG1CQUFrQiwwQ0FBeUMsbUJBQWtCLDBDQUF5QyxtQkFBa0IsMENBQXlDLG9CQUFtQiwyQ0FBMEMscUJBQW9CLDRDQUEyQyxxQkFBb0IsNENBQTJDLHFCQUFvQiw0Q0FBMkMscUJBQW9CLDRDQUEyQyxxQkFBb0IsNENBQTJDLHFCQUFvQiw0Q0FBMkMscUJBQW9CLDRDQUEyQyxxQkFBb0IsNENBQTJDLHNCQUFxQiw2Q0FBNEMsc0JBQXFCLDZDQUE0QyxnQkFBZSx1Q0FBc0MsZUFBYyxzQ0FBcUMsZUFBYyxzQ0FBcUMsZUFBYyxzQ0FBcUMsY0FBYSxxQ0FBb0MsYUFBWSxvQ0FBbUMsYUFBWSxvQ0FBbUMsYUFBWSxvQ0FBbUMsY0FBYSxxQ0FBb0MsZUFBYyxzQ0FBcUMsZUFBYyxzQ0FBcUMsZUFBYyxzQ0FBcUMsZUFBYyxzQ0FBcUMsZUFBYyxzQ0FBcUMsZUFBYyxzQ0FBcUMsZUFBYyxzQ0FBcUMsZUFBYyxzQ0FBcUMsZ0JBQWUsdUNBQXNDLGdCQUFlLHVDQUFzQyxnQkFBZSxzQ0FBcUM7OztBQ0YzdEw7QUFBQTtBQUFBO0FBQUEsb0JBQUFFO0FBQUE7QUFBQSxJQUFBQyxnQ0FBNkI7QUFDdEIsSUFBTUQsbUJBQWEsNENBQWEsRUFBRSxJQUFJLHVGQUF1RixLQUFLLDZtUEFBNm1QLENBQUM7QUFDdnZQLElBQU8saUNBQVEsRUFBQyw4QkFBNkIsOERBQTZELGlDQUFnQyxpRUFBZ0UsK0JBQThCLCtEQUE4RCxnQ0FBK0IsZ0VBQStELDZCQUE0Qiw2REFBNEQsZ0NBQStCLGdFQUErRCw4QkFBNkIsOERBQTZELCtCQUE4QiwrREFBOEQsNkJBQTRCLDZEQUE0RCxnQ0FBK0IsZ0VBQStELDhCQUE2Qiw4REFBNkQsK0JBQThCLCtEQUE4RCw2QkFBNEIsNkRBQTRELGdDQUErQixnRUFBK0QsOEJBQTZCLDhEQUE2RCwrQkFBOEIsK0RBQThELDRCQUEyQiw0REFBMkQsK0JBQThCLCtEQUE4RCw2QkFBNEIsNkRBQTRELDhCQUE2Qiw4REFBNkQsMkJBQTBCLDJEQUEwRCw4QkFBNkIsOERBQTZELDRCQUEyQiw0REFBMkQsNkJBQTRCLDZEQUE0RCwyQkFBMEIsMkRBQTBELDhCQUE2Qiw4REFBNkQsNEJBQTJCLDREQUEyRCw2QkFBNEIsNkRBQTRELDJCQUEwQiwyREFBMEQsOEJBQTZCLDhEQUE2RCw0QkFBMkIsNERBQTJELDZCQUE0Qiw2REFBNEQsNEJBQTJCLDREQUEyRCwrQkFBOEIsK0RBQThELDZCQUE0Qiw2REFBNEQsOEJBQTZCLDhEQUE2RCw2QkFBNEIsNkRBQTRELGdDQUErQixnRUFBK0QsOEJBQTZCLDhEQUE2RCwrQkFBOEIsK0RBQThELDZCQUE0Qiw2REFBNEQsZ0NBQStCLGdFQUErRCw4QkFBNkIsOERBQTZELCtCQUE4QiwrREFBOEQsNkJBQTRCLDZEQUE0RCxnQ0FBK0IsZ0VBQStELDhCQUE2Qiw4REFBNkQsK0JBQThCLCtEQUE4RCw2QkFBNEIsNkRBQTRELGdDQUErQixnRUFBK0QsOEJBQTZCLDhEQUE2RCwrQkFBOEIsK0RBQThELDZCQUE0Qiw2REFBNEQsZ0NBQStCLGdFQUErRCw4QkFBNkIsOERBQTZELCtCQUE4QiwrREFBOEQsNkJBQTRCLDZEQUE0RCxnQ0FBK0IsZ0VBQStELDhCQUE2Qiw4REFBNkQsK0JBQThCLCtEQUE4RCw2QkFBNEIsNkRBQTRELGdDQUErQixnRUFBK0QsOEJBQTZCLDhEQUE2RCwrQkFBOEIsK0RBQThELDZCQUE0Qiw2REFBNEQsZ0NBQStCLGdFQUErRCw4QkFBNkIsOERBQTZELCtCQUE4QiwrREFBOEQsOEJBQTZCLDhEQUE2RCxpQ0FBZ0MsaUVBQWdFLCtCQUE4QiwrREFBOEQsZ0NBQStCLGdFQUErRCw4QkFBNkIsOERBQTZELGlDQUFnQyxpRUFBZ0UsK0JBQThCLCtEQUE4RCxnQ0FBK0IsK0RBQThEOzs7QUNGM3VOO0FBQUE7QUFBQTtBQUFBLG9CQUFBRTtBQUFBO0FBQUEsSUFBQUMsZ0NBQTZCO0FBQ3RCLElBQU1ELG1CQUFhLDRDQUFhLEVBQUUsSUFBSSxxRUFBcUUsS0FBSyxxK0xBQXErTCxDQUFDO0FBQzdsTSxJQUFPLHdCQUFRLEVBQUMscUJBQW9CLDRDQUEyQyx3QkFBdUIsK0NBQThDLHNCQUFxQiw2Q0FBNEMsdUJBQXNCLDhDQUE2QyxvQkFBbUIsMkNBQTBDLHVCQUFzQiw4Q0FBNkMscUJBQW9CLDRDQUEyQyxzQkFBcUIsNkNBQTRDLG9CQUFtQiwyQ0FBMEMsdUJBQXNCLDhDQUE2QyxxQkFBb0IsNENBQTJDLHNCQUFxQiw2Q0FBNEMsb0JBQW1CLDJDQUEwQyx1QkFBc0IsOENBQTZDLHFCQUFvQiw0Q0FBMkMsc0JBQXFCLDZDQUE0QyxtQkFBa0IsMENBQXlDLHNCQUFxQiw2Q0FBNEMsb0JBQW1CLDJDQUEwQyxxQkFBb0IsNENBQTJDLGtCQUFpQix5Q0FBd0MscUJBQW9CLDRDQUEyQyxtQkFBa0IsMENBQXlDLG9CQUFtQiwyQ0FBMEMsa0JBQWlCLHlDQUF3QyxxQkFBb0IsNENBQTJDLG1CQUFrQiwwQ0FBeUMsb0JBQW1CLDJDQUEwQyxrQkFBaUIseUNBQXdDLHFCQUFvQiw0Q0FBMkMsbUJBQWtCLDBDQUF5QyxvQkFBbUIsMkNBQTBDLG1CQUFrQiwwQ0FBeUMsc0JBQXFCLDZDQUE0QyxvQkFBbUIsMkNBQTBDLHFCQUFvQiw0Q0FBMkMsb0JBQW1CLDJDQUEwQyx1QkFBc0IsOENBQTZDLHFCQUFvQiw0Q0FBMkMsc0JBQXFCLDZDQUE0QyxvQkFBbUIsMkNBQTBDLHVCQUFzQiw4Q0FBNkMscUJBQW9CLDRDQUEyQyxzQkFBcUIsNkNBQTRDLG9CQUFtQiwyQ0FBMEMsdUJBQXNCLDhDQUE2QyxxQkFBb0IsNENBQTJDLHNCQUFxQiw2Q0FBNEMsb0JBQW1CLDJDQUEwQyx1QkFBc0IsOENBQTZDLHFCQUFvQiw0Q0FBMkMsc0JBQXFCLDZDQUE0QyxvQkFBbUIsMkNBQTBDLHVCQUFzQiw4Q0FBNkMscUJBQW9CLDRDQUEyQyxzQkFBcUIsNkNBQTRDLG9CQUFtQiwyQ0FBMEMsdUJBQXNCLDhDQUE2QyxxQkFBb0IsNENBQTJDLHNCQUFxQiw2Q0FBNEMsb0JBQW1CLDJDQUEwQyx1QkFBc0IsOENBQTZDLHFCQUFvQiw0Q0FBMkMsc0JBQXFCLDZDQUE0QyxvQkFBbUIsMkNBQTBDLHVCQUFzQiw4Q0FBNkMscUJBQW9CLDRDQUEyQyxzQkFBcUIsNkNBQTRDLHFCQUFvQiw0Q0FBMkMsd0JBQXVCLCtDQUE4QyxzQkFBcUIsNkNBQTRDLHVCQUFzQiw4Q0FBNkMscUJBQW9CLDRDQUEyQyx3QkFBdUIsK0NBQThDLHNCQUFxQiw2Q0FBNEMsdUJBQXNCLDZDQUE0Qzs7O0FDRnZ1SjtBQUFBO0FBQUE7QUFBQSxvQkFBQUU7QUFBQTtBQUFBLElBQUFDLGdDQUE2QjtBQUN0QixJQUFNRCxtQkFBYSw0Q0FBYSxFQUFFLElBQUksdUVBQXVFLEtBQUssby9LQUFvL0ssQ0FBQztBQUM5bUwsSUFBTyx5QkFBUSxFQUFDLFdBQVUsbUNBQWtDLGdCQUFlLHdDQUF1QyxrQkFBaUIsMENBQXlDLGdCQUFlLHdDQUF1QyxzQkFBcUIsOENBQTZDLGtCQUFpQiwwQ0FBeUMsaUJBQWdCLHlDQUF3QyxpQkFBZ0IseUNBQXdDLGlCQUFnQix5Q0FBd0MsaUJBQWdCLHlDQUF3QyxpQkFBZ0IseUNBQXdDLGlCQUFnQix5Q0FBd0MsaUJBQWdCLHlDQUF3QyxpQkFBZ0IseUNBQXdDLHdCQUF1QixnREFBK0Msa0JBQWlCLDBDQUF5QyxpQkFBZ0IseUNBQXdDLGtCQUFpQiwwQ0FBeUMsaUJBQWdCLHlDQUF3QyxrQkFBaUIsMENBQXlDLG1CQUFrQiwyQ0FBMEMsc0JBQXFCLDhDQUE2QyxzQkFBcUIsOENBQTZDLHVCQUFzQiwrQ0FBOEMsZUFBYyx1Q0FBc0MsZUFBYyx1Q0FBc0MsZUFBYyx1Q0FBc0MsY0FBYSxzQ0FBcUMsYUFBWSxxQ0FBb0MsWUFBVyxvQ0FBbUMsWUFBVyxvQ0FBbUMsWUFBVyxvQ0FBbUMsYUFBWSxxQ0FBb0MsY0FBYSxzQ0FBcUMsY0FBYSxzQ0FBcUMsY0FBYSxzQ0FBcUMsY0FBYSxxQ0FBb0M7OztBQ0ZyZ0U7QUFBQTtBQUFBO0FBQUEsb0JBQUFFO0FBQUE7QUFBQSxJQUFBQyxnQ0FBNkI7QUFDdEIsSUFBTUQsbUJBQWEsNENBQWEsRUFBRSxJQUFJLHlFQUF5RSxLQUFLLHdxQkFBd3FCLENBQUM7QUFDcHlCLElBQU8sMEJBQVEsRUFBQyw0QkFBMkIscURBQW9ELHVCQUFzQixnREFBK0Msd0JBQXVCLGlEQUFnRCx1QkFBc0IsZ0RBQStDLHFCQUFvQiw4Q0FBNkMsdUJBQXNCLGdEQUErQyx3QkFBdUIsaURBQWdELHVCQUFzQixnREFBK0MscUJBQW9CLDZDQUE0Qzs7O0FDRmxvQjtBQUFBO0FBQUE7QUFBQSxvQkFBQUU7QUFBQTtBQUFBLElBQUFDLGdDQUE2QjtBQUN0QixJQUFNRCxtQkFBYSw0Q0FBYSxFQUFFLElBQUksdUVBQXVFLEtBQUssbUxBQW1MLENBQUM7QUFDN1MsSUFBTyx5QkFBUSxFQUFDLG9CQUFtQiw0Q0FBMkMsb0JBQW1CLDJDQUEwQzs7O0FDRjNJO0FBQUE7QUFBQTtBQUFBLG9CQUFBRTtBQUFBO0FBQUEsSUFBQUMsZ0NBQTZCO0FBQ3RCLElBQU1ELG1CQUFhLDRDQUFhLEVBQUUsSUFBSSw2RUFBNkUsS0FBSywrTkFBK04sQ0FBQztBQUMvVixJQUFPLDRCQUFRLEVBQUMsc0JBQXFCLGlEQUFnRCxxQkFBb0IsZ0RBQStDLG9CQUFtQiw4Q0FBNkM7OztBQ0Z4TjtBQUFBO0FBQUE7QUFBQSxvQkFBQUU7QUFBQTtBQUFBLElBQUFDLGdDQUE2QjtBQUN0QixJQUFNRCxtQkFBYSw0Q0FBYSxFQUFFLElBQUksaUVBQWlFLEtBQUssOEZBQThGLENBQUM7QUFDbE4sSUFBTyxzQkFBUSxFQUFDLFFBQU8sNEJBQTJCOzs7QUNGbEQ7QUFBQTtBQUFBO0FBQUEsb0JBQUFFO0FBQUE7QUFBQSxJQUFBQyxnQ0FBNkI7QUFDdEIsSUFBTUQsbUJBQWEsNENBQWEsRUFBRSxJQUFJLDZFQUE2RSxLQUFLLG1GQUFtRixDQUFDO0FBQ25OLElBQU8sNEJBQVEsRUFBQyxjQUFhLHdDQUF1Qzs7O0FDRnBFO0FBQUE7QUFBQTtBQUFBLG9CQUFBRTtBQUFBO0FBQUEsSUFBQUMsZ0NBQTZCO0FBQ3RCLElBQU1ELG1CQUFhLDRDQUFhLEVBQUUsSUFBSSx1RkFBdUYsS0FBSyx1RUFBdUUsQ0FBQztBQUNqTixJQUFPLGlDQUFRLEVBQUMsbUJBQWtCLGtEQUFpRDs7O0FDRm5GO0FBQUE7QUFBQTtBQUFBLG9CQUFBRTtBQUFBO0FBQUEsSUFBQUMsZ0NBQTZCO0FBQ3RCLElBQU1ELG1CQUFhLDRDQUFhLEVBQUUsSUFBSSxtRUFBbUUsS0FBSyx5MUhBQXkxSCxDQUFDO0FBQy84SCxJQUFPLHVCQUFRLEVBQUMsbUJBQWtCLHlDQUF3QyxzQkFBcUIsNENBQTJDLG1CQUFrQix5Q0FBd0Msa0JBQWlCLHdDQUF1QyxrQkFBaUIsd0NBQXVDLGtCQUFpQix3Q0FBdUMsaUJBQWdCLHVDQUFzQyxnQkFBZSxzQ0FBcUMsZ0JBQWUsc0NBQXFDLGdCQUFlLHNDQUFxQyxpQkFBZ0IsdUNBQXNDLGtCQUFpQix3Q0FBdUMsa0JBQWlCLHdDQUF1QyxrQkFBaUIsd0NBQXVDLGtCQUFpQix3Q0FBdUMsa0JBQWlCLHdDQUF1QyxrQkFBaUIsd0NBQXVDLGtCQUFpQix3Q0FBdUMsa0JBQWlCLHdDQUF1QyxtQkFBa0IseUNBQXdDLG1CQUFrQix5Q0FBd0MsYUFBWSxtQ0FBa0Msa0JBQWlCLHdDQUF1QyxtQkFBa0IseUNBQXdDLGtCQUFpQix3Q0FBdUMsa0JBQWlCLHdDQUF1QyxrQkFBaUIsd0NBQXVDLGlCQUFnQix1Q0FBc0MsZ0JBQWUsc0NBQXFDLGdCQUFlLHNDQUFxQyxnQkFBZSxzQ0FBcUMsaUJBQWdCLHVDQUFzQyxrQkFBaUIsd0NBQXVDLGtCQUFpQix3Q0FBdUMsa0JBQWlCLHdDQUF1QyxrQkFBaUIsd0NBQXVDLGtCQUFpQix3Q0FBdUMsa0JBQWlCLHdDQUF1QyxrQkFBaUIsd0NBQXVDLGtCQUFpQix3Q0FBdUMsbUJBQWtCLHlDQUF3QyxtQkFBa0IseUNBQXdDLGVBQWMscUNBQW9DLGtCQUFpQix3Q0FBdUMsZUFBYyxxQ0FBb0MsY0FBYSxvQ0FBbUMsY0FBYSxvQ0FBbUMsY0FBYSxvQ0FBbUMsYUFBWSxtQ0FBa0MsWUFBVyxrQ0FBaUMsWUFBVyxrQ0FBaUMsWUFBVyxrQ0FBaUMsYUFBWSxtQ0FBa0MsY0FBYSxvQ0FBbUMsY0FBYSxvQ0FBbUMsY0FBYSxvQ0FBbUMsY0FBYSxvQ0FBbUMsY0FBYSxvQ0FBbUMsY0FBYSxvQ0FBbUMsY0FBYSxvQ0FBbUMsY0FBYSxvQ0FBbUMsZUFBYyxxQ0FBb0MsZUFBYyxvQ0FBbUM7OztBQ0EzeEcsSUFBTUUsV0FBVSxDQUFDLHlCQUFRLHVCQUFRLGlDQUFRLHNCQUFRLHVCQUFRLDJCQUFRLHNCQUFRLHVCQUFRLGlDQUFRLDBCQUFRLHdCQUFTLHNCQUFTLDJCQUFTLHFCQUFTLHFCQUFTLHlCQUFTLDBCQUFTLHFCQUFTLHVCQUFTLHVCQUFTLDRCQUFTLG1DQUFTLHVCQUFTLGtDQUFTLGdDQUFTLHVCQUFTLHdCQUFTLHlCQUFTLHdCQUFTLHdCQUFTLHlCQUFTLDJCQUFTLHFCQUFTLHdCQUFTLDJCQUFTLGdDQUFTLG9CQUFRO0FBRW5WLElBQU8sK0NBQVFBOzs7QXhDQ1IsSUFBTSw4QkFBMEIsZ0NBQVc7QUFBQSxFQUNoRCxJQUFJO0FBQUEsRUFDSixVQUFVLENBQUMsV0FBTyxxREFBK0IsSUFBSSxDQUFDLEdBQUcsOENBQXdCLEdBQUcsNENBQVcsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUlsRyxDQUFDOzs7QXlDZU0sSUFBTSxtQkFBbUI7QUFHaEMsSUFBTSxrQkFBOEM7QUFBQSxFQUNsRCxNQUFNO0FBQUEsRUFDTixPQUFPLElBQUk7QUFBQSxFQUNYLE9BQU8sSUFBSTtBQUFBLEVBQ1gsS0FBSztBQUFBLEVBQ0wsSUFBSTtBQUFBLEVBQ0osR0FBRztBQUFBLEVBQ0gsR0FBRztBQUFBLEVBQ0gsR0FBRztBQUFBLEVBQ0gsSUFBSTtBQUFBLEVBQ0osS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUNWO0FBT08sSUFBTSxxQkFBcUIsQ0FBQyxTQUE2QixtQkFBbUIsZ0JBQWdCLElBQUk7OztBQ3ZEdkcsSUFBQUMsNkJBQW9DOzs7QUNDcEMsSUFBQUMsNkJBQTBCO0FBMEJuQixJQUFNLGlCQUFhLHNDQUFxRCxDQUFDLFVBQVU7QUFDeEYsUUFBTSxFQUFFLE1BQU0sSUFBSTtBQUVsQixNQUFJLENBQUMsT0FBTztBQUNWLFdBQU87QUFBQSxNQUNMLE9BQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUVBLFFBQU07QUFBQSxJQUNKLFlBQVk7QUFBQSxJQUNaLGdCQUFnQjtBQUFBLElBQ2hCLGtCQUFrQjtBQUFBLElBQ2xCLE1BQU07QUFBQSxJQUNOO0FBQUEsRUFDRixJQUFJLFVBQVUsT0FBTyxDQUFDLElBQUk7QUFFMUIsUUFBTSx1QkFBdUI7QUFBQSxJQUMzQixDQUFDLG9CQUFXLDJCQUEyQixDQUFDLEdBQUcsa0JBQWtCO0FBQUEsSUFDN0QsQ0FBQyxvQkFBVywwQkFBMEIsQ0FBQyxHQUFHLGtCQUFrQjtBQUFBLElBQzVELENBQUMsb0JBQVcsNkJBQTZCLENBQUMsR0FBRyxrQkFBa0I7QUFBQSxJQUMvRCxDQUFDLG9CQUFXLDJCQUEyQixDQUFDLEdBQUcsa0JBQWtCO0FBQUEsSUFFN0QsQ0FBQyxvQkFBVyxtQ0FBbUMsQ0FBQyxHQUFHLG9CQUFvQjtBQUFBLElBQ3ZFLENBQUMsb0JBQVcsb0NBQW9DLENBQUMsR0FBRyxvQkFBb0I7QUFBQSxJQUN4RSxDQUFDLG9CQUFXLCtCQUErQixDQUFDLEdBQUcsb0JBQW9CO0FBQUEsSUFDbkUsQ0FBQyxvQkFBVyw4QkFBOEIsQ0FBQyxHQUFHLG9CQUFvQjtBQUFBLElBRWxFLENBQUMsb0JBQVcsaUNBQWlDLENBQUMsR0FDM0MsY0FBYyxnQkFBZ0Isb0JBQW9CLFVBQ2xELGNBQWMseUJBQXlCLG9CQUFvQjtBQUFBLElBRTlELENBQUMsb0JBQVcsK0JBQStCLENBQUMsR0FDekMsY0FBYyxnQkFBZ0Isb0JBQW9CLFdBQ2xELGNBQWMseUJBQXlCLG9CQUFvQjtBQUFBLEVBQ2hFO0FBRUEsUUFBTSxxQkFBcUI7QUFBQSxJQUN6QixDQUFDLG9CQUFXLG1DQUFtQyxDQUFDLEdBQUcsa0JBQWtCO0FBQUEsSUFDckUsQ0FBQyxvQkFBVyxvQ0FBb0MsQ0FBQyxHQUFHLGtCQUFrQjtBQUFBLElBQ3RFLENBQUMsb0JBQVcsK0JBQStCLENBQUMsR0FBRyxrQkFBa0I7QUFBQSxJQUNqRSxDQUFDLG9CQUFXLDhCQUE4QixDQUFDLEdBQUcsa0JBQWtCO0FBQUEsSUFFaEUsQ0FBQyxvQkFBVyxpQ0FBaUMsQ0FBQyxHQUMzQyxjQUFjLGNBQWMsa0JBQWtCLFNBQzlDLGNBQWMsdUJBQXVCLGtCQUFrQjtBQUFBLElBRTFELENBQUMsb0JBQVcsK0JBQStCLENBQUMsR0FDekMsY0FBYyxjQUFjLGtCQUFrQixZQUM5QyxjQUFjLHVCQUF1QixrQkFBa0I7QUFBQSxJQUUxRCxDQUFDLG9CQUFXLDJCQUEyQixDQUFDLEdBQUcsb0JBQW9CO0FBQUEsSUFDL0QsQ0FBQyxvQkFBVywwQkFBMEIsQ0FBQyxHQUFHLG9CQUFvQjtBQUFBLElBQzlELENBQUMsb0JBQVcsNkJBQTZCLENBQUMsR0FBRyxvQkFBb0I7QUFBQSxJQUNqRSxDQUFDLG9CQUFXLDJCQUEyQixDQUFDLEdBQUcsb0JBQW9CO0FBQUEsRUFDakU7QUFFQSxTQUFPO0FBQUEsSUFDTCxZQUFZO0FBQUEsTUFDVixvQkFBVztBQUFBLE1BQ1gsb0JBQVcsb0JBQW9CLFNBQVMsRUFBRTtBQUFBLE1BRTFDLENBQUMsY0FBYyxxQkFBcUIsRUFBRSxTQUFTLFNBQVMsSUFBSSx1QkFBdUI7QUFBQSxNQUVuRixPQUFPLFFBQVEsV0FDWCxvQkFBVyxjQUFjLEdBQUcsRUFBRSxJQUM5QixNQUNFO0FBQUEsUUFDRSxJQUFJLFNBQVMsb0JBQVcsc0JBQXNCLElBQUksTUFBTSxFQUFFLElBQUk7QUFBQSxRQUM5RCxJQUFJLE1BQU0sb0JBQVcsbUJBQW1CLElBQUksR0FBRyxFQUFFLElBQUk7QUFBQSxNQUN2RCxJQUNBO0FBQUEsTUFDTixRQUFRLG9CQUFXLGtCQUFrQjtBQUFBLE1BRXJDLE1BQU07QUFBQSxJQUNSO0FBQUEsSUFFQSxPQUFPO0FBQUEsRUFDVDtBQUNGLENBQUM7OztBQ3hHRCxJQUFBQyw2QkFBMEI7QUFtQm5CLElBQU0saUJBQWEsc0NBQXlFLENBQUMsVUFBVTtBQUM1RyxRQUFNLEVBQUUsTUFBTSxJQUFJO0FBRWxCLE1BQUksQ0FBQyxPQUFPO0FBQ1YsV0FBTyxFQUFFLE9BQU8sT0FBVTtBQUFBLEVBQzVCO0FBRUEsUUFBTSxFQUFFLFNBQVMsS0FBSyxXQUFXLElBQUk7QUFFckMsU0FBTztBQUFBLElBQ0wsWUFBWTtBQUFBLE1BQ1Ysb0JBQVc7QUFBQSxNQUNYLE9BQU8sWUFBWSxXQUFXLG9CQUFXLGtCQUFrQixPQUFPLEVBQUUsSUFBSSxvQkFBVywwQkFBMEI7QUFBQSxNQUM3RyxhQUFhLG9CQUFXLHFCQUFxQixVQUFVLEVBQUUsSUFBSTtBQUFBLE1BRTdELE9BQU8sUUFBUSxXQUNYLG9CQUFXLGNBQWMsR0FBRyxFQUFFLElBQzlCLE1BQ0U7QUFBQSxRQUNFLElBQUksU0FBUyxvQkFBVyxzQkFBc0IsSUFBSSxNQUFNLEVBQUUsSUFBSTtBQUFBLFFBQzlELElBQUksTUFBTSxvQkFBVyxtQkFBbUIsSUFBSSxHQUFHLEVBQUUsSUFBSTtBQUFBLE1BQ3ZELElBQ0E7QUFBQSxNQUVOLE1BQU07QUFBQSxJQUNSO0FBQUE7QUFBQSxJQUdBLFFBQ0UsT0FBTyxZQUFZLFdBQ2YsTUFBTSxTQUNMO0FBQUEsTUFDQyxHQUFHLE1BQU07QUFBQSxNQUNULDJCQUEyQixzQkFBc0IsUUFBUSxRQUFRO0FBQUEsSUFDbkU7QUFBQSxJQUVOLE9BQU87QUFBQSxFQUNUO0FBQ0YsQ0FBQzs7O0FDekRELElBQUFDLDZCQUEwQjtBQWlCMUIsSUFBTSxlQUFlLENBQUMsVUFDcEIsT0FBTyxVQUFVLFlBQVksTUFBTSxTQUFTLEdBQUc7QUFFakQsSUFBTSxnQkFBZ0IsQ0FBQyxVQUFrRSxPQUFPLFVBQVU7QUFFbkcsSUFBTSxrQkFBYyxzQ0FBMEUsQ0FBQyxVQUFVO0FBQzlHLFFBQU0sRUFBRSxRQUFRLFlBQVksT0FBTyxJQUFJO0FBQ3ZDLFFBQU0sRUFBRSxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sV0FBVyxXQUFXLEVBQUUsT0FBTyxPQUFPLElBQUssVUFBVSxDQUFDO0FBRXpGLFFBQU0sU0FBUztBQUFBLElBQ2IsR0FBSSxhQUFhLEtBQUssSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQUEsSUFDdkMsR0FBSSxhQUFhLEdBQUcsSUFBSSxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUM7QUFBQSxJQUM3QyxHQUFJLGNBQWMsR0FBRyxJQUFJLEVBQUUsVUFBVSxzQkFBc0IsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDO0FBQUEsSUFDN0UsR0FBSSxhQUFhLEdBQUcsSUFBSSxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUM7QUFBQSxFQUMvQztBQUVBLFNBQU87QUFBQSxJQUNMLFlBQVk7QUFBQSxNQUNWLFNBQVMsQ0FBQyxhQUFhLEtBQUssSUFBSSxxQkFBWSxVQUFVLEtBQUssRUFBRSxJQUFJO0FBQUEsTUFDakUsT0FBTyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsY0FBYyxHQUFHLElBQUkscUJBQVksY0FBYyxHQUFHLEVBQUUsSUFBSTtBQUFBLE1BQ3RGLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxxQkFBWSxjQUFjLEdBQUcsRUFBRSxJQUFJO0FBQUEsTUFDL0Q7QUFBQSxJQUNGO0FBQUEsSUFDQSxRQUFRLE9BQU8sS0FBSyxNQUFNLEVBQUUsU0FBUyxJQUFJLEVBQUUsR0FBRyxRQUFRLEdBQUcsT0FBTyxJQUFJO0FBQUEsSUFDcEUsUUFBUTtBQUFBLEVBQ1Y7QUFDRixDQUFDOzs7QUM5Q0QsSUFBQUMsNkJBQTBCO0FBSW5CLElBQU0sa0JBQWMsc0NBQTRCLENBQUMsVUFBVTtBQUVoRSxRQUFNLFNBQVMsTUFBTSxVQUFVLENBQUM7QUFFaEMsUUFBTSxRQUFRLE1BQU0sU0FBUyxDQUFDO0FBRTlCLFNBQU87QUFBQSxJQUNMLE9BQU8sRUFBRSxHQUFHLFFBQVEsR0FBRyxNQUFNO0FBQUEsSUFDN0IsUUFBUTtBQUFBLEVBQ1Y7QUFDRixDQUFDOzs7QUNYRCxJQUFBQyw2QkFBMEI7QUFZMUIsSUFBTUMsZ0JBQWUsQ0FBQyxXQUFtRCwrQkFBTyxTQUFTLFVBQVM7QUFFM0YsSUFBTSxtQkFBZSxzQ0FBMkUsQ0FBQyxVQUFVO0FBQ2hILFFBQU0sRUFBRSxTQUFTLE9BQU8sSUFBSTtBQUM1QixRQUFNLEVBQUUsUUFBUSxLQUFLLElBQUksSUFBSSxPQUFPLFlBQVksV0FBVyxFQUFFLFFBQVEsUUFBUSxJQUFLLFdBQVcsQ0FBQztBQUM5RixRQUFNLGNBQWM7QUFBQSxJQUNsQixHQUFJQSxjQUFhLE1BQU0sSUFBSSxFQUFFLE9BQU8sSUFBSSxDQUFDO0FBQUEsSUFDekMsR0FBSUEsY0FBYSxHQUFHLElBQUksRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDO0FBQUEsSUFDOUMsR0FBSUEsY0FBYSxHQUFHLElBQUksRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDO0FBQUEsRUFDaEQ7QUFFQSxTQUFPO0FBQUEsSUFDTCxZQUFZO0FBQUEsTUFDVixVQUFVLENBQUNBLGNBQWEsTUFBTSxJQUFJLHNCQUFhLFdBQVcsTUFBTSxFQUFFLElBQUk7QUFBQSxNQUN0RSxPQUFPLENBQUNBLGNBQWEsR0FBRyxJQUFJLHNCQUFhLGVBQWUsR0FBRyxFQUFFLElBQUk7QUFBQSxNQUNqRSxPQUFPLENBQUNBLGNBQWEsR0FBRyxJQUFJLHNCQUFhLGVBQWUsR0FBRyxFQUFFLElBQUk7QUFBQSxNQUNqRSxNQUFNO0FBQUEsSUFDUjtBQUFBLElBQ0EsUUFBUSxPQUFPLEtBQUssV0FBVyxFQUFFLFNBQVMsSUFBSSxFQUFFLEdBQUcsUUFBUSxHQUFHLFlBQVksSUFBSTtBQUFBLElBQzlFLFNBQVM7QUFBQSxFQUNYO0FBQ0YsQ0FBQzs7O0FDbkNELElBQUFDLDZCQUEwQjtBQWdCMUIsSUFBTUMsa0JBQWlCO0FBQUEsRUFDckIsV0FBVztBQUFBLEVBQ1gsYUFBYTtBQUFBLEVBQ2IsZUFBZTtBQUNqQjtBQUVBLElBQU0sbUJBQW1CLENBQUMsVUFBOEMsU0FBU0E7QUFFMUUsSUFBTSxrQkFBYyxzQ0FBc0QsQ0FBQyxVQUFVO0FBQzFGLFFBQU0sRUFBRSxZQUFZLE9BQU8sSUFBSTtBQUMvQixRQUFNLEVBQUUsUUFBUSxPQUFPLE9BQU8sU0FBUyxJQUFJLE9BQU8sV0FBVyxXQUFXLEVBQUUsUUFBUSxPQUFPLElBQUssVUFBVSxDQUFDO0FBRXpHLFFBQU0sY0FBYyxTQUFVLGlCQUFpQixNQUFNLElBQUlBLGdCQUFlLE1BQU0sSUFBSSxTQUFVO0FBQzVGLFFBQU0sYUFBYSxRQUFTLGlCQUFpQixLQUFLLElBQUlBLGdCQUFlLEtBQUssSUFBSSxRQUFTO0FBQ3ZGLFFBQU0sYUFBYSxRQUFTLGlCQUFpQixLQUFLLElBQUlBLGdCQUFlLEtBQUssSUFBSSxRQUFTO0FBQ3ZGLFFBQU0sZ0JBQWdCLFdBQVksaUJBQWlCLFFBQVEsSUFBSUEsZ0JBQWUsUUFBUSxJQUFJLFdBQVk7QUFFdEcsU0FBTztBQUFBLElBQ0wsWUFBWTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWMscUJBQVksVUFBVSxXQUFXLEVBQUUsSUFBSTtBQUFBLE1BQ3JELGFBQWEscUJBQVksZ0JBQWdCLFVBQVUsRUFBRSxJQUFJO0FBQUEsTUFDekQsYUFBYSxxQkFBWSxnQkFBZ0IsVUFBVSxFQUFFLElBQUk7QUFBQSxNQUN6RCxnQkFBZ0IscUJBQVksbUJBQW1CLGFBQWEsRUFBRSxJQUFJO0FBQUEsSUFDcEU7QUFBQSxJQUNBLFFBQVE7QUFBQSxFQUNWO0FBQ0YsQ0FBQzs7O0FDM0NELElBQUFDLDZCQUEwQjtBQUtuQixJQUFNLHFCQUFpQixzQ0FBeUQsQ0FBQyxXQUFXO0FBQUEsRUFDakcsWUFBWSxDQUFDLE1BQU0sWUFBWSxNQUFNLFlBQVksd0JBQWUsV0FBVyxNQUFTO0FBQUEsRUFDcEYsV0FBVztBQUNiLEVBQUU7OztBQ1RGLElBQUFDLDZCQUEwQjtBQUUxQixJQUFBQyxnQkFBdUI7QUFFdkIsSUFBQUMscUJBQThCO0FBRzlCLElBQUFDLGdCQUF5QjtBQUVsQixJQUFNLHNCQUFrQixzQ0FBMEQsQ0FBQyxVQUFVO0FBQ2xHLE1BQUksQ0FBQyxNQUFNLFlBQVk7QUFDckIsV0FBTyxFQUFFLFlBQVksT0FBVTtBQUFBLEVBQ2pDO0FBRUEsUUFBTSxDQUFDLFVBQVUsV0FBVyxRQUFJLHdCQUFTLEtBQUs7QUFFOUMsUUFBTSxFQUFFLFNBQVMsS0FBSyxJQUFJLE1BQU07QUFFaEMsUUFBTSx1QkFBbUIsa0NBQWMsNEJBQTRCLE9BQU87QUFFMUUsU0FBTztBQUFBLElBQ0wsV0FBVztBQUFBLElBRVgsaUJBQWlCO0FBQUEsSUFFakIsaUJBQWEsc0JBQU8sQ0FBQyxVQUF3QztBQXpCakU7QUEwQk0sWUFBTSxhQUFhLGdCQUFnQjtBQUduQyxrQkFBTSxnQkFBTiwrQkFBb0I7QUFFcEIsd0NBQWtDLEtBQUs7QUFFdkMsdUJBQWlCLElBQUksSUFBSTtBQUd6QixpQkFBVyxNQUFNO0FBQ2Ysb0JBQVksSUFBSTtBQUFBLE1BQ2xCLEdBQUcsQ0FBQztBQUFBLElBQ04sQ0FBQztBQUFBLElBRUQsZUFBVyxzQkFBTyxDQUFDLFVBQXdDO0FBekMvRDtBQTJDTSxrQkFBTSxjQUFOLCtCQUFrQjtBQUVsQix1QkFBaUIsSUFBSSxNQUFTO0FBQzlCLGtCQUFZLEtBQUs7QUFBQSxJQUNuQixDQUFDO0FBQUEsSUFFRCxZQUFZLENBQUMsTUFBTSxZQUFZLHlCQUFPLFNBQVM7QUFBQSxJQUUvQyxZQUFZO0FBQUEsRUFDZDtBQUNGLENBQUM7QUFFRCxJQUFNLG9DQUFvQyxDQUFDLFVBQXdDO0FBQ2pGLFFBQU0sYUFBYSxRQUFRLGNBQWMsMkJBQTJCO0FBQ3RFOzs7QUN4REEsSUFBQUMsNkJBQTBCO0FBQzFCLElBQUFDLHFCQUE4QjtBQUl2QixJQUFNLHNCQUFrQixzQ0FBZ0MsQ0FBQyxVQUFVO0FBQ3hFLE1BQUksQ0FBQyxNQUFNLFlBQVk7QUFDckIsV0FBTyxFQUFFLFlBQVksT0FBVTtBQUFBLEVBQ2pDO0FBRUEsUUFBTSxFQUFFLFNBQVMsT0FBTyxJQUFJLE1BQU07QUFFbEMsUUFBTSx1QkFBbUIsa0NBQWMsNEJBQTRCLE9BQU87QUFDMUUsUUFBTSxXQUFPLGtDQUFjLG1EQUFtRDtBQUU5RSxRQUFNLGNBQWMsaUJBQWlCLElBQUk7QUFFekMsU0FBTztBQUFBLElBQ0wsWUFBWSxDQUFDLFVBQXdDO0FBbkJ6RDtBQXFCTSxrQkFBTSxlQUFOLCtCQUFtQjtBQUVuQixVQUFJLGFBQWE7QUFDZixjQUFNLGVBQWU7QUFBQSxNQUN2QjtBQUFBLElBQ0Y7QUFBQSxJQUVBLFFBQVEsQ0FBQyxVQUF3QztBQTVCckQ7QUE4Qk0sa0JBQU0sV0FBTiwrQkFBZTtBQUVmLFVBQUksYUFBYTtBQUNmLGFBQUssTUFBTTtBQUNULGlCQUFPLFdBQVc7QUFBQSxRQUNwQixDQUFDO0FBQUEsTUFDSDtBQUFBLElBQ0Y7QUFBQSxJQUVBLFlBQVk7QUFBQSxFQUNkO0FBQ0YsQ0FBQzs7O0FUeEJELElBQUFDLHFCQUF5Qjs7O0FVaEJ6QixJQUFBQyw2QkFBMEI7QUFLbkIsSUFBTSx1QkFBbUIsc0NBQTJELENBQUMsV0FBVztBQUFBLEVBQ3JHLFlBQVksQ0FBQyxNQUFNLFlBQVksRUFBRSxDQUFDLDBCQUFpQixVQUFVLEdBQUcsQ0FBQyxDQUFDLE1BQU0sWUFBWSxDQUFDO0FBQUEsRUFDckYsYUFBYTtBQUNmLEVBQUU7OztBQ1JGLElBQUFDLDZCQUEwQjtBQU9uQixJQUFNLG1CQUFlLHNDQUF1RCxDQUFDLFVBQVU7QUFDNUYsTUFBSSxDQUFDLE1BQU0sU0FBUztBQUNsQixXQUFPLEVBQUUsU0FBUyxPQUFVO0FBQUEsRUFDOUI7QUFFQSxTQUFPO0FBQUEsSUFDTCxZQUFZLENBQUMsTUFBTSxZQUFZLHNCQUFhLFdBQVcsTUFBTSxRQUFRLFNBQVMsS0FBSyxNQUFNLFFBQVEsSUFBSSxFQUFFLENBQUM7QUFBQSxJQUV4RyxTQUFTO0FBQUEsRUFDWDtBQUNGLENBQUM7OztBQ2pCRCxJQUFBQyw2QkFBMEI7QUFPbkIsSUFBTSwyQkFBdUIsc0NBQStELENBQUMsVUFBVTtBQUM1RyxNQUFJLENBQUMsTUFBTSxpQkFBaUI7QUFDMUIsV0FBTyxFQUFFLGlCQUFpQixPQUFVO0FBQUEsRUFDdEM7QUFFQSxTQUFPO0FBQUEsSUFDTCxZQUFZO0FBQUEsTUFDVixNQUFNO0FBQUEsTUFDTiwrQkFBYSxvQkFBb0IsTUFBTSxnQkFBZ0IsU0FBUyxLQUFLLE1BQU0sZ0JBQWdCLElBQUksRUFBRTtBQUFBLElBQ25HO0FBQUEsSUFFQSxpQkFBaUI7QUFBQSxFQUNuQjtBQUNGLENBQUM7OztBQ3BCRCxJQUFBQyw2QkFBMEI7QUFLbkIsSUFBTSxtQkFBZSxzQ0FBdUQsQ0FBQyxXQUFXO0FBQUEsRUFDN0YsWUFBWSxDQUFDLE1BQU0sWUFBWSxFQUFFLENBQUMsc0JBQWEsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUFBLEVBRXpFLFNBQVM7QUFDWCxFQUFFOzs7QUNURixJQUFBQyw2QkFBMEI7QUFFMUIsSUFBQUMsYUFBeUI7QUFjbEIsSUFBTSxtQkFBZSxzQ0FBdUQsQ0FBQyxVQUFVO0FBQzVGLE1BQUksQ0FBQyxNQUFNLFNBQVM7QUFDbEIsV0FBTyxFQUFFLFNBQVMsT0FBVTtBQUFBLEVBQzlCO0FBRUEsUUFBTSxTQUFTLE1BQU0sWUFBWSxPQUFPLE9BQU8sTUFBTTtBQUVyRCxVQUFJLHFCQUFTLE1BQU0sR0FBRztBQUNwQixXQUFPO0FBQUEsTUFDTCxZQUFZLENBQUMsTUFBTSxZQUFZLHNCQUFhLFdBQVcsTUFBTSxFQUFFLENBQUM7QUFBQSxNQUNoRSxTQUFTO0FBQUEsSUFDWDtBQUFBLEVBQ0Y7QUFFQSxRQUFNLFVBQVUsT0FBTyxPQUFPLE9BQU87QUFDckMsUUFBTSxhQUFhLE9BQU8sVUFBVSxPQUFPO0FBQzNDLFFBQU0sWUFBWSxPQUFPLFNBQVMsT0FBTztBQUN6QyxRQUFNLFdBQVcsT0FBTyxRQUFRLE9BQU87QUFFdkMsU0FBTztBQUFBLElBQ0wsWUFBWTtBQUFBLE1BQ1YsTUFBTTtBQUFBLE1BQ04sVUFBVSxzQkFBYSxnQkFBZ0IsT0FBTyxFQUFFLElBQUk7QUFBQSxNQUNwRCxZQUFZLHNCQUFhLGtCQUFrQixTQUFTLEVBQUUsSUFBSTtBQUFBLE1BQzFELGFBQWEsc0JBQWEsbUJBQW1CLFVBQVUsRUFBRSxJQUFJO0FBQUEsTUFDN0QsV0FBVyxzQkFBYSxpQkFBaUIsUUFBUSxFQUFFLElBQUk7QUFBQSxJQUN6RDtBQUFBLElBQ0EsU0FBUztBQUFBLEVBQ1g7QUFDRixDQUFDOzs7QUM3Q0QsSUFBQUMsNkJBQTBCO0FBS25CLElBQU0sMkJBQXVCLHNDQUErRCxDQUFDLFdBQVc7QUFBQSxFQUM3RyxZQUFZLENBQUMsTUFBTSxZQUFZLEVBQUUsQ0FBQywrQkFBcUIsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUFBLEVBRXJHLGlCQUFpQjtBQUNuQixFQUFFOzs7QUNURixJQUFBQyw2QkFBMEI7QUFPbkIsSUFBTSxxQkFBaUIsc0NBQXlELENBQUMsVUFBVTtBQUNoRyxRQUFNLFlBQVksTUFBTTtBQUV4QixNQUFJLENBQUMsV0FBVztBQUNkLFdBQU8sRUFBRSxXQUFXLE9BQVU7QUFBQSxFQUNoQztBQUVBLFFBQU0sSUFBSSxPQUFPLGNBQWMsV0FBVyxZQUFZLFVBQVU7QUFDaEUsUUFBTSxJQUFJLE9BQU8sY0FBYyxXQUFXLFlBQVksVUFBVTtBQUNoRSxRQUFNLGdCQUFnQixPQUFPLGNBQWMsV0FBVyxRQUFRLFVBQVU7QUFFeEUsU0FBTztBQUFBLElBQ0wsWUFBWTtBQUFBLE1BQ1YsTUFBTTtBQUFBLE1BRU4sSUFBSSx3QkFBZSxnQkFBZ0IsQ0FBQyxFQUFFLElBQUk7QUFBQSxNQUMxQyxJQUFJLHdCQUFlLGdCQUFnQixDQUFDLEVBQUUsSUFBSTtBQUFBLE1BQzFDLEVBQUUsQ0FBQyx3QkFBZSwwQkFBMEIsQ0FBQyxHQUFHLGNBQWM7QUFBQSxJQUNoRTtBQUFBLElBRUEsV0FBVztBQUFBLEVBQ2I7QUFDRixDQUFDOzs7QUMzQkQsSUFBQUMsNkJBQTBCO0FBaUJuQixJQUFNLHNCQUFrQjtBQUFBLEVBQzdCLENBQUMsVUFBVTtBQUNULFVBQU0sU0FBUyxPQUFPLE1BQU0sZUFBZSxXQUFXLE1BQU0sYUFBYTtBQUN6RSxVQUFNLGFBQWEsTUFBTSxlQUFlLGdCQUFnQixXQUFXO0FBRW5FLFdBQU87QUFBQSxNQUNMLFlBQVk7QUFBQSxRQUNWLE1BQU0sZUFBZSxRQUFRLGFBQWEsMEJBQWdCLFlBQVksSUFBSTtBQUFBLFFBQzFFLGFBQWEsMEJBQWdCLHdCQUF3QixJQUFJO0FBQUEsUUFDekQsTUFBTSxlQUFlLFVBQVUsMEJBQWdCLG1CQUFtQixJQUFJO0FBQUEsUUFDdEUsTUFBTTtBQUFBLE1BQ1I7QUFBQSxNQUNBLFFBQVEsV0FBVyxTQUFZLE1BQU0sU0FBUyxFQUFFLEdBQUcsTUFBTSxRQUFRLFVBQVUsT0FBTztBQUFBLE1BQ2xGLFlBQVk7QUFBQSxJQUNkO0FBQUEsRUFDRjtBQUNGOzs7QUNuQ0EsSUFBQUMsNkJBQTBCO0FBWW5CLElBQU0sc0JBQWtCLHNDQUEwRCxDQUFDLFdBQVc7QUFBQSxFQUNuRyxZQUFZLENBQUMsTUFBTSxZQUFZLE1BQU0sYUFBYSx5QkFBZ0IsWUFBWSxNQUFTO0FBQUEsRUFDdkYsWUFBWTtBQUNkLEVBQUU7OztBQ2RGLElBQUFDLDZCQUEwQjtBQWVuQixJQUFNLGlCQUFhLHNDQUF5RSxDQUFDLFdBQVc7QUFBQSxFQUM3RyxZQUFZLENBQUMsTUFBTSxZQUFZLE1BQU0sUUFBUSxvQkFBVyxPQUFPLE1BQVM7QUFBQTtBQUFBLEVBRXhFLFFBQVEsTUFBTSxRQUFTLEVBQUUsR0FBRyxNQUFNLFFBQVEsa0JBQWtCLE1BQU0sTUFBTSxJQUE0QixNQUFNO0FBQUEsRUFDMUcsT0FBTztBQUNULEVBQUU7OztBQ3JCRixJQUFBQyw2QkFBMEI7QUFXbkIsSUFBTSxrQkFBYyxzQ0FBc0QsQ0FBQyxXQUFXO0FBQUEsRUFDM0YsWUFBWSxDQUFDLE1BQU0sWUFBWSxNQUFNLFNBQVMscUJBQVksUUFBUSxNQUFTO0FBQUEsRUFDM0UsUUFBUTtBQUNWLEVBQUU7OztBQ2ZGLElBQUFDLDZCQUFvRTtBQUVwRSxJQUFBQyxpQkFBaUM7QUFFakMsSUFBQUMscUJBQThCOzs7QUNKOUIsSUFBQUMsMkJBQThCO0FBRTlCLElBQUFDLGdCQUE0QjtBQUM1QixJQUFBQyxnQkFBaUQ7QUFFMUMsSUFBTSwyQkFBMkIsQ0FDdEMsWUFDQSxhQUNBLE9BQ0Esa0JBQ0c7QUFFSDtBQUFBLElBQ0UsTUFBTTtBQUNKLFVBQUksV0FBVyxTQUFTO0FBQ3RCLHVDQUFZLE1BQU07QUFDaEIsZ0JBQU0sSUFBSSxhQUFhO0FBRXZCLGdCQUFNLG9CQUFvQixZQUFZLFlBQVk7QUFFbEQsY0FBSSxxQkFBcUIsWUFBWSxTQUFTO0FBQzVDLHdEQUFjLFlBQVksT0FBTztBQUNqQyx3QkFBWSxRQUFRLElBQUksTUFBUztBQUFBLFVBQ25DO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDSDtBQUVBLGtCQUFZLFVBQVU7QUFBQSxJQUN4QjtBQUFBO0FBQUEsSUFFQSxDQUFDLGVBQWUsS0FBSztBQUFBLEVBQ3ZCO0FBQ0Y7OztBQ2hDQSxJQUFBQywyQkFBOEI7QUFFOUIsSUFBQUMsZ0JBQTRCO0FBQzVCLElBQUFDLGdCQUFpRDtBQUUxQyxJQUFNLHNCQUFzQixDQUNqQyxZQUNBLGdCQUNHO0FBRUg7QUFBQSxJQUNFLE1BQU0sTUFBTTtBQUNWLFVBQUksV0FBVyxTQUFTO0FBQ3RCLHVDQUFZLE1BQU07QUFDaEIsc0RBQWMsWUFBWSxPQUFPO0FBQ2pDLHNCQUFZLFFBQVEsSUFBSSxNQUFTO0FBQUEsUUFDbkMsQ0FBQztBQUFBLE1BQ0g7QUFBQSxJQUNGO0FBQUE7QUFBQSxJQUdBLENBQUM7QUFBQSxFQUNIO0FBQ0Y7OztBQ3ZCQSxJQUFBQyxnQkFBMEI7QUFDMUIsSUFBQUMscUJBQThCO0FBYTlCLElBQU0sdUJBQTJDO0FBQUEsRUFDL0MsV0FBVyxNQUFNO0FBQUEsRUFBQztBQUFBLEVBQ2xCLFNBQVMsTUFBTTtBQUFBLEVBQUM7QUFBQSxFQUNoQix5QkFBeUIsTUFBTTtBQUFBLEVBQUM7QUFDbEM7QUFFTyxJQUFNLHdCQUF3QixDQUNuQyxTQUNBLE1BQ0EsYUFDQSxZQUN1QjtBQUN2QixRQUFNLGlCQUFhLGtDQUFjLGlDQUFpQztBQUVsRSwrQkFBVSxNQUFNO0FBQ2QsUUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTO0FBQ3hCO0FBQUEsSUFDRjtBQUVBLFVBQU0sUUFBd0IsRUFBRSxNQUFNLGFBQWEsZUFBZSxHQUFHLFFBQVE7QUFFN0UsZUFBVyxTQUFTLFNBQVMsS0FBSztBQUVsQyxVQUFNLDJCQUEyQixNQUFNO0FBTXJDLFVBQUksQ0FBQyxTQUFTLFNBQVMsR0FBRztBQUN4QjtBQUFBLE1BQ0Y7QUFFQSxZQUFNLGlCQUFpQixXQUFXLGVBQWU7QUFFakQsVUFBSSxDQUFDLGdCQUFnQjtBQUNuQjtBQUFBLE1BQ0Y7QUFFQSxZQUFNLFVBQVUsV0FBVyxnQkFBZ0IsY0FBYztBQU16RCxZQUFNLGNBQWMsV0FBVyxjQUFjLGNBQWM7QUFDM0QsWUFBTSxVQUNKLFFBQVEsS0FBSyxDQUFDLGNBQWMsVUFBVSxTQUFTLFdBQVcsTUFDekQsZUFBZSx3QkFBd0IsUUFBUSxDQUFDLElBQUk7QUFFdkQsV0FBSSxtQ0FBUyxRQUFRLGdCQUFlLFNBQVMsa0JBQWtCLFFBQVEsU0FBUztBQUM5RSxnQkFBUSxRQUFRLE1BQU07QUFBQSxNQUN4QjtBQUFBLElBQ0Y7QUFJQSxTQUFLLFFBQVEsUUFBUSxFQUFFLEtBQUssd0JBQXdCO0FBRXBELFdBQU8sTUFBTTtBQUNYLGlCQUFXLFdBQVcsU0FBUyxLQUFLO0FBRXBDLFdBQUssUUFBUSxRQUFRLEVBQUUsS0FBSyx3QkFBd0I7QUFBQSxJQUN0RDtBQUFBLEVBQ0YsR0FBRyxDQUFDLFlBQVksU0FBUyxNQUFNLGFBQWEsT0FBTyxDQUFDO0FBRXBELE1BQUksQ0FBQyxTQUFTO0FBQ1osV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPO0FBQUE7QUFBQTtBQUFBLElBR0wsU0FBUyxNQUFNLFdBQVcsZ0JBQWdCLFNBQVMsSUFBSTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBV3ZELHlCQUF5QixDQUFDLFVBQTRCO0FBQ3BELFlBQU0sVUFBVSxNQUFNO0FBRXRCLFVBQUksU0FBUyxrQkFBa0IsU0FBUztBQUN0QyxnQkFBUSxNQUFNO0FBQUEsTUFDaEI7QUFBQSxJQUNGO0FBQUEsSUFFQSxXQUFXLENBQUMsVUFBK0I7QUFDekMsWUFBTSxPQUFPLE9BQU8sTUFBTSxLQUFLLFFBQVEsV0FBVztBQUVsRCxVQUFJLFNBQVMsUUFBVztBQUN0QjtBQUFBLE1BQ0Y7QUFFQSxZQUFNLFVBQVUsV0FBVyxnQkFBZ0IsT0FBTztBQUVsRCxVQUFJLFFBQVEsV0FBVyxHQUFHO0FBQ3hCO0FBQUEsTUFDRjtBQUVBLFlBQU0sZUFBZSxRQUFRLFVBQVUsQ0FBQyxjQUFjLFVBQVUsU0FBUyxJQUFJO0FBRTdFLFlBQU0sWUFDSixTQUFTLFVBQ0wsSUFDQSxTQUFTLFNBQ1AsUUFBUSxTQUFTLEtBQ2hCLGVBQWUsT0FBTyxRQUFRLFVBQVUsUUFBUTtBQUV6RCxZQUFNLE9BQU8sUUFBUSxTQUFTO0FBRTlCLFVBQUksTUFBTTtBQUNSLGNBQU0sZUFBZTtBQUNyQixhQUFLLFFBQVEsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLElBQU0sU0FBUyxDQUFDLEtBQWEsZ0JBQStDO0FBQzFFLFVBQVEsS0FBSztBQUFBLElBQ1gsS0FBSztBQUNILGFBQU8sZ0JBQWdCLGVBQWUsU0FBWTtBQUFBLElBQ3BELEtBQUs7QUFDSCxhQUFPLGdCQUFnQixhQUFhLFNBQVk7QUFBQSxJQUNsRCxLQUFLO0FBQ0gsYUFBTyxnQkFBZ0IsZUFBZSxTQUFZO0FBQUEsSUFDcEQsS0FBSztBQUNILGFBQU8sZ0JBQWdCLGFBQWEsU0FBWTtBQUFBLElBQ2xELEtBQUs7QUFDSCxhQUFPO0FBQUEsSUFDVCxLQUFLO0FBQ0gsYUFBTztBQUFBLElBQ1Q7QUFDRSxhQUFPO0FBQUEsRUFDWDtBQUNGOzs7QUMzSkEsSUFBQUMsZ0JBQW1EO0FBSzVDLElBQU0saUJBQ1gsQ0FDRSxPQUNBLGVBQ0Esa0JBQ0EsZUFFRixDQUFJLFVBQTZCO0FBQy9CLFFBQU0sY0FBYyxNQUFNO0FBRTFCLGNBQVksc0NBQXNDLG9CQUFJLElBQUk7QUFFMUQsTUFBSSxZQUFZLGtDQUFrQyxJQUFJLGdCQUFnQixHQUFHO0FBQ3ZFO0FBQUEsRUFDRjtBQUVBLGNBQVksa0NBQWtDLElBQUksZ0JBQWdCO0FBRWxFLGFBQVcsVUFBVTtBQUVyQixpQ0FBWSxNQUFNO0FBQ2hCLFVBQU0sSUFBSSxhQUFhO0FBQUEsRUFDekIsQ0FBQztBQUNIOzs7QUMzQkYsSUFBQUMsZ0JBQTRCO0FBS3JCLElBQU0sZ0JBQ1gsQ0FDRSxrQkFDQSxPQUNBLGVBRUYsQ0FBSSxVQUE2QjtBQVpuQztBQWFJLFFBQU0sY0FBYyxNQUFNO0FBRTFCLE9BQUksaUJBQVksc0NBQVosbUJBQStDLElBQUksbUJBQW1CO0FBQ3hFO0FBQUEsRUFDRjtBQUVBLGFBQVcsVUFBVTtBQUVyQixpQ0FBWSxNQUFNO0FBQ2hCLFVBQU0sSUFBSSxNQUFTO0FBQUEsRUFDckIsQ0FBQztBQUNIOzs7QUN2QkYsSUFBQUMsaUJBQTBCO0FBRTFCLElBQUFDLHFCQUE4QjtBQUd2QixJQUFNLDBCQUEwQixDQUNyQyxrQkFDQSxlQUNBLG1CQUNHO0FBQ0gsUUFBTSxpQ0FBNkI7QUFBQSxJQUNqQztBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRjtBQUdBLGdDQUFVLE1BQU07QUFDZCwrQkFBMkIsSUFBSSxjQUFjO0FBRTdDLFdBQU8sTUFBTTtBQUNYLGlDQUEyQixPQUFPLGNBQWM7QUFBQSxJQUNsRDtBQUFBLEVBQ0YsR0FBRyxDQUFDLDRCQUE0QixlQUFlLGNBQWMsQ0FBQztBQUNoRTs7O0FOZ0ZTLElBQUFDLHNCQUFBO0FBOURULElBQU0sNEJBQTRCLENBQUM7QUFBQSxFQUNqQztBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDRixNQUE2QjtBQUMzQixRQUFNLEVBQUUsU0FBUyxrQkFBa0IsTUFBTSxlQUFlLFlBQVksSUFBSTtBQUV4RSxRQUFNLENBQUMsU0FBUyxVQUFVLFFBQUkseUJBQTZCLElBQUk7QUFDL0QsZ0JBQWMsVUFBVTtBQUV4QixRQUFNLHFCQUFpQix1QkFBb0IsTUFBUztBQUNwRCxpQkFBZSxVQUFXLFdBQVc7QUFFckMsUUFBTSw4QkFBMEIsdUJBQU8sS0FBSztBQUM1QyxRQUFNLGtCQUFjLHVCQUFrQyxNQUFTO0FBRS9ELFFBQU0sWUFBUSxrQ0FBYyw4QkFBOEIsZ0JBQWdCO0FBRTFFLDJCQUF5Qix5QkFBeUIsYUFBYSxPQUFPLGFBQWE7QUFDbkYsc0JBQW9CLHlCQUF5QixXQUFXO0FBQ3hELDBCQUF3QixrQkFBa0IsZUFBZSxjQUFjO0FBRXZFLFFBQU0sY0FBYyxlQUFlLE9BQU8sZUFBZSxrQkFBa0IsdUJBQXVCO0FBQ2xHLFFBQU0sYUFBYSxjQUFjLGtCQUFrQixPQUFPLHVCQUF1QjtBQUVqRixRQUFNLHFCQUFxQjtBQUFBLElBQ3pCLGlCQUFpQixzQkFBc0IsbUJBQW1CO0FBQUEsSUFDMUQ7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0Y7QUFFQSxrQkFBZ0I7QUFBQSxJQUNkO0FBQUEsSUFFQSxTQUFTLENBQUMsTUFBNkI7QUFDckMsa0JBQVksQ0FBQztBQUNiLHlCQUFtQixRQUFRO0FBQzNCLHlDQUFVO0FBQUEsSUFDWjtBQUFBLElBRUEsUUFBUSxDQUFDLE1BQTZCO0FBekYxQztBQTBGTSxVQUFJLEdBQUMsb0JBQWUsWUFBZixtQkFBd0IsU0FBUyxFQUFFLGlCQUFnQjtBQUN0RCxtQkFBVyxDQUFDO0FBQUEsTUFDZDtBQUNBLHVDQUFTO0FBQUEsSUFDWDtBQUFBLElBRUEsV0FBVyxDQUFDLE1BQWdDO0FBQzFDLDZDQUFZO0FBQ1oseUJBQW1CLFVBQVUsQ0FBQztBQUFBLElBQ2hDO0FBQUEsSUFFQSxjQUFjLG1CQUFtQjtBQUFBLElBQ2pDLGFBQWEsbUJBQW1CO0FBQUEsRUFDbEMsQ0FBQztBQUVELFNBQU8sNkVBQUcsVUFBUztBQUNyQjtBQUVPLFNBQVMsa0JBQXFCO0FBQ25DLGFBQU8sc0NBQXNFLENBQUMsVUFBVTtBQUN0RixVQUFNLEVBQUUsWUFBWSxVQUFVLFFBQVEsU0FBUyxVQUFVLElBQUk7QUFFN0QsUUFBSSxDQUFDLFlBQVk7QUFDZixhQUFPLEVBQUUsWUFBWSxPQUFVO0FBQUEsSUFDakM7QUFFQSxXQUFPO0FBQUEsTUFDTCxZQUFZO0FBQUEsTUFDWixVQUFVO0FBQUEsUUFDUixXQUFXO0FBQUEsUUFDWCxPQUFPO0FBQUEsVUFDTCxXQUFXO0FBQUEsVUFDWCxVQUFVLFlBQVk7QUFBQSxVQUN0QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRixDQUFDO0FBQ0g7OztBT2xJQSxJQUFBQyw2QkFBMEI7QUFFMUIsSUFBQUMsMkJBQXlCO0FBS2xCLElBQU0saUJBQWEsc0NBQXVFLENBQUMsVUFBVTtBQUMxRyxRQUFNLHdCQUFvQixtQ0FBUyxNQUFNLEtBQUssSUFBSSxNQUFNLFFBQVEsQ0FBQztBQUVqRSxTQUFPO0FBQUEsSUFDTCxPQUFPO0FBQUEsSUFFUCxPQUFPLE1BQU0sUUFDVDtBQUFBLE1BQ0UsZUFBZTtBQUFBLE1BQ2YsaUJBQWlCO0FBQUEsTUFDakIsR0FBRztBQUFBLElBQ0wsSUFDQSxNQUFNO0FBQUEsSUFFVixXQUFXLE1BQU0sY0FBYyxNQUFNLFFBQVEsV0FBVztBQUFBLEVBQzFEO0FBQ0YsQ0FBQzs7O0FDdkJELElBQUFDLDZCQUEwQjtBQUtuQixJQUFNLHdCQUFvQixzQ0FBNEQsQ0FBQyxXQUFXO0FBQUEsRUFDdkcsY0FBYztBQUFBLEVBQ2QsWUFBWSxNQUFNLGVBQWUsT0FBTyxNQUFNO0FBQ2hELEVBQUU7OztBQ1JGLElBQUFDLDZCQUEwQjtBQWFuQixJQUFNLGlCQUFhLHNDQUFzRSxDQUFDLFVBQVU7QUFDekcsUUFBTSxFQUFFLE1BQU0sSUFBSTtBQUVsQixNQUFJLENBQUMsT0FBTztBQUNWLFdBQU8sRUFBRSxPQUFPLE9BQVU7QUFBQSxFQUM1QjtBQUVBLFFBQU0sRUFBRSxNQUFNLEtBQUssSUFBSSxJQUFJLE9BQU8sVUFBVSxXQUFXLEVBQUUsTUFBTSxNQUFNLElBQUk7QUFFekUsU0FBTztBQUFBLElBQ0wsU0FBUyxFQUFFLFFBQVEsTUFBTSxLQUFLLElBQUk7QUFBQSxJQUNsQyxRQUFRLEVBQUUsT0FBTyxNQUFNLEtBQUssSUFBSTtBQUFBLElBQ2hDLE9BQU87QUFBQSxFQUNUO0FBQ0YsQ0FBQzs7O0FDMUJELElBQUFDLDZCQUEwQjtBQUUxQixJQUFBQyxxQkFBb0M7QUFFcEMsSUFBTSxhQUFTLHdDQUFvQixxQkFBUztBQTJDckMsSUFBTSxtQkFBZSxzQ0FBdUQsQ0FBQyxVQUFVO0FBQzVGLFFBQU0sRUFBRSxTQUFTLFdBQVcsSUFBSTtBQUVoQyxNQUFJLENBQUMsU0FBUztBQUNaLFdBQU8sRUFBRSxTQUFTLE9BQVU7QUFBQSxFQUM5QjtBQUVBLFNBQU87QUFBQSxJQUNMLFNBQVM7QUFBQSxJQUNULFlBQVksQ0FBQyxZQUFZLE9BQU8sT0FBTyxDQUFDO0FBQUEsSUFDeEMsb0JBQW9CO0FBQUEsRUFDdEI7QUFDRixDQUFDOzs7QUM1REQsSUFBQUMsNkJBQTBCO0FBQzFCLElBQUFDLDRCQUF5QztBQUl6QyxJQUFBQyxpQkFBeUI7QUFDekIsSUFBQUMscUJBQThCO0FBd0I5QixJQUFNLFlBQVksT0FBTztBQUVsQixJQUFNLHNCQUFrQixzQ0FBeUUsQ0FBQyxVQUFVO0FBRWpILFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLFFBQU0sQ0FBQyxTQUFTLFVBQVUsUUFBSSx5QkFBUyxLQUFLO0FBQzVDLFFBQU0scUJBQWlCLGtDQUFjLHdCQUF3QjtBQUM3RCxRQUFNLGVBQWUsWUFBWTtBQUVqQyxNQUFJLFlBQVksbUJBQW1CO0FBQ2pDLFlBQVEsS0FBSyx1RUFBdUU7QUFBQSxFQUN0RjtBQUVBLFNBQU87QUFBQSxJQUNMLFVBQVU7QUFBQSxJQUNWLGdCQUFnQjtBQUFBLElBQ2hCLGVBQWU7QUFBQSxJQUNmLGdCQUFnQjtBQUFBLElBQ2hCLG1CQUFtQjtBQUFBLElBQ25CLFVBQVUsYUFBYSxnQkFBZ0IsaUJBQWlCLGlCQUFpQixJQUFJO0FBQUEsSUFDN0UsU0FBUyxlQUFlLFNBQVMsVUFBVSxTQUFTLGNBQWMsYUFBYTtBQUFBLElBQy9FLE1BQU0sU0FBUyxlQUFlLFdBQVc7QUFBQSxJQUN6QyxTQUFTLENBQUMsVUFBeUM7QUFDakQseUNBQVU7QUFFVixVQUFJLENBQUMsWUFBWSxnQkFBZ0IsRUFBRSxhQUFhLFFBQVE7QUFDdEQsZUFBTyxPQUFPLE9BQU8sRUFBRSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFFMUMsY0FBTSxlQUFlLGFBQWEsVUFBVSxLQUFLLENBQUM7QUFFbEQsWUFBSSxjQUFjLFlBQVksR0FBRztBQUMvQixxQkFBVyxJQUFJO0FBQ2YsdUJBQWEsS0FBSyxNQUFNLFdBQVcsS0FBSyxDQUFDO0FBQUEsUUFDM0M7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBQ0EsZUFBZSxDQUFDLFVBQXlDO0FBQ3ZELHFEQUFnQjtBQUNoQix1REFBaUIsVUFBVSxLQUFLO0FBQUEsSUFDbEM7QUFBQSxJQUNBLGVBQWUsQ0FBQyxVQUF5QztBQUN2RCxxREFBZ0I7QUFDaEIscURBQWdCLFVBQVUsS0FBSztBQUFBLElBQ2pDO0FBQUEsSUFDQSxZQUFZLENBQUMsVUFBeUM7QUFDcEQsK0NBQWE7QUFDYixtREFBYyxPQUFPLE1BQU0saURBQWlCLFVBQVUsS0FBSyxFQUFFO0FBQUEsSUFDL0Q7QUFBQSxJQUNBLFdBQVcsQ0FBQyxVQUE0QztBQUN0RCw2Q0FBWTtBQUVaLFVBQUksVUFBVTtBQUNaLGlEQUFVLE9BQU8sTUFBTTtBQUNyQixjQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsUUFBUTtBQUN0QyxtQkFBTyxPQUFPLE9BQU8sRUFBRSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFFMUMsa0JBQU0sZUFBZSxTQUFTLFVBQVUsS0FBSyxDQUFDO0FBRTlDLGdCQUFJLGNBQWMsWUFBWSxHQUFHO0FBQy9CLHlCQUFXLElBQUk7QUFDZiwyQkFBYSxLQUFLLE1BQU0sV0FBVyxLQUFLLENBQUM7QUFBQSxZQUMzQztBQUFBLFVBQ0Y7QUFBQSxRQUNGLENBQUM7QUFBQSxNQUNIO0FBRUEsVUFBSSxlQUFlO0FBQ2pCLHVCQUFlLE9BQU8sTUFBTTtBQUMxQix3QkFBYyxVQUFVLEtBQUssQ0FBQztBQUFBLFFBQ2hDLENBQUM7QUFBQSxNQUNIO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBRUQsSUFBTSxXQUFXLENBQUMsVUFBbUI7QUFBQSxFQUNuQyxHQUFHLEtBQUssT0FBTyxLQUFLLFFBQVE7QUFBQSxFQUM1QixHQUFHLEtBQUssTUFBTSxLQUFLLFNBQVM7QUFDOUI7QUFFQSxJQUFNLFlBQVksQ0FBQyxVQUFpRztBQUNsSCxRQUFNLFNBQ0osYUFBYSxRQUNUO0FBQUEsSUFDRSxHQUFHLE1BQU07QUFBQSxJQUNULEdBQUcsTUFBTTtBQUFBLEVBQ1gsSUFDQSxTQUFTLE1BQU0sY0FBYyxzQkFBc0IsQ0FBQztBQUUxRCxTQUFPO0FBQUEsSUFDTDtBQUFBLElBQ0EsT0FBTyxNQUFNLFNBQVMsVUFBVTtBQUFBLEVBQ2xDO0FBQ0Y7QUFFQSxJQUFNLGdCQUFnQixDQUFDLFVBQ3JCLE9BQU8sVUFBVSxZQUFZLENBQUMsQ0FBQyxTQUFTLFVBQVU7QUFFcEQsSUFBTSxpQkFBaUIsQ0FDckIsU0FDQSxVQUNBLFNBQ0EsVUFDQSxrQkFDNkI7QUFDN0IsTUFBSSxTQUFTO0FBQ1gsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLFNBQVM7QUFDWCxXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksQ0FBQyxZQUFZLENBQUMsZUFBZTtBQUMvQixXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksVUFBVTtBQUNaLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxVQUFVO0FBQ1osV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPO0FBQ1Q7OztBQzFLQSxJQUFBQyw2QkFBMEI7QUFFMUIsSUFBQUMscUJBQW9DO0FBRXBDLElBQU1DLGNBQVMsd0NBQW9CLCtCQUFTO0FBTXJDLElBQU0sNEJBQXdCLHNDQUFnRSxDQUFDLFVBQVU7QUFDOUcsUUFBTSxFQUFFLGtCQUFrQixXQUFXLElBQUk7QUFFekMsTUFBSSxDQUFDLGtCQUFrQjtBQUNyQixXQUFPLEVBQUUsa0JBQWtCLE9BQVU7QUFBQSxFQUN2QztBQUVBLFNBQU87QUFBQSxJQUNMLGtCQUFrQjtBQUFBLElBQ2xCLFlBQVksQ0FBQyxZQUFZQSxRQUFPLFFBQVE7QUFBQSxFQUMxQztBQUNGLENBQUM7OztBQ3BCRCxJQUFBQyw2QkFBMEI7QUFJbkIsSUFBTSxzQkFBa0Isc0NBQTBELENBQUMsVUFBVTtBQUNsRyxRQUFNLEVBQUUsV0FBVyxJQUFJO0FBRXZCLE1BQUksQ0FBQyxZQUFZO0FBQ2YsV0FBTyxFQUFFLFlBQVksT0FBVTtBQUFBLEVBQ2pDO0FBRUEsU0FBTyxFQUFFLFlBQVksQ0FBQywwQkFBTyxlQUFlLFVBQVUsRUFBRSxHQUFHLE1BQU0sVUFBVSxHQUFHLFlBQVksT0FBVTtBQUN0RyxDQUFDOzs7QUNiRCxJQUFBQyw2QkFBMEI7QUFPbkIsSUFBTSxrQkFBYyxzQ0FBc0QsQ0FBQyxVQUFVO0FBQzFGLFFBQU0sRUFBRSxRQUFRLFdBQVcsSUFBSTtBQUUvQixNQUFJLENBQUMsUUFBUTtBQUNYLFdBQU8sRUFBRSxRQUFRLE9BQVU7QUFBQSxFQUM3QjtBQUVBLFNBQU87QUFBQSxJQUNMLFFBQVE7QUFBQSxJQUNSLFlBQVksQ0FBQyxZQUFZLFdBQVcsV0FBVyxxQkFBTyxlQUFlLElBQUkscUJBQU8sS0FBSztBQUFBLEVBQ3ZGO0FBQ0YsQ0FBQzs7O0FDbkJELElBQUFDLDZCQUEwQjtBQUsxQixJQUFBQyxxQkFBb0M7QUFHcEMsSUFBTUMsY0FBUyx3Q0FBb0Isc0JBQWE7QUFRekMsSUFBTSxvQkFBZ0Isc0NBQXdELENBQUMsVUFBVTtBQWhCaEc7QUFpQkUsU0FBTztBQUFBLElBQ0wsWUFBWSxDQUFDLE1BQU0sWUFBWSw4QkFBNkIsV0FBTSxhQUFOLG1CQUFnQixZQUFZLENBQUM7QUFBQSxJQUN6RixVQUFVO0FBQUEsRUFDWjtBQUNGLENBQUM7QUFFRCxJQUFNLCtCQUErQixDQUFDLFVBQWlEO0FBQ3JGLE1BQUksQ0FBQyxPQUFPO0FBQ1YsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLEVBQUUsT0FBTyxNQUFNLElBQUk7QUFFekIsU0FBTztBQUFBLElBQ0wsVUFBVSxVQUFhLFVBQVUsU0FBWSxDQUFDQSxRQUFPLFNBQVNBLFFBQU8sWUFBWSxJQUFJO0FBQUEsSUFDckYsUUFBUUEsUUFBTyxVQUFVLEtBQUssRUFBRSxJQUFJO0FBQUEsSUFDcEMsUUFBUUEsUUFBTyxVQUFVLEtBQUssRUFBRSxJQUFJO0FBQUEsRUFDdEM7QUFDRjs7O0FDbENBLElBQUFDLDZCQUEwQjtBQUMxQixJQUFBQyw0QkFBcUQ7QUFHckQsSUFBTUMsY0FBUywrQ0FBb0IsMEJBQWlCO0FBeUI3QyxJQUFNLHdCQUFvQixzQ0FBNEQsQ0FBQyxXQUFXO0FBQUEsRUFDdkcsWUFBWSxDQUFDLE1BQU0sWUFBWSx5QkFBeUIsTUFBTSxZQUFZLENBQUM7QUFBQSxFQUMzRSxjQUFjO0FBQ2hCLEVBQUU7QUFFRixJQUFNLDJCQUEyQixDQUFDLGdCQUFxRTtBQUNyRyxNQUFJLENBQUMsYUFBYTtBQUNoQixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sRUFBRSxTQUFTLE9BQU8sc0JBQXNCLEtBQUssSUFBSSxnQkFBZ0IsT0FBTyxDQUFDLElBQUk7QUFFbkYsU0FBTyxDQUFDQSxRQUFPLGFBQWEsRUFBRSxDQUFDQSxRQUFPLE1BQU0sR0FBRyxRQUFRLENBQUNBLFFBQU8sa0JBQWtCLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQztBQUM1Rzs7O0FDM0NBLElBQUFDLDZCQUEwQjtBQUMxQixJQUFBQyxvQkFBNkI7QUFFN0IsSUFBQUMsaUJBQWlFO0FBRWpFLElBQUFELG9CQUE2RDtBQUU3RCxJQUFBRSw0QkFBK0M7QUE2RDNDLElBQUFDLHNCQUFBO0FBcERHLElBQU0sMkJBQXVCLDhCQUFjLEtBQUs7QUFFaEQsSUFBTSxtQkFBbUIsVUFBTSwyQkFBVyxvQkFBb0I7QUFFOUQsSUFBTSxvQkFBZ0Isc0NBQXdFLENBQUMsVUFBVTtBQUM5RyxRQUFNLEVBQUUsVUFBVSxVQUFVLEtBQUssSUFBSTtBQUNyQyxRQUFNLENBQUMsdUJBQXVCLHdCQUF3QixRQUFJLHlCQUFTLEtBQUs7QUFDeEUsUUFBTSxDQUFDLFdBQVcsVUFBVSxRQUFJLHlCQUFnQyxJQUFJO0FBQ3BFLFFBQU0sbUJBQWUsNEJBQVksTUFBTSx5QkFBeUIsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUUxRSxNQUFJLENBQUMsVUFBVTtBQUNiLFdBQU87QUFBQSxNQUNMLFVBQVU7QUFBQSxJQUNaO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFBQSxJQUNMLFVBQVU7QUFBQSxJQUNWLE1BQU0sQ0FBQyxNQUFNLFVBQVU7QUFBQSxJQUN2QixVQUFVLENBQUMsWUFBaUM7QUFDMUMsK0JBQXlCLENBQUMscUJBQXFCO0FBQy9DLDJDQUFXO0FBQUEsSUFDYjtBQUFBLElBQ0EsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLE1BQ1IsV0FBVztBQUFBLE1BQ1gsT0FBTztBQUFBLFFBQ0wsU0FBUztBQUFBLFVBQ1A7QUFBQSxVQUNBLFNBQVM7QUFBQSxVQUNUO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBWUQsSUFBTSwwQkFBMEIsQ0FBQyxFQUFFLFNBQVMsU0FBUyxNQUEyQjtBQUM5RSxRQUFNLEVBQUUsVUFBVSxTQUFTLFdBQVcsYUFBYSxJQUFJO0FBRXZELFNBQ0UsOEVBQ0c7QUFBQSxtQkFDQztBQUFBLE1BQ0U7QUFBQSxRQUFDO0FBQUE7QUFBQSxVQUNFLEdBQUc7QUFBQSxZQUNGO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUE7QUFBQSxNQUNGO0FBQUEsTUFDQSxTQUFTO0FBQUEsSUFDWDtBQUFBLElBQ0YsNkNBQUMscUJBQXFCLFVBQXJCLEVBQThCLE9BQU8sU0FBVSxVQUFTO0FBQUEsS0FDM0Q7QUFFSjtBQVFBLElBQU0sd0JBQXdCLENBQUMsVUFBc0M7QUFDbkUsUUFBTSxFQUFFLFVBQVUsY0FBYyxVQUFVLElBQUk7QUFDOUMsUUFBTSxDQUFDLFVBQVUsV0FBVyxRQUFJLHlCQUFnQyxJQUFJO0FBQ3BFLFFBQU0sRUFBRSxlQUFlLFFBQUksK0JBQVk7QUFBQSxJQUNyQyxXQUFXO0FBQUEsSUFDWCxZQUFZLEtBQUMsd0JBQUssT0FBRywwQkFBTyxDQUFDLE9BQUcseUJBQU0sQ0FBQztBQUFBLElBQ3ZDLHNCQUFzQjtBQUFBLElBQ3RCLFVBQVU7QUFBQSxNQUNSO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGLENBQUM7QUFFRCxRQUFNLDBCQUEwQixDQUFDLFVBQTRCO0FBQzNELG1EQUFnQixLQUFLO0FBQ3JCLGlCQUFhO0FBQUEsRUFDZjtBQUVBLFNBQ0U7QUFBQSxJQUFDO0FBQUE7QUFBQSxNQUNDLDZCQUF5QjtBQUFBLE1BQ3pCLFdBQVM7QUFBQSxNQUNULFlBQVksdUJBQU87QUFBQSxNQUNuQixTQUFTO0FBQUEsTUFFVDtBQUFBLFFBQUM7QUFBQTtBQUFBLFVBQ0MsTUFBTTtBQUFBLFVBQ04sT0FBTztBQUFBLFVBQ1AsU0FBUztBQUFBLFVBQ1QsWUFBWSx1QkFBTztBQUFBLFVBRW5CLHVEQUFDLHlCQUF5QixVQUF6QixFQUFrQyxPQUFPLGNBQWUsbUJBQVMsR0FBRTtBQUFBO0FBQUEsTUFDdEU7QUFBQTtBQUFBLEVBQ0Y7QUFFSjtBQUVPLElBQU0sK0JBQTJCLDhCQUF3QyxNQUFTO0FBRWxGLElBQU0sa0JBQWtCLFVBQzdCO0FBQUEsTUFDRSwyQkFBVyx3QkFBd0I7QUFBQSxFQUNuQztBQUNGOzs7QUN0SUYsSUFBQUMsNkJBQTJEO0FBRzNELElBQUFDLG9CQUE2RTtBQUM3RSxJQUFBQSxvQkFBNkI7QUFDN0IsSUFBQUMsaUJBQXlCO0FBOENyQixJQUFBQyxzQkFBQTtBQW5CSixJQUFNLDJCQUEyQixDQUFDLEVBQUUsVUFBVSxlQUFlLFNBQVMsTUFBNEI7QUFDaEcsUUFBTSxDQUFDLFdBQVcsWUFBWSxRQUFJLHlCQUE2QixJQUFJO0FBQ25FLFFBQU0sQ0FBQyxZQUFZLFdBQVcsUUFBSSx5QkFBNkIsSUFBSTtBQUVuRSxnQkFBYyxZQUFZO0FBRTFCLFFBQU0sRUFBRSxlQUFlLFFBQUksK0JBQVk7QUFBQSxJQUNyQyxXQUFXLFNBQVMsWUFBWTtBQUFBLElBQ2hDLFlBQVksS0FBQyx3QkFBSyxPQUFHLDBCQUFPLENBQUMsT0FBRyx5QkFBTSxDQUFDO0FBQUEsSUFDdkMsc0JBQXNCO0FBQUEsSUFDdEIsVUFBVTtBQUFBLE1BQ1IsVUFBVTtBQUFBLE1BQ1Y7QUFBQSxJQUNGO0FBQUEsRUFDRixDQUFDO0FBRUQsUUFBTSxrQkFBa0IsU0FBUyxRQUFRLEVBQUUsZ0JBQWdCLFlBQVksWUFBWSxDQUFDO0FBRXBGLFNBQ0UsOEVBQ0c7QUFBQSwwQkFBa0IsZ0NBQWEsaUJBQWlCLFNBQVMsSUFBSSxJQUFJO0FBQUEsSUFDakU7QUFBQSxLQUNIO0FBRUo7QUFFTyxTQUFTLGlCQUFvQjtBQUNsQyxhQUFPLHNDQUErQyxDQUFDLFVBQVU7QUFDL0QsVUFBTSxFQUFFLFVBQVUsSUFBSTtBQUV0QixRQUFJLGNBQWMsUUFBVztBQUMzQixhQUFPLEVBQUUsV0FBVyxPQUFVO0FBQUEsSUFDaEM7QUFFQSxXQUFPO0FBQUEsTUFDTCxXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsUUFDUixXQUFXO0FBQUEsUUFDWCxPQUFPLEVBQUUsVUFBVSxVQUFVO0FBQUEsTUFDL0I7QUFBQSxJQUNGO0FBQUEsRUFDRixDQUFDO0FBQ0g7OztBQ3pFQSxJQUFBQyw2QkFBMEI7QUFPbkIsSUFBTSw4QkFBMEIsc0NBQWtFLENBQUMsVUFBVTtBQUNsSCxRQUFNLEVBQUUsb0JBQW9CLFdBQVcsSUFBSTtBQUUzQyxNQUFJLENBQUMsb0JBQW9CO0FBQ3ZCLFdBQU8sRUFBRSxvQkFBb0IsT0FBVTtBQUFBLEVBQ3pDO0FBRUEsU0FBTztBQUFBLElBQ0wsb0JBQW9CO0FBQUEsSUFDcEIsWUFBWSxDQUFDLFlBQVksa0NBQU8saUJBQWlCO0FBQUEsRUFDbkQ7QUFDRixDQUFDOzs7QUNuQkQsSUFBQUMsNkJBQW9FO0FBQ3BFLHNDQUFvRDtBQUNwRCxJQUFBQyw0QkFBb0M7QUFDcEMsSUFBQUMsc0JBQThCO0FBRTlCLElBQUFDLGlCQUF5RDs7O0FDTHpELElBQUFDLDZCQUFvRTtBQUNwRSxJQUFBQyw0QkFBeUI7QUFFekIsSUFBQUMsaUJBQWlGO0FBcVA3RSxJQUFBQyxzQkFBQTtBQXBNSixJQUFNLGFBQXlCO0FBcUIvQixJQUFNLHdCQUFvQiw4QkFBa0MsTUFBUztBQU85RCxJQUFNLHNCQUFzQixzQkFBTztBQVduQyxJQUFNLG1CQUFtQixDQUFDLFlBQWlELGdCQUF5QjtBQUN6RyxRQUFNLDBCQUFzQiwyQkFBVyxpQkFBaUI7QUFDeEQsUUFBTSxnQkFBZ0IsZUFBZSx3QkFBd0I7QUFJN0QsUUFBTSx1QkFBbUIsdUJBQTJCLE1BQVM7QUFFN0QsTUFBSSxpQkFBaUIsaUJBQWlCLFlBQVksUUFBVztBQUMzRCxxQkFBaUIsVUFBVSxnQkFBZ0IsRUFBRSxrQkFBa0I7QUFBQSxFQUNqRTtBQUVBLFFBQU0sZ0JBQWdCLGlCQUFpQjtBQUV2QyxnQ0FBVSxNQUFNO0FBQ2QsVUFBTSxVQUFVLFdBQVc7QUFFM0IsUUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsa0JBQWtCLFFBQVc7QUFDN0Q7QUFBQSxJQUNGO0FBRUEsWUFBUSxNQUFNLFlBQVksb0JBQW9CLGFBQWE7QUFFM0QsV0FBTyxNQUFNO0FBQ1gsY0FBUSxNQUFNLGVBQWUsa0JBQWtCO0FBRy9DLFVBQUksUUFBUSxhQUFhLE9BQU8sTUFBTSxJQUFJO0FBQ3hDLGdCQUFRLGdCQUFnQixPQUFPO0FBQUEsTUFDakM7QUFBQSxJQUNGO0FBQUEsRUFDRixHQUFHLENBQUMsZUFBZSxlQUFlLFVBQVUsQ0FBQztBQUU3QyxTQUFPLHVCQUF1QjtBQUNoQztBQUVBLElBQUkscUJBQXFCO0FBR2xCLElBQU0scUJBQXFCLGtCQUFrQjtBQVVwRCxJQUFNLHlCQUF5QixDQUFDO0FBQUEsRUFDOUI7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0YsTUFBMEI7QUFDeEIsUUFBTSxnQkFBZ0IsaUJBQWEsc0JBQU0sQ0FBQztBQUMxQyxRQUFNLDBCQUFzQiwyQkFBVyxpQkFBaUI7QUFDeEQsUUFBTSxpQkFBYSx1QkFBMkIsSUFBSTtBQUNsRCxRQUFNLGVBQVcsdUJBQTJCLElBQUk7QUFFaEQ7QUFBQSxRQUNFLDRCQUFZLENBQUMsWUFBZ0M7QUFDM0MsaUJBQVcsVUFBVTtBQUFBLElBQ3ZCLEdBQUcsQ0FBQyxDQUFDO0FBQUEsRUFDUDtBQUVBLFFBQU0sV0FBVyxPQUFPLGVBQWUsV0FBVyxhQUFhLHlDQUFZO0FBQzNFLFFBQU0sUUFBUSxPQUFPLGVBQWUsV0FBVyxXQUFXLFFBQVE7QUFDbEUsUUFBTSxNQUFNLE9BQU8sZUFBZSxXQUFZLFdBQVcsT0FBTyxhQUFjO0FBRTlFLE1BQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUI7QUFDOUMsVUFBTSxJQUFJO0FBQUEsTUFDUixvQ0FBb0MsUUFBUTtBQUFBLElBQzlDO0FBQUEsRUFDRjtBQUdBLFFBQU0sOEJBQThCLFFBQVEsZ0JBQWdCO0FBRTVELE1BQUksZUFBZSxRQUFXO0FBQzVCLG9CQUFnQixFQUFFLFNBQVMsU0FBUyxDQUFDO0FBQUEsRUFDdkM7QUFFQSxnQ0FBVSxNQUFNO0FBQ2QsVUFBTSxVQUFVLFdBQVc7QUFFM0IsUUFBSSxDQUFDLFNBQVM7QUFDWjtBQUFBLElBQ0Y7QUFFQSxRQUFJLFVBQVU7QUFDWixjQUFRLE1BQU0sWUFBWSxvQkFBb0IsYUFBYTtBQUFBLElBQzdEO0FBRUEsUUFBSSxVQUFVO0FBQ1osY0FBUSxNQUFNLFlBQVksa0JBQWtCLFFBQVE7QUFDcEQsY0FBUSxNQUFNLFlBQVksYUFBYSxHQUFHLG1CQUFtQixHQUFHLENBQUMsSUFBSTtBQUlyRSxjQUFRLE1BQU0sWUFBWSw0QkFBNEIsUUFBUSxHQUFHLEdBQUcsbUJBQW1CLEdBQUcsQ0FBQyxJQUFJO0FBRS9GLFVBQUksNkJBQTZCO0FBQy9CLGdCQUFRLE1BQU0sWUFBWSx3QkFBd0IsMkJBQTJCO0FBQUEsTUFDL0U7QUFFQSxVQUFJLE9BQU87QUFDVCxnQkFBUSxNQUFNLFlBQVksZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLElBQUk7QUFDeEQsZ0JBQVEsTUFBTSxZQUFZLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJO0FBQUEsTUFDMUQ7QUFBQSxJQUNGO0FBQUEsRUFDRixDQUFDO0FBWUQsZ0NBQVUsTUFBTTtBQUNkLFVBQU0sVUFBVSxTQUFTO0FBRXpCLFFBQUksQ0FBQyxXQUFXLENBQUNDLGtCQUFpQixPQUFPLEdBQUc7QUFDMUM7QUFBQSxJQUNGO0FBRUEsWUFBUSxZQUFZO0FBRXBCLFdBQU8sTUFBTTtBQUNYLFVBQUksUUFBUSxhQUFhO0FBQ3ZCLGdCQUFRLFlBQVk7QUFBQSxNQUN0QjtBQUFBLElBQ0Y7QUFBQSxFQUNGLEdBQUcsQ0FBQyxDQUFDO0FBRUwsZ0NBQVUsTUFBTTtBQUNkLFVBQU0sVUFBVSxXQUFXO0FBRTNCLFFBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDQSxrQkFBaUIsT0FBTyxHQUFHO0FBQ3ZEO0FBQUEsSUFDRjtBQUVBLFlBQVEsWUFBWTtBQUVwQixXQUFPLE1BQU07QUFDWCxVQUFJLFFBQVEsYUFBYTtBQUN2QixnQkFBUSxZQUFZO0FBQUEsTUFDdEI7QUFBQSxJQUNGO0FBQUEsRUFDRixHQUFHLENBQUMsUUFBUSxDQUFDO0FBRWIsUUFBTSxVQUFVLFFBQ2QsOEVBRUU7QUFBQTtBQUFBLE1BQUM7QUFBQTtBQUFBLFFBQ0MsS0FBSztBQUFBLFFBQ0wsU0FBUTtBQUFBLFFBQ1IsMEJBQXNCO0FBQUEsUUFDdEIsV0FBVyxzQkFBTztBQUFBLFFBQ2xCLE9BQ0U7QUFBQSxVQUNFLENBQUMsa0JBQWtCLEdBQUc7QUFBQSxVQUN0QixDQUFDLGNBQWMsR0FBRyxHQUFHLE1BQU0sQ0FBQztBQUFBLFVBQzVCLENBQUMsY0FBYyxHQUFHLEdBQUcsTUFBTSxDQUFDO0FBQUEsUUFDOUI7QUFBQTtBQUFBLElBRUo7QUFBQSxJQUVDO0FBQUEsS0FDSCxJQUVBO0FBR0YsTUFBSSxVQUFVO0FBQ1osV0FBTyw2Q0FBQyxrQkFBa0IsVUFBbEIsRUFBMkIsT0FBTyxlQUFnQixtQkFBUTtBQUFBLEVBQ3BFO0FBRUEsU0FBTyw2RUFBRyxtQkFBUTtBQUNwQjtBQUVPLElBQU0sbUJBQWUsc0NBVzFCLENBQUMsVUFBVTtBQUNYLFFBQU0sRUFBRSxTQUFTLGFBQWEsV0FBVyxJQUFJO0FBRTdDLE1BQUksQ0FBQyxXQUFXLGdCQUFnQixRQUFXO0FBQ3pDLFdBQU8sRUFBRSxTQUFTLFFBQVcsYUFBYSxPQUFVO0FBQUEsRUFDdEQ7QUFFQSxTQUFPO0FBQUEsSUFDTCxTQUFTO0FBQUEsSUFDVCxhQUFhO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQU1iLEdBQUksZ0JBQWdCLFVBQWE7QUFBQSxNQUMvQixRQUFRLE1BQU0sVUFBVTtBQUFBLE1BQ3hCLGtCQUFrQixNQUFNLG9CQUFvQjtBQUFBLE1BQzVDLFNBQVMsRUFBRSxPQUFPLFFBQVEsR0FBRyxNQUFNLFFBQVE7QUFBQSxNQUMzQyxVQUFVLE1BQU0sWUFBWTtBQUFBLE1BQzVCLFNBQVMsTUFBTSxXQUFXO0FBQUEsTUFDMUIsV0FBVyxNQUFNLGFBQWE7QUFBQSxJQUNoQztBQUFBLElBRUEsZ0JBQVksb0NBQVMsWUFBWTtBQUFBLE1BQy9CLENBQUMsc0JBQU8sTUFBTSxHQUFHLENBQUMsQ0FBQztBQUFBLE1BQ25CLENBQUMsc0JBQU8sVUFBVSxHQUFHLGdCQUFnQjtBQUFBLElBQ3ZDLENBQUM7QUFBQSxJQUVELFVBQVU7QUFBQSxNQUNSLFdBQVc7QUFBQSxNQUNYLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxTQUFTLFlBQVksWUFBWTtBQUFBLElBQ3hEO0FBQUEsRUFDRjtBQUNGLENBQUM7QUFFRCxJQUFNLDhCQUE4QixDQUFDLGFBQTZCO0FBQ2hFLE1BQUksU0FBUyxXQUFXLFFBQVEsR0FBRztBQUNqQyxXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksU0FBUyxXQUFXLEtBQUssR0FBRztBQUM5QixXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sU0FBUyxXQUFXLE9BQU8sSUFBSSxnQkFBZ0I7QUFDeEQ7QUFFQSxJQUFNLHFCQUFxQjtBQUMzQixJQUFNLGNBQWM7QUFDcEIsSUFBTSx5QkFBeUI7QUFDL0IsSUFBTSxtQkFBbUI7QUFDekIsSUFBTSxpQkFBaUI7QUFDdkIsSUFBTSxpQkFBaUI7QUFHdkIsSUFBTSxlQUFlLENBQUMsT0FBZSxZQUFZLEdBQUcsUUFBUSxpQkFBaUIsRUFBRSxDQUFDO0FBSWhGLElBQU1BLG9CQUFtQixDQUFDLFlBQ3hCLE9BQVEsUUFBb0MsZ0JBQWdCOzs7QUR4SDFELElBQUFDLHNCQUFBO0FBN0xKLElBQU0sZ0NBQWdDO0FBU3RDLElBQU0sK0JBQStCLENBQUM7QUFBQSxFQUNwQztBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGLE1BQWdDO0FBQzlCLFFBQU0sQ0FBQyxRQUFRLFNBQVMsUUFBSSx5QkFBUyxLQUFLO0FBSTFDLFFBQU0sQ0FBQyxZQUFZLGFBQWEsUUFBSSx5QkFBUyxJQUFJO0FBQ2pELFFBQU0sQ0FBQyxRQUFRLFNBQVMsUUFBSSx5QkFBaUMsTUFBUztBQUN0RSxRQUFNLG9CQUFnQix1QkFBa0QsTUFBUztBQUNqRixRQUFNLHFCQUFpQixtQ0FBYyx3QkFBd0I7QUFFN0QsUUFBTSxpQkFBYSx1QkFBMkIsSUFBSTtBQUNsRCxRQUFNLGNBQVUsdUJBQTJCLElBQUk7QUFDL0MsUUFBTSwrQkFBMkIsdUJBQU8sS0FBSztBQUU3QztBQUFBLFFBQ0UsNEJBQVksQ0FBQyxZQUFnQztBQUMzQyxpQkFBVyxVQUFVO0FBQUEsSUFDdkIsR0FBRyxDQUFDLENBQUM7QUFBQSxFQUNQO0FBRUEsUUFBTSxhQUFTLDRCQUFZLE1BQU07QUFDL0Isa0JBQWMsSUFBSTtBQUNsQixjQUFVLENBQUMsWUFBWSxDQUFDLE9BQU87QUFBQSxFQUNqQyxHQUFHLENBQUMsQ0FBQztBQUVMLFFBQU0sWUFBUSw0QkFBWSxNQUFNO0FBL0VsQztBQW1GSSxVQUFNLFVBQVUsU0FBUztBQUV6Qiw2QkFBeUIsVUFDdkIsWUFBWSxRQUFRLFlBQVksU0FBUyxVQUFRLGFBQVEsWUFBUixtQkFBaUIsU0FBUyxjQUFhO0FBRTFGLGNBQVUsS0FBSztBQUFBLEVBQ2pCLEdBQUcsQ0FBQyxDQUFDO0FBRUwsUUFBTSwyQkFBdUIsNEJBQVksTUFBTTtBQUM3QyxRQUFJLGNBQWMsWUFBWSxRQUFXO0FBQ3ZDLG1CQUFhLGNBQWMsT0FBTztBQUNsQyxvQkFBYyxVQUFVO0FBQUEsSUFDMUI7QUFBQSxFQUNGLEdBQUcsQ0FBQyxDQUFDO0FBRUwsUUFBTSxXQUFPO0FBQUEsSUFDWCxDQUFDLGFBQXFDO0FBQ3BDLDJCQUFxQjtBQUNyQixvQkFBYyxhQUFhLFVBQVU7QUFDckMsZ0JBQVUsSUFBSTtBQUFBLElBQ2hCO0FBQUEsSUFDQSxDQUFDLG9CQUFvQjtBQUFBLEVBQ3ZCO0FBRUEsUUFBTSxvQkFBZ0IsNEJBQVksTUFBTTtBQUN0Qyx5QkFBcUI7QUFDckIsa0JBQWMsVUFBVSxXQUFXLE9BQU8sNkJBQTZCO0FBQUEsRUFDekUsR0FBRyxDQUFDLHNCQUFzQixLQUFLLENBQUM7QUFFaEMsZ0NBQVUsTUFBTSxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQztBQUU1RCxnQ0FBVSxNQUFNO0FBQ2QsUUFBSSxDQUFDLFFBQVE7QUFDWCxhQUFPO0FBQUEsSUFDVDtBQUlBLDZCQUF5QixVQUFVO0FBRW5DLFdBQU8sTUFBTTtBQUNYLFVBQUksQ0FBQyx5QkFBeUIsU0FBUztBQUNyQztBQUFBLE1BQ0Y7QUFNQSxXQUFLLFFBQVEsUUFBUSxFQUFFLEtBQUssTUFBTTtBQUNoQyxjQUFNLFVBQVUsV0FBVztBQUMzQixjQUFNLFVBQVUsU0FBUztBQUV6QixhQUFJLG1DQUFTLGlCQUFnQixZQUFZLFFBQVEsWUFBWSxTQUFTLE9BQU87QUFDM0Usa0JBQVEsTUFBTTtBQUFBLFFBQ2hCO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0YsR0FBRyxDQUFDLE1BQU0sQ0FBQztBQUtYLFFBQU0sYUFBYSxpQkFBaUIsWUFBWSxNQUFNO0FBRXRELFFBQU0sU0FBUyxhQUFhLFVBQVU7QUFFdEMsUUFBTSx1QkFBbUI7QUFBQSxJQUN2QixDQUFDLFVBQStCO0FBQzlCLFVBQUksTUFBTSxRQUFRLGFBQWE7QUFDN0IsY0FBTSxlQUFlO0FBQ3JCLGNBQU0sZ0JBQWdCO0FBQ3RCLGNBQU07QUFBQSxNQUNSO0FBQUEsSUFDRjtBQUFBLElBQ0EsQ0FBQyxLQUFLO0FBQUEsRUFDUjtBQUdBLFFBQU0sMkJBQTJCO0FBQUEsUUFDL0IsNEJBQVksTUFBTTtBQUNoQixVQUFJLFFBQVE7QUFDVixrQkFBVSxLQUFLO0FBQUEsTUFDakI7QUFBQSxJQUNGLEdBQUcsQ0FBQyxNQUFNLENBQUM7QUFBQSxFQUNiO0FBRUEsa0JBQWdCO0FBQUEsSUFDZCxHQUFHO0FBQUEsSUFDSCxpQkFBaUI7QUFBQSxJQUVqQixHQUFJLFdBQVcsV0FBVztBQUFBLE1BQ3hCLFNBQVMsQ0FBQyxVQUE0QjtBQUNwQyxjQUFNLGdCQUFnQjtBQUN0QixlQUFPO0FBQUEsTUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BS0EsV0FBVyxDQUFDLFVBQStCO0FBQ3pDLGlEQUFVLE9BQU8sTUFBTTtBQUNyQixnQkFBTSxnQkFBZ0I7QUFDdEIsaUJBQU87QUFBQSxRQUNULENBQUM7QUFBQSxNQUNIO0FBQUEsSUFDRjtBQUFBLElBRUEsR0FBSSxXQUFXLGlCQUFpQjtBQUFBLE1BQzlCLGVBQWUsQ0FBQyxVQUE0QjtBQUMxQyxjQUFNLGVBQWU7QUFDckIsY0FBTSxnQkFBZ0I7QUFFdEIsa0JBQVUsRUFBRSxHQUFHLE1BQU0sU0FBUyxHQUFHLE1BQU0sUUFBUSxDQUFDO0FBQ2hELGVBQU87QUFBQSxNQUNUO0FBQUEsTUFFQSxXQUFXLENBQUMsVUFBK0I7QUFDekMsdUJBQWUsT0FBTyxNQUFNO0FBQzFCLGdCQUFNLGdCQUFnQjtBQUV0QixvQkFBVSxNQUFTO0FBQ25CLGlCQUFPO0FBQUEsUUFDVCxDQUFDO0FBQUEsTUFDSDtBQUFBLElBQ0Y7QUFBQSxJQUVBLEdBQUksV0FBVyxXQUFXO0FBQUEsTUFDeEIsY0FBYyxNQUFNLEtBQUssU0FBUztBQUFBLE1BQ2xDLGNBQWM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BTWQsV0FBVyxDQUFDLFVBQStCO0FBQ3pDLFlBQUksTUFBTSxRQUFRLGNBQWM7QUFDOUIsZ0JBQU0sZUFBZTtBQUNyQixnQkFBTSxnQkFBZ0I7QUFDdEIsZUFBSyxVQUFVO0FBQUEsUUFDakI7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQztBQUVELFNBQ0UsOEVBQ0c7QUFBQTtBQUFBLElBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFnQkM7QUFBQSxNQUFDO0FBQUE7QUFBQSxRQUNFLEdBQUc7QUFBQSxRQUNKLEtBQUs7QUFBQSxRQUNMLE9BQU87QUFBQSxRQUNQLFNBQVNDO0FBQUEsUUFDVCxTQUFTQTtBQUFBLFFBS1QsV0FBVyxXQUFXLFVBQVUsbUJBQW1CO0FBQUEsUUFFbkQsdURBQUMsc0JBQW1CLE9BQU8sWUFDekI7QUFBQSxVQUFDO0FBQUE7QUFBQSxZQUNDLE1BQU07QUFBQSxZQUNOLGFBQWEsV0FBVyxnQkFBZ0IsU0FBUztBQUFBLFlBQ2pEO0FBQUEsWUFDQSxTQUFTO0FBQUEsWUFDVCxtQkFDRSxXQUFXLFVBQ1AsQ0FBQyxrQkFBbUIsZ0JBQWdCLHFCQUFxQixJQUFJLGNBQWMsSUFDM0U7QUFBQTtBQUFBLFFBRVIsR0FDRjtBQUFBO0FBQUEsSUFDRjtBQUFBLEtBRUo7QUFFSjtBQUVBLElBQU0sa0JBQWtCLEVBQUUsU0FBUyxXQUFXO0FBRTlDLElBQU1BLG1CQUFrQixDQUFDLFVBQWdDLE1BQU0sZ0JBQWdCO0FBRXhFLElBQU0seUJBQXFCLHNDQUdoQyxDQUFDLFVBQVU7QUFDWCxRQUFNLEVBQUUsZUFBZSxTQUFTLFlBQVksS0FBSyxJQUFJO0FBRXJELE1BQUksa0JBQWtCLFFBQVc7QUFDL0IsV0FBTyxFQUFFLGVBQWUsT0FBVTtBQUFBLEVBQ3BDO0FBRUEsUUFBTSxnQkFBZ0IsY0FBYyxVQUFVLGFBQWE7QUFHM0QsUUFBTSxlQUFlLFdBQVcsS0FBSztBQUVyQyxTQUFPO0FBQUEsSUFDTCxlQUFlO0FBQUEsSUFFZixHQUFJLGNBQWMsV0FBVyxVQUFVLENBQUMsSUFBSSxFQUFFLFVBQVUsTUFBTSxZQUFZLEVBQUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBTTVFLEdBQUksZ0JBQWdCO0FBQUEsTUFDbEIsTUFBTSxRQUFRO0FBQUEsTUFDZCxTQUFTLFlBQVksZUFBZSxnQkFBZ0I7QUFBQSxJQUN0RDtBQUFBO0FBQUE7QUFBQTtBQUFBLElBS0EsZ0JBQVksb0NBQVMsWUFBWSxtQkFBbUI7QUFBQSxJQUVwRCxVQUFVO0FBQUEsTUFDUixXQUFXO0FBQUEsTUFDWCxPQUFPLEVBQUUsY0FBYyxjQUFjO0FBQUEsSUFDdkM7QUFBQSxFQUNGO0FBQ0YsQ0FBQzs7O0F6QzFRTSxJQUFNLGdCQUFnQjtBQUFBO0FBQUEsRUFFM0I7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7QUFFQSxJQUFNLHlCQUF5QixDQUFDLG9CQUFvQixlQUFlLGVBQWUsZUFBZTtBQUUxRixJQUFNLHdCQUF3QixNQUE2QjtBQUFBLEVBQ2hFLEdBQUcsb0NBQXVDO0FBQUEsRUFDMUMsR0FBRyx1Q0FBMEM7QUFDL0M7QUFFQSxJQUFNLHNDQUFzQyxNQUE2QixDQUFDLGNBQWlCLEdBQUcsZUFBa0IsQ0FBQztBQUVqSCxJQUFNLHlDQUF5QyxNQUE2QjtBQUFBLEVBQzFFLGdCQUFtQjtBQUFBLEVBQ25CLDBCQUE2QjtBQUFBLEVBQzdCLGdCQUFtQjtBQUFBLEVBQ25CLFVBQWE7QUFDZjtBQUVPLElBQU0sVUFBTSxpQ0FBUyxnREFBb0IsT0FBTyxHQUFHLGVBQWUsR0FBRyxzQkFBc0MsQ0FBQyxDQUFDO0FBSzdHLElBQU0sYUFBUyxpQ0FBUyxnREFBb0IsT0FBTyxHQUFHLGVBQWUsR0FBRyxzQkFBMkIsQ0FBQyxDQUFDO0FBR3JHLElBQU0sVUFBTSxpQ0FBUyxnREFBb0IsT0FBTyxHQUFHLGVBQWUsR0FBRyxzQkFBbUMsQ0FBQyxDQUFDO0FBSTFHLElBQU0sWUFBUTtBQUFBLE1BQ25CO0FBQUEsSUFDRTtBQUFBLElBQ0E7QUFBQSxJQUNBLEdBQUc7QUFBQSxJQUNILEdBQUcsdUNBQXlEO0FBQUEsRUFDOUQ7QUFDRjtBQUdPLElBQU0sZUFBVztBQUFBLE1BQ3RCLGdEQUFvQixZQUFZLGVBQWUsR0FBRyxlQUFlLEdBQUcsc0JBQTJDLENBQUM7QUFDbEg7QUFHTyxJQUFNLFdBQU87QUFBQSxNQUNsQixnREFBb0IsUUFBUSxHQUFHLGVBQWUsR0FBRyxzQkFBdUMsQ0FBQztBQUMzRjtBQUdPLElBQU0sV0FBTztBQUFBLE1BQ2xCLGdEQUFvQixRQUFRLEdBQUcsZUFBZSxHQUFHLHNCQUF1QyxDQUFDO0FBQzNGO0FBR08sSUFBTSxtQkFBZTtBQUFBLE1BQzFCLGdEQUFvQixPQUFPLEdBQUcsd0JBQXdCLEdBQUcsZUFBZSxHQUFHLHNCQUFzQyxDQUFDO0FBQ3BIO0FBR08sSUFBTSxRQUFJLGlDQUFTLGdEQUFvQixLQUFLLEdBQUcsZUFBZSxHQUFHLHNCQUFtQyxDQUFDLENBQUM7QUFHdEcsSUFBTSxRQUFJLGlDQUFTLGdEQUFvQixLQUFLLEdBQUcsZUFBZSxHQUFHLHNCQUF5QyxDQUFDLENBQUM7QUFHNUcsSUFBTSxhQUFTO0FBQUEsTUFDcEI7QUFBQSxJQUNFO0FBQUEsSUFDQSxHQUFHO0FBQUEsSUFDSCxHQUFHO0FBQUEsSUFDSCxHQUFHLHNCQUF5QztBQUFBLEVBQzlDO0FBQ0Y7QUFHTyxJQUFNLFdBQU8saUNBQVMsZ0RBQW9CLFFBQVEsR0FBRyxlQUFlLEdBQUcsc0JBQW1DLENBQUMsQ0FBQztBQUc1RyxJQUFNLFlBQVEsaUNBQVMsZ0RBQW9CLFNBQVMsR0FBRyxlQUFlLEdBQUcsc0JBQW1DLENBQUMsQ0FBQztBQUc5RyxJQUFNLFVBQU0saUNBQVMsZ0RBQW9CLE9BQU8sR0FBRyxlQUFlLEdBQUcsc0JBQXNDLENBQUMsQ0FBQztBQUc3RyxJQUFNLFVBQU0saUNBQVMsZ0RBQW9CLE9BQU8sR0FBRyxlQUFlLEdBQUcsc0JBQW1DLENBQUMsQ0FBQztBQUcxRyxJQUFNLFNBQUssaUNBQVMsZ0RBQW9CLE1BQU0sR0FBRyxlQUFlLEdBQUcsc0JBQTBDLENBQUMsQ0FBQztBQUcvRyxJQUFNLFNBQUssaUNBQVMsZ0RBQW9CLE1BQU0sR0FBRyxlQUFlLEdBQUcsc0JBQTBDLENBQUMsQ0FBQztBQUcvRyxJQUFNLFNBQUssaUNBQVMsZ0RBQW9CLE1BQU0sR0FBRyxlQUFlLEdBQUcsc0JBQTBDLENBQUMsQ0FBQztBQUcvRyxJQUFNLFNBQUssaUNBQVMsZ0RBQW9CLE1BQU0sR0FBRyxlQUFlLEdBQUcsc0JBQTBDLENBQUMsQ0FBQztBQUcvRyxJQUFNLFNBQUssaUNBQVMsZ0RBQW9CLE1BQU0sR0FBRyxlQUFlLEdBQUcsc0JBQTBDLENBQUMsQ0FBQztBQUcvRyxJQUFNLFNBQUssaUNBQVMsZ0RBQW9CLE1BQU0sR0FBRyxlQUFlLEdBQUcsc0JBQTBDLENBQUMsQ0FBQztBQUcvRyxJQUFNLFNBQUssaUNBQVMsZ0RBQW9CLE1BQU0sR0FBRyxlQUFlLEdBQUcsc0JBQXdDLENBQUMsQ0FBQztBQUc3RyxJQUFNLFNBQUssaUNBQVMsZ0RBQW9CLE1BQU0sR0FBRyxlQUFlLEdBQUcsc0JBQXdDLENBQUMsQ0FBQztBQUc3RyxJQUFNLFNBQUssaUNBQVMsZ0RBQW9CLE1BQU0sR0FBRyxlQUFlLEdBQUcsc0JBQXFDLENBQUMsQ0FBQztBQUUxRyxJQUFNLGtCQUFjO0FBQUEsTUFDekIsZ0RBQW9CLE1BQU0sR0FBRyx3QkFBd0IsR0FBRyxlQUFlLEdBQUcsc0JBQXFDLENBQUM7QUFDbEg7QUFJTyxJQUFNLFFBQUksaUNBQVMsZ0RBQW9CLEtBQUssR0FBRyxlQUFlLEdBQUcsc0JBQTRDLENBQUMsQ0FBQztBQUcvRyxJQUFNLFNBQUs7QUFBQSxNQUNoQixnREFBb0IsTUFBTSxHQUFHLGVBQWUsR0FBRyxzQkFBNEMsQ0FBQztBQUM5RjtBQUlPLElBQU0sU0FBSztBQUFBLE1BQ2hCLGdEQUFvQixNQUFNLEdBQUcsZUFBZSxHQUFHLHNCQUE0QyxDQUFDO0FBQzlGO0FBSU8sSUFBTSxTQUFLO0FBQUEsTUFDaEIsZ0RBQW9CLE1BQU0sR0FBRyxlQUFlLEdBQUcsc0JBQTJDLENBQUM7QUFDN0Y7QUFJTyxJQUFNLFlBQVE7QUFBQSxNQUNuQixnREFBb0IsU0FBUyxHQUFHLGVBQWUsR0FBRyxzQkFBd0MsQ0FBQztBQUM3RjtBQUdPLElBQU0sWUFBUTtBQUFBLE1BQ25CLGdEQUFvQixTQUFTLEdBQUcsZUFBZSxHQUFHLHNCQUErQyxDQUFDO0FBQ3BHO0FBR08sSUFBTSxhQUFTO0FBQUEsTUFDcEIsZ0RBQW9CLFVBQVUsR0FBRyxlQUFlLEdBQUcsc0JBQXlDLENBQUM7QUFDL0Y7QUFHTyxJQUFNLGFBQVM7QUFBQSxNQUNwQixnREFBb0IsVUFBVSxHQUFHLGVBQWUsR0FBRyxzQkFBeUMsQ0FBQztBQUMvRjtBQUdPLElBQU0sVUFBTSxpQ0FBUyxnREFBb0IsT0FBTyxHQUFHLGVBQWUsR0FBRyxzQkFBd0MsQ0FBQyxDQUFDOzs7QTJDbE90SCxJQUFNLGdCQUFnQixvQkFBSSxJQUFpQztBQU9wRCxJQUFNLHNCQUFzQixDQUFlLE9BQ2hELG1CQUFtQixhQUFhLEVBQUUsSUFBSSxNQUFNO0FBQzFDLFFBQU0sVUFBeUM7QUFBQSxJQUM3QztBQUFBLElBQ0EscUJBQXFCO0FBQUEsSUFDckIsV0FBVyxDQUFDLFVBQVUsRUFBRSxTQUFTLEtBQUs7QUFBQSxFQUN4QztBQUVBLFNBQU87QUFDVCxDQUFDO0FBMEJJLElBQU0sdUNBQXVDLENBQ2xELElBQ0EsVUFBb0QsQ0FBQyxNQUNGO0FBQ25ELFFBQU0sY0FBYyxRQUFRLGVBQWU7QUFDM0MsUUFBTSx3QkFBd0IsUUFBUSx5QkFBeUI7QUFFL0QsUUFBTSxNQUFNLHNCQUFzQixFQUFFLElBQUksV0FBVyxJQUFJLHdCQUF3QixXQUFXLFNBQVM7QUFFbkcsU0FBTyxtQkFBbUIsS0FBSyxNQUFNO0FBQ25DLFVBQU0sVUFBMEQ7QUFBQSxNQUM5RDtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsTUFDckI7QUFBQSxNQUNBO0FBQUEsTUFDQSxXQUFXLENBQUMsTUFBTSxpQkFBaUIsRUFBRSxTQUFTLE1BQU0sWUFBWTtBQUFBLElBQ2xFO0FBRUEsV0FBTztBQUFBLEVBQ1QsQ0FBQztBQUNIO0FBRUEsSUFBTSxxQkFBcUIsQ0FBZ0MsS0FBYSxXQUF1QjtBQUM3RixRQUFNLFdBQVcsY0FBYyxJQUFJLEdBQUc7QUFFdEMsTUFBSSxVQUFVO0FBQ1osV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLFVBQVUsT0FBTztBQUV2QixnQkFBYyxJQUFJLEtBQUssT0FBTztBQUU5QixTQUFPO0FBQ1Q7OztBQzlHQSxJQUFBQyxpQkFBMEM7QUFhbkMsSUFBTSw4QkFBMEIsOEJBQWdELE1BQVM7QUFhekYsSUFBTSxtQkFBbUIsVUFBTSwyQkFBVyx1QkFBdUI7OztBQzFCeEUsSUFBQUMsc0JBQThCO0FBRTlCLElBQUFDLGlCQUF1RDtBQUdoRCxJQUFNLG9CQUFvQixNQUFnQztBQUMvRCxRQUFNLHVCQUFtQix3QkFBUSxNQUFNLG9CQUFtRCxHQUFHLENBQUMsQ0FBQztBQUMvRixRQUFNLFVBQU0sdUJBQWEsSUFBSTtBQUM3QixRQUFNLHVCQUFtQixtQ0FBYyxpQ0FBaUMsZ0JBQWdCO0FBRXhGLFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQSxTQUFTLGlCQUFpQixVQUFVLEdBQUc7QUFBQSxJQUN2QyxvQkFBb0I7QUFBQSxFQUN0QjtBQUNGOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9qc3hfcnVudGltZSIsICJ0b0NvbnRleHRNYXAiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfcmVhY3RfZG9tIiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9mcCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlcyIsICJpbXBvcnRfZnAiLCAibG9kYXNoQ2FwaXRhbGl6ZSIsICJpbXBvcnRfZnAiLCAiYWxpYXNUb05vbWluYWwiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9qc3hfcnVudGltZSIsICJpbXBvcnRfZmVhdHVyZV9jb3JlIiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9mcCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJtb2R1bGVzIiwgIm1vZHVsZXMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAibW9kdWxlcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpc1BlcmNlbnRhZ2UiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImFsaWFzVG9Ob21pbmFsIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfbW9ieF9yZWFjdCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9mcCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF90ZXN0X3V0aWxzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF90ZXN0X3V0aWxzIiwgInN0eWxlcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdGVzdF91dGlscyIsICJzdHlsZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgInN0eWxlcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3JlYWN0X2RvbSIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcmVhY3RfZG9tIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiaXNQb3BvdmVyQ2FwYWJsZSIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAic3RvcFByb3BhZ2F0aW9uIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfcmVhY3QiXQp9Cg==