@tricoteuses/assemblee 1.9.13 → 1.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/README.md +0 -5
- package/lib/api.js +1 -1
- package/lib/api.mjs +1 -1
- package/lib/bugs/acteur-00010/plugin.test.js +5 -5
- package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
- package/lib/bugs/acteur-00010.js +17 -18
- package/lib/bugs/acteur-00010.mjs +1 -1
- package/lib/bugs/agenda-00002/plugin.test.js +6 -6
- package/lib/bugs/agenda-00002/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00002.js +31 -32
- package/lib/bugs/agenda-00002.mjs +3 -3
- package/lib/bugs/agenda-00008/plugin.test.js +5 -5
- package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00008.js +17 -18
- package/lib/bugs/agenda-00008.mjs +1 -1
- package/lib/bugs/agenda-00011/plugin.test.js +10 -10
- package/lib/bugs/agenda-00011/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00011.js +28 -29
- package/lib/bugs/agenda-00011.mjs +3 -3
- package/lib/bugs.js +27 -29
- package/lib/bugs.mjs +3 -3
- package/lib/cleaners/actes_legislatifs.js +5 -5
- package/lib/cleaners/actes_legislatifs.mjs +1 -1
- package/lib/cleaners/acteurs.js +5 -5
- package/lib/cleaners/acteurs.mjs +1 -1
- package/lib/cleaners/amendements.js +5 -5
- package/lib/cleaners/amendements.mjs +1 -1
- package/lib/cleaners/debats.js +1 -1
- package/lib/cleaners/debats.mjs +1 -1
- package/lib/cleaners/documents.js +5 -5
- package/lib/cleaners/documents.mjs +1 -1
- package/lib/cleaners/dossiers_legislatifs.js +5 -5
- package/lib/cleaners/dossiers_legislatifs.mjs +1 -1
- package/lib/cleaners/index.d.ts +0 -1
- package/lib/cleaners/index.js +1 -8
- package/lib/cleaners/index.mjs +1 -2
- package/lib/cleaners/organes.js +2 -2
- package/lib/cleaners/organes.mjs +1 -1
- package/lib/cleaners/questions.js +1 -1
- package/lib/cleaners/questions.mjs +1 -1
- package/lib/cleaners/reunions.js +5 -5
- package/lib/cleaners/reunions.mjs +1 -1
- package/lib/cleaners/scrutins.js +8 -8
- package/lib/cleaners/scrutins.mjs +1 -1
- package/lib/cleaners/xml.js +8 -8
- package/lib/cleaners/xml.mjs +1 -1
- package/lib/datasets.d.ts +1 -13
- package/lib/datasets.js +10 -29
- package/lib/datasets.mjs +2 -21
- package/lib/dates.js +3 -4
- package/lib/dates.mjs +1 -1
- package/lib/dossiers_legislatifs.js +8 -8
- package/lib/dossiers_legislatifs.mjs +1 -1
- package/lib/file_systems.js +15 -14
- package/lib/file_systems.mjs +3 -3
- package/lib/git.js +5 -5
- package/lib/git.mjs +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +8 -1
- package/lib/index.mjs +2 -1
- package/lib/inserters.js +4 -4
- package/lib/inserters.mjs +1 -1
- package/lib/loaders.d.ts +0 -5
- package/lib/loaders.js +255 -299
- package/lib/loaders.mjs +1 -13
- package/lib/logger.js +1 -1
- package/lib/logger.mjs +1 -1
- package/lib/organes.js +1 -1
- package/lib/organes.mjs +1 -1
- package/lib/parsers/documents.js +11 -11
- package/lib/parsers/documents.mjs +1 -1
- package/lib/parsers/index.d.ts +1 -0
- package/lib/parsers/index.js +8 -1
- package/lib/parsers/index.mjs +2 -1
- package/lib/parsers/recherche_amendements.js +17 -15
- package/lib/parsers/recherche_amendements.mjs +1 -1
- package/lib/parsers/textes_lois.d.ts +22 -15
- package/lib/parsers/textes_lois.js +264 -752
- package/lib/parsers/textes_lois.mjs +249 -597
- package/lib/raw_types/acteurs_et_organes.js +9 -9
- package/lib/raw_types/acteurs_et_organes.mjs +1 -1
- package/lib/raw_types/agendas.d.ts +1 -0
- package/lib/raw_types/agendas.js +11 -10
- package/lib/raw_types/agendas.mjs +3 -2
- package/lib/raw_types/amendements.js +9 -9
- package/lib/raw_types/amendements.mjs +1 -1
- package/lib/raw_types/debats.js +9 -9
- package/lib/raw_types/debats.mjs +1 -1
- package/lib/raw_types/dossiers_legislatifs.js +9 -9
- package/lib/raw_types/dossiers_legislatifs.mjs +1 -1
- package/lib/raw_types/questions.js +9 -9
- package/lib/raw_types/questions.mjs +1 -1
- package/lib/raw_types/scrutins.js +9 -9
- package/lib/raw_types/scrutins.mjs +1 -1
- package/lib/scripts/bugs_helper.js +25 -26
- package/lib/scripts/bugs_helper.mjs +3 -3
- package/lib/scripts/clean_reorganized_data.js +256 -245
- package/lib/scripts/clean_reorganized_data.mjs +18 -29
- package/lib/scripts/diff_amendements.js +9 -8
- package/lib/scripts/diff_amendements.mjs +1 -1
- package/lib/scripts/document_dossiers_legislatifs.js +24 -27
- package/lib/scripts/document_dossiers_legislatifs.mjs +3 -3
- package/lib/scripts/get_today_reunions.js +3 -2
- package/lib/scripts/get_today_reunions.mjs +1 -1
- package/lib/scripts/merge_scrutins.js +9 -8
- package/lib/scripts/merge_scrutins.mjs +1 -1
- package/lib/scripts/parse_textes_lois.js +6 -5
- package/lib/scripts/parse_textes_lois.mjs +1 -1
- package/lib/scripts/process_open_dataset.d.ts +0 -2
- package/lib/scripts/process_open_dataset.js +19 -19
- package/lib/scripts/process_open_dataset.mjs +3 -5
- package/lib/scripts/raw_types_from_amendements.d.ts +0 -1
- package/lib/scripts/raw_types_from_amendements.js +122 -198
- package/lib/scripts/raw_types_from_amendements.mjs +105 -60
- package/lib/scripts/reorganize_data.js +14 -15
- package/lib/scripts/reorganize_data.mjs +3 -3
- package/lib/scripts/retrieve_deputes_photos.js +40 -31
- package/lib/scripts/retrieve_deputes_photos.mjs +10 -2
- package/lib/scripts/retrieve_documents.d.ts +1 -1
- package/lib/scripts/retrieve_documents.js +230 -138
- package/lib/scripts/retrieve_documents.mjs +87 -38
- package/lib/scripts/retrieve_open_data.js +27 -30
- package/lib/scripts/retrieve_open_data.mjs +5 -8
- package/lib/scripts/retrieve_pending_amendments.js +14 -14
- package/lib/scripts/retrieve_pending_amendments.mjs +1 -1
- package/lib/scripts/retrieve_senateurs_photos.js +10 -10
- package/lib/scripts/retrieve_senateurs_photos.mjs +1 -1
- package/lib/scripts/retrieve_textes_lois.js +17 -15
- package/lib/scripts/retrieve_textes_lois.mjs +1 -1
- package/lib/scripts/shared/cli_helpers.d.ts +11 -0
- package/lib/scripts/shared/cli_helpers.js +13 -2
- package/lib/scripts/shared/cli_helpers.mjs +12 -1
- package/lib/scripts/test_iter_load.js +5 -19
- package/lib/scripts/test_iter_load.mjs +2 -9
- package/lib/scripts/test_load.js +2 -2
- package/lib/scripts/test_load.mjs +1 -1
- package/lib/scripts/test_load_big_files.js +2 -2
- package/lib/scripts/test_load_big_files.mjs +1 -1
- package/lib/scripts/validate_json.js +17 -18
- package/lib/scripts/validate_json.mjs +3 -3
- package/lib/shared_types/codes_actes.js +1 -1
- package/lib/shared_types/codes_actes.mjs +1 -1
- package/lib/strings.js +1 -1
- package/lib/strings.mjs +1 -1
- package/lib/types/acteurs_et_organes.js +9 -9
- package/lib/types/acteurs_et_organes.mjs +1 -1
- package/lib/types/agendas.d.ts +1 -0
- package/lib/types/agendas.js +11 -10
- package/lib/types/agendas.mjs +3 -2
- package/lib/types/amendements.js +9 -9
- package/lib/types/amendements.mjs +1 -1
- package/lib/types/debats.js +9 -9
- package/lib/types/debats.mjs +1 -1
- package/lib/types/dossiers_legislatifs.d.ts +13 -0
- package/lib/types/dossiers_legislatifs.js +47 -9
- package/lib/types/dossiers_legislatifs.mjs +39 -1
- package/lib/types/legislatures.js +1 -1
- package/lib/types/legislatures.mjs +1 -1
- package/lib/types/questions.js +9 -9
- package/lib/types/questions.mjs +1 -1
- package/lib/types/scrutins.js +9 -9
- package/lib/types/scrutins.mjs +1 -1
- package/lib/urls.js +2 -2
- package/lib/urls.mjs +1 -1
- package/package.json +14 -20
- package/lib/cleaners/textes_loi.d.ts +0 -1
- package/lib/cleaners/textes_loi.js +0 -12
- package/lib/cleaners/textes_loi.mjs +0 -5
- package/lib/examples/PIONANR5L15B0020/input.d.ts +0 -2
- package/lib/examples/PIONANR5L15B0020/input.js +0 -10
- package/lib/examples/PIONANR5L15B0020/input.mjs +0 -193
- package/lib/examples/PIONANR5L15B0020/input.ts +0 -193
- package/lib/examples/PIONANR5L15B0020/loi.json +0 -26
- package/lib/examples/PIONANR5L15B0020/loi_populated.json +0 -29
- package/lib/examples/PIONANR5L15B0020/meta.json +0 -28
- package/lib/examples/PIONANR5L15B0020/motifs.json +0 -5
- package/lib/examples/PIONANR5L15B0020/motifs_populated.json +0 -6
- package/lib/examples/PIONANR5L15B0020/sommaire.json +0 -3
- package/lib/examples/PRJLANR5L16B0914/input.d.ts +0 -2
- package/lib/examples/PRJLANR5L16B0914/input.js +0 -10
- package/lib/examples/PRJLANR5L16B0914/input.mjs +0 -322
- package/lib/examples/PRJLANR5L16B0914/input.ts +0 -322
- package/lib/examples/PRJLANR5L16B0914/loi.json +0 -14
- package/lib/examples/PRJLANR5L16B0914/loi_populated.json +0 -20
- package/lib/examples/PRJLANR5L16B0914/meta.json +0 -35
- package/lib/examples/PRJLANR5L16B0914/motifs.json +0 -4
- package/lib/examples/PRJLANR5L16B0914/motifs_populated.json +0 -5
- package/lib/examples/PRJLANR5L16B0914/sommaire.json +0 -3
- package/lib/examples/PRJLANR5L16B2014/README.md +0 -2
- package/lib/examples/PRJLANR5L16B2014/input.d.ts +0 -2
- package/lib/examples/PRJLANR5L16B2014/input.js +0 -10
- package/lib/examples/PRJLANR5L16B2014/input.mjs +0 -577
- package/lib/examples/PRJLANR5L16B2014/input.ts +0 -577
- package/lib/examples/PRJLANR5L16B2014/loi.json +0 -369
- package/lib/examples/PRJLANR5L16B2014/meta.json +0 -31
- package/lib/examples/PRJLANR5L16B2014/motifs.json +0 -5
- package/lib/examples/PRJLANR5L16B2014/sommaire.json +0 -51
- package/lib/examples/PRJLANR5L16B2424/alineas.json +0 -44
- package/lib/examples/PRJLANR5L16B2424/input.d.ts +0 -2
- package/lib/examples/PRJLANR5L16B2424/input.js +0 -10
- package/lib/examples/PRJLANR5L16B2424/input.mjs +0 -322
- package/lib/examples/PRJLANR5L16B2424/input.ts +0 -322
- package/lib/examples/PRJLANR5L16B2424/loi.json +0 -74
- package/lib/examples/PRJLANR5L16B2424/loi_populated.json +0 -87
- package/lib/examples/PRJLANR5L16B2424/meta.json +0 -31
- package/lib/examples/PRJLANR5L16B2424/motifs.json +0 -4
- package/lib/examples/PRJLANR5L16B2424/motifs_populated.json +0 -5
- package/lib/examples/PRJLANR5L16B2424/sommaire.json +0 -3
- package/lib/examples/PRJLANR5L16B2462/input.d.ts +0 -2
- package/lib/examples/PRJLANR5L16B2462/input.js +0 -10
- package/lib/examples/PRJLANR5L16B2462/input.mjs +0 -1308
- package/lib/examples/PRJLANR5L16B2462/input.ts +0 -1308
- package/lib/examples/PRJLANR5L16B2462/loi.json +0 -74
- package/lib/examples/PRJLANR5L16B2462/loi_populated.json +0 -310
- package/lib/examples/PRJLANR5L16B2462/meta.json +0 -29
- package/lib/examples/PRJLANR5L16B2462/motifs.json +0 -6
- package/lib/examples/PRJLANR5L16B2462/motifs_populated.json +0 -6
- package/lib/examples/PRJLANR5L16B2462/sommaire.json +0 -50
- package/lib/examples/README.md +0 -3
- package/lib/raw_types/textes_loi.d.ts +0 -93
- package/lib/raw_types/textes_loi.js +0 -429
- package/lib/raw_types/textes_loi.mjs +0 -378
- package/lib/schemas/texte_loi/Alinea.json +0 -36
- package/lib/schemas/texte_loi/ExposeMotifs.json +0 -24
- package/lib/schemas/texte_loi/MetaDonnees.json +0 -126
- package/lib/schemas/texte_loi/ProjetLoi.json +0 -64
- package/lib/schemas/texte_loi/Sommaire.json +0 -48
- package/lib/schemas/texte_loi/TexteLoi.json +0 -225
- package/lib/schemas/texte_loi/TexteLoiPartiel.json +0 -237
- package/lib/scripts/process_textes_loi_dataset.d.ts +0 -7
- package/lib/scripts/process_textes_loi_dataset.js +0 -373
- package/lib/scripts/process_textes_loi_dataset.mjs +0 -239
- package/lib/types/textes_loi.d.ts +0 -94
- package/lib/types/textes_loi.js +0 -429
- package/lib/types/textes_loi.mjs +0 -378
package/lib/datasets.mjs
CHANGED
|
@@ -3,7 +3,6 @@ import assert from "assert";
|
|
|
3
3
|
import fs from "fs-extra";
|
|
4
4
|
import path from "path";
|
|
5
5
|
import { Legislature } from "./types/legislatures.mjs";
|
|
6
|
-
import { processTextesLoiDataset } from "./scripts/process_textes_loi_dataset.mjs";
|
|
7
6
|
export let DatasetStructure = /*#__PURE__*/function (DatasetStructure) {
|
|
8
7
|
DatasetStructure[DatasetStructure["SingleFile"] = 0] = "SingleFile";
|
|
9
8
|
DatasetStructure[DatasetStructure["SegmentedFiles"] = 1] = "SegmentedFiles";
|
|
@@ -19,8 +18,7 @@ export let EnabledDatasets = /*#__PURE__*/function (EnabledDatasets) {
|
|
|
19
18
|
EnabledDatasets[EnabledDatasets["Scrutins"] = 32] = "Scrutins";
|
|
20
19
|
EnabledDatasets[EnabledDatasets["Questions"] = 64] = "Questions";
|
|
21
20
|
EnabledDatasets[EnabledDatasets["ComptesRendusSeances"] = 128] = "ComptesRendusSeances";
|
|
22
|
-
EnabledDatasets[EnabledDatasets["
|
|
23
|
-
EnabledDatasets[EnabledDatasets["All"] = 511] = "All";
|
|
21
|
+
EnabledDatasets[EnabledDatasets["All"] = 255] = "All";
|
|
24
22
|
return EnabledDatasets;
|
|
25
23
|
}({});
|
|
26
24
|
|
|
@@ -675,23 +673,6 @@ export const datasets = {
|
|
|
675
673
|
structure: DatasetStructure.SegmentedFiles,
|
|
676
674
|
title: "Comptes rendus des séances publiques de la XVIème législature",
|
|
677
675
|
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/vp/syceronbrut/syseron.xml.zip"
|
|
678
|
-
}],
|
|
679
|
-
textesLoi: [{
|
|
680
|
-
filename: "Textes_Loi_XVI",
|
|
681
|
-
legislature: Legislature.Seize,
|
|
682
|
-
repairZip: repairForJsonSubdirectory,
|
|
683
|
-
structure: DatasetStructure.SegmentedFiles,
|
|
684
|
-
title: "Textes de loi de la XVIème législature",
|
|
685
|
-
download: processTextesLoiDataset,
|
|
686
|
-
clean: processTextesLoiDataset
|
|
687
|
-
}, {
|
|
688
|
-
filename: "Textes_Loi_XVII",
|
|
689
|
-
legislature: Legislature.DixSept,
|
|
690
|
-
repairZip: repairForJsonSubdirectory,
|
|
691
|
-
structure: DatasetStructure.SegmentedFiles,
|
|
692
|
-
title: "Textes de loi de la XVIIème législature",
|
|
693
|
-
download: processTextesLoiDataset,
|
|
694
|
-
clean: processTextesLoiDataset
|
|
695
676
|
}]
|
|
696
677
|
};
|
|
697
678
|
const directory2schema = {
|
|
@@ -771,4 +752,4 @@ export function getEnabledDatasets(categories) {
|
|
|
771
752
|
categories.map(datasetName => assert.notStrictEqual(EnabledDatasets[datasetName], undefined, `Unknown name of dataset: ${datasetName}`));
|
|
772
753
|
return categories.reduce((enabledDatasets, datasetName) => enabledDatasets | EnabledDatasets[datasetName], EnabledDatasets.None);
|
|
773
754
|
}
|
|
774
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVIYXNoIiwiYXNzZXJ0IiwiZnMiLCJwYXRoIiwiTGVnaXNsYXR1cmUiLCJwcm9jZXNzVGV4dGVzTG9pRGF0YXNldCIsIkRhdGFzZXRTdHJ1Y3R1cmUiLCJFbmFibGVkRGF0YXNldHMiLCJyZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5IiwiZGF0YXNldCIsImRhdGFEaXIiLCJ0YXJnZXREaXIiLCJqb2luIiwiZmlsZW5hbWUiLCJleGlzdHNTeW5jIiwicmVtb3ZlU3luYyIsIm1vdmVTeW5jIiwibWtkaXJTeW5jIiwiZGF0YXNldHMiLCJhY3RldXJzRXRPcmdhbmVzIiwiaWdub3JlRm9yV2ViIiwibGVnaXNsYXR1cmUiLCJEaXhTZXB0IiwicmVwYWlyWmlwIiwic3RydWN0dXJlIiwiU2VnbWVudGVkRmlsZXMiLCJ0aXRsZSIsInVybCIsIlNlaXplIiwiUXVpbnplIiwiUXVhdG9yemUiLCJTaW5nbGVGaWxlIiwiQWxsIiwicGF0aEV4aXN0c1N5bmMiLCJhZ2VuZGFzIiwiYW1lbmRlbWVudHMiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzIiwic2NydXRpbnMiLCJxdWVzdGlvbnMiLCJjb21wdGVzUmVuZHVzU2VhbmNlcyIsInRleHRlc0xvaSIsImRvd25sb2FkIiwiY2xlYW4iLCJkaXJlY3Rvcnkyc2NoZW1hIiwiZ2V0RGF0YXNldHMiLCJ2YWxpZERhdGFzZXQiLCJkaXIiLCJpbmNsdWRlcyIsImdldFNjaGVtYXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJkYXRhc2V0RGlyZWN0b3J5U2NoZW1hIiwiZGlyZWN0b3JpZXMiLCJyZXN1bHRzIiwiZGlyZWN0b3J5IiwicmUiLCJrZXlzIiwiUmVnRXhwIiwiZXhlYyIsInB1c2giLCJmaWxlRGF0YXNldFVybCIsIm1hdGNoIiwiZmlsZSIsImRpZmZVcHN0cmVhbSIsImRhdGFzZXRVcmwiLCJzdW0iLCJ1cGRhdGUiLCJkaWdlc3QiLCJ0b1N0cmluZyIsIm1hc3RlclVybCIsImZpbHRlckJ5TGVnaXNsYXR1cmUiLCJ1bmRlZmluZWQiLCJrZXkiLCJ2YWx1ZSIsImVudHJpZXMiLCJmaWx0ZXIiLCJnZXRFbmFibGVkRGF0YXNldHMiLCJjYXRlZ29yaWVzIiwibWFwIiwiZGF0YXNldE5hbWUiLCJub3RTdHJpY3RFcXVhbCIsInJlZHVjZSIsImVuYWJsZWREYXRhc2V0cyIsIk5vbmUiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0YXNldHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIlxuaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQgeyBMZWdpc2xhdHVyZSB9IGZyb20gXCIuL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5pbXBvcnQgeyBwcm9jZXNzVGV4dGVzTG9pRGF0YXNldCB9IGZyb20gXCIuL3NjcmlwdHMvcHJvY2Vzc190ZXh0ZXNfbG9pX2RhdGFzZXRcIlxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXQge1xuICBmaWxlbmFtZTogc3RyaW5nXG4gIGlnbm9yZUZvcldlYj86IGJvb2xlYW5cbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlXG4gIHJlcGFpclppcD86IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHZvaWRcbiAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlXG4gIHRpdGxlOiBzdHJpbmdcbiAgdXJsPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIGZ1bmN0aW9uIHRvIGRvd25sb2FkIHRoZSBkZXNpcmVkIGRhdGFzZXQuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCByZXNvbHZlcyBkYXRhIGRvd25sb2FkLlxuICAgKi9cbiAgZG93bmxvYWQ/OiAob3B0aW9ucz86IGFueSkgPT4gUHJvbWlzZTxudW1iZXIgfCB2b2lkPlxuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBmdW5jdGlvbiB0byBjbGVhbiB0aGUgZGVzaXJlZCBkYXRhc2V0LlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggcmVzb2x2ZXMgZGF0YSBjbGVhbi5cbiAgICovXG4gIGNsZWFuPzogKG9wdGlvbnM/OiBhbnkpID0+IFByb21pc2U8bnVtYmVyIHwgdm9pZD5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhc2V0cyB7XG4gIGFjdGV1cnNFdE9yZ2FuZXM6IERhdGFzZXRbXVxuICBhZ2VuZGFzOiBEYXRhc2V0W11cbiAgYW1lbmRlbWVudHM6IERhdGFzZXRbXVxuICBkb3NzaWVyc0xlZ2lzbGF0aWZzOiBEYXRhc2V0W11cbiAgc2NydXRpbnM6IERhdGFzZXRbXVxuICBxdWVzdGlvbnM6IERhdGFzZXRbXVxuICBjb21wdGVzUmVuZHVzU2VhbmNlczogRGF0YXNldFtdXG4gIHRleHRlc0xvaTogRGF0YXNldFtdXG59XG5cbmV4cG9ydCBlbnVtIERhdGFzZXRTdHJ1Y3R1cmUge1xuICBTaW5nbGVGaWxlLFxuICBTZWdtZW50ZWRGaWxlcyxcbn1cblxuZXhwb3J0IGVudW0gRW5hYmxlZERhdGFzZXRzIHtcbiAgTm9uZSA9IDAsXG4gIEFjdGV1cnNFdE9yZ2FuZXMgPSAxIDw8IDAsXG4gIEFnZW5kYXMgPSAxIDw8IDEsXG4gIEFtZW5kZW1lbnRzID0gMSA8PCAyLFxuICBEb3NzaWVyc0xlZ2lzbGF0aWZzID0gMSA8PCAzLFxuICBQaG90b3MgPSAxIDw8IDQsXG4gIFNjcnV0aW5zID0gMSA8PCA1LFxuICBRdWVzdGlvbnMgPSAxIDw8IDYsXG4gIENvbXB0ZXNSZW5kdXNTZWFuY2VzID0gMSA8PCA3LFxuICBUZXh0ZXNMb2kgPSAxIDw8IDgsXG4gIEFsbCA9IEFjdGV1cnNFdE9yZ2FuZXMgfFxuICAgIEFnZW5kYXMgfFxuICAgIEFtZW5kZW1lbnRzIHxcbiAgICBEb3NzaWVyc0xlZ2lzbGF0aWZzIHxcbiAgICBQaG90b3MgfFxuICAgIFNjcnV0aW5zIHxcbiAgICBRdWVzdGlvbnMgfFxuICAgIENvbXB0ZXNSZW5kdXNTZWFuY2VzIHxcbiAgICBUZXh0ZXNMb2ksXG59XG5cbi8vIFRoZSB6aXAgZmlsZXMgKG5hbWVkIE5BTUUuanNvbi56aXApIHVzdWFsbHkgY29udGFpbiBhIHNpbmdsZSBzdWJmb2xkZXIgbmFtZWQgXCJqc29uXCJcbi8vIGNvbnRhaW5pbmcgdGhlIGFjdHVhbCBjb250ZW50c1xuLy8gV2UnZCByYXRoZXIgcmVuYW1lIHRoZSBmb2xkZXIgTkFNRS5qc29uXG5mdW5jdGlvbiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5KGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykge1xuICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICB9XG5cbiAgaWYgKGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSkpIHtcbiAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gIH0gZWxzZSB7XG4gICAgZnMubWtkaXJTeW5jKHRhcmdldERpcilcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGF0YXNldHM6IERhdGFzZXRzID0ge1xuICBhY3RldXJzRXRPcmdhbmVzOiBbXG4gICAge1xuICAgICAgLy8gQU1PMTAgKFhWSUkpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBhY3RpZnNcbiAgICAgIC8vICogYXZlYyB0b3VzIGxlcyBtYW5kYXRzIGVuIGNvdXJzXG4gICAgICAvLyAqIHkgY29tcHJpcyBhdmVjIGxldXIgcGFydGkgcG9saXRpcXVlICh0eXBlT3JnYW5lOiBcIlBBUlBPTFwiKVxuICAgICAgLy8gKiBtYWlzIHNhbnMgbGVzIG1hbmRhdHMgYWNoZXbDqXMgKHkgY29tcHJpcyBkYW5zIGNldHRlIGzDqWdpc2xhdHVyZSlcbiAgICAgIC8vXG4gICAgICAvLyBPcmdhbmVzIDpcbiAgICAgIC8vICogQ29udGllbnQgc2V1bGVtZW50IGxlcyBvcmdhbmVzIGNvcnJlc3BvbmRhbnRzIGF1eCBtYW5kYXRzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGUgeHNpVHlwZSBkZSBsJ29yZ2FuZVxuICAgICAgLy8gKiBhdmVjIGRlcyBjb21taXNzaW9ucyBzw6luYXRvcmlhbGVzIChwZXJtYW5lbnRlcyBldCBzcMOpY2lhbGVzKSBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBkw6lsw6lnYXRpb25zIHPDqW5hdG9yaWFsZXMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZ3JvdXBlcyBzw6luYXRvcmlhdXggZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgbWluaXN0w6hyZXMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBsZXMgUHLDqXNpZGVuY2VzIGRlIGxhIFLDqXB1YmxpcXVlICh5IGNvbXByaXMgU2Fya296eSlcbiAgICAgIC8vICogYXZlYyBsZSBDb25zZWlsIGNvbnN0aXR1dGlvbm5lbFxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgZXN0IHVuIHNvdXMtZW5zZW1ibGUgw6AgdG91cyBsZXMgbml2ZWF1eCBkdSBmaWNoaWVyIEFNTzIwXG4gICAgICAvLyAocXVpIGVzdCBsdWkgbcOqbWUgdW4gc291cy1lbnNlbWJsZSBkZSBsJ0FNTzMwKS5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBBTU8yMCBvdSBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMTBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19YVklJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5EaXhTZXB0LFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiRMOpcHV0w6lzIGFjdGlmcyBldCBvcmdhbmVzIGRlIGxhIFhWSUnDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTcvYW1vL2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXMvQU1PMTBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMTAgKFhWSSlcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGFjdGlmc1xuICAgICAgLy8gKiBhdmVjIHRvdXMgbGVzIG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogeSBjb21wcmlzIGF2ZWMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXMgbWFuZGF0cyBhY2hldsOpcyAoeSBjb21wcmlzIGRhbnMgY2V0dGUgbMOpZ2lzbGF0dXJlKVxuICAgICAgLy9cbiAgICAgIC8vIE9yZ2FuZXMgOlxuICAgICAgLy8gKiBDb250aWVudCBzZXVsZW1lbnQgbGVzIG9yZ2FuZXMgY29ycmVzcG9uZGFudHMgYXV4IG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBsZSB4c2lUeXBlIGRlIGwnb3JnYW5lXG4gICAgICAvLyAqIGF2ZWMgZGVzIGNvbW1pc3Npb25zIHPDqW5hdG9yaWFsZXMgKHBlcm1hbmVudGVzIGV0IHNww6ljaWFsZXMpIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGTDqWzDqWdhdGlvbnMgc8OpbmF0b3JpYWxlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBncm91cGVzIHPDqW5hdG9yaWF1eCBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBtaW5pc3TDqHJlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlcyBQcsOpc2lkZW5jZXMgZGUgbGEgUsOpcHVibGlxdWUgKHkgY29tcHJpcyBTYXJrb3p5KVxuICAgICAgLy8gKiBhdmVjIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgdW4gc291cy1lbnNlbWJsZSDDoCB0b3VzIGxlcyBuaXZlYXV4IGR1IGZpY2hpZXIgQU1PMjBcbiAgICAgIC8vIChxdWkgZXN0IGx1aSBtw6ptZSB1biBzb3VzLWVuc2VtYmxlIGRlIGwnQU1PMzApLlxuICAgICAgLy8gSWwgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIEFNTzIwIG91IGwnQU1PMzAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8xMF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX1hWSS5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L2Ftby9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzL0FNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzEwIChYVilcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGFjdGlmc1xuICAgICAgLy8gKiBhdmVjIHRvdXMgbGVzIG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogeSBjb21wcmlzIGF2ZWMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXMgbWFuZGF0cyBhY2hldsOpcyAoeSBjb21wcmlzIGRhbnMgY2V0dGUgbMOpZ2lzbGF0dXJlKVxuICAgICAgLy9cbiAgICAgIC8vIE9yZ2FuZXMgOlxuICAgICAgLy8gKiBDb250aWVudCBzZXVsZW1lbnQgbGVzIG9yZ2FuZXMgY29ycmVzcG9uZGFudHMgYXV4IG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBsZSB4c2lUeXBlIGRlIGwnb3JnYW5lXG4gICAgICAvLyAqIGF2ZWMgZGVzIGNvbW1pc3Npb25zIHPDqW5hdG9yaWFsZXMgKHBlcm1hbmVudGVzIGV0IHNww6ljaWFsZXMpIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGTDqWzDqWdhdGlvbnMgc8OpbmF0b3JpYWxlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBncm91cGVzIHPDqW5hdG9yaWF1eCBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBtaW5pc3TDqHJlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlcyBQcsOpc2lkZW5jZXMgZGUgbGEgUsOpcHVibGlxdWUgKHkgY29tcHJpcyBTYXJrb3p5KVxuICAgICAgLy8gKiBhdmVjIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgdW4gc291cy1lbnNlbWJsZSDDoCB0b3VzIGxlcyBuaXZlYXV4IGR1IGZpY2hpZXIgQU1PMjBcbiAgICAgIC8vIChxdWkgZXN0IGx1aSBtw6ptZSB1biBzb3VzLWVuc2VtYmxlIGRlIGwnQU1PMzApLlxuICAgICAgLy8gSWwgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIEFNTzIwIG91IGwnQU1PMzAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8xMF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXMvQU1PMTBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMjAgKFhWSUkpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBkZSBsYSBsw6lnaXNsYXR1cmUsIGFjdGlmcyBvdSBub24gKGludmFsaWTDqXMsIGV0YyksIGxlcyBzw6luYXRldXJzIGFjdHVlbHNcbiAgICAgIC8vIFBvdXIgbGVzIGTDqXB1dMOpcyA6XG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXVycyBtYW5kYXRzIGRlIGxhIGzDqWdpc2xhdHVyZVxuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzICAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXMgKHF1aSBzb250IGRhbnMgQU1PNDApXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgdG91cyBsZXMgb3JnYW5lcyByw6lmw6lyZW5jw6lzIHBhciBsZXMgbWFuZGF0c1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8zMC5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWFZJSS5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuRGl4U2VwdCxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkFjdGV1cnMgZXQgb3JnYW5lcyBkZSBsYSBYVklJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE3L2Ftby9kZXB1dGVzX3NlbmF0ZXVyc19taW5pc3RyZXNfbGVnaXNsYXR1cmUvQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzIwIChYVkkpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBkZSBsYSBsw6lnaXNsYXR1cmUsIGFjdGlmcyBvdSBub24gKGludmFsaWTDqXMsIGV0YyksIGxlcyBzw6luYXRldXJzIGFjdHVlbHNcbiAgICAgIC8vIFBvdXIgbGVzIGTDqXB1dMOpcyA6XG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXVycyBtYW5kYXRzIGRlIGxhIGzDqWdpc2xhdHVyZVxuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzICAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXMgKHF1aSBzb250IGRhbnMgQU1PNDApXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgdG91cyBsZXMgb3JnYW5lcyByw6lmw6lyZW5jw6lzIHBhciBsZXMgbWFuZGF0c1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8zMC5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkFjdGV1cnMgZXQgb3JnYW5lcyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL2RlcHV0ZXNfc2VuYXRldXJzX21pbmlzdHJlc19sZWdpc2xhdHVyZS9BTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMjAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgZGUgbGEgbMOpZ2lzbGF0dXJlLCBhY3RpZnMgb3Ugbm9uIChpbnZhbGlkw6lzLCBldGMpLCBsZXMgc8OpbmF0ZXVycyBhY3R1ZWxzXG4gICAgICAvLyBQb3VyIGxlcyBkw6lwdXTDqXMgOlxuICAgICAgLy8gKiBhdmVjIHRvdXMgbGV1cnMgbWFuZGF0cyBkZSBsYSBsw6lnaXNsYXR1cmVcbiAgICAgIC8vICogeSBjb21wcmlzIGxlcyBtYW5kYXRzIGFjaGV2w6lzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXVycyBwYXJ0aXMgcG9saXRpcXVlcyAgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXMgbWFuZGF0cyBkZXMgbMOpZ2lzbGF0dXJlcyBwcsOpY8OpZGVudGVzIChxdWkgc29udCBkYW5zIEFNTzQwKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IHRvdXMgbGVzIG9yZ2FuZXMgcsOpZsOpcmVuY8OpcyBwYXIgbGVzIG1hbmRhdHNcbiAgICAgIC8vICogYXZlYyBsZSB4c2lUeXBlIGRlIGwnb3JnYW5lXG4gICAgICAvLyAqIGF2ZWMgZGVzIGNvbW1pc3Npb25zIHPDqW5hdG9yaWFsZXMgKHBlcm1hbmVudGVzIGV0IHNww6ljaWFsZXMpIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGTDqWzDqWdhdGlvbnMgc8OpbmF0b3JpYWxlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBncm91cGVzIHPDqW5hdG9yaWF1eCBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBtaW5pc3TDqHJlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlcyBQcsOpc2lkZW5jZXMgZGUgbGEgUsOpcHVibGlxdWUgKHkgY29tcHJpcyBTYXJrb3p5KVxuICAgICAgLy8gKiBhdmVjIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgdW4gc291cy1lbnNlbWJsZSDDoCB0b3VzIGxlcyBuaXZlYXV4IGR1IGZpY2hpZXIgQU1PMzAuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzIwX2RlcF9zZW5fbWluX3RvdXNfbWFuZGF0c19ldF9vcmdhbmVzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBY3RldXJzIGV0IG9yZ2FuZXMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL2RlcHV0ZXNfc2VuYXRldXJzX21pbmlzdHJlc19sZWdpc2xhdHVyZS9BTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMjAgKFhJVilcbiAgICAgIC8vXG4gICAgICAvLyBDb21tZSBBTU8yMCAoWFYpIG1haXMgcG91ciBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVxuICAgICAgLy8gVG91cyBsZXMgYWN0ZXVycyBzYXVmIHVuIChQQTQyOTg5Mikgc29udCBwcsOpc2VudHMgZW4gcGx1cyDDoCBqb3VyIGRhbnMgQU1PMzAuXG4gICAgICAvLyBDZXQgYWN0ZXVyIFBBNDI5ODkyIChhbmNpZW5uZSBTw6luYXRyaWNlKSBuJ2VzdCBwcsOpc2VudCBkYW5zIGF1Y3VuIGRlcyBhdXRyZXNcbiAgICAgIC8vIGZpY2hpZXJzIEFNTy5cbiAgICAgIC8vIFRvdXMgbGVzIG9yZ2FuZXMgc29udCBwcsOpc2VudHMgZW4gcGx1cyBjb21wbGV0cyBkYW5zIEFNTzMwLlxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgZXN0IGRvbmMgw6AgdW4gZMOpdGFpbCBwcsOqdCAoUEE0Mjk4OTIpIHVuIHNvdXMtZW5zZW1ibGUgZCdBTU8zMC5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIHF1YXNpbWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lc19YSVYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1YXRvcnplLFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGUsXG4gICAgICB0aXRsZTogXCJBY3RldXJzIGV0IG9yZ2FuZXMgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L2Ftby9kZXB1dGVzX3NlbmF0ZXVyc19taW5pc3RyZXNfbGVnaXNsYXR1cmVzX1hJVi9BTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lc19YSVYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzMwIChYVklJKVxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgY29udGllbnQgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzLlxuICAgICAgLy8gQydlc3QgdW4gc3VyLWVuc2VtYmxlIGRlcyBmaWNoaWVycyBBTU8yMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkFsbCxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOlxuICAgICAgICBcIkhpc3RvcmlxdWUgZGUgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzIGRlcHVpcyBsYSBYScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNy9hbW8vdG91c19hY3RldXJzX21hbmRhdHNfb3JnYW5lc194aV9sZWdpc2xhdHVyZS9BTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICAvLyB7XG4gICAgLy8gICAvLyBBTU8zMCAoWFZJKVxuICAgIC8vICAgLy9cbiAgICAvLyAgIC8vIENlIGZpY2hpZXIgY29udGllbnQgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzLlxuICAgIC8vICAgLy8gQydlc3QgdW4gc3VyLWVuc2VtYmxlIGRlcyBmaWNoaWVycyBBTU8yMC5cbiAgICAvLyAgIGZpbGVuYW1lOiBcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuanNvblwiLFxuICAgIC8vICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkFsbCxcbiAgICAvLyAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAvLyAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAvLyAgIHRpdGxlOlxuICAgIC8vICAgICBcIkhpc3RvcmlxdWUgZGUgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzIGRlcHVpcyBsYSBYScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgLy8gICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9hbW8vdG91c19hY3RldXJzX21hbmRhdHNfb3JnYW5lc194aV9sZWdpc2xhdHVyZS9BTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlLmpzb24uemlwXCIsXG4gICAgLy8gfSxcbiAgICAvLyB7XG4gICAgLy8gICAvLyBBTU8zMCAoWFYpXG4gICAgLy8gICAvL1xuICAgIC8vICAgLy8gQ2UgZmljaGllciBjb250aWVudCB0b3VzIGxlcyBhY3RldXJzIGV0IG9yZ2FuZXMuXG4gICAgLy8gICAvLyBDJ2VzdCB1biBzdXItZW5zZW1ibGUgZGVzIGZpY2hpZXJzIEFNTzIwLlxuICAgIC8vICAgZmlsZW5hbWU6IFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS5qc29uXCIsXG4gICAgLy8gICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuQWxsLFxuICAgIC8vICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgLy8gICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgIC8vICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgLy8gICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgIC8vICAgfSxcbiAgICAvLyAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAvLyAgIHRpdGxlOlxuICAgIC8vICAgICBcIkhpc3RvcmlxdWUgZGUgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzIGRlcHVpcyBsYSBYScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgLy8gICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vdG91c19hY3RldXJzX21hbmRhdHNfb3JnYW5lc194aV9sZWdpc2xhdHVyZS9BTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlLmpzb24uemlwXCIsXG4gICAgLy8gfSxcbiAgICB7XG4gICAgICAvLyBBTU80MCAoWFZJSSlcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGFjdGlmcyAobGVzIG3Dqm1lcyBxdSdBTU8yMClcbiAgICAgIC8vICogYXZlYyBwcmVzcXVlIHRvdXMgbGV1cnMgbWFuZGF0c1xuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXMgZXQgY2V1eCBkZXMgbMOpZ2lzbGF0dXJlcyBwcsOpY8OpZGVudGVzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXVycyBwYXJ0aXMgcG9saXRpcXVlcyBwcsOpY8OpZGVudHNcbiAgICAgIC8vICogbWFpcyBzYW5zIGxldXIgcGFydGkgcG9saXRpcXVlIGFjdHVlbCAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBiZWF1Y291cCBkJ29yZ2FuZXMgcsOpZsOpcmVuY8OpcywgeSBjb21wcmlzIGNldXggZGVzIGzDqWdpc2xhdHVyZXNcbiAgICAgIC8vIHByw6ljw6lkZW50ZXNcbiAgICAgIC8vICogbWFpcyBpbCBtYW5xdWUgbGUgeHNpVHlwZSBkZXMgb3JnYW5lc1xuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGVzIG9yZ2FuZXMgc8OpbmF0b3JpYXV4XG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZXMgbWluaXN0w6hyZXNcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxhIFByw6lzaWRlbmNlIGRlIGxhIFLDqXB1YmxpcXVlXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZSBDb25zZWlsIGNvbnN0aXR1dGlvbm5lbFxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMsIGNlIGTDqXDDtHQgZXN0IHVuIHNvdXMtZW5zZW1ibGUgc3RyaWN0IGRlIEFNTzMwIDpcbiAgICAgIC8vIElsIGEgbW9pbnMgZCdhY3RldXJzIGV0IGlsIHNvbnQgbW9pbnMgY29tcGxldHMuXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgb3JnYW5lcyA6XG4gICAgICAvLyBRdWFuZCBsJ29yZ2FuZSBlc3QgYXVzc2kgcHLDqXNlbnQgZGFucyBBTU8zMCwgaWwgdmF1dCBtaWV1eCBwcmVuZHJlIGNlbHVpXG4gICAgICAvLyBkJ0FNTzMwLCBjYXIgaWwgY29udGllbnQgbGUgeHNpVHlwZSAoYydlc3QgbGEgc2V1bGUgZGlmZsOpcmVuY2Ugc2VtYmxlLXQtaSkuXG4gICAgICAvLyBTaW5vbiwgaWwgZmF1dCBsZSBwcmVuZHJlIHNldWxlbWVudCBzaSBvbiBlc3QgaW50w6lyZXNzw6kgcGFyIGxlcyBsw6lnaXNsYXR1cmVzXG4gICAgICAvLyBwcsOpY8OpZGVudGVzLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PNDBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzX1hWSUkuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkRpeFNlcHQsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5ta2RpclN5bmModGFyZ2V0RGlyKVxuICAgICAgICBpZiAoZnMucGF0aEV4aXN0c1N5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwiYWN0ZXVyXCIpKSkge1xuICAgICAgICAgIC8vIE5vdGU7IExlIHLDqXBlcnRvaXJlIGFjdGV1ciBwZXV0IGRpc3BhcmHDrnRyZSBlbiBmaW4gZGUgbMOpZ2lzbGF0dXJlXG4gICAgICAgICAgLy8gcXVhbmQgbGVzIG1hbmRhdHMgZGVzIGTDqXB1dMOpcyBzJ2ludGVycm9tcGVudC5cbiAgICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJvcmdhbmVcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJvcmdhbmVcIiksXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFZJScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNy9hbW8vZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzL0FNTzQwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PNDAgKFhWSSlcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGFjdGlmcyAobGVzIG3Dqm1lcyBxdSdBTU8yMClcbiAgICAgIC8vICogYXZlYyBwcmVzcXVlIHRvdXMgbGV1cnMgbWFuZGF0c1xuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXMgZXQgY2V1eCBkZXMgbMOpZ2lzbGF0dXJlcyBwcsOpY8OpZGVudGVzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXVycyBwYXJ0aXMgcG9saXRpcXVlcyBwcsOpY8OpZGVudHNcbiAgICAgIC8vICogbWFpcyBzYW5zIGxldXIgcGFydGkgcG9saXRpcXVlIGFjdHVlbCAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBiZWF1Y291cCBkJ29yZ2FuZXMgcsOpZsOpcmVuY8OpcywgeSBjb21wcmlzIGNldXggZGVzIGzDqWdpc2xhdHVyZXNcbiAgICAgIC8vIHByw6ljw6lkZW50ZXNcbiAgICAgIC8vICogbWFpcyBpbCBtYW5xdWUgbGUgeHNpVHlwZSBkZXMgb3JnYW5lc1xuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGVzIG9yZ2FuZXMgc8OpbmF0b3JpYXV4XG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZXMgbWluaXN0w6hyZXNcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxhIFByw6lzaWRlbmNlIGRlIGxhIFLDqXB1YmxpcXVlXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZSBDb25zZWlsIGNvbnN0aXR1dGlvbm5lbFxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMsIGNlIGTDqXDDtHQgZXN0IHVuIHNvdXMtZW5zZW1ibGUgc3RyaWN0IGRlIEFNTzMwIDpcbiAgICAgIC8vIElsIGEgbW9pbnMgZCdhY3RldXJzIGV0IGlsIHNvbnQgbW9pbnMgY29tcGxldHMuXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgb3JnYW5lcyA6XG4gICAgICAvLyBRdWFuZCBsJ29yZ2FuZSBlc3QgYXVzc2kgcHLDqXNlbnQgZGFucyBBTU8zMCwgaWwgdmF1dCBtaWV1eCBwcmVuZHJlIGNlbHVpXG4gICAgICAvLyBkJ0FNTzMwLCBjYXIgaWwgY29udGllbnQgbGUgeHNpVHlwZSAoYydlc3QgbGEgc2V1bGUgZGlmZsOpcmVuY2Ugc2VtYmxlLXQtaSkuXG4gICAgICAvLyBTaW5vbiwgaWwgZmF1dCBsZSBwcmVuZHJlIHNldWxlbWVudCBzaSBvbiBlc3QgaW50w6lyZXNzw6kgcGFyIGxlcyBsw6lnaXNsYXR1cmVzXG4gICAgICAvLyBwcsOpY8OpZGVudGVzLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PNDBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzX1hWSS5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5ta2RpclN5bmModGFyZ2V0RGlyKVxuICAgICAgICBpZiAoZnMucGF0aEV4aXN0c1N5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwiYWN0ZXVyXCIpKSkge1xuICAgICAgICAgIC8vIE5vdGU7IExlIHLDqXBlcnRvaXJlIGFjdGV1ciBwZXV0IGRpc3BhcmHDrnRyZSBlbiBmaW4gZGUgbMOpZ2lzbGF0dXJlXG4gICAgICAgICAgLy8gcXVhbmQgbGVzIG1hbmRhdHMgZGVzIGTDqXB1dMOpcyBzJ2ludGVycm9tcGVudC5cbiAgICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJvcmdhbmVcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJvcmdhbmVcIiksXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L2Ftby9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXMvQU1PNDBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU80MCAoWFYpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBhY3RpZnMgKGxlcyBtw6ptZXMgcXUnQU1PMjApXG4gICAgICAvLyAqIGF2ZWMgcHJlc3F1ZSB0b3VzIGxldXJzIG1hbmRhdHNcbiAgICAgIC8vICogeSBjb21wcmlzIGxlcyBtYW5kYXRzIGFjaGV2w6lzIGV0IGNldXggZGVzIGzDqWdpc2xhdHVyZXMgcHLDqWPDqWRlbnRlc1xuICAgICAgLy8gKiB5IGNvbXByaXMgbGV1cnMgcGFydGlzIHBvbGl0aXF1ZXMgcHLDqWPDqWRlbnRzXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXVyIHBhcnRpIHBvbGl0aXF1ZSBhY3R1ZWwgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgYmVhdWNvdXAgZCdvcmdhbmVzIHLDqWbDqXJlbmPDqXMsIHkgY29tcHJpcyBjZXV4IGRlcyBsw6lnaXNsYXR1cmVzXG4gICAgICAvLyBwcsOpY8OpZGVudGVzXG4gICAgICAvLyAqIG1haXMgaWwgbWFucXVlIGxlIHhzaVR5cGUgZGVzIG9yZ2FuZXNcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlcyBvcmdhbmVzIHPDqW5hdG9yaWF1eFxuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGVzIG1pbmlzdMOocmVzXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsYSBQcsOpc2lkZW5jZSBkZSBsYSBSw6lwdWJsaXF1ZVxuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBhY3RldXJzLCBjZSBkw6lww7R0IGVzdCB1biBzb3VzLWVuc2VtYmxlIHN0cmljdCBkZSBBTU8zMCA6XG4gICAgICAvLyBJbCBhIG1vaW5zIGQnYWN0ZXVycyBldCBpbCBzb250IG1vaW5zIGNvbXBsZXRzLlxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIG9yZ2FuZXMgOlxuICAgICAgLy8gUXVhbmQgbCdvcmdhbmUgZXN0IGF1c3NpIHByw6lzZW50IGRhbnMgQU1PMzAsIGlsIHZhdXQgbWlldXggcHJlbmRyZSBjZWx1aVxuICAgICAgLy8gZCdBTU8zMCwgY2FyIGlsIGNvbnRpZW50IGxlIHhzaVR5cGUgKGMnZXN0IGxhIHNldWxlIGRpZmbDqXJlbmNlIHNlbWJsZS10LWkpLlxuICAgICAgLy8gU2lub24sIGlsIGZhdXQgbGUgcHJlbmRyZSBzZXVsZW1lbnQgc2kgb24gZXN0IGludMOpcmVzc8OpIHBhciBsZXMgbMOpZ2lzbGF0dXJlc1xuICAgICAgLy8gcHLDqWPDqWRlbnRlcy5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzQwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlc19YVi5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVpbnplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubWtkaXJTeW5jKHRhcmdldERpcilcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICApXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkTDqXB1dMOpcyBhY3RpZnMgZXQgb3JnYW5lcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzL0FNTzQwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PNTAgKFhWSUkpXG4gICAgICAvL1xuICAgICAgLy8gQXR0ZW50aW9uLCBjZSBmaWNoaWVyIG4nZXN0IHBhcyBtaXMgw6Agam91ciByw6lndWxpw6hyZW1lbnQgIVxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZSBhdXggbWFuZGF0c1xuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIG9yZ2FuZXMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZVxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAsXG4gICAgICAvLyBkb250IGlsIGVzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZS5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzUwX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXNfWFZJSS5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuRGl4U2VwdCxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6XG4gICAgICAgIFwiQWN0ZXVycywgbWFuZGF0cyBldCBvcmdhbmVzIGRlIGxhIFhWSUnDqG1lIGzDqWdpc2xhdHVyZSAoZmljaGllcnMgc8OpcGFyw6lzLCB5IGNvbXByaXMgbWFuZGF0cylcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE3L2Ftby9hY3RldXJzX21hbmRhdHNfb3JnYW5lc19kaXZpc2VzL0FNTzUwX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzUwIChYVkkpXG4gICAgICAvL1xuICAgICAgLy8gQXR0ZW50aW9uLCBjZSBmaWNoaWVyIG4nZXN0IHBhcyBtaXMgw6Agam91ciByw6lndWxpw6hyZW1lbnQgIVxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZSBhdXggbWFuZGF0c1xuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIG9yZ2FuZXMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZVxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAsXG4gICAgICAvLyBkb250IGlsIGVzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZS5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzUwX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6XG4gICAgICAgIFwiQWN0ZXVycywgbWFuZGF0cyBldCBvcmdhbmVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlIChmaWNoaWVycyBzw6lwYXLDqXMsIHkgY29tcHJpcyBtYW5kYXRzKVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXMvQU1PNTBfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PNTAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIEF0dGVudGlvbiwgY2UgZmljaGllciBuJ2VzdCBwYXMgbWlzIMOgIGpvdXIgcsOpZ3VsacOocmVtZW50ICFcbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBhY3RldXJzIDpcbiAgICAgIC8vICogYydlc3QgdW4gc291cyBlbnNlbWJsZSBvYnNvbMOodGUgZCdBTU8zMFxuICAgICAgLy8gKiBpbCBtYW5xdWUgbGVzIHhzaVR5cGUgYXV4IG1hbmRhdHNcbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBvcmdhbmVzIDpcbiAgICAgIC8vICogYydlc3QgdW4gc291cyBlbnNlbWJsZSBvYnNvbMOodGUgZCdBTU8zMFxuICAgICAgLy8gKiBpbCBtYW5xdWUgbGVzIHhzaVR5cGVcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLFxuICAgICAgLy8gZG9udCBpbCBlc3QgdW4gc291cyBlbnNlbWJsZSBvYnNvbMOodGUuXG4gICAgICBmaWxlbmFtZTogXCJBTU81MF9hY3RldXJzX21hbmRhdHNfb3JnYW5lc19kaXZpc2VzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5ta2RpclN5bmModGFyZ2V0RGlyKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJtYW5kYXRcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJtYW5kYXRcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICApXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOlxuICAgICAgICBcIkFjdGV1cnMsIG1hbmRhdHMgZXQgb3JnYW5lcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlIChmaWNoaWVycyBzw6lwYXLDqXMsIHkgY29tcHJpcyBtYW5kYXRzKVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXMvQU1PNTBfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIGFnZW5kYXM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBZ2VuZGFfWFZJSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuRGl4U2VwdCxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkFnZW5kYSBkZSBsYSBYVklJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE3L3ZwL3JldW5pb25zL0FnZW5kYS5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQWdlbmRhX1hWSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBZ2VuZGEgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L3ZwL3JldW5pb25zL0FnZW5kYS5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQWdlbmRhX1hWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBZ2VuZGEgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvdnAvcmV1bmlvbnMvQWdlbmRhX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBZ2VuZGFfWElWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgICAgdGl0bGU6IFwiQWdlbmRhIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC92cC9yZXVuaW9ucy9BZ2VuZGFfWElWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgXSxcbiAgYW1lbmRlbWVudHM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBbWVuZGVtZW50c19YVklJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5EaXhTZXB0LFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQW1lbmRlbWVudHMgZGUgbGEgWFZJScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNy9sb2kvYW1lbmRlbWVudHNfZGl2X2xlZ2lzL0FtZW5kZW1lbnRzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBbWVuZGVtZW50c19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQW1lbmRlbWVudHMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L2xvaS9hbWVuZGVtZW50c19kaXZfbGVnaXMvQW1lbmRlbWVudHMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkFtZW5kZW1lbnRzX1hWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBbWVuZGVtZW50cyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9sb2kvYW1lbmRlbWVudHNfbGVnaXMvQW1lbmRlbWVudHNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIC8vIHtcbiAgICAvLyAgIGZpbGVuYW1lOiBcIkFtZW5kZW1lbnRzX1hJVi5qc29uXCIsXG4gICAgLy8gICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgLy8gICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgLy8gICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAvLyAgIHRpdGxlOiBcIkFtZW5kZW1lbnRzIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgLy8gICB1cmw6XG4gICAgLy8gICAgIFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC9sb2kvYW1lbmRlbWVudHNfbGVnaXNfWElWL0FtZW5kZW1lbnRzX1hJVi5qc29uLnppcFwiLFxuICAgIC8vIH0sXG4gIF0sXG4gIGRvc3NpZXJzTGVnaXNsYXRpZnM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YVklJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5EaXhTZXB0LFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiRG9zc2llcnMgbMOpZ2lzbGF0aWZzIGRlIGxhIFhWSUnDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTcvbG9pL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzL0Rvc3NpZXJzX0xlZ2lzbGF0aWZzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiRG9zc2llcnMgbMOpZ2lzbGF0aWZzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9sb2kvZG9zc2llcnNfbGVnaXNsYXRpZnMvRG9zc2llcnNfTGVnaXNsYXRpZnMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEb3NzaWVycyBsw6lnaXNsYXRpZnMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvbG9pL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzL0Rvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YSVYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1YXRvcnplLFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGUsXG4gICAgICB0aXRsZTogXCJEb3NzaWVycyBsw6lnaXNsYXRpZnMgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L2xvaS9kb3NzaWVyc19sZWdpc2xhdGlmcy9Eb3NzaWVyc19MZWdpc2xhdGlmc19YSVYuanNvbi56aXBcIixcbiAgICB9LFxuICBdLFxuICBzY3J1dGluczogW1xuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIlNjcnV0aW5zX1hWSUkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkRpeFNlcHQsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJTY3J1dGlucyBkZSBsYSBYVklJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE3L2xvaS9zY3J1dGlucy9TY3J1dGlucy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiU2NydXRpbnNfWFZJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlNjcnV0aW5zIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9sb2kvc2NydXRpbnMvU2NydXRpbnMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIlNjcnV0aW5zX1hWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJTY3J1dGlucyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9sb2kvc2NydXRpbnMvU2NydXRpbnNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIlNjcnV0aW5zX1hJVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAgIHRpdGxlOiBcIlNjcnV0aW5zIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC9sb2kvc2NydXRpbnMvU2NydXRpbnNfWElWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgXSxcbiAgcXVlc3Rpb25zOiBbXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiUXVlc3Rpb25zX2Vjcml0ZXNfWFZJSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuRGl4U2VwdCxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlF1ZXN0aW9ucyDDqWNyaXRlcyBkZSBsYSBYVklJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE3L3F1ZXN0aW9ucy9xdWVzdGlvbnNfZWNyaXRlcy9RdWVzdGlvbnNfZWNyaXRlcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiUXVlc3Rpb25zX2Vjcml0ZXNfWFZJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlF1ZXN0aW9ucyDDqWNyaXRlcyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvcXVlc3Rpb25zL3F1ZXN0aW9uc19lY3JpdGVzL1F1ZXN0aW9uc19lY3JpdGVzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJRdWVzdGlvbnNfZ291dmVybmVtZW50X1hWSUkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkRpeFNlcHQsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJRdWVzdGlvbnMgYXUgZ291dmVybmVtZW50IGRlIGxhIFhWSUnDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTcvcXVlc3Rpb25zL3F1ZXN0aW9uc19nb3V2ZXJuZW1lbnQvUXVlc3Rpb25zX2dvdXZlcm5lbWVudC5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiUXVlc3Rpb25zX2dvdXZlcm5lbWVudF9YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiUXVlc3Rpb25zIGF1IGdvdXZlcm5lbWVudCBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvcXVlc3Rpb25zL3F1ZXN0aW9uc19nb3V2ZXJuZW1lbnQvUXVlc3Rpb25zX2dvdXZlcm5lbWVudC5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiUXVlc3Rpb25zX29yYWxlc19YVklJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5EaXhTZXB0LFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiUXVlc3Rpb25zIG9yYWxlcyBzYW5zIGTDqWJhdHMgZGUgbGEgWFZJScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNy9xdWVzdGlvbnMvcXVlc3Rpb25zX29yYWxlc19zYW5zX2RlYmF0L1F1ZXN0aW9uc19vcmFsZXNfc2Fuc19kZWJhdC5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiUXVlc3Rpb25zX29yYWxlc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiUXVlc3Rpb25zIG9yYWxlcyBzYW5zIGTDqWJhdHMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L3F1ZXN0aW9ucy9xdWVzdGlvbnNfb3JhbGVzX3NhbnNfZGViYXQvUXVlc3Rpb25zX29yYWxlc19zYW5zX2RlYmF0Lmpzb24uemlwXCIsXG4gICAgfSxcbiAgXSxcbiAgY29tcHRlc1JlbmR1c1NlYW5jZXM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJDb21wdGVzX1JlbmR1c19TZWFuY2VzX1hWSUkueG1sXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuRGl4U2VwdCxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcInhtbFwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkNvbXB0ZXMgcmVuZHVzIGRlcyBzw6lhbmNlcyBwdWJsaXF1ZXMgZGUgbGEgWFZJScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTcvdnAvc3ljZXJvbmJydXQvc3lzZXJvbi54bWwuemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJDb21wdGVzX1JlbmR1c19TZWFuY2VzX1hWSS54bWxcIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcInhtbFwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkNvbXB0ZXMgcmVuZHVzIGRlcyBzw6lhbmNlcyBwdWJsaXF1ZXMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwczovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi92cC9zeWNlcm9uYnJ1dC9zeXNlcm9uLnhtbC56aXBcIixcbiAgICB9LFxuICBdLFxuICB0ZXh0ZXNMb2k6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJUZXh0ZXNfTG9pX1hWSVwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiVGV4dGVzIGRlIGxvaSBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgZG93bmxvYWQ6IHByb2Nlc3NUZXh0ZXNMb2lEYXRhc2V0LFxuICAgICAgY2xlYW46IHByb2Nlc3NUZXh0ZXNMb2lEYXRhc2V0LFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiVGV4dGVzX0xvaV9YVklJXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuRGl4U2VwdCxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlRleHRlcyBkZSBsb2kgZGUgbGEgWFZJScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICBkb3dubG9hZDogcHJvY2Vzc1RleHRlc0xvaURhdGFzZXQsXG4gICAgICBjbGVhbjogcHJvY2Vzc1RleHRlc0xvaURhdGFzZXQsXG4gICAgfSxcbiAgXSxcbn1cblxuY29uc3QgZGlyZWN0b3J5MnNjaGVtYTogYW55ID0ge1xuICBcIi4qQWdlbmRhXy4qXCI6IFwiYWdlbmRhXCIsXG4gIFwiLipTY3J1dGluc18uKlwiOiBcInNjcnV0aW5cIixcbiAgXCIuKlF1ZXN0aW9uc18uKlwiOiBcInF1ZXN0aW9uXCIsXG4gIFwiLipBbWVuZGVtZW50c18uKlwiOiBcImFtZW5kZW1lbnRcIixcbiAgXCIuKkRvc3NpZXJzX0xlZ2lzbGF0aWZzXy4qL2RvY3VtZW50c1wiOiBcImRvY3VtZW50XCIsXG4gIFwiLipEb3NzaWVyc19MZWdpc2xhdGlmc18uKi9kb3NzaWVyc1wiOiBcImRvc3NpZXJcIixcbiAgXCIuKmFjdGV1cnNfbWFuZGF0c19vcmdhbmVzL29yZ2FuZXNcIjogXCJvcmdhbmVcIixcbiAgXCIuKmFjdGV1cnNfbWFuZGF0c19vcmdhbmVzL2FjdGV1cnNcIjogXCJhY3RldXJcIixcbiAgXCIuKkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuKi9vcmdhbmVzXCI6XG4gICAgXCJvcmdhbmVcIixcbiAgXCIuKkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuKi9hY3RldXJzXCI6XG4gICAgXCJhY3RldXJcIixcbiAgXCIuKkNvbXB0ZXNfUmVuZHVzX1NlYW5jZXNfLipcIjogXCJkZWJhdFwiLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YXNldHMoKTogYW55IHtcbiAgcmV0dXJuIFtcbiAgICBcIkFnZW5kYV9YSVZcIixcbiAgICBcIkFnZW5kYV9YVlwiLFxuICAgIFwiQWdlbmRhX1hWSVwiLFxuICAgIFwiQWdlbmRhX1hWSUlcIixcbiAgICBcIlNjcnV0aW5zX1hJVlwiLFxuICAgIFwiU2NydXRpbnNfWFZcIixcbiAgICBcIlNjcnV0aW5zX1hWSVwiLFxuICAgIFwiU2NydXRpbnNfWFZJSVwiLFxuICAgIFwiUXVlc3Rpb25zX0Vjcml0ZXNfWFZJXCIsXG4gICAgXCJRdWVzdGlvbnNfRWNyaXRlc19YVklJXCIsXG4gICAgXCJRdWVzdGlvbnNfR291dmVybmVtZW50X1hWSVwiLFxuICAgIFwiUXVlc3Rpb25zX0dvdXZlcm5lbWVudF9YVklJXCIsXG4gICAgXCJBbWVuZGVtZW50c19YSVZcIixcbiAgICBcIkFtZW5kZW1lbnRzX1hWXCIsXG4gICAgXCJBbWVuZGVtZW50c19YVklcIixcbiAgICBcIkFtZW5kZW1lbnRzX1hWSUlcIixcbiAgICBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hJVlwiLFxuICAgIFwiRG9zc2llcnNfTGVnaXNsYXRpZnNfWFZcIixcbiAgICBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWSVwiLFxuICAgIFwiRG9zc2llcnNfTGVnaXNsYXRpZnNfWFZJSVwiLFxuICAgIFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZVwiLFxuICAgIFwiYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNcIixcbiAgICBcIkNvbXB0ZXNfUmVuZHVzX1NlYW5jZXNfWFZJXCIsXG4gICAgXCJDb21wdGVzX1JlbmR1c19TZWFuY2VzX1hWSUlcIixcbiAgXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWREYXRhc2V0KGRpcjogYW55KTogYW55IHtcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGdldERhdGFzZXRzKCkpIHtcbiAgICBpZiAoZGlyLmluY2x1ZGVzKGRhdGFzZXQpKSByZXR1cm4gdHJ1ZVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NoZW1hcygpOiBhbnkge1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhkaXJlY3Rvcnkyc2NoZW1hKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0YXNldERpcmVjdG9yeVNjaGVtYShkYXRhc2V0OiBzdHJpbmcpOiBhbnkge1xuICBsZXQgZGlyZWN0b3JpZXM6IGFueVxuICBpZiAoZGF0YXNldC5pbmNsdWRlcyhcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1wiKSkge1xuICAgIGRpcmVjdG9yaWVzID0gW2Ake2RhdGFzZXR9L2RvY3VtZW50c2AsIGAke2RhdGFzZXR9L2Rvc3NpZXJzYF1cbiAgfSBlbHNlIGlmIChcbiAgICBkYXRhc2V0LmluY2x1ZGVzKFwiYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNcIikgfHxcbiAgICBkYXRhc2V0LmluY2x1ZGVzKFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZVwiKVxuICApIHtcbiAgICBkaXJlY3RvcmllcyA9IFtgJHtkYXRhc2V0fS9vcmdhbmVzYCwgYCR7ZGF0YXNldH0vYWN0ZXVyc2BdXG4gIH0gZWxzZSB7XG4gICAgZGlyZWN0b3JpZXMgPSBbZGF0YXNldF1cbiAgfVxuXG4gIGxldCByZXN1bHRzID0gW11cbiAgZm9yIChjb25zdCBkaXJlY3Rvcnkgb2YgZGlyZWN0b3JpZXMpIHtcbiAgICBmb3IgKGNvbnN0IHJlIG9mIE9iamVjdC5rZXlzKGRpcmVjdG9yeTJzY2hlbWEpKSB7XG4gICAgICBpZiAobmV3IFJlZ0V4cChyZSkuZXhlYyhkaXJlY3RvcnkpKVxuICAgICAgICByZXN1bHRzLnB1c2goW2Ake2RpcmVjdG9yeX0vKiovKi5qc29uYCwgZGlyZWN0b3J5MnNjaGVtYVtyZV1dKVxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0c1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsZURhdGFzZXRVcmwoZmlsZW5hbWU6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10gfCBudWxsIHtcbiAgY29uc3QgcmUgPSBcIl4uKi8oLiopX25ldHRveWUvKC4qKVwiXG4gIGNvbnN0IG1hdGNoID0gbmV3IFJlZ0V4cChyZSkuZXhlYyhmaWxlbmFtZSlcbiAgaWYgKG1hdGNoID09IG51bGwpIHJldHVybiBudWxsXG4gIGxldCBbZGF0YXNldCwgZmlsZV0gPSBbbWF0Y2hbMV0sIG1hdGNoWzJdXVxuICBpZiAoZGF0YXNldCA9PSBcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWVcIilcbiAgICBkYXRhc2V0ID0gXCJhY3RldXJzX21hbmRhdHNfb3JnYW5lc1wiXG4gIHJldHVybiBbZGF0YXNldCwgZmlsZV1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZVcHN0cmVhbShmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YXNldFVybCA9IGZpbGVEYXRhc2V0VXJsKGZpbGVuYW1lKVxuICBpZiAoZGF0YXNldFVybCA9PSBudWxsKSByZXR1cm4gZmlsZW5hbWVcbiAgY29uc3QgW2RhdGFzZXQsIGZpbGVdID0gZGF0YXNldFVybFxuICBjb25zdCBzdW0gPSBjcmVhdGVIYXNoKFwic2hhMVwiKS51cGRhdGUoZmlsZSkuZGlnZXN0KFwiaGV4XCIpLnRvU3RyaW5nKClcbiAgcmV0dXJuIGBbJHtmaWxlfV0oaHR0cHM6Ly9naXQuZW4tcm9vdC5vcmcvdHJpY290ZXVzZXMvZGF0YS50cmljb3RldXNlcy5mci8ke2RhdGFzZXR9Ly0vY29tcGFyZS91cHN0cmVhbS4uLm1hc3RlciMke3N1bX0pYFxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFzdGVyVXJsKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBkYXRhc2V0VXJsID0gZmlsZURhdGFzZXRVcmwoZmlsZW5hbWUpXG4gIGlmIChkYXRhc2V0VXJsID09IG51bGwpIHJldHVybiBmaWxlbmFtZVxuICBjb25zdCBbZGF0YXNldCwgZmlsZV0gPSBkYXRhc2V0VXJsXG4gIHJldHVybiBgWyR7ZmlsZX1dKGh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL2RhdGEudHJpY290ZXVzZXMuZnIvJHtkYXRhc2V0fS8tL3RyZWUvbWFzdGVyLyR7ZmlsZX0pYFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyQnlMZWdpc2xhdHVyZShcbiAgZGF0YXNldHM6IERhdGFzZXRzLFxuICBsZWdpc2xhdHVyZTogYW55LFxuKTogRGF0YXNldHMge1xuICAvLyBXaGVuIGEgZ2l2ZW4gbGVnaXNsYXR1cmUgaXMgMCwgaXQgaXMgdGhlIHNhbWUgYXMgZ2l2aW5nIG5vIGxlZ2lzbGF0dXJlOlxuICAvLyBJdCBtZWFucyBcImV2ZXJ5IGxlZ2lzbGF0dXJlc1wiLlxuICBpZiAobGVnaXNsYXR1cmUgIT09IDAgJiYgbGVnaXNsYXR1cmUgIT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhkYXRhc2V0cykpIHtcbiAgICAgIGRhdGFzZXRzW2tleSBhcyBrZXlvZiB0eXBlb2YgZGF0YXNldHNdID0gdmFsdWUuZmlsdGVyKFxuICAgICAgICAoZGF0YXNldDogeyBsZWdpc2xhdHVyZTogYW55IH0pID0+XG4gICAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSA9PT0gTGVnaXNsYXR1cmUuQWxsIHx8XG4gICAgICAgICAgbGVnaXNsYXR1cmUgPT09IGRhdGFzZXQubGVnaXNsYXR1cmUsXG4gICAgICApXG4gICAgfVxuICB9XG4gIHJldHVybiBkYXRhc2V0c1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW5hYmxlZERhdGFzZXRzKGNhdGVnb3JpZXM6IGFueSk6IEVuYWJsZWREYXRhc2V0cyB7XG4gIGNhdGVnb3JpZXMubWFwKChkYXRhc2V0TmFtZTogc3RyaW5nKSA9PlxuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgIChFbmFibGVkRGF0YXNldHMgYXMgYW55IGFzIHsgW25hbWU6IHN0cmluZ106IEVuYWJsZWREYXRhc2V0cyB9KVtcbiAgICAgICAgZGF0YXNldE5hbWVcbiAgICAgIF0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBgVW5rbm93biBuYW1lIG9mIGRhdGFzZXQ6ICR7ZGF0YXNldE5hbWV9YCxcbiAgICApLFxuICApXG5cbiAgcmV0dXJuIGNhdGVnb3JpZXMucmVkdWNlKFxuICAgIChlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cywgZGF0YXNldE5hbWU6IHN0cmluZyk6IEVuYWJsZWREYXRhc2V0cyA9PlxuICAgICAgZW5hYmxlZERhdGFzZXRzIHxcbiAgICAgIChFbmFibGVkRGF0YXNldHMgYXMgYW55IGFzIHsgW25hbWU6IHN0cmluZ106IEVuYWJsZWREYXRhc2V0cyB9KVtcbiAgICAgICAgZGF0YXNldE5hbWVcbiAgICAgIF0sXG4gICAgRW5hYmxlZERhdGFzZXRzLk5vbmUsXG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsVUFBVSxRQUFRLFFBQVE7QUFDbkMsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsT0FBT0MsRUFBRSxNQUFNLFVBQVU7QUFDekIsT0FBT0MsSUFBSSxNQUFNLE1BQU07QUFBQSxTQUVkQyxXQUFXO0FBQUEsU0FDWEMsdUJBQXVCO0FBbUNoQyxXQUFZQyxnQkFBZ0IsMEJBQWhCQSxnQkFBZ0I7RUFBaEJBLGdCQUFnQixDQUFoQkEsZ0JBQWdCO0VBQWhCQSxnQkFBZ0IsQ0FBaEJBLGdCQUFnQjtFQUFBLE9BQWhCQSxnQkFBZ0I7QUFBQTtBQUs1QixXQUFZQyxlQUFlLDBCQUFmQSxl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
|
|
755
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVIYXNoIiwiYXNzZXJ0IiwiZnMiLCJwYXRoIiwiTGVnaXNsYXR1cmUiLCJEYXRhc2V0U3RydWN0dXJlIiwiRW5hYmxlZERhdGFzZXRzIiwicmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSIsImRhdGFzZXQiLCJkYXRhRGlyIiwidGFyZ2V0RGlyIiwiam9pbiIsImZpbGVuYW1lIiwiZXhpc3RzU3luYyIsInJlbW92ZVN5bmMiLCJtb3ZlU3luYyIsIm1rZGlyU3luYyIsImRhdGFzZXRzIiwiYWN0ZXVyc0V0T3JnYW5lcyIsImlnbm9yZUZvcldlYiIsImxlZ2lzbGF0dXJlIiwiRGl4U2VwdCIsInJlcGFpclppcCIsInN0cnVjdHVyZSIsIlNlZ21lbnRlZEZpbGVzIiwidGl0bGUiLCJ1cmwiLCJTZWl6ZSIsIlF1aW56ZSIsIlF1YXRvcnplIiwiU2luZ2xlRmlsZSIsIkFsbCIsInBhdGhFeGlzdHNTeW5jIiwiYWdlbmRhcyIsImFtZW5kZW1lbnRzIiwiZG9zc2llcnNMZWdpc2xhdGlmcyIsInNjcnV0aW5zIiwicXVlc3Rpb25zIiwiY29tcHRlc1JlbmR1c1NlYW5jZXMiLCJkaXJlY3Rvcnkyc2NoZW1hIiwiZ2V0RGF0YXNldHMiLCJ2YWxpZERhdGFzZXQiLCJkaXIiLCJpbmNsdWRlcyIsImdldFNjaGVtYXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJkYXRhc2V0RGlyZWN0b3J5U2NoZW1hIiwiZGlyZWN0b3JpZXMiLCJyZXN1bHRzIiwiZGlyZWN0b3J5IiwicmUiLCJrZXlzIiwiUmVnRXhwIiwiZXhlYyIsInB1c2giLCJmaWxlRGF0YXNldFVybCIsIm1hdGNoIiwiZmlsZSIsImRpZmZVcHN0cmVhbSIsImRhdGFzZXRVcmwiLCJzdW0iLCJ1cGRhdGUiLCJkaWdlc3QiLCJ0b1N0cmluZyIsIm1hc3RlclVybCIsImZpbHRlckJ5TGVnaXNsYXR1cmUiLCJ1bmRlZmluZWQiLCJrZXkiLCJ2YWx1ZSIsImVudHJpZXMiLCJmaWx0ZXIiLCJnZXRFbmFibGVkRGF0YXNldHMiLCJjYXRlZ29yaWVzIiwibWFwIiwiZGF0YXNldE5hbWUiLCJub3RTdHJpY3RFcXVhbCIsInJlZHVjZSIsImVuYWJsZWREYXRhc2V0cyIsIk5vbmUiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0YXNldHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIlxuaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQgeyBMZWdpc2xhdHVyZSB9IGZyb20gXCIuL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldCB7XG4gIGZpbGVuYW1lOiBzdHJpbmdcbiAgaWdub3JlRm9yV2ViPzogYm9vbGVhblxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmVcbiAgcmVwYWlyWmlwPzogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4gdm9pZFxuICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmVcbiAgdGl0bGU6IHN0cmluZ1xuICB1cmw/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhc2V0cyB7XG4gIGFjdGV1cnNFdE9yZ2FuZXM6IERhdGFzZXRbXVxuICBhZ2VuZGFzOiBEYXRhc2V0W11cbiAgYW1lbmRlbWVudHM6IERhdGFzZXRbXVxuICBkb3NzaWVyc0xlZ2lzbGF0aWZzOiBEYXRhc2V0W11cbiAgc2NydXRpbnM6IERhdGFzZXRbXVxuICBxdWVzdGlvbnM6IERhdGFzZXRbXVxuICBjb21wdGVzUmVuZHVzU2VhbmNlczogRGF0YXNldFtdXG59XG5cbmV4cG9ydCBlbnVtIERhdGFzZXRTdHJ1Y3R1cmUge1xuICBTaW5nbGVGaWxlLFxuICBTZWdtZW50ZWRGaWxlcyxcbn1cblxuZXhwb3J0IGVudW0gRW5hYmxlZERhdGFzZXRzIHtcbiAgTm9uZSA9IDAsXG4gIEFjdGV1cnNFdE9yZ2FuZXMgPSAxIDw8IDAsXG4gIEFnZW5kYXMgPSAxIDw8IDEsXG4gIEFtZW5kZW1lbnRzID0gMSA8PCAyLFxuICBEb3NzaWVyc0xlZ2lzbGF0aWZzID0gMSA8PCAzLFxuICBQaG90b3MgPSAxIDw8IDQsXG4gIFNjcnV0aW5zID0gMSA8PCA1LFxuICBRdWVzdGlvbnMgPSAxIDw8IDYsXG4gIENvbXB0ZXNSZW5kdXNTZWFuY2VzID0gMSA8PCA3LFxuICBBbGwgPSBBY3RldXJzRXRPcmdhbmVzIHxcbiAgICBBZ2VuZGFzIHxcbiAgICBBbWVuZGVtZW50cyB8XG4gICAgRG9zc2llcnNMZWdpc2xhdGlmcyB8XG4gICAgUGhvdG9zIHxcbiAgICBTY3J1dGlucyB8XG4gICAgUXVlc3Rpb25zIHxcbiAgICBDb21wdGVzUmVuZHVzU2VhbmNlcyxcbn1cblxuLy8gVGhlIHppcCBmaWxlcyAobmFtZWQgTkFNRS5qc29uLnppcCkgdXN1YWxseSBjb250YWluIGEgc2luZ2xlIHN1YmZvbGRlciBuYW1lZCBcImpzb25cIlxuLy8gY29udGFpbmluZyB0aGUgYWN0dWFsIGNvbnRlbnRzXG4vLyBXZSdkIHJhdGhlciByZW5hbWUgdGhlIGZvbGRlciBOQU1FLmpzb25cbmZ1bmN0aW9uIHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnkoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSB7XG4gIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gIH1cblxuICBpZiAoZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpKSkge1xuICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgfSBlbHNlIHtcbiAgICBmcy5ta2RpclN5bmModGFyZ2V0RGlyKVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkYXRhc2V0czogRGF0YXNldHMgPSB7XG4gIGFjdGV1cnNFdE9yZ2FuZXM6IFtcbiAgICB7XG4gICAgICAvLyBBTU8xMCAoWFZJSSlcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGFjdGlmc1xuICAgICAgLy8gKiBhdmVjIHRvdXMgbGVzIG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogeSBjb21wcmlzIGF2ZWMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXMgbWFuZGF0cyBhY2hldsOpcyAoeSBjb21wcmlzIGRhbnMgY2V0dGUgbMOpZ2lzbGF0dXJlKVxuICAgICAgLy9cbiAgICAgIC8vIE9yZ2FuZXMgOlxuICAgICAgLy8gKiBDb250aWVudCBzZXVsZW1lbnQgbGVzIG9yZ2FuZXMgY29ycmVzcG9uZGFudHMgYXV4IG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBsZSB4c2lUeXBlIGRlIGwnb3JnYW5lXG4gICAgICAvLyAqIGF2ZWMgZGVzIGNvbW1pc3Npb25zIHPDqW5hdG9yaWFsZXMgKHBlcm1hbmVudGVzIGV0IHNww6ljaWFsZXMpIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGTDqWzDqWdhdGlvbnMgc8OpbmF0b3JpYWxlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBncm91cGVzIHPDqW5hdG9yaWF1eCBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBtaW5pc3TDqHJlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlcyBQcsOpc2lkZW5jZXMgZGUgbGEgUsOpcHVibGlxdWUgKHkgY29tcHJpcyBTYXJrb3p5KVxuICAgICAgLy8gKiBhdmVjIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgdW4gc291cy1lbnNlbWJsZSDDoCB0b3VzIGxlcyBuaXZlYXV4IGR1IGZpY2hpZXIgQU1PMjBcbiAgICAgIC8vIChxdWkgZXN0IGx1aSBtw6ptZSB1biBzb3VzLWVuc2VtYmxlIGRlIGwnQU1PMzApLlxuICAgICAgLy8gSWwgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIEFNTzIwIG91IGwnQU1PMzAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8xMF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX1hWSUkuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkRpeFNlcHQsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFZJScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNy9hbW8vZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lcy9BTU8xMF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU8xMCAoWFZJKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzXG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXMgbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiB5IGNvbXByaXMgYXZlYyBsZXVyIHBhcnRpIHBvbGl0aXF1ZSAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGFjaGV2w6lzICh5IGNvbXByaXMgZGFucyBjZXR0ZSBsw6lnaXNsYXR1cmUpXG4gICAgICAvL1xuICAgICAgLy8gT3JnYW5lcyA6XG4gICAgICAvLyAqIENvbnRpZW50IHNldWxlbWVudCBsZXMgb3JnYW5lcyBjb3JyZXNwb25kYW50cyBhdXggbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8yMFxuICAgICAgLy8gKHF1aSBlc3QgbHVpIG3Dqm1lIHVuIHNvdXMtZW5zZW1ibGUgZGUgbCdBTU8zMCkuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgQU1PMjAgb3UgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkTDqXB1dMOpcyBhY3RpZnMgZXQgb3JnYW5lcyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXMvQU1PMTBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMTAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzXG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXMgbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiB5IGNvbXByaXMgYXZlYyBsZXVyIHBhcnRpIHBvbGl0aXF1ZSAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGFjaGV2w6lzICh5IGNvbXByaXMgZGFucyBjZXR0ZSBsw6lnaXNsYXR1cmUpXG4gICAgICAvL1xuICAgICAgLy8gT3JnYW5lcyA6XG4gICAgICAvLyAqIENvbnRpZW50IHNldWxlbWVudCBsZXMgb3JnYW5lcyBjb3JyZXNwb25kYW50cyBhdXggbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8yMFxuICAgICAgLy8gKHF1aSBlc3QgbHVpIG3Dqm1lIHVuIHNvdXMtZW5zZW1ibGUgZGUgbCdBTU8zMCkuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgQU1PMjAgb3UgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfWFYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkTDqXB1dMOpcyBhY3RpZnMgZXQgb3JnYW5lcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lcy9BTU8xMF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU8yMCAoWFZJSSlcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGRlIGxhIGzDqWdpc2xhdHVyZSwgYWN0aWZzIG91IG5vbiAoaW52YWxpZMOpcywgZXRjKSwgbGVzIHPDqW5hdGV1cnMgYWN0dWVsc1xuICAgICAgLy8gUG91ciBsZXMgZMOpcHV0w6lzIDpcbiAgICAgIC8vICogYXZlYyB0b3VzIGxldXJzIG1hbmRhdHMgZGUgbGEgbMOpZ2lzbGF0dXJlXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXMgbWFuZGF0cyBhY2hldsOpc1xuICAgICAgLy8gKiB5IGNvbXByaXMgbGV1cnMgcGFydGlzIHBvbGl0aXF1ZXMgICh0eXBlT3JnYW5lOiBcIlBBUlBPTFwiKVxuICAgICAgLy8gKiBtYWlzIHNhbnMgbGVzIG1hbmRhdHMgZGVzIGzDqWdpc2xhdHVyZXMgcHLDqWPDqWRlbnRlcyAocXVpIHNvbnQgZGFucyBBTU80MClcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCB0b3VzIGxlcyBvcmdhbmVzIHLDqWbDqXJlbmPDqXMgcGFyIGxlcyBtYW5kYXRzXG4gICAgICAvLyAqIGF2ZWMgbGUgeHNpVHlwZSBkZSBsJ29yZ2FuZVxuICAgICAgLy8gKiBhdmVjIGRlcyBjb21taXNzaW9ucyBzw6luYXRvcmlhbGVzIChwZXJtYW5lbnRlcyBldCBzcMOpY2lhbGVzKSBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBkw6lsw6lnYXRpb25zIHPDqW5hdG9yaWFsZXMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZ3JvdXBlcyBzw6luYXRvcmlhdXggZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgbWluaXN0w6hyZXMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBsZXMgUHLDqXNpZGVuY2VzIGRlIGxhIFLDqXB1YmxpcXVlICh5IGNvbXByaXMgU2Fya296eSlcbiAgICAgIC8vICogYXZlYyBsZSBDb25zZWlsIGNvbnN0aXR1dGlvbm5lbFxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgZXN0IHVuIHNvdXMtZW5zZW1ibGUgw6AgdG91cyBsZXMgbml2ZWF1eCBkdSBmaWNoaWVyIEFNTzMwLlxuICAgICAgLy8gSWwgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lc19YVklJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5EaXhTZXB0LFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQWN0ZXVycyBldCBvcmdhbmVzIGRlIGxhIFhWSUnDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTcvYW1vL2RlcHV0ZXNfc2VuYXRldXJzX21pbmlzdHJlc19sZWdpc2xhdHVyZS9BTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMjAgKFhWSSlcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGRlIGxhIGzDqWdpc2xhdHVyZSwgYWN0aWZzIG91IG5vbiAoaW52YWxpZMOpcywgZXRjKSwgbGVzIHPDqW5hdGV1cnMgYWN0dWVsc1xuICAgICAgLy8gUG91ciBsZXMgZMOpcHV0w6lzIDpcbiAgICAgIC8vICogYXZlYyB0b3VzIGxldXJzIG1hbmRhdHMgZGUgbGEgbMOpZ2lzbGF0dXJlXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXMgbWFuZGF0cyBhY2hldsOpc1xuICAgICAgLy8gKiB5IGNvbXByaXMgbGV1cnMgcGFydGlzIHBvbGl0aXF1ZXMgICh0eXBlT3JnYW5lOiBcIlBBUlBPTFwiKVxuICAgICAgLy8gKiBtYWlzIHNhbnMgbGVzIG1hbmRhdHMgZGVzIGzDqWdpc2xhdHVyZXMgcHLDqWPDqWRlbnRlcyAocXVpIHNvbnQgZGFucyBBTU80MClcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCB0b3VzIGxlcyBvcmdhbmVzIHLDqWbDqXJlbmPDqXMgcGFyIGxlcyBtYW5kYXRzXG4gICAgICAvLyAqIGF2ZWMgbGUgeHNpVHlwZSBkZSBsJ29yZ2FuZVxuICAgICAgLy8gKiBhdmVjIGRlcyBjb21taXNzaW9ucyBzw6luYXRvcmlhbGVzIChwZXJtYW5lbnRlcyBldCBzcMOpY2lhbGVzKSBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBkw6lsw6lnYXRpb25zIHPDqW5hdG9yaWFsZXMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZ3JvdXBlcyBzw6luYXRvcmlhdXggZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgbWluaXN0w6hyZXMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBsZXMgUHLDqXNpZGVuY2VzIGRlIGxhIFLDqXB1YmxpcXVlICh5IGNvbXByaXMgU2Fya296eSlcbiAgICAgIC8vICogYXZlYyBsZSBDb25zZWlsIGNvbnN0aXR1dGlvbm5lbFxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgZXN0IHVuIHNvdXMtZW5zZW1ibGUgw6AgdG91cyBsZXMgbml2ZWF1eCBkdSBmaWNoaWVyIEFNTzMwLlxuICAgICAgLy8gSWwgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lc19YVkkuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQWN0ZXVycyBldCBvcmdhbmVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9hbW8vZGVwdXRlc19zZW5hdGV1cnNfbWluaXN0cmVzX2xlZ2lzbGF0dXJlL0FNTzIwX2RlcF9zZW5fbWluX3RvdXNfbWFuZGF0c19ldF9vcmdhbmVzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU8yMCAoWFYpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBkZSBsYSBsw6lnaXNsYXR1cmUsIGFjdGlmcyBvdSBub24gKGludmFsaWTDqXMsIGV0YyksIGxlcyBzw6luYXRldXJzIGFjdHVlbHNcbiAgICAgIC8vIFBvdXIgbGVzIGTDqXB1dMOpcyA6XG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXVycyBtYW5kYXRzIGRlIGxhIGzDqWdpc2xhdHVyZVxuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzICAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXMgKHF1aSBzb250IGRhbnMgQU1PNDApXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgdG91cyBsZXMgb3JnYW5lcyByw6lmw6lyZW5jw6lzIHBhciBsZXMgbWFuZGF0c1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8zMC5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWFYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkFjdGV1cnMgZXQgb3JnYW5lcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vZGVwdXRlc19zZW5hdGV1cnNfbWluaXN0cmVzX2xlZ2lzbGF0dXJlL0FNTzIwX2RlcF9zZW5fbWluX3RvdXNfbWFuZGF0c19ldF9vcmdhbmVzX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU8yMCAoWElWKVxuICAgICAgLy9cbiAgICAgIC8vIENvbW1lIEFNTzIwIChYVikgbWFpcyBwb3VyIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXG4gICAgICAvLyBUb3VzIGxlcyBhY3RldXJzIHNhdWYgdW4gKFBBNDI5ODkyKSBzb250IHByw6lzZW50cyBlbiBwbHVzIMOgIGpvdXIgZGFucyBBTU8zMC5cbiAgICAgIC8vIENldCBhY3RldXIgUEE0Mjk4OTIgKGFuY2llbm5lIFPDqW5hdHJpY2UpIG4nZXN0IHByw6lzZW50IGRhbnMgYXVjdW4gZGVzIGF1dHJlc1xuICAgICAgLy8gZmljaGllcnMgQU1PLlxuICAgICAgLy8gVG91cyBsZXMgb3JnYW5lcyBzb250IHByw6lzZW50cyBlbiBwbHVzIGNvbXBsZXRzIGRhbnMgQU1PMzAuXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgZG9uYyDDoCB1biBkw6l0YWlsIHByw6p0IChQQTQyOTg5MikgdW4gc291cy1lbnNlbWJsZSBkJ0FNTzMwLlxuICAgICAgLy8gSWwgbidhcHBvcnRlIGRvbmMgcXVhc2ltZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzIwX2RlcF9zZW5fbWluX3RvdXNfbWFuZGF0c19ldF9vcmdhbmVzX1hJVi5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAgIHRpdGxlOiBcIkFjdGV1cnMgZXQgb3JnYW5lcyBkZSBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTQvYW1vL2RlcHV0ZXNfc2VuYXRldXJzX21pbmlzdHJlc19sZWdpc2xhdHVyZXNfWElWL0FNTzIwX2RlcF9zZW5fbWluX3RvdXNfbWFuZGF0c19ldF9vcmdhbmVzX1hJVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMzAgKFhWSUkpXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBjb250aWVudCB0b3VzIGxlcyBhY3RldXJzIGV0IG9yZ2FuZXMuXG4gICAgICAvLyBDJ2VzdCB1biBzdXItZW5zZW1ibGUgZGVzIGZpY2hpZXJzIEFNTzIwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuQWxsLFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6XG4gICAgICAgIFwiSGlzdG9yaXF1ZSBkZSB0b3VzIGxlcyBhY3RldXJzIGV0IG9yZ2FuZXMgZGVwdWlzIGxhIFhJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE3L2Ftby90b3VzX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX3hpX2xlZ2lzbGF0dXJlL0FNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuanNvbi56aXBcIixcbiAgICB9LFxuICAgIC8vIHtcbiAgICAvLyAgIC8vIEFNTzMwIChYVkkpXG4gICAgLy8gICAvL1xuICAgIC8vICAgLy8gQ2UgZmljaGllciBjb250aWVudCB0b3VzIGxlcyBhY3RldXJzIGV0IG9yZ2FuZXMuXG4gICAgLy8gICAvLyBDJ2VzdCB1biBzdXItZW5zZW1ibGUgZGVzIGZpY2hpZXJzIEFNTzIwLlxuICAgIC8vICAgZmlsZW5hbWU6IFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS5qc29uXCIsXG4gICAgLy8gICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuQWxsLFxuICAgIC8vICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgIC8vICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgIC8vICAgdGl0bGU6XG4gICAgLy8gICAgIFwiSGlzdG9yaXF1ZSBkZSB0b3VzIGxlcyBhY3RldXJzIGV0IG9yZ2FuZXMgZGVwdWlzIGxhIFhJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAvLyAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L2Ftby90b3VzX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX3hpX2xlZ2lzbGF0dXJlL0FNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuanNvbi56aXBcIixcbiAgICAvLyB9LFxuICAgIC8vIHtcbiAgICAvLyAgIC8vIEFNTzMwIChYVilcbiAgICAvLyAgIC8vXG4gICAgLy8gICAvLyBDZSBmaWNoaWVyIGNvbnRpZW50IHRvdXMgbGVzIGFjdGV1cnMgZXQgb3JnYW5lcy5cbiAgICAvLyAgIC8vIEMnZXN0IHVuIHN1ci1lbnNlbWJsZSBkZXMgZmljaGllcnMgQU1PMjAuXG4gICAgLy8gICBmaWxlbmFtZTogXCJBTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlLmpzb25cIixcbiAgICAvLyAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5BbGwsXG4gICAgLy8gICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAvLyAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgLy8gICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAvLyAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgLy8gICB9LFxuICAgIC8vICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgIC8vICAgdGl0bGU6XG4gICAgLy8gICAgIFwiSGlzdG9yaXF1ZSBkZSB0b3VzIGxlcyBhY3RldXJzIGV0IG9yZ2FuZXMgZGVwdWlzIGxhIFhJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAvLyAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2Ftby90b3VzX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX3hpX2xlZ2lzbGF0dXJlL0FNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuanNvbi56aXBcIixcbiAgICAvLyB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzQwIChYVklJKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzIChsZXMgbcOqbWVzIHF1J0FNTzIwKVxuICAgICAgLy8gKiBhdmVjIHByZXNxdWUgdG91cyBsZXVycyBtYW5kYXRzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXMgbWFuZGF0cyBhY2hldsOpcyBldCBjZXV4IGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzIHByw6ljw6lkZW50c1xuICAgICAgLy8gKiBtYWlzIHNhbnMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgYWN0dWVsICh0eXBlT3JnYW5lOiBcIlBBUlBPTFwiKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGJlYXVjb3VwIGQnb3JnYW5lcyByw6lmw6lyZW5jw6lzLCB5IGNvbXByaXMgY2V1eCBkZXMgbMOpZ2lzbGF0dXJlc1xuICAgICAgLy8gcHLDqWPDqWRlbnRlc1xuICAgICAgLy8gKiBtYWlzIGlsIG1hbnF1ZSBsZSB4c2lUeXBlIGRlcyBvcmdhbmVzXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZXMgb3JnYW5lcyBzw6luYXRvcmlhdXhcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlcyBtaW5pc3TDqHJlc1xuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGEgUHLDqXNpZGVuY2UgZGUgbGEgUsOpcHVibGlxdWVcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgYWN0ZXVycywgY2UgZMOpcMO0dCBlc3QgdW4gc291cy1lbnNlbWJsZSBzdHJpY3QgZGUgQU1PMzAgOlxuICAgICAgLy8gSWwgYSBtb2lucyBkJ2FjdGV1cnMgZXQgaWwgc29udCBtb2lucyBjb21wbGV0cy5cbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBvcmdhbmVzIDpcbiAgICAgIC8vIFF1YW5kIGwnb3JnYW5lIGVzdCBhdXNzaSBwcsOpc2VudCBkYW5zIEFNTzMwLCBpbCB2YXV0IG1pZXV4IHByZW5kcmUgY2VsdWlcbiAgICAgIC8vIGQnQU1PMzAsIGNhciBpbCBjb250aWVudCBsZSB4c2lUeXBlIChjJ2VzdCBsYSBzZXVsZSBkaWZmw6lyZW5jZSBzZW1ibGUtdC1pKS5cbiAgICAgIC8vIFNpbm9uLCBpbCBmYXV0IGxlIHByZW5kcmUgc2V1bGVtZW50IHNpIG9uIGVzdCBpbnTDqXJlc3PDqSBwYXIgbGVzIGzDqWdpc2xhdHVyZXNcbiAgICAgIC8vIHByw6ljw6lkZW50ZXMuXG4gICAgICBmaWxlbmFtZTogXCJBTU80MF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXNfWFZJSS5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuRGl4U2VwdCxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGlmIChmcy5wYXRoRXhpc3RzU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIikpKSB7XG4gICAgICAgICAgLy8gTm90ZTsgTGUgcsOpcGVydG9pcmUgYWN0ZXVyIHBldXQgZGlzcGFyYcOudHJlIGVuIGZpbiBkZSBsw6lnaXNsYXR1cmVcbiAgICAgICAgICAvLyBxdWFuZCBsZXMgbWFuZGF0cyBkZXMgZMOpcHV0w6lzIHMnaW50ZXJyb21wZW50LlxuICAgICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkTDqXB1dMOpcyBhY3RpZnMgZXQgb3JnYW5lcyBkZSBsYSBYVklJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE3L2Ftby9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXMvQU1PNDBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU80MCAoWFZJKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzIChsZXMgbcOqbWVzIHF1J0FNTzIwKVxuICAgICAgLy8gKiBhdmVjIHByZXNxdWUgdG91cyBsZXVycyBtYW5kYXRzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXMgbWFuZGF0cyBhY2hldsOpcyBldCBjZXV4IGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzIHByw6ljw6lkZW50c1xuICAgICAgLy8gKiBtYWlzIHNhbnMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgYWN0dWVsICh0eXBlT3JnYW5lOiBcIlBBUlBPTFwiKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGJlYXVjb3VwIGQnb3JnYW5lcyByw6lmw6lyZW5jw6lzLCB5IGNvbXByaXMgY2V1eCBkZXMgbMOpZ2lzbGF0dXJlc1xuICAgICAgLy8gcHLDqWPDqWRlbnRlc1xuICAgICAgLy8gKiBtYWlzIGlsIG1hbnF1ZSBsZSB4c2lUeXBlIGRlcyBvcmdhbmVzXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZXMgb3JnYW5lcyBzw6luYXRvcmlhdXhcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlcyBtaW5pc3TDqHJlc1xuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGEgUHLDqXNpZGVuY2UgZGUgbGEgUsOpcHVibGlxdWVcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgYWN0ZXVycywgY2UgZMOpcMO0dCBlc3QgdW4gc291cy1lbnNlbWJsZSBzdHJpY3QgZGUgQU1PMzAgOlxuICAgICAgLy8gSWwgYSBtb2lucyBkJ2FjdGV1cnMgZXQgaWwgc29udCBtb2lucyBjb21wbGV0cy5cbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBvcmdhbmVzIDpcbiAgICAgIC8vIFF1YW5kIGwnb3JnYW5lIGVzdCBhdXNzaSBwcsOpc2VudCBkYW5zIEFNTzMwLCBpbCB2YXV0IG1pZXV4IHByZW5kcmUgY2VsdWlcbiAgICAgIC8vIGQnQU1PMzAsIGNhciBpbCBjb250aWVudCBsZSB4c2lUeXBlIChjJ2VzdCBsYSBzZXVsZSBkaWZmw6lyZW5jZSBzZW1ibGUtdC1pKS5cbiAgICAgIC8vIFNpbm9uLCBpbCBmYXV0IGxlIHByZW5kcmUgc2V1bGVtZW50IHNpIG9uIGVzdCBpbnTDqXJlc3PDqSBwYXIgbGVzIGzDqWdpc2xhdHVyZXNcbiAgICAgIC8vIHByw6ljw6lkZW50ZXMuXG4gICAgICBmaWxlbmFtZTogXCJBTU80MF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGlmIChmcy5wYXRoRXhpc3RzU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIikpKSB7XG4gICAgICAgICAgLy8gTm90ZTsgTGUgcsOpcGVydG9pcmUgYWN0ZXVyIHBldXQgZGlzcGFyYcOudHJlIGVuIGZpbiBkZSBsw6lnaXNsYXR1cmVcbiAgICAgICAgICAvLyBxdWFuZCBsZXMgbWFuZGF0cyBkZXMgZMOpcHV0w6lzIHMnaW50ZXJyb21wZW50LlxuICAgICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkTDqXB1dMOpcyBhY3RpZnMgZXQgb3JnYW5lcyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlcy9BTU80MF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzQwIChYVilcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGFjdGlmcyAobGVzIG3Dqm1lcyBxdSdBTU8yMClcbiAgICAgIC8vICogYXZlYyBwcmVzcXVlIHRvdXMgbGV1cnMgbWFuZGF0c1xuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXMgZXQgY2V1eCBkZXMgbMOpZ2lzbGF0dXJlcyBwcsOpY8OpZGVudGVzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXVycyBwYXJ0aXMgcG9saXRpcXVlcyBwcsOpY8OpZGVudHNcbiAgICAgIC8vICogbWFpcyBzYW5zIGxldXIgcGFydGkgcG9saXRpcXVlIGFjdHVlbCAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBiZWF1Y291cCBkJ29yZ2FuZXMgcsOpZsOpcmVuY8OpcywgeSBjb21wcmlzIGNldXggZGVzIGzDqWdpc2xhdHVyZXNcbiAgICAgIC8vIHByw6ljw6lkZW50ZXNcbiAgICAgIC8vICogbWFpcyBpbCBtYW5xdWUgbGUgeHNpVHlwZSBkZXMgb3JnYW5lc1xuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGVzIG9yZ2FuZXMgc8OpbmF0b3JpYXV4XG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZXMgbWluaXN0w6hyZXNcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxhIFByw6lzaWRlbmNlIGRlIGxhIFLDqXB1YmxpcXVlXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZSBDb25zZWlsIGNvbnN0aXR1dGlvbm5lbFxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMsIGNlIGTDqXDDtHQgZXN0IHVuIHNvdXMtZW5zZW1ibGUgc3RyaWN0IGRlIEFNTzMwIDpcbiAgICAgIC8vIElsIGEgbW9pbnMgZCdhY3RldXJzIGV0IGlsIHNvbnQgbW9pbnMgY29tcGxldHMuXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgb3JnYW5lcyA6XG4gICAgICAvLyBRdWFuZCBsJ29yZ2FuZSBlc3QgYXVzc2kgcHLDqXNlbnQgZGFucyBBTU8zMCwgaWwgdmF1dCBtaWV1eCBwcmVuZHJlIGNlbHVpXG4gICAgICAvLyBkJ0FNTzMwLCBjYXIgaWwgY29udGllbnQgbGUgeHNpVHlwZSAoYydlc3QgbGEgc2V1bGUgZGlmZsOpcmVuY2Ugc2VtYmxlLXQtaSkuXG4gICAgICAvLyBTaW5vbiwgaWwgZmF1dCBsZSBwcmVuZHJlIHNldWxlbWVudCBzaSBvbiBlc3QgaW50w6lyZXNzw6kgcGFyIGxlcyBsw6lnaXNsYXR1cmVzXG4gICAgICAvLyBwcsOpY8OpZGVudGVzLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PNDBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5ta2RpclN5bmModGFyZ2V0RGlyKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiRMOpcHV0w6lzIGFjdGlmcyBldCBvcmdhbmVzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2Ftby9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXMvQU1PNDBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU81MCAoWFZJSSlcbiAgICAgIC8vXG4gICAgICAvLyBBdHRlbnRpb24sIGNlIGZpY2hpZXIgbidlc3QgcGFzIG1pcyDDoCBqb3VyIHLDqWd1bGnDqHJlbWVudCAhXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgYWN0ZXVycyA6XG4gICAgICAvLyAqIGMnZXN0IHVuIHNvdXMgZW5zZW1ibGUgb2Jzb2zDqHRlIGQnQU1PMzBcbiAgICAgIC8vICogaWwgbWFucXVlIGxlcyB4c2lUeXBlIGF1eCBtYW5kYXRzXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgb3JnYW5lcyA6XG4gICAgICAvLyAqIGMnZXN0IHVuIHNvdXMgZW5zZW1ibGUgb2Jzb2zDqHRlIGQnQU1PMzBcbiAgICAgIC8vICogaWwgbWFucXVlIGxlcyB4c2lUeXBlXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgbCdBTU8zMCxcbiAgICAgIC8vIGRvbnQgaWwgZXN0IHVuIHNvdXMgZW5zZW1ibGUgb2Jzb2zDqHRlLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PNTBfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlc19YVklJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5EaXhTZXB0LFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubWtkaXJTeW5jKHRhcmdldERpcilcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwibWFuZGF0XCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwibWFuZGF0XCIpLFxuICAgICAgICApXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJvcmdhbmVcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJvcmdhbmVcIiksXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTpcbiAgICAgICAgXCJBY3RldXJzLCBtYW5kYXRzIGV0IG9yZ2FuZXMgZGUgbGEgWFZJScOobWUgbMOpZ2lzbGF0dXJlIChmaWNoaWVycyBzw6lwYXLDqXMsIHkgY29tcHJpcyBtYW5kYXRzKVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTcvYW1vL2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXMvQU1PNTBfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PNTAgKFhWSSlcbiAgICAgIC8vXG4gICAgICAvLyBBdHRlbnRpb24sIGNlIGZpY2hpZXIgbidlc3QgcGFzIG1pcyDDoCBqb3VyIHLDqWd1bGnDqHJlbWVudCAhXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgYWN0ZXVycyA6XG4gICAgICAvLyAqIGMnZXN0IHVuIHNvdXMgZW5zZW1ibGUgb2Jzb2zDqHRlIGQnQU1PMzBcbiAgICAgIC8vICogaWwgbWFucXVlIGxlcyB4c2lUeXBlIGF1eCBtYW5kYXRzXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgb3JnYW5lcyA6XG4gICAgICAvLyAqIGMnZXN0IHVuIHNvdXMgZW5zZW1ibGUgb2Jzb2zDqHRlIGQnQU1PMzBcbiAgICAgIC8vICogaWwgbWFucXVlIGxlcyB4c2lUeXBlXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgbCdBTU8zMCxcbiAgICAgIC8vIGRvbnQgaWwgZXN0IHVuIHNvdXMgZW5zZW1ibGUgb2Jzb2zDqHRlLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PNTBfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlc19YVkkuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubWtkaXJTeW5jKHRhcmdldERpcilcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwibWFuZGF0XCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwibWFuZGF0XCIpLFxuICAgICAgICApXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJvcmdhbmVcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJvcmdhbmVcIiksXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTpcbiAgICAgICAgXCJBY3RldXJzLCBtYW5kYXRzIGV0IG9yZ2FuZXMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmUgKGZpY2hpZXJzIHPDqXBhcsOpcywgeSBjb21wcmlzIG1hbmRhdHMpXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9hbW8vYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlcy9BTU81MF9hY3RldXJzX21hbmRhdHNfb3JnYW5lc19kaXZpc2VzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU81MCAoWFYpXG4gICAgICAvL1xuICAgICAgLy8gQXR0ZW50aW9uLCBjZSBmaWNoaWVyIG4nZXN0IHBhcyBtaXMgw6Agam91ciByw6lndWxpw6hyZW1lbnQgIVxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZSBhdXggbWFuZGF0c1xuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIG9yZ2FuZXMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZVxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAsXG4gICAgICAvLyBkb250IGlsIGVzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZS5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzUwX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXNfWFYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6XG4gICAgICAgIFwiQWN0ZXVycywgbWFuZGF0cyBldCBvcmdhbmVzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmUgKGZpY2hpZXJzIHPDqXBhcsOpcywgeSBjb21wcmlzIG1hbmRhdHMpXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlcy9BTU81MF9hY3RldXJzX21hbmRhdHNfb3JnYW5lc19kaXZpc2VzX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgXSxcbiAgYWdlbmRhczogW1xuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkFnZW5kYV9YVklJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5EaXhTZXB0LFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQWdlbmRhIGRlIGxhIFhWSUnDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTcvdnAvcmV1bmlvbnMvQWdlbmRhLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBZ2VuZGFfWFZJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkFnZW5kYSBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvdnAvcmV1bmlvbnMvQWdlbmRhLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBZ2VuZGFfWFYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkFnZW5kYSBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS92cC9yZXVuaW9ucy9BZ2VuZGFfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkFnZW5kYV9YSVYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1YXRvcnplLFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGUsXG4gICAgICB0aXRsZTogXCJBZ2VuZGEgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L3ZwL3JldW5pb25zL0FnZW5kYV9YSVYuanNvbi56aXBcIixcbiAgICB9LFxuICBdLFxuICBhbWVuZGVtZW50czogW1xuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkFtZW5kZW1lbnRzX1hWSUkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkRpeFNlcHQsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBbWVuZGVtZW50cyBkZSBsYSBYVklJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE3L2xvaS9hbWVuZGVtZW50c19kaXZfbGVnaXMvQW1lbmRlbWVudHMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkFtZW5kZW1lbnRzX1hWSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBbWVuZGVtZW50cyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvbG9pL2FtZW5kZW1lbnRzX2Rpdl9sZWdpcy9BbWVuZGVtZW50cy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQW1lbmRlbWVudHNfWFYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkFtZW5kZW1lbnRzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2xvaS9hbWVuZGVtZW50c19sZWdpcy9BbWVuZGVtZW50c19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAgLy8ge1xuICAgIC8vICAgZmlsZW5hbWU6IFwiQW1lbmRlbWVudHNfWElWLmpzb25cIixcbiAgICAvLyAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAvLyAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAvLyAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgIC8vICAgdGl0bGU6IFwiQW1lbmRlbWVudHMgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAvLyAgIHVybDpcbiAgICAvLyAgICAgXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L2xvaS9hbWVuZGVtZW50c19sZWdpc19YSVYvQW1lbmRlbWVudHNfWElWLmpzb24uemlwXCIsXG4gICAgLy8gfSxcbiAgXSxcbiAgZG9zc2llcnNMZWdpc2xhdGlmczogW1xuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWSUkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkRpeFNlcHQsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEb3NzaWVycyBsw6lnaXNsYXRpZnMgZGUgbGEgWFZJScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNy9sb2kvZG9zc2llcnNfbGVnaXNsYXRpZnMvRG9zc2llcnNfTGVnaXNsYXRpZnMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEb3NzaWVycyBsw6lnaXNsYXRpZnMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L2xvaS9kb3NzaWVyc19sZWdpc2xhdGlmcy9Eb3NzaWVyc19MZWdpc2xhdGlmcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiRG9zc2llcnNfTGVnaXNsYXRpZnNfWFYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkRvc3NpZXJzIGzDqWdpc2xhdGlmcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9sb2kvZG9zc2llcnNfbGVnaXNsYXRpZnMvRG9zc2llcnNfTGVnaXNsYXRpZnNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hJVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAgIHRpdGxlOiBcIkRvc3NpZXJzIGzDqWdpc2xhdGlmcyBkZSBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTQvbG9pL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzL0Rvc3NpZXJzX0xlZ2lzbGF0aWZzX1hJVi5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIHNjcnV0aW5zOiBbXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiU2NydXRpbnNfWFZJSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuRGl4U2VwdCxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlNjcnV0aW5zIGRlIGxhIFhWSUnDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTcvbG9pL3NjcnV0aW5zL1NjcnV0aW5zLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJTY3J1dGluc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiU2NydXRpbnMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L2xvaS9zY3J1dGlucy9TY3J1dGlucy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiU2NydXRpbnNfWFYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlNjcnV0aW5zIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2xvaS9zY3J1dGlucy9TY3J1dGluc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiU2NydXRpbnNfWElWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgICAgdGl0bGU6IFwiU2NydXRpbnMgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L2xvaS9zY3J1dGlucy9TY3J1dGluc19YSVYuanNvbi56aXBcIixcbiAgICB9LFxuICBdLFxuICBxdWVzdGlvbnM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJRdWVzdGlvbnNfZWNyaXRlc19YVklJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5EaXhTZXB0LFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiUXVlc3Rpb25zIMOpY3JpdGVzIGRlIGxhIFhWSUnDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTcvcXVlc3Rpb25zL3F1ZXN0aW9uc19lY3JpdGVzL1F1ZXN0aW9uc19lY3JpdGVzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJRdWVzdGlvbnNfZWNyaXRlc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiByZXBhaXJGb3JKc29uU3ViZGlyZWN0b3J5LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiUXVlc3Rpb25zIMOpY3JpdGVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9xdWVzdGlvbnMvcXVlc3Rpb25zX2Vjcml0ZXMvUXVlc3Rpb25zX2Vjcml0ZXMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIlF1ZXN0aW9uc19nb3V2ZXJuZW1lbnRfWFZJSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuRGl4U2VwdCxcbiAgICAgIHJlcGFpclppcDogcmVwYWlyRm9ySnNvblN1YmRpcmVjdG9yeSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlF1ZXN0aW9ucyBhdSBnb3V2ZXJuZW1lbnQgZGUgbGEgWFZJScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNy9xdWVzdGlvbnMvcXVlc3Rpb25zX2dvdXZlcm5lbWVudC9RdWVzdGlvbnNfZ291dmVybmVtZW50Lmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJRdWVzdGlvbnNfZ291dmVybmVtZW50X1hWSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJRdWVzdGlvbnMgYXUgZ291dmVybmVtZW50IGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9xdWVzdGlvbnMvcXVlc3Rpb25zX2dvdXZlcm5lbWVudC9RdWVzdGlvbnNfZ291dmVybmVtZW50Lmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJRdWVzdGlvbnNfb3JhbGVzX1hWSUkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkRpeFNlcHQsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJRdWVzdGlvbnMgb3JhbGVzIHNhbnMgZMOpYmF0cyBkZSBsYSBYVklJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE3L3F1ZXN0aW9ucy9xdWVzdGlvbnNfb3JhbGVzX3NhbnNfZGViYXQvUXVlc3Rpb25zX29yYWxlc19zYW5zX2RlYmF0Lmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJRdWVzdGlvbnNfb3JhbGVzX1hWSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IHJlcGFpckZvckpzb25TdWJkaXJlY3RvcnksXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJRdWVzdGlvbnMgb3JhbGVzIHNhbnMgZMOpYmF0cyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvcXVlc3Rpb25zL3F1ZXN0aW9uc19vcmFsZXNfc2Fuc19kZWJhdC9RdWVzdGlvbnNfb3JhbGVzX3NhbnNfZGViYXQuanNvbi56aXBcIixcbiAgICB9LFxuICBdLFxuICBjb21wdGVzUmVuZHVzU2VhbmNlczogW1xuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkNvbXB0ZXNfUmVuZHVzX1NlYW5jZXNfWFZJSS54bWxcIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5EaXhTZXB0LFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwieG1sXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQ29tcHRlcyByZW5kdXMgZGVzIHPDqWFuY2VzIHB1YmxpcXVlcyBkZSBsYSBYVklJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwczovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNy92cC9zeWNlcm9uYnJ1dC9zeXNlcm9uLnhtbC56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkNvbXB0ZXNfUmVuZHVzX1NlYW5jZXNfWFZJLnhtbFwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwieG1sXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQ29tcHRlcyByZW5kdXMgZGVzIHPDqWFuY2VzIHB1YmxpcXVlcyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L3ZwL3N5Y2Vyb25icnV0L3N5c2Vyb24ueG1sLnppcFwiLFxuICAgIH0sXG4gIF0sXG59XG5cbmNvbnN0IGRpcmVjdG9yeTJzY2hlbWE6IGFueSA9IHtcbiAgXCIuKkFnZW5kYV8uKlwiOiBcImFnZW5kYVwiLFxuICBcIi4qU2NydXRpbnNfLipcIjogXCJzY3J1dGluXCIsXG4gIFwiLipRdWVzdGlvbnNfLipcIjogXCJxdWVzdGlvblwiLFxuICBcIi4qQW1lbmRlbWVudHNfLipcIjogXCJhbWVuZGVtZW50XCIsXG4gIFwiLipEb3NzaWVyc19MZWdpc2xhdGlmc18uKi9kb2N1bWVudHNcIjogXCJkb2N1bWVudFwiLFxuICBcIi4qRG9zc2llcnNfTGVnaXNsYXRpZnNfLiovZG9zc2llcnNcIjogXCJkb3NzaWVyXCIsXG4gIFwiLiphY3RldXJzX21hbmRhdHNfb3JnYW5lcy9vcmdhbmVzXCI6IFwib3JnYW5lXCIsXG4gIFwiLiphY3RldXJzX21hbmRhdHNfb3JnYW5lcy9hY3RldXJzXCI6IFwiYWN0ZXVyXCIsXG4gIFwiLipBTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlLiovb3JnYW5lc1wiOlxuICAgIFwib3JnYW5lXCIsXG4gIFwiLipBTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlLiovYWN0ZXVyc1wiOlxuICAgIFwiYWN0ZXVyXCIsXG4gIFwiLipDb21wdGVzX1JlbmR1c19TZWFuY2VzXy4qXCI6IFwiZGViYXRcIixcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFzZXRzKCk6IGFueSB7XG4gIHJldHVybiBbXG4gICAgXCJBZ2VuZGFfWElWXCIsXG4gICAgXCJBZ2VuZGFfWFZcIixcbiAgICBcIkFnZW5kYV9YVklcIixcbiAgICBcIkFnZW5kYV9YVklJXCIsXG4gICAgXCJTY3J1dGluc19YSVZcIixcbiAgICBcIlNjcnV0aW5zX1hWXCIsXG4gICAgXCJTY3J1dGluc19YVklcIixcbiAgICBcIlNjcnV0aW5zX1hWSUlcIixcbiAgICBcIlF1ZXN0aW9uc19FY3JpdGVzX1hWSVwiLFxuICAgIFwiUXVlc3Rpb25zX0Vjcml0ZXNfWFZJSVwiLFxuICAgIFwiUXVlc3Rpb25zX0dvdXZlcm5lbWVudF9YVklcIixcbiAgICBcIlF1ZXN0aW9uc19Hb3V2ZXJuZW1lbnRfWFZJSVwiLFxuICAgIFwiQW1lbmRlbWVudHNfWElWXCIsXG4gICAgXCJBbWVuZGVtZW50c19YVlwiLFxuICAgIFwiQW1lbmRlbWVudHNfWFZJXCIsXG4gICAgXCJBbWVuZGVtZW50c19YVklJXCIsXG4gICAgXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YSVZcIixcbiAgICBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWXCIsXG4gICAgXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YVklcIixcbiAgICBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWSUlcIixcbiAgICBcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWVcIixcbiAgICBcImFjdGV1cnNfbWFuZGF0c19vcmdhbmVzXCIsXG4gICAgXCJDb21wdGVzX1JlbmR1c19TZWFuY2VzX1hWSVwiLFxuICAgIFwiQ29tcHRlc19SZW5kdXNfU2VhbmNlc19YVklJXCIsXG4gIF1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkRGF0YXNldChkaXI6IGFueSk6IGFueSB7XG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBnZXREYXRhc2V0cygpKSB7XG4gICAgaWYgKGRpci5pbmNsdWRlcyhkYXRhc2V0KSkgcmV0dXJuIHRydWVcbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjaGVtYXMoKTogYW55IHtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoZGlyZWN0b3J5MnNjaGVtYSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFzZXREaXJlY3RvcnlTY2hlbWEoZGF0YXNldDogc3RyaW5nKTogYW55IHtcbiAgbGV0IGRpcmVjdG9yaWVzOiBhbnlcbiAgaWYgKGRhdGFzZXQuaW5jbHVkZXMoXCJEb3NzaWVyc19MZWdpc2xhdGlmc19cIikpIHtcbiAgICBkaXJlY3RvcmllcyA9IFtgJHtkYXRhc2V0fS9kb2N1bWVudHNgLCBgJHtkYXRhc2V0fS9kb3NzaWVyc2BdXG4gIH0gZWxzZSBpZiAoXG4gICAgZGF0YXNldC5pbmNsdWRlcyhcImFjdGV1cnNfbWFuZGF0c19vcmdhbmVzXCIpIHx8XG4gICAgZGF0YXNldC5pbmNsdWRlcyhcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWVcIilcbiAgKSB7XG4gICAgZGlyZWN0b3JpZXMgPSBbYCR7ZGF0YXNldH0vb3JnYW5lc2AsIGAke2RhdGFzZXR9L2FjdGV1cnNgXVxuICB9IGVsc2Uge1xuICAgIGRpcmVjdG9yaWVzID0gW2RhdGFzZXRdXG4gIH1cblxuICBsZXQgcmVzdWx0cyA9IFtdXG4gIGZvciAoY29uc3QgZGlyZWN0b3J5IG9mIGRpcmVjdG9yaWVzKSB7XG4gICAgZm9yIChjb25zdCByZSBvZiBPYmplY3Qua2V5cyhkaXJlY3Rvcnkyc2NoZW1hKSkge1xuICAgICAgaWYgKG5ldyBSZWdFeHAocmUpLmV4ZWMoZGlyZWN0b3J5KSlcbiAgICAgICAgcmVzdWx0cy5wdXNoKFtgJHtkaXJlY3Rvcnl9LyoqLyouanNvbmAsIGRpcmVjdG9yeTJzY2hlbWFbcmVdXSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdHNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVEYXRhc2V0VXJsKGZpbGVuYW1lOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddIHwgbnVsbCB7XG4gIGNvbnN0IHJlID0gXCJeLiovKC4qKV9uZXR0b3llLyguKilcIlxuICBjb25zdCBtYXRjaCA9IG5ldyBSZWdFeHAocmUpLmV4ZWMoZmlsZW5hbWUpXG4gIGlmIChtYXRjaCA9PSBudWxsKSByZXR1cm4gbnVsbFxuICBsZXQgW2RhdGFzZXQsIGZpbGVdID0gW21hdGNoWzFdLCBtYXRjaFsyXV1cbiAgaWYgKGRhdGFzZXQgPT0gXCJBTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlXCIpXG4gICAgZGF0YXNldCA9IFwiYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNcIlxuICByZXR1cm4gW2RhdGFzZXQsIGZpbGVdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmVXBzdHJlYW0oZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGFzZXRVcmwgPSBmaWxlRGF0YXNldFVybChmaWxlbmFtZSlcbiAgaWYgKGRhdGFzZXRVcmwgPT0gbnVsbCkgcmV0dXJuIGZpbGVuYW1lXG4gIGNvbnN0IFtkYXRhc2V0LCBmaWxlXSA9IGRhdGFzZXRVcmxcbiAgY29uc3Qgc3VtID0gY3JlYXRlSGFzaChcInNoYTFcIikudXBkYXRlKGZpbGUpLmRpZ2VzdChcImhleFwiKS50b1N0cmluZygpXG4gIHJldHVybiBgWyR7ZmlsZX1dKGh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL2RhdGEudHJpY290ZXVzZXMuZnIvJHtkYXRhc2V0fS8tL2NvbXBhcmUvdXBzdHJlYW0uLi5tYXN0ZXIjJHtzdW19KWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hc3RlclVybChmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YXNldFVybCA9IGZpbGVEYXRhc2V0VXJsKGZpbGVuYW1lKVxuICBpZiAoZGF0YXNldFVybCA9PSBudWxsKSByZXR1cm4gZmlsZW5hbWVcbiAgY29uc3QgW2RhdGFzZXQsIGZpbGVdID0gZGF0YXNldFVybFxuICByZXR1cm4gYFske2ZpbGV9XShodHRwczovL2dpdC5lbi1yb290Lm9yZy90cmljb3RldXNlcy9kYXRhLnRyaWNvdGV1c2VzLmZyLyR7ZGF0YXNldH0vLS90cmVlL21hc3Rlci8ke2ZpbGV9KWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckJ5TGVnaXNsYXR1cmUoXG4gIGRhdGFzZXRzOiBEYXRhc2V0cyxcbiAgbGVnaXNsYXR1cmU6IGFueSxcbik6IERhdGFzZXRzIHtcbiAgLy8gV2hlbiBhIGdpdmVuIGxlZ2lzbGF0dXJlIGlzIDAsIGl0IGlzIHRoZSBzYW1lIGFzIGdpdmluZyBubyBsZWdpc2xhdHVyZTpcbiAgLy8gSXQgbWVhbnMgXCJldmVyeSBsZWdpc2xhdHVyZXNcIi5cbiAgaWYgKGxlZ2lzbGF0dXJlICE9PSAwICYmIGxlZ2lzbGF0dXJlICE9PSB1bmRlZmluZWQpIHtcbiAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZGF0YXNldHMpKSB7XG4gICAgICBkYXRhc2V0c1trZXkgYXMga2V5b2YgdHlwZW9mIGRhdGFzZXRzXSA9IHZhbHVlLmZpbHRlcihcbiAgICAgICAgKGRhdGFzZXQ6IHsgbGVnaXNsYXR1cmU6IGFueSB9KSA9PlxuICAgICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgPT09IExlZ2lzbGF0dXJlLkFsbCB8fFxuICAgICAgICAgIGxlZ2lzbGF0dXJlID09PSBkYXRhc2V0LmxlZ2lzbGF0dXJlLFxuICAgICAgKVxuICAgIH1cbiAgfVxuICByZXR1cm4gZGF0YXNldHNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVuYWJsZWREYXRhc2V0cyhjYXRlZ29yaWVzOiBhbnkpOiBFbmFibGVkRGF0YXNldHMge1xuICBjYXRlZ29yaWVzLm1hcCgoZGF0YXNldE5hbWU6IHN0cmluZykgPT5cbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgICAoRW5hYmxlZERhdGFzZXRzIGFzIGFueSBhcyB7IFtuYW1lOiBzdHJpbmddOiBFbmFibGVkRGF0YXNldHMgfSlbXG4gICAgICAgIGRhdGFzZXROYW1lXG4gICAgICBdLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgYFVua25vd24gbmFtZSBvZiBkYXRhc2V0OiAke2RhdGFzZXROYW1lfWAsXG4gICAgKSxcbiAgKVxuXG4gIHJldHVybiBjYXRlZ29yaWVzLnJlZHVjZShcbiAgICAoZW5hYmxlZERhdGFzZXRzOiBFbmFibGVkRGF0YXNldHMsIGRhdGFzZXROYW1lOiBzdHJpbmcpOiBFbmFibGVkRGF0YXNldHMgPT5cbiAgICAgIGVuYWJsZWREYXRhc2V0cyB8XG4gICAgICAoRW5hYmxlZERhdGFzZXRzIGFzIGFueSBhcyB7IFtuYW1lOiBzdHJpbmddOiBFbmFibGVkRGF0YXNldHMgfSlbXG4gICAgICAgIGRhdGFzZXROYW1lXG4gICAgICBdLFxuICAgIEVuYWJsZWREYXRhc2V0cy5Ob25lLFxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVUsUUFBUSxRQUFRO0FBQ25DLE9BQU9DLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLEVBQUUsTUFBTSxVQUFVO0FBQ3pCLE9BQU9DLElBQUksTUFBTSxNQUFNO0FBQUEsU0FFZEMsV0FBVztBQXNCcEIsV0FBWUMsZ0JBQWdCLDBCQUFoQkEsZ0JBQWdCO0VBQWhCQSxnQkFBZ0IsQ0FBaEJBLGdCQUFnQjtFQUFoQkEsZ0JBQWdCLENBQWhCQSxnQkFBZ0I7RUFBQSxPQUFoQkEsZ0JBQWdCO0FBQUE7QUFLNUIsV0FBWUMsZUFBZSwwQkFBZkEsZUFBZTtFQUFmQSxlQUFlLENBQWZBLGVBQWU7RUFBZkEsZUFBZSxDQUFmQSxlQUFlO0VBQWZBLGVBQWUsQ0FBZkEsZUFBZTtFQUFmQSxlQUFlLENBQWZBLGVBQWU7RUFBZkEsZUFBZSxDQUFmQSxlQUFlO0VBQWZBLGVBQWUsQ0FBZkEsZUFBZTtFQUFmQSxlQUFlLENBQWZBLGVBQWU7RUFBZkEsZUFBZSxDQUFmQSxlQUFlO0VBQWZBLGVBQWUsQ0FBZkEsZUFBZTtFQUFmQSxlQUFlLENBQWZBLGVBQWU7RUFBQSxPQUFmQSxlQUFlO0FBQUE7O0FBb0IzQjtBQUNBO0FBQ0E7QUFDQSxTQUFTQyx5QkFBeUJBLENBQUNDLE9BQWdCLEVBQUVDLE9BQWUsRUFBRTtFQUNwRSxNQUFNQyxTQUFTLEdBQUdQLElBQUksQ0FBQ1EsSUFBSSxDQUFDRixPQUFPLEVBQUVELE9B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
|
package/lib/dates.js
CHANGED
|
@@ -23,7 +23,6 @@ require("core-js/modules/es.regexp.exec.js");
|
|
|
23
23
|
require("core-js/modules/es.regexp.to-string.js");
|
|
24
24
|
require("core-js/modules/es.string.ends-with.js");
|
|
25
25
|
require("core-js/modules/es.string.replace.js");
|
|
26
|
-
require("core-js/modules/web.url.to-json.js");
|
|
27
26
|
var _format = require("date-fns/format");
|
|
28
27
|
var _fr = require("date-fns/locale/fr");
|
|
29
28
|
var _parse = require("date-fns/parse");
|
|
@@ -31,7 +30,7 @@ var _parseISO = require("date-fns/parseISO");
|
|
|
31
30
|
// Patch Date.prototype.toJSON to ensure that dates keep their timezone when converted to strings.
|
|
32
31
|
// https://stackoverflow.com/questions/31096130/how-to-json-stringify-a-javascript-date-and-preserve-timezone
|
|
33
32
|
var existingDateToJson = exports.existingDateToJson = Date.prototype.toJSON;
|
|
34
|
-
var
|
|
33
|
+
var _patchedDateToJson = exports.patchedDateToJson = function patchedDateToJson() {
|
|
35
34
|
try {
|
|
36
35
|
var hours = this.getHours();
|
|
37
36
|
var minutes = this.getMinutes();
|
|
@@ -55,7 +54,7 @@ var patchedDateToJson = exports.patchedDateToJson = function patchedDateToJson()
|
|
|
55
54
|
} catch (e) {
|
|
56
55
|
Date.prototype.toJSON = existingDateToJson;
|
|
57
56
|
var jsonDate = this.toJSON();
|
|
58
|
-
Date.prototype.toJSON =
|
|
57
|
+
Date.prototype.toJSON = _patchedDateToJson;
|
|
59
58
|
return jsonDate;
|
|
60
59
|
}
|
|
61
60
|
};
|
|
@@ -122,4 +121,4 @@ function frenchTimeFromDateOrString(dateOrString) {
|
|
|
122
121
|
function localIso8601StringFromDate(date) {
|
|
123
122
|
return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().split("T")[0];
|
|
124
123
|
}
|
|
125
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZm9ybWF0IiwicmVxdWlyZSIsIl9mciIsIl9wYXJzZSIsIl9wYXJzZUlTTyIsImV4aXN0aW5nRGF0ZVRvSnNvbiIsImV4cG9ydHMiLCJEYXRlIiwicHJvdG90eXBlIiwidG9KU09OIiwicGF0Y2hlZERhdGVUb0pzb24iLCJob3VycyIsImdldEhvdXJzIiwibWludXRlcyIsImdldE1pbnV0ZXMiLCJzZWNvbmRzIiwiZ2V0U2Vjb25kcyIsIm1pbGxpc2Vjb25kcyIsImdldE1pbGxpc2Vjb25kcyIsInRpbWV6b25lT2Zmc2V0SW5Ib3VycyIsImdldFRpbWV6b25lT2Zmc2V0IiwidG9JU09TdHJpbmciLCJzcGxpdCIsImNvcnJlY3RlZERhdGUiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsInNldEhvdXJzIiwiaXNvIiwicmVwbGFjZSIsInNpZ24iLCJsZWFkaW5nWmVybyIsIk1hdGgiLCJhYnMiLCJ0b1N0cmluZyIsImUiLCJqc29uRGF0ZSIsImZyZW5jaERhdGVGb3JtYXQiLCJJbnRsIiwiRGF0ZVRpbWVGb3JtYXQiLCJkYXkiLCJtb250aCIsIndlZWtkYXkiLCJ5ZWFyIiwiZnJlbmNoRGF0ZVNhbWVZZWFyU2hvcnRGb3JtYXQiLCJmcmVuY2hUaW1lRm9ybWF0IiwiaG91ciIsIm1pbnV0ZSIsImRhdGVGcm9tTnVsbGFibGVEYXRlT3JJc29TdHJpbmciLCJkYXRlIiwiZGVmYXVsdFZhbHVlIiwicGFyc2VJU08iLCJkYXRlRnJvbVllYXJNb250aERheVRpbWV6b25lU3RyaW5nIiwiZGF0ZVN0cmluZyIsInBhcnNlIiwiZGlzcGxheURhdGVGcm9tTG9jYWxJc29TdHJpbmciLCJmb3JtYXQiLCJsb2NhbGUiLCJmckxvY2FsZSIsImVuZHNXaXRoIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiZm9ybWF0UmVsYXRpdmVGcmVuY2hUaW1lIiwibm93IiwiZnJlbmNoRGF0ZVdpdGhvdXREYXlPZldlZWtGcm9tRGF0ZU9yU3RyaW5nIiwiZGF0ZU9yU3RyaW5nIiwiZnJlbmNoVGltZUZyb21EYXRlT3JTdHJpbmciLCJsb2NhbElzbzg2MDFTdHJpbmdGcm9tRGF0ZSIsImdldFRpbWUiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSBcImRhdGUtZm5zL2Zvcm1hdFwiXG5pbXBvcnQgeyBmciBhcyBmckxvY2FsZSB9IGZyb20gXCJkYXRlLWZucy9sb2NhbGUvZnJcIlxuaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2VcIlxuaW1wb3J0IHsgcGFyc2VJU08gfSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2VJU09cIlxuXG4vLyBQYXRjaCBEYXRlLnByb3RvdHlwZS50b0pTT04gdG8gZW5zdXJlIHRoYXQgZGF0ZXMga2VlcCB0aGVpciB0aW1lem9uZSB3aGVuIGNvbnZlcnRlZCB0byBzdHJpbmdzLlxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzEwOTYxMzAvaG93LXRvLWpzb24tc3RyaW5naWZ5LWEtamF2YXNjcmlwdC1kYXRlLWFuZC1wcmVzZXJ2ZS10aW1lem9uZVxuZXhwb3J0IGNvbnN0IGV4aXN0aW5nRGF0ZVRvSnNvbiA9IERhdGUucHJvdG90eXBlLnRvSlNPTlxuZXhwb3J0IGNvbnN0IHBhdGNoZWREYXRlVG9Kc29uID0gZnVuY3Rpb24gKHRoaXM6IERhdGUpOiBzdHJpbmcge1xuICB0cnkge1xuICAgIGNvbnN0IGhvdXJzID0gdGhpcy5nZXRIb3VycygpXG4gICAgY29uc3QgbWludXRlcyA9IHRoaXMuZ2V0TWludXRlcygpXG4gICAgY29uc3Qgc2Vjb25kcyA9IHRoaXMuZ2V0U2Vjb25kcygpXG4gICAgY29uc3QgbWlsbGlzZWNvbmRzID0gdGhpcy5nZXRNaWxsaXNlY29uZHMoKVxuXG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXRJbkhvdXJzID0gLSh0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCkgLyA2MCkgLy9VVEMgbWludXMgbG9jYWwgdGltZVxuICAgIC8vIFdoZW4geWVhciA8PSAxOTAwLCB0aW1lem9uZU9mZnNldEluSG91cnMgaXMgMC4xNSwgbWludXRlcyBpcyA5IGFuZCBzZWNvbmRzIGlzIDIxIVxuICAgIGlmIChcbiAgICAgICh0aW1lem9uZU9mZnNldEluSG91cnMgPT09IDAuMTUgJiZcbiAgICAgICAgaG91cnMgPT09IDAgJiZcbiAgICAgICAgbWludXRlcyA9PT0gOSAmJlxuICAgICAgICBzZWNvbmRzID09PSAyMSkgfHxcbiAgICAgIChob3VycyAtIHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA9PT0gMCAmJlxuICAgICAgICBtaW51dGVzID09PSAwICYmXG4gICAgICAgIHNlY29uZHMgPT09IDAgJiZcbiAgICAgICAgbWlsbGlzZWNvbmRzID09PSAwKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF1cbiAgICB9XG5cbiAgICAvLyBJdCdzIGEgYml0IHVuZm9ydHVuYXRlIHRoYXQgd2UgbmVlZCB0dGltZXpvbmVPZmZzZXRJbkhvdXJzID0gLSh0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCkgLyA2MCkgbyBjb25zdHJ1Y3QgYSBuZXcgRGF0ZSBpbnN0YW5jZVxuICAgIC8vICh3ZSBkb24ndCB3YW50IF90aGlzXyBEYXRlIGluc3RhbmNlIHRvIGJlIG1vZGlmaWVkKS5cbiAgICBjb25zdCBjb3JyZWN0ZWREYXRlID0gbmV3IERhdGUoXG4gICAgICB0aGlzLmdldEZ1bGxZZWFyKCksXG4gICAgICB0aGlzLmdldE1vbnRoKCksXG4gICAgICB0aGlzLmdldERhdGUoKSxcbiAgICAgIGhvdXJzLFxuICAgICAgbWludXRlcyxcbiAgICAgIHNlY29uZHMsXG4gICAgICBtaWxsaXNlY29uZHMsXG4gICAgKVxuICAgIGNvcnJlY3RlZERhdGUuc2V0SG91cnModGhpcy5nZXRIb3VycygpICsgdGltZXpvbmVPZmZzZXRJbkhvdXJzKVxuICAgIC8vIFJlbW92ZSBtaWxsaXNlY29uZHMgJiB0cmFpbGluZyBcIlpcIi5cbiAgICBjb25zdCBpc28gPSBjb3JyZWN0ZWREYXRlLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvKFxcLjArKT9aJC8sIFwiXCIpXG4gICAgY29uc3Qgc2lnbiA9IHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA+PSAwID8gXCIrXCIgOiBcIi1cIlxuICAgIGNvbnN0IGxlYWRpbmdaZXJvID0gTWF0aC5hYnModGltZXpvbmVPZmZzZXRJbkhvdXJzKSA8IDEwID8gXCIwXCIgOiBcIlwiXG4gICAgcmV0dXJuIChcbiAgICAgIGlzbyArXG4gICAgICBzaWduICtcbiAgICAgIGxlYWRpbmdaZXJvICtcbiAgICAgIE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMF0gK1xuICAgICAgXCI6MDBcIlxuICAgIClcbiAgfSBjYXRjaCAoZSkge1xuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IGV4aXN0aW5nRGF0ZVRvSnNvblxuICAgIGNvbnN0IGpzb25EYXRlID0gdGhpcy50b0pTT04oKVxuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG4gICAgcmV0dXJuIGpzb25EYXRlXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgZGF5OiBcIm51bWVyaWNcIixcbiAgbW9udGg6IFwibG9uZ1wiLFxuICB3ZWVrZGF5OiBcImxvbmdcIixcbiAgeWVhcjogXCJudW1lcmljXCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJmci1GUlwiLCB7XG4gIGRheTogXCJudW1lcmljXCIsXG4gIG1vbnRoOiBcInNob3J0XCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaFRpbWVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgaG91cjogXCJudW1lcmljXCIsXG4gIG1pbnV0ZTogXCIyLWRpZ2l0XCIsXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyhcbiAgZGF0ZTogRGF0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsXG4gIGRlZmF1bHRWYWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCB8IG51bGwsXG4pOiBEYXRlIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBkYXRlXG4gIH1cbiAgaWYgKHR5cGVvZiBkYXRlID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHBhcnNlSVNPKGRhdGUpXG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRWYWx1ZVxufVxuXG4vLy8gQ29udmVydCBzdHJpbmdzIGxpa2UgXCIyMDE3LTExLTI0KzAxOjAwXCIgdG8gZGF0ZXMuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21ZZWFyTW9udGhEYXlUaW1lem9uZVN0cmluZyhkYXRlU3RyaW5nOiBzdHJpbmcpOiBEYXRlIHtcbiAgcmV0dXJuIHBhcnNlKGRhdGVTdHJpbmcsIFwieXl5eS1NTS1kZFhYWFwiLCBuZXcgRGF0ZSgpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheURhdGVGcm9tTG9jYWxJc29TdHJpbmcoZGF0ZVN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0ZSA9IHBhcnNlSVNPKGRhdGVTdHJpbmcpXG4gIGRhdGVTdHJpbmcgPSBmb3JtYXQoZGF0ZSwgXCJFRUVFIGQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJlbGF0aXZlRnJlbmNoVGltZShkYXRlOiBEYXRlLCBub3c6IERhdGUpIHtcbiAgaWYgKFxuICAgIGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0gbm93LmdldEZ1bGxZZWFyKCkgJiZcbiAgICBkYXRlLmdldE1vbnRoKCkgPT09IG5vdy5nZXRNb250aCgpICYmXG4gICAgZGF0ZS5nZXREYXRlKCkgPT09IG5vdy5nZXREYXRlKClcbiAgKSB7XG4gICAgcmV0dXJuIGZyZW5jaFRpbWVGb3JtYXQuZm9ybWF0KGRhdGUpXG4gIH1cbiAgcmV0dXJuIGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0LmZvcm1hdChkYXRlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJlbmNoRGF0ZVdpdGhvdXREYXlPZldlZWtGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICBsZXQgZGF0ZVN0cmluZyA9IGZvcm1hdChkYXRlLCBcImQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyZW5jaFRpbWVGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICByZXR1cm4gZm9ybWF0KGRhdGUsIFwiSCdoJ21tXCIsIHsgbG9jYWxlOiBmckxvY2FsZSB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxJc284NjAxU3RyaW5nRnJvbURhdGUoZGF0ZTogRGF0ZSkge1xuICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMClcbiAgICAudG9JU09TdHJpbmcoKVxuICAgIC5zcGxpdChcIlRcIilbMF1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxHQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFFQTtBQUNBO0FBQ08sSUFBTUksa0JBQWtCLEdBQUFDLE9BQUEsQ0FBQUQsa0JBQUEsR0FBR0UsSUFBSSxDQUFDQyxTQUFTLENBQUNDLE1BQU07QUFDaEQsSUFBTUMsaUJBQWlCLEdBQUFKLE9BQUEsQ0FBQUksaUJBQUEsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBLEVBQWlDO0VBQzdELElBQUk7SUFDRixJQUFNQyxLQUFLLEdBQUcsSUFBSSxDQUFDQyxRQUFRLENBQUMsQ0FBQztJQUM3QixJQUFNQyxPQUFPLEdBQUcsSUFBSSxDQUFDQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxJQUFNQyxPQUFPLEdBQUcsSUFBSSxDQUFDQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxJQUFNQyxZQUFZLEdBQUcsSUFBSSxDQUFDQyxlQUFlLENBQUMsQ0FBQztJQUUzQyxJQUFNQyxxQkFBcUIsR0FBRyxFQUFFLElBQUksQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFDO0lBQy9EO0lBQ0EsSUFDR0QscUJBQXFCLEtBQUssSUFBSSxJQUM3QlIs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
|
|
124
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZm9ybWF0IiwicmVxdWlyZSIsIl9mciIsIl9wYXJzZSIsIl9wYXJzZUlTTyIsImV4aXN0aW5nRGF0ZVRvSnNvbiIsImV4cG9ydHMiLCJEYXRlIiwicHJvdG90eXBlIiwidG9KU09OIiwicGF0Y2hlZERhdGVUb0pzb24iLCJob3VycyIsImdldEhvdXJzIiwibWludXRlcyIsImdldE1pbnV0ZXMiLCJzZWNvbmRzIiwiZ2V0U2Vjb25kcyIsIm1pbGxpc2Vjb25kcyIsImdldE1pbGxpc2Vjb25kcyIsInRpbWV6b25lT2Zmc2V0SW5Ib3VycyIsImdldFRpbWV6b25lT2Zmc2V0IiwidG9JU09TdHJpbmciLCJzcGxpdCIsImNvcnJlY3RlZERhdGUiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsInNldEhvdXJzIiwiaXNvIiwicmVwbGFjZSIsInNpZ24iLCJsZWFkaW5nWmVybyIsIk1hdGgiLCJhYnMiLCJ0b1N0cmluZyIsImUiLCJqc29uRGF0ZSIsImZyZW5jaERhdGVGb3JtYXQiLCJJbnRsIiwiRGF0ZVRpbWVGb3JtYXQiLCJkYXkiLCJtb250aCIsIndlZWtkYXkiLCJ5ZWFyIiwiZnJlbmNoRGF0ZVNhbWVZZWFyU2hvcnRGb3JtYXQiLCJmcmVuY2hUaW1lRm9ybWF0IiwiaG91ciIsIm1pbnV0ZSIsImRhdGVGcm9tTnVsbGFibGVEYXRlT3JJc29TdHJpbmciLCJkYXRlIiwiZGVmYXVsdFZhbHVlIiwicGFyc2VJU08iLCJkYXRlRnJvbVllYXJNb250aERheVRpbWV6b25lU3RyaW5nIiwiZGF0ZVN0cmluZyIsInBhcnNlIiwiZGlzcGxheURhdGVGcm9tTG9jYWxJc29TdHJpbmciLCJmb3JtYXQiLCJsb2NhbGUiLCJmckxvY2FsZSIsImVuZHNXaXRoIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiZm9ybWF0UmVsYXRpdmVGcmVuY2hUaW1lIiwibm93IiwiZnJlbmNoRGF0ZVdpdGhvdXREYXlPZldlZWtGcm9tRGF0ZU9yU3RyaW5nIiwiZGF0ZU9yU3RyaW5nIiwiZnJlbmNoVGltZUZyb21EYXRlT3JTdHJpbmciLCJsb2NhbElzbzg2MDFTdHJpbmdGcm9tRGF0ZSIsImdldFRpbWUiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSBcImRhdGUtZm5zL2Zvcm1hdFwiXG5pbXBvcnQgeyBmciBhcyBmckxvY2FsZSB9IGZyb20gXCJkYXRlLWZucy9sb2NhbGUvZnJcIlxuaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2VcIlxuaW1wb3J0IHsgcGFyc2VJU08gfSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2VJU09cIlxuXG4vLyBQYXRjaCBEYXRlLnByb3RvdHlwZS50b0pTT04gdG8gZW5zdXJlIHRoYXQgZGF0ZXMga2VlcCB0aGVpciB0aW1lem9uZSB3aGVuIGNvbnZlcnRlZCB0byBzdHJpbmdzLlxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzEwOTYxMzAvaG93LXRvLWpzb24tc3RyaW5naWZ5LWEtamF2YXNjcmlwdC1kYXRlLWFuZC1wcmVzZXJ2ZS10aW1lem9uZVxuZXhwb3J0IGNvbnN0IGV4aXN0aW5nRGF0ZVRvSnNvbiA9IERhdGUucHJvdG90eXBlLnRvSlNPTlxuZXhwb3J0IGNvbnN0IHBhdGNoZWREYXRlVG9Kc29uID0gZnVuY3Rpb24gKHRoaXM6IERhdGUpOiBzdHJpbmcge1xuICB0cnkge1xuICAgIGNvbnN0IGhvdXJzID0gdGhpcy5nZXRIb3VycygpXG4gICAgY29uc3QgbWludXRlcyA9IHRoaXMuZ2V0TWludXRlcygpXG4gICAgY29uc3Qgc2Vjb25kcyA9IHRoaXMuZ2V0U2Vjb25kcygpXG4gICAgY29uc3QgbWlsbGlzZWNvbmRzID0gdGhpcy5nZXRNaWxsaXNlY29uZHMoKVxuXG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXRJbkhvdXJzID0gLSh0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCkgLyA2MCkgLy9VVEMgbWludXMgbG9jYWwgdGltZVxuICAgIC8vIFdoZW4geWVhciA8PSAxOTAwLCB0aW1lem9uZU9mZnNldEluSG91cnMgaXMgMC4xNSwgbWludXRlcyBpcyA5IGFuZCBzZWNvbmRzIGlzIDIxIVxuICAgIGlmIChcbiAgICAgICh0aW1lem9uZU9mZnNldEluSG91cnMgPT09IDAuMTUgJiZcbiAgICAgICAgaG91cnMgPT09IDAgJiZcbiAgICAgICAgbWludXRlcyA9PT0gOSAmJlxuICAgICAgICBzZWNvbmRzID09PSAyMSkgfHxcbiAgICAgIChob3VycyAtIHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA9PT0gMCAmJlxuICAgICAgICBtaW51dGVzID09PSAwICYmXG4gICAgICAgIHNlY29uZHMgPT09IDAgJiZcbiAgICAgICAgbWlsbGlzZWNvbmRzID09PSAwKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF1cbiAgICB9XG5cbiAgICAvLyBJdCdzIGEgYml0IHVuZm9ydHVuYXRlIHRoYXQgd2UgbmVlZCB0dGltZXpvbmVPZmZzZXRJbkhvdXJzID0gLSh0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCkgLyA2MCkgbyBjb25zdHJ1Y3QgYSBuZXcgRGF0ZSBpbnN0YW5jZVxuICAgIC8vICh3ZSBkb24ndCB3YW50IF90aGlzXyBEYXRlIGluc3RhbmNlIHRvIGJlIG1vZGlmaWVkKS5cbiAgICBjb25zdCBjb3JyZWN0ZWREYXRlID0gbmV3IERhdGUoXG4gICAgICB0aGlzLmdldEZ1bGxZZWFyKCksXG4gICAgICB0aGlzLmdldE1vbnRoKCksXG4gICAgICB0aGlzLmdldERhdGUoKSxcbiAgICAgIGhvdXJzLFxuICAgICAgbWludXRlcyxcbiAgICAgIHNlY29uZHMsXG4gICAgICBtaWxsaXNlY29uZHMsXG4gICAgKVxuICAgIGNvcnJlY3RlZERhdGUuc2V0SG91cnModGhpcy5nZXRIb3VycygpICsgdGltZXpvbmVPZmZzZXRJbkhvdXJzKVxuICAgIC8vIFJlbW92ZSBtaWxsaXNlY29uZHMgJiB0cmFpbGluZyBcIlpcIi5cbiAgICBjb25zdCBpc28gPSBjb3JyZWN0ZWREYXRlLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvKFxcLjArKT9aJC8sIFwiXCIpXG4gICAgY29uc3Qgc2lnbiA9IHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA+PSAwID8gXCIrXCIgOiBcIi1cIlxuICAgIGNvbnN0IGxlYWRpbmdaZXJvID0gTWF0aC5hYnModGltZXpvbmVPZmZzZXRJbkhvdXJzKSA8IDEwID8gXCIwXCIgOiBcIlwiXG4gICAgcmV0dXJuIChcbiAgICAgIGlzbyArXG4gICAgICBzaWduICtcbiAgICAgIGxlYWRpbmdaZXJvICtcbiAgICAgIE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMF0gK1xuICAgICAgXCI6MDBcIlxuICAgIClcbiAgfSBjYXRjaCAoZSkge1xuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IGV4aXN0aW5nRGF0ZVRvSnNvblxuICAgIGNvbnN0IGpzb25EYXRlID0gdGhpcy50b0pTT04oKVxuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG4gICAgcmV0dXJuIGpzb25EYXRlXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgZGF5OiBcIm51bWVyaWNcIixcbiAgbW9udGg6IFwibG9uZ1wiLFxuICB3ZWVrZGF5OiBcImxvbmdcIixcbiAgeWVhcjogXCJudW1lcmljXCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJmci1GUlwiLCB7XG4gIGRheTogXCJudW1lcmljXCIsXG4gIG1vbnRoOiBcInNob3J0XCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaFRpbWVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgaG91cjogXCJudW1lcmljXCIsXG4gIG1pbnV0ZTogXCIyLWRpZ2l0XCIsXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyhcbiAgZGF0ZTogRGF0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsXG4gIGRlZmF1bHRWYWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCB8IG51bGwsXG4pOiBEYXRlIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBkYXRlXG4gIH1cbiAgaWYgKHR5cGVvZiBkYXRlID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHBhcnNlSVNPKGRhdGUpXG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRWYWx1ZVxufVxuXG4vLy8gQ29udmVydCBzdHJpbmdzIGxpa2UgXCIyMDE3LTExLTI0KzAxOjAwXCIgdG8gZGF0ZXMuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21ZZWFyTW9udGhEYXlUaW1lem9uZVN0cmluZyhkYXRlU3RyaW5nOiBzdHJpbmcpOiBEYXRlIHtcbiAgcmV0dXJuIHBhcnNlKGRhdGVTdHJpbmcsIFwieXl5eS1NTS1kZFhYWFwiLCBuZXcgRGF0ZSgpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheURhdGVGcm9tTG9jYWxJc29TdHJpbmcoZGF0ZVN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0ZSA9IHBhcnNlSVNPKGRhdGVTdHJpbmcpXG4gIGRhdGVTdHJpbmcgPSBmb3JtYXQoZGF0ZSwgXCJFRUVFIGQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJlbGF0aXZlRnJlbmNoVGltZShkYXRlOiBEYXRlLCBub3c6IERhdGUpIHtcbiAgaWYgKFxuICAgIGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0gbm93LmdldEZ1bGxZZWFyKCkgJiZcbiAgICBkYXRlLmdldE1vbnRoKCkgPT09IG5vdy5nZXRNb250aCgpICYmXG4gICAgZGF0ZS5nZXREYXRlKCkgPT09IG5vdy5nZXREYXRlKClcbiAgKSB7XG4gICAgcmV0dXJuIGZyZW5jaFRpbWVGb3JtYXQuZm9ybWF0KGRhdGUpXG4gIH1cbiAgcmV0dXJuIGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0LmZvcm1hdChkYXRlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJlbmNoRGF0ZVdpdGhvdXREYXlPZldlZWtGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICBsZXQgZGF0ZVN0cmluZyA9IGZvcm1hdChkYXRlLCBcImQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyZW5jaFRpbWVGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICByZXR1cm4gZm9ybWF0KGRhdGUsIFwiSCdoJ21tXCIsIHsgbG9jYWxlOiBmckxvY2FsZSB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxJc284NjAxU3RyaW5nRnJvbURhdGUoZGF0ZTogRGF0ZSkge1xuICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMClcbiAgICAudG9JU09TdHJpbmcoKVxuICAgIC5zcGxpdChcIlRcIilbMF1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLEdBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUgsT0FBQTtBQUVBO0FBQ0E7QUFDTyxJQUFNSSxrQkFBa0IsR0FBQUMsT0FBQSxDQUFBRCxrQkFBQSxHQUFHRSxJQUFJLENBQUNDLFNBQVMsQ0FBQ0MsTUFBTTtBQUNoRCxJQUFNQyxrQkFBaUIsR0FBQUosT0FBQSxDQUFBSSxpQkFBQSxHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBaUM7RUFDN0QsSUFBSTtJQUNGLElBQU1DLEtBQUssR0FBRyxJQUFJLENBQUNDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLElBQU1DLE9BQU8sR0FBRyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLElBQU1DLE9BQU8sR0FBRyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLElBQU1DLFlBQVksR0FBRyxJQUFJLENBQUNDLGVBQWUsQ0FBQyxDQUFDO0lBRTNDLElBQU1DLHFCQUFxQixHQUFHLEVBQUUsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUM7SUFDL0Q7SUFDQSxJQUNHRCxxQkFBcUIsS0FBSyxJQUFJLElBQzdCUixL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
|
package/lib/dates.mjs
CHANGED
|
@@ -97,4 +97,4 @@ export function frenchTimeFromDateOrString(dateOrString) {
|
|
|
97
97
|
export function localIso8601StringFromDate(date) {
|
|
98
98
|
return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().split("T")[0];
|
|
99
99
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3JtYXQiLCJmciIsImZyTG9jYWxlIiwicGFyc2UiLCJwYXJzZUlTTyIsImV4aXN0aW5nRGF0ZVRvSnNvbiIsIkRhdGUiLCJwcm90b3R5cGUiLCJ0b0pTT04iLCJwYXRjaGVkRGF0ZVRvSnNvbiIsImhvdXJzIiwiZ2V0SG91cnMiLCJtaW51dGVzIiwiZ2V0TWludXRlcyIsInNlY29uZHMiLCJnZXRTZWNvbmRzIiwibWlsbGlzZWNvbmRzIiwiZ2V0TWlsbGlzZWNvbmRzIiwidGltZXpvbmVPZmZzZXRJbkhvdXJzIiwiZ2V0VGltZXpvbmVPZmZzZXQiLCJ0b0lTT1N0cmluZyIsInNwbGl0IiwiY29ycmVjdGVkRGF0ZSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwic2V0SG91cnMiLCJpc28iLCJyZXBsYWNlIiwic2lnbiIsImxlYWRpbmdaZXJvIiwiTWF0aCIsImFicyIsInRvU3RyaW5nIiwiZSIsImpzb25EYXRlIiwiZnJlbmNoRGF0ZUZvcm1hdCIsIkludGwiLCJEYXRlVGltZUZvcm1hdCIsImRheSIsIm1vbnRoIiwid2Vla2RheSIsInllYXIiLCJmcmVuY2hEYXRlU2FtZVllYXJTaG9ydEZvcm1hdCIsImZyZW5jaFRpbWVGb3JtYXQiLCJob3VyIiwibWludXRlIiwiZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyIsImRhdGUiLCJkZWZhdWx0VmFsdWUiLCJkYXRlRnJvbVllYXJNb250aERheVRpbWV6b25lU3RyaW5nIiwiZGF0ZVN0cmluZyIsImRpc3BsYXlEYXRlRnJvbUxvY2FsSXNvU3RyaW5nIiwibG9jYWxlIiwiZW5kc1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJmb3JtYXRSZWxhdGl2ZUZyZW5jaFRpbWUiLCJub3ciLCJmcmVuY2hEYXRlV2l0aG91dERheU9mV2Vla0Zyb21EYXRlT3JTdHJpbmciLCJkYXRlT3JTdHJpbmciLCJmcmVuY2hUaW1lRnJvbURhdGVPclN0cmluZyIsImxvY2FsSXNvODYwMVN0cmluZ0Zyb21EYXRlIiwiZ2V0VGltZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwiZGF0ZS1mbnMvZm9ybWF0XCJcbmltcG9ydCB7IGZyIGFzIGZyTG9jYWxlIH0gZnJvbSBcImRhdGUtZm5zL2xvY2FsZS9mclwiXG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gXCJkYXRlLWZucy9wYXJzZVwiXG5pbXBvcnQgeyBwYXJzZUlTTyB9IGZyb20gXCJkYXRlLWZucy9wYXJzZUlTT1wiXG5cbi8vIFBhdGNoIERhdGUucHJvdG90eXBlLnRvSlNPTiB0byBlbnN1cmUgdGhhdCBkYXRlcyBrZWVwIHRoZWlyIHRpbWV6b25lIHdoZW4gY29udmVydGVkIHRvIHN0cmluZ3MuXG4vLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zMTA5NjEzMC9ob3ctdG8tanNvbi1zdHJpbmdpZnktYS1qYXZhc2NyaXB0LWRhdGUtYW5kLXByZXNlcnZlLXRpbWV6b25lXG5leHBvcnQgY29uc3QgZXhpc3RpbmdEYXRlVG9Kc29uID0gRGF0ZS5wcm90b3R5cGUudG9KU09OXG5leHBvcnQgY29uc3QgcGF0Y2hlZERhdGVUb0pzb24gPSBmdW5jdGlvbiAodGhpczogRGF0ZSk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgY29uc3QgaG91cnMgPSB0aGlzLmdldEhvdXJzKClcbiAgICBjb25zdCBtaW51dGVzID0gdGhpcy5nZXRNaW51dGVzKClcbiAgICBjb25zdCBzZWNvbmRzID0gdGhpcy5nZXRTZWNvbmRzKClcbiAgICBjb25zdCBtaWxsaXNlY29uZHMgPSB0aGlzLmdldE1pbGxpc2Vjb25kcygpXG5cbiAgICBjb25zdCB0aW1lem9uZU9mZnNldEluSG91cnMgPSAtKHRoaXMuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIDYwKSAvL1VUQyBtaW51cyBsb2NhbCB0aW1lXG4gICAgLy8gV2hlbiB5ZWFyIDw9IDE5MDAsIHRpbWV6b25lT2Zmc2V0SW5Ib3VycyBpcyAwLjE1LCBtaW51dGVzIGlzIDkgYW5kIHNlY29uZHMgaXMgMjEhXG4gICAgaWYgKFxuICAgICAgKHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA9PT0gMC4xNSAmJlxuICAgICAgICBob3VycyA9PT0gMCAmJlxuICAgICAgICBtaW51dGVzID09PSA5ICYmXG4gICAgICAgIHNlY29uZHMgPT09IDIxKSB8fFxuICAgICAgKGhvdXJzIC0gdGltZXpvbmVPZmZzZXRJbkhvdXJzID09PSAwICYmXG4gICAgICAgIG1pbnV0ZXMgPT09IDAgJiZcbiAgICAgICAgc2Vjb25kcyA9PT0gMCAmJlxuICAgICAgICBtaWxsaXNlY29uZHMgPT09IDApXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXVxuICAgIH1cblxuICAgIC8vIEl0J3MgYSBiaXQgdW5mb3J0dW5hdGUgdGhhdCB3ZSBuZWVkIHR0aW1lem9uZU9mZnNldEluSG91cnMgPSAtKHRoaXMuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIDYwKSBvIGNvbnN0cnVjdCBhIG5ldyBEYXRlIGluc3RhbmNlXG4gICAgLy8gKHdlIGRvbid0IHdhbnQgX3RoaXNfIERhdGUgaW5zdGFuY2UgdG8gYmUgbW9kaWZpZWQpLlxuICAgIGNvbnN0IGNvcnJlY3RlZERhdGUgPSBuZXcgRGF0ZShcbiAgICAgIHRoaXMuZ2V0RnVsbFllYXIoKSxcbiAgICAgIHRoaXMuZ2V0TW9udGgoKSxcbiAgICAgIHRoaXMuZ2V0RGF0ZSgpLFxuICAgICAgaG91cnMsXG4gICAgICBtaW51dGVzLFxuICAgICAgc2Vjb25kcyxcbiAgICAgIG1pbGxpc2Vjb25kcyxcbiAgICApXG4gICAgY29ycmVjdGVkRGF0ZS5zZXRIb3Vycyh0aGlzLmdldEhvdXJzKCkgKyB0aW1lem9uZU9mZnNldEluSG91cnMpXG4gICAgLy8gUmVtb3ZlIG1pbGxpc2Vjb25kcyAmIHRyYWlsaW5nIFwiWlwiLlxuICAgIGNvbnN0IGlzbyA9IGNvcnJlY3RlZERhdGUudG9JU09TdHJpbmcoKS5yZXBsYWNlKC8oXFwuMCspP1okLywgXCJcIilcbiAgICBjb25zdCBzaWduID0gdGltZXpvbmVPZmZzZXRJbkhvdXJzID49IDAgPyBcIitcIiA6IFwiLVwiXG4gICAgY29uc3QgbGVhZGluZ1plcm8gPSBNYXRoLmFicyh0aW1lem9uZU9mZnNldEluSG91cnMpIDwgMTAgPyBcIjBcIiA6IFwiXCJcbiAgICByZXR1cm4gKFxuICAgICAgaXNvICtcbiAgICAgIHNpZ24gK1xuICAgICAgbGVhZGluZ1plcm8gK1xuICAgICAgTWF0aC5hYnModGltZXpvbmVPZmZzZXRJbkhvdXJzKS50b1N0cmluZygpLnNwbGl0KFwiLlwiKVswXSArXG4gICAgICBcIjowMFwiXG4gICAgKVxuICB9IGNhdGNoIChlKSB7XG4gICAgRGF0ZS5wcm90b3R5cGUudG9KU09OID0gZXhpc3RpbmdEYXRlVG9Kc29uXG4gICAgY29uc3QganNvbkRhdGUgPSB0aGlzLnRvSlNPTigpXG4gICAgRGF0ZS5wcm90b3R5cGUudG9KU09OID0gcGF0Y2hlZERhdGVUb0pzb25cbiAgICByZXR1cm4ganNvbkRhdGVcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZnJlbmNoRGF0ZUZvcm1hdCA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFwiZnItRlJcIiwge1xuICBkYXk6IFwibnVtZXJpY1wiLFxuICBtb250aDogXCJsb25nXCIsXG4gIHdlZWtkYXk6IFwibG9uZ1wiLFxuICB5ZWFyOiBcIm51bWVyaWNcIixcbn0pXG5leHBvcnQgY29uc3QgZnJlbmNoRGF0ZVNhbWVZZWFyU2hvcnRGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgZGF5OiBcIm51bWVyaWNcIixcbiAgbW9udGg6IFwic2hvcnRcIixcbn0pXG5leHBvcnQgY29uc3QgZnJlbmNoVGltZUZvcm1hdCA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFwiZnItRlJcIiwge1xuICBob3VyOiBcIm51bWVyaWNcIixcbiAgbWludXRlOiBcIjItZGlnaXRcIixcbn0pXG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlRnJvbU51bGxhYmxlRGF0ZU9ySXNvU3RyaW5nKFxuICBkYXRlOiBEYXRlIHwgc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgZGVmYXVsdFZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkIHwgbnVsbCxcbik6IERhdGUgfCB1bmRlZmluZWQgfCBudWxsIHtcbiAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIGRhdGVcbiAgfVxuICBpZiAodHlwZW9mIGRhdGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gcGFyc2VJU08oZGF0ZSlcbiAgfVxuICByZXR1cm4gZGVmYXVsdFZhbHVlXG59XG5cbi8vLyBDb252ZXJ0IHN0cmluZ3MgbGlrZSBcIjIwMTctMTEtMjQrMDE6MDBcIiB0byBkYXRlcy5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlRnJvbVllYXJNb250aERheVRpbWV6b25lU3RyaW5nKGRhdGVTdHJpbmc6IHN0cmluZyk6IERhdGUge1xuICByZXR1cm4gcGFyc2UoZGF0ZVN0cmluZywgXCJ5eXl5LU1NLWRkWFhYXCIsIG5ldyBEYXRlKCkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwbGF5RGF0ZUZyb21Mb2NhbElzb1N0cmluZyhkYXRlU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBkYXRlID0gcGFyc2VJU08oZGF0ZVN0cmluZylcbiAgZGF0ZVN0cmluZyA9IGZvcm1hdChkYXRlLCBcIkVFRUUgZCBMTExMIHl5eXkgSCdoJ21tXCIsIHsgbG9jYWxlOiBmckxvY2FsZSB9KVxuICBpZiAoZGF0ZVN0cmluZy5lbmRzV2l0aChcIiAwaDAwXCIpKSB7XG4gICAgZGF0ZVN0cmluZyA9IGRhdGVTdHJpbmcuc3Vic3RyaW5nKDAsIGRhdGVTdHJpbmcubGVuZ3RoIC0gNSlcbiAgfVxuICByZXR1cm4gZGF0ZVN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0UmVsYXRpdmVGcmVuY2hUaW1lKGRhdGU6IERhdGUsIG5vdzogRGF0ZSkge1xuICBpZiAoXG4gICAgZGF0ZS5nZXRGdWxsWWVhcigpID09PSBub3cuZ2V0RnVsbFllYXIoKSAmJlxuICAgIGRhdGUuZ2V0TW9udGgoKSA9PT0gbm93LmdldE1vbnRoKCkgJiZcbiAgICBkYXRlLmdldERhdGUoKSA9PT0gbm93LmdldERhdGUoKVxuICApIHtcbiAgICByZXR1cm4gZnJlbmNoVGltZUZvcm1hdC5mb3JtYXQoZGF0ZSlcbiAgfVxuICByZXR1cm4gZnJlbmNoRGF0ZVNhbWVZZWFyU2hvcnRGb3JtYXQuZm9ybWF0KGRhdGUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcmVuY2hEYXRlV2l0aG91dERheU9mV2Vla0Zyb21EYXRlT3JTdHJpbmcoXG4gIGRhdGVPclN0cmluZzogRGF0ZSB8IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGU6IERhdGUgPVxuICAgIGRhdGVPclN0cmluZyBpbnN0YW5jZW9mIERhdGUgPyBkYXRlT3JTdHJpbmcgOiBwYXJzZUlTTyhkYXRlT3JTdHJpbmcpXG4gIGxldCBkYXRlU3RyaW5nID0gZm9ybWF0KGRhdGUsIFwiZCBMTExMIHl5eXkgSCdoJ21tXCIsIHsgbG9jYWxlOiBmckxvY2FsZSB9KVxuICBpZiAoZGF0ZVN0cmluZy5lbmRzV2l0aChcIiAwaDAwXCIpKSB7XG4gICAgZGF0ZVN0cmluZyA9IGRhdGVTdHJpbmcuc3Vic3RyaW5nKDAsIGRhdGVTdHJpbmcubGVuZ3RoIC0gNSlcbiAgfVxuICByZXR1cm4gZGF0ZVN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJlbmNoVGltZUZyb21EYXRlT3JTdHJpbmcoXG4gIGRhdGVPclN0cmluZzogRGF0ZSB8IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGU6IERhdGUgPVxuICAgIGRhdGVPclN0cmluZyBpbnN0YW5jZW9mIERhdGUgPyBkYXRlT3JTdHJpbmcgOiBwYXJzZUlTTyhkYXRlT3JTdHJpbmcpXG4gIHJldHVybiBmb3JtYXQoZGF0ZSwgXCJIJ2gnbW1cIiwgeyBsb2NhbGU6IGZyTG9jYWxlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbElzbzg2MDFTdHJpbmdGcm9tRGF0ZShkYXRlOiBEYXRlKSB7XG4gIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSAtIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKVxuICAgIC50b0lTT1N0cmluZygpXG4gICAgLnNwbGl0KFwiVFwiKVswXVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxNQUFNLFFBQVEsaUJBQWlCO0FBQ3hDLFNBQVNDLEVBQUUsSUFBSUMsUUFBUSxRQUFRLG9CQUFvQjtBQUNuRCxTQUFTQyxLQUFLLFFBQVEsZ0JBQWdCO0FBQ3RDLFNBQVNDLFFBQVEsUUFBUSxtQkFBbUI7O0FBRTVDO0FBQ0E7QUFDQSxPQUFPLE1BQU1DLGtCQUFrQixHQUFHQyxJQUFJLENBQUNDLFNBQVMsQ0FBQ0MsTUFBTTtBQUN2RCxPQUFPLE1BQU1DLGlCQUFpQixHQUFHLFNBQUFBLENBQUEsRUFBOEI7RUFDN0QsSUFBSTtJQUNGLE1BQU1DLEtBQUssR0FBRyxJQUFJLENBQUNDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLE1BQU1DLE9BQU8sR0FBRyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLE1BQU1DLE9BQU8sR0FBRyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLE1BQU1DLFlBQVksR0FBRyxJQUFJLENBQUNDLGVBQWUsQ0FBQyxDQUFDO0lBRTNDLE1BQU1DLHFCQUFxQixHQUFHLEVBQUUsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUM7SUFDL0Q7SUFDQSxJQUNHRCxxQkFBcUIsS0FBSyxJQUFJLElBQzdCUixLQUFLLEtBQUssQ0FBQyxJQUNYRSxPQUFPLEtBQUssQ0FBQyxJQUNiRSxPQUFPLEtBQUssRUFBRSxJQUNmSixLQUFLLEdBQUdRLHFCQUFxQixLQUFLLENBQUMsSUFDbENOLE9BQU8s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
|
|
100
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3JtYXQiLCJmciIsImZyTG9jYWxlIiwicGFyc2UiLCJwYXJzZUlTTyIsImV4aXN0aW5nRGF0ZVRvSnNvbiIsIkRhdGUiLCJwcm90b3R5cGUiLCJ0b0pTT04iLCJwYXRjaGVkRGF0ZVRvSnNvbiIsImhvdXJzIiwiZ2V0SG91cnMiLCJtaW51dGVzIiwiZ2V0TWludXRlcyIsInNlY29uZHMiLCJnZXRTZWNvbmRzIiwibWlsbGlzZWNvbmRzIiwiZ2V0TWlsbGlzZWNvbmRzIiwidGltZXpvbmVPZmZzZXRJbkhvdXJzIiwiZ2V0VGltZXpvbmVPZmZzZXQiLCJ0b0lTT1N0cmluZyIsInNwbGl0IiwiY29ycmVjdGVkRGF0ZSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwic2V0SG91cnMiLCJpc28iLCJyZXBsYWNlIiwic2lnbiIsImxlYWRpbmdaZXJvIiwiTWF0aCIsImFicyIsInRvU3RyaW5nIiwiZSIsImpzb25EYXRlIiwiZnJlbmNoRGF0ZUZvcm1hdCIsIkludGwiLCJEYXRlVGltZUZvcm1hdCIsImRheSIsIm1vbnRoIiwid2Vla2RheSIsInllYXIiLCJmcmVuY2hEYXRlU2FtZVllYXJTaG9ydEZvcm1hdCIsImZyZW5jaFRpbWVGb3JtYXQiLCJob3VyIiwibWludXRlIiwiZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyIsImRhdGUiLCJkZWZhdWx0VmFsdWUiLCJkYXRlRnJvbVllYXJNb250aERheVRpbWV6b25lU3RyaW5nIiwiZGF0ZVN0cmluZyIsImRpc3BsYXlEYXRlRnJvbUxvY2FsSXNvU3RyaW5nIiwibG9jYWxlIiwiZW5kc1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJmb3JtYXRSZWxhdGl2ZUZyZW5jaFRpbWUiLCJub3ciLCJmcmVuY2hEYXRlV2l0aG91dERheU9mV2Vla0Zyb21EYXRlT3JTdHJpbmciLCJkYXRlT3JTdHJpbmciLCJmcmVuY2hUaW1lRnJvbURhdGVPclN0cmluZyIsImxvY2FsSXNvODYwMVN0cmluZ0Zyb21EYXRlIiwiZ2V0VGltZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwiZGF0ZS1mbnMvZm9ybWF0XCJcbmltcG9ydCB7IGZyIGFzIGZyTG9jYWxlIH0gZnJvbSBcImRhdGUtZm5zL2xvY2FsZS9mclwiXG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gXCJkYXRlLWZucy9wYXJzZVwiXG5pbXBvcnQgeyBwYXJzZUlTTyB9IGZyb20gXCJkYXRlLWZucy9wYXJzZUlTT1wiXG5cbi8vIFBhdGNoIERhdGUucHJvdG90eXBlLnRvSlNPTiB0byBlbnN1cmUgdGhhdCBkYXRlcyBrZWVwIHRoZWlyIHRpbWV6b25lIHdoZW4gY29udmVydGVkIHRvIHN0cmluZ3MuXG4vLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zMTA5NjEzMC9ob3ctdG8tanNvbi1zdHJpbmdpZnktYS1qYXZhc2NyaXB0LWRhdGUtYW5kLXByZXNlcnZlLXRpbWV6b25lXG5leHBvcnQgY29uc3QgZXhpc3RpbmdEYXRlVG9Kc29uID0gRGF0ZS5wcm90b3R5cGUudG9KU09OXG5leHBvcnQgY29uc3QgcGF0Y2hlZERhdGVUb0pzb24gPSBmdW5jdGlvbiAodGhpczogRGF0ZSk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgY29uc3QgaG91cnMgPSB0aGlzLmdldEhvdXJzKClcbiAgICBjb25zdCBtaW51dGVzID0gdGhpcy5nZXRNaW51dGVzKClcbiAgICBjb25zdCBzZWNvbmRzID0gdGhpcy5nZXRTZWNvbmRzKClcbiAgICBjb25zdCBtaWxsaXNlY29uZHMgPSB0aGlzLmdldE1pbGxpc2Vjb25kcygpXG5cbiAgICBjb25zdCB0aW1lem9uZU9mZnNldEluSG91cnMgPSAtKHRoaXMuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIDYwKSAvL1VUQyBtaW51cyBsb2NhbCB0aW1lXG4gICAgLy8gV2hlbiB5ZWFyIDw9IDE5MDAsIHRpbWV6b25lT2Zmc2V0SW5Ib3VycyBpcyAwLjE1LCBtaW51dGVzIGlzIDkgYW5kIHNlY29uZHMgaXMgMjEhXG4gICAgaWYgKFxuICAgICAgKHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA9PT0gMC4xNSAmJlxuICAgICAgICBob3VycyA9PT0gMCAmJlxuICAgICAgICBtaW51dGVzID09PSA5ICYmXG4gICAgICAgIHNlY29uZHMgPT09IDIxKSB8fFxuICAgICAgKGhvdXJzIC0gdGltZXpvbmVPZmZzZXRJbkhvdXJzID09PSAwICYmXG4gICAgICAgIG1pbnV0ZXMgPT09IDAgJiZcbiAgICAgICAgc2Vjb25kcyA9PT0gMCAmJlxuICAgICAgICBtaWxsaXNlY29uZHMgPT09IDApXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXVxuICAgIH1cblxuICAgIC8vIEl0J3MgYSBiaXQgdW5mb3J0dW5hdGUgdGhhdCB3ZSBuZWVkIHR0aW1lem9uZU9mZnNldEluSG91cnMgPSAtKHRoaXMuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIDYwKSBvIGNvbnN0cnVjdCBhIG5ldyBEYXRlIGluc3RhbmNlXG4gICAgLy8gKHdlIGRvbid0IHdhbnQgX3RoaXNfIERhdGUgaW5zdGFuY2UgdG8gYmUgbW9kaWZpZWQpLlxuICAgIGNvbnN0IGNvcnJlY3RlZERhdGUgPSBuZXcgRGF0ZShcbiAgICAgIHRoaXMuZ2V0RnVsbFllYXIoKSxcbiAgICAgIHRoaXMuZ2V0TW9udGgoKSxcbiAgICAgIHRoaXMuZ2V0RGF0ZSgpLFxuICAgICAgaG91cnMsXG4gICAgICBtaW51dGVzLFxuICAgICAgc2Vjb25kcyxcbiAgICAgIG1pbGxpc2Vjb25kcyxcbiAgICApXG4gICAgY29ycmVjdGVkRGF0ZS5zZXRIb3Vycyh0aGlzLmdldEhvdXJzKCkgKyB0aW1lem9uZU9mZnNldEluSG91cnMpXG4gICAgLy8gUmVtb3ZlIG1pbGxpc2Vjb25kcyAmIHRyYWlsaW5nIFwiWlwiLlxuICAgIGNvbnN0IGlzbyA9IGNvcnJlY3RlZERhdGUudG9JU09TdHJpbmcoKS5yZXBsYWNlKC8oXFwuMCspP1okLywgXCJcIilcbiAgICBjb25zdCBzaWduID0gdGltZXpvbmVPZmZzZXRJbkhvdXJzID49IDAgPyBcIitcIiA6IFwiLVwiXG4gICAgY29uc3QgbGVhZGluZ1plcm8gPSBNYXRoLmFicyh0aW1lem9uZU9mZnNldEluSG91cnMpIDwgMTAgPyBcIjBcIiA6IFwiXCJcbiAgICByZXR1cm4gKFxuICAgICAgaXNvICtcbiAgICAgIHNpZ24gK1xuICAgICAgbGVhZGluZ1plcm8gK1xuICAgICAgTWF0aC5hYnModGltZXpvbmVPZmZzZXRJbkhvdXJzKS50b1N0cmluZygpLnNwbGl0KFwiLlwiKVswXSArXG4gICAgICBcIjowMFwiXG4gICAgKVxuICB9IGNhdGNoIChlKSB7XG4gICAgRGF0ZS5wcm90b3R5cGUudG9KU09OID0gZXhpc3RpbmdEYXRlVG9Kc29uXG4gICAgY29uc3QganNvbkRhdGUgPSB0aGlzLnRvSlNPTigpXG4gICAgRGF0ZS5wcm90b3R5cGUudG9KU09OID0gcGF0Y2hlZERhdGVUb0pzb25cbiAgICByZXR1cm4ganNvbkRhdGVcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZnJlbmNoRGF0ZUZvcm1hdCA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFwiZnItRlJcIiwge1xuICBkYXk6IFwibnVtZXJpY1wiLFxuICBtb250aDogXCJsb25nXCIsXG4gIHdlZWtkYXk6IFwibG9uZ1wiLFxuICB5ZWFyOiBcIm51bWVyaWNcIixcbn0pXG5leHBvcnQgY29uc3QgZnJlbmNoRGF0ZVNhbWVZZWFyU2hvcnRGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgZGF5OiBcIm51bWVyaWNcIixcbiAgbW9udGg6IFwic2hvcnRcIixcbn0pXG5leHBvcnQgY29uc3QgZnJlbmNoVGltZUZvcm1hdCA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFwiZnItRlJcIiwge1xuICBob3VyOiBcIm51bWVyaWNcIixcbiAgbWludXRlOiBcIjItZGlnaXRcIixcbn0pXG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlRnJvbU51bGxhYmxlRGF0ZU9ySXNvU3RyaW5nKFxuICBkYXRlOiBEYXRlIHwgc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgZGVmYXVsdFZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkIHwgbnVsbCxcbik6IERhdGUgfCB1bmRlZmluZWQgfCBudWxsIHtcbiAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIGRhdGVcbiAgfVxuICBpZiAodHlwZW9mIGRhdGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gcGFyc2VJU08oZGF0ZSlcbiAgfVxuICByZXR1cm4gZGVmYXVsdFZhbHVlXG59XG5cbi8vLyBDb252ZXJ0IHN0cmluZ3MgbGlrZSBcIjIwMTctMTEtMjQrMDE6MDBcIiB0byBkYXRlcy5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlRnJvbVllYXJNb250aERheVRpbWV6b25lU3RyaW5nKGRhdGVTdHJpbmc6IHN0cmluZyk6IERhdGUge1xuICByZXR1cm4gcGFyc2UoZGF0ZVN0cmluZywgXCJ5eXl5LU1NLWRkWFhYXCIsIG5ldyBEYXRlKCkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwbGF5RGF0ZUZyb21Mb2NhbElzb1N0cmluZyhkYXRlU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBkYXRlID0gcGFyc2VJU08oZGF0ZVN0cmluZylcbiAgZGF0ZVN0cmluZyA9IGZvcm1hdChkYXRlLCBcIkVFRUUgZCBMTExMIHl5eXkgSCdoJ21tXCIsIHsgbG9jYWxlOiBmckxvY2FsZSB9KVxuICBpZiAoZGF0ZVN0cmluZy5lbmRzV2l0aChcIiAwaDAwXCIpKSB7XG4gICAgZGF0ZVN0cmluZyA9IGRhdGVTdHJpbmcuc3Vic3RyaW5nKDAsIGRhdGVTdHJpbmcubGVuZ3RoIC0gNSlcbiAgfVxuICByZXR1cm4gZGF0ZVN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0UmVsYXRpdmVGcmVuY2hUaW1lKGRhdGU6IERhdGUsIG5vdzogRGF0ZSkge1xuICBpZiAoXG4gICAgZGF0ZS5nZXRGdWxsWWVhcigpID09PSBub3cuZ2V0RnVsbFllYXIoKSAmJlxuICAgIGRhdGUuZ2V0TW9udGgoKSA9PT0gbm93LmdldE1vbnRoKCkgJiZcbiAgICBkYXRlLmdldERhdGUoKSA9PT0gbm93LmdldERhdGUoKVxuICApIHtcbiAgICByZXR1cm4gZnJlbmNoVGltZUZvcm1hdC5mb3JtYXQoZGF0ZSlcbiAgfVxuICByZXR1cm4gZnJlbmNoRGF0ZVNhbWVZZWFyU2hvcnRGb3JtYXQuZm9ybWF0KGRhdGUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcmVuY2hEYXRlV2l0aG91dERheU9mV2Vla0Zyb21EYXRlT3JTdHJpbmcoXG4gIGRhdGVPclN0cmluZzogRGF0ZSB8IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGU6IERhdGUgPVxuICAgIGRhdGVPclN0cmluZyBpbnN0YW5jZW9mIERhdGUgPyBkYXRlT3JTdHJpbmcgOiBwYXJzZUlTTyhkYXRlT3JTdHJpbmcpXG4gIGxldCBkYXRlU3RyaW5nID0gZm9ybWF0KGRhdGUsIFwiZCBMTExMIHl5eXkgSCdoJ21tXCIsIHsgbG9jYWxlOiBmckxvY2FsZSB9KVxuICBpZiAoZGF0ZVN0cmluZy5lbmRzV2l0aChcIiAwaDAwXCIpKSB7XG4gICAgZGF0ZVN0cmluZyA9IGRhdGVTdHJpbmcuc3Vic3RyaW5nKDAsIGRhdGVTdHJpbmcubGVuZ3RoIC0gNSlcbiAgfVxuICByZXR1cm4gZGF0ZVN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJlbmNoVGltZUZyb21EYXRlT3JTdHJpbmcoXG4gIGRhdGVPclN0cmluZzogRGF0ZSB8IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGU6IERhdGUgPVxuICAgIGRhdGVPclN0cmluZyBpbnN0YW5jZW9mIERhdGUgPyBkYXRlT3JTdHJpbmcgOiBwYXJzZUlTTyhkYXRlT3JTdHJpbmcpXG4gIHJldHVybiBmb3JtYXQoZGF0ZSwgXCJIJ2gnbW1cIiwgeyBsb2NhbGU6IGZyTG9jYWxlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbElzbzg2MDFTdHJpbmdGcm9tRGF0ZShkYXRlOiBEYXRlKSB7XG4gIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSAtIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKVxuICAgIC50b0lTT1N0cmluZygpXG4gICAgLnNwbGl0KFwiVFwiKVswXVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxNQUFNLFFBQVEsaUJBQWlCO0FBQ3hDLFNBQVNDLEVBQUUsSUFBSUMsUUFBUSxRQUFRLG9CQUFvQjtBQUNuRCxTQUFTQyxLQUFLLFFBQVEsZ0JBQWdCO0FBQ3RDLFNBQVNDLFFBQVEsUUFBUSxtQkFBbUI7O0FBRTVDO0FBQ0E7QUFDQSxPQUFPLE1BQU1DLGtCQUFrQixHQUFHQyxJQUFJLENBQUNDLFNBQVMsQ0FBQ0MsTUFBTTtBQUN2RCxPQUFPLE1BQU1DLGlCQUFpQixHQUFHLFNBQUFBLENBQUEsRUFBOEI7RUFDN0QsSUFBSTtJQUNGLE1BQU1DLEtBQUssR0FBRyxJQUFJLENBQUNDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLE1BQU1DLE9BQU8sR0FBRyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLE1BQU1DLE9BQU8sR0FBRyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLE1BQU1DLFlBQVksR0FBRyxJQUFJLENBQUNDLGVBQWUsQ0FBQyxDQUFDO0lBRTNDLE1BQU1DLHFCQUFxQixHQUFHLEVBQUUsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUM7SUFDL0Q7SUFDQSxJQUNHRCxxQkFBcUIsS0FBSyxJQUFJLElBQzdCUixLQUFLLEtBQUssQ0FBQyxJQUNYRSxPQUFPLEtBQUssQ0FBQyxJQUNiRSxPQUFPLEtBQUssRUFBRSxJQUNmSixLQUFLLEdBQUdRLHFCQUFxQixLQUFLLENBQUMsSUFDbENOLE9BQU8s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
|