@tricoteuses/assemblee 1.3.1 → 1.5.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/lib/datasets.d.ts +1 -0
- package/lib/datasets.js +28 -2
- package/lib/datasets.mjs +14 -2
- package/lib/dossiers_legislatifs.js +1 -1
- package/lib/dossiers_legislatifs.mjs +1 -1
- package/lib/file_systems.js +30 -24
- package/lib/file_systems.mjs +4 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.mjs +1 -1
- package/lib/loaders.d.ts +5 -4
- package/lib/loaders.js +14 -22
- package/lib/loaders.mjs +12 -8
- package/lib/raw_types/debats.d.ts +5 -4
- package/lib/raw_types/debats.js +9 -5
- package/lib/raw_types/debats.mjs +9 -5
- package/lib/raw_types/dossiers_legislatifs.d.ts +2 -0
- package/lib/raw_types/dossiers_legislatifs.js +5 -3
- package/lib/raw_types/dossiers_legislatifs.mjs +5 -3
- package/lib/raw_types/questions.d.ts +1 -1
- package/lib/raw_types/questions.js +2 -2
- package/lib/raw_types/questions.mjs +2 -2
- package/lib/scripts/clean_reorganized_data.js +13 -42
- package/lib/scripts/clean_reorganized_data.mjs +8 -18
- package/lib/scripts/reorganize_data.js +17 -46
- package/lib/scripts/reorganize_data.mjs +8 -18
- package/lib/scripts/retrieve_open_data.js +5 -5
- package/lib/scripts/retrieve_open_data.mjs +4 -4
- package/lib/shared_types/codes_actes.d.ts +129 -342
- package/lib/shared_types/codes_actes.js +212 -243
- package/lib/shared_types/codes_actes.mjs +211 -224
- package/lib/types/debats.d.ts +5 -4
- package/lib/types/debats.js +9 -5
- package/lib/types/debats.mjs +9 -5
- package/lib/types/dossiers_legislatifs.d.ts +2 -0
- package/lib/types/dossiers_legislatifs.js +7 -8
- package/lib/types/dossiers_legislatifs.mjs +8 -9
- package/lib/types/questions.d.ts +1 -1
- package/lib/types/questions.js +2 -2
- package/lib/types/questions.mjs +2 -2
- package/package.json +2 -2
package/lib/datasets.d.ts
CHANGED
|
@@ -41,4 +41,5 @@ export declare function datasetDirectorySchema(dataset: string): any;
|
|
|
41
41
|
export declare function fileDatasetUrl(filename: string): [string, string] | null;
|
|
42
42
|
export declare function diffUpstream(filename: string): string;
|
|
43
43
|
export declare function masterUrl(filename: string): string;
|
|
44
|
+
export declare function filterByLegislature(datasets: Datasets, legislature: any): Datasets;
|
|
44
45
|
export {};
|
package/lib/datasets.js
CHANGED
|
@@ -19,6 +19,7 @@ exports.datasetDirectorySchema = datasetDirectorySchema;
|
|
|
19
19
|
exports.datasets = void 0;
|
|
20
20
|
exports.diffUpstream = diffUpstream;
|
|
21
21
|
exports.fileDatasetUrl = fileDatasetUrl;
|
|
22
|
+
exports.filterByLegislature = filterByLegislature;
|
|
22
23
|
exports.getDatasets = getDatasets;
|
|
23
24
|
exports.getSchemas = getSchemas;
|
|
24
25
|
exports.masterUrl = masterUrl;
|
|
@@ -34,6 +35,10 @@ require("core-js/modules/es.regexp.to-string.js");
|
|
|
34
35
|
require("core-js/modules/es.date.to-string.js");
|
|
35
36
|
require("core-js/modules/es.object.to-string.js");
|
|
36
37
|
require("core-js/modules/es.array.concat.js");
|
|
38
|
+
require("core-js/modules/es.array.some.js");
|
|
39
|
+
require("core-js/modules/es.array.map.js");
|
|
40
|
+
require("core-js/modules/es.object.entries.js");
|
|
41
|
+
require("core-js/modules/es.array.filter.js");
|
|
37
42
|
var _crypto = require("crypto");
|
|
38
43
|
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
39
44
|
var _path = _interopRequireDefault(require("path"));
|
|
@@ -165,7 +170,7 @@ var datasets = exports.datasets = {
|
|
|
165
170
|
_fsExtra["default"].moveSync(_path["default"].join(dataDir, "json"), targetDir);
|
|
166
171
|
},
|
|
167
172
|
structure: DatasetStructure.SegmentedFiles,
|
|
168
|
-
title: "Acteurs et organes de la
|
|
173
|
+
title: "Acteurs et organes de la XVIème législature",
|
|
169
174
|
url: "http://data.assemblee-nationale.fr/static/openData/repository/16/amo/deputes_senateurs_ministres_legislature/AMO20_dep_sen_min_tous_mandats_et_organes.json.zip"
|
|
170
175
|
}, {
|
|
171
176
|
// AMO20 (XV)
|
|
@@ -678,4 +683,25 @@ function masterUrl(filename) {
|
|
|
678
683
|
file = _datasetUrl2[1];
|
|
679
684
|
return "[".concat(file, "](https://git.en-root.org/tricoteuses/data.tricoteuses.fr/").concat(dataset, "/-/tree/master/").concat(file, ")");
|
|
680
685
|
}
|
|
681
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3J5cHRvIiwicmVxdWlyZSIsIl9mc0V4dHJhIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9wYXRoIiwiX2xlZ2lzbGF0dXJlcyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfc2xpY2VkVG9BcnJheSIsImFyciIsImkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiVHlwZUVycm9yIiwiciIsImwiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJlIiwibiIsInUiLCJhIiwiZiIsIm8iLCJjYWxsIiwibmV4dCIsIk9iamVjdCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsImFsbG93QXJyYXlMaWtlIiwiaXQiLCJGIiwicyIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsImVyciIsInN0ZXAiLCJfZTIiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsImxlbiIsImFycjIiLCJEYXRhc2V0U3RydWN0dXJlIiwiZXhwb3J0cyIsIkVuYWJsZWREYXRhc2V0cyIsImRhdGFzZXRzIiwiYWN0ZXVyc0V0T3JnYW5lcyIsImZpbGVuYW1lIiwiaWdub3JlRm9yV2ViIiwibGVnaXNsYXR1cmUiLCJMZWdpc2xhdHVyZSIsIlNlaXplIiwicmVwYWlyWmlwIiwiZGF0YXNldCIsImRhdGFEaXIiLCJ0YXJnZXREaXIiLCJwYXRoIiwiam9pbiIsImZzIiwiZXhpc3RzU3luYyIsInJlbW92ZVN5bmMiLCJtb3ZlU3luYyIsInN0cnVjdHVyZSIsIlNlZ21lbnRlZEZpbGVzIiwidGl0bGUiLCJ1cmwiLCJRdWluemUiLCJRdWF0b3J6ZSIsIlNpbmdsZUZpbGUiLCJBbGwiLCJta2RpclN5bmMiLCJhZ2VuZGFzIiwiYW1lbmRlbWVudHMiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzIiwic2NydXRpbnMiLCJxdWVzdGlvbnMiLCJjb21wdGVzUmVuZHVzU2VhbmNlcyIsImRpcmVjdG9yeTJzY2hlbWEiLCJnZXREYXRhc2V0cyIsInZhbGlkRGF0YXNldCIsImRpciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiaW5jbHVkZXMiLCJnZXRTY2hlbWFzIiwidmFsdWVzIiwiZGF0YXNldERpcmVjdG9yeVNjaGVtYSIsImRpcmVjdG9yaWVzIiwiY29uY2F0IiwicmVzdWx0cyIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJkaXJlY3RvcnkiLCJfaSIsIl9PYmplY3Qka2V5cyIsImtleXMiLCJyZSIsIlJlZ0V4cCIsImV4ZWMiLCJmaWxlRGF0YXNldFVybCIsIm1hdGNoIiwiX3JlZiIsImZpbGUiLCJkaWZmVXBzdHJlYW0iLCJkYXRhc2V0VXJsIiwiX2RhdGFzZXRVcmwiLCJzdW0iLCJjcmVhdGVIYXNoIiwidXBkYXRlIiwiZGlnZXN0IiwibWFzdGVyVXJsIiwiX2RhdGFzZXRVcmwyIl0sInNvdXJjZXMiOlsiLi4vc3JjL2RhdGFzZXRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwiY3J5cHRvXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQgeyBMZWdpc2xhdHVyZSB9IGZyb20gXCIuL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmludGVyZmFjZSBEYXRhc2V0IHtcbiAgZmlsZW5hbWU6IHN0cmluZ1xuICBpZ25vcmVGb3JXZWI/OiBib29sZWFuXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZVxuICByZXBhaXJaaXA/OiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB2b2lkXG4gIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZVxuICB0aXRsZTogc3RyaW5nXG4gIHVybDogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldHMge1xuICBhY3RldXJzRXRPcmdhbmVzOiBEYXRhc2V0W11cbiAgYWdlbmRhczogRGF0YXNldFtdXG4gIGFtZW5kZW1lbnRzOiBEYXRhc2V0W11cbiAgZG9zc2llcnNMZWdpc2xhdGlmczogRGF0YXNldFtdXG4gIHNjcnV0aW5zOiBEYXRhc2V0W11cbiAgcXVlc3Rpb25zOiBEYXRhc2V0W11cbiAgY29tcHRlc1JlbmR1c1NlYW5jZXM6IERhdGFzZXRbXVxufVxuXG5leHBvcnQgZW51bSBEYXRhc2V0U3RydWN0dXJlIHtcbiAgU2luZ2xlRmlsZSxcbiAgU2VnbWVudGVkRmlsZXMsXG59XG5cbmV4cG9ydCBlbnVtIEVuYWJsZWREYXRhc2V0cyB7XG4gIE5vbmUgPSAwLFxuICBBY3RldXJzRXRPcmdhbmVzID0gMSA8PCAwLFxuICBBZ2VuZGFzID0gMSA8PCAxLFxuICBBbWVuZGVtZW50cyA9IDEgPDwgMixcbiAgRG9zc2llcnNMZWdpc2xhdGlmcyA9IDEgPDwgMyxcbiAgUGhvdG9zID0gMSA8PCA0LFxuICBTY3J1dGlucyA9IDEgPDwgNSxcbiAgUXVlc3Rpb25zID0gMSA8PCA2LFxuICBDb21wdGVzUmVuZHVzU2VhbmNlcyA9IDEgPDwgNyxcbiAgQWxsID0gQWN0ZXVyc0V0T3JnYW5lcyB8XG4gICAgQWdlbmRhcyB8XG4gICAgQW1lbmRlbWVudHMgfFxuICAgIERvc3NpZXJzTGVnaXNsYXRpZnMgfFxuICAgIFBob3RvcyB8XG4gICAgU2NydXRpbnMgfFxuICAgIFF1ZXN0aW9ucyB8XG4gICAgQ29tcHRlc1JlbmR1c1NlYW5jZXMsXG59XG5cbmV4cG9ydCBjb25zdCBkYXRhc2V0czogRGF0YXNldHMgPSB7XG4gIGFjdGV1cnNFdE9yZ2FuZXM6IFtcbiAgICB7XG4gICAgICAvLyBBTU8xMCAoWFZJKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzXG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXMgbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiB5IGNvbXByaXMgYXZlYyBsZXVyIHBhcnRpIHBvbGl0aXF1ZSAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGFjaGV2w6lzICh5IGNvbXByaXMgZGFucyBjZXR0ZSBsw6lnaXNsYXR1cmUpXG4gICAgICAvL1xuICAgICAgLy8gT3JnYW5lcyA6XG4gICAgICAvLyAqIENvbnRpZW50IHNldWxlbWVudCBsZXMgb3JnYW5lcyBjb3JyZXNwb25kYW50cyBhdXggbWFuZGF0cyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8yMFxuICAgICAgLy8gKHF1aSBlc3QgbHVpIG3Dqm1lIHVuIHNvdXMtZW5zZW1ibGUgZGUgbCdBTU8zMCkuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgQU1PMjAgb3UgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L2Ftby9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzL0FNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzEwIChYVilcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGFjdGlmc1xuICAgICAgLy8gKiBhdmVjIHRvdXMgbGVzIG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogeSBjb21wcmlzIGF2ZWMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXMgbWFuZGF0cyBhY2hldsOpcyAoeSBjb21wcmlzIGRhbnMgY2V0dGUgbMOpZ2lzbGF0dXJlKVxuICAgICAgLy9cbiAgICAgIC8vIE9yZ2FuZXMgOlxuICAgICAgLy8gKiBDb250aWVudCBzZXVsZW1lbnQgbGVzIG9yZ2FuZXMgY29ycmVzcG9uZGFudHMgYXV4IG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBsZSB4c2lUeXBlIGRlIGwnb3JnYW5lXG4gICAgICAvLyAqIGF2ZWMgZGVzIGNvbW1pc3Npb25zIHPDqW5hdG9yaWFsZXMgKHBlcm1hbmVudGVzIGV0IHNww6ljaWFsZXMpIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGTDqWzDqWdhdGlvbnMgc8OpbmF0b3JpYWxlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBncm91cGVzIHPDqW5hdG9yaWF1eCBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBtaW5pc3TDqHJlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlcyBQcsOpc2lkZW5jZXMgZGUgbGEgUsOpcHVibGlxdWUgKHkgY29tcHJpcyBTYXJrb3p5KVxuICAgICAgLy8gKiBhdmVjIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgdW4gc291cy1lbnNlbWJsZSDDoCB0b3VzIGxlcyBuaXZlYXV4IGR1IGZpY2hpZXIgQU1PMjBcbiAgICAgIC8vIChxdWkgZXN0IGx1aSBtw6ptZSB1biBzb3VzLWVuc2VtYmxlIGRlIGwnQU1PMzApLlxuICAgICAgLy8gSWwgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIEFNTzIwIG91IGwnQU1PMzAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8xMF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiRMOpcHV0w6lzIGFjdGlmcyBldCBvcmdhbmVzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2Ftby9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzL0FNTzEwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzIwIChYVkkpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBkZSBsYSBsw6lnaXNsYXR1cmUsIGFjdGlmcyBvdSBub24gKGludmFsaWTDqXMsIGV0YyksIGxlcyBzw6luYXRldXJzIGFjdHVlbHNcbiAgICAgIC8vIFBvdXIgbGVzIGTDqXB1dMOpcyA6XG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXVycyBtYW5kYXRzIGRlIGxhIGzDqWdpc2xhdHVyZVxuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzICAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXMgKHF1aSBzb250IGRhbnMgQU1PNDApXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgdG91cyBsZXMgb3JnYW5lcyByw6lmw6lyZW5jw6lzIHBhciBsZXMgbWFuZGF0c1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8zMC5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBY3RldXJzIGV0IG9yZ2FuZXMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL2RlcHV0ZXNfc2VuYXRldXJzX21pbmlzdHJlc19sZWdpc2xhdHVyZS9BTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMjAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgZGUgbGEgbMOpZ2lzbGF0dXJlLCBhY3RpZnMgb3Ugbm9uIChpbnZhbGlkw6lzLCBldGMpLCBsZXMgc8OpbmF0ZXVycyBhY3R1ZWxzXG4gICAgICAvLyBQb3VyIGxlcyBkw6lwdXTDqXMgOlxuICAgICAgLy8gKiBhdmVjIHRvdXMgbGV1cnMgbWFuZGF0cyBkZSBsYSBsw6lnaXNsYXR1cmVcbiAgICAgIC8vICogeSBjb21wcmlzIGxlcyBtYW5kYXRzIGFjaGV2w6lzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXVycyBwYXJ0aXMgcG9saXRpcXVlcyAgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXMgbWFuZGF0cyBkZXMgbMOpZ2lzbGF0dXJlcyBwcsOpY8OpZGVudGVzIChxdWkgc29udCBkYW5zIEFNTzQwKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IHRvdXMgbGVzIG9yZ2FuZXMgcsOpZsOpcmVuY8OpcyBwYXIgbGVzIG1hbmRhdHNcbiAgICAgIC8vICogYXZlYyBsZSB4c2lUeXBlIGRlIGwnb3JnYW5lXG4gICAgICAvLyAqIGF2ZWMgZGVzIGNvbW1pc3Npb25zIHPDqW5hdG9yaWFsZXMgKHBlcm1hbmVudGVzIGV0IHNww6ljaWFsZXMpIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGTDqWzDqWdhdGlvbnMgc8OpbmF0b3JpYWxlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBncm91cGVzIHPDqW5hdG9yaWF1eCBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBtaW5pc3TDqHJlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlcyBQcsOpc2lkZW5jZXMgZGUgbGEgUsOpcHVibGlxdWUgKHkgY29tcHJpcyBTYXJrb3p5KVxuICAgICAgLy8gKiBhdmVjIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgdW4gc291cy1lbnNlbWJsZSDDoCB0b3VzIGxlcyBuaXZlYXV4IGR1IGZpY2hpZXIgQU1PMzAuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzIwX2RlcF9zZW5fbWluX3RvdXNfbWFuZGF0c19ldF9vcmdhbmVzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQWN0ZXVycyBldCBvcmdhbmVzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2Ftby9kZXB1dGVzX3NlbmF0ZXVyc19taW5pc3RyZXNfbGVnaXNsYXR1cmUvQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzIwIChYSVYpXG4gICAgICAvL1xuICAgICAgLy8gQ29tbWUgQU1PMjAgKFhWKSBtYWlzIHBvdXIgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcbiAgICAgIC8vIFRvdXMgbGVzIGFjdGV1cnMgc2F1ZiB1biAoUEE0Mjk4OTIpIHNvbnQgcHLDqXNlbnRzIGVuIHBsdXMgw6Agam91ciBkYW5zIEFNTzMwLlxuICAgICAgLy8gQ2V0IGFjdGV1ciBQQTQyOTg5MiAoYW5jaWVubmUgU8OpbmF0cmljZSkgbidlc3QgcHLDqXNlbnQgZGFucyBhdWN1biBkZXMgYXV0cmVzXG4gICAgICAvLyBmaWNoaWVycyBBTU8uXG4gICAgICAvLyBUb3VzIGxlcyBvcmdhbmVzIHNvbnQgcHLDqXNlbnRzIGVuIHBsdXMgY29tcGxldHMgZGFucyBBTU8zMC5cbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCBkb25jIMOgIHVuIGTDqXRhaWwgcHLDqnQgKFBBNDI5ODkyKSB1biBzb3VzLWVuc2VtYmxlIGQnQU1PMzAuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBxdWFzaW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWElWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgICAgdGl0bGU6IFwiQWN0ZXVycyBldCBvcmdhbmVzIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC9hbW8vZGVwdXRlc19zZW5hdGV1cnNfbWluaXN0cmVzX2xlZ2lzbGF0dXJlc19YSVYvQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWElWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU8zMCAoWFZJKVxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgY29udGllbnQgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzLlxuICAgICAgLy8gQydlc3QgdW4gc3VyLWVuc2VtYmxlIGRlcyBmaWNoaWVycyBBTU8yMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkFsbCxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTpcbiAgICAgICAgXCJIaXN0b3JpcXVlIGRlIHRvdXMgbGVzIGFjdGV1cnMgZXQgb3JnYW5lcyBkZXB1aXMgbGEgWEnDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL3RvdXNfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfeGlfbGVnaXNsYXR1cmUvQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS5qc29uLnppcFwiLFxuICAgIH0sXG4gICAgLy8ge1xuICAgIC8vICAgLy8gQU1PMzAgKFhWKVxuICAgIC8vICAgLy9cbiAgICAvLyAgIC8vIENlIGZpY2hpZXIgY29udGllbnQgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzLlxuICAgIC8vICAgLy8gQydlc3QgdW4gc3VyLWVuc2VtYmxlIGRlcyBmaWNoaWVycyBBTU8yMC5cbiAgICAvLyAgIGZpbGVuYW1lOiBcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuanNvblwiLFxuICAgIC8vICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLkFsbCxcbiAgICAvLyAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgIC8vICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAvLyAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgIC8vICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgIC8vICAgICB9XG4gICAgLy8gICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAvLyAgIH0sXG4gICAgLy8gICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgLy8gICB0aXRsZTpcbiAgICAvLyAgICAgXCJIaXN0b3JpcXVlIGRlIHRvdXMgbGVzIGFjdGV1cnMgZXQgb3JnYW5lcyBkZXB1aXMgbGEgWEnDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgIC8vICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL3RvdXNfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfeGlfbGVnaXNsYXR1cmUvQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS5qc29uLnppcFwiLFxuICAgIC8vIH0sXG4gICAge1xuICAgICAgLy8gQU1PNDAgKFhWSSlcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGFjdGlmcyAobGVzIG3Dqm1lcyBxdSdBTU8yMClcbiAgICAgIC8vICogYXZlYyBwcmVzcXVlIHRvdXMgbGV1cnMgbWFuZGF0c1xuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXMgZXQgY2V1eCBkZXMgbMOpZ2lzbGF0dXJlcyBwcsOpY8OpZGVudGVzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXVycyBwYXJ0aXMgcG9saXRpcXVlcyBwcsOpY8OpZGVudHNcbiAgICAgIC8vICogbWFpcyBzYW5zIGxldXIgcGFydGkgcG9saXRpcXVlIGFjdHVlbCAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBiZWF1Y291cCBkJ29yZ2FuZXMgcsOpZsOpcmVuY8OpcywgeSBjb21wcmlzIGNldXggZGVzIGzDqWdpc2xhdHVyZXNcbiAgICAgIC8vIHByw6ljw6lkZW50ZXNcbiAgICAgIC8vICogbWFpcyBpbCBtYW5xdWUgbGUgeHNpVHlwZSBkZXMgb3JnYW5lc1xuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGVzIG9yZ2FuZXMgc8OpbmF0b3JpYXV4XG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZXMgbWluaXN0w6hyZXNcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxhIFByw6lzaWRlbmNlIGRlIGxhIFLDqXB1YmxpcXVlXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZSBDb25zZWlsIGNvbnN0aXR1dGlvbm5lbFxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMsIGNlIGTDqXDDtHQgZXN0IHVuIHNvdXMtZW5zZW1ibGUgc3RyaWN0IGRlIEFNTzMwIDpcbiAgICAgIC8vIElsIGEgbW9pbnMgZCdhY3RldXJzIGV0IGlsIHNvbnQgbW9pbnMgY29tcGxldHMuXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgb3JnYW5lcyA6XG4gICAgICAvLyBRdWFuZCBsJ29yZ2FuZSBlc3QgYXVzc2kgcHLDqXNlbnQgZGFucyBBTU8zMCwgaWwgdmF1dCBtaWV1eCBwcmVuZHJlIGNlbHVpXG4gICAgICAvLyBkJ0FNTzMwLCBjYXIgaWwgY29udGllbnQgbGUgeHNpVHlwZSAoYydlc3QgbGEgc2V1bGUgZGlmZsOpcmVuY2Ugc2VtYmxlLXQtaSkuXG4gICAgICAvLyBTaW5vbiwgaWwgZmF1dCBsZSBwcmVuZHJlIHNldWxlbWVudCBzaSBvbiBlc3QgaW50w6lyZXNzw6kgcGFyIGxlcyBsw6lnaXNsYXR1cmVzXG4gICAgICAvLyBwcsOpY8OpZGVudGVzLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PNDBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzX1hWSS5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5ta2RpclN5bmModGFyZ2V0RGlyKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiRMOpcHV0w6lzIGFjdGlmcyBldCBvcmdhbmVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9hbW8vZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzL0FNTzQwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PNDAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzIChsZXMgbcOqbWVzIHF1J0FNTzIwKVxuICAgICAgLy8gKiBhdmVjIHByZXNxdWUgdG91cyBsZXVycyBtYW5kYXRzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXMgbWFuZGF0cyBhY2hldsOpcyBldCBjZXV4IGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzIHByw6ljw6lkZW50c1xuICAgICAgLy8gKiBtYWlzIHNhbnMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgYWN0dWVsICh0eXBlT3JnYW5lOiBcIlBBUlBPTFwiKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGJlYXVjb3VwIGQnb3JnYW5lcyByw6lmw6lyZW5jw6lzLCB5IGNvbXByaXMgY2V1eCBkZXMgbMOpZ2lzbGF0dXJlc1xuICAgICAgLy8gcHLDqWPDqWRlbnRlc1xuICAgICAgLy8gKiBtYWlzIGlsIG1hbnF1ZSBsZSB4c2lUeXBlIGRlcyBvcmdhbmVzXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZXMgb3JnYW5lcyBzw6luYXRvcmlhdXhcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlcyBtaW5pc3TDqHJlc1xuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGEgUHLDqXNpZGVuY2UgZGUgbGEgUsOpcHVibGlxdWVcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgYWN0ZXVycywgY2UgZMOpcMO0dCBlc3QgdW4gc291cy1lbnNlbWJsZSBzdHJpY3QgZGUgQU1PMzAgOlxuICAgICAgLy8gSWwgYSBtb2lucyBkJ2FjdGV1cnMgZXQgaWwgc29udCBtb2lucyBjb21wbGV0cy5cbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBvcmdhbmVzIDpcbiAgICAgIC8vIFF1YW5kIGwnb3JnYW5lIGVzdCBhdXNzaSBwcsOpc2VudCBkYW5zIEFNTzMwLCBpbCB2YXV0IG1pZXV4IHByZW5kcmUgY2VsdWlcbiAgICAgIC8vIGQnQU1PMzAsIGNhciBpbCBjb250aWVudCBsZSB4c2lUeXBlIChjJ2VzdCBsYSBzZXVsZSBkaWZmw6lyZW5jZSBzZW1ibGUtdC1pKS5cbiAgICAgIC8vIFNpbm9uLCBpbCBmYXV0IGxlIHByZW5kcmUgc2V1bGVtZW50IHNpIG9uIGVzdCBpbnTDqXJlc3PDqSBwYXIgbGVzIGzDqWdpc2xhdHVyZXNcbiAgICAgIC8vIHByw6ljw6lkZW50ZXMuXG4gICAgICBmaWxlbmFtZTogXCJBTU80MF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXNfWFYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJvcmdhbmVcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJvcmdhbmVcIiksXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlcy9BTU80MF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzUwIChYVkkpXG4gICAgICAvL1xuICAgICAgLy8gQXR0ZW50aW9uLCBjZSBmaWNoaWVyIG4nZXN0IHBhcyBtaXMgw6Agam91ciByw6lndWxpw6hyZW1lbnQgIVxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZSBhdXggbWFuZGF0c1xuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIG9yZ2FuZXMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZVxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAsXG4gICAgICAvLyBkb250IGlsIGVzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZS5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzUwX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6XG4gICAgICAgIFwiQWN0ZXVycywgbWFuZGF0cyBldCBvcmdhbmVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlIChmaWNoaWVycyBzw6lwYXLDqXMsIHkgY29tcHJpcyBtYW5kYXRzKVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvYW1vL2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXMvQU1PNTBfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlcy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PNTAgKFhWKVxuICAgICAgLy9cbiAgICAgIC8vIEF0dGVudGlvbiwgY2UgZmljaGllciBuJ2VzdCBwYXMgbWlzIMOgIGpvdXIgcsOpZ3VsacOocmVtZW50ICFcbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBhY3RldXJzIDpcbiAgICAgIC8vICogYydlc3QgdW4gc291cyBlbnNlbWJsZSBvYnNvbMOodGUgZCdBTU8zMFxuICAgICAgLy8gKiBpbCBtYW5xdWUgbGVzIHhzaVR5cGUgYXV4IG1hbmRhdHNcbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBvcmdhbmVzIDpcbiAgICAgIC8vICogYydlc3QgdW4gc291cyBlbnNlbWJsZSBvYnNvbMOodGUgZCdBTU8zMFxuICAgICAgLy8gKiBpbCBtYW5xdWUgbGVzIHhzaVR5cGVcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLFxuICAgICAgLy8gZG9udCBpbCBlc3QgdW4gc291cyBlbnNlbWJsZSBvYnNvbMOodGUuXG4gICAgICBmaWxlbmFtZTogXCJBTU81MF9hY3RldXJzX21hbmRhdHNfb3JnYW5lc19kaXZpc2VzX1hWLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5ta2RpclN5bmModGFyZ2V0RGlyKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJtYW5kYXRcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJtYW5kYXRcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICApXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOlxuICAgICAgICBcIkFjdGV1cnMsIG1hbmRhdHMgZXQgb3JnYW5lcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlIChmaWNoaWVycyBzw6lwYXLDqXMsIHkgY29tcHJpcyBtYW5kYXRzKVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXMvQU1PNTBfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIGFnZW5kYXM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBZ2VuZGFfWFZJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBZ2VuZGEgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L3ZwL3JldW5pb25zL0FnZW5kYS5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQWdlbmRhX1hWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQWdlbmRhIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L3ZwL3JldW5pb25zL0FnZW5kYV9YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQWdlbmRhX1hJVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAgIHRpdGxlOiBcIkFnZW5kYSBkZSBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTQvdnAvcmV1bmlvbnMvQWdlbmRhX1hJVi5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIGFtZW5kZW1lbnRzOiBbXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQW1lbmRlbWVudHNfWFZJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBbWVuZGVtZW50cyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvbG9pL2FtZW5kZW1lbnRzX2Rpdl9sZWdpcy9BbWVuZGVtZW50cy5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQW1lbmRlbWVudHNfWFYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBbWVuZGVtZW50cyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9sb2kvYW1lbmRlbWVudHNfbGVnaXMvQW1lbmRlbWVudHNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIC8vIHtcbiAgICAvLyAgIGZpbGVuYW1lOiBcIkFtZW5kZW1lbnRzX1hJVi5qc29uXCIsXG4gICAgLy8gICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgLy8gICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgLy8gICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAvLyAgIHRpdGxlOiBcIkFtZW5kZW1lbnRzIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgLy8gICB1cmw6XG4gICAgLy8gICAgIFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC9sb2kvYW1lbmRlbWVudHNfbGVnaXNfWElWL0FtZW5kZW1lbnRzX1hJVi5qc29uLnppcFwiLFxuICAgIC8vIH0sXG4gIF0sXG4gIGRvc3NpZXJzTGVnaXNsYXRpZnM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkRvc3NpZXJzIGzDqWdpc2xhdGlmcyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvbG9pL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzL0Rvc3NpZXJzX0xlZ2lzbGF0aWZzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVpbnplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkRvc3NpZXJzIGzDqWdpc2xhdGlmcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9sb2kvZG9zc2llcnNfbGVnaXNsYXRpZnMvRG9zc2llcnNfTGVnaXNsYXRpZnNfWFYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hJVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVhdG9yemUsXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2luZ2xlRmlsZSxcbiAgICAgIHRpdGxlOiBcIkRvc3NpZXJzIGzDqWdpc2xhdGlmcyBkZSBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTQvbG9pL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzL0Rvc3NpZXJzX0xlZ2lzbGF0aWZzX1hJVi5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIHNjcnV0aW5zOiBbXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiU2NydXRpbnNfWFZJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJTY3J1dGlucyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvbG9pL3NjcnV0aW5zL1NjcnV0aW5zLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJTY3J1dGluc19YVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVpbnplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlNjcnV0aW5zIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2xvaS9zY3J1dGlucy9TY3J1dGluc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiU2NydXRpbnNfWElWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgICAgdGl0bGU6IFwiU2NydXRpbnMgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L2xvaS9zY3J1dGlucy9TY3J1dGluc19YSVYuanNvbi56aXBcIixcbiAgICB9LFxuICBdLFxuICBxdWVzdGlvbnM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJRdWVzdGlvbnNfZWNyaXRlc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlF1ZXN0aW9ucyDDqWNyaXRlcyBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvcXVlc3Rpb25zL3F1ZXN0aW9uc19lY3JpdGVzL1F1ZXN0aW9uc19lY3JpdGVzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJRdWVzdGlvbnNfZ291dmVybmVtZW50X1hWSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiUXVlc3Rpb25zIGF1IGdvdXZlcm5lbWVudCBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvcXVlc3Rpb25zL3F1ZXN0aW9uc19nb3V2ZXJuZW1lbnQvUXVlc3Rpb25zX2dvdXZlcm5lbWVudC5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiUXVlc3Rpb25zX29yYWxlc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlF1ZXN0aW9ucyBvcmFsZXMgc2FucyBkw6liYXRzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9xdWVzdGlvbnMvcXVlc3Rpb25zX29yYWxlc19zYW5zX2RlYmF0L1F1ZXN0aW9uc19vcmFsZXNfc2Fuc19kZWJhdC5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIGNvbXB0ZXNSZW5kdXNTZWFuY2VzOiBbXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiQ29tcHRlc19SZW5kdXNfU2VhbmNlc19YVkkueG1sXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJ4bWxcIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJDb21wdGVzIHJlbmR1cyBkZXMgc8OpYW5jZXMgcHVibGlxdWVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvdnAvc3ljZXJvbmJydXQvc3lzZXJvbi54bWwuemlwXCIsXG4gICAgfSxcbiAgXSxcbn1cblxuY29uc3QgZGlyZWN0b3J5MnNjaGVtYTogYW55ID0ge1xuICBcIi4qQWdlbmRhXy4qXCI6IFwiYWdlbmRhXCIsXG4gIFwiLipTY3J1dGluc18uKlwiOiBcInNjcnV0aW5cIixcbiAgXCIuKlF1ZXN0aW9uc18uKlwiOiBcInF1ZXN0aW9uXCIsXG4gIFwiLipBbWVuZGVtZW50c18uKlwiOiBcImFtZW5kZW1lbnRcIixcbiAgXCIuKkRvc3NpZXJzX0xlZ2lzbGF0aWZzXy4qL2RvY3VtZW50c1wiOiBcImRvY3VtZW50XCIsXG4gIFwiLipEb3NzaWVyc19MZWdpc2xhdGlmc18uKi9kb3NzaWVyc1wiOiBcImRvc3NpZXJcIixcbiAgXCIuKmFjdGV1cnNfbWFuZGF0c19vcmdhbmVzL29yZ2FuZXNcIjogXCJvcmdhbmVcIixcbiAgXCIuKmFjdGV1cnNfbWFuZGF0c19vcmdhbmVzL2FjdGV1cnNcIjogXCJhY3RldXJcIixcbiAgXCIuKkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuKi9vcmdhbmVzXCI6XG4gICAgXCJvcmdhbmVcIixcbiAgXCIuKkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWUuKi9hY3RldXJzXCI6XG4gICAgXCJhY3RldXJcIixcbiAgXCIuKkNvbXB0ZXNfUmVuZHVzX1NlYW5jZXNfLipcIjogXCJkZWJhdFwiLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YXNldHMoKTogYW55IHtcbiAgcmV0dXJuIFtcbiAgICBcIkFnZW5kYV9YSVZcIixcbiAgICBcIkFnZW5kYV9YVlwiLFxuICAgIFwiQWdlbmRhX1hWSVwiLFxuICAgIFwiU2NydXRpbnNfWElWXCIsXG4gICAgXCJTY3J1dGluc19YVlwiLFxuICAgIFwiU2NydXRpbnNfWFZJXCIsXG4gICAgXCJRdWVzdGlvbnNfRWNyaXRlc19YVklcIixcbiAgICBcIlF1ZXN0aW9uc19Hb3V2ZXJuZW1lbnRfWFZJXCIsXG4gICAgXCJBbWVuZGVtZW50c19YSVZcIixcbiAgICBcIkFtZW5kZW1lbnRzX1hWXCIsXG4gICAgXCJBbWVuZGVtZW50c19YVklcIixcbiAgICBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hJVlwiLFxuICAgIFwiRG9zc2llcnNfTGVnaXNsYXRpZnNfWFZcIixcbiAgICBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWSVwiLFxuICAgIFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZVwiLFxuICAgIFwiYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNcIixcbiAgICBcIkNvbXB0ZXNfUmVuZHVzX1NlYW5jZXNfWFZJXCIsXG4gIF1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkRGF0YXNldChkaXI6IGFueSk6IGFueSB7XG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBnZXREYXRhc2V0cygpKSB7XG4gICAgaWYgKGRpci5pbmNsdWRlcyhkYXRhc2V0KSkgcmV0dXJuIHRydWVcbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjaGVtYXMoKTogYW55IHtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoZGlyZWN0b3J5MnNjaGVtYSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFzZXREaXJlY3RvcnlTY2hlbWEoZGF0YXNldDogc3RyaW5nKTogYW55IHtcbiAgbGV0IGRpcmVjdG9yaWVzOiBhbnlcbiAgaWYgKGRhdGFzZXQuaW5jbHVkZXMoXCJEb3NzaWVyc19MZWdpc2xhdGlmc19cIikpIHtcbiAgICBkaXJlY3RvcmllcyA9IFtgJHtkYXRhc2V0fS9kb2N1bWVudHNgLCBgJHtkYXRhc2V0fS9kb3NzaWVyc2BdXG4gIH0gZWxzZSBpZiAoXG4gICAgZGF0YXNldC5pbmNsdWRlcyhcImFjdGV1cnNfbWFuZGF0c19vcmdhbmVzXCIpIHx8XG4gICAgZGF0YXNldC5pbmNsdWRlcyhcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWVcIilcbiAgKSB7XG4gICAgZGlyZWN0b3JpZXMgPSBbYCR7ZGF0YXNldH0vb3JnYW5lc2AsIGAke2RhdGFzZXR9L2FjdGV1cnNgXVxuICB9IGVsc2Uge1xuICAgIGRpcmVjdG9yaWVzID0gW2RhdGFzZXRdXG4gIH1cblxuICBsZXQgcmVzdWx0cyA9IFtdXG4gIGZvciAoY29uc3QgZGlyZWN0b3J5IG9mIGRpcmVjdG9yaWVzKSB7XG4gICAgZm9yIChjb25zdCByZSBvZiBPYmplY3Qua2V5cyhkaXJlY3Rvcnkyc2NoZW1hKSkge1xuICAgICAgaWYgKG5ldyBSZWdFeHAocmUpLmV4ZWMoZGlyZWN0b3J5KSlcbiAgICAgICAgcmVzdWx0cy5wdXNoKFtgJHtkaXJlY3Rvcnl9LyoqLyouanNvbmAsIGRpcmVjdG9yeTJzY2hlbWFbcmVdXSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdHNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVEYXRhc2V0VXJsKGZpbGVuYW1lOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddIHwgbnVsbCB7XG4gIGNvbnN0IHJlID0gXCJeLiovKC4qKV9uZXR0b3llLyguKilcIlxuICBjb25zdCBtYXRjaCA9IG5ldyBSZWdFeHAocmUpLmV4ZWMoZmlsZW5hbWUpXG4gIGlmIChtYXRjaCA9PSBudWxsKSByZXR1cm4gbnVsbFxuICBsZXQgW2RhdGFzZXQsIGZpbGVdID0gW21hdGNoWzFdLCBtYXRjaFsyXV1cbiAgaWYgKGRhdGFzZXQgPT0gXCJBTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlXCIpXG4gICAgZGF0YXNldCA9IFwiYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNcIlxuICByZXR1cm4gW2RhdGFzZXQsIGZpbGVdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmVXBzdHJlYW0oZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGFzZXRVcmwgPSBmaWxlRGF0YXNldFVybChmaWxlbmFtZSlcbiAgaWYgKGRhdGFzZXRVcmwgPT0gbnVsbCkgcmV0dXJuIGZpbGVuYW1lXG4gIGNvbnN0IFtkYXRhc2V0LCBmaWxlXSA9IGRhdGFzZXRVcmxcbiAgY29uc3Qgc3VtID0gY3JlYXRlSGFzaChcInNoYTFcIikudXBkYXRlKGZpbGUpLmRpZ2VzdChcImhleFwiKS50b1N0cmluZygpXG4gIHJldHVybiBgWyR7ZmlsZX1dKGh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL2RhdGEudHJpY290ZXVzZXMuZnIvJHtkYXRhc2V0fS8tL2NvbXBhcmUvdXBzdHJlYW0uLi5tYXN0ZXIjJHtzdW19KWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hc3RlclVybChmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YXNldFVybCA9IGZpbGVEYXRhc2V0VXJsKGZpbGVuYW1lKVxuICBpZiAoZGF0YXNldFVybCA9PSBudWxsKSByZXR1cm4gZmlsZW5hbWVcbiAgY29uc3QgW2RhdGFzZXQsIGZpbGVdID0gZGF0YXNldFVybFxuICByZXR1cm4gYFske2ZpbGV9XShodHRwczovL2dpdC5lbi1yb290Lm9yZy90cmljb3RldXNlcy9kYXRhLnRyaWNvdGV1c2VzLmZyLyR7ZGF0YXNldH0vLS90cmVlL21hc3Rlci8ke2ZpbGV9KWBcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBQWtELFNBQUFFLHVCQUFBRyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSxlQUFBQyxHQUFBLEVBQUFDLENBQUEsV0FBQUMsZUFBQSxDQUFBRixHQUFBLEtBQUFHLHFCQUFBLENBQUFILEdBQUEsRUFBQUMsQ0FBQSxLQUFBRywyQkFBQSxDQUFBSixHQUFBLEVBQUFDLENBQUEsS0FBQUksZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBQyxTQUFBO0FBQUEsU0FBQUgsc0JBQUFJLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLFdBQUFGLENBQUEsZ0NBQUFHLE1BQUEsSUFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEsS0FBQUosQ0FBQSw0QkFBQUUsQ0FBQSxRQUFBRyxDQUFBLEVBQUFDLENBQUEsRUFBQVosQ0FBQSxFQUFBYSxDQUFBLEVBQUFDLENBQUEsT0FBQUMsQ0FBQSxPQUFBQyxDQUFBLGlCQUFBaEIsQ0FBQSxJQUFBUSxDQUFBLEdBQUFBLENBQUEsQ0FBQVMsSUFBQSxDQUFBWCxDQUFBLEdBQUFZLElBQUEsUUFBQVgsQ0FBQSxRQUFBWSxNQUFBLENBQUFYLENBQUEsTUFBQUEsQ0FBQSxVQUFBTyxDQUFBLHVCQUFBQSxDQUFBLElBQUFKLENBQUEsR0FBQVgsQ0FBQSxDQUFBaUIsSUFBQSxDQUFBVCxDQUFBLEdBQUFZLElBQUEsTUFBQU4sQ0FBQSxDQUFBTyxJ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
|
|
686
|
+
function filterByLegislature(datasets, legislature) {
|
|
687
|
+
// When a given legislature is 0, it is the same as giving no legislature:
|
|
688
|
+
// It means "every legislatures".
|
|
689
|
+
var legislatures = legislature !== null && legislature !== void 0 && legislature.some(function (legislature) {
|
|
690
|
+
return legislature === 0;
|
|
691
|
+
}) ? undefined : legislature;
|
|
692
|
+
if (legislatures !== undefined) {
|
|
693
|
+
var enabledLegislatures = legislatures.map(function (legislature) {
|
|
694
|
+
return legislature.toString();
|
|
695
|
+
});
|
|
696
|
+
for (var _i2 = 0, _Object$entries = Object.entries(datasets); _i2 < _Object$entries.length; _i2++) {
|
|
697
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),
|
|
698
|
+
key = _Object$entries$_i[0],
|
|
699
|
+
value = _Object$entries$_i[1];
|
|
700
|
+
datasets[key] = value.filter(function (dataset) {
|
|
701
|
+
return dataset.legislature === _legislatures.Legislature.All || enabledLegislatures.includes(dataset.legislature);
|
|
702
|
+
});
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
return datasets;
|
|
706
|
+
}
|
|
707
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3J5cHRvIiwicmVxdWlyZSIsIl9mc0V4dHJhIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9wYXRoIiwiX2xlZ2lzbGF0dXJlcyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfc2xpY2VkVG9BcnJheSIsImFyciIsImkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiVHlwZUVycm9yIiwiciIsImwiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJlIiwibiIsInUiLCJhIiwiZiIsIm8iLCJjYWxsIiwibmV4dCIsIk9iamVjdCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsImFsbG93QXJyYXlMaWtlIiwiaXQiLCJGIiwicyIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsImVyciIsInN0ZXAiLCJfZTIiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsImxlbiIsImFycjIiLCJEYXRhc2V0U3RydWN0dXJlIiwiZXhwb3J0cyIsIkVuYWJsZWREYXRhc2V0cyIsImRhdGFzZXRzIiwiYWN0ZXVyc0V0T3JnYW5lcyIsImZpbGVuYW1lIiwiaWdub3JlRm9yV2ViIiwibGVnaXNsYXR1cmUiLCJMZWdpc2xhdHVyZSIsIlNlaXplIiwicmVwYWlyWmlwIiwiZGF0YXNldCIsImRhdGFEaXIiLCJ0YXJnZXREaXIiLCJwYXRoIiwiam9pbiIsImZzIiwiZXhpc3RzU3luYyIsInJlbW92ZVN5bmMiLCJtb3ZlU3luYyIsInN0cnVjdHVyZSIsIlNlZ21lbnRlZEZpbGVzIiwidGl0bGUiLCJ1cmwiLCJRdWluemUiLCJRdWF0b3J6ZSIsIlNpbmdsZUZpbGUiLCJBbGwiLCJta2RpclN5bmMiLCJhZ2VuZGFzIiwiYW1lbmRlbWVudHMiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzIiwic2NydXRpbnMiLCJxdWVzdGlvbnMiLCJjb21wdGVzUmVuZHVzU2VhbmNlcyIsImRpcmVjdG9yeTJzY2hlbWEiLCJnZXREYXRhc2V0cyIsInZhbGlkRGF0YXNldCIsImRpciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiaW5jbHVkZXMiLCJnZXRTY2hlbWFzIiwidmFsdWVzIiwiZGF0YXNldERpcmVjdG9yeVNjaGVtYSIsImRpcmVjdG9yaWVzIiwiY29uY2F0IiwicmVzdWx0cyIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJkaXJlY3RvcnkiLCJfaSIsIl9PYmplY3Qka2V5cyIsImtleXMiLCJyZSIsIlJlZ0V4cCIsImV4ZWMiLCJmaWxlRGF0YXNldFVybCIsIm1hdGNoIiwiX3JlZiIsImZpbGUiLCJkaWZmVXBzdHJlYW0iLCJkYXRhc2V0VXJsIiwiX2RhdGFzZXRVcmwiLCJzdW0iLCJjcmVhdGVIYXNoIiwidXBkYXRlIiwiZGlnZXN0IiwibWFzdGVyVXJsIiwiX2RhdGFzZXRVcmwyIiwiZmlsdGVyQnlMZWdpc2xhdHVyZSIsImxlZ2lzbGF0dXJlcyIsInNvbWUiLCJ1bmRlZmluZWQiLCJlbmFibGVkTGVnaXNsYXR1cmVzIiwibWFwIiwiX2kyIiwiX09iamVjdCRlbnRyaWVzIiwiZW50cmllcyIsIl9PYmplY3QkZW50cmllcyRfaSIsImtleSIsImZpbHRlciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhc2V0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcImNyeXB0b1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgTGVnaXNsYXR1cmUgfSBmcm9tIFwiLi90eXBlcy9sZWdpc2xhdHVyZXNcIlxuXG5pbnRlcmZhY2UgRGF0YXNldCB7XG4gIGZpbGVuYW1lOiBzdHJpbmdcbiAgaWdub3JlRm9yV2ViPzogYm9vbGVhblxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmVcbiAgcmVwYWlyWmlwPzogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4gdm9pZFxuICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmVcbiAgdGl0bGU6IHN0cmluZ1xuICB1cmw6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXRzIHtcbiAgYWN0ZXVyc0V0T3JnYW5lczogRGF0YXNldFtdXG4gIGFnZW5kYXM6IERhdGFzZXRbXVxuICBhbWVuZGVtZW50czogRGF0YXNldFtdXG4gIGRvc3NpZXJzTGVnaXNsYXRpZnM6IERhdGFzZXRbXVxuICBzY3J1dGluczogRGF0YXNldFtdXG4gIHF1ZXN0aW9uczogRGF0YXNldFtdXG4gIGNvbXB0ZXNSZW5kdXNTZWFuY2VzOiBEYXRhc2V0W11cbn1cblxuZXhwb3J0IGVudW0gRGF0YXNldFN0cnVjdHVyZSB7XG4gIFNpbmdsZUZpbGUsXG4gIFNlZ21lbnRlZEZpbGVzLFxufVxuXG5leHBvcnQgZW51bSBFbmFibGVkRGF0YXNldHMge1xuICBOb25lID0gMCxcbiAgQWN0ZXVyc0V0T3JnYW5lcyA9IDEgPDwgMCxcbiAgQWdlbmRhcyA9IDEgPDwgMSxcbiAgQW1lbmRlbWVudHMgPSAxIDw8IDIsXG4gIERvc3NpZXJzTGVnaXNsYXRpZnMgPSAxIDw8IDMsXG4gIFBob3RvcyA9IDEgPDwgNCxcbiAgU2NydXRpbnMgPSAxIDw8IDUsXG4gIFF1ZXN0aW9ucyA9IDEgPDwgNixcbiAgQ29tcHRlc1JlbmR1c1NlYW5jZXMgPSAxIDw8IDcsXG4gIEFsbCA9IEFjdGV1cnNFdE9yZ2FuZXMgfFxuICAgIEFnZW5kYXMgfFxuICAgIEFtZW5kZW1lbnRzIHxcbiAgICBEb3NzaWVyc0xlZ2lzbGF0aWZzIHxcbiAgICBQaG90b3MgfFxuICAgIFNjcnV0aW5zIHxcbiAgICBRdWVzdGlvbnMgfFxuICAgIENvbXB0ZXNSZW5kdXNTZWFuY2VzLFxufVxuXG5leHBvcnQgY29uc3QgZGF0YXNldHM6IERhdGFzZXRzID0ge1xuICBhY3RldXJzRXRPcmdhbmVzOiBbXG4gICAge1xuICAgICAgLy8gQU1PMTAgKFhWSSlcbiAgICAgIC8vXG4gICAgICAvLyBDb250aWVudCBsZXMgZMOpcHV0w6lzIGFjdGlmc1xuICAgICAgLy8gKiBhdmVjIHRvdXMgbGVzIG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogeSBjb21wcmlzIGF2ZWMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXMgbWFuZGF0cyBhY2hldsOpcyAoeSBjb21wcmlzIGRhbnMgY2V0dGUgbMOpZ2lzbGF0dXJlKVxuICAgICAgLy9cbiAgICAgIC8vIE9yZ2FuZXMgOlxuICAgICAgLy8gKiBDb250aWVudCBzZXVsZW1lbnQgbGVzIG9yZ2FuZXMgY29ycmVzcG9uZGFudHMgYXV4IG1hbmRhdHMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBsZSB4c2lUeXBlIGRlIGwnb3JnYW5lXG4gICAgICAvLyAqIGF2ZWMgZGVzIGNvbW1pc3Npb25zIHPDqW5hdG9yaWFsZXMgKHBlcm1hbmVudGVzIGV0IHNww6ljaWFsZXMpIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGTDqWzDqWdhdGlvbnMgc8OpbmF0b3JpYWxlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBncm91cGVzIHPDqW5hdG9yaWF1eCBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBtaW5pc3TDqHJlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlcyBQcsOpc2lkZW5jZXMgZGUgbGEgUsOpcHVibGlxdWUgKHkgY29tcHJpcyBTYXJrb3p5KVxuICAgICAgLy8gKiBhdmVjIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgdW4gc291cy1lbnNlbWJsZSDDoCB0b3VzIGxlcyBuaXZlYXV4IGR1IGZpY2hpZXIgQU1PMjBcbiAgICAgIC8vIChxdWkgZXN0IGx1aSBtw6ptZSB1biBzb3VzLWVuc2VtYmxlIGRlIGwnQU1PMzApLlxuICAgICAgLy8gSWwgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIEFNTzIwIG91IGwnQU1PMzAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8xMF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX1hWSS5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiRMOpcHV0w6lzIGFjdGlmcyBldCBvcmdhbmVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9hbW8vZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lcy9BTU8xMF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU8xMCAoWFYpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBhY3RpZnNcbiAgICAgIC8vICogYXZlYyB0b3VzIGxlcyBtYW5kYXRzIGVuIGNvdXJzXG4gICAgICAvLyAqIHkgY29tcHJpcyBhdmVjIGxldXIgcGFydGkgcG9saXRpcXVlICh0eXBlT3JnYW5lOiBcIlBBUlBPTFwiKVxuICAgICAgLy8gKiBtYWlzIHNhbnMgbGVzIG1hbmRhdHMgYWNoZXbDqXMgKHkgY29tcHJpcyBkYW5zIGNldHRlIGzDqWdpc2xhdHVyZSlcbiAgICAgIC8vXG4gICAgICAvLyBPcmdhbmVzIDpcbiAgICAgIC8vICogQ29udGllbnQgc2V1bGVtZW50IGxlcyBvcmdhbmVzIGNvcnJlc3BvbmRhbnRzIGF1eCBtYW5kYXRzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGUgeHNpVHlwZSBkZSBsJ29yZ2FuZVxuICAgICAgLy8gKiBhdmVjIGRlcyBjb21taXNzaW9ucyBzw6luYXRvcmlhbGVzIChwZXJtYW5lbnRlcyBldCBzcMOpY2lhbGVzKSBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBkw6lsw6lnYXRpb25zIHPDqW5hdG9yaWFsZXMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZ3JvdXBlcyBzw6luYXRvcmlhdXggZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgbWluaXN0w6hyZXMgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBsZXMgUHLDqXNpZGVuY2VzIGRlIGxhIFLDqXB1YmxpcXVlICh5IGNvbXByaXMgU2Fya296eSlcbiAgICAgIC8vICogYXZlYyBsZSBDb25zZWlsIGNvbnN0aXR1dGlvbm5lbFxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgZXN0IHVuIHNvdXMtZW5zZW1ibGUgw6AgdG91cyBsZXMgbml2ZWF1eCBkdSBmaWNoaWVyIEFNTzIwXG4gICAgICAvLyAocXVpIGVzdCBsdWkgbcOqbWUgdW4gc291cy1lbnNlbWJsZSBkZSBsJ0FNTzMwKS5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBBTU8yMCBvdSBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMTBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19YVi5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVpbnplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkTDqXB1dMOpcyBhY3RpZnMgZXQgb3JnYW5lcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lcy9BTU8xMF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU8yMCAoWFZJKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgZGUgbGEgbMOpZ2lzbGF0dXJlLCBhY3RpZnMgb3Ugbm9uIChpbnZhbGlkw6lzLCBldGMpLCBsZXMgc8OpbmF0ZXVycyBhY3R1ZWxzXG4gICAgICAvLyBQb3VyIGxlcyBkw6lwdXTDqXMgOlxuICAgICAgLy8gKiBhdmVjIHRvdXMgbGV1cnMgbWFuZGF0cyBkZSBsYSBsw6lnaXNsYXR1cmVcbiAgICAgIC8vICogeSBjb21wcmlzIGxlcyBtYW5kYXRzIGFjaGV2w6lzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXVycyBwYXJ0aXMgcG9saXRpcXVlcyAgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXMgbWFuZGF0cyBkZXMgbMOpZ2lzbGF0dXJlcyBwcsOpY8OpZGVudGVzIChxdWkgc29udCBkYW5zIEFNTzQwKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IHRvdXMgbGVzIG9yZ2FuZXMgcsOpZsOpcmVuY8OpcyBwYXIgbGVzIG1hbmRhdHNcbiAgICAgIC8vICogYXZlYyBsZSB4c2lUeXBlIGRlIGwnb3JnYW5lXG4gICAgICAvLyAqIGF2ZWMgZGVzIGNvbW1pc3Npb25zIHPDqW5hdG9yaWFsZXMgKHBlcm1hbmVudGVzIGV0IHNww6ljaWFsZXMpIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGTDqWzDqWdhdGlvbnMgc8OpbmF0b3JpYWxlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBncm91cGVzIHPDqW5hdG9yaWF1eCBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGRlcyBtaW5pc3TDqHJlcyBlbiBjb3Vyc1xuICAgICAgLy8gKiBhdmVjIGxlcyBQcsOpc2lkZW5jZXMgZGUgbGEgUsOpcHVibGlxdWUgKHkgY29tcHJpcyBTYXJrb3p5KVxuICAgICAgLy8gKiBhdmVjIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBlc3QgdW4gc291cy1lbnNlbWJsZSDDoCB0b3VzIGxlcyBuaXZlYXV4IGR1IGZpY2hpZXIgQU1PMzAuXG4gICAgICAvLyBJbCBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgbCdBTU8zMC5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzIwX2RlcF9zZW5fbWluX3RvdXNfbWFuZGF0c19ldF9vcmdhbmVzX1hWSS5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiQWN0ZXVycyBldCBvcmdhbmVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9hbW8vZGVwdXRlc19zZW5hdGV1cnNfbWluaXN0cmVzX2xlZ2lzbGF0dXJlL0FNTzIwX2RlcF9zZW5fbWluX3RvdXNfbWFuZGF0c19ldF9vcmdhbmVzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU8yMCAoWFYpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBkZSBsYSBsw6lnaXNsYXR1cmUsIGFjdGlmcyBvdSBub24gKGludmFsaWTDqXMsIGV0YyksIGxlcyBzw6luYXRldXJzIGFjdHVlbHNcbiAgICAgIC8vIFBvdXIgbGVzIGTDqXB1dMOpcyA6XG4gICAgICAvLyAqIGF2ZWMgdG91cyBsZXVycyBtYW5kYXRzIGRlIGxhIGzDqWdpc2xhdHVyZVxuICAgICAgLy8gKiB5IGNvbXByaXMgbGVzIG1hbmRhdHMgYWNoZXbDqXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzICAodHlwZU9yZ2FuZTogXCJQQVJQT0xcIilcbiAgICAgIC8vICogbWFpcyBzYW5zIGxlcyBtYW5kYXRzIGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXMgKHF1aSBzb250IGRhbnMgQU1PNDApXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgdG91cyBsZXMgb3JnYW5lcyByw6lmw6lyZW5jw6lzIHBhciBsZXMgbWFuZGF0c1xuICAgICAgLy8gKiBhdmVjIGxlIHhzaVR5cGUgZGUgbCdvcmdhbmVcbiAgICAgIC8vICogYXZlYyBkZXMgY29tbWlzc2lvbnMgc8OpbmF0b3JpYWxlcyAocGVybWFuZW50ZXMgZXQgc3DDqWNpYWxlcykgZW4gY291cnNcbiAgICAgIC8vICogYXZlYyBkZXMgZMOpbMOpZ2F0aW9ucyBzw6luYXRvcmlhbGVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIGdyb3VwZXMgc8OpbmF0b3JpYXV4IGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgZGVzIG1pbmlzdMOocmVzIGVuIGNvdXJzXG4gICAgICAvLyAqIGF2ZWMgbGVzIFByw6lzaWRlbmNlcyBkZSBsYSBSw6lwdWJsaXF1ZSAoeSBjb21wcmlzIFNhcmtvenkpXG4gICAgICAvLyAqIGF2ZWMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBDZSBmaWNoaWVyIGVzdCB1biBzb3VzLWVuc2VtYmxlIMOgIHRvdXMgbGVzIG5pdmVhdXggZHUgZmljaGllciBBTU8zMC5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIGFic29sdW1lbnQgcmllbiBwYXIgcmFwcG9ydCDDoCBsJ0FNTzMwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMjBfZGVwX3Nlbl9taW5fdG91c19tYW5kYXRzX2V0X29yZ2FuZXNfWFYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBY3RldXJzIGV0IG9yZ2FuZXMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvYW1vL2RlcHV0ZXNfc2VuYXRldXJzX21pbmlzdHJlc19sZWdpc2xhdHVyZS9BTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PMjAgKFhJVilcbiAgICAgIC8vXG4gICAgICAvLyBDb21tZSBBTU8yMCAoWFYpIG1haXMgcG91ciBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVxuICAgICAgLy8gVG91cyBsZXMgYWN0ZXVycyBzYXVmIHVuIChQQTQyOTg5Mikgc29udCBwcsOpc2VudHMgZW4gcGx1cyDDoCBqb3VyIGRhbnMgQU1PMzAuXG4gICAgICAvLyBDZXQgYWN0ZXVyIFBBNDI5ODkyIChhbmNpZW5uZSBTw6luYXRyaWNlKSBuJ2VzdCBwcsOpc2VudCBkYW5zIGF1Y3VuIGRlcyBhdXRyZXNcbiAgICAgIC8vIGZpY2hpZXJzIEFNTy5cbiAgICAgIC8vIFRvdXMgbGVzIG9yZ2FuZXMgc29udCBwcsOpc2VudHMgZW4gcGx1cyBjb21wbGV0cyBkYW5zIEFNTzMwLlxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgZXN0IGRvbmMgw6AgdW4gZMOpdGFpbCBwcsOqdCAoUEE0Mjk4OTIpIHVuIHNvdXMtZW5zZW1ibGUgZCdBTU8zMC5cbiAgICAgIC8vIElsIG4nYXBwb3J0ZSBkb25jIHF1YXNpbWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAuXG4gICAgICBmaWxlbmFtZTogXCJBTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lc19YSVYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1YXRvcnplLFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGUsXG4gICAgICB0aXRsZTogXCJBY3RldXJzIGV0IG9yZ2FuZXMgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L2Ftby9kZXB1dGVzX3NlbmF0ZXVyc19taW5pc3RyZXNfbGVnaXNsYXR1cmVzX1hJVi9BTU8yMF9kZXBfc2VuX21pbl90b3VzX21hbmRhdHNfZXRfb3JnYW5lc19YSVYuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIEFNTzMwIChYVkkpXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBjb250aWVudCB0b3VzIGxlcyBhY3RldXJzIGV0IG9yZ2FuZXMuXG4gICAgICAvLyBDJ2VzdCB1biBzdXItZW5zZW1ibGUgZGVzIGZpY2hpZXJzIEFNTzIwLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuQWxsLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOlxuICAgICAgICBcIkhpc3RvcmlxdWUgZGUgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzIGRlcHVpcyBsYSBYScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9hbW8vdG91c19hY3RldXJzX21hbmRhdHNfb3JnYW5lc194aV9sZWdpc2xhdHVyZS9BTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICAvLyB7XG4gICAgLy8gICAvLyBBTU8zMCAoWFYpXG4gICAgLy8gICAvL1xuICAgIC8vICAgLy8gQ2UgZmljaGllciBjb250aWVudCB0b3VzIGxlcyBhY3RldXJzIGV0IG9yZ2FuZXMuXG4gICAgLy8gICAvLyBDJ2VzdCB1biBzdXItZW5zZW1ibGUgZGVzIGZpY2hpZXJzIEFNTzIwLlxuICAgIC8vICAgZmlsZW5hbWU6IFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS5qc29uXCIsXG4gICAgLy8gICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuQWxsLFxuICAgIC8vICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgLy8gICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgIC8vICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgLy8gICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgIC8vICAgfSxcbiAgICAvLyAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAvLyAgIHRpdGxlOlxuICAgIC8vICAgICBcIkhpc3RvcmlxdWUgZGUgdG91cyBsZXMgYWN0ZXVycyBldCBvcmdhbmVzIGRlcHVpcyBsYSBYScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgLy8gICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vdG91c19hY3RldXJzX21hbmRhdHNfb3JnYW5lc194aV9sZWdpc2xhdHVyZS9BTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlLmpzb24uemlwXCIsXG4gICAgLy8gfSxcbiAgICB7XG4gICAgICAvLyBBTU80MCAoWFZJKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGxlcyBkw6lwdXTDqXMgYWN0aWZzIChsZXMgbcOqbWVzIHF1J0FNTzIwKVxuICAgICAgLy8gKiBhdmVjIHByZXNxdWUgdG91cyBsZXVycyBtYW5kYXRzXG4gICAgICAvLyAqIHkgY29tcHJpcyBsZXMgbWFuZGF0cyBhY2hldsOpcyBldCBjZXV4IGRlcyBsw6lnaXNsYXR1cmVzIHByw6ljw6lkZW50ZXNcbiAgICAgIC8vICogeSBjb21wcmlzIGxldXJzIHBhcnRpcyBwb2xpdGlxdWVzIHByw6ljw6lkZW50c1xuICAgICAgLy8gKiBtYWlzIHNhbnMgbGV1ciBwYXJ0aSBwb2xpdGlxdWUgYWN0dWVsICh0eXBlT3JnYW5lOiBcIlBBUlBPTFwiKVxuICAgICAgLy9cbiAgICAgIC8vIENvbnRpZW50IGJlYXVjb3VwIGQnb3JnYW5lcyByw6lmw6lyZW5jw6lzLCB5IGNvbXByaXMgY2V1eCBkZXMgbMOpZ2lzbGF0dXJlc1xuICAgICAgLy8gcHLDqWPDqWRlbnRlc1xuICAgICAgLy8gKiBtYWlzIGlsIG1hbnF1ZSBsZSB4c2lUeXBlIGRlcyBvcmdhbmVzXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsZXMgb3JnYW5lcyBzw6luYXRvcmlhdXhcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlcyBtaW5pc3TDqHJlc1xuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGEgUHLDqXNpZGVuY2UgZGUgbGEgUsOpcHVibGlxdWVcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlIENvbnNlaWwgY29uc3RpdHV0aW9ubmVsXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgYWN0ZXVycywgY2UgZMOpcMO0dCBlc3QgdW4gc291cy1lbnNlbWJsZSBzdHJpY3QgZGUgQU1PMzAgOlxuICAgICAgLy8gSWwgYSBtb2lucyBkJ2FjdGV1cnMgZXQgaWwgc29udCBtb2lucyBjb21wbGV0cy5cbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBvcmdhbmVzIDpcbiAgICAgIC8vIFF1YW5kIGwnb3JnYW5lIGVzdCBhdXNzaSBwcsOpc2VudCBkYW5zIEFNTzMwLCBpbCB2YXV0IG1pZXV4IHByZW5kcmUgY2VsdWlcbiAgICAgIC8vIGQnQU1PMzAsIGNhciBpbCBjb250aWVudCBsZSB4c2lUeXBlIChjJ2VzdCBsYSBzZXVsZSBkaWZmw6lyZW5jZSBzZW1ibGUtdC1pKS5cbiAgICAgIC8vIFNpbm9uLCBpbCBmYXV0IGxlIHByZW5kcmUgc2V1bGVtZW50IHNpIG9uIGVzdCBpbnTDqXJlc3PDqSBwYXIgbGVzIGzDqWdpc2xhdHVyZXNcbiAgICAgIC8vIHByw6ljw6lkZW50ZXMuXG4gICAgICBmaWxlbmFtZTogXCJBTU80MF9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXNfWFZJLmpzb25cIixcbiAgICAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJvcmdhbmVcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJvcmdhbmVcIiksXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJEw6lwdXTDqXMgYWN0aWZzIGV0IG9yZ2FuZXMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L2Ftby9kZXB1dGVzX2FjdGlmc19tYW5kYXRzX2FjdGlmc19vcmdhbmVzX2RpdmlzZXMvQU1PNDBfZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU80MCAoWFYpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgbGVzIGTDqXB1dMOpcyBhY3RpZnMgKGxlcyBtw6ptZXMgcXUnQU1PMjApXG4gICAgICAvLyAqIGF2ZWMgcHJlc3F1ZSB0b3VzIGxldXJzIG1hbmRhdHNcbiAgICAgIC8vICogeSBjb21wcmlzIGxlcyBtYW5kYXRzIGFjaGV2w6lzIGV0IGNldXggZGVzIGzDqWdpc2xhdHVyZXMgcHLDqWPDqWRlbnRlc1xuICAgICAgLy8gKiB5IGNvbXByaXMgbGV1cnMgcGFydGlzIHBvbGl0aXF1ZXMgcHLDqWPDqWRlbnRzXG4gICAgICAvLyAqIG1haXMgc2FucyBsZXVyIHBhcnRpIHBvbGl0aXF1ZSBhY3R1ZWwgKHR5cGVPcmdhbmU6IFwiUEFSUE9MXCIpXG4gICAgICAvL1xuICAgICAgLy8gQ29udGllbnQgYmVhdWNvdXAgZCdvcmdhbmVzIHLDqWbDqXJlbmPDqXMsIHkgY29tcHJpcyBjZXV4IGRlcyBsw6lnaXNsYXR1cmVzXG4gICAgICAvLyBwcsOpY8OpZGVudGVzXG4gICAgICAvLyAqIG1haXMgaWwgbWFucXVlIGxlIHhzaVR5cGUgZGVzIG9yZ2FuZXNcbiAgICAgIC8vICogbmUgY29udGllbnQgcGFzIGxlcyBvcmdhbmVzIHPDqW5hdG9yaWF1eFxuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGVzIG1pbmlzdMOocmVzXG4gICAgICAvLyAqIG5lIGNvbnRpZW50IHBhcyBsYSBQcsOpc2lkZW5jZSBkZSBsYSBSw6lwdWJsaXF1ZVxuICAgICAgLy8gKiBuZSBjb250aWVudCBwYXMgbGUgQ29uc2VpbCBjb25zdGl0dXRpb25uZWxcbiAgICAgIC8vXG4gICAgICAvLyBQb3VyIGxlcyBhY3RldXJzLCBjZSBkw6lww7R0IGVzdCB1biBzb3VzLWVuc2VtYmxlIHN0cmljdCBkZSBBTU8zMCA6XG4gICAgICAvLyBJbCBhIG1vaW5zIGQnYWN0ZXVycyBldCBpbCBzb250IG1vaW5zIGNvbXBsZXRzLlxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIG9yZ2FuZXMgOlxuICAgICAgLy8gUXVhbmQgbCdvcmdhbmUgZXN0IGF1c3NpIHByw6lzZW50IGRhbnMgQU1PMzAsIGlsIHZhdXQgbWlldXggcHJlbmRyZSBjZWx1aVxuICAgICAgLy8gZCdBTU8zMCwgY2FyIGlsIGNvbnRpZW50IGxlIHhzaVR5cGUgKGMnZXN0IGxhIHNldWxlIGRpZmbDqXJlbmNlIHNlbWJsZS10LWkpLlxuICAgICAgLy8gU2lub24sIGlsIGZhdXQgbGUgcHJlbmRyZSBzZXVsZW1lbnQgc2kgb24gZXN0IGludMOpcmVzc8OpIHBhciBsZXMgbMOpZ2lzbGF0dXJlc1xuICAgICAgLy8gcHLDqWPDqWRlbnRlcy5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzQwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlc19YVi5qc29uXCIsXG4gICAgICBpZ25vcmVGb3JXZWI6IHRydWUsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVpbnplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubWtkaXJTeW5jKHRhcmdldERpcilcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwiYWN0ZXVyXCIpLFxuICAgICAgICApXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm9yZ2FuZVwiKSxcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkTDqXB1dMOpcyBhY3RpZnMgZXQgb3JnYW5lcyBkZSBsYSBYVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vZGVwdXRlc19hY3RpZnNfbWFuZGF0c19hY3RpZnNfb3JnYW5lc19kaXZpc2VzL0FNTzQwX2RlcHV0ZXNfYWN0aWZzX21hbmRhdHNfYWN0aWZzX29yZ2FuZXNfZGl2aXNlc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgLy8gQU1PNTAgKFhWSSlcbiAgICAgIC8vXG4gICAgICAvLyBBdHRlbnRpb24sIGNlIGZpY2hpZXIgbidlc3QgcGFzIG1pcyDDoCBqb3VyIHLDqWd1bGnDqHJlbWVudCAhXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgYWN0ZXVycyA6XG4gICAgICAvLyAqIGMnZXN0IHVuIHNvdXMgZW5zZW1ibGUgb2Jzb2zDqHRlIGQnQU1PMzBcbiAgICAgIC8vICogaWwgbWFucXVlIGxlcyB4c2lUeXBlIGF1eCBtYW5kYXRzXG4gICAgICAvL1xuICAgICAgLy8gUG91ciBsZXMgb3JnYW5lcyA6XG4gICAgICAvLyAqIGMnZXN0IHVuIHNvdXMgZW5zZW1ibGUgb2Jzb2zDqHRlIGQnQU1PMzBcbiAgICAgIC8vICogaWwgbWFucXVlIGxlcyB4c2lUeXBlXG4gICAgICAvL1xuICAgICAgLy8gQ2UgZmljaGllciBuJ2FwcG9ydGUgZG9uYyBhYnNvbHVtZW50IHJpZW4gcGFyIHJhcHBvcnQgw6AgbCdBTU8zMCxcbiAgICAgIC8vIGRvbnQgaWwgZXN0IHVuIHNvdXMgZW5zZW1ibGUgb2Jzb2zDqHRlLlxuICAgICAgZmlsZW5hbWU6IFwiQU1PNTBfYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlc19YVkkuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubWtkaXJTeW5jKHRhcmdldERpcilcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwibWFuZGF0XCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwibWFuZGF0XCIpLFxuICAgICAgICApXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcImFjdGV1clwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJvcmdhbmVcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJvcmdhbmVcIiksXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTpcbiAgICAgICAgXCJBY3RldXJzLCBtYW5kYXRzIGV0IG9yZ2FuZXMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmUgKGZpY2hpZXJzIHPDqXBhcsOpcywgeSBjb21wcmlzIG1hbmRhdHMpXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9hbW8vYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlcy9BTU81MF9hY3RldXJzX21hbmRhdHNfb3JnYW5lc19kaXZpc2VzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBBTU81MCAoWFYpXG4gICAgICAvL1xuICAgICAgLy8gQXR0ZW50aW9uLCBjZSBmaWNoaWVyIG4nZXN0IHBhcyBtaXMgw6Agam91ciByw6lndWxpw6hyZW1lbnQgIVxuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIGFjdGV1cnMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZSBhdXggbWFuZGF0c1xuICAgICAgLy9cbiAgICAgIC8vIFBvdXIgbGVzIG9yZ2FuZXMgOlxuICAgICAgLy8gKiBjJ2VzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZSBkJ0FNTzMwXG4gICAgICAvLyAqIGlsIG1hbnF1ZSBsZXMgeHNpVHlwZVxuICAgICAgLy9cbiAgICAgIC8vIENlIGZpY2hpZXIgbidhcHBvcnRlIGRvbmMgYWJzb2x1bWVudCByaWVuIHBhciByYXBwb3J0IMOgIGwnQU1PMzAsXG4gICAgICAvLyBkb250IGlsIGVzdCB1biBzb3VzIGVuc2VtYmxlIG9ic29sw6h0ZS5cbiAgICAgIGZpbGVuYW1lOiBcIkFNTzUwX2FjdGV1cnNfbWFuZGF0c19vcmdhbmVzX2RpdmlzZXNfWFYuanNvblwiLFxuICAgICAgaWdub3JlRm9yV2ViOiB0cnVlLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIpXG4gICAgICAgIGZzLm1vdmVTeW5jKFxuICAgICAgICAgIHBhdGguam9pbihkYXRhRGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgICBwYXRoLmpvaW4odGFyZ2V0RGlyLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgKVxuICAgICAgICBmcy5tb3ZlU3luYyhcbiAgICAgICAgICBwYXRoLmpvaW4oZGF0YURpciwgXCJhY3RldXJcIiksXG4gICAgICAgICAgcGF0aC5qb2luKHRhcmdldERpciwgXCJhY3RldXJcIiksXG4gICAgICAgIClcbiAgICAgICAgZnMubW92ZVN5bmMoXG4gICAgICAgICAgcGF0aC5qb2luKGRhdGFEaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICAgIHBhdGguam9pbih0YXJnZXREaXIsIFwib3JnYW5lXCIpLFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6XG4gICAgICAgIFwiQWN0ZXVycywgbWFuZGF0cyBldCBvcmdhbmVzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmUgKGZpY2hpZXJzIHPDqXBhcsOpcywgeSBjb21wcmlzIG1hbmRhdHMpXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNS9hbW8vYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNfZGl2aXNlcy9BTU81MF9hY3RldXJzX21hbmRhdHNfb3JnYW5lc19kaXZpc2VzX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgXSxcbiAgYWdlbmRhczogW1xuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkFnZW5kYV9YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkFnZW5kYSBkZSBsYSBYVknDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTYvdnAvcmV1bmlvbnMvQWdlbmRhLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBZ2VuZGFfWFYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1aW56ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJBZ2VuZGEgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvdnAvcmV1bmlvbnMvQWdlbmRhX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBZ2VuZGFfWElWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgICAgdGl0bGU6IFwiQWdlbmRhIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC92cC9yZXVuaW9ucy9BZ2VuZGFfWElWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgXSxcbiAgYW1lbmRlbWVudHM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBbWVuZGVtZW50c19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkFtZW5kZW1lbnRzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9sb2kvYW1lbmRlbWVudHNfZGl2X2xlZ2lzL0FtZW5kZW1lbnRzLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJBbWVuZGVtZW50c19YVi5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuUXVpbnplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkFtZW5kZW1lbnRzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2xvaS9hbWVuZGVtZW50c19sZWdpcy9BbWVuZGVtZW50c19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAgLy8ge1xuICAgIC8vICAgZmlsZW5hbWU6IFwiQW1lbmRlbWVudHNfWElWLmpzb25cIixcbiAgICAvLyAgIGlnbm9yZUZvcldlYjogdHJ1ZSxcbiAgICAvLyAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAvLyAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgIC8vICAgdGl0bGU6IFwiQW1lbmRlbWVudHMgZGUgbGEgWElWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAvLyAgIHVybDpcbiAgICAvLyAgICAgXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE0L2xvaS9hbWVuZGVtZW50c19sZWdpc19YSVYvQW1lbmRlbWVudHNfWElWLmpzb24uemlwXCIsXG4gICAgLy8gfSxcbiAgXSxcbiAgZG9zc2llcnNMZWdpc2xhdGlmczogW1xuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiRG9zc2llcnMgbMOpZ2lzbGF0aWZzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9sb2kvZG9zc2llcnNfbGVnaXNsYXRpZnMvRG9zc2llcnNfTGVnaXNsYXRpZnMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiRG9zc2llcnMgbMOpZ2lzbGF0aWZzIGRlIGxhIFhWw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE1L2xvaS9kb3NzaWVyc19sZWdpc2xhdGlmcy9Eb3NzaWVyc19MZWdpc2xhdGlmc19YVi5qc29uLnppcFwiLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZW5hbWU6IFwiRG9zc2llcnNfTGVnaXNsYXRpZnNfWElWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWF0b3J6ZSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlLFxuICAgICAgdGl0bGU6IFwiRG9zc2llcnMgbMOpZ2lzbGF0aWZzIGRlIGxhIFhJVsOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNC9sb2kvZG9zc2llcnNfbGVnaXNsYXRpZnMvRG9zc2llcnNfTGVnaXNsYXRpZnNfWElWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgXSxcbiAgc2NydXRpbnM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJTY3J1dGluc19YVkkuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlNlaXplLFxuICAgICAgcmVwYWlyWmlwOiAoZGF0YXNldDogRGF0YXNldCwgZGF0YURpcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyh0YXJnZXREaXIpXG4gICAgICAgIH1cbiAgICAgICAgZnMubW92ZVN5bmMocGF0aC5qb2luKGRhdGFEaXIsIFwianNvblwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIlNjcnV0aW5zIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9sb2kvc2NydXRpbnMvU2NydXRpbnMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIlNjcnV0aW5zX1hWLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5RdWluemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiU2NydXRpbnMgZGUgbGEgWFbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTUvbG9pL3NjcnV0aW5zL1NjcnV0aW5zX1hWLmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJTY3J1dGluc19YSVYuanNvblwiLFxuICAgICAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLlF1YXRvcnplLFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGUsXG4gICAgICB0aXRsZTogXCJTY3J1dGlucyBkZSBsYSBYSVbDqG1lIGzDqWdpc2xhdHVyZVwiLFxuICAgICAgdXJsOiBcImh0dHA6Ly9kYXRhLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvc3RhdGljL29wZW5EYXRhL3JlcG9zaXRvcnkvMTQvbG9pL3NjcnV0aW5zL1NjcnV0aW5zX1hJVi5qc29uLnppcFwiLFxuICAgIH0sXG4gIF0sXG4gIHF1ZXN0aW9uczogW1xuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIlF1ZXN0aW9uc19lY3JpdGVzX1hWSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiUXVlc3Rpb25zIMOpY3JpdGVzIGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9xdWVzdGlvbnMvcXVlc3Rpb25zX2Vjcml0ZXMvUXVlc3Rpb25zX2Vjcml0ZXMuanNvbi56aXBcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVuYW1lOiBcIlF1ZXN0aW9uc19nb3V2ZXJuZW1lbnRfWFZJLmpzb25cIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcImpzb25cIiksIHRhcmdldERpcilcbiAgICAgIH0sXG4gICAgICBzdHJ1Y3R1cmU6IERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXMsXG4gICAgICB0aXRsZTogXCJRdWVzdGlvbnMgYXUgZ291dmVybmVtZW50IGRlIGxhIFhWScOobWUgbMOpZ2lzbGF0dXJlXCIsXG4gICAgICB1cmw6IFwiaHR0cDovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi9xdWVzdGlvbnMvcXVlc3Rpb25zX2dvdXZlcm5lbWVudC9RdWVzdGlvbnNfZ291dmVybmVtZW50Lmpzb24uemlwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJRdWVzdGlvbnNfb3JhbGVzX1hWSS5qc29uXCIsXG4gICAgICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUuU2VpemUsXG4gICAgICByZXBhaXJaaXA6IChkYXRhc2V0OiBEYXRhc2V0LCBkYXRhRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgICAgICBmcy5yZW1vdmVTeW5jKHRhcmdldERpcilcbiAgICAgICAgfVxuICAgICAgICBmcy5tb3ZlU3luYyhwYXRoLmpvaW4oZGF0YURpciwgXCJqc29uXCIpLCB0YXJnZXREaXIpXG4gICAgICB9LFxuICAgICAgc3RydWN0dXJlOiBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzLFxuICAgICAgdGl0bGU6IFwiUXVlc3Rpb25zIG9yYWxlcyBzYW5zIGTDqWJhdHMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwOi8vZGF0YS5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy9vcGVuRGF0YS9yZXBvc2l0b3J5LzE2L3F1ZXN0aW9ucy9xdWVzdGlvbnNfb3JhbGVzX3NhbnNfZGViYXQvUXVlc3Rpb25zX29yYWxlc19zYW5zX2RlYmF0Lmpzb24uemlwXCIsXG4gICAgfSxcbiAgXSxcbiAgY29tcHRlc1JlbmR1c1NlYW5jZXM6IFtcbiAgICB7XG4gICAgICBmaWxlbmFtZTogXCJDb21wdGVzX1JlbmR1c19TZWFuY2VzX1hWSS54bWxcIixcbiAgICAgIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZS5TZWl6ZSxcbiAgICAgIHJlcGFpclppcDogKGRhdGFzZXQ6IERhdGFzZXQsIGRhdGFEaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgICAgIGZzLnJlbW92ZVN5bmModGFyZ2V0RGlyKVxuICAgICAgICB9XG4gICAgICAgIGZzLm1vdmVTeW5jKHBhdGguam9pbihkYXRhRGlyLCBcInhtbFwiKSwgdGFyZ2V0RGlyKVxuICAgICAgfSxcbiAgICAgIHN0cnVjdHVyZTogRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlcyxcbiAgICAgIHRpdGxlOiBcIkNvbXB0ZXMgcmVuZHVzIGRlcyBzw6lhbmNlcyBwdWJsaXF1ZXMgZGUgbGEgWFZJw6htZSBsw6lnaXNsYXR1cmVcIixcbiAgICAgIHVybDogXCJodHRwczovL2RhdGEuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zdGF0aWMvb3BlbkRhdGEvcmVwb3NpdG9yeS8xNi92cC9zeWNlcm9uYnJ1dC9zeXNlcm9uLnhtbC56aXBcIixcbiAgICB9LFxuICBdLFxufVxuXG5jb25zdCBkaXJlY3Rvcnkyc2NoZW1hOiBhbnkgPSB7XG4gIFwiLipBZ2VuZGFfLipcIjogXCJhZ2VuZGFcIixcbiAgXCIuKlNjcnV0aW5zXy4qXCI6IFwic2NydXRpblwiLFxuICBcIi4qUXVlc3Rpb25zXy4qXCI6IFwicXVlc3Rpb25cIixcbiAgXCIuKkFtZW5kZW1lbnRzXy4qXCI6IFwiYW1lbmRlbWVudFwiLFxuICBcIi4qRG9zc2llcnNfTGVnaXNsYXRpZnNfLiovZG9jdW1lbnRzXCI6IFwiZG9jdW1lbnRcIixcbiAgXCIuKkRvc3NpZXJzX0xlZ2lzbGF0aWZzXy4qL2Rvc3NpZXJzXCI6IFwiZG9zc2llclwiLFxuICBcIi4qYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXMvb3JnYW5lc1wiOiBcIm9yZ2FuZVwiLFxuICBcIi4qYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXMvYWN0ZXVyc1wiOiBcImFjdGV1clwiLFxuICBcIi4qQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS4qL29yZ2FuZXNcIjpcbiAgICBcIm9yZ2FuZVwiLFxuICBcIi4qQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZS4qL2FjdGV1cnNcIjpcbiAgICBcImFjdGV1clwiLFxuICBcIi4qQ29tcHRlc19SZW5kdXNfU2VhbmNlc18uKlwiOiBcImRlYmF0XCIsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRhc2V0cygpOiBhbnkge1xuICByZXR1cm4gW1xuICAgIFwiQWdlbmRhX1hJVlwiLFxuICAgIFwiQWdlbmRhX1hWXCIsXG4gICAgXCJBZ2VuZGFfWFZJXCIsXG4gICAgXCJTY3J1dGluc19YSVZcIixcbiAgICBcIlNjcnV0aW5zX1hWXCIsXG4gICAgXCJTY3J1dGluc19YVklcIixcbiAgICBcIlF1ZXN0aW9uc19FY3JpdGVzX1hWSVwiLFxuICAgIFwiUXVlc3Rpb25zX0dvdXZlcm5lbWVudF9YVklcIixcbiAgICBcIkFtZW5kZW1lbnRzX1hJVlwiLFxuICAgIFwiQW1lbmRlbWVudHNfWFZcIixcbiAgICBcIkFtZW5kZW1lbnRzX1hWSVwiLFxuICAgIFwiRG9zc2llcnNfTGVnaXNsYXRpZnNfWElWXCIsXG4gICAgXCJEb3NzaWVyc19MZWdpc2xhdGlmc19YVlwiLFxuICAgIFwiRG9zc2llcnNfTGVnaXNsYXRpZnNfWFZJXCIsXG4gICAgXCJBTU8zMF90b3VzX2FjdGV1cnNfdG91c19tYW5kYXRzX3RvdXNfb3JnYW5lc19oaXN0b3JpcXVlXCIsXG4gICAgXCJhY3RldXJzX21hbmRhdHNfb3JnYW5lc1wiLFxuICAgIFwiQ29tcHRlc19SZW5kdXNfU2VhbmNlc19YVklcIixcbiAgXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWREYXRhc2V0KGRpcjogYW55KTogYW55IHtcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGdldERhdGFzZXRzKCkpIHtcbiAgICBpZiAoZGlyLmluY2x1ZGVzKGRhdGFzZXQpKSByZXR1cm4gdHJ1ZVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NoZW1hcygpOiBhbnkge1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhkaXJlY3Rvcnkyc2NoZW1hKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0YXNldERpcmVjdG9yeVNjaGVtYShkYXRhc2V0OiBzdHJpbmcpOiBhbnkge1xuICBsZXQgZGlyZWN0b3JpZXM6IGFueVxuICBpZiAoZGF0YXNldC5pbmNsdWRlcyhcIkRvc3NpZXJzX0xlZ2lzbGF0aWZzX1wiKSkge1xuICAgIGRpcmVjdG9yaWVzID0gW2Ake2RhdGFzZXR9L2RvY3VtZW50c2AsIGAke2RhdGFzZXR9L2Rvc3NpZXJzYF1cbiAgfSBlbHNlIGlmIChcbiAgICBkYXRhc2V0LmluY2x1ZGVzKFwiYWN0ZXVyc19tYW5kYXRzX29yZ2FuZXNcIikgfHxcbiAgICBkYXRhc2V0LmluY2x1ZGVzKFwiQU1PMzBfdG91c19hY3RldXJzX3RvdXNfbWFuZGF0c190b3VzX29yZ2FuZXNfaGlzdG9yaXF1ZVwiKVxuICApIHtcbiAgICBkaXJlY3RvcmllcyA9IFtgJHtkYXRhc2V0fS9vcmdhbmVzYCwgYCR7ZGF0YXNldH0vYWN0ZXVyc2BdXG4gIH0gZWxzZSB7XG4gICAgZGlyZWN0b3JpZXMgPSBbZGF0YXNldF1cbiAgfVxuXG4gIGxldCByZXN1bHRzID0gW11cbiAgZm9yIChjb25zdCBkaXJlY3Rvcnkgb2YgZGlyZWN0b3JpZXMpIHtcbiAgICBmb3IgKGNvbnN0IHJlIG9mIE9iamVjdC5rZXlzKGRpcmVjdG9yeTJzY2hlbWEpKSB7XG4gICAgICBpZiAobmV3IFJlZ0V4cChyZSkuZXhlYyhkaXJlY3RvcnkpKVxuICAgICAgICByZXN1bHRzLnB1c2goW2Ake2RpcmVjdG9yeX0vKiovKi5qc29uYCwgZGlyZWN0b3J5MnNjaGVtYVtyZV1dKVxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0c1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsZURhdGFzZXRVcmwoZmlsZW5hbWU6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10gfCBudWxsIHtcbiAgY29uc3QgcmUgPSBcIl4uKi8oLiopX25ldHRveWUvKC4qKVwiXG4gIGNvbnN0IG1hdGNoID0gbmV3IFJlZ0V4cChyZSkuZXhlYyhmaWxlbmFtZSlcbiAgaWYgKG1hdGNoID09IG51bGwpIHJldHVybiBudWxsXG4gIGxldCBbZGF0YXNldCwgZmlsZV0gPSBbbWF0Y2hbMV0sIG1hdGNoWzJdXVxuICBpZiAoZGF0YXNldCA9PSBcIkFNTzMwX3RvdXNfYWN0ZXVyc190b3VzX21hbmRhdHNfdG91c19vcmdhbmVzX2hpc3RvcmlxdWVcIilcbiAgICBkYXRhc2V0ID0gXCJhY3RldXJzX21hbmRhdHNfb3JnYW5lc1wiXG4gIHJldHVybiBbZGF0YXNldCwgZmlsZV1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZVcHN0cmVhbShmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YXNldFVybCA9IGZpbGVEYXRhc2V0VXJsKGZpbGVuYW1lKVxuICBpZiAoZGF0YXNldFVybCA9PSBudWxsKSByZXR1cm4gZmlsZW5hbWVcbiAgY29uc3QgW2RhdGFzZXQsIGZpbGVdID0gZGF0YXNldFVybFxuICBjb25zdCBzdW0gPSBjcmVhdGVIYXNoKFwic2hhMVwiKS51cGRhdGUoZmlsZSkuZGlnZXN0KFwiaGV4XCIpLnRvU3RyaW5nKClcbiAgcmV0dXJuIGBbJHtmaWxlfV0oaHR0cHM6Ly9naXQuZW4tcm9vdC5vcmcvdHJpY290ZXVzZXMvZGF0YS50cmljb3RldXNlcy5mci8ke2RhdGFzZXR9Ly0vY29tcGFyZS91cHN0cmVhbS4uLm1hc3RlciMke3N1bX0pYFxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFzdGVyVXJsKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBkYXRhc2V0VXJsID0gZmlsZURhdGFzZXRVcmwoZmlsZW5hbWUpXG4gIGlmIChkYXRhc2V0VXJsID09IG51bGwpIHJldHVybiBmaWxlbmFtZVxuICBjb25zdCBbZGF0YXNldCwgZmlsZV0gPSBkYXRhc2V0VXJsXG4gIHJldHVybiBgWyR7ZmlsZX1dKGh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL2RhdGEudHJpY290ZXVzZXMuZnIvJHtkYXRhc2V0fS8tL3RyZWUvbWFzdGVyLyR7ZmlsZX0pYFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyQnlMZWdpc2xhdHVyZShkYXRhc2V0czogRGF0YXNldHMsIGxlZ2lzbGF0dXJlOiBhbnkpOiBEYXRhc2V0cyB7XG4gIC8vIFdoZW4gYSBnaXZlbiBsZWdpc2xhdHVyZSBpcyAwLCBpdCBpcyB0aGUgc2FtZSBhcyBnaXZpbmcgbm8gbGVnaXNsYXR1cmU6XG4gIC8vIEl0IG1lYW5zIFwiZXZlcnkgbGVnaXNsYXR1cmVzXCIuXG4gIGNvbnN0IGxlZ2lzbGF0dXJlcyA9IGxlZ2lzbGF0dXJlPy5zb21lKFxuICAgIChsZWdpc2xhdHVyZTogbnVtYmVyKSA9PiBsZWdpc2xhdHVyZSA9PT0gMCxcbiAgKVxuICAgID8gdW5kZWZpbmVkXG4gICAgOiBsZWdpc2xhdHVyZVxuICBpZiAobGVnaXNsYXR1cmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBlbmFibGVkTGVnaXNsYXR1cmVzID0gbGVnaXNsYXR1cmVzLm1hcCgobGVnaXNsYXR1cmU6IG51bWJlcikgPT5cbiAgICAgIGxlZ2lzbGF0dXJlLnRvU3RyaW5nKCksXG4gICAgKVxuICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhkYXRhc2V0cykpIHtcbiAgICAgIGRhdGFzZXRzW2tleSBhcyBrZXlvZiB0eXBlb2YgZGF0YXNldHNdID0gdmFsdWUuZmlsdGVyKFxuICAgICAgICAoZGF0YXNldDogeyBsZWdpc2xhdHVyZTogYW55IH0pID0+XG4gICAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSA9PT0gTGVnaXNsYXR1cmUuQWxsIHx8XG4gICAgICAgICAgZW5hYmxlZExlZ2lzbGF0dXJlcy5pbmNsdWRlcyhkYXRhc2V0LmxlZ2lzbGF0dXJlKSxcbiAgICAgIClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRhdGFzZXRzO1xufSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBSSxhQUFBLEdBQUFKLE9BQUE7QUFBa0QsU0FBQUUsdUJBQUFHLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxnQkFBQUEsR0FBQTtBQUFBLFNBQUFFLGVBQUFDLEdBQUEsRUFBQUMsQ0FBQSxXQUFBQyxlQUFBLENBQUFGLEdBQUEsS0FBQUcscUJBQUEsQ0FBQUgsR0FBQSxFQUFBQyxDQUFBLEtBQUFHLDJCQUFBLENBQUFKLEdBQUEsRUFBQUMsQ0FBQSxLQUFBSSxnQkFBQTtBQUFBLFNBQUFBLGlCQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBSCxzQkFBQUksQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsV0FBQUYsQ0FBQSxnQ0FBQUcsTUFBQSxJQUFBSCxDQUFBLENBQUFHLE1BQUEsQ0FBQUMsUUFBQSxLQUFBSixDQUFBLDRCQUFBRSxDQUFBLFFBQUFHLENBQUEsRUFBQUMsQ0FBQSxFQUFBWixDQUFBLEVBQUFhLENBQUEsRUFBQUMsQ0FBQSxPQUFBQyxDQUFBLE9BQUFDLENBQUEsaUJBQUFoQixDQUFBLElBQUFRLENBQUEsR0FBQUEsQ0FBQSxDQUFBUyxJQUFBLENBQUFYLENBQUEsR0FBQVksSUFBQSxRQUFBWCxDQUFBLFFBQUFZLE1BQUEsQ0FBQVgsQ0FBQSxNQUFBQSxDQUFBLFVBQUFPLENBQUEsdUJBQUFBLENBQUEsSUFB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
|