@tricoteuses/assemblee 1.1.5 → 1.1.7

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.
Files changed (120) hide show
  1. package/lib/api.js +1 -1
  2. package/lib/bugs/acteur-00010/plugin.test.js +1 -1
  3. package/lib/bugs/acteur-00010.js +1 -1
  4. package/lib/bugs/acteur-00010.mjs +1 -1
  5. package/lib/bugs/agenda-00002/plugin.test.js +1 -1
  6. package/lib/bugs/agenda-00002.js +2 -2
  7. package/lib/bugs/agenda-00002.mjs +2 -2
  8. package/lib/bugs/agenda-00008/plugin.test.js +1 -1
  9. package/lib/bugs/agenda-00008.js +1 -1
  10. package/lib/bugs/agenda-00008.mjs +1 -1
  11. package/lib/bugs/agenda-00011/plugin.test.js +1 -1
  12. package/lib/bugs/agenda-00011.js +1 -1
  13. package/lib/bugs/agenda-00011.mjs +1 -1
  14. package/lib/bugs.js +1 -1
  15. package/lib/bugs.mjs +1 -1
  16. package/lib/cleaners/actes_legislatifs.js +1 -1
  17. package/lib/cleaners/actes_legislatifs.mjs +1 -1
  18. package/lib/cleaners/acteurs.js +1 -1
  19. package/lib/cleaners/acteurs.mjs +1 -1
  20. package/lib/cleaners/amendements.js +1 -1
  21. package/lib/cleaners/amendements.mjs +1 -1
  22. package/lib/cleaners/documents.js +1 -1
  23. package/lib/cleaners/documents.mjs +1 -1
  24. package/lib/cleaners/dossiers_legislatifs.js +1 -1
  25. package/lib/cleaners/dossiers_legislatifs.mjs +1 -1
  26. package/lib/cleaners/index.js +1 -1
  27. package/lib/cleaners/organes.js +1 -1
  28. package/lib/cleaners/organes.mjs +1 -1
  29. package/lib/cleaners/reunions.js +1 -1
  30. package/lib/cleaners/reunions.mjs +1 -1
  31. package/lib/cleaners/scrutins.js +1 -1
  32. package/lib/cleaners/scrutins.mjs +1 -1
  33. package/lib/cleaners/xml.js +1 -1
  34. package/lib/cleaners/xml.mjs +1 -1
  35. package/lib/datasets.js +1 -1
  36. package/lib/datasets.mjs +1 -1
  37. package/lib/dates.js +16 -7
  38. package/lib/dates.mjs +15 -6
  39. package/lib/dossiers_legislatifs.js +1 -1
  40. package/lib/dossiers_legislatifs.mjs +1 -1
  41. package/lib/file_systems.js +2 -2
  42. package/lib/file_systems.mjs +2 -2
  43. package/lib/git.d.ts +2 -1
  44. package/lib/git.js +77 -44
  45. package/lib/git.mjs +48 -25
  46. package/lib/index.js +1 -1
  47. package/lib/inserters.js +1 -1
  48. package/lib/inserters.mjs +1 -1
  49. package/lib/loaders.d.ts +52 -2
  50. package/lib/loaders.js +961 -187
  51. package/lib/loaders.mjs +285 -3
  52. package/lib/organes.js +1 -1
  53. package/lib/organes.mjs +1 -1
  54. package/lib/parsers/documents.js +1 -1
  55. package/lib/parsers/documents.mjs +1 -1
  56. package/lib/parsers/index.js +1 -1
  57. package/lib/parsers/recherche_amendements.js +39 -32
  58. package/lib/parsers/recherche_amendements.mjs +5 -1
  59. package/lib/raw_types/acteurs_et_organes.js +1 -1
  60. package/lib/raw_types/acteurs_et_organes.mjs +1 -1
  61. package/lib/raw_types/agendas.js +1 -1
  62. package/lib/raw_types/agendas.mjs +1 -1
  63. package/lib/raw_types/amendements.js +1 -1
  64. package/lib/raw_types/amendements.mjs +1 -1
  65. package/lib/raw_types/dossiers_legislatifs.js +1 -1
  66. package/lib/raw_types/dossiers_legislatifs.mjs +1 -1
  67. package/lib/raw_types/scrutins.js +1 -1
  68. package/lib/raw_types/scrutins.mjs +1 -1
  69. package/lib/scripts/bugs_helper.js +3 -3
  70. package/lib/scripts/bugs_helper.mjs +3 -3
  71. package/lib/scripts/clean_data.js +1 -1
  72. package/lib/scripts/clean_data.mjs +1 -1
  73. package/lib/scripts/clean_reorganized_data.js +63 -61
  74. package/lib/scripts/clean_reorganized_data.mjs +55 -48
  75. package/lib/scripts/diff_amendements.js +1 -1
  76. package/lib/scripts/diff_amendements.mjs +1 -1
  77. package/lib/scripts/document_dossiers_legislatifs.js +1 -1
  78. package/lib/scripts/document_dossiers_legislatifs.mjs +1 -1
  79. package/lib/scripts/get_today_reunions.js +1 -1
  80. package/lib/scripts/merge_scrutins.js +1 -1
  81. package/lib/scripts/merge_scrutins.mjs +1 -1
  82. package/lib/scripts/parse_textes_lois.js +5 -48
  83. package/lib/scripts/parse_textes_lois.mjs +5 -49
  84. package/lib/scripts/raw_types_from_amendements.js +1 -1
  85. package/lib/scripts/raw_types_from_amendements.mjs +1 -1
  86. package/lib/scripts/reorganize_data.js +231 -239
  87. package/lib/scripts/reorganize_data.mjs +50 -59
  88. package/lib/scripts/retrieve_deputes_photos.js +86 -107
  89. package/lib/scripts/retrieve_deputes_photos.mjs +21 -42
  90. package/lib/scripts/retrieve_documents.js +3 -3
  91. package/lib/scripts/retrieve_documents.mjs +3 -3
  92. package/lib/scripts/retrieve_open_data.js +29 -22
  93. package/lib/scripts/retrieve_open_data.mjs +9 -4
  94. package/lib/scripts/retrieve_pending_amendments.js +73 -81
  95. package/lib/scripts/retrieve_pending_amendments.mjs +19 -26
  96. package/lib/scripts/retrieve_senateurs_photos.js +65 -87
  97. package/lib/scripts/retrieve_senateurs_photos.mjs +21 -42
  98. package/lib/scripts/retrieve_textes_lois.js +32 -71
  99. package/lib/scripts/retrieve_textes_lois.mjs +6 -44
  100. package/lib/scripts/test_load.js +1 -1
  101. package/lib/scripts/test_load_big_files.js +1 -1
  102. package/lib/scripts/validate_json.js +3 -3
  103. package/lib/scripts/validate_json.mjs +3 -3
  104. package/lib/shared_types/codes_actes.js +1 -1
  105. package/lib/strings.js +1 -1
  106. package/lib/strings.mjs +1 -1
  107. package/lib/types/acteurs_et_organes.js +1 -1
  108. package/lib/types/acteurs_et_organes.mjs +1 -1
  109. package/lib/types/agendas.js +1 -1
  110. package/lib/types/agendas.mjs +1 -1
  111. package/lib/types/amendements.js +1 -1
  112. package/lib/types/amendements.mjs +1 -1
  113. package/lib/types/dossiers_legislatifs.js +1 -1
  114. package/lib/types/dossiers_legislatifs.mjs +1 -1
  115. package/lib/types/legislatures.js +1 -1
  116. package/lib/types/scrutins.js +1 -1
  117. package/lib/types/scrutins.mjs +1 -1
  118. package/lib/urls.js +1 -1
  119. package/lib/urls.mjs +1 -1
  120. package/package.json +6 -5
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
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
+ require("core-js/modules/es.array.is-array.js");
4
5
  require("core-js/modules/es.function.name.js");
5
6
  require("core-js/modules/es.array.from.js");
6
- require("core-js/modules/es.array.is-array.js");
7
7
  require("core-js/modules/es.object.define-property.js");
8
8
  require("core-js/modules/es.symbol.to-string-tag.js");
9
9
  require("core-js/modules/es.json.to-string-tag.js");
@@ -14,6 +14,8 @@ require("core-js/modules/es.array.for-each.js");
14
14
  require("core-js/modules/web.dom-collections.for-each.js");
15
15
  require("core-js/modules/es.object.set-prototype-of.js");
16
16
  require("core-js/modules/es.array.reverse.js");
17
+ require("core-js/modules/es.weak-map.js");
18
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
17
19
  require("core-js/modules/es.symbol.js");
18
20
  require("core-js/modules/es.symbol.description.js");
19
21
  require("core-js/modules/es.object.to-string.js");
@@ -34,8 +36,10 @@ var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
34
36
  var _deepEqual = _interopRequireDefault(require("deep-equal"));
35
37
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
36
38
  var _path = _interopRequireDefault(require("path"));
37
- var _git = require("../git");
39
+ var git = _interopRequireWildcard(require("../git"));
38
40
  var _parsers = require("../parsers");
41
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
42
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
43
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
40
44
  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, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $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 defineProperty(generator, "_invoke", { value: makeInvokeMethod(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; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(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); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), 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, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), 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 (val) { var object = Object(val), 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; }
41
45
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -44,13 +48,12 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
44
48
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
45
49
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
46
50
  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."); }
51
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
52
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
47
53
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
48
54
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
49
55
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
50
56
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
51
- 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(_e2) { throw _e2; }, 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(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
52
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
53
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
54
57
  function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
55
58
  function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, "return": function _return(value) { var ret = this.s["return"]; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, "throw": function _throw(value) { var thr = this.s["return"]; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
56
59
  var optionsDefinitions = [{
@@ -73,6 +76,11 @@ var optionsDefinitions = [{
73
76
  defaultValue: "16",
74
77
  name: "legislature",
75
78
  type: String
79
+ }, {
80
+ alias: "p",
81
+ help: "pull repositories before proceeding",
82
+ name: "pull",
83
+ type: Boolean
76
84
  }, {
77
85
  alias: "r",
78
86
  help: "push commit to given remote",
@@ -96,36 +104,6 @@ var optionsDefinitions = [{
96
104
  type: String
97
105
  }];
98
106
  var options = (0, _commandLineArgs["default"])(optionsDefinitions);
99
- function commitAndPush(repositoryDir, options, remotes) {
100
- var error = false;
101
- if (options.commit) {
102
- (0, _git.commit)(repositoryDir, "Nouvelle moisson");
103
- var _iterator2 = _createForOfIteratorHelper(remotes || []),
104
- _step2;
105
- try {
106
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
107
- var remote = _step2.value;
108
- try {
109
- (0, _child_process.execSync)("git push ".concat(remote, " master"), {
110
- cwd: repositoryDir,
111
- env: process.env,
112
- encoding: "utf-8",
113
- stdio: ["ignore", "ignore", "pipe"]
114
- });
115
- } catch (childProcess) {
116
- // Don't stop when push fails.
117
- console.error(childProcess.output);
118
- error = true;
119
- }
120
- }
121
- } catch (err) {
122
- _iterator2.e(err);
123
- } finally {
124
- _iterator2.f();
125
- }
126
- }
127
- return error;
128
- }
129
107
  function main() {
130
108
  return _main.apply(this, arguments);
131
109
  }
@@ -145,58 +123,66 @@ function _main() {
145
123
  });
146
124
  }
147
125
  amendementsDir = _path["default"].join(options.dataDir, "Amendements_en_attente");
148
- _context.next = 5;
126
+ if (options.pull) {
127
+ (0, _child_process.execSync)("git pull --rebase", {
128
+ cwd: amendementsDir,
129
+ env: process.env,
130
+ encoding: "utf-8",
131
+ stdio: ["ignore", "ignore", "pipe"]
132
+ });
133
+ }
134
+ _context.next = 6;
149
135
  return _fsExtra["default"].ensureDir(amendementsDir);
150
- case 5:
136
+ case 6:
151
137
  cacheDir = _path["default"].join(options.dataDir, "Amendements_en_attente_cache");
152
138
  _i = 0, _arr = ["En recevabilité", "En traitement"];
153
- case 7:
139
+ case 8:
154
140
  if (!(_i < _arr.length)) {
155
- _context.next = 58;
141
+ _context.next = 59;
156
142
  break;
157
143
  }
158
144
  etat = _arr[_i];
159
145
  url = "https://www.assemblee-nationale.fr/dyn/".concat(options.legislature, "/amendements?etat=").concat(encodeURIComponent(etat));
160
146
  _iteratorAbruptCompletion = false;
161
147
  _didIteratorError = false;
162
- _context.prev = 12;
148
+ _context.prev = 13;
163
149
  _iterator = _asyncIterator((0, _parsers.iterRechercheRawAmendements)(cacheDir, url, options.incremental, null, null, {
164
150
  silent: options.silent,
165
151
  verbose: options.verbose
166
152
  }));
167
- case 14:
168
- _context.next = 16;
153
+ case 15:
154
+ _context.next = 17;
169
155
  return _iterator.next();
170
- case 16:
156
+ case 17:
171
157
  if (!(_iteratorAbruptCompletion = !(_step = _context.sent).done)) {
172
- _context.next = 39;
158
+ _context.next = 40;
173
159
  break;
174
160
  }
175
161
  _step$value = _slicedToArray(_step.value, 2), amendementUrlPath = _step$value[0], amendement = _step$value[1];
176
162
  amendementUrlPathSplitted = amendementUrlPath.split("/");
177
163
  amendementFilePath = _path["default"].join.apply(_path["default"], [amendementsDir].concat(_toConsumableArray(amendementUrlPathSplitted.slice(2)))) + ".json";
178
- _context.next = 22;
164
+ _context.next = 23;
179
165
  return _fsExtra["default"].ensureDir(_path["default"].dirname(amendementFilePath));
180
- case 22:
181
- _context.next = 24;
166
+ case 23:
167
+ _context.next = 25;
182
168
  return _fsExtra["default"].pathExists(amendementFilePath);
183
- case 24:
169
+ case 25:
184
170
  if (!_context.sent) {
185
- _context.next = 30;
171
+ _context.next = 31;
186
172
  break;
187
173
  }
188
- _context.next = 27;
174
+ _context.next = 28;
189
175
  return _fsExtra["default"].readJson(amendementFilePath);
190
- case 27:
176
+ case 28:
191
177
  _context.t0 = _context.sent;
192
- _context.next = 31;
178
+ _context.next = 32;
193
179
  break;
194
- case 30:
195
- _context.t0 = null;
196
180
  case 31:
181
+ _context.t0 = null;
182
+ case 32:
197
183
  existingAmendement = _context.t0;
198
184
  if ((0, _deepEqual["default"])(amendement, existingAmendement)) {
199
- _context.next = 36;
185
+ _context.next = 37;
200
186
  break;
201
187
  }
202
188
  if (!options.silent) {
@@ -206,60 +192,66 @@ function _main() {
206
192
  console.log("Updating amendement JSON: ".concat(amendementFilePath, "\u2026"));
207
193
  }
208
194
  }
209
- _context.next = 36;
195
+ _context.next = 37;
210
196
  return _fsExtra["default"].writeJson(amendementFilePath, amendement, {
211
197
  spaces: 2
212
198
  });
213
- case 36:
199
+ case 37:
214
200
  _iteratorAbruptCompletion = false;
215
- _context.next = 14;
201
+ _context.next = 15;
216
202
  break;
217
- case 39:
218
- _context.next = 45;
203
+ case 40:
204
+ _context.next = 46;
219
205
  break;
220
- case 41:
221
- _context.prev = 41;
222
- _context.t1 = _context["catch"](12);
206
+ case 42:
207
+ _context.prev = 42;
208
+ _context.t1 = _context["catch"](13);
223
209
  _didIteratorError = true;
224
210
  _iteratorError = _context.t1;
225
- case 45:
226
- _context.prev = 45;
211
+ case 46:
227
212
  _context.prev = 46;
213
+ _context.prev = 47;
228
214
  if (!(_iteratorAbruptCompletion && _iterator["return"] != null)) {
229
- _context.next = 50;
215
+ _context.next = 51;
230
216
  break;
231
217
  }
232
- _context.next = 50;
218
+ _context.next = 51;
233
219
  return _iterator["return"]();
234
- case 50:
235
- _context.prev = 50;
220
+ case 51:
221
+ _context.prev = 51;
236
222
  if (!_didIteratorError) {
237
- _context.next = 53;
223
+ _context.next = 54;
238
224
  break;
239
225
  }
240
226
  throw _iteratorError;
241
- case 53:
242
- return _context.finish(50);
243
227
  case 54:
244
- return _context.finish(45);
228
+ return _context.finish(51);
245
229
  case 55:
230
+ return _context.finish(46);
231
+ case 56:
246
232
  _i++;
247
- _context.next = 7;
233
+ _context.next = 8;
248
234
  break;
249
- case 58:
250
- if (commitAndPush(amendementsDir, options, options.remote)) {
251
- process.exit(2);
252
- }
253
235
  case 59:
236
+ if (!options.commit) {
237
+ _context.next = 61;
238
+ break;
239
+ }
240
+ return _context.abrupt("return", git.commitAndPush(amendementsDir, "Nouvelle moisson", options.remote));
241
+ case 61:
242
+ return _context.abrupt("return", 0);
243
+ case 62:
254
244
  case "end":
255
245
  return _context.stop();
256
246
  }
257
- }, _callee, null, [[12, 41, 45, 55], [46,, 50, 54]]);
247
+ }, _callee, null, [[13, 42, 46, 56], [47,, 51, 55]]);
258
248
  }));
259
249
  return _main.apply(this, arguments);
260
250
  }
261
- main()["catch"](function (error) {
251
+ main().then(function (exitCode) {
252
+ return process.exit(exitCode);
253
+ })["catch"](function (error) {
262
254
  console.log(error);
263
255
  process.exit(1);
264
256
  });
265
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJyZW1vdGVzIiwiZXJyb3IiLCJjb21taXQiLCJyZW1vdGUiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwiY29uc29sZSIsIm91dHB1dCIsIm1haW4iLCJnaXRHcm91cFVybCIsImNsb25lIiwidHJpbSIsInJlcGxhY2UiLCJ1bmRlZmluZWQiLCJkYXRhRGlyIiwiYW1lbmRlbWVudHNEaXIiLCJwYXRoIiwiam9pbiIsImZzIiwiZW5zdXJlRGlyIiwiY2FjaGVEaXIiLCJldGF0IiwidXJsIiwibGVnaXNsYXR1cmUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJpdGVyUmVjaGVyY2hlUmF3QW1lbmRlbWVudHMiLCJpbmNyZW1lbnRhbCIsInNpbGVudCIsInZlcmJvc2UiLCJhbWVuZGVtZW50VXJsUGF0aCIsImFtZW5kZW1lbnQiLCJhbWVuZGVtZW50VXJsUGF0aFNwbGl0dGVkIiwic3BsaXQiLCJhbWVuZGVtZW50RmlsZVBhdGgiLCJzbGljZSIsImRpcm5hbWUiLCJwYXRoRXhpc3RzIiwicmVhZEpzb24iLCJleGlzdGluZ0FtZW5kZW1lbnQiLCJkZWVwRXF1YWwiLCJsb2ciLCJ3cml0ZUpzb24iLCJzcGFjZXMiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfcGVuZGluZ19hbWVuZG1lbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGRlZXBFcXVhbCBmcm9tIFwiZGVlcC1lcXVhbFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgY29tbWl0IH0gZnJvbSBcIi4uL2dpdFwiXG5pbXBvcnQgeyBpdGVyUmVjaGVyY2hlUmF3QW1lbmRlbWVudHMgfSBmcm9tIFwiLi4vcGFyc2Vyc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcIkNcIixcbiAgICBoZWxwOiBcImNsb25lIHJlcG9zaXRvcmllcyBmcm9tIGdpdmVuIGdyb3VwIChvciBvcmdhbml6YXRpb24pIGdpdCBVUkxcIixcbiAgICBuYW1lOiBcImNsb25lXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IGNsZWFuIGZpbGVzXCIsXG4gICAgbmFtZTogXCJjb21taXRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiaVwiLFxuICAgIGhlbHA6IFwiaW5jcmVtZW50YWwgbW9kZTogcmV0cmlldmUgb25seSBhbWVuZG1lbnRzIHdob3NlIHBvc2l0aW9uIGluIHNlYXJjaCBoYXMgY2hhbmdlZFwiLFxuICAgIG5hbWU6IFwiaW5jcmVtZW50YWxcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwibFwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCIxNlwiLFxuICAgIG5hbWU6IFwibGVnaXNsYXR1cmVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJyXCIsXG4gICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcInJlbW90ZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInZcIixcbiAgICBoZWxwOiBcInZlcmJvc2UgbG9nc1wiLFxuICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgIGhlbHA6IFwiZGlyZWN0b3J5IGNvbnRhaW5pbmcgQXNzZW1ibMOpZSBvcGVuIGRhdGEgZmlsZXNcIixcbiAgICBuYW1lOiBcImRhdGFEaXJcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuZnVuY3Rpb24gY29tbWl0QW5kUHVzaChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBvcHRpb25zOiBhbnksXG4gIHJlbW90ZXM/OiBzdHJpbmdbXSxcbik6IGJvb2xlYW4ge1xuICBsZXQgZXJyb3IgPSBmYWxzZVxuICBpZiAob3B0aW9ucy5jb21taXQpIHtcbiAgICBjb21taXQocmVwb3NpdG9yeURpciwgXCJOb3V2ZWxsZSBtb2lzc29uXCIpXG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IGdpdEdyb3VwVXJsID0gb3B0aW9ucy5jbG9uZVxuICAgID8gb3B0aW9ucy5jbG9uZS50cmltKCkucmVwbGFjZSgvXFwvKyQvLCBcIlwiKVxuICAgIDogdW5kZWZpbmVkXG4gIGlmIChnaXRHcm91cFVybCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjbG9uZSAke2dpdEdyb3VwVXJsfS9BbWVuZGVtZW50c19lbl9hdHRlbnRlLmdpdGAsIHtcbiAgICAgIGN3ZDogb3B0aW9ucy5kYXRhRGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgYW1lbmRlbWVudHNEaXIgPSBwYXRoLmpvaW4ob3B0aW9ucy5kYXRhRGlyLCBcIkFtZW5kZW1lbnRzX2VuX2F0dGVudGVcIilcbiAgYXdhaXQgZnMuZW5zdXJlRGlyKGFtZW5kZW1lbnRzRGlyKVxuICBjb25zdCBjYWNoZURpciA9IHBhdGguam9pbihvcHRpb25zLmRhdGFEaXIsIFwiQW1lbmRlbWVudHNfZW5fYXR0ZW50ZV9jYWNoZVwiKVxuICBmb3IgKGNvbnN0IGV0YXQgb2YgW1wiRW4gcmVjZXZhYmlsaXTDqVwiLCBcIkVuIHRyYWl0ZW1lbnRcIl0pIHtcbiAgICBjb25zdCB1cmwgPSBgaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9keW4vJHtcbiAgICAgIG9wdGlvbnMubGVnaXNsYXR1cmVcbiAgICB9L2FtZW5kZW1lbnRzP2V0YXQ9JHtlbmNvZGVVUklDb21wb25lbnQoZXRhdCl9YFxuICAgIGZvciBhd2FpdCAoY29uc3QgW1xuICAgICAgYW1lbmRlbWVudFVybFBhdGgsXG4gICAgICBhbWVuZGVtZW50LFxuICAgIF0gb2YgaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzKFxuICAgICAgY2FjaGVEaXIsXG4gICAgICB1cmwsXG4gICAgICBvcHRpb25zLmluY3JlbWVudGFsLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICB7IHNpbGVudDogb3B0aW9ucy5zaWxlbnQsIHZlcmJvc2U6IG9wdGlvbnMudmVyYm9zZSB9LFxuICAgICkpIHtcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWQgPSBhbWVuZGVtZW50VXJsUGF0aCEuc3BsaXQoXCIvXCIpXG4gICAgICBjb25zdCBhbWVuZGVtZW50RmlsZVBhdGggPVxuICAgICAgICBwYXRoLmpvaW4oYW1lbmRlbWVudHNEaXIsIC4uLmFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWQuc2xpY2UoMikpICtcbiAgICAgICAgXCIuanNvblwiXG4gICAgICBhd2FpdCBmcy5lbnN1cmVEaXIocGF0aC5kaXJuYW1lKGFtZW5kZW1lbnRGaWxlUGF0aCkpXG4gICAgICBjb25zdCBleGlzdGluZ0FtZW5kZW1lbnQgPSAoYXdhaXQgZnMucGF0aEV4aXN0cyhhbWVuZGVtZW50RmlsZVBhdGgpKVxuICAgICAgICA/IGF3YWl0IGZzLnJlYWRKc29uKGFtZW5kZW1lbnRGaWxlUGF0aClcbiAgICAgICAgOiBudWxsXG4gICAgICBpZiAoIWRlZXBFcXVhbChhbWVuZGVtZW50LCBleGlzdGluZ0FtZW5kZW1lbnQpKSB7XG4gICAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdBbWVuZGVtZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgQWRkaW5nIGFtZW5kZW1lbnQgSlNPTjogJHthbWVuZGVtZW50RmlsZVBhdGh94oCmYClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFVwZGF0aW5nIGFtZW5kZW1lbnQgSlNPTjogJHthbWVuZGVtZW50RmlsZVBhdGh94oCmYClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgZnMud3JpdGVKc29uKGFtZW5kZW1lbnRGaWxlUGF0aCwgYW1lbmRlbWVudCwgeyBzcGFjZXM6IDIgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoY29tbWl0QW5kUHVzaChhbWVuZGVtZW50c0Rpciwgb3B0aW9ucywgb3B0aW9ucy5yZW1vdGUpKSB7XG4gICAgcHJvY2Vzcy5leGl0KDIpXG4gIH1cbn1cblxubWFpbigpLmNhdGNoKChlcnJvcikgPT4ge1xuICBjb25zb2xlLmxvZyhlcnJvcilcbiAgcHJvY2Vzcy5leGl0KDEpXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBd0Q7QUFBQSwrQ0FOeEQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQSxJQUFNQSxrQkFBa0IsR0FBRyxDQUN6QjtFQUNFQyxLQUFLLEVBQUUsR0FBRztFQUNWQyxJQUFJLEVBQUUsK0RBQStEO0VBQ3JFQyxJQUFJLEVBQUUsT0FBTztFQUNiQyxJQUFJLEVBQUVDO0FBQ1IsQ0FBQyxFQUNEO0VBQ0VKLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSxvQkFBb0I7RUFDMUJDLElBQUksRUFBRSxRQUFRO0VBQ2RDLElBQUksRUFBRUU7QUFDUixDQUFDLEVBQ0Q7RUFDRUwsS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLGlGQUFpRjtFQUN2RkMsSUFB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
257
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hpbGRfcHJvY2VzcyIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9kZWVwRXF1YWwiLCJfZnNFeHRyYSIsIl9wYXRoIiwiZ2l0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcGFyc2VycyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZXhwb3J0cyIsIk9wIiwiaGFzT3duIiwidmFsdWUiLCIkU3ltYm9sIiwiU3ltYm9sIiwiaXRlcmF0b3JTeW1ib2wiLCJpdGVyYXRvciIsImFzeW5jSXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWdTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImVyciIsIndyYXAiLCJpbm5lckZuIiwib3V0ZXJGbiIsInNlbGYiLCJ0cnlMb2NzTGlzdCIsInByb3RvR2VuZXJhdG9yIiwiR2VuZXJhdG9yIiwiZ2VuZXJhdG9yIiwiY3JlYXRlIiwiY29udGV4dCIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJmbiIsImFyZyIsInR5cGUiLCJDb250aW51ZVNlbnRpbmVsIiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsIkl0ZXJhdG9yUHJvdG90eXBlIiwiZ2V0UHJvdG8iLCJnZXRQcm90b3R5cGVPZiIsIk5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlIiwidmFsdWVzIiwiR3AiLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwibWV0aG9kIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJQcm9taXNlSW1wbCIsImludm9rZSIsInJlc29sdmUiLCJyZWplY3QiLCJyZWNvcmQiLCJyZXN1bHQiLCJfX2F3YWl0IiwidGhlbiIsInVud3JhcHBlZCIsImVycm9yIiwicHJldmlvdXNQcm9taXNlIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJzdGF0ZSIsIkVycm9yIiwiZG9uZVJlc3VsdCIsImRlbGVnYXRlIiwiZGVsZWdhdGVSZXN1bHQiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJkb25lIiwibWV0aG9kTmFtZSIsInVuZGVmaW5lZCIsIlR5cGVFcnJvciIsImluZm8iLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJsb2NzIiwiZW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsIml0ZXJhYmxlIiwiaXRlcmF0b3JNZXRob2QiLCJpc05hTiIsImxlbmd0aCIsImkiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJnZW5GdW4iLCJjdG9yIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJpdGVyIiwia2V5cyIsInZhbCIsIm9iamVjdCIsInJldmVyc2UiLCJwb3AiLCJza2lwVGVtcFJlc2V0IiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwiaGFuZGxlIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX25vbkl0ZXJhYmxlUmVzdCIsIm8iLCJtaW5MZW4iLCJuIiwidG9TdHJpbmciLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIl9pIiwiX3MiLCJfZSIsIl94IiwiX3IiLCJfYXJyIiwiX24iLCJfZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsIl9uZXh0IiwiX3Rocm93IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfYXN5bmNJdGVyYXRvciIsInN5bmMiLCJyZXRyeSIsIkFzeW5jRnJvbVN5bmNJdGVyYXRvciIsInMiLCJBc3luY0Zyb21TeW5jSXRlcmF0b3JDb250aW51YXRpb24iLCJyIiwiX3JldHVybiIsInJldCIsInRociIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIlN0cmluZyIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwibWFpbiIsIl9tYWluIiwiX2NhbGxlZSIsImdpdEdyb3VwVXJsIiwiYW1lbmRlbWVudHNEaXIiLCJjYWNoZURpciIsImV0YXQiLCJ1cmwiLCJfaXRlcmF0b3JBYnJ1cHRDb21wbGV0aW9uIiwiX2RpZEl0ZXJhdG9yRXJyb3IiLCJfaXRlcmF0b3JFcnJvciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiX3N0ZXAkdmFsdWUiLCJhbWVuZGVtZW50VXJsUGF0aCIsImFtZW5kZW1lbnQiLCJhbWVuZGVtZW50VXJsUGF0aFNwbGl0dGVkIiwiYW1lbmRlbWVudEZpbGVQYXRoIiwiZXhpc3RpbmdBbWVuZGVtZW50IiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImNsb25lIiwidHJpbSIsInJlcGxhY2UiLCJleGVjU3luYyIsImNvbmNhdCIsImN3ZCIsImRhdGFEaXIiLCJlbnYiLCJwcm9jZXNzIiwiZW5jb2RpbmciLCJzdGRpbyIsInBhdGgiLCJqb2luIiwicHVsbCIsImZzIiwiZW5zdXJlRGlyIiwibGVnaXNsYXR1cmUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJpdGVyUmVjaGVyY2hlUmF3QW1lbmRlbWVudHMiLCJpbmNyZW1lbnRhbCIsInNpbGVudCIsInZlcmJvc2UiLCJzcGxpdCIsImRpcm5hbWUiLCJwYXRoRXhpc3RzIiwicmVhZEpzb24iLCJ0MCIsImRlZXBFcXVhbCIsImNvbnNvbGUiLCJsb2ciLCJ3cml0ZUpzb24iLCJzcGFjZXMiLCJ0MSIsImNvbW1pdCIsImNvbW1pdEFuZFB1c2giLCJyZW1vdGUiLCJleGl0Q29kZSIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV9wZW5kaW5nX2FtZW5kbWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZGVlcEVxdWFsIGZyb20gXCJkZWVwLWVxdWFsXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQgKiBhcyBnaXQgZnJvbSBcIi4uL2dpdFwiXG5pbXBvcnQgeyBpdGVyUmVjaGVyY2hlUmF3QW1lbmRlbWVudHMgfSBmcm9tIFwiLi4vcGFyc2Vyc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcIkNcIixcbiAgICBoZWxwOiBcImNsb25lIHJlcG9zaXRvcmllcyBmcm9tIGdpdmVuIGdyb3VwIChvciBvcmdhbml6YXRpb24pIGdpdCBVUkxcIixcbiAgICBuYW1lOiBcImNsb25lXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IGNsZWFuIGZpbGVzXCIsXG4gICAgbmFtZTogXCJjb21taXRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiaVwiLFxuICAgIGhlbHA6IFwiaW5jcmVtZW50YWwgbW9kZTogcmV0cmlldmUgb25seSBhbWVuZG1lbnRzIHdob3NlIHBvc2l0aW9uIGluIHNlYXJjaCBoYXMgY2hhbmdlZFwiLFxuICAgIG5hbWU6IFwiaW5jcmVtZW50YWxcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwibFwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCIxNlwiLFxuICAgIG5hbWU6IFwibGVnaXNsYXR1cmVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJwXCIsXG4gICAgaGVscDogXCJwdWxsIHJlcG9zaXRvcmllcyBiZWZvcmUgcHJvY2VlZGluZ1wiLFxuICAgIG5hbWU6IFwicHVsbFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJyXCIsXG4gICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcInJlbW90ZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInZcIixcbiAgICBoZWxwOiBcInZlcmJvc2UgbG9nc1wiLFxuICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgIGhlbHA6IFwiZGlyZWN0b3J5IGNvbnRhaW5pbmcgQXNzZW1ibMOpZSBvcGVuIGRhdGEgZmlsZXNcIixcbiAgICBuYW1lOiBcImRhdGFEaXJcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCBnaXRHcm91cFVybCA9IG9wdGlvbnMuY2xvbmVcbiAgICA/IG9wdGlvbnMuY2xvbmUudHJpbSgpLnJlcGxhY2UoL1xcLyskLywgXCJcIilcbiAgICA6IHVuZGVmaW5lZFxuICBpZiAoZ2l0R3JvdXBVcmwgIT09IHVuZGVmaW5lZCkge1xuICAgIGV4ZWNTeW5jKGBnaXQgY2xvbmUgJHtnaXRHcm91cFVybH0vQW1lbmRlbWVudHNfZW5fYXR0ZW50ZS5naXRgLCB7XG4gICAgICBjd2Q6IG9wdGlvbnMuZGF0YURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgfVxuICBjb25zdCBhbWVuZGVtZW50c0RpciA9IHBhdGguam9pbihvcHRpb25zLmRhdGFEaXIsIFwiQW1lbmRlbWVudHNfZW5fYXR0ZW50ZVwiKVxuICBpZiAob3B0aW9ucy5wdWxsKSB7XG4gICAgZXhlY1N5bmMoYGdpdCBwdWxsIC0tcmViYXNlYCwge1xuICAgICAgY3dkOiBhbWVuZGVtZW50c0RpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgfVxuXG4gIGF3YWl0IGZzLmVuc3VyZURpcihhbWVuZGVtZW50c0RpcilcbiAgY29uc3QgY2FjaGVEaXIgPSBwYXRoLmpvaW4ob3B0aW9ucy5kYXRhRGlyLCBcIkFtZW5kZW1lbnRzX2VuX2F0dGVudGVfY2FjaGVcIilcbiAgZm9yIChjb25zdCBldGF0IG9mIFtcIkVuIHJlY2V2YWJpbGl0w6lcIiwgXCJFbiB0cmFpdGVtZW50XCJdKSB7XG4gICAgY29uc3QgdXJsID0gYGh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvZHluLyR7XG4gICAgICBvcHRpb25zLmxlZ2lzbGF0dXJlXG4gICAgfS9hbWVuZGVtZW50cz9ldGF0PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGV0YXQpfWBcbiAgICBmb3IgYXdhaXQgKGNvbnN0IFtcbiAgICAgIGFtZW5kZW1lbnRVcmxQYXRoLFxuICAgICAgYW1lbmRlbWVudCxcbiAgICBdIG9mIGl0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyhcbiAgICAgIGNhY2hlRGlyLFxuICAgICAgdXJsLFxuICAgICAgb3B0aW9ucy5pbmNyZW1lbnRhbCxcbiAgICAgIG51bGwsXG4gICAgICBudWxsLFxuICAgICAgeyBzaWxlbnQ6IG9wdGlvbnMuc2lsZW50LCB2ZXJib3NlOiBvcHRpb25zLnZlcmJvc2UgfSxcbiAgICApKSB7XG4gICAgICBjb25zdCBhbWVuZGVtZW50VXJsUGF0aFNwbGl0dGVkID0gYW1lbmRlbWVudFVybFBhdGghLnNwbGl0KFwiL1wiKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEZpbGVQYXRoID1cbiAgICAgICAgcGF0aC5qb2luKGFtZW5kZW1lbnRzRGlyLCAuLi5hbWVuZGVtZW50VXJsUGF0aFNwbGl0dGVkLnNsaWNlKDIpKSArXG4gICAgICAgIFwiLmpzb25cIlxuICAgICAgYXdhaXQgZnMuZW5zdXJlRGlyKHBhdGguZGlybmFtZShhbWVuZGVtZW50RmlsZVBhdGgpKVxuICAgICAgY29uc3QgZXhpc3RpbmdBbWVuZGVtZW50ID0gKGF3YWl0IGZzLnBhdGhFeGlzdHMoYW1lbmRlbWVudEZpbGVQYXRoKSlcbiAgICAgICAgPyBhd2FpdCBmcy5yZWFkSnNvbihhbWVuZGVtZW50RmlsZVBhdGgpXG4gICAgICAgIDogbnVsbFxuICAgICAgaWYgKCFkZWVwRXF1YWwoYW1lbmRlbWVudCwgZXhpc3RpbmdBbWVuZGVtZW50KSkge1xuICAgICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgICAgaWYgKGV4aXN0aW5nQW1lbmRlbWVudCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYEFkZGluZyBhbWVuZGVtZW50IEpTT046ICR7YW1lbmRlbWVudEZpbGVQYXRofeKApmApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBVcGRhdGluZyBhbWVuZGVtZW50IEpTT046ICR7YW1lbmRlbWVudEZpbGVQYXRofeKApmApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGZzLndyaXRlSnNvbihhbWVuZGVtZW50RmlsZVBhdGgsIGFtZW5kZW1lbnQsIHsgc3BhY2VzOiAyIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKG9wdGlvbnMuY29tbWl0KSB7XG4gICAgcmV0dXJuIGdpdC5jb21taXRBbmRQdXNoKGFtZW5kZW1lbnRzRGlyLCBcIk5vdXZlbGxlIG1vaXNzb25cIiwgb3B0aW9ucy5yZW1vdGUpXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxubWFpbigpXG4gIC50aGVuKChleGl0Q29kZSkgPT4gcHJvY2Vzcy5leGl0KGV4aXRDb2RlKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQU0sR0FBQSxHQUFBQyx1QkFBQSxDQUFBUCxPQUFBO0FBQ0EsSUFBQVEsUUFBQSxHQUFBUixPQUFBO0FBQXdELFNBQUFTLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBSCx3QkFBQU8sR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLGFBQUFFLE9BQUEsQ0FBQUYsR0FBQSx5QkFBQUEsR0FBQSx1Q0FBQUEsR0FBQSxVQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsT0FBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxZQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxTQUFBTSxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFB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
@@ -3,7 +3,7 @@ import commandLineArgs from "command-line-args";
3
3
  import deepEqual from "deep-equal";
4
4
  import fs from "fs-extra";
5
5
  import path from "path";
6
- import { commit } from "../git.mjs";
6
+ import * as git from "../git.mjs";
7
7
  import { iterRechercheRawAmendements } from "../parsers/index.mjs";
8
8
  const optionsDefinitions = [{
9
9
  alias: "C",
@@ -25,6 +25,11 @@ const optionsDefinitions = [{
25
25
  defaultValue: "16",
26
26
  name: "legislature",
27
27
  type: String
28
+ }, {
29
+ alias: "p",
30
+ help: "pull repositories before proceeding",
31
+ name: "pull",
32
+ type: Boolean
28
33
  }, {
29
34
  alias: "r",
30
35
  help: "push commit to given remote",
@@ -48,27 +53,6 @@ const optionsDefinitions = [{
48
53
  type: String
49
54
  }];
50
55
  const options = commandLineArgs(optionsDefinitions);
51
- function commitAndPush(repositoryDir, options, remotes) {
52
- let error = false;
53
- if (options.commit) {
54
- commit(repositoryDir, "Nouvelle moisson");
55
- for (const remote of remotes || []) {
56
- try {
57
- execSync(`git push ${remote} master`, {
58
- cwd: repositoryDir,
59
- env: process.env,
60
- encoding: "utf-8",
61
- stdio: ["ignore", "ignore", "pipe"]
62
- });
63
- } catch (childProcess) {
64
- // Don't stop when push fails.
65
- console.error(childProcess.output);
66
- error = true;
67
- }
68
- }
69
- }
70
- return error;
71
- }
72
56
  async function main() {
73
57
  const gitGroupUrl = options.clone ? options.clone.trim().replace(/\/+$/, "") : undefined;
74
58
  if (gitGroupUrl !== undefined) {
@@ -80,6 +64,14 @@ async function main() {
80
64
  });
81
65
  }
82
66
  const amendementsDir = path.join(options.dataDir, "Amendements_en_attente");
67
+ if (options.pull) {
68
+ execSync(`git pull --rebase`, {
69
+ cwd: amendementsDir,
70
+ env: process.env,
71
+ encoding: "utf-8",
72
+ stdio: ["ignore", "ignore", "pipe"]
73
+ });
74
+ }
83
75
  await fs.ensureDir(amendementsDir);
84
76
  const cacheDir = path.join(options.dataDir, "Amendements_en_attente_cache");
85
77
  for (const etat of ["En recevabilité", "En traitement"]) {
@@ -106,12 +98,13 @@ async function main() {
106
98
  }
107
99
  }
108
100
  }
109
- if (commitAndPush(amendementsDir, options, options.remote)) {
110
- process.exit(2);
101
+ if (options.commit) {
102
+ return git.commitAndPush(amendementsDir, "Nouvelle moisson", options.remote);
111
103
  }
104
+ return 0;
112
105
  }
113
- main().catch(error => {
106
+ main().then(exitCode => process.exit(exitCode)).catch(error => {
114
107
  console.log(error);
115
108
  process.exit(1);
116
109
  });
117
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleGVjU3luYyIsImNvbW1hbmRMaW5lQXJncyIsImRlZXBFcXVhbCIsImZzIiwicGF0aCIsImNvbW1pdCIsIml0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIm5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwiQm9vbGVhbiIsImRlZmF1bHRWYWx1ZSIsIm11bHRpcGxlIiwiZGVmYXVsdE9wdGlvbiIsIm9wdGlvbnMiLCJjb21taXRBbmRQdXNoIiwicmVwb3NpdG9yeURpciIsInJlbW90ZXMiLCJlcnJvciIsInJlbW90ZSIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwiY29uc29sZSIsIm91dHB1dCIsIm1haW4iLCJnaXRHcm91cFVybCIsImNsb25lIiwidHJpbSIsInJlcGxhY2UiLCJ1bmRlZmluZWQiLCJkYXRhRGlyIiwiYW1lbmRlbWVudHNEaXIiLCJqb2luIiwiZW5zdXJlRGlyIiwiY2FjaGVEaXIiLCJldGF0IiwidXJsIiwibGVnaXNsYXR1cmUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJhbWVuZGVtZW50VXJsUGF0aCIsImFtZW5kZW1lbnQiLCJpbmNyZW1lbnRhbCIsInNpbGVudCIsInZlcmJvc2UiLCJhbWVuZGVtZW50VXJsUGF0aFNwbGl0dGVkIiwic3BsaXQiLCJhbWVuZGVtZW50RmlsZVBhdGgiLCJzbGljZSIsImRpcm5hbWUiLCJleGlzdGluZ0FtZW5kZW1lbnQiLCJwYXRoRXhpc3RzIiwicmVhZEpzb24iLCJsb2ciLCJ3cml0ZUpzb24iLCJzcGFjZXMiLCJleGl0IiwiY2F0Y2giXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV9wZW5kaW5nX2FtZW5kbWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZGVlcEVxdWFsIGZyb20gXCJkZWVwLWVxdWFsXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQgeyBjb21taXQgfSBmcm9tIFwiLi4vZ2l0XCJcbmltcG9ydCB7IGl0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyB9IGZyb20gXCIuLi9wYXJzZXJzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiQ1wiLFxuICAgIGhlbHA6IFwiY2xvbmUgcmVwb3NpdG9yaWVzIGZyb20gZ2l2ZW4gZ3JvdXAgKG9yIG9yZ2FuaXphdGlvbikgZ2l0IFVSTFwiLFxuICAgIG5hbWU6IFwiY2xvbmVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJjXCIsXG4gICAgaGVscDogXCJjb21taXQgY2xlYW4gZmlsZXNcIixcbiAgICBuYW1lOiBcImNvbW1pdFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJpXCIsXG4gICAgaGVscDogXCJpbmNyZW1lbnRhbCBtb2RlOiByZXRyaWV2ZSBvbmx5IGFtZW5kbWVudHMgd2hvc2UgcG9zaXRpb24gaW4gc2VhcmNoIGhhcyBjaGFuZ2VkXCIsXG4gICAgbmFtZTogXCJpbmNyZW1lbnRhbFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJsXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIjE2XCIsXG4gICAgbmFtZTogXCJsZWdpc2xhdHVyZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInJcIixcbiAgICBoZWxwOiBcInB1c2ggY29tbWl0IHRvIGdpdmVuIHJlbW90ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwicmVtb3RlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwic1wiLFxuICAgIGhlbHA6IFwiZG9uJ3QgbG9nIGFueXRoaW5nXCIsXG4gICAgbmFtZTogXCJzaWxlbnRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwidlwiLFxuICAgIGhlbHA6IFwidmVyYm9zZSBsb2dzXCIsXG4gICAgbmFtZTogXCJ2ZXJib3NlXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5mdW5jdGlvbiBjb21taXRBbmRQdXNoKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIG9wdGlvbnM6IGFueSxcbiAgcmVtb3Rlcz86IHN0cmluZ1tdLFxuKTogYm9vbGVhbiB7XG4gIGxldCBlcnJvciA9IGZhbHNlXG4gIGlmIChvcHRpb25zLmNvbW1pdCkge1xuICAgIGNvbW1pdChyZXBvc2l0b3J5RGlyLCBcIk5vdXZlbGxlIG1vaXNzb25cIilcbiAgICBmb3IgKGNvbnN0IHJlbW90ZSBvZiByZW1vdGVzIHx8IFtdKSB7XG4gICAgICB0cnkge1xuICAgICAgICBleGVjU3luYyhgZ2l0IHB1c2ggJHtyZW1vdGV9IG1hc3RlcmAsIHtcbiAgICAgICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICAgIC8vIERvbid0IHN0b3Agd2hlbiBwdXNoIGZhaWxzLlxuICAgICAgICBjb25zb2xlLmVycm9yKChjaGlsZFByb2Nlc3MgYXMgYW55KS5vdXRwdXQpXG4gICAgICAgIGVycm9yID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZXJyb3Jcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgZ2l0R3JvdXBVcmwgPSBvcHRpb25zLmNsb25lXG4gICAgPyBvcHRpb25zLmNsb25lLnRyaW0oKS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpXG4gICAgOiB1bmRlZmluZWRcbiAgaWYgKGdpdEdyb3VwVXJsICE9PSB1bmRlZmluZWQpIHtcbiAgICBleGVjU3luYyhgZ2l0IGNsb25lICR7Z2l0R3JvdXBVcmx9L0FtZW5kZW1lbnRzX2VuX2F0dGVudGUuZ2l0YCwge1xuICAgICAgY3dkOiBvcHRpb25zLmRhdGFEaXIsXG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBhbWVuZGVtZW50c0RpciA9IHBhdGguam9pbihvcHRpb25zLmRhdGFEaXIsIFwiQW1lbmRlbWVudHNfZW5fYXR0ZW50ZVwiKVxuICBhd2FpdCBmcy5lbnN1cmVEaXIoYW1lbmRlbWVudHNEaXIpXG4gIGNvbnN0IGNhY2hlRGlyID0gcGF0aC5qb2luKG9wdGlvbnMuZGF0YURpciwgXCJBbWVuZGVtZW50c19lbl9hdHRlbnRlX2NhY2hlXCIpXG4gIGZvciAoY29uc3QgZXRhdCBvZiBbXCJFbiByZWNldmFiaWxpdMOpXCIsIFwiRW4gdHJhaXRlbWVudFwiXSkge1xuICAgIGNvbnN0IHVybCA9IGBodHRwczovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL2R5bi8ke1xuICAgICAgb3B0aW9ucy5sZWdpc2xhdHVyZVxuICAgIH0vYW1lbmRlbWVudHM/ZXRhdD0ke2VuY29kZVVSSUNvbXBvbmVudChldGF0KX1gXG4gICAgZm9yIGF3YWl0IChjb25zdCBbXG4gICAgICBhbWVuZGVtZW50VXJsUGF0aCxcbiAgICAgIGFtZW5kZW1lbnQsXG4gICAgXSBvZiBpdGVyUmVjaGVyY2hlUmF3QW1lbmRlbWVudHMoXG4gICAgICBjYWNoZURpcixcbiAgICAgIHVybCxcbiAgICAgIG9wdGlvbnMuaW5jcmVtZW50YWwsXG4gICAgICBudWxsLFxuICAgICAgbnVsbCxcbiAgICAgIHsgc2lsZW50OiBvcHRpb25zLnNpbGVudCwgdmVyYm9zZTogb3B0aW9ucy52ZXJib3NlIH0sXG4gICAgKSkge1xuICAgICAgY29uc3QgYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZCA9IGFtZW5kZW1lbnRVcmxQYXRoIS5zcGxpdChcIi9cIilcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRGaWxlUGF0aCA9XG4gICAgICAgIHBhdGguam9pbihhbWVuZGVtZW50c0RpciwgLi4uYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZC5zbGljZSgyKSkgK1xuICAgICAgICBcIi5qc29uXCJcbiAgICAgIGF3YWl0IGZzLmVuc3VyZURpcihwYXRoLmRpcm5hbWUoYW1lbmRlbWVudEZpbGVQYXRoKSlcbiAgICAgIGNvbnN0IGV4aXN0aW5nQW1lbmRlbWVudCA9IChhd2FpdCBmcy5wYXRoRXhpc3RzKGFtZW5kZW1lbnRGaWxlUGF0aCkpXG4gICAgICAgID8gYXdhaXQgZnMucmVhZEpzb24oYW1lbmRlbWVudEZpbGVQYXRoKVxuICAgICAgICA6IG51bGxcbiAgICAgIGlmICghZGVlcEVxdWFsKGFtZW5kZW1lbnQsIGV4aXN0aW5nQW1lbmRlbWVudCkpIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICAgIGlmIChleGlzdGluZ0FtZW5kZW1lbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBBZGRpbmcgYW1lbmRlbWVudCBKU09OOiAke2FtZW5kZW1lbnRGaWxlUGF0aH3igKZgKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgVXBkYXRpbmcgYW1lbmRlbWVudCBKU09OOiAke2FtZW5kZW1lbnRGaWxlUGF0aH3igKZgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBmcy53cml0ZUpzb24oYW1lbmRlbWVudEZpbGVQYXRoLCBhbWVuZGVtZW50LCB7IHNwYWNlczogMiB9KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChjb21taXRBbmRQdXNoKGFtZW5kZW1lbnRzRGlyLCBvcHRpb25zLCBvcHRpb25zLnJlbW90ZSkpIHtcbiAgICBwcm9jZXNzLmV4aXQoMilcbiAgfVxufVxuXG5tYWluKCkuY2F0Y2goKGVycm9yKSA9PiB7XG4gIGNvbnNvbGUubG9nKGVycm9yKVxuICBwcm9jZXNzLmV4aXQoMSlcbn0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVEsUUFBUSxlQUFlO0FBQ3hDLE9BQU9DLGVBQWUsTUFBTSxtQkFBbUI7QUFDL0MsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsRUFBRSxNQUFNLFVBQVU7QUFDekIsT0FBT0MsSUFBSSxNQUFNLE1BQU07QUFBQSxTQUVkQyxNQUFNO0FBQUEsU0FDTkMsMkJBQTJCO0FBRXBDLE1BQU1DLGtCQUFrQixHQUFHLENBQ3pCO0VBQ0VDLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSwrREFBK0Q7RUFDckVDLElBQUksRUFBRSxPQUFPO0VBQ2JDLElBQUksRUFBRUM7QUFDUixDQUFDLEVBQ0Q7RUFDRUosS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLG9CQUFvQjtFQUMxQkMsSUFBSSxFQUFFLFFBQVE7RUFDZEMsSUFBSSxFQUFFRTtBQUNSLENBQUMsRUFDRDtFQUNFTCxLQUFLLEVBQUUsR0FBRztFQUNWQyxJQUFJLEVB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
110
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleGVjU3luYyIsImNvbW1hbmRMaW5lQXJncyIsImRlZXBFcXVhbCIsImZzIiwicGF0aCIsImdpdCIsIml0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIm5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwiQm9vbGVhbiIsImRlZmF1bHRWYWx1ZSIsIm11bHRpcGxlIiwiZGVmYXVsdE9wdGlvbiIsIm9wdGlvbnMiLCJtYWluIiwiZ2l0R3JvdXBVcmwiLCJjbG9uZSIsInRyaW0iLCJyZXBsYWNlIiwidW5kZWZpbmVkIiwiY3dkIiwiZGF0YURpciIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiYW1lbmRlbWVudHNEaXIiLCJqb2luIiwicHVsbCIsImVuc3VyZURpciIsImNhY2hlRGlyIiwiZXRhdCIsInVybCIsImxlZ2lzbGF0dXJlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiYW1lbmRlbWVudFVybFBhdGgiLCJhbWVuZGVtZW50IiwiaW5jcmVtZW50YWwiLCJzaWxlbnQiLCJ2ZXJib3NlIiwiYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZCIsInNwbGl0IiwiYW1lbmRlbWVudEZpbGVQYXRoIiwic2xpY2UiLCJkaXJuYW1lIiwiZXhpc3RpbmdBbWVuZGVtZW50IiwicGF0aEV4aXN0cyIsInJlYWRKc29uIiwiY29uc29sZSIsImxvZyIsIndyaXRlSnNvbiIsInNwYWNlcyIsImNvbW1pdCIsImNvbW1pdEFuZFB1c2giLCJyZW1vdGUiLCJ0aGVuIiwiZXhpdENvZGUiLCJleGl0IiwiY2F0Y2giLCJlcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX3BlbmRpbmdfYW1lbmRtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBkZWVwRXF1YWwgZnJvbSBcImRlZXAtZXF1YWxcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCAqIGFzIGdpdCBmcm9tIFwiLi4vZ2l0XCJcbmltcG9ydCB7IGl0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyB9IGZyb20gXCIuLi9wYXJzZXJzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiQ1wiLFxuICAgIGhlbHA6IFwiY2xvbmUgcmVwb3NpdG9yaWVzIGZyb20gZ2l2ZW4gZ3JvdXAgKG9yIG9yZ2FuaXphdGlvbikgZ2l0IFVSTFwiLFxuICAgIG5hbWU6IFwiY2xvbmVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJjXCIsXG4gICAgaGVscDogXCJjb21taXQgY2xlYW4gZmlsZXNcIixcbiAgICBuYW1lOiBcImNvbW1pdFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJpXCIsXG4gICAgaGVscDogXCJpbmNyZW1lbnRhbCBtb2RlOiByZXRyaWV2ZSBvbmx5IGFtZW5kbWVudHMgd2hvc2UgcG9zaXRpb24gaW4gc2VhcmNoIGhhcyBjaGFuZ2VkXCIsXG4gICAgbmFtZTogXCJpbmNyZW1lbnRhbFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJsXCIsXG4gICAgZGVmYXVsdFZhbHVlOiBcIjE2XCIsXG4gICAgbmFtZTogXCJsZWdpc2xhdHVyZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInBcIixcbiAgICBoZWxwOiBcInB1bGwgcmVwb3NpdG9yaWVzIGJlZm9yZSBwcm9jZWVkaW5nXCIsXG4gICAgbmFtZTogXCJwdWxsXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInJcIixcbiAgICBoZWxwOiBcInB1c2ggY29tbWl0IHRvIGdpdmVuIHJlbW90ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwicmVtb3RlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwic1wiLFxuICAgIGhlbHA6IFwiZG9uJ3QgbG9nIGFueXRoaW5nXCIsXG4gICAgbmFtZTogXCJzaWxlbnRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwidlwiLFxuICAgIGhlbHA6IFwidmVyYm9zZSBsb2dzXCIsXG4gICAgbmFtZTogXCJ2ZXJib3NlXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5hc3luYyBmdW5jdGlvbiBtYWluKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IGdpdEdyb3VwVXJsID0gb3B0aW9ucy5jbG9uZVxuICAgID8gb3B0aW9ucy5jbG9uZS50cmltKCkucmVwbGFjZSgvXFwvKyQvLCBcIlwiKVxuICAgIDogdW5kZWZpbmVkXG4gIGlmIChnaXRHcm91cFVybCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjbG9uZSAke2dpdEdyb3VwVXJsfS9BbWVuZGVtZW50c19lbl9hdHRlbnRlLmdpdGAsIHtcbiAgICAgIGN3ZDogb3B0aW9ucy5kYXRhRGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICB9XG4gIGNvbnN0IGFtZW5kZW1lbnRzRGlyID0gcGF0aC5qb2luKG9wdGlvbnMuZGF0YURpciwgXCJBbWVuZGVtZW50c19lbl9hdHRlbnRlXCIpXG4gIGlmIChvcHRpb25zLnB1bGwpIHtcbiAgICBleGVjU3luYyhgZ2l0IHB1bGwgLS1yZWJhc2VgLCB7XG4gICAgICBjd2Q6IGFtZW5kZW1lbnRzRGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICB9XG5cbiAgYXdhaXQgZnMuZW5zdXJlRGlyKGFtZW5kZW1lbnRzRGlyKVxuICBjb25zdCBjYWNoZURpciA9IHBhdGguam9pbihvcHRpb25zLmRhdGFEaXIsIFwiQW1lbmRlbWVudHNfZW5fYXR0ZW50ZV9jYWNoZVwiKVxuICBmb3IgKGNvbnN0IGV0YXQgb2YgW1wiRW4gcmVjZXZhYmlsaXTDqVwiLCBcIkVuIHRyYWl0ZW1lbnRcIl0pIHtcbiAgICBjb25zdCB1cmwgPSBgaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9keW4vJHtcbiAgICAgIG9wdGlvbnMubGVnaXNsYXR1cmVcbiAgICB9L2FtZW5kZW1lbnRzP2V0YXQ9JHtlbmNvZGVVUklDb21wb25lbnQoZXRhdCl9YFxuICAgIGZvciBhd2FpdCAoY29uc3QgW1xuICAgICAgYW1lbmRlbWVudFVybFBhdGgsXG4gICAgICBhbWVuZGVtZW50LFxuICAgIF0gb2YgaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzKFxuICAgICAgY2FjaGVEaXIsXG4gICAgICB1cmwsXG4gICAgICBvcHRpb25zLmluY3JlbWVudGFsLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICB7IHNpbGVudDogb3B0aW9ucy5zaWxlbnQsIHZlcmJvc2U6IG9wdGlvbnMudmVyYm9zZSB9LFxuICAgICkpIHtcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWQgPSBhbWVuZGVtZW50VXJsUGF0aCEuc3BsaXQoXCIvXCIpXG4gICAgICBjb25zdCBhbWVuZGVtZW50RmlsZVBhdGggPVxuICAgICAgICBwYXRoLmpvaW4oYW1lbmRlbWVudHNEaXIsIC4uLmFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWQuc2xpY2UoMikpICtcbiAgICAgICAgXCIuanNvblwiXG4gICAgICBhd2FpdCBmcy5lbnN1cmVEaXIocGF0aC5kaXJuYW1lKGFtZW5kZW1lbnRGaWxlUGF0aCkpXG4gICAgICBjb25zdCBleGlzdGluZ0FtZW5kZW1lbnQgPSAoYXdhaXQgZnMucGF0aEV4aXN0cyhhbWVuZGVtZW50RmlsZVBhdGgpKVxuICAgICAgICA/IGF3YWl0IGZzLnJlYWRKc29uKGFtZW5kZW1lbnRGaWxlUGF0aClcbiAgICAgICAgOiBudWxsXG4gICAgICBpZiAoIWRlZXBFcXVhbChhbWVuZGVtZW50LCBleGlzdGluZ0FtZW5kZW1lbnQpKSB7XG4gICAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgICBpZiAoZXhpc3RpbmdBbWVuZGVtZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgQWRkaW5nIGFtZW5kZW1lbnQgSlNPTjogJHthbWVuZGVtZW50RmlsZVBhdGh94oCmYClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFVwZGF0aW5nIGFtZW5kZW1lbnQgSlNPTjogJHthbWVuZGVtZW50RmlsZVBhdGh94oCmYClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgZnMud3JpdGVKc29uKGFtZW5kZW1lbnRGaWxlUGF0aCwgYW1lbmRlbWVudCwgeyBzcGFjZXM6IDIgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAob3B0aW9ucy5jb21taXQpIHtcbiAgICByZXR1cm4gZ2l0LmNvbW1pdEFuZFB1c2goYW1lbmRlbWVudHNEaXIsIFwiTm91dmVsbGUgbW9pc3NvblwiLCBvcHRpb25zLnJlbW90ZSlcbiAgfVxuICByZXR1cm4gMFxufVxuXG5tYWluKClcbiAgLnRoZW4oKGV4aXRDb2RlKSA9PiBwcm9jZXNzLmV4aXQoZXhpdENvZGUpKVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVEsUUFBUSxlQUFlO0FBQ3hDLE9BQU9DLGVBQWUsTUFBTSxtQkFBbUI7QUFDL0MsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsRUFBRSxNQUFNLFVBQVU7QUFDekIsT0FBT0MsSUFBSSxNQUFNLE1BQU07QUFBQSxPQUVoQixLQUFLQyxHQUFHO0FBQUEsU0FDTkMsMkJBQTJCO0FBRXBDLE1BQU1DLGtCQUFrQixHQUFHLENBQ3pCO0VBQ0VDLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSwrREFBK0Q7RUFDckVDLElBQUksRUFBRSxPQUFPO0VBQ2JDLElBQUksRUFBRUM7QUFDUixDQUFDLEVBQ0Q7RUFDRUosS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLG9CQUFvQjtFQUMxQkMsSUFBSSxFQUFFLFFBQVE7RUFDZEMsSUFBSSxFQUFFRTtBQUNSLENBQUMsRUFDRDtFQUNFTCxLQUFLLEVBQUUsR0FBRztFQUNWQyxJQUFJLEVBQUUsaUZBQWlGO0VBQ3ZGQyxJQUFJLEVBQUUsYUFBYTtFQUNuQkMsSUFBSSxFQUFFRTtBQUNSLENBQUMsRUFDRDtFQUNFTCxLQUFLLEVBQUUsR0FBRztFQUNWTSxZQUFZLEVBQUUsSUFBSTtFQUNsQkosSUFBSSxFQUFFLGFBQWE7RUFDbkJDLElBQUksRUFBRUM7QUFDUixDQUFDLEVBQ0Q7RUFDRUosS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLHFDQUFxQztFQUMzQ0MsSUFBSSxFQUFFLE1BQU07RUFD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