@tricoteuses/assemblee 0.28.2 → 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/bugs/acteur-00010/plugin.test.js +45 -5
- package/lib/bugs/acteur-00010.js +29 -9
- package/lib/bugs/agenda-00002/plugin.test.js +46 -6
- package/lib/bugs/agenda-00002.js +29 -13
- package/lib/bugs/agenda-00008/plugin.test.js +44 -4
- package/lib/bugs/agenda-00008.js +29 -9
- package/lib/bugs/agenda-00011/plugin.test.js +50 -12
- package/lib/bugs/agenda-00011.js +39 -19
- package/lib/bugs.js +51 -31
- package/lib/cleaners/documents.js +13 -1
- package/lib/cleaners/documents.mjs +13 -1
- package/lib/file_systems.js +25 -5
- package/lib/parsers/documents.js +27 -5
- package/lib/parsers/recherche_amendements.js +27 -7
- 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/scripts/bugs_helper.js +39 -19
- package/lib/scripts/document_dossiers_legislatifs.js +5 -3
- package/lib/scripts/raw_types_from_amendements.js +28 -4
- package/lib/scripts/retrieve_deputes_photos.js +28 -4
- package/lib/scripts/retrieve_documents.js +35 -15
- package/lib/scripts/retrieve_open_data.js +30 -6
- package/lib/scripts/retrieve_pending_amendments.js +26 -4
- package/lib/scripts/retrieve_senateurs_photos.js +28 -4
- package/lib/scripts/retrieve_textes_lois.js +22 -4
- package/lib/scripts/validate_json.js +27 -7
- 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/package.json +1 -1
|
@@ -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.is-array.js");
|
|
4
6
|
|
|
5
7
|
require("core-js/modules/es.symbol.js");
|
|
@@ -16,7 +18,27 @@ require("core-js/modules/es.function.name.js");
|
|
|
16
18
|
|
|
17
19
|
require("core-js/modules/es.regexp.exec.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.object.to-string.js");
|
|
22
44
|
|
|
@@ -60,6 +82,8 @@ var _file_systems = require("../file_systems");
|
|
|
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 _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
64
88
|
|
|
65
89
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
@@ -110,10 +134,10 @@ function retrieveOpenData(_x) {
|
|
|
110
134
|
}
|
|
111
135
|
|
|
112
136
|
function _retrieveOpenData() {
|
|
113
|
-
_retrieveOpenData = _asyncToGenerator( /*#__PURE__*/
|
|
137
|
+
_retrieveOpenData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(dataDir) {
|
|
114
138
|
var enabledDatasets, choosenDatasets, _iterator, _step, _loop;
|
|
115
139
|
|
|
116
|
-
return
|
|
140
|
+
return _regeneratorRuntime().wrap(function _callee$(_context2) {
|
|
117
141
|
while (1) {
|
|
118
142
|
switch (_context2.prev = _context2.next) {
|
|
119
143
|
case 0:
|
|
@@ -126,10 +150,10 @@ function _retrieveOpenData() {
|
|
|
126
150
|
choosenDatasets = [].concat(_toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.ActeursEtOrganes ? _datasets.datasets.acteursEtOrganes : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Agendas ? _datasets.datasets.agendas : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Amendements ? _datasets.datasets.amendements : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.DossiersLegislatifs ? _datasets.datasets.dossiersLegislatifs : []), _toConsumableArray(enabledDatasets & _datasets.EnabledDatasets.Scrutins ? _datasets.datasets.scrutins : []));
|
|
127
151
|
_iterator = _createForOfIteratorHelper(choosenDatasets);
|
|
128
152
|
_context2.prev = 4;
|
|
129
|
-
_loop = /*#__PURE__*/
|
|
153
|
+
_loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() {
|
|
130
154
|
var dataset, zipFilePath, response, dataDirOrFilePath, zip, _iterator2, _step2, dataFileSplitPath, dataFilePath, data, _data;
|
|
131
155
|
|
|
132
|
-
return
|
|
156
|
+
return _regeneratorRuntime().wrap(function _loop$(_context) {
|
|
133
157
|
while (1) {
|
|
134
158
|
switch (_context.prev = _context.next) {
|
|
135
159
|
case 0:
|
|
@@ -299,4 +323,4 @@ retrieveOpenData(options.dataDir)["catch"](function (error) {
|
|
|
299
323
|
console.log(error);
|
|
300
324
|
process.exit(1);
|
|
301
325
|
});
|
|
302
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJtdWx0aXBsZSIsIlN0cmluZyIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwicGlwZWxpbmUiLCJ1dGlsIiwicHJvbWlzaWZ5Iiwic3RyZWFtIiwicmV0cmlldmVPcGVuRGF0YSIsImRhdGFEaXIiLCJjYXRlZ29yaWVzIiwibWFwIiwiZGF0YXNldE5hbWUiLCJhc3NlcnQiLCJub3RTdHJpY3RFcXVhbCIsIkVuYWJsZWREYXRhc2V0cyIsInVuZGVmaW5lZCIsImVuYWJsZWREYXRhc2V0cyIsInJlZHVjZSIsIk5vbmUiLCJjaG9vc2VuRGF0YXNldHMiLCJBY3RldXJzRXRPcmdhbmVzIiwiZGF0YXNldHMiLCJhY3RldXJzRXRPcmdhbmVzIiwiQWdlbmRhcyIsImFnZW5kYXMiLCJBbWVuZGVtZW50cyIsImFtZW5kZW1lbnRzIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJTY3J1dGlucyIsInNjcnV0aW5zIiwiZGF0YXNldCIsInppcEZpbGVQYXRoIiwicGF0aCIsImpvaW4iLCJmaWxlbmFtZSIsImZldGNoIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsInRpdGxlIiwidXJsIiwicmVzcG9uc2UiLCJvayIsImVycm9yIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInRleHQiLCJFcnJvciIsImJvZHkiLCJmcyIsImNyZWF0ZVdyaXRlU3RyZWFtIiwiZGF0YURpck9yRmlsZVBhdGgiLCJyZW1vdmVTeW5jIiwiemlwIiwiU3RyZWFtWmlwIiwiZmlsZSIsInN0b3JlRW50cmllcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwib24iLCJleHRyYWN0IiwiZXJyIiwiY2xvc2UiLCJyZXBhaXJaaXAiLCJzdGF0U3luYyIsImlzRGlyZWN0b3J5Iiwid2Fsa0RpciIsImRhdGFGaWxlU3BsaXRQYXRoIiwiZGF0YUZpbGVQYXRoIiwiZW5kc1dpdGgiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJ3cml0ZUZpbGVTeW5jIiwic3RyaW5naWZ5IiwicHJvY2VzcyIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV9vcGVuX2RhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBzdHJlYW0gZnJvbSBcInN0cmVhbVwiXG5pbXBvcnQgU3RyZWFtWmlwIGZyb20gXCJub2RlLXN0cmVhbS16aXBcIlxuaW1wb3J0IHV0aWwgZnJvbSBcInV0aWxcIlxuXG5pbXBvcnQgeyBkYXRhc2V0cywgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiZlwiLFxuICAgIGhlbHA6IFwiZmV0Y2ggZGF0YXNldHMgaW5zdGVhZCBvZiByZXRyaWV2aW5nIHRoZW0gZnJvbSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZmV0Y2hcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwia1wiLFxuICAgIGRlZmF1bHRWYWx1ZTogW1wiQWxsXCJdLFxuICAgIGhlbHA6IFwiY2F0ZWdvcmllcyBvZiBkYXRhc2V0cyB0byByZXRyaWV2ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwiY2F0ZWdvcmllc1wiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5jb25zdCBwaXBlbGluZSA9IHV0aWwucHJvbWlzaWZ5KHN0cmVhbS5waXBlbGluZSlcblxuYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVPcGVuRGF0YShkYXRhRGlyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgb3B0aW9ucy5jYXRlZ29yaWVzLm1hcCgoZGF0YXNldE5hbWU6IHN0cmluZykgPT5cbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgICAoRW5hYmxlZERhdGFzZXRzIGFzIGFueSBhcyB7IFtuYW1lOiBzdHJpbmddOiBFbmFibGVkRGF0YXNldHMgfSlbXG4gICAgICAgIGRhdGFzZXROYW1lXG4gICAgICBdLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgYFVua25vd24gbmFtZSBvZiBkYXRhc2V0OiAke2RhdGFzZXROYW1lfWAsXG4gICAgKSxcbiAgKVxuICBjb25zdCBlbmFibGVkRGF0YXNldHMgPSBvcHRpb25zLmNhdGVnb3JpZXMucmVkdWNlKFxuICAgIChlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cywgZGF0YXNldE5hbWU6IHN0cmluZyk6IEVuYWJsZWREYXRhc2V0cyA9PlxuICAgICAgZW5hYmxlZERhdGFzZXRzIHxcbiAgICAgIChFbmFibGVkRGF0YXNldHMgYXMgYW55IGFzIHsgW25hbWU6IHN0cmluZ106IEVuYWJsZWREYXRhc2V0cyB9KVtcbiAgICAgICAgZGF0YXNldE5hbWVcbiAgICAgIF0sXG4gICAgRW5hYmxlZERhdGFzZXRzLk5vbmUsXG4gIClcblxuICBjb25zdCBjaG9vc2VuRGF0YXNldHMgPSBbXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzXG4gICAgICA/IGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXNcbiAgICAgIDogW10pLFxuICAgIC4uLihlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWdlbmRhcyA/IGRhdGFzZXRzLmFnZW5kYXMgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVuZGVtZW50c1xuICAgICAgPyBkYXRhc2V0cy5hbWVuZGVtZW50c1xuICAgICAgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzXG4gICAgICA/IGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnNcbiAgICAgIDogW10pLFxuICAgIC4uLihlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMgPyBkYXRhc2V0cy5zY3J1dGlucyA6IFtdKSxcbiAgXVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvb3NlbkRhdGFzZXRzKSB7XG4gICAgY29uc3QgemlwRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YURpciwgYCR7ZGF0YXNldC5maWxlbmFtZX0uemlwYClcbiAgICBpZiAob3B0aW9ucy5mZXRjaCkge1xuICAgICAgLy8gRmV0Y2ggJiBzYXZlIFpJUCBmaWxlLlxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyAke2RhdGFzZXQudGl0bGV9OiAke2RhdGFzZXQuZmlsZW5hbWV9LnppcGApXG4gICAgICB9XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGRhdGFzZXQudXJsKVxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlLnN0YXR1cywgcmVzcG9uc2Uuc3RhdHVzVGV4dClcbiAgICAgICAgY29uc29sZS5lcnJvcihhd2FpdCByZXNwb25zZS50ZXh0KCkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmV0Y2ggZmFpbGVkOiAke2RhdGFzZXQudXJsfWApXG4gICAgICB9XG4gICAgICBhd2FpdCBwaXBlbGluZShyZXNwb25zZS5ib2R5ISwgZnMuY3JlYXRlV3JpdGVTdHJlYW0oemlwRmlsZVBhdGgpKVxuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhgVW56aXBwaW5nICR7ZGF0YXNldC50aXRsZX06ICR7ZGF0YXNldC5maWxlbmFtZX0uemlwYClcbiAgICB9XG4gICAgY29uc3QgZGF0YURpck9yRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICBmcy5yZW1vdmVTeW5jKGRhdGFEaXJPckZpbGVQYXRoKVxuICAgIGNvbnN0IHppcCA9IG5ldyBTdHJlYW1aaXAoe1xuICAgICAgZmlsZTogemlwRmlsZVBhdGgsXG4gICAgICBzdG9yZUVudHJpZXM6IHRydWUsXG4gICAgfSlcbiAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB6aXAub24oXCJyZWFkeVwiLCAoKSA9PiB7XG4gICAgICAgIC8vIFBhdGNoIGZvbGxvd2luZyBsaW5lLCBiZWNhdXNlIG9mIHdyb25nIFR5cGVTY3JpcHQgZGVmaW5pdGlvbiBmb3IgemlwLmV4dHJhY3QuXG4gICAgICAgIC8vIHppcC5leHRyYWN0KG51bGwsIGRhdGFEaXIsIChlcnI6IGFueSwgX2NvdW50OiBudW1iZXIpID0+IHtcbiAgICAgICAgemlwLmV4dHJhY3QobnVsbCEsIGRhdGFEaXIsIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHppcC5jbG9zZSgpXG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmVqZWN0KGVycilcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIGlmIChkYXRhc2V0LnJlcGFpclppcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBSZXBhaXJpbmcgJHtkYXRhc2V0LnRpdGxlfTogJHtkYXRhc2V0LmZpbGVuYW1lfWApXG4gICAgICB9XG4gICAgICBkYXRhc2V0LnJlcGFpclppcChkYXRhc2V0LCBkYXRhRGlyKVxuICAgIH1cbiAgICAvLyBSZWluZGVudCBKU09OIGZpbGUuXG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coYFJlaWRlbnRpbmcgJHtkYXRhc2V0LnRpdGxlfTogJHtkYXRhc2V0LmZpbGVuYW1lfWApXG4gICAgfVxuICAgIGlmIChmcy5zdGF0U3luYyhkYXRhRGlyT3JGaWxlUGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgZm9yIChjb25zdCBkYXRhRmlsZVNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFEaXJPckZpbGVQYXRoKSkge1xuICAgICAgICBjb25zdCBkYXRhRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YURpck9yRmlsZVBhdGgsIC4uLmRhdGFGaWxlU3BsaXRQYXRoKVxuICAgICAgICBpZiAoZGF0YUZpbGVQYXRoLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgIGZzLnJlYWRGaWxlU3luYyhkYXRhRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmLThcIiB9KSxcbiAgICAgICAgICApXG4gICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhkYXRhRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKFxuICAgICAgICBmcy5yZWFkRmlsZVN5bmMoZGF0YURpck9yRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmLThcIiB9KSxcbiAgICAgIClcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZGF0YURpck9yRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpKVxuICAgIH1cbiAgfVxufVxuXG5yZXRyaWV2ZU9wZW5EYXRhKG9wdGlvbnMuZGF0YURpcikuY2F0Y2goKGVycm9yKSA9PiB7XG4gIGNvbnNvbGUubG9nKGVycm9yKVxuICBwcm9jZXNzLmV4aXQoMSlcbn0pXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLGtCQUFrQixHQUFHLENBQ3pCO0VBQ0VDLEtBQUssRUFBRSxHQURUO0VBRUVDLElBQUksRUFBRSxzREFGUjtFQUdFQyxJQUFJLEVBQUUsT0FIUjtFQUlFQyxJQUFJLEVBQUVDO0FBSlIsQ0FEeUIsRUFPekI7RUFDRUosS0FBSyxFQUFFLEdBRFQ7RUFFRUssWUFBWSxFQUFFLENBQUMsS0FBRCxDQUZoQjtFQUdFSixJQUFJLEVBQUUsb0NBSFI7RUFJRUssUUFBUSxFQUFFLElBSlo7RUFLRUosSUFBSSxFQUFFLFlBTFI7RUFNRUMsSUFBSSxFQUFFSTtBQU5SLENBUHlCLEVBZXpCO0VBQ0VQLEtBQUssRUFBRSxHQURUO0VBRUVDLElBQUksRUFBRSxvQkFG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
|
|
326
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJtdWx0aXBsZSIsIlN0cmluZyIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwicGlwZWxpbmUiLCJ1dGlsIiwicHJvbWlzaWZ5Iiwic3RyZWFtIiwicmV0cmlldmVPcGVuRGF0YSIsImRhdGFEaXIiLCJjYXRlZ29yaWVzIiwibWFwIiwiZGF0YXNldE5hbWUiLCJhc3NlcnQiLCJub3RTdHJpY3RFcXVhbCIsIkVuYWJsZWREYXRhc2V0cyIsInVuZGVmaW5lZCIsImVuYWJsZWREYXRhc2V0cyIsInJlZHVjZSIsIk5vbmUiLCJjaG9vc2VuRGF0YXNldHMiLCJBY3RldXJzRXRPcmdhbmVzIiwiZGF0YXNldHMiLCJhY3RldXJzRXRPcmdhbmVzIiwiQWdlbmRhcyIsImFnZW5kYXMiLCJBbWVuZGVtZW50cyIsImFtZW5kZW1lbnRzIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJTY3J1dGlucyIsInNjcnV0aW5zIiwiZGF0YXNldCIsInppcEZpbGVQYXRoIiwicGF0aCIsImpvaW4iLCJmaWxlbmFtZSIsImZldGNoIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsInRpdGxlIiwidXJsIiwicmVzcG9uc2UiLCJvayIsImVycm9yIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInRleHQiLCJFcnJvciIsImJvZHkiLCJmcyIsImNyZWF0ZVdyaXRlU3RyZWFtIiwiZGF0YURpck9yRmlsZVBhdGgiLCJyZW1vdmVTeW5jIiwiemlwIiwiU3RyZWFtWmlwIiwiZmlsZSIsInN0b3JlRW50cmllcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwib24iLCJleHRyYWN0IiwiZXJyIiwiY2xvc2UiLCJyZXBhaXJaaXAiLCJzdGF0U3luYyIsImlzRGlyZWN0b3J5Iiwid2Fsa0RpciIsImRhdGFGaWxlU3BsaXRQYXRoIiwiZGF0YUZpbGVQYXRoIiwiZW5kc1dpdGgiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJ3cml0ZUZpbGVTeW5jIiwic3RyaW5naWZ5IiwicHJvY2VzcyIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV9vcGVuX2RhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBzdHJlYW0gZnJvbSBcInN0cmVhbVwiXG5pbXBvcnQgU3RyZWFtWmlwIGZyb20gXCJub2RlLXN0cmVhbS16aXBcIlxuaW1wb3J0IHV0aWwgZnJvbSBcInV0aWxcIlxuXG5pbXBvcnQgeyBkYXRhc2V0cywgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiZlwiLFxuICAgIGhlbHA6IFwiZmV0Y2ggZGF0YXNldHMgaW5zdGVhZCBvZiByZXRyaWV2aW5nIHRoZW0gZnJvbSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZmV0Y2hcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwia1wiLFxuICAgIGRlZmF1bHRWYWx1ZTogW1wiQWxsXCJdLFxuICAgIGhlbHA6IFwiY2F0ZWdvcmllcyBvZiBkYXRhc2V0cyB0byByZXRyaWV2ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwiY2F0ZWdvcmllc1wiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5jb25zdCBwaXBlbGluZSA9IHV0aWwucHJvbWlzaWZ5KHN0cmVhbS5waXBlbGluZSlcblxuYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVPcGVuRGF0YShkYXRhRGlyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgb3B0aW9ucy5jYXRlZ29yaWVzLm1hcCgoZGF0YXNldE5hbWU6IHN0cmluZykgPT5cbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgICAoRW5hYmxlZERhdGFzZXRzIGFzIGFueSBhcyB7IFtuYW1lOiBzdHJpbmddOiBFbmFibGVkRGF0YXNldHMgfSlbXG4gICAgICAgIGRhdGFzZXROYW1lXG4gICAgICBdLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgYFVua25vd24gbmFtZSBvZiBkYXRhc2V0OiAke2RhdGFzZXROYW1lfWAsXG4gICAgKSxcbiAgKVxuICBjb25zdCBlbmFibGVkRGF0YXNldHMgPSBvcHRpb25zLmNhdGVnb3JpZXMucmVkdWNlKFxuICAgIChlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cywgZGF0YXNldE5hbWU6IHN0cmluZyk6IEVuYWJsZWREYXRhc2V0cyA9PlxuICAgICAgZW5hYmxlZERhdGFzZXRzIHxcbiAgICAgIChFbmFibGVkRGF0YXNldHMgYXMgYW55IGFzIHsgW25hbWU6IHN0cmluZ106IEVuYWJsZWREYXRhc2V0cyB9KVtcbiAgICAgICAgZGF0YXNldE5hbWVcbiAgICAgIF0sXG4gICAgRW5hYmxlZERhdGFzZXRzLk5vbmUsXG4gIClcblxuICBjb25zdCBjaG9vc2VuRGF0YXNldHMgPSBbXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzXG4gICAgICA/IGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXNcbiAgICAgIDogW10pLFxuICAgIC4uLihlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWdlbmRhcyA/IGRhdGFzZXRzLmFnZW5kYXMgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVuZGVtZW50c1xuICAgICAgPyBkYXRhc2V0cy5hbWVuZGVtZW50c1xuICAgICAgOiBbXSksXG4gICAgLi4uKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzXG4gICAgICA/IGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnNcbiAgICAgIDogW10pLFxuICAgIC4uLihlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMgPyBkYXRhc2V0cy5zY3J1dGlucyA6IFtdKSxcbiAgXVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvb3NlbkRhdGFzZXRzKSB7XG4gICAgY29uc3QgemlwRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YURpciwgYCR7ZGF0YXNldC5maWxlbmFtZX0uemlwYClcbiAgICBpZiAob3B0aW9ucy5mZXRjaCkge1xuICAgICAgLy8gRmV0Y2ggJiBzYXZlIFpJUCBmaWxlLlxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyAke2RhdGFzZXQudGl0bGV9OiAke2RhdGFzZXQuZmlsZW5hbWV9LnppcGApXG4gICAgICB9XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGRhdGFzZXQudXJsKVxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlLnN0YXR1cywgcmVzcG9uc2Uuc3RhdHVzVGV4dClcbiAgICAgICAgY29uc29sZS5lcnJvcihhd2FpdCByZXNwb25zZS50ZXh0KCkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmV0Y2ggZmFpbGVkOiAke2RhdGFzZXQudXJsfWApXG4gICAgICB9XG4gICAgICBhd2FpdCBwaXBlbGluZShyZXNwb25zZS5ib2R5ISwgZnMuY3JlYXRlV3JpdGVTdHJlYW0oemlwRmlsZVBhdGgpKVxuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhgVW56aXBwaW5nICR7ZGF0YXNldC50aXRsZX06ICR7ZGF0YXNldC5maWxlbmFtZX0uemlwYClcbiAgICB9XG4gICAgY29uc3QgZGF0YURpck9yRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICBmcy5yZW1vdmVTeW5jKGRhdGFEaXJPckZpbGVQYXRoKVxuICAgIGNvbnN0IHppcCA9IG5ldyBTdHJlYW1aaXAoe1xuICAgICAgZmlsZTogemlwRmlsZVBhdGgsXG4gICAgICBzdG9yZUVudHJpZXM6IHRydWUsXG4gICAgfSlcbiAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB6aXAub24oXCJyZWFkeVwiLCAoKSA9PiB7XG4gICAgICAgIC8vIFBhdGNoIGZvbGxvd2luZyBsaW5lLCBiZWNhdXNlIG9mIHdyb25nIFR5cGVTY3JpcHQgZGVmaW5pdGlvbiBmb3IgemlwLmV4dHJhY3QuXG4gICAgICAgIC8vIHppcC5leHRyYWN0KG51bGwsIGRhdGFEaXIsIChlcnI6IGFueSwgX2NvdW50OiBudW1iZXIpID0+IHtcbiAgICAgICAgemlwLmV4dHJhY3QobnVsbCEsIGRhdGFEaXIsIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHppcC5jbG9zZSgpXG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmVqZWN0KGVycilcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIGlmIChkYXRhc2V0LnJlcGFpclppcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBSZXBhaXJpbmcgJHtkYXRhc2V0LnRpdGxlfTogJHtkYXRhc2V0LmZpbGVuYW1lfWApXG4gICAgICB9XG4gICAgICBkYXRhc2V0LnJlcGFpclppcChkYXRhc2V0LCBkYXRhRGlyKVxuICAgIH1cbiAgICAvLyBSZWluZGVudCBKU09OIGZpbGUuXG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coYFJlaWRlbnRpbmcgJHtkYXRhc2V0LnRpdGxlfTogJHtkYXRhc2V0LmZpbGVuYW1lfWApXG4gICAgfVxuICAgIGlmIChmcy5zdGF0U3luYyhkYXRhRGlyT3JGaWxlUGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgZm9yIChjb25zdCBkYXRhRmlsZVNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFEaXJPckZpbGVQYXRoKSkge1xuICAgICAgICBjb25zdCBkYXRhRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YURpck9yRmlsZVBhdGgsIC4uLmRhdGFGaWxlU3BsaXRQYXRoKVxuICAgICAgICBpZiAoZGF0YUZpbGVQYXRoLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgIGZzLnJlYWRGaWxlU3luYyhkYXRhRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmLThcIiB9KSxcbiAgICAgICAgICApXG4gICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhkYXRhRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKFxuICAgICAgICBmcy5yZWFkRmlsZVN5bmMoZGF0YURpck9yRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmLThcIiB9KSxcbiAgICAgIClcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZGF0YURpck9yRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpKVxuICAgIH1cbiAgfVxufVxuXG5yZXRyaWV2ZU9wZW5EYXRhKG9wdGlvbnMuZGF0YURpcikuY2F0Y2goKGVycm9yKSA9PiB7XG4gIGNvbnNvbGUubG9nKGVycm9yKVxuICBwcm9jZXNzLmV4aXQoMSlcbn0pXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7K0NBVEEsb0o7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV0EsSUFBTUEsa0JBQWtCLEdBQUcsQ0FDekI7RUFDRUMsS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLHNEQUZSO0VBR0VDLElBQUksRUFBRSxPQUhSO0VBSUVDLElBQUksRUFBRUM7QUFKUixDQUR5QixFQU96QjtFQUNFSixLQUFLLEVBQUUsR0FEVDtFQUVFSyxZQUFZLEVBQUUsQ0FBQyxLQUFELENBRmhCO0VBR0VKLElBQUksRUFBRSxvQ0FIUjtFQUlFSyxRQUFRLEVBQUUsSUFKWjtFQUtFSixJQUFJLEVBQUUsWUFMUjtFQU1FQyxJQUFJLEVBQUVJO0FBTlIsQ0FQeUIsRUFlekI7RUFDRVAsS0FB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
|
|
@@ -1,12 +1,32 @@
|
|
|
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");
|
|
6
8
|
|
|
7
9
|
require("core-js/modules/es.array.is-array.js");
|
|
8
10
|
|
|
9
|
-
require("
|
|
11
|
+
require("core-js/modules/es.symbol.to-string-tag.js");
|
|
12
|
+
|
|
13
|
+
require("core-js/modules/es.json.to-string-tag.js");
|
|
14
|
+
|
|
15
|
+
require("core-js/modules/es.math.to-string-tag.js");
|
|
16
|
+
|
|
17
|
+
require("core-js/modules/es.object.define-property.js");
|
|
18
|
+
|
|
19
|
+
require("core-js/modules/es.object.create.js");
|
|
20
|
+
|
|
21
|
+
require("core-js/modules/es.object.get-prototype-of.js");
|
|
22
|
+
|
|
23
|
+
require("core-js/modules/es.array.for-each.js");
|
|
24
|
+
|
|
25
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
26
|
+
|
|
27
|
+
require("core-js/modules/es.object.set-prototype-of.js");
|
|
28
|
+
|
|
29
|
+
require("core-js/modules/es.array.reverse.js");
|
|
10
30
|
|
|
11
31
|
require("core-js/modules/es.symbol.js");
|
|
12
32
|
|
|
@@ -56,6 +76,8 @@ var _parsers = require("../parsers");
|
|
|
56
76
|
|
|
57
77
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
58
78
|
|
|
79
|
+
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; }
|
|
80
|
+
|
|
59
81
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
60
82
|
|
|
61
83
|
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."); }
|
|
@@ -171,10 +193,10 @@ function main() {
|
|
|
171
193
|
}
|
|
172
194
|
|
|
173
195
|
function _main() {
|
|
174
|
-
_main = _asyncToGenerator( /*#__PURE__*/
|
|
196
|
+
_main = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
175
197
|
var gitGroupUrl, amendementsDir, cacheDir, _i, _arr, etat, url, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step$value, amendementUrlPath, amendement, amendementUrlPathSplitted, amendementFilePath, existingAmendement;
|
|
176
198
|
|
|
177
|
-
return
|
|
199
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
178
200
|
while (1) {
|
|
179
201
|
switch (_context.prev = _context.next) {
|
|
180
202
|
case 0:
|
|
@@ -338,4 +360,4 @@ main()["catch"](function (error) {
|
|
|
338
360
|
console.log(error);
|
|
339
361
|
process.exit(1);
|
|
340
362
|
});
|
|
341
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJyZW1vdGVzIiwiZXJyb3IiLCJjb21taXQiLCJyZW1vdGUiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwiY29uc29sZSIsIm91dHB1dCIsIm1haW4iLCJnaXRHcm91cFVybCIsImNsb25lIiwidHJpbSIsInJlcGxhY2UiLCJ1bmRlZmluZWQiLCJkYXRhRGlyIiwiYW1lbmRlbWVudHNEaXIiLCJwYXRoIiwiam9pbiIsImZzIiwiZW5zdXJlRGlyIiwiY2FjaGVEaXIiLCJldGF0IiwidXJsIiwibGVnaXNsYXR1cmUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJpdGVyUmVjaGVyY2hlUmF3QW1lbmRlbWVudHMiLCJpbmNyZW1lbnRhbCIsInNpbGVudCIsInZlcmJvc2UiLCJhbWVuZGVtZW50VXJsUGF0aCIsImFtZW5kZW1lbnQiLCJhbWVuZGVtZW50VXJsUGF0aFNwbGl0dGVkIiwic3BsaXQiLCJhbWVuZGVtZW50RmlsZVBhdGgiLCJzbGljZSIsImRpcm5hbWUiLCJwYXRoRXhpc3RzIiwicmVhZEpzb24iLCJleGlzdGluZ0FtZW5kZW1lbnQiLCJkZWVwRXF1YWwiLCJsb2ciLCJ3cml0ZUpzb24iLCJzcGFjZXMiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfcGVuZGluZ19hbWVuZG1lbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGRlZXBFcXVhbCBmcm9tIFwiZGVlcC1lcXVhbFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgY29tbWl0IH0gZnJvbSBcIi4uL2dpdFwiXG5pbXBvcnQgeyBpdGVyUmVjaGVyY2hlUmF3QW1lbmRlbWVudHMgfSBmcm9tIFwiLi4vcGFyc2Vyc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcIkNcIixcbiAgICBoZWxwOiBcImNsb25lIHJlcG9zaXRvcmllcyBmcm9tIGdpdmVuIGdyb3VwIChvciBvcmdhbml6YXRpb24pIGdpdCBVUkxcIixcbiAgICBuYW1lOiBcImNsb25lXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IGNsZWFuIGZpbGVzXCIsXG4gICAgbmFtZTogXCJjb21taXRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiaVwiLFxuICAgIGhlbHA6IFwiaW5jcmVtZW50YWwgbW9kZTogcmV0cmlldmUgb25seSBhbWVuZG1lbnRzIHdob3NlIHBvc2l0aW9uIGluIHNlYXJjaCBoYXMgY2hhbmdlZFwiLFxuICAgIG5hbWU6IFwiaW5jcmVtZW50YWxcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwibFwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCIxNVwiLFxuICAgIG5hbWU6IFwibGVnaXNsYXR1cmVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJyXCIsXG4gICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcInJlbW90ZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInZcIixcbiAgICBoZWxwOiBcInZlcmJvc2UgbG9nc1wiLFxuICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgIGhlbHA6IFwiZGlyZWN0b3J5IGNvbnRhaW5pbmcgQXNzZW1ibMOpZSBvcGVuIGRhdGEgZmlsZXNcIixcbiAgICBuYW1lOiBcImRhdGFEaXJcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuZnVuY3Rpb24gY29tbWl0QW5kUHVzaChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBvcHRpb25zOiBhbnksXG4gIHJlbW90ZXM/OiBzdHJpbmdbXSxcbik6IGJvb2xlYW4ge1xuICBsZXQgZXJyb3IgPSBmYWxzZVxuICBpZiAob3B0aW9ucy5jb21taXQpIHtcbiAgICBjb21taXQocmVwb3NpdG9yeURpciwgXCJOb3V2ZWxsZSBtb2lzc29uXCIpXG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IGdpdEdyb3VwVXJsID0gb3B0aW9ucy5jbG9uZVxuICAgID8gb3B0aW9ucy5jbG9uZS50cmltKCkucmVwbGFjZSgvXFwvKyQvLCBcIlwiKVxuICAgIDogdW5kZWZpbmVkXG4gIGlmIChnaXRHcm91cFVybCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjbG9uZSAke2dpdEdyb3VwVXJsfS9BbWVuZGVtZW50c19lbl9hdHRlbnRlLmdpdGAsIHtcbiAgICAgIGN3ZDogb3B0aW9ucy5kYXRhRGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgYW1lbmRlbWVudHNEaXIgPSBwYXRoLmpvaW4ob3B0aW9ucy5kYXRhRGlyLCBcIkFtZW5kZW1lbnRzX2VuX2F0dGVudGVcIilcbiAgYXdhaXQgZnMuZW5zdXJlRGlyKGFtZW5kZW1lbnRzRGlyKVxuICBjb25zdCBjYWNoZURpciA9IHBhdGguam9pbihvcHRpb25zLmRhdGFEaXIsIFwiQW1lbmRlbWVudHNfZW5fYXR0ZW50ZV9jYWNoZVwiKVxuICBmb3IgKGNvbnN0IGV0YXQgb2YgW1wiRW4gcmVjZXZhYmlsaXTDqVwiLCBcIkVuIHRyYWl0ZW1lbnRcIl0pIHtcbiAgICBjb25zdCB1cmwgPSBgaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9keW4vJHtcbiAgICAgIG9wdGlvbnMubGVnaXNsYXR1cmVcbiAgICB9L2FtZW5kZW1lbnRzP2V0YXQ9JHtlbmNvZGVVUklDb21wb25lbnQoZXRhdCl9YFxuICAgIGZvciBhd2FpdCAoY29uc3QgW1xuICAgICAgYW1lbmRlbWVudFVybFBhdGgsXG4gICAgICBhbWVuZGVtZW50LFxuICAgIF0gb2YgaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzKFxuICAgICAgY2FjaGVEaXIsXG4gICAgICB1cmwsXG4gICAgICBvcHRpb25zLmluY3JlbWVudGFsLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICB7IHNpbGVudDogb3B0aW9ucy5zaWxlbnQsIHZlcmJvc2U6IG9wdGlvbnMudmVyYm9zZSB9LFxuICAgICkpIHtcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWQgPSBhbWVuZGVtZW50VXJsUGF0aCEuc3BsaXQoXCIvXCIpXG4gICAgICBjb25zdCBhbWVuZGVtZW50RmlsZVBhdGggPVxuICAgICAgICBwYXRoLmpvaW4oYW1lbmRlbWVudHNEaXIsIC4uLmFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWQuc2xpY2UoMikpICtcbiAgICAgICAgXCIuanNvblwiXG4gICAgICBhd2FpdCBmcy5lbnN1cmVEaXIocGF0aC5kaXJuYW1lKGFtZW5kZW1lbnRGaWxlUGF0aCkpXG4gICAgICBjb25zdCBleGlzdGluZ0FtZW5kZW1lbnQgPSAoYXdhaXQgZnMucGF0aEV4aXN0cyhhbWVuZGVtZW50RmlsZVBhdGgpKVxuICAgICAgICA/IGF3YWl0IGZzLnJlYWRKc29uKGFtZW5kZW1lbnRGaWxlUGF0aClcbiAgICAgICAgOiBudWxsXG4gICAgICBpZiAoIWRlZXBFcXVhbChhbWVuZGVtZW50LCBleGlzdGluZ0FtZW5kZW1lbnQpKSB7XG4gICAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdBbWVuZGVtZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgQWRkaW5nIGFtZW5kZW1lbnQgSlNPTjogJHthbWVuZGVtZW50RmlsZVBhdGh94oCmYClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFVwZGF0aW5nIGFtZW5kZW1lbnQgSlNPTjogJHthbWVuZGVtZW50RmlsZVBhdGh94oCmYClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgZnMud3JpdGVKc29uKGFtZW5kZW1lbnRGaWxlUGF0aCwgYW1lbmRlbWVudCwgeyBzcGFjZXM6IDIgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoY29tbWl0QW5kUHVzaChhbWVuZGVtZW50c0Rpciwgb3B0aW9ucywgb3B0aW9ucy5yZW1vdGUpKSB7XG4gICAgcHJvY2Vzcy5leGl0KDIpXG4gIH1cbn1cblxubWFpbigpLmNhdGNoKChlcnJvcikgPT4ge1xuICBjb25zb2xlLmxvZyhlcnJvcilcbiAgcHJvY2Vzcy5leGl0KDEpXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLGtCQUFrQixHQUFHLENBQ3pCO0VBQ0VDLEtBQUssRUFBRSxHQURUO0VBRUVDLElBQUksRUFBRSwrREFGUjtFQUdFQyxJQUFJLEVBQUUsT0FIUjtFQUlFQyxJQUFJLEVBQUVDO0FBSlIsQ0FEeUIsRUFPekI7RUFDRUosS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLG9CQUZSO0VBR0VDLElBQUksRUFBRSxRQUhSO0VBSUVDLElBQUksRUFBRUU7QUFKUixDQVB5QixFQWF6QjtFQUNFTCxLQUFLLEVBQUUsR0FEVDtFQUVFQyxJQUFJLEVBQUUsaUZBRlI7RUFHRUMsSUFBSSxFQUFFLGFBSFI7RUFJRUMsSUFBSSxFQUFFRTtBQUpSLENBYnlCLEVBbUJ6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
|
|
363
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJyZW1vdGVzIiwiZXJyb3IiLCJjb21taXQiLCJyZW1vdGUiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwiY29uc29sZSIsIm91dHB1dCIsIm1haW4iLCJnaXRHcm91cFVybCIsImNsb25lIiwidHJpbSIsInJlcGxhY2UiLCJ1bmRlZmluZWQiLCJkYXRhRGlyIiwiYW1lbmRlbWVudHNEaXIiLCJwYXRoIiwiam9pbiIsImZzIiwiZW5zdXJlRGlyIiwiY2FjaGVEaXIiLCJldGF0IiwidXJsIiwibGVnaXNsYXR1cmUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJpdGVyUmVjaGVyY2hlUmF3QW1lbmRlbWVudHMiLCJpbmNyZW1lbnRhbCIsInNpbGVudCIsInZlcmJvc2UiLCJhbWVuZGVtZW50VXJsUGF0aCIsImFtZW5kZW1lbnQiLCJhbWVuZGVtZW50VXJsUGF0aFNwbGl0dGVkIiwic3BsaXQiLCJhbWVuZGVtZW50RmlsZVBhdGgiLCJzbGljZSIsImRpcm5hbWUiLCJwYXRoRXhpc3RzIiwicmVhZEpzb24iLCJleGlzdGluZ0FtZW5kZW1lbnQiLCJkZWVwRXF1YWwiLCJsb2ciLCJ3cml0ZUpzb24iLCJzcGFjZXMiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfcGVuZGluZ19hbWVuZG1lbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGRlZXBFcXVhbCBmcm9tIFwiZGVlcC1lcXVhbFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgY29tbWl0IH0gZnJvbSBcIi4uL2dpdFwiXG5pbXBvcnQgeyBpdGVyUmVjaGVyY2hlUmF3QW1lbmRlbWVudHMgfSBmcm9tIFwiLi4vcGFyc2Vyc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcIkNcIixcbiAgICBoZWxwOiBcImNsb25lIHJlcG9zaXRvcmllcyBmcm9tIGdpdmVuIGdyb3VwIChvciBvcmdhbml6YXRpb24pIGdpdCBVUkxcIixcbiAgICBuYW1lOiBcImNsb25lXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IGNsZWFuIGZpbGVzXCIsXG4gICAgbmFtZTogXCJjb21taXRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiaVwiLFxuICAgIGhlbHA6IFwiaW5jcmVtZW50YWwgbW9kZTogcmV0cmlldmUgb25seSBhbWVuZG1lbnRzIHdob3NlIHBvc2l0aW9uIGluIHNlYXJjaCBoYXMgY2hhbmdlZFwiLFxuICAgIG5hbWU6IFwiaW5jcmVtZW50YWxcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwibFwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCIxNVwiLFxuICAgIG5hbWU6IFwibGVnaXNsYXR1cmVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJyXCIsXG4gICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcInJlbW90ZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInZcIixcbiAgICBoZWxwOiBcInZlcmJvc2UgbG9nc1wiLFxuICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgIGhlbHA6IFwiZGlyZWN0b3J5IGNvbnRhaW5pbmcgQXNzZW1ibMOpZSBvcGVuIGRhdGEgZmlsZXNcIixcbiAgICBuYW1lOiBcImRhdGFEaXJcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuZnVuY3Rpb24gY29tbWl0QW5kUHVzaChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBvcHRpb25zOiBhbnksXG4gIHJlbW90ZXM/OiBzdHJpbmdbXSxcbik6IGJvb2xlYW4ge1xuICBsZXQgZXJyb3IgPSBmYWxzZVxuICBpZiAob3B0aW9ucy5jb21taXQpIHtcbiAgICBjb21taXQocmVwb3NpdG9yeURpciwgXCJOb3V2ZWxsZSBtb2lzc29uXCIpXG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IGdpdEdyb3VwVXJsID0gb3B0aW9ucy5jbG9uZVxuICAgID8gb3B0aW9ucy5jbG9uZS50cmltKCkucmVwbGFjZSgvXFwvKyQvLCBcIlwiKVxuICAgIDogdW5kZWZpbmVkXG4gIGlmIChnaXRHcm91cFVybCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjbG9uZSAke2dpdEdyb3VwVXJsfS9BbWVuZGVtZW50c19lbl9hdHRlbnRlLmdpdGAsIHtcbiAgICAgIGN3ZDogb3B0aW9ucy5kYXRhRGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgYW1lbmRlbWVudHNEaXIgPSBwYXRoLmpvaW4ob3B0aW9ucy5kYXRhRGlyLCBcIkFtZW5kZW1lbnRzX2VuX2F0dGVudGVcIilcbiAgYXdhaXQgZnMuZW5zdXJlRGlyKGFtZW5kZW1lbnRzRGlyKVxuICBjb25zdCBjYWNoZURpciA9IHBhdGguam9pbihvcHRpb25zLmRhdGFEaXIsIFwiQW1lbmRlbWVudHNfZW5fYXR0ZW50ZV9jYWNoZVwiKVxuICBmb3IgKGNvbnN0IGV0YXQgb2YgW1wiRW4gcmVjZXZhYmlsaXTDqVwiLCBcIkVuIHRyYWl0ZW1lbnRcIl0pIHtcbiAgICBjb25zdCB1cmwgPSBgaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9keW4vJHtcbiAgICAgIG9wdGlvbnMubGVnaXNsYXR1cmVcbiAgICB9L2FtZW5kZW1lbnRzP2V0YXQ9JHtlbmNvZGVVUklDb21wb25lbnQoZXRhdCl9YFxuICAgIGZvciBhd2FpdCAoY29uc3QgW1xuICAgICAgYW1lbmRlbWVudFVybFBhdGgsXG4gICAgICBhbWVuZGVtZW50LFxuICAgIF0gb2YgaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzKFxuICAgICAgY2FjaGVEaXIsXG4gICAgICB1cmwsXG4gICAgICBvcHRpb25zLmluY3JlbWVudGFsLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICB7IHNpbGVudDogb3B0aW9ucy5zaWxlbnQsIHZlcmJvc2U6IG9wdGlvbnMudmVyYm9zZSB9LFxuICAgICkpIHtcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWQgPSBhbWVuZGVtZW50VXJsUGF0aCEuc3BsaXQoXCIvXCIpXG4gICAgICBjb25zdCBhbWVuZGVtZW50RmlsZVBhdGggPVxuICAgICAgICBwYXRoLmpvaW4oYW1lbmRlbWVudHNEaXIsIC4uLmFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWQuc2xpY2UoMikpICtcbiAgICAgICAgXCIuanNvblwiXG4gICAgICBhd2FpdCBmcy5lbnN1cmVEaXIocGF0aC5kaXJuYW1lKGFtZW5kZW1lbnRGaWxlUGF0aCkpXG4gICAgICBjb25zdCBleGlzdGluZ0FtZW5kZW1lbnQgPSAoYXdhaXQgZnMucGF0aEV4aXN0cyhhbWVuZGVtZW50RmlsZVBhdGgpKVxuICAgICAgICA/IGF3YWl0IGZzLnJlYWRKc29uKGFtZW5kZW1lbnRGaWxlUGF0aClcbiAgICAgICAgOiBudWxsXG4gICAgICBpZiAoIWRlZXBFcXVhbChhbWVuZGVtZW50LCBleGlzdGluZ0FtZW5kZW1lbnQpKSB7XG4gICAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdBbWVuZGVtZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgQWRkaW5nIGFtZW5kZW1lbnQgSlNPTjogJHthbWVuZGVtZW50RmlsZVBhdGh94oCmYClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFVwZGF0aW5nIGFtZW5kZW1lbnQgSlNPTjogJHthbWVuZGVtZW50RmlsZVBhdGh94oCmYClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgZnMud3JpdGVKc29uKGFtZW5kZW1lbnRGaWxlUGF0aCwgYW1lbmRlbWVudCwgeyBzcGFjZXM6IDIgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoY29tbWl0QW5kUHVzaChhbWVuZGVtZW50c0Rpciwgb3B0aW9ucywgb3B0aW9ucy5yZW1vdGUpKSB7XG4gICAgcHJvY2Vzcy5leGl0KDIpXG4gIH1cbn1cblxubWFpbigpLmNhdGNoKChlcnJvcikgPT4ge1xuICBjb25zb2xlLmxvZyhlcnJvcilcbiAgcHJvY2Vzcy5leGl0KDEpXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOzs7OytDQU5BLG9KOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBLElBQU1BLGtCQUFrQixHQUFHLENBQ3pCO0VBQ0VDLEtBQUssRUFBRSxHQURUO0VBRUVDLElBQUksRUFBRSwrREFGUjtFQUdFQyxJQUFJLEVBQUUsT0FIUjtFQUlFQyxJQUFJLEVBQUVDO0FBSlIsQ0FEeUIsRUFPekI7RUFDRUosS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLG9CQUZSO0VBR0VDLElBQUksRUFBRSxRQUhSO0VBSUVDLElBQUksRUFBRUU7QUFKUixDQVB5QixFQWF6QjtFQUNFTCxLQUFLLEVBQUUsR0FEVDtFQUVFQyxJQUFJLEVBQUUsaUZBRlI7RUFHRUMsSUFBSSxFQUFFLGFBSFI7RUFJ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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.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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsIkJvb2xlYW4iLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJjb21taXQiLCJyZW1vdGVzIiwiZXJyb3IiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwic3RkZXJyIiwidGVzdCIsInN0ZG91dCIsImNvbnNvbGUiLCJvdXRwdXQiLCJyZW1vdGUiLCJyZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycyIsImRhdGFEaXIiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkVuYWJsZWREYXRhc2V0cyIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJsZWdpc2xhdHVyZSIsImFjdGV1ckJ5VWlkIiwic2VuYXRldXJzIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwiYWN0ZXVyIiwibWFuZGF0cyIsIm1hbmRhdFNlbmF0ZXVyIiwibWFuZGF0IiwieHNpVHlwZSIsIlR5cGVNYW5kYXQiLCJNYW5kYXRQYXJsZW1lbnRhaXJlVHlwZSIsInR5cGVPcmdhbmUiLCJDb2RlVHlwZU9yZ2FuZSIsIlNlbmF0IiwidW5kZWZpbmVkIiwiYWRyZXNzZXMiLCJ1cmwiLCJhZHJlc3NlIiwidHlwZUxpYmVsbGUiLCJ2YWxFbGVjIiwic29ydCIsImEiLCJiIiwidWlkIiwibGVuZ3RoIiwibG9jYWxlQ29tcGFyZSIsImdpdEdyb3VwVXJsIiwiY2xvbmUiLCJ0cmltIiwicmVwbGFjZSIsInBob3Rvc0Rpck5hbWUiLCJwaG90b3NEaXIiLCJwYXRoIiwiam9pbiIsImZzIiwiZW5zdXJlRGlyU3luYyIsImZldGNoIiwibWlzc2luZ1Bob3RvRmlsZVBhdGgiLCJzZW5hdGV1ciIsImlkZW50IiwiZXRhdENpdmlsIiwic2VuYXRldXJTdGVtIiwic3RlbUZyb21TZW5hdGV1ciIsInBob3RvRmlsZW5hbWUiLCJwaG90b0ZpbGVQYXRoIiwicGhvdG9UZW1wRmlsZW5hbWUiLCJwaG90b1RlbXBGaWxlUGF0aCIsInVybFBob3RvIiwic2lsZW50IiwibG9nIiwicHJlbm9tIiwibm9tIiwicmVuYW1lU3luYyIsImV4aXN0c1N5bmMiLCJ3YXJuIiwiY29weUZpbGVTeW5jIiwicGhvdG9CeUlkU2VuYXRldXIiLCJyb3dzRmlsZW5hbWVzIiwic2VuYXRldXJJbmRleCIsInJvd0luZGV4Iiwicm93Iiwic2xpY2UiLCJwaG90b3NGaWxlbmFtZXMiLCJlbnRyaWVzIiwiY29sdW1uSW5kZXgiLCJwdXNoIiwiY2hlbWluIiwiY2hlbWluTW9zYWlxdWUiLCJoYXV0ZXVyIiwibGFyZ2V1ciIsInhNb3NhaXF1ZSIsInlNb3NhaXF1ZSIsInJvd0ZpbGVuYW1lIiwidW5saW5rU3luYyIsImpzb25GaWxlUGF0aCIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwibWF0Y2giLCJ0aGVuIiwiZXhpdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX3NlbmF0ZXVyc19waG90b3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hpbGRQcm9jZXNzLCBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuLy8gaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbi8vIGltcG9ydCBzdHJlYW0gZnJvbSBcInN0cmVhbVwiXG4vLyBpbXBvcnQgdXRpbCBmcm9tIFwidXRpbFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7XG4gIEFjdGV1cixcbiAgQ29kZVR5cGVPcmdhbmUsXG4gIE1hbmRhdCxcbiAgUGhvdG8sXG4gIFR5cGVNYW5kYXQsXG59IGZyb20gXCIuLi90eXBlcy9hY3RldXJzX2V0X29yZ2FuZXNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIHtcbiAgICBhbGlhczogXCJDXCIsXG4gICAgaGVscDogXCJjbG9uZSByZXBvc2l0b3JpZXMgZnJvbSBnaXZlbiBncm91cCAob3Igb3JnYW5pemF0aW9uKSBnaXQgVVJMXCIsXG4gICAgbmFtZTogXCJjbG9uZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImNcIixcbiAgICBoZWxwOiBcImNvbW1pdCBwaG90b3NcIixcbiAgICBuYW1lOiBcImNvbW1pdFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJmXCIsXG4gICAgaGVscDogXCJmZXRjaCBzw6luYXRldXJzJyBwaWN0dXJlcyBpbnN0ZWFkIG9mIHJldHJpZXZpbmcgdGhlbSBmcm9tIGZpbGVzXCIsXG4gICAgbmFtZTogXCJmZXRjaFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJyXCIsXG4gICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcInJlbW90ZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuLy8gY29uc3QgcGlwZWxpbmUgPSB1dGlsLnByb21pc2lmeShzdHJlYW0ucGlwZWxpbmUpXG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgY29tbWl0OiBib29sZWFuLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgbGV0IGVycm9yID0gZmFsc2VcbiAgaWYgKGNvbW1pdCkge1xuICAgIGV4ZWNTeW5jKFwiZ2l0IGFkZCAuXCIsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICB0cnkge1xuICAgICAgZXhlY1N5bmMoJ2dpdCBjb21taXQgLW0gXCJOb3V2ZWxsZSBtb2lzc29uXCInLCB7XG4gICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRlcnIgPT09IG51bGwgfHxcbiAgICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVtb3RlIG9mIHJlbW90ZXMgfHwgW10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGV4ZWNTeW5jKGBnaXQgcHVzaCAke3JlbW90ZX0gbWFzdGVyYCwge1xuICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgLy8gRG9uJ3Qgc3RvcCB3aGVuIHB1c2ggZmFpbHMuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgZXJyb3IgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBlcnJvclxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCB7IGFjdGV1ckJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcbiAgY29uc3Qgc2VuYXRldXJzID0gT2JqZWN0LnZhbHVlcyhhY3RldXJCeVVpZClcbiAgICAuZmlsdGVyKChhY3RldXIpID0+IHtcbiAgICAgIGNvbnN0IHsgbWFuZGF0cyB9ID0gYWN0ZXVyXG4gICAgICBpZiAoIW1hbmRhdHMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBjb25zdCBtYW5kYXRTZW5hdGV1ciA9IG1hbmRhdHMuZmlsdGVyKFxuICAgICAgICAobWFuZGF0OiBNYW5kYXQpID0+XG4gICAgICAgICAgbWFuZGF0LnhzaVR5cGUgPT09IFR5cGVNYW5kYXQuTWFuZGF0UGFybGVtZW50YWlyZVR5cGUgJiZcbiAgICAgICAgICAvLyBtYW5kYXQubGVnaXNsYXR1cmUgPT09IG9wdGlvbnMubGVnaXNsYXR1cmUgJiZcbiAgICAgICAgICBtYW5kYXQudHlwZU9yZ2FuZSA9PT0gQ29kZVR5cGVPcmdhbmUuU2VuYXQsXG4gICAgICApWzBdXG4gICAgICBpZiAobWFuZGF0U2VuYXRldXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgYWRyZXNzZXMgfSA9IGFjdGV1clxuICAgICAgaWYgKGFkcmVzc2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBsZXQgdXJsID0gbnVsbFxuICAgICAgZm9yIChjb25zdCBhZHJlc3NlIG9mIGFkcmVzc2VzKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBhZHJlc3NlLnhzaVR5cGUgPT09IFwiQWRyZXNzZVNpdGVXZWJfVHlwZVwiICYmXG4gICAgICAgICAgYWRyZXNzZS50eXBlTGliZWxsZSA9PT0gXCJVcmwgc8OpbmF0ZXVyXCJcbiAgICAgICAgKSB7XG4gICAgICAgICAgdXJsID0gYWRyZXNzZS52YWxFbGVjXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBCb29sZWFuKHVybClcbiAgICB9KVxuICAgIC5zb3J0KChhLCBiKSA9PlxuICAgICAgYS51aWQubGVuZ3RoID09PSBiLnVpZC5sZW5ndGhcbiAgICAgICAgPyBhLnVpZC5sb2NhbGVDb21wYXJlKGIudWlkKVxuICAgICAgICA6IGEudWlkLmxlbmd0aCAtIGIudWlkLmxlbmd0aCxcbiAgICApXG5cbiAgY29uc3QgZ2l0R3JvdXBVcmwgPSBvcHRpb25zLmNsb25lXG4gICAgPyBvcHRpb25zLmNsb25lLnRyaW0oKS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpXG4gICAgOiB1bmRlZmluZWRcbiAgY29uc3QgcGhvdG9zRGlyTmFtZSA9IFwicGhvdG9zX3NlbmF0ZXVyc1wiXG4gIGlmIChnaXRHcm91cFVybCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjbG9uZSAke2dpdEdyb3VwVXJsfS8ke3Bob3Rvc0Rpck5hbWV9LmdpdGAsIHtcbiAgICAgIGN3ZDogZGF0YURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgfVxuICBjb25zdCBwaG90b3NEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgcGhvdG9zRGlyTmFtZSlcblxuICAvLyBEb3dubG9hZCBwaG90b3MuXG4gIGZzLmVuc3VyZURpclN5bmMocGhvdG9zRGlyKVxuICBpZiAob3B0aW9ucy5mZXRjaCkge1xuICAgIGNvbnN0IG1pc3NpbmdQaG90b0ZpbGVQYXRoID0gXCJpbWFnZXMvdHJhbnNwYXJlbnRfMTU1eDIyNS5qcGdcIlxuICAgIGZvciAoY29uc3Qgc2VuYXRldXIgb2Ygc2VuYXRldXJzKSB7XG4gICAgICBjb25zdCBpZGVudCA9IHNlbmF0ZXVyLmV0YXRDaXZpbC5pZGVudFxuICAgICAgY29uc3Qgc2VuYXRldXJTdGVtID0gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cilcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtzZW5hdGV1clN0ZW19LmpwZ2BcbiAgICAgIGNvbnN0IHBob3RvRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBwaG90b0ZpbGVuYW1lKVxuICAgICAgY29uc3QgcGhvdG9UZW1wRmlsZW5hbWUgPSBgJHtzZW5hdGV1clN0ZW19X3RlbXAuanBnYFxuICAgICAgY29uc3QgcGhvdG9UZW1wRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBwaG90b1RlbXBGaWxlbmFtZSlcbiAgICAgIGNvbnN0IHVybFBob3RvID0gYGh0dHBzOi8vd3d3LnNlbmF0LmZyL3NlbmltZy8ke3Bob3RvRmlsZW5hbWV9YFxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgTG9hZGluZyBwaG90byAke3VybFBob3RvfSBmb3IgJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfeKApmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIC8vIGZvciAobGV0IHJldHJpZXMgPSAwOyByZXRyaWVzIDwgMzsgcmV0cmllcysrKSB7XG4gICAgICAvLyAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsUGhvdG8pXG4gICAgICAvLyAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgLy8gICAgIGF3YWl0IHBpcGVsaW5lKHJlc3BvbnNlLmJvZHksIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKHBob3RvVGVtcEZpbGVQYXRoKSlcbiAgICAgIC8vICAgICBmcy5yZW5hbWVTeW5jKHBob3RvVGVtcEZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgLy8gICAgIGJyZWFrXG4gICAgICAvLyAgIH1cbiAgICAgIC8vICAgaWYgKHJldHJpZXMgPj0gMikge1xuICAgICAgLy8gICAgIGNvbnNvbGUud2FybihgRmV0Y2ggZmFpbGVkOiAke3VybFBob3RvfSAoJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfSlgKVxuICAgICAgLy8gICAgIGNvbnNvbGUud2FybihyZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlLnN0YXR1c1RleHQpXG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKGF3YWl0IHJlc3BvbnNlLnRleHQoKSlcbiAgICAgIC8vICAgICBpZiAoZnMuZXhpc3RzU3luYyhwaG90b0ZpbGVQYXRoKSkge1xuICAgICAgLy8gICAgICAgY29uc29sZS53YXJuKFwiICA9PiBSZXVzaW5nIGV4aXN0aW5nIGltYWdlXCIpXG4gICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAgIC8vICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gVXNpbmcgYmxhbmsgaW1hZ2VcIilcbiAgICAgIC8vICAgICAgIGZzLmNvcHlGaWxlU3luYyhtaXNzaW5nUGhvdG9GaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgIC8vICAgICB9XG4gICAgICAvLyAgICAgYnJlYWtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYHdnZXQgLS1xdWlldCAtTyAke3Bob3RvVGVtcEZpbGVuYW1lfSAke3VybFBob3RvfWAsIHtcbiAgICAgICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgLy8gc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICAgIGZzLnJlbmFtZVN5bmMocGhvdG9UZW1wRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhwaG90b0ZpbGVQYXRoKSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gUmV1c2luZyBleGlzdGluZyBpbWFnZVwiKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gVXNpbmcgYmxhbmsgaW1hZ2VcIilcbiAgICAgICAgICBmcy5jb3B5RmlsZVN5bmMobWlzc2luZ1Bob3RvRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZXNpemUgcGhvdG9zIHRvIDE1NXgyMjUsIGJlY2F1c2Ugc29tZSBoYXZlbid0IGV4YWN0bHkgdGhpcyBzaXplLlxuICBmb3IgKGNvbnN0IHNlbmF0ZXVyIG9mIHNlbmF0ZXVycykge1xuICAgIGNvbnN0IGlkZW50ID0gc2VuYXRldXIuZXRhdENpdmlsLmlkZW50XG4gICAgY29uc3Qgc2VuYXRldXJTdGVtID0gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cilcbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFJlc2l6aW5nIHBob3RvICR7c2VuYXRldXJTdGVtfSBmb3IgJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfeKApmAsXG4gICAgICApXG4gICAgfVxuICAgIGV4ZWNTeW5jKFxuICAgICAgYGdtIGNvbnZlcnQgLXJlc2l6ZSAxNTV4MjI1ISAke3NlbmF0ZXVyU3RlbX0uanBnICR7c2VuYXRldXJTdGVtfV8xNTV4MjI1LmpwZ2AsXG4gICAgICB7XG4gICAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgICAgfSxcbiAgICApXG4gIH1cblxuICAvLyBDcmVhdGUgYSBtb3NhaWMgb2YgcGhvdG9zLlxuICBjb25zdCBwaG90b0J5SWRTZW5hdGV1cjogeyBbdWlkOiBzdHJpbmddOiBQaG90byB9ID0ge31cbiAgY29uc3Qgcm93c0ZpbGVuYW1lczogc3RyaW5nW10gPSBbXVxuICBmb3IgKFxuICAgIGxldCBzZW5hdGV1ckluZGV4ID0gMCwgcm93SW5kZXggPSAwO1xuICAgIHNlbmF0ZXVySW5kZXggPCBzZW5hdGV1cnMubGVuZ3RoO1xuICAgIHNlbmF0ZXVySW5kZXggKz0gMjUsIHJvd0luZGV4KytcbiAgKSB7XG4gICAgY29uc3Qgcm93ID0gc2VuYXRldXJzLnNsaWNlKHNlbmF0ZXVySW5kZXgsIHNlbmF0ZXVySW5kZXggKyAyNSlcbiAgICBjb25zdCBwaG90b3NGaWxlbmFtZXM6IHN0cmluZ1tdID0gW11cbiAgICBmb3IgKGNvbnN0IFtjb2x1bW5JbmRleCwgc2VuYXRldXJdIG9mIHJvdy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHNlbmF0ZXVyU3RlbSA9IHN0ZW1Gcm9tU2VuYXRldXIoc2VuYXRldXIpXG4gICAgICBjb25zdCBwaG90b0ZpbGVuYW1lID0gYCR7c2VuYXRldXJTdGVtfV8xNTV4MjI1LmpwZ2BcbiAgICAgIHBob3Rvc0ZpbGVuYW1lcy5wdXNoKHBob3RvRmlsZW5hbWUpXG4gICAgICBwaG90b0J5SWRTZW5hdGV1cltzZW5hdGV1ci51aWRdID0ge1xuICAgICAgICBjaGVtaW46IGBwaG90b3Nfc2VuYXRldXJzLyR7cGhvdG9GaWxlbmFtZX1gLFxuICAgICAgICBjaGVtaW5Nb3NhaXF1ZTogYHBob3Rvc19zZW5hdGV1cnMvc2VuYXRldXJzLmpwZ2AsXG4gICAgICAgIGhhdXRldXI6IDIyNSxcbiAgICAgICAgbGFyZ2V1cjogMTU1LFxuICAgICAgICB4TW9zYWlxdWU6IGNvbHVtbkluZGV4ICogMTU1LFxuICAgICAgICB5TW9zYWlxdWU6IHJvd0luZGV4ICogMjI1LFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByb3dGaWxlbmFtZSA9IGByb3ctJHtyb3dJbmRleH0uanBnYFxuICAgIGV4ZWNTeW5jKGBnbSBjb252ZXJ0ICR7cGhvdG9zRmlsZW5hbWVzLmpvaW4oXCIgXCIpfSArYXBwZW5kICR7cm93RmlsZW5hbWV9YCwge1xuICAgICAgY3dkOiBwaG90b3NEaXIsXG4gICAgfSlcbiAgICByb3dzRmlsZW5hbWVzLnB1c2gocm93RmlsZW5hbWUpXG4gIH1cbiAgZXhlY1N5bmMoYGdtIGNvbnZlcnQgJHtyb3dzRmlsZW5hbWVzLmpvaW4oXCIgXCIpfSAtYXBwZW5kIHNlbmF0ZXVycy5qcGdgLCB7XG4gICAgY3dkOiBwaG90b3NEaXIsXG4gIH0pXG4gIGZvciAoY29uc3Qgcm93RmlsZW5hbWUgb2Ygcm93c0ZpbGVuYW1lcykge1xuICAgIGZzLnVubGlua1N5bmMocGF0aC5qb2luKHBob3Rvc0Rpciwgcm93RmlsZW5hbWUpKVxuICB9XG5cbiAgY29uc3QganNvbkZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgXCJzZW5hdGV1cnMuanNvblwiKVxuICBmcy53cml0ZUZpbGVTeW5jKGpzb25GaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkocGhvdG9CeUlkU2VuYXRldXIsIG51bGwsIDIpKVxuXG4gIHJldHVybiBjb21taXRBbmRQdXNoKHBob3Rvc0Rpciwgb3B0aW9ucy5jb21taXQsIG9wdGlvbnMucmVtb3RlKVxufVxuXG5mdW5jdGlvbiBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyOiBBY3RldXIpIHtcbiAgY29uc3QgeyBhZHJlc3NlcyB9ID0gc2VuYXRldXJcbiAgbGV0IHVybCA9IG51bGxcbiAgZm9yIChjb25zdCBhZHJlc3NlIG9mIGFkcmVzc2VzISkge1xuICAgIGlmIChcbiAgICAgIGFkcmVzc2UueHNpVHlwZSA9PT0gXCJBZHJlc3NlU2l0ZVdlYl9UeXBlXCIgJiZcbiAgICAgIGFkcmVzc2UudHlwZUxpYmVsbGUgPT09IFwiVXJsIHPDqW5hdGV1clwiXG4gICAgKSB7XG4gICAgICB1cmwgPSBhZHJlc3NlLnZhbEVsZWNcbiAgICB9XG4gIH1cbiAgY29uc3QgbWF0Y2ggPSB1cmwhLm1hdGNoKC9eaHR0cHM6XFwvXFwvd3d3XFwuc2VuYXRcXC5mclxcL3NlbmF0ZXVyXFwvKC4qKVxcLmh0bWwkLylcbiAgY29uc3Qgc2VuYXRldXJTdGVtID0gbWF0Y2ghWzFdXG4gIHJldHVybiBzZW5hdGV1clN0ZW1cbn1cblxucmV0cmlldmVQaG90b3NTZW5hdGV1cnMoKVxuICAudGhlbigoZXJyb3IpID0+IHByb2Nlc3MuZXhpdChlcnJvciA/IDEgOiAwKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgyKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBSUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7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
|
|
453
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsIkJvb2xlYW4iLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJjb21taXQiLCJyZW1vdGVzIiwiZXJyb3IiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwic3RkZXJyIiwidGVzdCIsInN0ZG91dCIsImNvbnNvbGUiLCJvdXRwdXQiLCJyZW1vdGUiLCJyZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycyIsImRhdGFEaXIiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkVuYWJsZWREYXRhc2V0cyIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJsZWdpc2xhdHVyZSIsImFjdGV1ckJ5VWlkIiwic2VuYXRldXJzIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwiYWN0ZXVyIiwibWFuZGF0cyIsIm1hbmRhdFNlbmF0ZXVyIiwibWFuZGF0IiwieHNpVHlwZSIsIlR5cGVNYW5kYXQiLCJNYW5kYXRQYXJsZW1lbnRhaXJlVHlwZSIsInR5cGVPcmdhbmUiLCJDb2RlVHlwZU9yZ2FuZSIsIlNlbmF0IiwidW5kZWZpbmVkIiwiYWRyZXNzZXMiLCJ1cmwiLCJhZHJlc3NlIiwidHlwZUxpYmVsbGUiLCJ2YWxFbGVjIiwic29ydCIsImEiLCJiIiwidWlkIiwibGVuZ3RoIiwibG9jYWxlQ29tcGFyZSIsImdpdEdyb3VwVXJsIiwiY2xvbmUiLCJ0cmltIiwicmVwbGFjZSIsInBob3Rvc0Rpck5hbWUiLCJwaG90b3NEaXIiLCJwYXRoIiwiam9pbiIsImZzIiwiZW5zdXJlRGlyU3luYyIsImZldGNoIiwibWlzc2luZ1Bob3RvRmlsZVBhdGgiLCJzZW5hdGV1ciIsImlkZW50IiwiZXRhdENpdmlsIiwic2VuYXRldXJTdGVtIiwic3RlbUZyb21TZW5hdGV1ciIsInBob3RvRmlsZW5hbWUiLCJwaG90b0ZpbGVQYXRoIiwicGhvdG9UZW1wRmlsZW5hbWUiLCJwaG90b1RlbXBGaWxlUGF0aCIsInVybFBob3RvIiwic2lsZW50IiwibG9nIiwicHJlbm9tIiwibm9tIiwicmVuYW1lU3luYyIsImV4aXN0c1N5bmMiLCJ3YXJuIiwiY29weUZpbGVTeW5jIiwicGhvdG9CeUlkU2VuYXRldXIiLCJyb3dzRmlsZW5hbWVzIiwic2VuYXRldXJJbmRleCIsInJvd0luZGV4Iiwicm93Iiwic2xpY2UiLCJwaG90b3NGaWxlbmFtZXMiLCJlbnRyaWVzIiwiY29sdW1uSW5kZXgiLCJwdXNoIiwiY2hlbWluIiwiY2hlbWluTW9zYWlxdWUiLCJoYXV0ZXVyIiwibGFyZ2V1ciIsInhNb3NhaXF1ZSIsInlNb3NhaXF1ZSIsInJvd0ZpbGVuYW1lIiwidW5saW5rU3luYyIsImpzb25GaWxlUGF0aCIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwibWF0Y2giLCJ0aGVuIiwiZXhpdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX3NlbmF0ZXVyc19waG90b3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hpbGRQcm9jZXNzLCBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuLy8gaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbi8vIGltcG9ydCBzdHJlYW0gZnJvbSBcInN0cmVhbVwiXG4vLyBpbXBvcnQgdXRpbCBmcm9tIFwidXRpbFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7XG4gIEFjdGV1cixcbiAgQ29kZVR5cGVPcmdhbmUsXG4gIE1hbmRhdCxcbiAgUGhvdG8sXG4gIFR5cGVNYW5kYXQsXG59IGZyb20gXCIuLi90eXBlcy9hY3RldXJzX2V0X29yZ2FuZXNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIHtcbiAgICBhbGlhczogXCJDXCIsXG4gICAgaGVscDogXCJjbG9uZSByZXBvc2l0b3JpZXMgZnJvbSBnaXZlbiBncm91cCAob3Igb3JnYW5pemF0aW9uKSBnaXQgVVJMXCIsXG4gICAgbmFtZTogXCJjbG9uZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImNcIixcbiAgICBoZWxwOiBcImNvbW1pdCBwaG90b3NcIixcbiAgICBuYW1lOiBcImNvbW1pdFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJmXCIsXG4gICAgaGVscDogXCJmZXRjaCBzw6luYXRldXJzJyBwaWN0dXJlcyBpbnN0ZWFkIG9mIHJldHJpZXZpbmcgdGhlbSBmcm9tIGZpbGVzXCIsXG4gICAgbmFtZTogXCJmZXRjaFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJyXCIsXG4gICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcInJlbW90ZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuLy8gY29uc3QgcGlwZWxpbmUgPSB1dGlsLnByb21pc2lmeShzdHJlYW0ucGlwZWxpbmUpXG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgY29tbWl0OiBib29sZWFuLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgbGV0IGVycm9yID0gZmFsc2VcbiAgaWYgKGNvbW1pdCkge1xuICAgIGV4ZWNTeW5jKFwiZ2l0IGFkZCAuXCIsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICB0cnkge1xuICAgICAgZXhlY1N5bmMoJ2dpdCBjb21taXQgLW0gXCJOb3V2ZWxsZSBtb2lzc29uXCInLCB7XG4gICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRlcnIgPT09IG51bGwgfHxcbiAgICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVtb3RlIG9mIHJlbW90ZXMgfHwgW10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGV4ZWNTeW5jKGBnaXQgcHVzaCAke3JlbW90ZX0gbWFzdGVyYCwge1xuICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgLy8gRG9uJ3Qgc3RvcCB3aGVuIHB1c2ggZmFpbHMuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgZXJyb3IgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBlcnJvclxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCB7IGFjdGV1ckJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcbiAgY29uc3Qgc2VuYXRldXJzID0gT2JqZWN0LnZhbHVlcyhhY3RldXJCeVVpZClcbiAgICAuZmlsdGVyKChhY3RldXIpID0+IHtcbiAgICAgIGNvbnN0IHsgbWFuZGF0cyB9ID0gYWN0ZXVyXG4gICAgICBpZiAoIW1hbmRhdHMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBjb25zdCBtYW5kYXRTZW5hdGV1ciA9IG1hbmRhdHMuZmlsdGVyKFxuICAgICAgICAobWFuZGF0OiBNYW5kYXQpID0+XG4gICAgICAgICAgbWFuZGF0LnhzaVR5cGUgPT09IFR5cGVNYW5kYXQuTWFuZGF0UGFybGVtZW50YWlyZVR5cGUgJiZcbiAgICAgICAgICAvLyBtYW5kYXQubGVnaXNsYXR1cmUgPT09IG9wdGlvbnMubGVnaXNsYXR1cmUgJiZcbiAgICAgICAgICBtYW5kYXQudHlwZU9yZ2FuZSA9PT0gQ29kZVR5cGVPcmdhbmUuU2VuYXQsXG4gICAgICApWzBdXG4gICAgICBpZiAobWFuZGF0U2VuYXRldXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgYWRyZXNzZXMgfSA9IGFjdGV1clxuICAgICAgaWYgKGFkcmVzc2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBsZXQgdXJsID0gbnVsbFxuICAgICAgZm9yIChjb25zdCBhZHJlc3NlIG9mIGFkcmVzc2VzKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBhZHJlc3NlLnhzaVR5cGUgPT09IFwiQWRyZXNzZVNpdGVXZWJfVHlwZVwiICYmXG4gICAgICAgICAgYWRyZXNzZS50eXBlTGliZWxsZSA9PT0gXCJVcmwgc8OpbmF0ZXVyXCJcbiAgICAgICAgKSB7XG4gICAgICAgICAgdXJsID0gYWRyZXNzZS52YWxFbGVjXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBCb29sZWFuKHVybClcbiAgICB9KVxuICAgIC5zb3J0KChhLCBiKSA9PlxuICAgICAgYS51aWQubGVuZ3RoID09PSBiLnVpZC5sZW5ndGhcbiAgICAgICAgPyBhLnVpZC5sb2NhbGVDb21wYXJlKGIudWlkKVxuICAgICAgICA6IGEudWlkLmxlbmd0aCAtIGIudWlkLmxlbmd0aCxcbiAgICApXG5cbiAgY29uc3QgZ2l0R3JvdXBVcmwgPSBvcHRpb25zLmNsb25lXG4gICAgPyBvcHRpb25zLmNsb25lLnRyaW0oKS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpXG4gICAgOiB1bmRlZmluZWRcbiAgY29uc3QgcGhvdG9zRGlyTmFtZSA9IFwicGhvdG9zX3NlbmF0ZXVyc1wiXG4gIGlmIChnaXRHcm91cFVybCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjbG9uZSAke2dpdEdyb3VwVXJsfS8ke3Bob3Rvc0Rpck5hbWV9LmdpdGAsIHtcbiAgICAgIGN3ZDogZGF0YURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgfVxuICBjb25zdCBwaG90b3NEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgcGhvdG9zRGlyTmFtZSlcblxuICAvLyBEb3dubG9hZCBwaG90b3MuXG4gIGZzLmVuc3VyZURpclN5bmMocGhvdG9zRGlyKVxuICBpZiAob3B0aW9ucy5mZXRjaCkge1xuICAgIGNvbnN0IG1pc3NpbmdQaG90b0ZpbGVQYXRoID0gXCJpbWFnZXMvdHJhbnNwYXJlbnRfMTU1eDIyNS5qcGdcIlxuICAgIGZvciAoY29uc3Qgc2VuYXRldXIgb2Ygc2VuYXRldXJzKSB7XG4gICAgICBjb25zdCBpZGVudCA9IHNlbmF0ZXVyLmV0YXRDaXZpbC5pZGVudFxuICAgICAgY29uc3Qgc2VuYXRldXJTdGVtID0gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cilcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtzZW5hdGV1clN0ZW19LmpwZ2BcbiAgICAgIGNvbnN0IHBob3RvRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBwaG90b0ZpbGVuYW1lKVxuICAgICAgY29uc3QgcGhvdG9UZW1wRmlsZW5hbWUgPSBgJHtzZW5hdGV1clN0ZW19X3RlbXAuanBnYFxuICAgICAgY29uc3QgcGhvdG9UZW1wRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBwaG90b1RlbXBGaWxlbmFtZSlcbiAgICAgIGNvbnN0IHVybFBob3RvID0gYGh0dHBzOi8vd3d3LnNlbmF0LmZyL3NlbmltZy8ke3Bob3RvRmlsZW5hbWV9YFxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgTG9hZGluZyBwaG90byAke3VybFBob3RvfSBmb3IgJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfeKApmAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIC8vIGZvciAobGV0IHJldHJpZXMgPSAwOyByZXRyaWVzIDwgMzsgcmV0cmllcysrKSB7XG4gICAgICAvLyAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsUGhvdG8pXG4gICAgICAvLyAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgLy8gICAgIGF3YWl0IHBpcGVsaW5lKHJlc3BvbnNlLmJvZHksIGZzLmNyZWF0ZVdyaXRlU3RyZWFtKHBob3RvVGVtcEZpbGVQYXRoKSlcbiAgICAgIC8vICAgICBmcy5yZW5hbWVTeW5jKHBob3RvVGVtcEZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgLy8gICAgIGJyZWFrXG4gICAgICAvLyAgIH1cbiAgICAgIC8vICAgaWYgKHJldHJpZXMgPj0gMikge1xuICAgICAgLy8gICAgIGNvbnNvbGUud2FybihgRmV0Y2ggZmFpbGVkOiAke3VybFBob3RvfSAoJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfSlgKVxuICAgICAgLy8gICAgIGNvbnNvbGUud2FybihyZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlLnN0YXR1c1RleHQpXG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKGF3YWl0IHJlc3BvbnNlLnRleHQoKSlcbiAgICAgIC8vICAgICBpZiAoZnMuZXhpc3RzU3luYyhwaG90b0ZpbGVQYXRoKSkge1xuICAgICAgLy8gICAgICAgY29uc29sZS53YXJuKFwiICA9PiBSZXVzaW5nIGV4aXN0aW5nIGltYWdlXCIpXG4gICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAgIC8vICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gVXNpbmcgYmxhbmsgaW1hZ2VcIilcbiAgICAgIC8vICAgICAgIGZzLmNvcHlGaWxlU3luYyhtaXNzaW5nUGhvdG9GaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgIC8vICAgICB9XG4gICAgICAvLyAgICAgYnJlYWtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYHdnZXQgLS1xdWlldCAtTyAke3Bob3RvVGVtcEZpbGVuYW1lfSAke3VybFBob3RvfWAsIHtcbiAgICAgICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgLy8gc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICAgIGZzLnJlbmFtZVN5bmMocGhvdG9UZW1wRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhwaG90b0ZpbGVQYXRoKSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gUmV1c2luZyBleGlzdGluZyBpbWFnZVwiKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gVXNpbmcgYmxhbmsgaW1hZ2VcIilcbiAgICAgICAgICBmcy5jb3B5RmlsZVN5bmMobWlzc2luZ1Bob3RvRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZXNpemUgcGhvdG9zIHRvIDE1NXgyMjUsIGJlY2F1c2Ugc29tZSBoYXZlbid0IGV4YWN0bHkgdGhpcyBzaXplLlxuICBmb3IgKGNvbnN0IHNlbmF0ZXVyIG9mIHNlbmF0ZXVycykge1xuICAgIGNvbnN0IGlkZW50ID0gc2VuYXRldXIuZXRhdENpdmlsLmlkZW50XG4gICAgY29uc3Qgc2VuYXRldXJTdGVtID0gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cilcbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFJlc2l6aW5nIHBob3RvICR7c2VuYXRldXJTdGVtfSBmb3IgJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfeKApmAsXG4gICAgICApXG4gICAgfVxuICAgIGV4ZWNTeW5jKFxuICAgICAgYGdtIGNvbnZlcnQgLXJlc2l6ZSAxNTV4MjI1ISAke3NlbmF0ZXVyU3RlbX0uanBnICR7c2VuYXRldXJTdGVtfV8xNTV4MjI1LmpwZ2AsXG4gICAgICB7XG4gICAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgICAgfSxcbiAgICApXG4gIH1cblxuICAvLyBDcmVhdGUgYSBtb3NhaWMgb2YgcGhvdG9zLlxuICBjb25zdCBwaG90b0J5SWRTZW5hdGV1cjogeyBbdWlkOiBzdHJpbmddOiBQaG90byB9ID0ge31cbiAgY29uc3Qgcm93c0ZpbGVuYW1lczogc3RyaW5nW10gPSBbXVxuICBmb3IgKFxuICAgIGxldCBzZW5hdGV1ckluZGV4ID0gMCwgcm93SW5kZXggPSAwO1xuICAgIHNlbmF0ZXVySW5kZXggPCBzZW5hdGV1cnMubGVuZ3RoO1xuICAgIHNlbmF0ZXVySW5kZXggKz0gMjUsIHJvd0luZGV4KytcbiAgKSB7XG4gICAgY29uc3Qgcm93ID0gc2VuYXRldXJzLnNsaWNlKHNlbmF0ZXVySW5kZXgsIHNlbmF0ZXVySW5kZXggKyAyNSlcbiAgICBjb25zdCBwaG90b3NGaWxlbmFtZXM6IHN0cmluZ1tdID0gW11cbiAgICBmb3IgKGNvbnN0IFtjb2x1bW5JbmRleCwgc2VuYXRldXJdIG9mIHJvdy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHNlbmF0ZXVyU3RlbSA9IHN0ZW1Gcm9tU2VuYXRldXIoc2VuYXRldXIpXG4gICAgICBjb25zdCBwaG90b0ZpbGVuYW1lID0gYCR7c2VuYXRldXJTdGVtfV8xNTV4MjI1LmpwZ2BcbiAgICAgIHBob3Rvc0ZpbGVuYW1lcy5wdXNoKHBob3RvRmlsZW5hbWUpXG4gICAgICBwaG90b0J5SWRTZW5hdGV1cltzZW5hdGV1ci51aWRdID0ge1xuICAgICAgICBjaGVtaW46IGBwaG90b3Nfc2VuYXRldXJzLyR7cGhvdG9GaWxlbmFtZX1gLFxuICAgICAgICBjaGVtaW5Nb3NhaXF1ZTogYHBob3Rvc19zZW5hdGV1cnMvc2VuYXRldXJzLmpwZ2AsXG4gICAgICAgIGhhdXRldXI6IDIyNSxcbiAgICAgICAgbGFyZ2V1cjogMTU1LFxuICAgICAgICB4TW9zYWlxdWU6IGNvbHVtbkluZGV4ICogMTU1LFxuICAgICAgICB5TW9zYWlxdWU6IHJvd0luZGV4ICogMjI1LFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByb3dGaWxlbmFtZSA9IGByb3ctJHtyb3dJbmRleH0uanBnYFxuICAgIGV4ZWNTeW5jKGBnbSBjb252ZXJ0ICR7cGhvdG9zRmlsZW5hbWVzLmpvaW4oXCIgXCIpfSArYXBwZW5kICR7cm93RmlsZW5hbWV9YCwge1xuICAgICAgY3dkOiBwaG90b3NEaXIsXG4gICAgfSlcbiAgICByb3dzRmlsZW5hbWVzLnB1c2gocm93RmlsZW5hbWUpXG4gIH1cbiAgZXhlY1N5bmMoYGdtIGNvbnZlcnQgJHtyb3dzRmlsZW5hbWVzLmpvaW4oXCIgXCIpfSAtYXBwZW5kIHNlbmF0ZXVycy5qcGdgLCB7XG4gICAgY3dkOiBwaG90b3NEaXIsXG4gIH0pXG4gIGZvciAoY29uc3Qgcm93RmlsZW5hbWUgb2Ygcm93c0ZpbGVuYW1lcykge1xuICAgIGZzLnVubGlua1N5bmMocGF0aC5qb2luKHBob3Rvc0Rpciwgcm93RmlsZW5hbWUpKVxuICB9XG5cbiAgY29uc3QganNvbkZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgXCJzZW5hdGV1cnMuanNvblwiKVxuICBmcy53cml0ZUZpbGVTeW5jKGpzb25GaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkocGhvdG9CeUlkU2VuYXRldXIsIG51bGwsIDIpKVxuXG4gIHJldHVybiBjb21taXRBbmRQdXNoKHBob3Rvc0Rpciwgb3B0aW9ucy5jb21taXQsIG9wdGlvbnMucmVtb3RlKVxufVxuXG5mdW5jdGlvbiBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyOiBBY3RldXIpIHtcbiAgY29uc3QgeyBhZHJlc3NlcyB9ID0gc2VuYXRldXJcbiAgbGV0IHVybCA9IG51bGxcbiAgZm9yIChjb25zdCBhZHJlc3NlIG9mIGFkcmVzc2VzISkge1xuICAgIGlmIChcbiAgICAgIGFkcmVzc2UueHNpVHlwZSA9PT0gXCJBZHJlc3NlU2l0ZVdlYl9UeXBlXCIgJiZcbiAgICAgIGFkcmVzc2UudHlwZUxpYmVsbGUgPT09IFwiVXJsIHPDqW5hdGV1clwiXG4gICAgKSB7XG4gICAgICB1cmwgPSBhZHJlc3NlLnZhbEVsZWNcbiAgICB9XG4gIH1cbiAgY29uc3QgbWF0Y2ggPSB1cmwhLm1hdGNoKC9eaHR0cHM6XFwvXFwvd3d3XFwuc2VuYXRcXC5mclxcL3NlbmF0ZXVyXFwvKC4qKVxcLmh0bWwkLylcbiAgY29uc3Qgc2VuYXRldXJTdGVtID0gbWF0Y2ghWzFdXG4gIHJldHVybiBzZW5hdGV1clN0ZW1cbn1cblxucmV0cmlldmVQaG90b3NTZW5hdGV1cnMoKVxuICAudGhlbigoZXJyb3IpID0+IHByb2Nlc3MuZXhpdChlcnJvciA/IDEgOiAwKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgyKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBOztBQUlBOztB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
|