@tricoteuses/assemblee 0.28.0 → 0.28.3
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/api.js +1 -1
- package/lib/api.mjs +1 -1
- package/lib/bugs/acteur-00010/plugin.test.js +45 -5
- package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
- package/lib/bugs/acteur-00010.js +29 -9
- package/lib/bugs/acteur-00010.mjs +1 -1
- package/lib/bugs/agenda-00002/plugin.test.js +46 -6
- package/lib/bugs/agenda-00002/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00002.js +29 -13
- package/lib/bugs/agenda-00002.mjs +1 -1
- package/lib/bugs/agenda-00008/plugin.test.js +44 -4
- package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00008.js +29 -9
- package/lib/bugs/agenda-00008.mjs +1 -1
- package/lib/bugs/agenda-00011/plugin.test.js +50 -12
- package/lib/bugs/agenda-00011/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00011.js +39 -19
- package/lib/bugs/agenda-00011.mjs +1 -1
- package/lib/bugs.js +51 -31
- package/lib/bugs.mjs +1 -1
- package/lib/cleaners/actes_legislatifs.js +1 -1
- package/lib/cleaners/actes_legislatifs.mjs +1 -1
- package/lib/cleaners/acteurs.js +1 -1
- package/lib/cleaners/acteurs.mjs +1 -1
- package/lib/cleaners/amendements.js +1 -1
- package/lib/cleaners/amendements.mjs +1 -1
- package/lib/cleaners/documents.js +13 -1
- package/lib/cleaners/documents.mjs +13 -1
- package/lib/cleaners/dossiers_legislatifs.js +1 -1
- package/lib/cleaners/dossiers_legislatifs.mjs +1 -1
- package/lib/cleaners/index.js +1 -1
- package/lib/cleaners/index.mjs +1 -1
- package/lib/cleaners/organes.js +1 -1
- package/lib/cleaners/organes.mjs +1 -1
- package/lib/cleaners/reunions.js +1 -1
- package/lib/cleaners/reunions.mjs +1 -1
- package/lib/cleaners/scrutins.js +1 -1
- package/lib/cleaners/scrutins.mjs +1 -1
- package/lib/cleaners/xml.js +1 -1
- package/lib/cleaners/xml.mjs +1 -1
- package/lib/datasets.js +1 -1
- package/lib/datasets.mjs +1 -1
- package/lib/dates.js +1 -1
- package/lib/dates.mjs +1 -1
- package/lib/dossiers_legislatifs.js +1 -1
- package/lib/dossiers_legislatifs.mjs +1 -1
- package/lib/file_systems.js +25 -5
- package/lib/file_systems.mjs +1 -1
- package/lib/git.js +1 -1
- package/lib/git.mjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.mjs +1 -1
- package/lib/inserters.js +1 -1
- package/lib/inserters.mjs +1 -1
- package/lib/loaders.js +1 -1
- package/lib/loaders.mjs +1 -1
- package/lib/organes.js +1 -1
- package/lib/organes.mjs +1 -1
- package/lib/parsers/documents.js +27 -5
- package/lib/parsers/documents.mjs +1 -1
- package/lib/parsers/index.js +1 -1
- package/lib/parsers/index.mjs +1 -1
- package/lib/parsers/recherche_amendements.js +27 -7
- package/lib/parsers/recherche_amendements.mjs +1 -1
- package/lib/raw_types/acteurs_et_organes.d.ts +2 -1
- package/lib/raw_types/acteurs_et_organes.js +3 -2
- package/lib/raw_types/acteurs_et_organes.mjs +3 -2
- package/lib/raw_types/agendas.js +1 -1
- package/lib/raw_types/agendas.mjs +1 -1
- package/lib/raw_types/amendements.js +1 -1
- package/lib/raw_types/amendements.mjs +1 -1
- package/lib/raw_types/dossiers_legislatifs.d.ts +4 -0
- package/lib/raw_types/dossiers_legislatifs.js +10 -1
- package/lib/raw_types/dossiers_legislatifs.mjs +10 -1
- package/lib/raw_types/scrutins.js +1 -1
- package/lib/raw_types/scrutins.mjs +1 -1
- package/lib/scripts/bugs_helper.js +39 -19
- package/lib/scripts/bugs_helper.mjs +1 -1
- package/lib/scripts/clean_data.js +1 -1
- package/lib/scripts/clean_data.mjs +1 -1
- package/lib/scripts/clean_reorganized_data.js +1 -1
- package/lib/scripts/clean_reorganized_data.mjs +1 -1
- package/lib/scripts/diff_amendements.js +1 -1
- package/lib/scripts/diff_amendements.mjs +1 -1
- package/lib/scripts/document_dossiers_legislatifs.js +5 -3
- package/lib/scripts/document_dossiers_legislatifs.mjs +1 -1
- package/lib/scripts/get_today_reunions.js +1 -1
- package/lib/scripts/get_today_reunions.mjs +1 -1
- package/lib/scripts/merge_scrutins.js +1 -1
- package/lib/scripts/merge_scrutins.mjs +1 -1
- package/lib/scripts/parse_textes_lois.js +1 -1
- package/lib/scripts/parse_textes_lois.mjs +1 -1
- package/lib/scripts/raw_types_from_amendements.js +28 -4
- package/lib/scripts/raw_types_from_amendements.mjs +1 -1
- package/lib/scripts/reorganize_data.js +1 -1
- package/lib/scripts/reorganize_data.mjs +1 -1
- package/lib/scripts/retrieve_deputes_photos.js +28 -4
- package/lib/scripts/retrieve_deputes_photos.mjs +1 -1
- package/lib/scripts/retrieve_documents.js +35 -15
- package/lib/scripts/retrieve_documents.mjs +1 -1
- package/lib/scripts/retrieve_open_data.js +30 -6
- package/lib/scripts/retrieve_open_data.mjs +1 -1
- package/lib/scripts/retrieve_pending_amendments.js +26 -4
- package/lib/scripts/retrieve_pending_amendments.mjs +1 -1
- package/lib/scripts/retrieve_senateurs_photos.js +28 -4
- package/lib/scripts/retrieve_senateurs_photos.mjs +1 -1
- package/lib/scripts/retrieve_textes_lois.js +22 -4
- package/lib/scripts/retrieve_textes_lois.mjs +1 -1
- package/lib/scripts/test_load.js +1 -1
- package/lib/scripts/test_load.mjs +1 -1
- package/lib/scripts/test_load_big_files.js +1 -1
- package/lib/scripts/test_load_big_files.mjs +1 -1
- package/lib/scripts/validate_json.js +27 -7
- package/lib/scripts/validate_json.mjs +1 -1
- package/lib/shared_types/codes_actes.js +1 -1
- package/lib/shared_types/codes_actes.mjs +1 -1
- package/lib/strings.js +1 -1
- package/lib/strings.mjs +1 -1
- package/lib/types/acteurs_et_organes.js +1 -1
- package/lib/types/acteurs_et_organes.mjs +1 -1
- package/lib/types/agendas.js +1 -1
- package/lib/types/agendas.mjs +1 -1
- package/lib/types/amendements.js +1 -1
- package/lib/types/amendements.mjs +1 -1
- package/lib/types/dossiers_legislatifs.d.ts +1 -0
- package/lib/types/dossiers_legislatifs.js +5 -1
- package/lib/types/dossiers_legislatifs.mjs +5 -1
- package/lib/types/legislatures.js +1 -1
- package/lib/types/legislatures.mjs +1 -1
- package/lib/types/scrutins.js +1 -1
- package/lib/types/scrutins.mjs +1 -1
- package/lib/urls.js +1 -1
- package/lib/urls.mjs +1 -1
- package/package.json +6 -6
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
require("core-js/modules/es.function.name.js");
|
|
4
6
|
|
|
5
7
|
require("core-js/modules/es.array.from.js");
|
|
@@ -16,7 +18,27 @@ require("core-js/modules/es.array.is-array.js");
|
|
|
16
18
|
|
|
17
19
|
require("core-js/modules/es.promise.js");
|
|
18
20
|
|
|
19
|
-
require("
|
|
21
|
+
require("core-js/modules/es.symbol.async-iterator.js");
|
|
22
|
+
|
|
23
|
+
require("core-js/modules/es.symbol.to-string-tag.js");
|
|
24
|
+
|
|
25
|
+
require("core-js/modules/es.json.to-string-tag.js");
|
|
26
|
+
|
|
27
|
+
require("core-js/modules/es.math.to-string-tag.js");
|
|
28
|
+
|
|
29
|
+
require("core-js/modules/es.object.define-property.js");
|
|
30
|
+
|
|
31
|
+
require("core-js/modules/es.object.create.js");
|
|
32
|
+
|
|
33
|
+
require("core-js/modules/es.object.get-prototype-of.js");
|
|
34
|
+
|
|
35
|
+
require("core-js/modules/es.array.for-each.js");
|
|
36
|
+
|
|
37
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
38
|
+
|
|
39
|
+
require("core-js/modules/es.object.set-prototype-of.js");
|
|
40
|
+
|
|
41
|
+
require("core-js/modules/es.array.reverse.js");
|
|
20
42
|
|
|
21
43
|
require("core-js/modules/es.regexp.exec.js");
|
|
22
44
|
|
|
@@ -60,6 +82,8 @@ var _acteurs_et_organes = require("../types/acteurs_et_organes");
|
|
|
60
82
|
|
|
61
83
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
62
84
|
|
|
85
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
86
|
+
|
|
63
87
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
64
88
|
|
|
65
89
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -171,10 +195,10 @@ function retrievePhotosSenateurs() {
|
|
|
171
195
|
}
|
|
172
196
|
|
|
173
197
|
function _retrievePhotosSenateurs() {
|
|
174
|
-
_retrievePhotosSenateurs = _asyncToGenerator( /*#__PURE__*/
|
|
198
|
+
_retrievePhotosSenateurs = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
175
199
|
var dataDir, _loadAssembleeData, acteurByUid, senateurs, gitGroupUrl, photosDirName, photosDir, missingPhotoFilePath, _iterator4, _step4, senateur, ident, senateurStem, photoFilename, photoFilePath, photoTempFilename, photoTempFilePath, urlPhoto, _iterator5, _step5, _senateur2, _ident, _senateurStem2, photoByIdSenateur, rowsFilenames, senateurIndex, rowIndex, row, photosFilenames, _iterator6, _step6, _step6$value, columnIndex, _senateur, _senateurStem, _photoFilename, rowFilename, _i2, _rowsFilenames, _rowFilename, jsonFilePath;
|
|
176
200
|
|
|
177
|
-
return
|
|
201
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
178
202
|
while (1) {
|
|
179
203
|
switch (_context.prev = _context.next) {
|
|
180
204
|
case 0:
|
|
@@ -426,4 +450,4 @@ retrievePhotosSenateurs().then(function (error) {
|
|
|
426
450
|
console.log(error);
|
|
427
451
|
process.exit(2);
|
|
428
452
|
});
|
|
429
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX3NlbmF0ZXVyc19waG90b3MudHMiXSwibmFtZXMiOlsib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJTdHJpbmciLCJCb29sZWFuIiwibXVsdGlwbGUiLCJkZWZhdWx0T3B0aW9uIiwib3B0aW9ucyIsImNvbW1pdEFuZFB1c2giLCJyZXBvc2l0b3J5RGlyIiwiY29tbWl0IiwicmVtb3RlcyIsImVycm9yIiwiY3dkIiwiZW52IiwicHJvY2VzcyIsImVuY29kaW5nIiwic3RkaW8iLCJjaGlsZFByb2Nlc3MiLCJzdGRlcnIiLCJ0ZXN0Iiwic3Rkb3V0IiwiY29uc29sZSIsIm91dHB1dCIsInJlbW90ZSIsInJldHJpZXZlUGhvdG9zU2VuYXRldXJzIiwiZGF0YURpciIsIkVuYWJsZWREYXRhc2V0cyIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJsZWdpc2xhdHVyZSIsImFjdGV1ckJ5VWlkIiwic2VuYXRldXJzIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwiYWN0ZXVyIiwibWFuZGF0cyIsIm1hbmRhdFNlbmF0ZXVyIiwibWFuZGF0IiwieHNpVHlwZSIsIlR5cGVNYW5kYXQiLCJNYW5kYXRQYXJsZW1lbnRhaXJlVHlwZSIsInR5cGVPcmdhbmUiLCJDb2RlVHlwZU9yZ2FuZSIsIlNlbmF0IiwidW5kZWZpbmVkIiwiYWRyZXNzZXMiLCJ1cmwiLCJhZHJlc3NlIiwidHlwZUxpYmVsbGUiLCJ2YWxFbGVjIiwic29ydCIsImEiLCJiIiwidWlkIiwibGVuZ3RoIiwibG9jYWxlQ29tcGFyZSIsImdpdEdyb3VwVXJsIiwiY2xvbmUiLCJ0cmltIiwicmVwbGFjZSIsInBob3Rvc0Rpck5hbWUiLCJwaG90b3NEaXIiLCJwYXRoIiwiam9pbiIsImZzIiwiZW5zdXJlRGlyU3luYyIsImZldGNoIiwibWlzc2luZ1Bob3RvRmlsZVBhdGgiLCJzZW5hdGV1ciIsImlkZW50IiwiZXRhdENpdmlsIiwic2VuYXRldXJTdGVtIiwic3RlbUZyb21TZW5hdGV1ciIsInBob3RvRmlsZW5hbWUiLCJwaG90b0ZpbGVQYXRoIiwicGhvdG9UZW1wRmlsZW5hbWUiLCJwaG90b1RlbXBGaWxlUGF0aCIsInVybFBob3RvIiwic2lsZW50IiwibG9nIiwicHJlbm9tIiwibm9tIiwicmVuYW1lU3luYyIsImV4aXN0c1N5bmMiLCJ3YXJuIiwiY29weUZpbGVTeW5jIiwicGhvdG9CeUlkU2VuYXRldXIiLCJyb3dzRmlsZW5hbWVzIiwic2VuYXRldXJJbmRleCIsInJvd0luZGV4Iiwicm93Iiwic2xpY2UiLCJwaG90b3NGaWxlbmFtZXMiLCJlbnRyaWVzIiwiY29sdW1uSW5kZXgiLCJwdXNoIiwiY2hlbWluIiwiY2hlbWluTW9zYWlxdWUiLCJoYXV0ZXVyIiwibGFyZ2V1ciIsInhNb3NhaXF1ZSIsInlNb3NhaXF1ZSIsInJvd0ZpbGVuYW1lIiwidW5saW5rU3luYyIsImpzb25GaWxlUGF0aCIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwibWF0Y2giLCJ0aGVuIiwiZXhpdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBOztBQUlBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUUEsSUFBTUEsa0JBQWtCLEdBQUcsQ0FDekI7QUFDRUMsRUFBQUEsS0FBSyxFQUFFLEdBRFQ7QUFFRUMsRUFBQUEsSUFBSSxFQUFFLCtEQUZSO0FBR0VDLEVBQUFBLElBQUksRUFBRSxPQUhSO0FBSUVDLEVBQUFBLElBQUksRUFBRUM7QUFKUixDQUR5QixFQU96QjtBQUNFSixFQUFBQSxLQUFLLEVBQUUsR0FEVDtBQUVFQyxFQUFBQSxJQUFJLEVBQUUsZUFGUjtBQUdFQyxFQUFBQSxJQUFJLEVBQUUsUUFIUjtBQUlFQyxFQUFBQSxJQUFJLEVBQUVFO0FBSlIsQ0FQeUIsRUFhekI7QUFDRUwsRUFBQUEsS0FB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QUNsRyxLQUFEO0FBQUEsU0FBV0csT0FBTyxDQUFDZ0csSUFBUixDQUFhbkcsS0FBSyxHQUFHLENBQUgsR0FBTyxDQUF6QixDQUFYO0FBQUEsQ0FEUixXQUVTLFVBQUNBLEtBQUQsRUFBVztBQUNoQlUsRUFBQUEsT0FBTyxDQUFDMEQsR0FBUixDQUFZcEUsS0FBWjtBQUNBRyxFQUFBQSxPQUFPLENBQUNnRyxJQUFSLENBQWEsQ0FBYjtBQUNELENBTEgiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGlsZFByb2Nlc3MsIGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG4vLyBpbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuLy8gaW1wb3J0IHN0cmVhbSBmcm9tIFwic3RyZWFtXCJcbi8vIGltcG9ydCB1dGlsIGZyb20gXCJ1dGlsXCJcblxuaW1wb3J0IHsgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IGxvYWRBc3NlbWJsZWVEYXRhIH0gZnJvbSBcIi4uL2xvYWRlcnNcIlxuaW1wb3J0IHtcbiAgQWN0ZXVyLFxuICBDb2RlVHlwZU9yZ2FuZSxcbiAgTWFuZGF0LFxuICBQaG90byxcbiAgVHlwZU1hbmRhdCxcbn0gZnJvbSBcIi4uL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcIkNcIixcbiAgICBoZWxwOiBcImNsb25lIHJlcG9zaXRvcmllcyBmcm9tIGdpdmVuIGdyb3VwIChvciBvcmdhbml6YXRpb24pIGdpdCBVUkxcIixcbiAgICBuYW1lOiBcImNsb25lXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IHBob3Rvc1wiLFxuICAgIG5hbWU6IFwiY29tbWl0XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImZcIixcbiAgICBoZWxwOiBcImZldGNoIHPDqW5hdGV1cnMnIHBpY3R1cmVzIGluc3RlYWQgb2YgcmV0cmlldmluZyB0aGVtIGZyb20gZmlsZXNcIixcbiAgICBuYW1lOiBcImZldGNoXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInJcIixcbiAgICBoZWxwOiBcInB1c2ggY29tbWl0IHRvIGdpdmVuIHJlbW90ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwicmVtb3RlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwic1wiLFxuICAgIGhlbHA6IFwiZG9uJ3QgbG9nIGFueXRoaW5nXCIsXG4gICAgbmFtZTogXCJzaWxlbnRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG4vLyBjb25zdCBwaXBlbGluZSA9IHV0aWwucHJvbWlzaWZ5KHN0cmVhbS5waXBlbGluZSlcblxuZnVuY3Rpb24gY29tbWl0QW5kUHVzaChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBjb21taXQ6IGJvb2xlYW4sXG4gIHJlbW90ZXM/OiBzdHJpbmdbXSxcbik6IGJvb2xlYW4ge1xuICBsZXQgZXJyb3IgPSBmYWxzZVxuICBpZiAoY29tbWl0KSB7XG4gICAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICAgIHRyeSB7XG4gICAgICBleGVjU3luYygnZ2l0IGNvbW1pdCAtbSBcIk5vdXZlbGxlIG1vaXNzb25cIicsIHtcbiAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgfSlcbiAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZGVyciA9PT0gbnVsbCB8fFxuICAgICAgICAhL25vdGhpbmcgdG8gY29tbWl0Ly50ZXN0KChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGRvdXQpXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlUGhvdG9zU2VuYXRldXJzKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBkYXRhRGlyID0gb3B0aW9ucy5kYXRhRGlyXG4gIGNvbnN0IHsgYWN0ZXVyQnlVaWQgfSA9IGxvYWRBc3NlbWJsZWVEYXRhKFxuICAgIGRhdGFEaXIsXG4gICAgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXMsXG4gICAgb3B0aW9ucy5sZWdpc2xhdHVyZSxcbiAgKVxuICBjb25zdCBzZW5hdGV1cnMgPSBPYmplY3QudmFsdWVzKGFjdGV1ckJ5VWlkKVxuICAgIC5maWx0ZXIoKGFjdGV1cikgPT4ge1xuICAgICAgY29uc3QgeyBtYW5kYXRzIH0gPSBhY3RldXJcbiAgICAgIGlmICghbWFuZGF0cykge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1hbmRhdFNlbmF0ZXVyID0gbWFuZGF0cy5maWx0ZXIoXG4gICAgICAgIChtYW5kYXQ6IE1hbmRhdCkgPT5cbiAgICAgICAgICBtYW5kYXQueHNpVHlwZSA9PT0gVHlwZU1hbmRhdC5NYW5kYXRQYXJsZW1lbnRhaXJlVHlwZSAmJlxuICAgICAgICAgIC8vIG1hbmRhdC5sZWdpc2xhdHVyZSA9PT0gb3B0aW9ucy5sZWdpc2xhdHVyZSAmJlxuICAgICAgICAgIG1hbmRhdC50eXBlT3JnYW5lID09PSBDb2RlVHlwZU9yZ2FuZS5TZW5hdCxcbiAgICAgIClbMF1cbiAgICAgIGlmIChtYW5kYXRTZW5hdGV1ciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgY29uc3QgeyBhZHJlc3NlcyB9ID0gYWN0ZXVyXG4gICAgICBpZiAoYWRyZXNzZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGxldCB1cmwgPSBudWxsXG4gICAgICBmb3IgKGNvbnN0IGFkcmVzc2Ugb2YgYWRyZXNzZXMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGFkcmVzc2UueHNpVHlwZSA9PT0gXCJBZHJlc3NlU2l0ZVdlYl9UeXBlXCIgJiZcbiAgICAgICAgICBhZHJlc3NlLnR5cGVMaWJlbGxlID09PSBcIlVybCBzw6luYXRldXJcIlxuICAgICAgICApIHtcbiAgICAgICAgICB1cmwgPSBhZHJlc3NlLnZhbEVsZWNcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIEJvb2xlYW4odXJsKVxuICAgIH0pXG4gICAgLnNvcnQoKGEsIGIpID0+XG4gICAgICBhLnVpZC5sZW5ndGggPT09IGIudWlkLmxlbmd0aFxuICAgICAgICA/IGEudWlkLmxvY2FsZUNvbXBhcmUoYi51aWQpXG4gICAgICAgIDogYS51aWQubGVuZ3RoIC0gYi51aWQubGVuZ3RoLFxuICAgIClcblxuICBjb25zdCBnaXRHcm91cFVybCA9IG9wdGlvbnMuY2xvbmVcbiAgICA/IG9wdGlvbnMuY2xvbmUudHJpbSgpLnJlcGxhY2UoL1xcLyskLywgXCJcIilcbiAgICA6IHVuZGVmaW5lZFxuICBjb25zdCBwaG90b3NEaXJOYW1lID0gXCJwaG90b3Nfc2VuYXRldXJzXCJcbiAgaWYgKGdpdEdyb3VwVXJsICE9PSB1bmRlZmluZWQpIHtcbiAgICBleGVjU3luYyhgZ2l0IGNsb25lICR7Z2l0R3JvdXBVcmx9LyR7cGhvdG9zRGlyTmFtZX0uZ2l0YCwge1xuICAgICAgY3dkOiBkYXRhRGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICB9XG4gIGNvbnN0IHBob3Rvc0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBwaG90b3NEaXJOYW1lKVxuXG4gIC8vIERvd25sb2FkIHBob3Rvcy5cbiAgZnMuZW5zdXJlRGlyU3luYyhwaG90b3NEaXIpXG4gIGlmIChvcHRpb25zLmZldGNoKSB7XG4gICAgY29uc3QgbWlzc2luZ1Bob3RvRmlsZVBhdGggPSBcImltYWdlcy90cmFuc3BhcmVudF8xNTV4MjI1LmpwZ1wiXG4gICAgZm9yIChjb25zdCBzZW5hdGV1ciBvZiBzZW5hdGV1cnMpIHtcbiAgICAgIGNvbnN0IGlkZW50ID0gc2VuYXRldXIuZXRhdENpdmlsLmlkZW50XG4gICAgICBjb25zdCBzZW5hdGV1clN0ZW0gPSBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyKVxuICAgICAgY29uc3QgcGhvdG9GaWxlbmFtZSA9IGAke3NlbmF0ZXVyU3RlbX0uanBnYFxuICAgICAgY29uc3QgcGhvdG9GaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIHBob3RvRmlsZW5hbWUpXG4gICAgICBjb25zdCBwaG90b1RlbXBGaWxlbmFtZSA9IGAke3NlbmF0ZXVyU3RlbX1fdGVtcC5qcGdgXG4gICAgICBjb25zdCBwaG90b1RlbXBGaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIHBob3RvVGVtcEZpbGVuYW1lKVxuICAgICAgY29uc3QgdXJsUGhvdG8gPSBgaHR0cHM6Ly93d3cuc2VuYXQuZnIvc2VuaW1nLyR7cGhvdG9GaWxlbmFtZX1gXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBMb2FkaW5nIHBob3RvICR7dXJsUGhvdG99IGZvciAke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub2194oCmYCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgLy8gZm9yIChsZXQgcmV0cmllcyA9IDA7IHJldHJpZXMgPCAzOyByZXRyaWVzKyspIHtcbiAgICAgIC8vICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmxQaG90bylcbiAgICAgIC8vICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAvLyAgICAgYXdhaXQgcGlwZWxpbmUocmVzcG9uc2UuYm9keSwgZnMuY3JlYXRlV3JpdGVTdHJlYW0ocGhvdG9UZW1wRmlsZVBhdGgpKVxuICAgICAgLy8gICAgIGZzLnJlbmFtZVN5bmMocGhvdG9UZW1wRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICAvLyAgICAgYnJlYWtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gICBpZiAocmV0cmllcyA+PSAyKSB7XG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKGBGZXRjaCBmYWlsZWQ6ICR7dXJsUGhvdG99ICgke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub219KWApXG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKHJlc3BvbnNlLnN0YXR1cywgcmVzcG9uc2Uuc3RhdHVzVGV4dClcbiAgICAgIC8vICAgICBjb25zb2xlLndhcm4oYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgLy8gICAgIGlmIChmcy5leGlzdHNTeW5jKHBob3RvRmlsZVBhdGgpKSB7XG4gICAgICAvLyAgICAgICBjb25zb2xlLndhcm4oXCIgID0+IFJldXNpbmcgZXhpc3RpbmcgaW1hZ2VcIilcbiAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgLy8gICAgICAgY29uc29sZS53YXJuKFwiICA9PiBVc2luZyBibGFuayBpbWFnZVwiKVxuICAgICAgLy8gICAgICAgZnMuY29weUZpbGVTeW5jKG1pc3NpbmdQaG90b0ZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgLy8gICAgIH1cbiAgICAgIC8vICAgICBicmVha1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgICB0cnkge1xuICAgICAgICBleGVjU3luYyhgd2dldCAtLXF1aWV0IC1PICR7cGhvdG9UZW1wRmlsZW5hbWV9ICR7dXJsUGhvdG99YCwge1xuICAgICAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICAvLyBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgICAgZnMucmVuYW1lU3luYyhwaG90b1RlbXBGaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHBob3RvRmlsZVBhdGgpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiICA9PiBSZXVzaW5nIGV4aXN0aW5nIGltYWdlXCIpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiICA9PiBVc2luZyBibGFuayBpbWFnZVwiKVxuICAgICAgICAgIGZzLmNvcHlGaWxlU3luYyhtaXNzaW5nUGhvdG9GaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2l6ZSBwaG90b3MgdG8gMTU1eDIyNSwgYmVjYXVzZSBzb21lIGhhdmVuJ3QgZXhhY3RseSB0aGlzIHNpemUuXG4gIGZvciAoY29uc3Qgc2VuYXRldXIgb2Ygc2VuYXRldXJzKSB7XG4gICAgY29uc3QgaWRlbnQgPSBzZW5hdGV1ci5ldGF0Q2l2aWwuaWRlbnRcbiAgICBjb25zdCBzZW5hdGV1clN0ZW0gPSBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyKVxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgUmVzaXppbmcgcGhvdG8gJHtzZW5hdGV1clN0ZW19IGZvciAke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub2194oCmYCxcbiAgICAgIClcbiAgICB9XG4gICAgZXhlY1N5bmMoXG4gICAgICBgZ20gY29udmVydCAtcmVzaXplIDE1NXgyMjUhICR7c2VuYXRldXJTdGVtfS5qcGcgJHtzZW5hdGV1clN0ZW19XzE1NXgyMjUuanBnYCxcbiAgICAgIHtcbiAgICAgICAgY3dkOiBwaG90b3NEaXIsXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIC8vIENyZWF0ZSBhIG1vc2FpYyBvZiBwaG90b3MuXG4gIGNvbnN0IHBob3RvQnlJZFNlbmF0ZXVyOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0gPSB7fVxuICBjb25zdCByb3dzRmlsZW5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gIGZvciAoXG4gICAgbGV0IHNlbmF0ZXVySW5kZXggPSAwLCByb3dJbmRleCA9IDA7XG4gICAgc2VuYXRldXJJbmRleCA8IHNlbmF0ZXVycy5sZW5ndGg7XG4gICAgc2VuYXRldXJJbmRleCArPSAyNSwgcm93SW5kZXgrK1xuICApIHtcbiAgICBjb25zdCByb3cgPSBzZW5hdGV1cnMuc2xpY2Uoc2VuYXRldXJJbmRleCwgc2VuYXRldXJJbmRleCArIDI1KVxuICAgIGNvbnN0IHBob3Rvc0ZpbGVuYW1lczogc3RyaW5nW10gPSBbXVxuICAgIGZvciAoY29uc3QgW2NvbHVtbkluZGV4LCBzZW5hdGV1cl0gb2Ygcm93LmVudHJpZXMoKSkge1xuICAgICAgY29uc3Qgc2VuYXRldXJTdGVtID0gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cilcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtzZW5hdGV1clN0ZW19XzE1NXgyMjUuanBnYFxuICAgICAgcGhvdG9zRmlsZW5hbWVzLnB1c2gocGhvdG9GaWxlbmFtZSlcbiAgICAgIHBob3RvQnlJZFNlbmF0ZXVyW3NlbmF0ZXVyLnVpZF0gPSB7XG4gICAgICAgIGNoZW1pbjogYHBob3Rvc19zZW5hdGV1cnMvJHtwaG90b0ZpbGVuYW1lfWAsXG4gICAgICAgIGNoZW1pbk1vc2FpcXVlOiBgcGhvdG9zX3NlbmF0ZXVycy9zZW5hdGV1cnMuanBnYCxcbiAgICAgICAgaGF1dGV1cjogMjI1LFxuICAgICAgICBsYXJnZXVyOiAxNTUsXG4gICAgICAgIHhNb3NhaXF1ZTogY29sdW1uSW5kZXggKiAxNTUsXG4gICAgICAgIHlNb3NhaXF1ZTogcm93SW5kZXggKiAyMjUsXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJvd0ZpbGVuYW1lID0gYHJvdy0ke3Jvd0luZGV4fS5qcGdgXG4gICAgZXhlY1N5bmMoYGdtIGNvbnZlcnQgJHtwaG90b3NGaWxlbmFtZXMuam9pbihcIiBcIil9ICthcHBlbmQgJHtyb3dGaWxlbmFtZX1gLCB7XG4gICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICB9KVxuICAgIHJvd3NGaWxlbmFtZXMucHVzaChyb3dGaWxlbmFtZSlcbiAgfVxuICBleGVjU3luYyhgZ20gY29udmVydCAke3Jvd3NGaWxlbmFtZXMuam9pbihcIiBcIil9IC1hcHBlbmQgc2VuYXRldXJzLmpwZ2AsIHtcbiAgICBjd2Q6IHBob3Rvc0RpcixcbiAgfSlcbiAgZm9yIChjb25zdCByb3dGaWxlbmFtZSBvZiByb3dzRmlsZW5hbWVzKSB7XG4gICAgZnMudW5saW5rU3luYyhwYXRoLmpvaW4ocGhvdG9zRGlyLCByb3dGaWxlbmFtZSkpXG4gIH1cblxuICBjb25zdCBqc29uRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBcInNlbmF0ZXVycy5qc29uXCIpXG4gIGZzLndyaXRlRmlsZVN5bmMoanNvbkZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShwaG90b0J5SWRTZW5hdGV1ciwgbnVsbCwgMikpXG5cbiAgcmV0dXJuIGNvbW1pdEFuZFB1c2gocGhvdG9zRGlyLCBvcHRpb25zLmNvbW1pdCwgb3B0aW9ucy5yZW1vdGUpXG59XG5cbmZ1bmN0aW9uIHN0ZW1Gcm9tU2VuYXRldXIoc2VuYXRldXI6IEFjdGV1cikge1xuICBjb25zdCB7IGFkcmVzc2VzIH0gPSBzZW5hdGV1clxuICBsZXQgdXJsID0gbnVsbFxuICBmb3IgKGNvbnN0IGFkcmVzc2Ugb2YgYWRyZXNzZXMhKSB7XG4gICAgaWYgKFxuICAgICAgYWRyZXNzZS54c2lUeXBlID09PSBcIkFkcmVzc2VTaXRlV2ViX1R5cGVcIiAmJlxuICAgICAgYWRyZXNzZS50eXBlTGliZWxsZSA9PT0gXCJVcmwgc8OpbmF0ZXVyXCJcbiAgICApIHtcbiAgICAgIHVybCA9IGFkcmVzc2UudmFsRWxlY1xuICAgIH1cbiAgfVxuICBjb25zdCBtYXRjaCA9IHVybCEubWF0Y2goL15odHRwczpcXC9cXC93d3dcXC5zZW5hdFxcLmZyXFwvc2VuYXRldXJcXC8oLiopXFwuaHRtbCQvKVxuICBjb25zdCBzZW5hdGV1clN0ZW0gPSBtYXRjaCFbMV1cbiAgcmV0dXJuIHNlbmF0ZXVyU3RlbVxufVxuXG5yZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycygpXG4gIC50aGVuKChlcnJvcikgPT4gcHJvY2Vzcy5leGl0KGVycm9yID8gMSA6IDApKVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgcHJvY2Vzcy5leGl0KDIpXG4gIH0pXG4iXX0=
|
|
453
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsIkJvb2xlYW4iLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJjb21taXQiLCJyZW1vdGVzIiwiZXJyb3IiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwic3RkZXJyIiwidGVzdCIsInN0ZG91dCIsImNvbnNvbGUiLCJvdXRwdXQiLCJyZW1vdGUiLCJyZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycyIsImRhdGFEaXIiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkVuYWJsZWREYXRhc2V0cyIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJsZWdpc2xhdHVyZSIsImFjdGV1ckJ5VWlkIiwic2VuYXRldXJzIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwiYWN0ZXVyIiwibWFuZGF0cyIsIm1hbmRhdFNlbmF0ZXVyIiwibWFuZGF0IiwieHNpVHlwZSIsIlR5cGVNYW5kYXQiLCJNYW5kYXRQYXJsZW1lbnRhaXJlVHlwZSIsInR5cGVPcmdhbmUiLCJDb2RlVHlwZU9yZ2FuZSIsIlNlbmF0IiwidW5kZWZpbmVkIiwiYWRyZXNzZXMiLCJ1cmwiLCJhZHJlc3NlIiwidHlwZUxpYmVsbGUiLCJ2YWxFbGVjIiwic29ydCIsImEiLCJiIiwidWlkIiwibGVuZ3RoIiwibG9jYWxlQ29tcGFyZSIsImdpdEdyb3VwVXJsIiwiY2xvbmUiLCJ0cmltIiwicmVwbGFjZSIsInBob3Rvc0Rpck5hbWUiLCJwaG90b3NEaXIiLCJwYXRoIiwiam9pbiIsImZzIiwiZW5zdXJlRGlyU3luYyIsImZldGNoIiwibWlzc2luZ1Bob3RvRmlsZVBhdGgiLCJzZW5hdGV1ciIsImlkZW50IiwiZXRhdENpdmlsIiwic2VuYXRldXJTdGVtIiwic3RlbUZyb21TZW5hdGV1ciIsInBob3RvRmlsZW5hbWUiLCJwaG90b0ZpbGVQYXRoIiwicGhvdG9UZW1wRmlsZW5hbWUiLCJwaG90b1RlbXBGaWxlUGF0aCIsInVybFBob3RvIiwic2lsZW50IiwibG9nIiwicHJlbm9tIiwibm9tIiwicmVuYW1lU3luYyIsImV4aXN0c1N5bmMiLCJ3YXJuIiwiY29weUZpbGVTeW5jIiwicGhvdG9CeUlkU2VuYXRldXIiLCJyb3dzRmlsZW5hbWVzIiwic2VuYXRldXJJbmRleCIsInJvd0luZGV4Iiwicm93Iiwic2xpY2UiLCJwaG90b3NGaWxlbmFtZXMiLCJlbnRyaWVzIiwiY29sdW1uSW5kZXgiLCJwdXNoIiwiY2hlbWluIiwiY2hlbWluTW9zYWlxdWUiLCJoYXV0ZXVyIiwibGFyZ2V1ciIsInhNb3NhaXF1ZSIsInlNb3NhaXF1ZSIsInJvd0ZpbGVuYW1lIiwidW5saW5rU3luYyIsImpzb25GaWxlUGF0aCIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwibWF0Y2giLCJ0aGVuIiwiZXhpdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX3NlbmF0ZXVyc19waG90b3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hpbGRQcm9jZXNzLCBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuLy8gaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbi8vIGltcG9ydCBzdHJlYW0gZnJvbSBcInN0cmVhbVwiXG4vLyBpbXBvcnQgdXRpbCBmcm9tIFwidXRpbFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7XG4gIEFjdGV1cixcbiAgQ29kZVR5cGVPcmdhbmUsXG4gIE1hbmRhdCxcbiAgUGhvdG8sXG4gIFR5cGVNYW5kYXQsXG59IGZyb20gXCIuLi90eXBlcy9hY3RldXJzX2V0X29yZ2FuZXNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIHtcbiAgICBhbGlhczogXCJDXCIsXG4gICAgaGVscDogXCJjbG9uZSByZXBvc2l0b3JpZXMgZnJvbSBnaXZlbiBncm91cCAob3Igb3JnYW5pemF0aW9uKSBnaXQgVVJMXCIsXG4gICAgbmFtZTogXCJjbG9uZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImNcIixcbiAgICBoZWxwOiBcImNvbW1pdCBwaG90b3NcIixcbiAgICBuYW1lOiBcImNvbW1pdFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJmXCIsXG4gICAgaGVscDogXCJmZXRjaCBzw6luYXRldXJzJyBwaWN0dXJlcyBpbnN0ZWFkIG9mIHJldHJpZXZpbmcgdGhlbSBmcm9tIGZpbGVzXCIsXG4gICAgbmFtZTogXCJmZXRjaFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJyXCIsXG4gICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcInJlbW90ZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuLy8gY29uc3QgcGlwZWxpbmUgPSB1dGlsLnByb21pc2lmeShzdHJlYW0ucGlwZWxpbmUpXG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgY29tbWl0OiBib29sZWFuLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgbGV0IGVycm9yID0gZmFsc2VcbiAgaWYgKGNvbW1pdCkge1xuICAgIGV4ZWNTeW5jKFwiZ2l0IGFkZCAuXCIsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICB0cnkge1xuICAgICAgZXhlY1N5bmMoJ2dpdCBjb21taXQgLW0gXCJOb3V2ZWxsZSBtb2lzc29uXCInLCB7XG4gICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRlcnIgPT09IG51bGwgfHxcbiAgICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVtb3RlIG9mIHJlbW90ZXMgfHwgW10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGV4ZWNTeW5jKGBnaXQgcHVzaCAke3JlbW90ZX0gbWFzdGVyYCwge1xuICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgLy8gRG9uJ3Qgc3RvcCB3aGVuIHB1c2ggZmFpbHMuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgZXJyb3IgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBlcnJvclxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCB7IGFjdGV1ckJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcbiAgY29uc3Qgc2VuYXRldXJzID0gT2JqZWN0LnZhbHVlcyhhY3RldXJCeVVpZClcbiAgICAuZmlsdGVyKChhY3RldXIpID0+IHtcbiAgICAgIGNvbnN0IHsgbWFuZGF0cyB9ID0gYWN0ZXVyXG4gICAgICBpZiAoIW1hbmRhdHMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBjb25zdCBtYW5kYXRTZW5hdGV1ciA9IG1hbmRhdHMuZmlsdGVyKFxuICAgICAgICAobWFuZGF0OiBNYW5kYXQpID0+XG4gICAgICAgICAgbWFuZGF0LnhzaVR5cGUgPT09IFR5cGVNYW5kYXQuTWFuZGF0UGFybGVtZW50YWlyZVR5cGUgJiZcbiAgICAgICAgICAvLyBtYW5kYXQubGVnaXNsYXR1cmUgPT09IG9wdGlvbnMubGVnaXNsYXR1cmUgJiZcbiAgICAgICAgICBtYW5kYXQudHlwZU9yZ2FuZSA9PT0gQ29kZVR5cGVPcmdhbmUuU2VuYXQsXG4gICAgICApWzBdXG4gICAgICBpZiAobWFuZGF0U2VuYXRldXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgYWRyZXNzZXMgfSA9IGFjdGV1clxuICAgICAgaWYgKGFkcmVzc2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBsZXQgdXJsID0gbnVsbFxuICAgICAgZm9yIChjb25zdCBhZHJlc3NlIG9mIGFkcmVzc2VzKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBhZHJlc3NlLnhzaVR5cGUgPT09IFwiQWRyZXNzZVNpdGVXZWJfVHlwZVwiICYmXG4gICAgICAgICAgYWRyZXNzZS50eXBlTGliZWxsZSA9PT0gXCJVcmwgc8OpbmF0ZXVyXCJcbiAgICAgICAgKSB7XG4gICAgICAgICAgdXJsID0gYWRyZXNzZS52YWxFbGVjXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBCb29sZWFuKHVybClcbiAgICB9KVxuICAgIC5zb3J0KChhLCBiKSA9PlxuICAgICAgYS51aWQubGVuZ3RoID09PSBiLnVpZC5sZW5ndGhcbiAgICAgICAgPyBhLnVpZC5sb2NhbGVDb21wYXJlKGIudWlkKVxuICAgICAgICA6IGEudWlkLmxlbmd0aCAtIGIudWlkLmxlbmd0aCxcbiAgICApXG5cbiAgY29uc3QgZ2l0R3JvdXBVcmwgPSBvcHRpb25zLmNsb25lXG4gICAgPyBvcHRpb25zLmNsb25lLnRyaW0oKS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpXG4gICAgOiB1bmRlZmluZWRcbiAgY29uc3QgcGhvdG9zRGlyTmFtZSA9IFwicGhvdG9zX3NlbmF0ZXVyc1wiXG4gIGlmIChnaXRHcm91cFVybCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjbG9uZSAke2dpdEdyb3VwVXJsfS8ke3Bob3Rvc0Rpck5hbWV9LmdpdGAsIHtcbiAgICAgIGN3ZDogZGF0YURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgfVxuICBjb25zdCBwaG90b3NEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgcGhvdG9zRGlyTmFtZSlcblxuICAvLyBEb3dubG9hZCBwaG90b3MuXG4gIGZzLmVuc3VyZURpclN5bmMocGhvdG9zRGlyKVxuICBpZiAob3B0aW9ucy5mZXRjaCkge1xuICAgIGNvbnN0IG1pc3NpbmdQaG90b0ZpbGVQYXRoID0gXCJpbWFnZXMvdHJhbnNwYXJlbnRfMTU1eDIyNS5qcGdcIlxuICAgIGZvciAoY29uc3Qgc2VuYXRldXIgb2Ygc2VuYXRldXJzKSB7XG4gICAgICBjb25zdCBpZGVudCA9IHNlbmF0ZXVyLmV0YXRDaXZpbC5pZGVudFxuICAgICAgY29uc3Qgc2VuYXRldXJTdGVtID0gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cilcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtzZW5hdGV1clN0ZW19LmpwZ2BcbiAgICAgIGNvbnN0IHBob3RvRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBwaG90b0ZpbGVuYW1lKVxuICAgICAgY29uc3QgcGhvdG9UZW1wRmlsZW5hbWUgPSBgJHtzZW5hdGV1clN0ZW19X3RlbXAuanBnYFxuICAgICAgY29uc3QgcGhvdG9UZW1wRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBwaG90b1RlbXBGaWxlbmFtZSlcbiAgICAgIGNvbnN0IHVybFBob3RvID0gYGh0dHBzOi8vd3d3LnNlbmF0LmZyL3NlbmltZy8ke3Bob3RvRmlsZW5hbWV9YFxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgTG9hZGluZyBwaG90byAke3VybFBob3RvfSBmb3IgJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfeKApmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIC8vIGZvciAobGV0IHJldHJpZXMgPSAwOyByZXRyaWVzIDwgMzsgcmV0cmllcysrKSB7XG4gICAgICAvLyAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsUGhvdG8pXG4gICAgICAvLyAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgLy8gICAgIGF3YWl0IHBpcGVsaW5lKHJlc3BvbnNlLmJvZHksIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKHBob3RvVGVtcEZpbGVQYXRoKSlcbiAgICAgIC8vICAgICBmcy5yZW5hbWVTeW5jKHBob3RvVGVtcEZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgLy8gICAgIGJyZWFrXG4gICAgICAvLyAgIH1cbiAgICAgIC8vICAgaWYgKHJldHJpZXMgPj0gMikge1xuICAgICAgLy8gICAgIGNvbnNvbGUud2FybihgRmV0Y2ggZmFpbGVkOiAke3VybFBob3RvfSAoJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfSlgKVxuICAgICAgLy8gICAgIGNvbnNvbGUud2FybihyZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlLnN0YXR1c1RleHQpXG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKGF3YWl0IHJlc3BvbnNlLnRleHQoKSlcbiAgICAgIC8vICAgICBpZiAoZnMuZXhpc3RzU3luYyhwaG90b0ZpbGVQYXRoKSkge1xuICAgICAgLy8gICAgICAgY29uc29sZS53YXJuKFwiICA9PiBSZXVzaW5nIGV4aXN0aW5nIGltYWdlXCIpXG4gICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAgIC8vICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gVXNpbmcgYmxhbmsgaW1hZ2VcIilcbiAgICAgIC8vICAgICAgIGZzLmNvcHlGaWxlU3luYyhtaXNzaW5nUGhvdG9GaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgIC8vICAgICB9XG4gICAgICAvLyAgICAgYnJlYWtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYHdnZXQgLS1xdWlldCAtTyAke3Bob3RvVGVtcEZpbGVuYW1lfSAke3VybFBob3RvfWAsIHtcbiAgICAgICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgLy8gc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICAgIGZzLnJlbmFtZVN5bmMocGhvdG9UZW1wRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhwaG90b0ZpbGVQYXRoKSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gUmV1c2luZyBleGlzdGluZyBpbWFnZVwiKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gVXNpbmcgYmxhbmsgaW1hZ2VcIilcbiAgICAgICAgICBmcy5jb3B5RmlsZVN5bmMobWlzc2luZ1Bob3RvRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZXNpemUgcGhvdG9zIHRvIDE1NXgyMjUsIGJlY2F1c2Ugc29tZSBoYXZlbid0IGV4YWN0bHkgdGhpcyBzaXplLlxuICBmb3IgKGNvbnN0IHNlbmF0ZXVyIG9mIHNlbmF0ZXVycykge1xuICAgIGNvbnN0IGlkZW50ID0gc2VuYXRldXIuZXRhdENpdmlsLmlkZW50XG4gICAgY29uc3Qgc2VuYXRldXJTdGVtID0gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cilcbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFJlc2l6aW5nIHBob3RvICR7c2VuYXRldXJTdGVtfSBmb3IgJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfeKApmAsXG4gICAgICApXG4gICAgfVxuICAgIGV4ZWNTeW5jKFxuICAgICAgYGdtIGNvbnZlcnQgLXJlc2l6ZSAxNTV4MjI1ISAke3NlbmF0ZXVyU3RlbX0uanBnICR7c2VuYXRldXJTdGVtfV8xNTV4MjI1LmpwZ2AsXG4gICAgICB7XG4gICAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgICAgfSxcbiAgICApXG4gIH1cblxuICAvLyBDcmVhdGUgYSBtb3NhaWMgb2YgcGhvdG9zLlxuICBjb25zdCBwaG90b0J5SWRTZW5hdGV1cjogeyBbdWlkOiBzdHJpbmddOiBQaG90byB9ID0ge31cbiAgY29uc3Qgcm93c0ZpbGVuYW1lczogc3RyaW5nW10gPSBbXVxuICBmb3IgKFxuICAgIGxldCBzZW5hdGV1ckluZGV4ID0gMCwgcm93SW5kZXggPSAwO1xuICAgIHNlbmF0ZXVySW5kZXggPCBzZW5hdGV1cnMubGVuZ3RoO1xuICAgIHNlbmF0ZXVySW5kZXggKz0gMjUsIHJvd0luZGV4KytcbiAgKSB7XG4gICAgY29uc3Qgcm93ID0gc2VuYXRldXJzLnNsaWNlKHNlbmF0ZXVySW5kZXgsIHNlbmF0ZXVySW5kZXggKyAyNSlcbiAgICBjb25zdCBwaG90b3NGaWxlbmFtZXM6IHN0cmluZ1tdID0gW11cbiAgICBmb3IgKGNvbnN0IFtjb2x1bW5JbmRleCwgc2VuYXRldXJdIG9mIHJvdy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHNlbmF0ZXVyU3RlbSA9IHN0ZW1Gcm9tU2VuYXRldXIoc2VuYXRldXIpXG4gICAgICBjb25zdCBwaG90b0ZpbGVuYW1lID0gYCR7c2VuYXRldXJTdGVtfV8xNTV4MjI1LmpwZ2BcbiAgICAgIHBob3Rvc0ZpbGVuYW1lcy5wdXNoKHBob3RvRmlsZW5hbWUpXG4gICAgICBwaG90b0J5SWRTZW5hdGV1cltzZW5hdGV1ci51aWRdID0ge1xuICAgICAgICBjaGVtaW46IGBwaG90b3Nfc2VuYXRldXJzLyR7cGhvdG9GaWxlbmFtZX1gLFxuICAgICAgICBjaGVtaW5Nb3NhaXF1ZTogYHBob3Rvc19zZW5hdGV1cnMvc2VuYXRldXJzLmpwZ2AsXG4gICAgICAgIGhhdXRldXI6IDIyNSxcbiAgICAgICAgbGFyZ2V1cjogMTU1LFxuICAgICAgICB4TW9zYWlxdWU6IGNvbHVtbkluZGV4ICogMTU1LFxuICAgICAgICB5TW9zYWlxdWU6IHJvd0luZGV4ICogMjI1LFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByb3dGaWxlbmFtZSA9IGByb3ctJHtyb3dJbmRleH0uanBnYFxuICAgIGV4ZWNTeW5jKGBnbSBjb252ZXJ0ICR7cGhvdG9zRmlsZW5hbWVzLmpvaW4oXCIgXCIpfSArYXBwZW5kICR7cm93RmlsZW5hbWV9YCwge1xuICAgICAgY3dkOiBwaG90b3NEaXIsXG4gICAgfSlcbiAgICByb3dzRmlsZW5hbWVzLnB1c2gocm93RmlsZW5hbWUpXG4gIH1cbiAgZXhlY1N5bmMoYGdtIGNvbnZlcnQgJHtyb3dzRmlsZW5hbWVzLmpvaW4oXCIgXCIpfSAtYXBwZW5kIHNlbmF0ZXVycy5qcGdgLCB7XG4gICAgY3dkOiBwaG90b3NEaXIsXG4gIH0pXG4gIGZvciAoY29uc3Qgcm93RmlsZW5hbWUgb2Ygcm93c0ZpbGVuYW1lcykge1xuICAgIGZzLnVubGlua1N5bmMocGF0aC5qb2luKHBob3Rvc0Rpciwgcm93RmlsZW5hbWUpKVxuICB9XG5cbiAgY29uc3QganNvbkZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgXCJzZW5hdGV1cnMuanNvblwiKVxuICBmcy53cml0ZUZpbGVTeW5jKGpzb25GaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkocGhvdG9CeUlkU2VuYXRldXIsIG51bGwsIDIpKVxuXG4gIHJldHVybiBjb21taXRBbmRQdXNoKHBob3Rvc0Rpciwgb3B0aW9ucy5jb21taXQsIG9wdGlvbnMucmVtb3RlKVxufVxuXG5mdW5jdGlvbiBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyOiBBY3RldXIpIHtcbiAgY29uc3QgeyBhZHJlc3NlcyB9ID0gc2VuYXRldXJcbiAgbGV0IHVybCA9IG51bGxcbiAgZm9yIChjb25zdCBhZHJlc3NlIG9mIGFkcmVzc2VzISkge1xuICAgIGlmIChcbiAgICAgIGFkcmVzc2UueHNpVHlwZSA9PT0gXCJBZHJlc3NlU2l0ZVdlYl9UeXBlXCIgJiZcbiAgICAgIGFkcmVzc2UudHlwZUxpYmVsbGUgPT09IFwiVXJsIHPDqW5hdGV1clwiXG4gICAgKSB7XG4gICAgICB1cmwgPSBhZHJlc3NlLnZhbEVsZWNcbiAgICB9XG4gIH1cbiAgY29uc3QgbWF0Y2ggPSB1cmwhLm1hdGNoKC9eaHR0cHM6XFwvXFwvd3d3XFwuc2VuYXRcXC5mclxcL3NlbmF0ZXVyXFwvKC4qKVxcLmh0bWwkLylcbiAgY29uc3Qgc2VuYXRldXJTdGVtID0gbWF0Y2ghWzFdXG4gIHJldHVybiBzZW5hdGV1clN0ZW1cbn1cblxucmV0cmlldmVQaG90b3NTZW5hdGV1cnMoKVxuICAudGhlbigoZXJyb3IpID0+IHByb2Nlc3MuZXhpdChlcnJvciA/IDEgOiAwKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgyKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBOztBQUlBOztB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
|
|
@@ -274,4 +274,4 @@ retrievePhotosSenateurs().then(error => process.exit(error ? 1 : 0)).catch(error
|
|
|
274
274
|
console.log(error);
|
|
275
275
|
process.exit(2);
|
|
276
276
|
});
|
|
277
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX3NlbmF0ZXVyc19waG90b3MudHMiXSwibmFtZXMiOlsiZXhlY1N5bmMiLCJjb21tYW5kTGluZUFyZ3MiLCJmcyIsInBhdGgiLCJFbmFibGVkRGF0YXNldHMiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkNvZGVUeXBlT3JnYW5lIiwiVHlwZU1hbmRhdCIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIm5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwiQm9vbGVhbiIsIm11bHRpcGxlIiwiZGVmYXVsdE9wdGlvbiIsIm9wdGlvbnMiLCJjb21taXRBbmRQdXNoIiwicmVwb3NpdG9yeURpciIsImNvbW1pdCIsInJlbW90ZXMiLCJlcnJvciIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwic3RkZXJyIiwidGVzdCIsInN0ZG91dCIsImNvbnNvbGUiLCJvdXRwdXQiLCJyZW1vdGUiLCJyZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycyIsImRhdGFEaXIiLCJhY3RldXJCeVVpZCIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJsZWdpc2xhdHVyZSIsInNlbmF0ZXVycyIsIk9iamVjdCIsInZhbHVlcyIsImZpbHRlciIsImFjdGV1ciIsIm1hbmRhdHMiLCJtYW5kYXRTZW5hdGV1ciIsIm1hbmRhdCIsInhzaVR5cGUiLCJNYW5kYXRQYXJsZW1lbnRhaXJlVHlwZSIsInR5cGVPcmdhbmUiLCJTZW5hdCIsInVuZGVmaW5lZCIsImFkcmVzc2VzIiwidXJsIiwiYWRyZXNzZSIsInR5cGVMaWJlbGxlIiwidmFsRWxlYyIsInNvcnQiLCJhIiwiYiIsInVpZCIsImxlbmd0aCIsImxvY2FsZUNvbXBhcmUiLCJnaXRHcm91cFVybCIsImNsb25lIiwidHJpbSIsInJlcGxhY2UiLCJwaG90b3NEaXJOYW1lIiwicGhvdG9zRGlyIiwiam9pbiIsImVuc3VyZURpclN5bmMiLCJmZXRjaCIsIm1pc3NpbmdQaG90b0ZpbGVQYXRoIiwic2VuYXRldXIiLCJpZGVudCIsImV0YXRDaXZpbCIsInNlbmF0ZXVyU3RlbSIsInN0ZW1Gcm9tU2VuYXRldXIiLCJwaG90b0ZpbGVuYW1lIiwicGhvdG9GaWxlUGF0aCIsInBob3RvVGVtcEZpbGVuYW1lIiwicGhvdG9UZW1wRmlsZVBhdGgiLCJ1cmxQaG90byIsInNpbGVudCIsImxvZyIsInByZW5vbSIsIm5vbSIsInJlbmFtZVN5bmMiLCJleGlzdHNTeW5jIiwid2FybiIsImNvcHlGaWxlU3luYyIsInBob3RvQnlJZFNlbmF0ZXVyIiwicm93c0ZpbGVuYW1lcyIsInNlbmF0ZXVySW5kZXgiLCJyb3dJbmRleCIsInJvdyIsInNsaWNlIiwicGhvdG9zRmlsZW5hbWVzIiwiY29sdW1uSW5kZXgiLCJlbnRyaWVzIiwicHVzaCIsImNoZW1pbiIsImNoZW1pbk1vc2FpcXVlIiwiaGF1dGV1ciIsImxhcmdldXIiLCJ4TW9zYWlxdWUiLCJ5TW9zYWlxdWUiLCJyb3dGaWxlbmFtZSIsInVubGlua1N5bmMiLCJqc29uRmlsZVBhdGgiLCJ3cml0ZUZpbGVTeW5jIiwiSlNPTiIsInN0cmluZ2lmeSIsIm1hdGNoIiwidGhlbiIsImV4aXQiLCJjYXRjaCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBdUJBLFFBQXZCLFFBQXVDLGVBQXZDO0FBQ0EsT0FBT0MsZUFBUCxNQUE0QixtQkFBNUI7QUFDQSxPQUFPQyxFQUFQLE1BQWUsVUFBZixDLENBQ0E7O0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixNQUFqQixDLENBQ0E7QUFDQTs7U0FFU0MsZTtTQUNBQyxpQjtTQUdQQyxjLEVBR0FDLFU7QUFHRixNQUFNQyxrQkFBa0IsR0FBRyxDQUN6QjtBQUNFQyxFQUFBQSxLQUFLLEVBQUUsR0FEVDtBQUVFQyxFQUFBQSxJQUFJLEVBQUUsK0RBRlI7QUFHRUMsRUFBQUEsSUFBSSxFQUFFLE9BSFI7QUFJRUMsRUFBQUEsSUFBSSxFQUFFQztBQUpSLENBRHlCLEVBT3pCO0FBQ0VKLEVBQUFBLEtBQUssRUFB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QUFSLENBQWE5RixLQUFLLEdBQUcsQ0FBSCxHQUFPLENBQXpCLENBRG5CLEVBRUcrRixLQUZILENBRVUvRixLQUFELElBQVc7QUFDaEJVLEVBQUFBLE9BQU8sQ0FBQ3FELEdBQVIsQ0FBWS9ELEtBQVo7QUFDQUcsRUFBQUEsT0FBTyxDQUFDMkYsSUFBUixDQUFhLENBQWI7QUFDRCxDQUxIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hpbGRQcm9jZXNzLCBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuLy8gaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbi8vIGltcG9ydCBzdHJlYW0gZnJvbSBcInN0cmVhbVwiXG4vLyBpbXBvcnQgdXRpbCBmcm9tIFwidXRpbFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7XG4gIEFjdGV1cixcbiAgQ29kZVR5cGVPcmdhbmUsXG4gIE1hbmRhdCxcbiAgUGhvdG8sXG4gIFR5cGVNYW5kYXQsXG59IGZyb20gXCIuLi90eXBlcy9hY3RldXJzX2V0X29yZ2FuZXNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIHtcbiAgICBhbGlhczogXCJDXCIsXG4gICAgaGVscDogXCJjbG9uZSByZXBvc2l0b3JpZXMgZnJvbSBnaXZlbiBncm91cCAob3Igb3JnYW5pemF0aW9uKSBnaXQgVVJMXCIsXG4gICAgbmFtZTogXCJjbG9uZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImNcIixcbiAgICBoZWxwOiBcImNvbW1pdCBwaG90b3NcIixcbiAgICBuYW1lOiBcImNvbW1pdFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJmXCIsXG4gICAgaGVscDogXCJmZXRjaCBzw6luYXRldXJzJyBwaWN0dXJlcyBpbnN0ZWFkIG9mIHJldHJpZXZpbmcgdGhlbSBmcm9tIGZpbGVzXCIsXG4gICAgbmFtZTogXCJmZXRjaFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJyXCIsXG4gICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcInJlbW90ZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuLy8gY29uc3QgcGlwZWxpbmUgPSB1dGlsLnByb21pc2lmeShzdHJlYW0ucGlwZWxpbmUpXG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgY29tbWl0OiBib29sZWFuLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgbGV0IGVycm9yID0gZmFsc2VcbiAgaWYgKGNvbW1pdCkge1xuICAgIGV4ZWNTeW5jKFwiZ2l0IGFkZCAuXCIsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICB0cnkge1xuICAgICAgZXhlY1N5bmMoJ2dpdCBjb21taXQgLW0gXCJOb3V2ZWxsZSBtb2lzc29uXCInLCB7XG4gICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRlcnIgPT09IG51bGwgfHxcbiAgICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVtb3RlIG9mIHJlbW90ZXMgfHwgW10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGV4ZWNTeW5jKGBnaXQgcHVzaCAke3JlbW90ZX0gbWFzdGVyYCwge1xuICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgLy8gRG9uJ3Qgc3RvcCB3aGVuIHB1c2ggZmFpbHMuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgZXJyb3IgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBlcnJvclxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCB7IGFjdGV1ckJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcbiAgY29uc3Qgc2VuYXRldXJzID0gT2JqZWN0LnZhbHVlcyhhY3RldXJCeVVpZClcbiAgICAuZmlsdGVyKChhY3RldXIpID0+IHtcbiAgICAgIGNvbnN0IHsgbWFuZGF0cyB9ID0gYWN0ZXVyXG4gICAgICBpZiAoIW1hbmRhdHMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBjb25zdCBtYW5kYXRTZW5hdGV1ciA9IG1hbmRhdHMuZmlsdGVyKFxuICAgICAgICAobWFuZGF0OiBNYW5kYXQpID0+XG4gICAgICAgICAgbWFuZGF0LnhzaVR5cGUgPT09IFR5cGVNYW5kYXQuTWFuZGF0UGFybGVtZW50YWlyZVR5cGUgJiZcbiAgICAgICAgICAvLyBtYW5kYXQubGVnaXNsYXR1cmUgPT09IG9wdGlvbnMubGVnaXNsYXR1cmUgJiZcbiAgICAgICAgICBtYW5kYXQudHlwZU9yZ2FuZSA9PT0gQ29kZVR5cGVPcmdhbmUuU2VuYXQsXG4gICAgICApWzBdXG4gICAgICBpZiAobWFuZGF0U2VuYXRldXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgYWRyZXNzZXMgfSA9IGFjdGV1clxuICAgICAgaWYgKGFkcmVzc2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBsZXQgdXJsID0gbnVsbFxuICAgICAgZm9yIChjb25zdCBhZHJlc3NlIG9mIGFkcmVzc2VzKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBhZHJlc3NlLnhzaVR5cGUgPT09IFwiQWRyZXNzZVNpdGVXZWJfVHlwZVwiICYmXG4gICAgICAgICAgYWRyZXNzZS50eXBlTGliZWxsZSA9PT0gXCJVcmwgc8OpbmF0ZXVyXCJcbiAgICAgICAgKSB7XG4gICAgICAgICAgdXJsID0gYWRyZXNzZS52YWxFbGVjXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBCb29sZWFuKHVybClcbiAgICB9KVxuICAgIC5zb3J0KChhLCBiKSA9PlxuICAgICAgYS51aWQubGVuZ3RoID09PSBiLnVpZC5sZW5ndGhcbiAgICAgICAgPyBhLnVpZC5sb2NhbGVDb21wYXJlKGIudWlkKVxuICAgICAgICA6IGEudWlkLmxlbmd0aCAtIGIudWlkLmxlbmd0aCxcbiAgICApXG5cbiAgY29uc3QgZ2l0R3JvdXBVcmwgPSBvcHRpb25zLmNsb25lXG4gICAgPyBvcHRpb25zLmNsb25lLnRyaW0oKS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpXG4gICAgOiB1bmRlZmluZWRcbiAgY29uc3QgcGhvdG9zRGlyTmFtZSA9IFwicGhvdG9zX3NlbmF0ZXVyc1wiXG4gIGlmIChnaXRHcm91cFVybCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjbG9uZSAke2dpdEdyb3VwVXJsfS8ke3Bob3Rvc0Rpck5hbWV9LmdpdGAsIHtcbiAgICAgIGN3ZDogZGF0YURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgfVxuICBjb25zdCBwaG90b3NEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgcGhvdG9zRGlyTmFtZSlcblxuICAvLyBEb3dubG9hZCBwaG90b3MuXG4gIGZzLmVuc3VyZURpclN5bmMocGhvdG9zRGlyKVxuICBpZiAob3B0aW9ucy5mZXRjaCkge1xuICAgIGNvbnN0IG1pc3NpbmdQaG90b0ZpbGVQYXRoID0gXCJpbWFnZXMvdHJhbnNwYXJlbnRfMTU1eDIyNS5qcGdcIlxuICAgIGZvciAoY29uc3Qgc2VuYXRldXIgb2Ygc2VuYXRldXJzKSB7XG4gICAgICBjb25zdCBpZGVudCA9IHNlbmF0ZXVyLmV0YXRDaXZpbC5pZGVudFxuICAgICAgY29uc3Qgc2VuYXRldXJTdGVtID0gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cilcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtzZW5hdGV1clN0ZW19LmpwZ2BcbiAgICAgIGNvbnN0IHBob3RvRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBwaG90b0ZpbGVuYW1lKVxuICAgICAgY29uc3QgcGhvdG9UZW1wRmlsZW5hbWUgPSBgJHtzZW5hdGV1clN0ZW19X3RlbXAuanBnYFxuICAgICAgY29uc3QgcGhvdG9UZW1wRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBwaG90b1RlbXBGaWxlbmFtZSlcbiAgICAgIGNvbnN0IHVybFBob3RvID0gYGh0dHBzOi8vd3d3LnNlbmF0LmZyL3NlbmltZy8ke3Bob3RvRmlsZW5hbWV9YFxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgTG9hZGluZyBwaG90byAke3VybFBob3RvfSBmb3IgJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfeKApmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIC8vIGZvciAobGV0IHJldHJpZXMgPSAwOyByZXRyaWVzIDwgMzsgcmV0cmllcysrKSB7XG4gICAgICAvLyAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsUGhvdG8pXG4gICAgICAvLyAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgLy8gICAgIGF3YWl0IHBpcGVsaW5lKHJlc3BvbnNlLmJvZHksIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKHBob3RvVGVtcEZpbGVQYXRoKSlcbiAgICAgIC8vICAgICBmcy5yZW5hbWVTeW5jKHBob3RvVGVtcEZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgLy8gICAgIGJyZWFrXG4gICAgICAvLyAgIH1cbiAgICAgIC8vICAgaWYgKHJldHJpZXMgPj0gMikge1xuICAgICAgLy8gICAgIGNvbnNvbGUud2FybihgRmV0Y2ggZmFpbGVkOiAke3VybFBob3RvfSAoJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfSlgKVxuICAgICAgLy8gICAgIGNvbnNvbGUud2FybihyZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlLnN0YXR1c1RleHQpXG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKGF3YWl0IHJlc3BvbnNlLnRleHQoKSlcbiAgICAgIC8vICAgICBpZiAoZnMuZXhpc3RzU3luYyhwaG90b0ZpbGVQYXRoKSkge1xuICAgICAgLy8gICAgICAgY29uc29sZS53YXJuKFwiICA9PiBSZXVzaW5nIGV4aXN0aW5nIGltYWdlXCIpXG4gICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAgIC8vICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gVXNpbmcgYmxhbmsgaW1hZ2VcIilcbiAgICAgIC8vICAgICAgIGZzLmNvcHlGaWxlU3luYyhtaXNzaW5nUGhvdG9GaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgIC8vICAgICB9XG4gICAgICAvLyAgICAgYnJlYWtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYHdnZXQgLS1xdWlldCAtTyAke3Bob3RvVGVtcEZpbGVuYW1lfSAke3VybFBob3RvfWAsIHtcbiAgICAgICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgLy8gc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICAgIGZzLnJlbmFtZVN5bmMocGhvdG9UZW1wRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhwaG90b0ZpbGVQYXRoKSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gUmV1c2luZyBleGlzdGluZyBpbWFnZVwiKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gVXNpbmcgYmxhbmsgaW1hZ2VcIilcbiAgICAgICAgICBmcy5jb3B5RmlsZVN5bmMobWlzc2luZ1Bob3RvRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZXNpemUgcGhvdG9zIHRvIDE1NXgyMjUsIGJlY2F1c2Ugc29tZSBoYXZlbid0IGV4YWN0bHkgdGhpcyBzaXplLlxuICBmb3IgKGNvbnN0IHNlbmF0ZXVyIG9mIHNlbmF0ZXVycykge1xuICAgIGNvbnN0IGlkZW50ID0gc2VuYXRldXIuZXRhdENpdmlsLmlkZW50XG4gICAgY29uc3Qgc2VuYXRldXJTdGVtID0gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cilcbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFJlc2l6aW5nIHBob3RvICR7c2VuYXRldXJTdGVtfSBmb3IgJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfeKApmAsXG4gICAgICApXG4gICAgfVxuICAgIGV4ZWNTeW5jKFxuICAgICAgYGdtIGNvbnZlcnQgLXJlc2l6ZSAxNTV4MjI1ISAke3NlbmF0ZXVyU3RlbX0uanBnICR7c2VuYXRldXJTdGVtfV8xNTV4MjI1LmpwZ2AsXG4gICAgICB7XG4gICAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgICAgfSxcbiAgICApXG4gIH1cblxuICAvLyBDcmVhdGUgYSBtb3NhaWMgb2YgcGhvdG9zLlxuICBjb25zdCBwaG90b0J5SWRTZW5hdGV1cjogeyBbdWlkOiBzdHJpbmddOiBQaG90byB9ID0ge31cbiAgY29uc3Qgcm93c0ZpbGVuYW1lczogc3RyaW5nW10gPSBbXVxuICBmb3IgKFxuICAgIGxldCBzZW5hdGV1ckluZGV4ID0gMCwgcm93SW5kZXggPSAwO1xuICAgIHNlbmF0ZXVySW5kZXggPCBzZW5hdGV1cnMubGVuZ3RoO1xuICAgIHNlbmF0ZXVySW5kZXggKz0gMjUsIHJvd0luZGV4KytcbiAgKSB7XG4gICAgY29uc3Qgcm93ID0gc2VuYXRldXJzLnNsaWNlKHNlbmF0ZXVySW5kZXgsIHNlbmF0ZXVySW5kZXggKyAyNSlcbiAgICBjb25zdCBwaG90b3NGaWxlbmFtZXM6IHN0cmluZ1tdID0gW11cbiAgICBmb3IgKGNvbnN0IFtjb2x1bW5JbmRleCwgc2VuYXRldXJdIG9mIHJvdy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHNlbmF0ZXVyU3RlbSA9IHN0ZW1Gcm9tU2VuYXRldXIoc2VuYXRldXIpXG4gICAgICBjb25zdCBwaG90b0ZpbGVuYW1lID0gYCR7c2VuYXRldXJTdGVtfV8xNTV4MjI1LmpwZ2BcbiAgICAgIHBob3Rvc0ZpbGVuYW1lcy5wdXNoKHBob3RvRmlsZW5hbWUpXG4gICAgICBwaG90b0J5SWRTZW5hdGV1cltzZW5hdGV1ci51aWRdID0ge1xuICAgICAgICBjaGVtaW46IGBwaG90b3Nfc2VuYXRldXJzLyR7cGhvdG9GaWxlbmFtZX1gLFxuICAgICAgICBjaGVtaW5Nb3NhaXF1ZTogYHBob3Rvc19zZW5hdGV1cnMvc2VuYXRldXJzLmpwZ2AsXG4gICAgICAgIGhhdXRldXI6IDIyNSxcbiAgICAgICAgbGFyZ2V1cjogMTU1LFxuICAgICAgICB4TW9zYWlxdWU6IGNvbHVtbkluZGV4ICogMTU1LFxuICAgICAgICB5TW9zYWlxdWU6IHJvd0luZGV4ICogMjI1LFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByb3dGaWxlbmFtZSA9IGByb3ctJHtyb3dJbmRleH0uanBnYFxuICAgIGV4ZWNTeW5jKGBnbSBjb252ZXJ0ICR7cGhvdG9zRmlsZW5hbWVzLmpvaW4oXCIgXCIpfSArYXBwZW5kICR7cm93RmlsZW5hbWV9YCwge1xuICAgICAgY3dkOiBwaG90b3NEaXIsXG4gICAgfSlcbiAgICByb3dzRmlsZW5hbWVzLnB1c2gocm93RmlsZW5hbWUpXG4gIH1cbiAgZXhlY1N5bmMoYGdtIGNvbnZlcnQgJHtyb3dzRmlsZW5hbWVzLmpvaW4oXCIgXCIpfSAtYXBwZW5kIHNlbmF0ZXVycy5qcGdgLCB7XG4gICAgY3dkOiBwaG90b3NEaXIsXG4gIH0pXG4gIGZvciAoY29uc3Qgcm93RmlsZW5hbWUgb2Ygcm93c0ZpbGVuYW1lcykge1xuICAgIGZzLnVubGlua1N5bmMocGF0aC5qb2luKHBob3Rvc0Rpciwgcm93RmlsZW5hbWUpKVxuICB9XG5cbiAgY29uc3QganNvbkZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgXCJzZW5hdGV1cnMuanNvblwiKVxuICBmcy53cml0ZUZpbGVTeW5jKGpzb25GaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkocGhvdG9CeUlkU2VuYXRldXIsIG51bGwsIDIpKVxuXG4gIHJldHVybiBjb21taXRBbmRQdXNoKHBob3Rvc0Rpciwgb3B0aW9ucy5jb21taXQsIG9wdGlvbnMucmVtb3RlKVxufVxuXG5mdW5jdGlvbiBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyOiBBY3RldXIpIHtcbiAgY29uc3QgeyBhZHJlc3NlcyB9ID0gc2VuYXRldXJcbiAgbGV0IHVybCA9IG51bGxcbiAgZm9yIChjb25zdCBhZHJlc3NlIG9mIGFkcmVzc2VzISkge1xuICAgIGlmIChcbiAgICAgIGFkcmVzc2UueHNpVHlwZSA9PT0gXCJBZHJlc3NlU2l0ZVdlYl9UeXBlXCIgJiZcbiAgICAgIGFkcmVzc2UudHlwZUxpYmVsbGUgPT09IFwiVXJsIHPDqW5hdGV1clwiXG4gICAgKSB7XG4gICAgICB1cmwgPSBhZHJlc3NlLnZhbEVsZWNcbiAgICB9XG4gIH1cbiAgY29uc3QgbWF0Y2ggPSB1cmwhLm1hdGNoKC9eaHR0cHM6XFwvXFwvd3d3XFwuc2VuYXRcXC5mclxcL3NlbmF0ZXVyXFwvKC4qKVxcLmh0bWwkLylcbiAgY29uc3Qgc2VuYXRldXJTdGVtID0gbWF0Y2ghWzFdXG4gIHJldHVybiBzZW5hdGV1clN0ZW1cbn1cblxucmV0cmlldmVQaG90b3NTZW5hdGV1cnMoKVxuICAudGhlbigoZXJyb3IpID0+IHByb2Nlc3MuZXhpdChlcnJvciA/IDEgOiAwKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgyKVxuICB9KVxuIl19
|
|
277
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleGVjU3luYyIsImNvbW1hbmRMaW5lQXJncyIsImZzIiwicGF0aCIsIkVuYWJsZWREYXRhc2V0cyIsImxvYWRBc3NlbWJsZWVEYXRhIiwiQ29kZVR5cGVPcmdhbmUiLCJUeXBlTWFuZGF0Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJTdHJpbmciLCJCb29sZWFuIiwibXVsdGlwbGUiLCJkZWZhdWx0T3B0aW9uIiwib3B0aW9ucyIsImNvbW1pdEFuZFB1c2giLCJyZXBvc2l0b3J5RGlyIiwiY29tbWl0IiwicmVtb3RlcyIsImVycm9yIiwiY3dkIiwiZW52IiwicHJvY2VzcyIsImVuY29kaW5nIiwic3RkaW8iLCJjaGlsZFByb2Nlc3MiLCJzdGRlcnIiLCJ0ZXN0Iiwic3Rkb3V0IiwiY29uc29sZSIsIm91dHB1dCIsInJlbW90ZSIsInJldHJpZXZlUGhvdG9zU2VuYXRldXJzIiwiZGF0YURpciIsImFjdGV1ckJ5VWlkIiwiQWN0ZXVyc0V0T3JnYW5lcyIsImxlZ2lzbGF0dXJlIiwic2VuYXRldXJzIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwiYWN0ZXVyIiwibWFuZGF0cyIsIm1hbmRhdFNlbmF0ZXVyIiwibWFuZGF0IiwieHNpVHlwZSIsIk1hbmRhdFBhcmxlbWVudGFpcmVUeXBlIiwidHlwZU9yZ2FuZSIsIlNlbmF0IiwidW5kZWZpbmVkIiwiYWRyZXNzZXMiLCJ1cmwiLCJhZHJlc3NlIiwidHlwZUxpYmVsbGUiLCJ2YWxFbGVjIiwic29ydCIsImEiLCJiIiwidWlkIiwibGVuZ3RoIiwibG9jYWxlQ29tcGFyZSIsImdpdEdyb3VwVXJsIiwiY2xvbmUiLCJ0cmltIiwicmVwbGFjZSIsInBob3Rvc0Rpck5hbWUiLCJwaG90b3NEaXIiLCJqb2luIiwiZW5zdXJlRGlyU3luYyIsImZldGNoIiwibWlzc2luZ1Bob3RvRmlsZVBhdGgiLCJzZW5hdGV1ciIsImlkZW50IiwiZXRhdENpdmlsIiwic2VuYXRldXJTdGVtIiwic3RlbUZyb21TZW5hdGV1ciIsInBob3RvRmlsZW5hbWUiLCJwaG90b0ZpbGVQYXRoIiwicGhvdG9UZW1wRmlsZW5hbWUiLCJwaG90b1RlbXBGaWxlUGF0aCIsInVybFBob3RvIiwic2lsZW50IiwibG9nIiwicHJlbm9tIiwibm9tIiwicmVuYW1lU3luYyIsImV4aXN0c1N5bmMiLCJ3YXJuIiwiY29weUZpbGVTeW5jIiwicGhvdG9CeUlkU2VuYXRldXIiLCJyb3dzRmlsZW5hbWVzIiwic2VuYXRldXJJbmRleCIsInJvd0luZGV4Iiwicm93Iiwic2xpY2UiLCJwaG90b3NGaWxlbmFtZXMiLCJjb2x1bW5JbmRleCIsImVudHJpZXMiLCJwdXNoIiwiY2hlbWluIiwiY2hlbWluTW9zYWlxdWUiLCJoYXV0ZXVyIiwibGFyZ2V1ciIsInhNb3NhaXF1ZSIsInlNb3NhaXF1ZSIsInJvd0ZpbGVuYW1lIiwidW5saW5rU3luYyIsImpzb25GaWxlUGF0aCIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwibWF0Y2giLCJ0aGVuIiwiZXhpdCIsImNhdGNoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfc2VuYXRldXJzX3Bob3Rvcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGlsZFByb2Nlc3MsIGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG4vLyBpbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuLy8gaW1wb3J0IHN0cmVhbSBmcm9tIFwic3RyZWFtXCJcbi8vIGltcG9ydCB1dGlsIGZyb20gXCJ1dGlsXCJcblxuaW1wb3J0IHsgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IGxvYWRBc3NlbWJsZWVEYXRhIH0gZnJvbSBcIi4uL2xvYWRlcnNcIlxuaW1wb3J0IHtcbiAgQWN0ZXVyLFxuICBDb2RlVHlwZU9yZ2FuZSxcbiAgTWFuZGF0LFxuICBQaG90byxcbiAgVHlwZU1hbmRhdCxcbn0gZnJvbSBcIi4uL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcIkNcIixcbiAgICBoZWxwOiBcImNsb25lIHJlcG9zaXRvcmllcyBmcm9tIGdpdmVuIGdyb3VwIChvciBvcmdhbml6YXRpb24pIGdpdCBVUkxcIixcbiAgICBuYW1lOiBcImNsb25lXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IHBob3Rvc1wiLFxuICAgIG5hbWU6IFwiY29tbWl0XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImZcIixcbiAgICBoZWxwOiBcImZldGNoIHPDqW5hdGV1cnMnIHBpY3R1cmVzIGluc3RlYWQgb2YgcmV0cmlldmluZyB0aGVtIGZyb20gZmlsZXNcIixcbiAgICBuYW1lOiBcImZldGNoXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInJcIixcbiAgICBoZWxwOiBcInB1c2ggY29tbWl0IHRvIGdpdmVuIHJlbW90ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwicmVtb3RlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwic1wiLFxuICAgIGhlbHA6IFwiZG9uJ3QgbG9nIGFueXRoaW5nXCIsXG4gICAgbmFtZTogXCJzaWxlbnRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG4vLyBjb25zdCBwaXBlbGluZSA9IHV0aWwucHJvbWlzaWZ5KHN0cmVhbS5waXBlbGluZSlcblxuZnVuY3Rpb24gY29tbWl0QW5kUHVzaChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBjb21taXQ6IGJvb2xlYW4sXG4gIHJlbW90ZXM/OiBzdHJpbmdbXSxcbik6IGJvb2xlYW4ge1xuICBsZXQgZXJyb3IgPSBmYWxzZVxuICBpZiAoY29tbWl0KSB7XG4gICAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICAgIHRyeSB7XG4gICAgICBleGVjU3luYygnZ2l0IGNvbW1pdCAtbSBcIk5vdXZlbGxlIG1vaXNzb25cIicsIHtcbiAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgfSlcbiAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZGVyciA9PT0gbnVsbCB8fFxuICAgICAgICAhL25vdGhpbmcgdG8gY29tbWl0Ly50ZXN0KChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGRvdXQpXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlUGhvdG9zU2VuYXRldXJzKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBkYXRhRGlyID0gb3B0aW9ucy5kYXRhRGlyXG4gIGNvbnN0IHsgYWN0ZXVyQnlVaWQgfSA9IGxvYWRBc3NlbWJsZWVEYXRhKFxuICAgIGRhdGFEaXIsXG4gICAgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXMsXG4gICAgb3B0aW9ucy5sZWdpc2xhdHVyZSxcbiAgKVxuICBjb25zdCBzZW5hdGV1cnMgPSBPYmplY3QudmFsdWVzKGFjdGV1ckJ5VWlkKVxuICAgIC5maWx0ZXIoKGFjdGV1cikgPT4ge1xuICAgICAgY29uc3QgeyBtYW5kYXRzIH0gPSBhY3RldXJcbiAgICAgIGlmICghbWFuZGF0cykge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1hbmRhdFNlbmF0ZXVyID0gbWFuZGF0cy5maWx0ZXIoXG4gICAgICAgIChtYW5kYXQ6IE1hbmRhdCkgPT5cbiAgICAgICAgICBtYW5kYXQueHNpVHlwZSA9PT0gVHlwZU1hbmRhdC5NYW5kYXRQYXJsZW1lbnRhaXJlVHlwZSAmJlxuICAgICAgICAgIC8vIG1hbmRhdC5sZWdpc2xhdHVyZSA9PT0gb3B0aW9ucy5sZWdpc2xhdHVyZSAmJlxuICAgICAgICAgIG1hbmRhdC50eXBlT3JnYW5lID09PSBDb2RlVHlwZU9yZ2FuZS5TZW5hdCxcbiAgICAgIClbMF1cbiAgICAgIGlmIChtYW5kYXRTZW5hdGV1ciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgY29uc3QgeyBhZHJlc3NlcyB9ID0gYWN0ZXVyXG4gICAgICBpZiAoYWRyZXNzZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGxldCB1cmwgPSBudWxsXG4gICAgICBmb3IgKGNvbnN0IGFkcmVzc2Ugb2YgYWRyZXNzZXMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGFkcmVzc2UueHNpVHlwZSA9PT0gXCJBZHJlc3NlU2l0ZVdlYl9UeXBlXCIgJiZcbiAgICAgICAgICBhZHJlc3NlLnR5cGVMaWJlbGxlID09PSBcIlVybCBzw6luYXRldXJcIlxuICAgICAgICApIHtcbiAgICAgICAgICB1cmwgPSBhZHJlc3NlLnZhbEVsZWNcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIEJvb2xlYW4odXJsKVxuICAgIH0pXG4gICAgLnNvcnQoKGEsIGIpID0+XG4gICAgICBhLnVpZC5sZW5ndGggPT09IGIudWlkLmxlbmd0aFxuICAgICAgICA/IGEudWlkLmxvY2FsZUNvbXBhcmUoYi51aWQpXG4gICAgICAgIDogYS51aWQubGVuZ3RoIC0gYi51aWQubGVuZ3RoLFxuICAgIClcblxuICBjb25zdCBnaXRHcm91cFVybCA9IG9wdGlvbnMuY2xvbmVcbiAgICA/IG9wdGlvbnMuY2xvbmUudHJpbSgpLnJlcGxhY2UoL1xcLyskLywgXCJcIilcbiAgICA6IHVuZGVmaW5lZFxuICBjb25zdCBwaG90b3NEaXJOYW1lID0gXCJwaG90b3Nfc2VuYXRldXJzXCJcbiAgaWYgKGdpdEdyb3VwVXJsICE9PSB1bmRlZmluZWQpIHtcbiAgICBleGVjU3luYyhgZ2l0IGNsb25lICR7Z2l0R3JvdXBVcmx9LyR7cGhvdG9zRGlyTmFtZX0uZ2l0YCwge1xuICAgICAgY3dkOiBkYXRhRGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICB9XG4gIGNvbnN0IHBob3Rvc0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBwaG90b3NEaXJOYW1lKVxuXG4gIC8vIERvd25sb2FkIHBob3Rvcy5cbiAgZnMuZW5zdXJlRGlyU3luYyhwaG90b3NEaXIpXG4gIGlmIChvcHRpb25zLmZldGNoKSB7XG4gICAgY29uc3QgbWlzc2luZ1Bob3RvRmlsZVBhdGggPSBcImltYWdlcy90cmFuc3BhcmVudF8xNTV4MjI1LmpwZ1wiXG4gICAgZm9yIChjb25zdCBzZW5hdGV1ciBvZiBzZW5hdGV1cnMpIHtcbiAgICAgIGNvbnN0IGlkZW50ID0gc2VuYXRldXIuZXRhdENpdmlsLmlkZW50XG4gICAgICBjb25zdCBzZW5hdGV1clN0ZW0gPSBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyKVxuICAgICAgY29uc3QgcGhvdG9GaWxlbmFtZSA9IGAke3NlbmF0ZXVyU3RlbX0uanBnYFxuICAgICAgY29uc3QgcGhvdG9GaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIHBob3RvRmlsZW5hbWUpXG4gICAgICBjb25zdCBwaG90b1RlbXBGaWxlbmFtZSA9IGAke3NlbmF0ZXVyU3RlbX1fdGVtcC5qcGdgXG4gICAgICBjb25zdCBwaG90b1RlbXBGaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIHBob3RvVGVtcEZpbGVuYW1lKVxuICAgICAgY29uc3QgdXJsUGhvdG8gPSBgaHR0cHM6Ly93d3cuc2VuYXQuZnIvc2VuaW1nLyR7cGhvdG9GaWxlbmFtZX1gXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBMb2FkaW5nIHBob3RvICR7dXJsUGhvdG99IGZvciAke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub2194oCmYCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgLy8gZm9yIChsZXQgcmV0cmllcyA9IDA7IHJldHJpZXMgPCAzOyByZXRyaWVzKyspIHtcbiAgICAgIC8vICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmxQaG90bylcbiAgICAgIC8vICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAvLyAgICAgYXdhaXQgcGlwZWxpbmUocmVzcG9uc2UuYm9keSwgZnMuY3JlYXRlV3JpdGVTdHJlYW0ocGhvdG9UZW1wRmlsZVBhdGgpKVxuICAgICAgLy8gICAgIGZzLnJlbmFtZVN5bmMocGhvdG9UZW1wRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICAvLyAgICAgYnJlYWtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gICBpZiAocmV0cmllcyA+PSAyKSB7XG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKGBGZXRjaCBmYWlsZWQ6ICR7dXJsUGhvdG99ICgke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub219KWApXG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKHJlc3BvbnNlLnN0YXR1cywgcmVzcG9uc2Uuc3RhdHVzVGV4dClcbiAgICAgIC8vICAgICBjb25zb2xlLndhcm4oYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgLy8gICAgIGlmIChmcy5leGlzdHNTeW5jKHBob3RvRmlsZVBhdGgpKSB7XG4gICAgICAvLyAgICAgICBjb25zb2xlLndhcm4oXCIgID0+IFJldXNpbmcgZXhpc3RpbmcgaW1hZ2VcIilcbiAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgLy8gICAgICAgY29uc29sZS53YXJuKFwiICA9PiBVc2luZyBibGFuayBpbWFnZVwiKVxuICAgICAgLy8gICAgICAgZnMuY29weUZpbGVTeW5jKG1pc3NpbmdQaG90b0ZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgLy8gICAgIH1cbiAgICAgIC8vICAgICBicmVha1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgICB0cnkge1xuICAgICAgICBleGVjU3luYyhgd2dldCAtLXF1aWV0IC1PICR7cGhvdG9UZW1wRmlsZW5hbWV9ICR7dXJsUGhvdG99YCwge1xuICAgICAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICAvLyBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgICAgZnMucmVuYW1lU3luYyhwaG90b1RlbXBGaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHBob3RvRmlsZVBhdGgpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiICA9PiBSZXVzaW5nIGV4aXN0aW5nIGltYWdlXCIpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiICA9PiBVc2luZyBibGFuayBpbWFnZVwiKVxuICAgICAgICAgIGZzLmNvcHlGaWxlU3luYyhtaXNzaW5nUGhvdG9GaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2l6ZSBwaG90b3MgdG8gMTU1eDIyNSwgYmVjYXVzZSBzb21lIGhhdmVuJ3QgZXhhY3RseSB0aGlzIHNpemUuXG4gIGZvciAoY29uc3Qgc2VuYXRldXIgb2Ygc2VuYXRldXJzKSB7XG4gICAgY29uc3QgaWRlbnQgPSBzZW5hdGV1ci5ldGF0Q2l2aWwuaWRlbnRcbiAgICBjb25zdCBzZW5hdGV1clN0ZW0gPSBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyKVxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgUmVzaXppbmcgcGhvdG8gJHtzZW5hdGV1clN0ZW19IGZvciAke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub2194oCmYCxcbiAgICAgIClcbiAgICB9XG4gICAgZXhlY1N5bmMoXG4gICAgICBgZ20gY29udmVydCAtcmVzaXplIDE1NXgyMjUhICR7c2VuYXRldXJTdGVtfS5qcGcgJHtzZW5hdGV1clN0ZW19XzE1NXgyMjUuanBnYCxcbiAgICAgIHtcbiAgICAgICAgY3dkOiBwaG90b3NEaXIsXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIC8vIENyZWF0ZSBhIG1vc2FpYyBvZiBwaG90b3MuXG4gIGNvbnN0IHBob3RvQnlJZFNlbmF0ZXVyOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0gPSB7fVxuICBjb25zdCByb3dzRmlsZW5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gIGZvciAoXG4gICAgbGV0IHNlbmF0ZXVySW5kZXggPSAwLCByb3dJbmRleCA9IDA7XG4gICAgc2VuYXRldXJJbmRleCA8IHNlbmF0ZXVycy5sZW5ndGg7XG4gICAgc2VuYXRldXJJbmRleCArPSAyNSwgcm93SW5kZXgrK1xuICApIHtcbiAgICBjb25zdCByb3cgPSBzZW5hdGV1cnMuc2xpY2Uoc2VuYXRldXJJbmRleCwgc2VuYXRldXJJbmRleCArIDI1KVxuICAgIGNvbnN0IHBob3Rvc0ZpbGVuYW1lczogc3RyaW5nW10gPSBbXVxuICAgIGZvciAoY29uc3QgW2NvbHVtbkluZGV4LCBzZW5hdGV1cl0gb2Ygcm93LmVudHJpZXMoKSkge1xuICAgICAgY29uc3Qgc2VuYXRldXJTdGVtID0gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cilcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtzZW5hdGV1clN0ZW19XzE1NXgyMjUuanBnYFxuICAgICAgcGhvdG9zRmlsZW5hbWVzLnB1c2gocGhvdG9GaWxlbmFtZSlcbiAgICAgIHBob3RvQnlJZFNlbmF0ZXVyW3NlbmF0ZXVyLnVpZF0gPSB7XG4gICAgICAgIGNoZW1pbjogYHBob3Rvc19zZW5hdGV1cnMvJHtwaG90b0ZpbGVuYW1lfWAsXG4gICAgICAgIGNoZW1pbk1vc2FpcXVlOiBgcGhvdG9zX3NlbmF0ZXVycy9zZW5hdGV1cnMuanBnYCxcbiAgICAgICAgaGF1dGV1cjogMjI1LFxuICAgICAgICBsYXJnZXVyOiAxNTUsXG4gICAgICAgIHhNb3NhaXF1ZTogY29sdW1uSW5kZXggKiAxNTUsXG4gICAgICAgIHlNb3NhaXF1ZTogcm93SW5kZXggKiAyMjUsXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJvd0ZpbGVuYW1lID0gYHJvdy0ke3Jvd0luZGV4fS5qcGdgXG4gICAgZXhlY1N5bmMoYGdtIGNvbnZlcnQgJHtwaG90b3NGaWxlbmFtZXMuam9pbihcIiBcIil9ICthcHBlbmQgJHtyb3dGaWxlbmFtZX1gLCB7XG4gICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICB9KVxuICAgIHJvd3NGaWxlbmFtZXMucHVzaChyb3dGaWxlbmFtZSlcbiAgfVxuICBleGVjU3luYyhgZ20gY29udmVydCAke3Jvd3NGaWxlbmFtZXMuam9pbihcIiBcIil9IC1hcHBlbmQgc2VuYXRldXJzLmpwZ2AsIHtcbiAgICBjd2Q6IHBob3Rvc0RpcixcbiAgfSlcbiAgZm9yIChjb25zdCByb3dGaWxlbmFtZSBvZiByb3dzRmlsZW5hbWVzKSB7XG4gICAgZnMudW5saW5rU3luYyhwYXRoLmpvaW4ocGhvdG9zRGlyLCByb3dGaWxlbmFtZSkpXG4gIH1cblxuICBjb25zdCBqc29uRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBcInNlbmF0ZXVycy5qc29uXCIpXG4gIGZzLndyaXRlRmlsZVN5bmMoanNvbkZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShwaG90b0J5SWRTZW5hdGV1ciwgbnVsbCwgMikpXG5cbiAgcmV0dXJuIGNvbW1pdEFuZFB1c2gocGhvdG9zRGlyLCBvcHRpb25zLmNvbW1pdCwgb3B0aW9ucy5yZW1vdGUpXG59XG5cbmZ1bmN0aW9uIHN0ZW1Gcm9tU2VuYXRldXIoc2VuYXRldXI6IEFjdGV1cikge1xuICBjb25zdCB7IGFkcmVzc2VzIH0gPSBzZW5hdGV1clxuICBsZXQgdXJsID0gbnVsbFxuICBmb3IgKGNvbnN0IGFkcmVzc2Ugb2YgYWRyZXNzZXMhKSB7XG4gICAgaWYgKFxuICAgICAgYWRyZXNzZS54c2lUeXBlID09PSBcIkFkcmVzc2VTaXRlV2ViX1R5cGVcIiAmJlxuICAgICAgYWRyZXNzZS50eXBlTGliZWxsZSA9PT0gXCJVcmwgc8OpbmF0ZXVyXCJcbiAgICApIHtcbiAgICAgIHVybCA9IGFkcmVzc2UudmFsRWxlY1xuICAgIH1cbiAgfVxuICBjb25zdCBtYXRjaCA9IHVybCEubWF0Y2goL15odHRwczpcXC9cXC93d3dcXC5zZW5hdFxcLmZyXFwvc2VuYXRldXJcXC8oLiopXFwuaHRtbCQvKVxuICBjb25zdCBzZW5hdGV1clN0ZW0gPSBtYXRjaCFbMV1cbiAgcmV0dXJuIHNlbmF0ZXVyU3RlbVxufVxuXG5yZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycygpXG4gIC50aGVuKChlcnJvcikgPT4gcHJvY2Vzcy5leGl0KGVycm9yID8gMSA6IDApKVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgcHJvY2Vzcy5leGl0KDIpXG4gIH0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQXVCQSxRQUF2QixRQUF1QyxlQUF2QztBQUNBLE9BQU9DLGVBQVAsTUFBNEIsbUJBQTVCO0FBQ0EsT0FBT0MsRUFBUCxNQUFlLFVBQWYsQyxDQUNB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
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
require("core-js/modules/es.array.slice.js");
|
|
4
6
|
|
|
5
7
|
require("core-js/modules/es.function.name.js");
|
|
@@ -30,7 +32,21 @@ require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
|
30
32
|
|
|
31
33
|
require("core-js/modules/es.object.define-properties.js");
|
|
32
34
|
|
|
33
|
-
require("
|
|
35
|
+
require("core-js/modules/es.symbol.async-iterator.js");
|
|
36
|
+
|
|
37
|
+
require("core-js/modules/es.symbol.to-string-tag.js");
|
|
38
|
+
|
|
39
|
+
require("core-js/modules/es.json.to-string-tag.js");
|
|
40
|
+
|
|
41
|
+
require("core-js/modules/es.math.to-string-tag.js");
|
|
42
|
+
|
|
43
|
+
require("core-js/modules/es.object.create.js");
|
|
44
|
+
|
|
45
|
+
require("core-js/modules/es.object.get-prototype-of.js");
|
|
46
|
+
|
|
47
|
+
require("core-js/modules/es.object.set-prototype-of.js");
|
|
48
|
+
|
|
49
|
+
require("core-js/modules/es.array.reverse.js");
|
|
34
50
|
|
|
35
51
|
require("core-js/modules/es.regexp.exec.js");
|
|
36
52
|
|
|
@@ -84,6 +100,8 @@ var _urls = require("../urls");
|
|
|
84
100
|
|
|
85
101
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
86
102
|
|
|
103
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
104
|
+
|
|
87
105
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
88
106
|
|
|
89
107
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -206,10 +224,10 @@ function retrieveDocuments() {
|
|
|
206
224
|
}
|
|
207
225
|
|
|
208
226
|
function _retrieveDocuments() {
|
|
209
|
-
_retrieveDocuments = _asyncToGenerator( /*#__PURE__*/
|
|
227
|
+
_retrieveDocuments = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
210
228
|
var dataDir, _loadAssembleeData, documentByUid, textesLoisDir, _iterator2, _step2, filename, textesLois, firstUid, skip, _iterator3, _step3, texteLoi, url, filePath, response, page;
|
|
211
229
|
|
|
212
|
-
return
|
|
230
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
213
231
|
while (1) {
|
|
214
232
|
switch (_context.prev = _context.next) {
|
|
215
233
|
case 0:
|
|
@@ -401,4 +419,4 @@ retrieveDocuments()["catch"](function (error) {
|
|
|
401
419
|
console.log(error);
|
|
402
420
|
process.exit(1);
|
|
403
421
|
});
|
|
404
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX3RleHRlc19sb2lzLnRzIl0sIm5hbWVzIjpbIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIm5hbWUiLCJ0eXBlIiwiQm9vbGVhbiIsImRlZmF1bHRWYWx1ZSIsIlN0cmluZyIsIm11bHRpcGxlIiwiZGVmYXVsdE9wdGlvbiIsIm9wdGlvbnMiLCJjb21taXRBbmRQdXNoIiwicmVwb3NpdG9yeURpciIsImNvbW1pdCIsInJlbW90ZXMiLCJlcnJvciIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwic3RkZXJyIiwidGVzdCIsInN0ZG91dCIsImNvbnNvbGUiLCJvdXRwdXQiLCJyZW1vdGUiLCJyZXRyaWV2ZURvY3VtZW50cyIsInVpZCIsImRhdGFEaXIiLCJFbmFibGVkRGF0YXNldHMiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzIiwibGVnaXNsYXR1cmUiLCJkb2N1bWVudEJ5VWlkIiwidGV4dGVzTG9pc0RpciIsInBhdGgiLCJqb2luIiwiZnMiLCJlbnN1cmVEaXJTeW5jIiwicmVhZGRpclN5bmMiLCJmaWxlbmFtZSIsInJlbW92ZVN5bmMiLCJ0ZXh0ZXNMb2lzIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwiZG9jdW1lbnQiLCJ4c2lUeXBlIiwiVHlwZURvY3VtZW50IiwiVGV4dGVMb2lUeXBlIiwic3RhcnRzV2l0aCIsIm1hcCIsInJhd0RvY3VtZW50QXNzZW1ibGVlVXJsIiwiRG9jdW1lbnRVcmxGb3JtYXQiLCJSYXdIdG1sIiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsImZpcnN0VWlkIiwic2tpcCIsInRleHRlTG9pIiwic2lsZW50IiwibG9nIiwidXJsIiwiVVJMIiwiZmlsZVBhdGgiLCJob3N0bmFtZSIsInBhdGhuYW1lIiwic3BsaXQiLCJhc3NlcnQiLCJzdHJpY3RFcXVhbCIsImRpcm5hbWUiLCJyZXNwb25zZSIsInRleHQiLCJwYWdlIiwib2siLCJzdGF0dXMiLCJKU09OIiwic3RyaW5naWZ5IiwiY29kZSIsIm1lc3NhZ2UiLCJzdGF0dXNUZXh0Iiwid3JpdGVGaWxlU3luYyIsImV4aXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLGtCQUFrQixHQUFHLENBQ3pCO0FBQ0VDLEVBQUFBLEtBQUssRUFBRSxHQURUO0FBRUVDLEVBQUFBLElBQUksRUFBRSxrQkFGUjtBQUdFQyxFQUFBQSxJQUFJLEVBQUUsUUFIUjtBQUlFQyxFQUFBQSxJQUFJLEVBQUVDO0FBSlIsQ0FEeUIsRUFPekI7QUFDRUosRUFBQUEsS0FBSyxFQUFFLEdBRFQ7QUFFRUssRUFBQUEsWUFBWSxFQUFFLElBRmhCO0FBR0VILEVBQUFBLElBQUksRUFBRSxhQUhSO0FBSUVDLEVBQUFBLElBQUksRUFBRUc7QUFKUixDQVB5QixFQWF6QjtBQUNFTixFQUFBQSxLQUFLLEVBQUUsR0FEVDtBQUVFQyxFQUFBQSxJQUFJLEVBQUUsNkJBRlI7QUFHRU0sRUFBQUEsUUFBUSxFQUFFLElBSFo7QUFJRUwsRUFBQUEsSUFBSSxFQUFFLFFBSlI7QUFLRUMsRUFBQUEsSUFBSSxFQUFFRztBQUxSLENBYnlCLEVBb0J6QjtBQUNFTixFQUFBQSxLQUFLLEVBQUUsR0FEVDtBQUVFQyxFQUFBQSxJQUFJLEVBQUUsb0JBRlI7QUFHRUMsRUFBQUEsSUFBSSxFQUFFLFFBSFI7QUFJRUMsRUFBQUEsSUFBSSxFQUFFQztBQUpSLENBcEJ5QixFQTBCekI7QUFDRUosRUFBQUEsS0FBSyxFQUFFLEdBRFQ7QUFFRUMsRUFBQUEsSUFBSSxFQUFFLCtDQUZSO0FBR0VDLEVBQUFBLElBQUksRUFBRSxLQUhSO0FBSUVDLEVB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VSxFQUFBQSxPQUFPLENBQUN1QyxHQUFSLENBQVlqRCxLQUFaO0FBQ0FHLEVBQUFBLE9BQU8sQ0FBQ21FLElBQVIsQ0FBYSxDQUFiO0FBQ0QsQ0FIRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgeyBDaGlsZFByb2Nlc3MsIGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQgeyBFbmFibGVkRGF0YXNldHMgfSBmcm9tIFwiLi4vZGF0YXNldHNcIlxuaW1wb3J0IHsgbG9hZEFzc2VtYmxlZURhdGEgfSBmcm9tIFwiLi4vbG9hZGVyc1wiXG5pbXBvcnQgeyBEb2N1bWVudCwgVHlwZURvY3VtZW50IH0gZnJvbSBcIi4uL3R5cGVzL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcbmltcG9ydCB7IERvY3VtZW50VXJsRm9ybWF0LCB1cmxGcm9tRG9jdW1lbnQgfSBmcm9tIFwiLi4vdXJsc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImNcIixcbiAgICBoZWxwOiBcImNvbW1pdCBkb2N1bWVudHNcIixcbiAgICBuYW1lOiBcImNvbW1pdFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJsXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIjE1XCIsXG4gICAgbmFtZTogXCJsZWdpc2xhdHVyZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInJcIixcbiAgICBoZWxwOiBcInB1c2ggY29tbWl0IHRvIGdpdmVuIHJlbW90ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwicmVtb3RlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwic1wiLFxuICAgIGhlbHA6IFwiZG9uJ3QgbG9nIGFueXRoaW5nXCIsXG4gICAgbmFtZTogXCJzaWxlbnRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwidVwiLFxuICAgIGhlbHA6IFwiVUlEIG9mIGZpcnN0IEFzc2VtYmzDqWUncyBkb2N1bWVudCB0byByZXRyaWV2ZVwiLFxuICAgIG5hbWU6IFwidWlkXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwidlwiLFxuICAgIGhlbHA6IFwidmVyYm9zZSBsb2dzXCIsXG4gICAgbmFtZTogXCJ2ZXJib3NlXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5mdW5jdGlvbiBjb21taXRBbmRQdXNoKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIGNvbW1pdDogYm9vbGVhbixcbiAgcmVtb3Rlcz86IHN0cmluZ1tdLFxuKTogYm9vbGVhbiB7XG4gIGxldCBlcnJvciA9IGZhbHNlXG4gIGlmIChjb21taXQpIHtcbiAgICBleGVjU3luYyhcImdpdCBhZGQgLlwiLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gICAgdHJ5IHtcbiAgICAgIGV4ZWNTeW5jKCdnaXQgY29tbWl0IC1tIFwiTm91dmVsbGUgbW9pc3NvblwiJywge1xuICAgICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgaWYgKFxuICAgICAgICAoY2hpbGRQcm9jZXNzIGFzIENoaWxkUHJvY2Vzcykuc3RkZXJyID09PSBudWxsIHx8XG4gICAgICAgICEvbm90aGluZyB0byBjb21taXQvLnRlc3QoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLnN0ZG91dClcbiAgICAgICkge1xuICAgICAgICBjb25zb2xlLmVycm9yKChjaGlsZFByb2Nlc3MgYXMgYW55KS5vdXRwdXQpXG4gICAgICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHJlbW90ZSBvZiByZW1vdGVzIHx8IFtdKSB7XG4gICAgICB0cnkge1xuICAgICAgICBleGVjU3luYyhgZ2l0IHB1c2ggJHtyZW1vdGV9IG1hc3RlcmAsIHtcbiAgICAgICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICAgIC8vIERvbid0IHN0b3Agd2hlbiBwdXNoIGZhaWxzLlxuICAgICAgICBjb25zb2xlLmVycm9yKChjaGlsZFByb2Nlc3MgYXMgYW55KS5vdXRwdXQpXG4gICAgICAgIGVycm9yID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZXJyb3Jcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVEb2N1bWVudHMoKTogUHJvbWlzZTxEb2N1bWVudFtdPiB7XG4gIGFzc2VydChcbiAgICAhb3B0aW9ucy5jb21taXQgfHwgb3B0aW9ucy51aWQsXG4gICAgJ09wdGlvbnMgXCJjb21taXRcIiAmIFwidWlkXCIgYXJlIGluY29tcGF0aWJsZScsXG4gIClcblxuICBjb25zdCBkYXRhRGlyID0gb3B0aW9ucy5kYXRhRGlyXG4gIGNvbnN0IHsgZG9jdW1lbnRCeVVpZCB9ID0gbG9hZEFzc2VtYmxlZURhdGEoXG4gICAgZGF0YURpcixcbiAgICBFbmFibGVkRGF0YXNldHMuRG9zc2llcnNMZWdpc2xhdGlmcyxcbiAgICBvcHRpb25zLmxlZ2lzbGF0dXJlLFxuICApXG5cbiAgY29uc3QgdGV4dGVzTG9pc0RpciA9IHBhdGguam9pbihcbiAgICBkYXRhRGlyLFxuICAgIFwid3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnJcIixcbiAgICBvcHRpb25zLmxlZ2lzbGF0dXJlLFxuICAgIFwidGV4dGVzXCIsXG4gIClcbiAgZnMuZW5zdXJlRGlyU3luYyh0ZXh0ZXNMb2lzRGlyKVxuICBpZiAoIW9wdGlvbnMudWlkKSB7XG4gICAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBmcy5yZWFkZGlyU3luYyh0ZXh0ZXNMb2lzRGlyKSkge1xuICAgICAgaWYgKGZpbGVuYW1lWzBdID09PSBcIi5cIikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgZnMucmVtb3ZlU3luYyhwYXRoLmpvaW4odGV4dGVzTG9pc0RpciwgZmlsZW5hbWUpKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHRleHRlc0xvaXMgPSBPYmplY3QudmFsdWVzKGRvY3VtZW50QnlVaWQpXG4gICAgLmZpbHRlcigoZG9jdW1lbnQpID0+IGRvY3VtZW50LnhzaVR5cGUgPT09IFR5cGVEb2N1bWVudC5UZXh0ZUxvaVR5cGUpXG4gICAgLmZpbHRlcihcbiAgICAgIChkb2N1bWVudCkgPT5cbiAgICAgICAgZG9jdW1lbnQudWlkLnN0YXJ0c1dpdGgoXCJQSU9OQU5cIikgfHwgZG9jdW1lbnQudWlkLnN0YXJ0c1dpdGgoXCJQUkpMQU5cIiksXG4gICAgKVxuICAgIC5tYXAoKGRvY3VtZW50KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5kb2N1bWVudCxcbiAgICAgICAgcmF3RG9jdW1lbnRBc3NlbWJsZWVVcmw6IHVybEZyb21Eb2N1bWVudChcbiAgICAgICAgICBkb2N1bWVudCxcbiAgICAgICAgICBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sLFxuICAgICAgICApLFxuICAgICAgfVxuICAgIH0pXG4gICAgLnNvcnQoKGEsIGIpID0+XG4gICAgICBhLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsID09PSBudWxsXG4gICAgICAgID8gLTFcbiAgICAgICAgOiBiLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsID09PSBudWxsXG4gICAgICAgID8gMVxuICAgICAgICA6IGEucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwubG9jYWxlQ29tcGFyZShiLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsKSxcbiAgICApXG5cbiAgY29uc3QgZmlyc3RVaWQgPSBvcHRpb25zLnVpZFxuICBsZXQgc2tpcCA9ICEhZmlyc3RVaWRcbiAgZm9yIChjb25zdCB0ZXh0ZUxvaSBvZiB0ZXh0ZXNMb2lzKSB7XG4gICAgaWYgKHNraXApIHtcbiAgICAgIGlmICh0ZXh0ZUxvaS51aWQgPT09IGZpcnN0VWlkKSB7XG4gICAgICAgIHNraXAgPSBmYWxzZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBSZXRyaWV2aW5nIGJpbGwgJHt0ZXh0ZUxvaS51aWR9IGF0ICR7dGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmx9YCxcbiAgICAgIClcbiAgICB9XG4gICAgaWYgKHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsID09PSBudWxsKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsKVxuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgZGF0YURpcixcbiAgICAgIHVybC5ob3N0bmFtZSxcbiAgICAgIC4uLnVybC5wYXRobmFtZS5zcGxpdChcIi9cIiksXG4gICAgKVxuICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXh0ZXNMb2lzRGlyLCBwYXRoLmRpcm5hbWUoZmlsZVBhdGgpKVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybClcbiAgICBjb25zdCBwYWdlID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gNDA0KSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgYEVycm9yIHdoaWxlIGdldHRpbmcgcGFnZSBcIiR7XG4gICAgICAgICAgICB0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybFxuICAgICAgICAgIH1cIiAodWlkOiAke3RleHRlTG9pLnVpZH0pOlxcblxcbkVycm9yOlxcbiR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB7IGNvZGU6IHJlc3BvbnNlLnN0YXR1cywgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dCB9LFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIDIsXG4gICAgICAgICAgKX1gLFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBwYWdlKVxuICB9XG5cbiAgaWYgKGNvbW1pdEFuZFB1c2godGV4dGVzTG9pc0Rpciwgb3B0aW9ucy5jb21taXQsIG9wdGlvbnMucmVtb3RlKSkge1xuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG4gIHJldHVybiB0ZXh0ZXNMb2lzXG59XG5cbnJldHJpZXZlRG9jdW1lbnRzKCkuY2F0Y2goKGVycm9yKSA9PiB7XG4gIGNvbnNvbGUubG9nKGVycm9yKVxuICBwcm9jZXNzLmV4aXQoMSlcbn0pXG4iXX0=
|
|
422
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJTdHJpbmciLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJjb21taXQiLCJyZW1vdGVzIiwiZXJyb3IiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwic3RkZXJyIiwidGVzdCIsInN0ZG91dCIsImNvbnNvbGUiLCJvdXRwdXQiLCJyZW1vdGUiLCJyZXRyaWV2ZURvY3VtZW50cyIsImFzc2VydCIsInVpZCIsImRhdGFEaXIiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkVuYWJsZWREYXRhc2V0cyIsIkRvc3NpZXJzTGVnaXNsYXRpZnMiLCJsZWdpc2xhdHVyZSIsImRvY3VtZW50QnlVaWQiLCJ0ZXh0ZXNMb2lzRGlyIiwicGF0aCIsImpvaW4iLCJmcyIsImVuc3VyZURpclN5bmMiLCJyZWFkZGlyU3luYyIsImZpbGVuYW1lIiwicmVtb3ZlU3luYyIsInRleHRlc0xvaXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJkb2N1bWVudCIsInhzaVR5cGUiLCJUeXBlRG9jdW1lbnQiLCJUZXh0ZUxvaVR5cGUiLCJzdGFydHNXaXRoIiwibWFwIiwicmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwiLCJ1cmxGcm9tRG9jdW1lbnQiLCJEb2N1bWVudFVybEZvcm1hdCIsIlJhd0h0bWwiLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwiZmlyc3RVaWQiLCJza2lwIiwidGV4dGVMb2kiLCJzaWxlbnQiLCJsb2ciLCJ1cmwiLCJVUkwiLCJmaWxlUGF0aCIsImhvc3RuYW1lIiwicGF0aG5hbWUiLCJzcGxpdCIsInN0cmljdEVxdWFsIiwiZGlybmFtZSIsImZldGNoIiwicmVzcG9uc2UiLCJ0ZXh0IiwicGFnZSIsIm9rIiwic3RhdHVzIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvZGUiLCJtZXNzYWdlIiwic3RhdHVzVGV4dCIsIndyaXRlRmlsZVN5bmMiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfdGV4dGVzX2xvaXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IERvY3VtZW50LCBUeXBlRG9jdW1lbnQgfSBmcm9tIFwiLi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgRG9jdW1lbnRVcmxGb3JtYXQsIHVybEZyb21Eb2N1bWVudCB9IGZyb20gXCIuLi91cmxzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IGRvY3VtZW50c1wiLFxuICAgIG5hbWU6IFwiY29tbWl0XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImxcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiMTVcIixcbiAgICBuYW1lOiBcImxlZ2lzbGF0dXJlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiclwiLFxuICAgIGhlbHA6IFwicHVzaCBjb21taXQgdG8gZ2l2ZW4gcmVtb3RlXCIsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgbmFtZTogXCJyZW1vdGVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJzXCIsXG4gICAgaGVscDogXCJkb24ndCBsb2cgYW55dGhpbmdcIixcbiAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ1XCIsXG4gICAgaGVscDogXCJVSUQgb2YgZmlyc3QgQXNzZW1ibMOpZSdzIGRvY3VtZW50IHRvIHJldHJpZXZlXCIsXG4gICAgbmFtZTogXCJ1aWRcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ2XCIsXG4gICAgaGVscDogXCJ2ZXJib3NlIGxvZ3NcIixcbiAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgY29tbWl0OiBib29sZWFuLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgbGV0IGVycm9yID0gZmFsc2VcbiAgaWYgKGNvbW1pdCkge1xuICAgIGV4ZWNTeW5jKFwiZ2l0IGFkZCAuXCIsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICB0cnkge1xuICAgICAgZXhlY1N5bmMoJ2dpdCBjb21taXQgLW0gXCJOb3V2ZWxsZSBtb2lzc29uXCInLCB7XG4gICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRlcnIgPT09IG51bGwgfHxcbiAgICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVtb3RlIG9mIHJlbW90ZXMgfHwgW10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGV4ZWNTeW5jKGBnaXQgcHVzaCAke3JlbW90ZX0gbWFzdGVyYCwge1xuICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgLy8gRG9uJ3Qgc3RvcCB3aGVuIHB1c2ggZmFpbHMuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgZXJyb3IgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBlcnJvclxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZURvY3VtZW50cygpOiBQcm9taXNlPERvY3VtZW50W10+IHtcbiAgYXNzZXJ0KFxuICAgICFvcHRpb25zLmNvbW1pdCB8fCBvcHRpb25zLnVpZCxcbiAgICAnT3B0aW9ucyBcImNvbW1pdFwiICYgXCJ1aWRcIiBhcmUgaW5jb21wYXRpYmxlJyxcbiAgKVxuXG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgY29uc3QgeyBkb2N1bWVudEJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcblxuICBjb25zdCB0ZXh0ZXNMb2lzRGlyID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgXCJ3d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mclwiLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gICAgXCJ0ZXh0ZXNcIixcbiAgKVxuICBmcy5lbnN1cmVEaXJTeW5jKHRleHRlc0xvaXNEaXIpXG4gIGlmICghb3B0aW9ucy51aWQpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKHRleHRlc0xvaXNEaXIpKSB7XG4gICAgICBpZiAoZmlsZW5hbWVbMF0gPT09IFwiLlwiKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBmcy5yZW1vdmVTeW5jKHBhdGguam9pbih0ZXh0ZXNMb2lzRGlyLCBmaWxlbmFtZSkpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGV4dGVzTG9pcyA9IE9iamVjdC52YWx1ZXMoZG9jdW1lbnRCeVVpZClcbiAgICAuZmlsdGVyKChkb2N1bWVudCkgPT4gZG9jdW1lbnQueHNpVHlwZSA9PT0gVHlwZURvY3VtZW50LlRleHRlTG9pVHlwZSlcbiAgICAuZmlsdGVyKFxuICAgICAgKGRvY3VtZW50KSA9PlxuICAgICAgICBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBJT05BTlwiKSB8fCBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBSSkxBTlwiKSxcbiAgICApXG4gICAgLm1hcCgoZG9jdW1lbnQpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRvY3VtZW50LFxuICAgICAgICByYXdEb2N1bWVudEFzc2VtYmxlZVVybDogdXJsRnJvbURvY3VtZW50KFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwsXG4gICAgICAgICksXG4gICAgICB9XG4gICAgfSlcbiAgICAuc29ydCgoYSwgYikgPT5cbiAgICAgIGEucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAtMVxuICAgICAgICA6IGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAxXG4gICAgICAgIDogYS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybC5sb2NhbGVDb21wYXJlKGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpLFxuICAgIClcblxuICBjb25zdCBmaXJzdFVpZCA9IG9wdGlvbnMudWlkXG4gIGxldCBza2lwID0gISFmaXJzdFVpZFxuICBmb3IgKGNvbnN0IHRleHRlTG9pIG9mIHRleHRlc0xvaXMpIHtcbiAgICBpZiAoc2tpcCkge1xuICAgICAgaWYgKHRleHRlTG9pLnVpZCA9PT0gZmlyc3RVaWQpIHtcbiAgICAgICAgc2tpcCA9IGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFJldHJpZXZpbmcgYmlsbCAke3RleHRlTG9pLnVpZH0gYXQgJHt0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybH1gLFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpXG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgdXJsLmhvc3RuYW1lLFxuICAgICAgLi4udXJsLnBhdGhuYW1lLnNwbGl0KFwiL1wiKSxcbiAgICApXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRleHRlc0xvaXNEaXIsIHBhdGguZGlybmFtZShmaWxlUGF0aCkpXG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsKVxuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCByZXNwb25zZS50ZXh0KClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSA0MDQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgRXJyb3Igd2hpbGUgZ2V0dGluZyBwYWdlIFwiJHtcbiAgICAgICAgICAgIHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsXG4gICAgICAgICAgfVwiICh1aWQ6ICR7dGV4dGVMb2kudWlkfSk6XFxuXFxuRXJyb3I6XFxuJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHsgY29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0IH0sXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgMixcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIHBhZ2UpXG4gIH1cblxuICBpZiAoY29tbWl0QW5kUHVzaCh0ZXh0ZXNMb2lzRGlyLCBvcHRpb25zLmNvbW1pdCwgb3B0aW9ucy5yZW1vdGUpKSB7XG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgcmV0dXJuIHRleHRlc0xvaXNcbn1cblxucmV0cmlldmVEb2N1bWVudHMoKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgY29uc29sZS5sb2coZXJyb3IpXG4gIHByb2Nlc3MuZXhpdCgxKVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7OzsrQ0FUQSxvSjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxJQUFNQSxrQkFBa0IsR0FBRyxDQUN6QjtFQUNFQyxLQUFLLEVBQUUsR0FEVDtFQUVFQyxJQUFJLEVBQUUsa0JBRlI7RUFHRUMsSUFBSSxFQUFFLFFBSFI7RUFJRUMsSUFBSSxFQUFFQztBQUpSLENBRHlCLEVBT3pCO0VBQ0VKLEtBQUssRUFBRSxHQURUO0VBRUVLLFlBQVksRUFBRSxJQUZoQjtFQUdFSCxJQUFJLEVBQUUsYUFIUjtFQUlFQyxJQUFJLEVBQUVHO0FBSlIsQ0FQeUIsRUFhekI7RUFDRU4sS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLDZCQUZSO0VBR0VNLFFBQVEsRUFBRSxJQUhaO0VBSUVMLElBQUksRUFBRSxRQUpSO0VBS0VDLElBQUksRUFBRUc7QUFMUixDQWJ5QixFQW9CekI7RUFDRU4sS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLG9CQUZSO0VBR0VDLElBQUksRUFBRSxRQUhSO0VBSUVDLElBQUksRUFBRUM7QUFKUixDQXBCeUIsRUEwQnpCO0VBQ0VK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
|
|
@@ -165,4 +165,4 @@ retrieveDocuments().catch(error => {
|
|
|
165
165
|
console.log(error);
|
|
166
166
|
process.exit(1);
|
|
167
167
|
});
|
|
168
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX3RleHRlc19sb2lzLnRzIl0sIm5hbWVzIjpbImFzc2VydCIsImV4ZWNTeW5jIiwiY29tbWFuZExpbmVBcmdzIiwiZnMiLCJmZXRjaCIsInBhdGgiLCJFbmFibGVkRGF0YXNldHMiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIlR5cGVEb2N1bWVudCIsIkRvY3VtZW50VXJsRm9ybWF0IiwidXJsRnJvbURvY3VtZW50Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJCb29sZWFuIiwiZGVmYXVsdFZhbHVlIiwiU3RyaW5nIiwibXVsdGlwbGUiLCJkZWZhdWx0T3B0aW9uIiwib3B0aW9ucyIsImNvbW1pdEFuZFB1c2giLCJyZXBvc2l0b3J5RGlyIiwiY29tbWl0IiwicmVtb3RlcyIsImVycm9yIiwiY3dkIiwiZW52IiwicHJvY2VzcyIsImVuY29kaW5nIiwic3RkaW8iLCJjaGlsZFByb2Nlc3MiLCJzdGRlcnIiLCJ0ZXN0Iiwic3Rkb3V0IiwiY29uc29sZSIsIm91dHB1dCIsInJlbW90ZSIsInJldHJpZXZlRG9jdW1lbnRzIiwidWlkIiwiZGF0YURpciIsImRvY3VtZW50QnlVaWQiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzIiwibGVnaXNsYXR1cmUiLCJ0ZXh0ZXNMb2lzRGlyIiwiam9pbiIsImVuc3VyZURpclN5bmMiLCJmaWxlbmFtZSIsInJlYWRkaXJTeW5jIiwicmVtb3ZlU3luYyIsInRleHRlc0xvaXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJkb2N1bWVudCIsInhzaVR5cGUiLCJUZXh0ZUxvaVR5cGUiLCJzdGFydHNXaXRoIiwibWFwIiwicmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwiLCJSYXdIdG1sIiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsImZpcnN0VWlkIiwic2tpcCIsInRleHRlTG9pIiwic2lsZW50IiwibG9nIiwidXJsIiwiVVJMIiwiZmlsZVBhdGgiLCJob3N0bmFtZSIsInBhdGhuYW1lIiwic3BsaXQiLCJzdHJpY3RFcXVhbCIsImRpcm5hbWUiLCJyZXNwb25zZSIsInBhZ2UiLCJ0ZXh0Iiwib2siLCJzdGF0dXMiLCJKU09OIiwic3RyaW5naWZ5IiwiY29kZSIsIm1lc3NhZ2UiLCJzdGF0dXNUZXh0Iiwid3JpdGVGaWxlU3luYyIsImV4aXQiLCJjYXRjaCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBUCxNQUFtQixRQUFuQjtBQUNBLFNBQXVCQyxRQUF2QixRQUF1QyxlQUF2QztBQUNBLE9BQU9DLGVBQVAsTUFBNEIsbUJBQTVCO0FBQ0EsT0FBT0MsRUFBUCxNQUFlLFVBQWY7QUFDQSxPQUFPQyxLQUFQLE1BQWtCLFlBQWxCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixNQUFqQjtTQUVTQyxlO1NBQ0FDLGlCO1NBQ1VDLFk7U0FDVkMsaUIsRUFBbUJDLGU7QUFFNUIsTUFBTUMsa0JBQWtCLEdBQUcsQ0FDekI7QUFDRUMsRUFBQUEsS0FBSyxFQUFFLEdBRFQ7QUFFRUMsRUFBQUEsSUFBSSxFQUFFLGtCQUZSO0FBR0VDLEVBQUFBLElBQUksRUFBRSxRQUhSO0FBSUVDLEVBQUFBLElBQUksRUFBRUM7QUFKUixDQUR5QixFQU96QjtBQUNFSixFQUFBQSxLQUFLLEVBQUUsR0FEVDtBQUVFSyxFQUFBQSxZQUFZLEVBQUUsSUFGaEI7QUFHRUgsRUFBQUEsSUFBSSxFQUFFLGFBSFI7QUFJRUMsRUFBQUEsSUFBSSxFQUFFRztBQUpSLENBUHlCLEVBYXpCO0FBQ0VOLEVBQUFBLEtBQUssRUFBRSxHQURUO0FBRUVDLEVBQUFBLElBQUksRUFBRSw2QkFGUjtBQUdFTSxFQUFBQSxRQUFRLEVBQUUsSUFIWjtBQUlFTCxFQUFBQSxJQUFJLEVBQUUsUUFKUjtBQUtFQyxFQUFBQSxJQUFJLEVBQUVHO0FBTFIsQ0FieUIsRUFvQnpCO0FBQ0VOLEVBQUFBLEtBQUssRUFBRSxHQURUO0FBRUVDLEVBQUFBLElBQUksRUFBRSxvQkFGUjtBQUdFQyxFQUFBQSxJ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QztBQUVBLFVBQU1NLFFBQVEsR0FBRyxNQUFNM0UsS0FBSyxDQUFDZ0UsUUFBUSxDQUFDUix1QkFBVixDQUE1QjtBQUNBLFVBQU1vQixJQUFJLEdBQUcsTUFBTUQsUUFBUSxDQUFDRSxJQUFULEVBQW5COztBQUNBLFFBQUksQ0FBQ0YsUUFBUSxDQUFDRyxFQUFkLEVBQWtCO0FBQ2hCLFVBQUlILFFBQVEsQ0FBQ0ksTUFBVCxLQUFvQixHQUF4QixFQUE2QjtBQUMzQi9DLFFBQUFBLE9BQU8sQ0FBQ1YsS0FBUixDQUNHLDZCQUNDMEMsUUFBUSxDQUFDUix1QkFDVixXQUFVUSxRQUFRLENBQUM1QixHQUFJLGlCQUFnQjRDLElBQUksQ0FBQ0MsU0FBTCxDQUN0QztBQUFFQyxVQUFBQSxJQUFJLEVBQUVQLFFBQVEsQ0FBQ0ksTUFBakI7QUFBeUJJLFVBQUFBLE9BQU8sRUFBRVIsUUFBUSxDQUFDUztBQUEzQyxTQURzQyxFQUV0QyxJQUZzQyxFQUd0QyxDQUhzQyxDQUl0QyxFQVBKO0FBU0Q7O0FBQ0Q7QUFDRDs7QUFDRHJGLElBQUFBLEVBQUUsQ0FBQ3NGLGFBQUgsQ0FBaUJoQixRQUFqQixFQUEyQk8sSUFBM0I7QUFDRDs7QUFFRCxNQUFJMUQsYUFBYSxDQUFDdUIsYUFBRCxFQUFnQnhCLE9BQU8sQ0FBQ0csTUFBeEIsRUFBZ0NILE9BQU8sQ0FBQ2lCLE1BQXhDLENBQWpCLEVBQWtFO0FBQ2hFVCxJQUFBQSxPQUFPLENBQUM2RCxJQUFSLENBQWEsQ0FBYjtBQUNEOztBQUNELFNBQU92QyxVQUFQO0FBQ0Q7O0FBRURaLGlCQUFpQixHQUFHb0QsS0FBcEIsQ0FBMkJqRSxLQUFELElBQVc7QUFDbkNVLEVBQUFBLE9BQU8sQ0FBQ2tDLEdBQVIsQ0FBWTVDLEtBQVo7QUFDQUcsRUFBQUEsT0FBTyxDQUFDNkQsSUFBUixDQUFhLENBQWI7QUFDRCxDQUhEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IERvY3VtZW50LCBUeXBlRG9jdW1lbnQgfSBmcm9tIFwiLi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgRG9jdW1lbnRVcmxGb3JtYXQsIHVybEZyb21Eb2N1bWVudCB9IGZyb20gXCIuLi91cmxzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IGRvY3VtZW50c1wiLFxuICAgIG5hbWU6IFwiY29tbWl0XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImxcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiMTVcIixcbiAgICBuYW1lOiBcImxlZ2lzbGF0dXJlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiclwiLFxuICAgIGhlbHA6IFwicHVzaCBjb21taXQgdG8gZ2l2ZW4gcmVtb3RlXCIsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgbmFtZTogXCJyZW1vdGVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJzXCIsXG4gICAgaGVscDogXCJkb24ndCBsb2cgYW55dGhpbmdcIixcbiAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ1XCIsXG4gICAgaGVscDogXCJVSUQgb2YgZmlyc3QgQXNzZW1ibMOpZSdzIGRvY3VtZW50IHRvIHJldHJpZXZlXCIsXG4gICAgbmFtZTogXCJ1aWRcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ2XCIsXG4gICAgaGVscDogXCJ2ZXJib3NlIGxvZ3NcIixcbiAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgY29tbWl0OiBib29sZWFuLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgbGV0IGVycm9yID0gZmFsc2VcbiAgaWYgKGNvbW1pdCkge1xuICAgIGV4ZWNTeW5jKFwiZ2l0IGFkZCAuXCIsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICB0cnkge1xuICAgICAgZXhlY1N5bmMoJ2dpdCBjb21taXQgLW0gXCJOb3V2ZWxsZSBtb2lzc29uXCInLCB7XG4gICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRlcnIgPT09IG51bGwgfHxcbiAgICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVtb3RlIG9mIHJlbW90ZXMgfHwgW10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGV4ZWNTeW5jKGBnaXQgcHVzaCAke3JlbW90ZX0gbWFzdGVyYCwge1xuICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgLy8gRG9uJ3Qgc3RvcCB3aGVuIHB1c2ggZmFpbHMuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgZXJyb3IgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBlcnJvclxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZURvY3VtZW50cygpOiBQcm9taXNlPERvY3VtZW50W10+IHtcbiAgYXNzZXJ0KFxuICAgICFvcHRpb25zLmNvbW1pdCB8fCBvcHRpb25zLnVpZCxcbiAgICAnT3B0aW9ucyBcImNvbW1pdFwiICYgXCJ1aWRcIiBhcmUgaW5jb21wYXRpYmxlJyxcbiAgKVxuXG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgY29uc3QgeyBkb2N1bWVudEJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcblxuICBjb25zdCB0ZXh0ZXNMb2lzRGlyID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgXCJ3d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mclwiLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gICAgXCJ0ZXh0ZXNcIixcbiAgKVxuICBmcy5lbnN1cmVEaXJTeW5jKHRleHRlc0xvaXNEaXIpXG4gIGlmICghb3B0aW9ucy51aWQpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKHRleHRlc0xvaXNEaXIpKSB7XG4gICAgICBpZiAoZmlsZW5hbWVbMF0gPT09IFwiLlwiKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBmcy5yZW1vdmVTeW5jKHBhdGguam9pbih0ZXh0ZXNMb2lzRGlyLCBmaWxlbmFtZSkpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGV4dGVzTG9pcyA9IE9iamVjdC52YWx1ZXMoZG9jdW1lbnRCeVVpZClcbiAgICAuZmlsdGVyKChkb2N1bWVudCkgPT4gZG9jdW1lbnQueHNpVHlwZSA9PT0gVHlwZURvY3VtZW50LlRleHRlTG9pVHlwZSlcbiAgICAuZmlsdGVyKFxuICAgICAgKGRvY3VtZW50KSA9PlxuICAgICAgICBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBJT05BTlwiKSB8fCBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBSSkxBTlwiKSxcbiAgICApXG4gICAgLm1hcCgoZG9jdW1lbnQpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRvY3VtZW50LFxuICAgICAgICByYXdEb2N1bWVudEFzc2VtYmxlZVVybDogdXJsRnJvbURvY3VtZW50KFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwsXG4gICAgICAgICksXG4gICAgICB9XG4gICAgfSlcbiAgICAuc29ydCgoYSwgYikgPT5cbiAgICAgIGEucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAtMVxuICAgICAgICA6IGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAxXG4gICAgICAgIDogYS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybC5sb2NhbGVDb21wYXJlKGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpLFxuICAgIClcblxuICBjb25zdCBmaXJzdFVpZCA9IG9wdGlvbnMudWlkXG4gIGxldCBza2lwID0gISFmaXJzdFVpZFxuICBmb3IgKGNvbnN0IHRleHRlTG9pIG9mIHRleHRlc0xvaXMpIHtcbiAgICBpZiAoc2tpcCkge1xuICAgICAgaWYgKHRleHRlTG9pLnVpZCA9PT0gZmlyc3RVaWQpIHtcbiAgICAgICAgc2tpcCA9IGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFJldHJpZXZpbmcgYmlsbCAke3RleHRlTG9pLnVpZH0gYXQgJHt0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybH1gLFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpXG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgdXJsLmhvc3RuYW1lLFxuICAgICAgLi4udXJsLnBhdGhuYW1lLnNwbGl0KFwiL1wiKSxcbiAgICApXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRleHRlc0xvaXNEaXIsIHBhdGguZGlybmFtZShmaWxlUGF0aCkpXG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsKVxuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCByZXNwb25zZS50ZXh0KClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSA0MDQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgRXJyb3Igd2hpbGUgZ2V0dGluZyBwYWdlIFwiJHtcbiAgICAgICAgICAgIHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsXG4gICAgICAgICAgfVwiICh1aWQ6ICR7dGV4dGVMb2kudWlkfSk6XFxuXFxuRXJyb3I6XFxuJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHsgY29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0IH0sXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgMixcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIHBhZ2UpXG4gIH1cblxuICBpZiAoY29tbWl0QW5kUHVzaCh0ZXh0ZXNMb2lzRGlyLCBvcHRpb25zLmNvbW1pdCwgb3B0aW9ucy5yZW1vdGUpKSB7XG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgcmV0dXJuIHRleHRlc0xvaXNcbn1cblxucmV0cmlldmVEb2N1bWVudHMoKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgY29uc29sZS5sb2coZXJyb3IpXG4gIHByb2Nlc3MuZXhpdCgxKVxufSlcbiJdfQ==
|
|
168
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJleGVjU3luYyIsImNvbW1hbmRMaW5lQXJncyIsImZzIiwiZmV0Y2giLCJwYXRoIiwiRW5hYmxlZERhdGFzZXRzIiwibG9hZEFzc2VtYmxlZURhdGEiLCJUeXBlRG9jdW1lbnQiLCJEb2N1bWVudFVybEZvcm1hdCIsInVybEZyb21Eb2N1bWVudCIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIm5hbWUiLCJ0eXBlIiwiQm9vbGVhbiIsImRlZmF1bHRWYWx1ZSIsIlN0cmluZyIsIm11bHRpcGxlIiwiZGVmYXVsdE9wdGlvbiIsIm9wdGlvbnMiLCJjb21taXRBbmRQdXNoIiwicmVwb3NpdG9yeURpciIsImNvbW1pdCIsInJlbW90ZXMiLCJlcnJvciIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwic3RkZXJyIiwidGVzdCIsInN0ZG91dCIsImNvbnNvbGUiLCJvdXRwdXQiLCJyZW1vdGUiLCJyZXRyaWV2ZURvY3VtZW50cyIsInVpZCIsImRhdGFEaXIiLCJkb2N1bWVudEJ5VWlkIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsImxlZ2lzbGF0dXJlIiwidGV4dGVzTG9pc0RpciIsImpvaW4iLCJlbnN1cmVEaXJTeW5jIiwiZmlsZW5hbWUiLCJyZWFkZGlyU3luYyIsInJlbW92ZVN5bmMiLCJ0ZXh0ZXNMb2lzIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwiZG9jdW1lbnQiLCJ4c2lUeXBlIiwiVGV4dGVMb2lUeXBlIiwic3RhcnRzV2l0aCIsIm1hcCIsInJhd0RvY3VtZW50QXNzZW1ibGVlVXJsIiwiUmF3SHRtbCIsInNvcnQiLCJhIiwiYiIsImxvY2FsZUNvbXBhcmUiLCJmaXJzdFVpZCIsInNraXAiLCJ0ZXh0ZUxvaSIsInNpbGVudCIsImxvZyIsInVybCIsIlVSTCIsImZpbGVQYXRoIiwiaG9zdG5hbWUiLCJwYXRobmFtZSIsInNwbGl0Iiwic3RyaWN0RXF1YWwiLCJkaXJuYW1lIiwicmVzcG9uc2UiLCJwYWdlIiwidGV4dCIsIm9rIiwic3RhdHVzIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvZGUiLCJtZXNzYWdlIiwic3RhdHVzVGV4dCIsIndyaXRlRmlsZVN5bmMiLCJleGl0IiwiY2F0Y2giXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV90ZXh0ZXNfbG9pcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuaW1wb3J0IHsgQ2hpbGRQcm9jZXNzLCBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IGxvYWRBc3NlbWJsZWVEYXRhIH0gZnJvbSBcIi4uL2xvYWRlcnNcIlxuaW1wb3J0IHsgRG9jdW1lbnQsIFR5cGVEb2N1bWVudCB9IGZyb20gXCIuLi90eXBlcy9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5pbXBvcnQgeyBEb2N1bWVudFVybEZvcm1hdCwgdXJsRnJvbURvY3VtZW50IH0gZnJvbSBcIi4uL3VybHNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIHtcbiAgICBhbGlhczogXCJjXCIsXG4gICAgaGVscDogXCJjb21taXQgZG9jdW1lbnRzXCIsXG4gICAgbmFtZTogXCJjb21taXRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwibFwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCIxNVwiLFxuICAgIG5hbWU6IFwibGVnaXNsYXR1cmVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJyXCIsXG4gICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcInJlbW90ZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInVcIixcbiAgICBoZWxwOiBcIlVJRCBvZiBmaXJzdCBBc3NlbWJsw6llJ3MgZG9jdW1lbnQgdG8gcmV0cmlldmVcIixcbiAgICBuYW1lOiBcInVpZFwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInZcIixcbiAgICBoZWxwOiBcInZlcmJvc2UgbG9nc1wiLFxuICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgIGhlbHA6IFwiZGlyZWN0b3J5IGNvbnRhaW5pbmcgQXNzZW1ibMOpZSBvcGVuIGRhdGEgZmlsZXNcIixcbiAgICBuYW1lOiBcImRhdGFEaXJcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuZnVuY3Rpb24gY29tbWl0QW5kUHVzaChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBjb21taXQ6IGJvb2xlYW4sXG4gIHJlbW90ZXM/OiBzdHJpbmdbXSxcbik6IGJvb2xlYW4ge1xuICBsZXQgZXJyb3IgPSBmYWxzZVxuICBpZiAoY29tbWl0KSB7XG4gICAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICAgIHRyeSB7XG4gICAgICBleGVjU3luYygnZ2l0IGNvbW1pdCAtbSBcIk5vdXZlbGxlIG1vaXNzb25cIicsIHtcbiAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgfSlcbiAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZGVyciA9PT0gbnVsbCB8fFxuICAgICAgICAhL25vdGhpbmcgdG8gY29tbWl0Ly50ZXN0KChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGRvdXQpXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlRG9jdW1lbnRzKCk6IFByb21pc2U8RG9jdW1lbnRbXT4ge1xuICBhc3NlcnQoXG4gICAgIW9wdGlvbnMuY29tbWl0IHx8IG9wdGlvbnMudWlkLFxuICAgICdPcHRpb25zIFwiY29tbWl0XCIgJiBcInVpZFwiIGFyZSBpbmNvbXBhdGlibGUnLFxuICApXG5cbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCB7IGRvY3VtZW50QnlVaWQgfSA9IGxvYWRBc3NlbWJsZWVEYXRhKFxuICAgIGRhdGFEaXIsXG4gICAgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnMsXG4gICAgb3B0aW9ucy5sZWdpc2xhdHVyZSxcbiAgKVxuXG4gIGNvbnN0IHRleHRlc0xvaXNEaXIgPSBwYXRoLmpvaW4oXG4gICAgZGF0YURpcixcbiAgICBcInd3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyXCIsXG4gICAgb3B0aW9ucy5sZWdpc2xhdHVyZSxcbiAgICBcInRleHRlc1wiLFxuICApXG4gIGZzLmVuc3VyZURpclN5bmModGV4dGVzTG9pc0RpcilcbiAgaWYgKCFvcHRpb25zLnVpZCkge1xuICAgIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgZnMucmVhZGRpclN5bmModGV4dGVzTG9pc0RpcikpIHtcbiAgICAgIGlmIChmaWxlbmFtZVswXSA9PT0gXCIuXCIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGZzLnJlbW92ZVN5bmMocGF0aC5qb2luKHRleHRlc0xvaXNEaXIsIGZpbGVuYW1lKSlcbiAgICB9XG4gIH1cblxuICBjb25zdCB0ZXh0ZXNMb2lzID0gT2JqZWN0LnZhbHVlcyhkb2N1bWVudEJ5VWlkKVxuICAgIC5maWx0ZXIoKGRvY3VtZW50KSA9PiBkb2N1bWVudC54c2lUeXBlID09PSBUeXBlRG9jdW1lbnQuVGV4dGVMb2lUeXBlKVxuICAgIC5maWx0ZXIoXG4gICAgICAoZG9jdW1lbnQpID0+XG4gICAgICAgIGRvY3VtZW50LnVpZC5zdGFydHNXaXRoKFwiUElPTkFOXCIpIHx8IGRvY3VtZW50LnVpZC5zdGFydHNXaXRoKFwiUFJKTEFOXCIpLFxuICAgIClcbiAgICAubWFwKChkb2N1bWVudCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZG9jdW1lbnQsXG4gICAgICAgIHJhd0RvY3VtZW50QXNzZW1ibGVlVXJsOiB1cmxGcm9tRG9jdW1lbnQoXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbCxcbiAgICAgICAgKSxcbiAgICAgIH1cbiAgICB9KVxuICAgIC5zb3J0KChhLCBiKSA9PlxuICAgICAgYS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybCA9PT0gbnVsbFxuICAgICAgICA/IC0xXG4gICAgICAgIDogYi5yYXdEb2N1bWVudEFzc2VtYmxlZVVybCA9PT0gbnVsbFxuICAgICAgICA/IDFcbiAgICAgICAgOiBhLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsLmxvY2FsZUNvbXBhcmUoYi5yYXdEb2N1bWVudEFzc2VtYmxlZVVybCksXG4gICAgKVxuXG4gIGNvbnN0IGZpcnN0VWlkID0gb3B0aW9ucy51aWRcbiAgbGV0IHNraXAgPSAhIWZpcnN0VWlkXG4gIGZvciAoY29uc3QgdGV4dGVMb2kgb2YgdGV4dGVzTG9pcykge1xuICAgIGlmIChza2lwKSB7XG4gICAgICBpZiAodGV4dGVMb2kudWlkID09PSBmaXJzdFVpZCkge1xuICAgICAgICBza2lwID0gZmFsc2VcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgfVxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgUmV0cmlldmluZyBiaWxsICR7dGV4dGVMb2kudWlkfSBhdCAke3RleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsfWAsXG4gICAgICApXG4gICAgfVxuICAgIGlmICh0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybCA9PT0gbnVsbCkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybClcbiAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgIGRhdGFEaXIsXG4gICAgICB1cmwuaG9zdG5hbWUsXG4gICAgICAuLi51cmwucGF0aG5hbWUuc3BsaXQoXCIvXCIpLFxuICAgIClcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGV4dGVzTG9pc0RpciwgcGF0aC5kaXJuYW1lKGZpbGVQYXRoKSlcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpXG4gICAgY29uc3QgcGFnZSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKVxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDQwNCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBFcnJvciB3aGlsZSBnZXR0aW5nIHBhZ2UgXCIke1xuICAgICAgICAgICAgdGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmxcbiAgICAgICAgICB9XCIgKHVpZDogJHt0ZXh0ZUxvaS51aWR9KTpcXG5cXG5FcnJvcjpcXG4ke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgeyBjb2RlOiByZXNwb25zZS5zdGF0dXMsIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHQgfSxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAyLFxuICAgICAgICAgICl9YCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgY29udGludWVcbiAgICB9XG4gICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgcGFnZSlcbiAgfVxuXG4gIGlmIChjb21taXRBbmRQdXNoKHRleHRlc0xvaXNEaXIsIG9wdGlvbnMuY29tbWl0LCBvcHRpb25zLnJlbW90ZSkpIHtcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICByZXR1cm4gdGV4dGVzTG9pc1xufVxuXG5yZXRyaWV2ZURvY3VtZW50cygpLmNhdGNoKChlcnJvcikgPT4ge1xuICBjb25zb2xlLmxvZyhlcnJvcilcbiAgcHJvY2Vzcy5leGl0KDEpXG59KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFQLE1BQW1CLFFBQW5CO0FBQ0EsU0FBdUJDLFFBQXZCLFFBQXVDLGVBQXZDO0FBQ0EsT0FBT0MsZUFBUCxNQUE0QixtQkFBNUI7QUFDQSxPQUFPQyxFQUFQLE1BQWUsVUFBZjtBQUNBLE9BQU9DLEtBQVAsTUFBa0IsWUFBbEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLE1BQWpCO1NBRVNDLGU7U0FDQUMsaUI7U0FDVUMsWTtTQUNWQyxpQixFQUFtQkMsZTtBQUU1QixNQUFNQyxrQkFBa0IsR0FBRyxDQUN6QjtFQUNFQyxLQUFLLEVBQUUsR0FEVDtFQUVFQyxJQUFJLEVBQUUsa0JBRlI7RUFHRUMsSUFBSSxFQUFFLFFBSFI7RUFJRUMsSUFBSSxFQUFFQztBQUpSLENBRHlCLEVBT3pCO0VBQ0VKLEtBQUssRUFBRSxHQURUO0VBRUVLLFlBQVksRUFBRSxJQUZoQjtFQUdFSCxJQUFJLEVBQUUsYUFIUjtFQUlFQyxJQUFJLEVBQUVHO0FBSlIsQ0FQeUIsRUFhekI7RUFDRU4sS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLDZCQUZSO0VBR0VNLFFBQVEsRUFBRSxJQUhaO0VBSUVMLElBQUksRUFBRSxRQUpSO0VBS0VDLElBQUksRUFBRUc7QUFMUixDQWJ5QixFQW9CekI7RUFDRU4sS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLG9CQUZSO0VBR0VDLElBQUksRUFBRSxR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
|
package/lib/scripts/test_load.js
CHANGED
|
@@ -42,4 +42,4 @@ var enabledDatasets = options.categories.reduce(function (enabledDatasets, datas
|
|
|
42
42
|
(0, _loaders.loadAssembleeData)(options.dataDir, enabledDatasets, _legislatures.Legislature.All, {
|
|
43
43
|
log: true
|
|
44
44
|
});
|
|
45
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImRlZmF1bHRWYWx1ZSIsImhlbHAiLCJtdWx0aXBsZSIsIm5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwiZGVmYXVsdE9wdGlvbiIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJjYXRlZ29yaWVzIiwibWFwIiwiZGF0YXNldE5hbWUiLCJhc3NlcnQiLCJub3RTdHJpY3RFcXVhbCIsIkVuYWJsZWREYXRhc2V0cyIsInVuZGVmaW5lZCIsImVuYWJsZWREYXRhc2V0cyIsInJlZHVjZSIsIk5vbmUiLCJsb2FkQXNzZW1ibGVlRGF0YSIsImRhdGFEaXIiLCJMZWdpc2xhdHVyZSIsIkFsbCIsImxvZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3Rlc3RfbG9hZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogTG9hZCBhbGwgc3BsaXQgb3BlbiBkYXRhIGZpbGVzIGluIFJBTSBhcyBhIHRlc3QuICovXG5cbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImtcIixcbiAgICBkZWZhdWx0VmFsdWU6IFtcIkFsbFwiXSxcbiAgICBoZWxwOiBcImNhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmVvcmdhbml6ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwiY2F0ZWdvcmllc1wiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5vcHRpb25zLmNhdGVnb3JpZXMubWFwKChkYXRhc2V0TmFtZTogc3RyaW5nKSA9PlxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICAgIHVuZGVmaW5lZCxcbiAgICBgVW5rbm93biBuYW1lIG9mIGRhdGFzZXQ6ICR7ZGF0YXNldE5hbWV9YCxcbiAgKSxcbilcbmNvbnN0IGVuYWJsZWREYXRhc2V0cyA9IG9wdGlvbnMuY2F0ZWdvcmllcy5yZWR1Y2UoXG4gIChlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cywgZGF0YXNldE5hbWU6IHN0cmluZyk6IEVuYWJsZWREYXRhc2V0cyA9PlxuICAgIGVuYWJsZWREYXRhc2V0cyB8XG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICBFbmFibGVkRGF0YXNldHMuTm9uZSxcbilcblxubG9hZEFzc2VtYmxlZURhdGEob3B0aW9ucy5kYXRhRGlyLCBlbmFibGVkRGF0YXNldHMsIExlZ2lzbGF0dXJlLkFsbCwge1xuICBsb2c6IHRydWUsXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7O0FBUEE7QUFTQSxJQUFNQSxrQkFBa0IsR0FBRyxDQUN6QjtFQUNFQyxLQUFLLEVBQUUsR0FEVDtFQUVFQyxZQUFZLEVBQUUsQ0FBQyxLQUFELENBRmhCO0VBR0VDLElBQUksRUFBRSxzQ0FIUjtFQUlFQyxRQUFRLEVBQUUsSUFKWjtFQUtFQyxJQUFJLEVBQUUsWUFMUjtFQU1FQyxJQUFJLEVBQUVDO0FBTlIsQ0FEeUIsRUFTekI7RUFDRUMsYUFBYSxFQUFFLElBRGpCO0VBRUVMLElBQUksRUFBRSxnREFGUjtFQUdFRSxJQUFJLEVBQUUsU0FIUjtFQUlFQyxJQUFJLEVBQUVDO0FBSlIsQ0FUeUIsQ0FBM0I7QUFnQkEsSUFBTUUsT0FBTyxHQUFHLElBQUFDLDJCQUFBLEVBQWdCVixrQkFBaEIsQ0FBaEI7QUFFQVMsT0FBTyxDQUFDRSxVQUFSLENBQW1CQyxHQUFuQixDQUF1QixVQUFDQyxXQUFEO0VBQUEsT0FDckJDLGtCQUFBLENBQU9DLGNBQVAsQ0FDR0MseUJBQUQsQ0FDRUgsV0FERixDQURGLEVBSUVJLFNBSkYscUNBSzhCSixXQUw5QixFQURxQjtBQUFBLENBQXZCO0FBU0EsSUFBTUssZUFBZSxHQUFHVCxPQUFPLENBQUNFLFVBQVIsQ0FBbUJRLE1BQW5CLENBQ3RCLFVBQUNELGVBQUQsRUFBbUNMLFdBQW5DO0VBQUEsT0FDRUssZUFBZSxHQUNkRix5QkFBRCxDQUNFSCxXQURGLENBRkY7QUFBQSxDQURzQixFQU10QkcseUJBQUEsQ0FBZ0JJLElBTk0sQ0FBeEI7QUFTQSxJQUFBQywwQkFBQSxFQUFrQlosT0FBTyxDQUFDYSxPQUExQixFQUFtQ0osZUFBbkMsRUFBb0RLLHlCQUFBLENBQVlDLEdBQWhFLEVBQXFFO0VBQ25FQyxHQUFHLEVBQUU7QUFEOEQsQ0FBckUifQ==
|
|
@@ -23,4 +23,4 @@ const enabledDatasets = options.categories.reduce((enabledDatasets, datasetName)
|
|
|
23
23
|
loadAssembleeData(options.dataDir, enabledDatasets, Legislature.All, {
|
|
24
24
|
log: true
|
|
25
25
|
});
|
|
26
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjb21tYW5kTGluZUFyZ3MiLCJFbmFibGVkRGF0YXNldHMiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkxlZ2lzbGF0dXJlIiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJkZWZhdWx0VmFsdWUiLCJoZWxwIiwibXVsdGlwbGUiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY2F0ZWdvcmllcyIsIm1hcCIsImRhdGFzZXROYW1lIiwibm90U3RyaWN0RXF1YWwiLCJ1bmRlZmluZWQiLCJlbmFibGVkRGF0YXNldHMiLCJyZWR1Y2UiLCJOb25lIiwiZGF0YURpciIsIkFsbCIsImxvZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3Rlc3RfbG9hZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogTG9hZCBhbGwgc3BsaXQgb3BlbiBkYXRhIGZpbGVzIGluIFJBTSBhcyBhIHRlc3QuICovXG5cbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImtcIixcbiAgICBkZWZhdWx0VmFsdWU6IFtcIkFsbFwiXSxcbiAgICBoZWxwOiBcImNhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmVvcmdhbml6ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwiY2F0ZWdvcmllc1wiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5vcHRpb25zLmNhdGVnb3JpZXMubWFwKChkYXRhc2V0TmFtZTogc3RyaW5nKSA9PlxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICAgIHVuZGVmaW5lZCxcbiAgICBgVW5rbm93biBuYW1lIG9mIGRhdGFzZXQ6ICR7ZGF0YXNldE5hbWV9YCxcbiAgKSxcbilcbmNvbnN0IGVuYWJsZWREYXRhc2V0cyA9IG9wdGlvbnMuY2F0ZWdvcmllcy5yZWR1Y2UoXG4gIChlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cywgZGF0YXNldE5hbWU6IHN0cmluZyk6IEVuYWJsZWREYXRhc2V0cyA9PlxuICAgIGVuYWJsZWREYXRhc2V0cyB8XG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICBFbmFibGVkRGF0YXNldHMuTm9uZSxcbilcblxubG9hZEFzc2VtYmxlZURhdGEob3B0aW9ucy5kYXRhRGlyLCBlbmFibGVkRGF0YXNldHMsIExlZ2lzbGF0dXJlLkFsbCwge1xuICBsb2c6IHRydWUsXG59KVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUVBLE9BQU9BLE1BQVAsTUFBbUIsUUFBbkI7QUFDQSxPQUFPQyxlQUFQLE1BQTRCLG1CQUE1QjtTQUVTQyxlO1NBQ0FDLGlCO1NBQ0FDLFc7QUFFVCxNQUFNQyxrQkFBa0IsR0FBRyxDQUN6QjtFQUNFQyxLQUFLLEVBQUUsR0FEVDtFQUVFQyxZQUFZLEVBQUUsQ0FBQyxLQUFELENBRmhCO0VBR0VDLElBQUksRUFBRSxzQ0FIUjtFQUlFQyxRQUFRLEVBQUUsSUFKWjtFQUtFQyxJQUFJLEVBQUUsWUFMUjtFQU1FQyxJQUFJLEVBQUVDO0FBTlIsQ0FEeUIsRUFTekI7RUFDRUMsYUFBYSxFQUFFLElBRGpCO0VBRUVMLElBQUksRUFBRSxnREFGUjtFQUdFRSxJQUFJLEVBQUUsU0FIUjtFQUlFQyxJQUFJLEVBQUVDO0FBSlIsQ0FUeUIsQ0FBM0I7QUFnQkEsTUFBTUUsT0FBTyxHQUFHYixlQUFlLENBQUNJLGtCQUFELENBQS9CO0FBRUFTLE9BQU8sQ0FBQ0MsVUFBUixDQUFtQkMsR0FBbkIsQ0FBd0JDLFdBQUQsSUFDckJqQixNQUFNLENBQUNrQixjQUFQLENBQ0doQixlQUFELENBQ0VlLFdBREYsQ0FERixFQUlFRSxTQUpGLEVBS0csNEJBQTJCRixXQUFZLEVBTDFDLENBREY7QUFTQSxNQUFNRyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ0MsVUFBUixDQUFtQk0sTUFBbkIsQ0FDdEIsQ0FBQ0QsZUFBRCxFQUFtQ0gsV0FBbkMsS0FDRUcsZUFBZSxHQUNkbEIsZUFBRCxDQUNFZSxXQURGLENBSG9CLEVBTXRCZixlQUFlLENBQUNvQixJQU5NLENBQXhCO0FBU0FuQixpQkFBaUIsQ0FBQ1csT0FBTyxDQUFDUyxPQUFULEVBQWtCSCxlQUFsQixFQUFtQ2hCLFdBQVcsQ0FBQ29CLEdBQS9DLEVBQW9EO0VBQ25FQyxHQUFHLEVBQUU7QUFEOEQsQ0FBcEQsQ0FBakIifQ==
|