@tricoteuses/assemblee 1.0.6 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/lib/api.js +3 -9
  2. package/lib/api.mjs +4 -5
  3. package/lib/bugs/acteur-00010/plugin.test.js +3 -50
  4. package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
  5. package/lib/bugs/acteur-00010.js +2 -57
  6. package/lib/bugs/acteur-00010.mjs +1 -6
  7. package/lib/bugs/agenda-00002/plugin.test.js +3 -53
  8. package/lib/bugs/agenda-00002/plugin.test.mjs +1 -3
  9. package/lib/bugs/agenda-00002.js +3 -148
  10. package/lib/bugs/agenda-00002.mjs +1 -28
  11. package/lib/bugs/agenda-00008/plugin.test.js +3 -52
  12. package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
  13. package/lib/bugs/agenda-00008.js +2 -61
  14. package/lib/bugs/agenda-00008.mjs +1 -5
  15. package/lib/bugs/agenda-00011/plugin.test.js +5 -99
  16. package/lib/bugs/agenda-00011/plugin.test.mjs +3 -3
  17. package/lib/bugs/agenda-00011.js +4 -105
  18. package/lib/bugs/agenda-00011.mjs +3 -29
  19. package/lib/bugs.js +3 -164
  20. package/lib/bugs.mjs +1 -26
  21. package/lib/cleaners/actes_legislatifs.js +11 -115
  22. package/lib/cleaners/actes_legislatifs.mjs +7 -82
  23. package/lib/cleaners/acteurs.js +12 -92
  24. package/lib/cleaners/acteurs.mjs +7 -38
  25. package/lib/cleaners/amendements.js +10 -103
  26. package/lib/cleaners/amendements.mjs +4 -58
  27. package/lib/cleaners/documents.js +5 -67
  28. package/lib/cleaners/documents.mjs +1 -37
  29. package/lib/cleaners/dossiers_legislatifs.js +5 -61
  30. package/lib/cleaners/dossiers_legislatifs.mjs +1 -29
  31. package/lib/cleaners/index.js +1 -9
  32. package/lib/cleaners/index.mjs +1 -1
  33. package/lib/cleaners/organes.js +1 -33
  34. package/lib/cleaners/organes.mjs +1 -17
  35. package/lib/cleaners/reunions.js +4 -119
  36. package/lib/cleaners/reunions.mjs +1 -64
  37. package/lib/cleaners/scrutins.js +10 -102
  38. package/lib/cleaners/scrutins.mjs +1 -48
  39. package/lib/cleaners/xml.js +8 -42
  40. package/lib/cleaners/xml.mjs +6 -8
  41. package/lib/datasets.js +14 -113
  42. package/lib/datasets.mjs +6 -46
  43. package/lib/dates.js +7 -37
  44. package/lib/dates.mjs +9 -14
  45. package/lib/dossiers_legislatifs.js +6 -68
  46. package/lib/dossiers_legislatifs.mjs +5 -36
  47. package/lib/file_systems.js +56 -139
  48. package/lib/file_systems.mjs +1 -9
  49. package/lib/git.js +4 -53
  50. package/lib/git.mjs +1 -12
  51. package/lib/index.js +1 -15
  52. package/lib/index.mjs +1 -1
  53. package/lib/inserters.js +23 -146
  54. package/lib/inserters.mjs +6 -87
  55. package/lib/loaders.js +44 -316
  56. package/lib/loaders.mjs +12 -135
  57. package/lib/organes.js +1 -7
  58. package/lib/organes.mjs +1 -4
  59. package/lib/parsers/documents.js +22 -151
  60. package/lib/parsers/documents.mjs +19 -81
  61. package/lib/parsers/index.js +1 -4
  62. package/lib/parsers/index.mjs +1 -1
  63. package/lib/parsers/recherche_amendements.js +302 -527
  64. package/lib/parsers/recherche_amendements.mjs +8 -31
  65. package/lib/raw_types/acteurs_et_organes.d.ts +1 -30
  66. package/lib/raw_types/acteurs_et_organes.js +5 -124
  67. package/lib/raw_types/acteurs_et_organes.mjs +5 -105
  68. package/lib/raw_types/agendas.js +6 -89
  69. package/lib/raw_types/agendas.mjs +9 -65
  70. package/lib/raw_types/amendements.d.ts +2 -0
  71. package/lib/raw_types/amendements.js +10 -90
  72. package/lib/raw_types/amendements.mjs +11 -69
  73. package/lib/raw_types/dossiers_legislatifs.d.ts +16 -115
  74. package/lib/raw_types/dossiers_legislatifs.js +26 -435
  75. package/lib/raw_types/dossiers_legislatifs.mjs +26 -412
  76. package/lib/raw_types/scrutins.js +6 -81
  77. package/lib/raw_types/scrutins.mjs +9 -57
  78. package/lib/scripts/bugs_helper.js +2 -181
  79. package/lib/scripts/bugs_helper.mjs +2 -39
  80. package/lib/scripts/clean_data.js +27 -143
  81. package/lib/scripts/clean_data.mjs +15 -34
  82. package/lib/scripts/clean_reorganized_data.js +76 -240
  83. package/lib/scripts/clean_reorganized_data.mjs +36 -99
  84. package/lib/scripts/diff_amendements.js +19 -79
  85. package/lib/scripts/diff_amendements.mjs +17 -35
  86. package/lib/scripts/document_dossiers_legislatifs.js +17 -142
  87. package/lib/scripts/document_dossiers_legislatifs.mjs +6 -90
  88. package/lib/scripts/get_today_reunions.js +4 -22
  89. package/lib/scripts/get_today_reunions.mjs +1 -7
  90. package/lib/scripts/merge_scrutins.js +3 -47
  91. package/lib/scripts/merge_scrutins.mjs +1 -9
  92. package/lib/scripts/parse_textes_lois.js +15 -44
  93. package/lib/scripts/parse_textes_lois.mjs +18 -19
  94. package/lib/scripts/raw_types_from_amendements.js +3 -95
  95. package/lib/scripts/raw_types_from_amendements.mjs +1 -16
  96. package/lib/scripts/reorganize_data.js +74 -294
  97. package/lib/scripts/reorganize_data.mjs +22 -133
  98. package/lib/scripts/retrieve_deputes_photos.js +6 -119
  99. package/lib/scripts/retrieve_deputes_photos.mjs +7 -33
  100. package/lib/scripts/retrieve_documents.js +4 -192
  101. package/lib/scripts/retrieve_documents.mjs +2 -50
  102. package/lib/scripts/retrieve_open_data.js +44 -116
  103. package/lib/scripts/retrieve_open_data.mjs +14 -19
  104. package/lib/scripts/retrieve_pending_amendments.js +4 -98
  105. package/lib/scripts/retrieve_pending_amendments.mjs +1 -14
  106. package/lib/scripts/retrieve_senateurs_photos.js +18 -114
  107. package/lib/scripts/retrieve_senateurs_photos.mjs +20 -48
  108. package/lib/scripts/retrieve_textes_lois.js +3 -122
  109. package/lib/scripts/retrieve_textes_lois.mjs +3 -21
  110. package/lib/scripts/test_load.js +2 -10
  111. package/lib/scripts/test_load.mjs +2 -1
  112. package/lib/scripts/test_load_big_files.js +2 -10
  113. package/lib/scripts/test_load_big_files.mjs +2 -1
  114. package/lib/scripts/validate_json.js +4 -119
  115. package/lib/scripts/validate_json.mjs +2 -36
  116. package/lib/shared_types/codes_actes.js +1 -24
  117. package/lib/shared_types/codes_actes.mjs +3 -10
  118. package/lib/strings.js +1 -5
  119. package/lib/strings.mjs +1 -1
  120. package/lib/types/acteurs_et_organes.js +9 -84
  121. package/lib/types/acteurs_et_organes.mjs +10 -63
  122. package/lib/types/agendas.js +8 -90
  123. package/lib/types/agendas.mjs +11 -66
  124. package/lib/types/amendements.d.ts +2 -0
  125. package/lib/types/amendements.js +12 -92
  126. package/lib/types/amendements.mjs +15 -70
  127. package/lib/types/dossiers_legislatifs.js +8 -96
  128. package/lib/types/dossiers_legislatifs.mjs +10 -72
  129. package/lib/types/legislatures.js +1 -3
  130. package/lib/types/legislatures.mjs +1 -2
  131. package/lib/types/scrutins.js +8 -82
  132. package/lib/types/scrutins.mjs +11 -58
  133. package/lib/urls.js +3 -27
  134. package/lib/urls.mjs +3 -21
  135. package/package.json +1 -1
@@ -1,131 +1,74 @@
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
-
5
4
  require("core-js/modules/es.object.set-prototype-of.js");
6
-
7
5
  require("core-js/modules/es.function.bind.js");
8
-
9
6
  require("core-js/modules/es.object.get-prototype-of.js");
10
-
11
7
  require("core-js/modules/es.object.to-string.js");
12
-
13
8
  require("core-js/modules/es.reflect.construct.js");
14
-
15
9
  require("core-js/modules/es.object.create.js");
16
-
17
10
  require("core-js/modules/es.promise.js");
18
-
19
11
  require("core-js/modules/es.symbol.js");
20
-
21
12
  require("core-js/modules/es.symbol.description.js");
22
-
23
13
  require("core-js/modules/es.symbol.iterator.js");
24
-
25
14
  require("core-js/modules/es.array.iterator.js");
26
-
27
15
  require("core-js/modules/es.string.iterator.js");
28
-
29
16
  require("core-js/modules/web.dom-collections.iterator.js");
30
-
31
17
  require("core-js/modules/es.symbol.async-iterator.js");
32
-
33
18
  require("core-js/modules/es.symbol.to-string-tag.js");
34
-
35
19
  require("core-js/modules/es.json.to-string-tag.js");
36
-
37
20
  require("core-js/modules/es.math.to-string-tag.js");
38
-
39
21
  require("core-js/modules/es.array.for-each.js");
40
-
41
22
  require("core-js/modules/web.dom-collections.for-each.js");
42
-
43
23
  require("core-js/modules/es.function.name.js");
44
-
45
24
  require("core-js/modules/es.array.reverse.js");
46
-
47
25
  require("core-js/modules/es.array.slice.js");
48
-
49
26
  Object.defineProperty(exports, "__esModule", {
50
27
  value: true
51
28
  });
52
29
  exports.Plugin = void 0;
53
-
54
30
  require("core-js/modules/es.array.sort.js");
55
-
56
31
  require("core-js/modules/es.array.map.js");
57
-
58
32
  require("core-js/modules/es.regexp.exec.js");
59
-
60
33
  require("core-js/modules/es.string.replace.js");
61
-
62
34
  require("core-js/modules/es.object.define-property.js");
63
-
64
35
  var _tinyVersionCompare = _interopRequireDefault(require("tiny-version-compare"));
65
-
66
36
  var _nodeFetch = _interopRequireDefault(require("node-fetch"));
67
-
68
37
  var _bugs = require("../bugs");
69
-
70
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
71
-
72
- 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; }
73
-
39
+ 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 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, 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; }
74
40
  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); } }
75
-
76
41
  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); }); }; }
77
-
78
42
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
79
-
80
43
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
81
-
82
44
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
83
-
84
45
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
85
-
86
46
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
87
-
88
47
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
89
-
90
48
  function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
91
-
92
49
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
93
-
94
50
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
95
-
96
51
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
97
-
98
52
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
99
-
100
53
  // https://www.wikidata.org/wiki/Wikidata:WikiProject_France/Assembl%C3%A9e_Nationale#Legislative_session
101
54
  var url = "https://query.wikidata.org/sparql?query=SELECT%20DISTINCT%20%3Fsession%20%3Fstart_time%20%3Fend_time%20%3Flabel%20%3Ffollows%20%3Ffollowed_by%20WHERE%20%7B%0A%0A%20%20%20%3Fsession%20wdt%3AP31%2Fwdt%3AP279*%20wd%3AQ87337481.%0A%20%20%20%3Fsession%20wdt%3AP580%20%3Fstart_time.%20%0A%20%20%20OPTIONAL%20%7B%20%3Fsession%20wdt%3AP582%20%3Fend_time%20%7D.%0A%20%20%20OPTIONAL%20%7B%20%3Fsession%20wdt%3AP155%20%3Ffollows%20%7D.%0A%20%20%20OPTIONAL%20%7B%20%3Fsession%20wdt%3AP156%20%3Ffollowed_by%20%7D.%0A%20%20%20OPTIONAL%20%7B%20%3Fsession%20rdfs%3Alabel%20%3Flabel%20filter%20(lang(%3Flabel)%20%3D%20%22fr%22)%20.%7D%0A%7D";
102
-
103
55
  function compareString(a, b) {
104
56
  if (a < b) return -1;
105
57
  if (a > b) return 1;
106
58
  return 0;
107
59
  }
108
-
109
60
  var Plugin = /*#__PURE__*/function (_BasePlugin) {
110
61
  _inherits(Plugin, _BasePlugin);
111
-
112
62
  var _super = _createSuper(Plugin);
113
-
114
63
  function Plugin(options) {
115
64
  var _this;
116
-
117
65
  _classCallCheck(this, Plugin);
118
-
119
66
  _this = _super.call(this, options, "agenda-00011");
120
-
121
67
  _defineProperty(_assertThisInitialized(_this), "sessions", void 0);
122
-
123
68
  _defineProperty(_assertThisInitialized(_this), "fetch", void 0);
124
-
125
69
  _this.fetch = _nodeFetch["default"];
126
70
  return _this;
127
71
  }
128
-
129
72
  _createClass(Plugin, [{
130
73
  key: "preFix",
131
74
  value: function () {
@@ -135,7 +78,6 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
135
78
  switch (_context.prev = _context.next) {
136
79
  case 0:
137
80
  return _context.abrupt("return", this.setSessions());
138
-
139
81
  case 1:
140
82
  case "end":
141
83
  return _context.stop();
@@ -143,11 +85,9 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
143
85
  }
144
86
  }, _callee, this);
145
87
  }));
146
-
147
88
  function preFix() {
148
89
  return _preFix.apply(this, arguments);
149
90
  }
150
-
151
91
  return preFix;
152
92
  }()
153
93
  }, {
@@ -159,7 +99,6 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
159
99
  switch (_context2.prev = _context2.next) {
160
100
  case 0:
161
101
  return _context2.abrupt("return", this.setSessions());
162
-
163
102
  case 1:
164
103
  case "end":
165
104
  return _context2.stop();
@@ -167,11 +106,9 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
167
106
  }
168
107
  }, _callee2, this);
169
108
  }));
170
-
171
109
  function preCheck() {
172
110
  return _preCheck.apply(this, arguments);
173
111
  }
174
-
175
112
  return preCheck;
176
113
  }()
177
114
  }, {
@@ -185,7 +122,6 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
185
122
  case 0:
186
123
  _context3.next = 2;
187
124
  return this.fetchSessions();
188
-
189
125
  case 2:
190
126
  sessions = _context3.sent.sort(function (a, b) {
191
127
  return compareString(a["start_time"]["value"], b["start_time"]["value"]);
@@ -197,7 +133,6 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
197
133
  fin: s["end_time"]["value"].substr(0, 10)
198
134
  };
199
135
  });
200
-
201
136
  case 4:
202
137
  case "end":
203
138
  return _context3.stop();
@@ -205,11 +140,9 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
205
140
  }
206
141
  }, _callee3, this);
207
142
  }));
208
-
209
143
  function setSessions() {
210
144
  return _setSessions.apply(this, arguments);
211
145
  }
212
-
213
146
  return setSessions;
214
147
  }()
215
148
  }, {
@@ -221,7 +154,6 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
221
154
  switch (_context4.prev = _context4.next) {
222
155
  case 0:
223
156
  return _context4.abrupt("return", this.fetch(url, headers));
224
-
225
157
  case 1:
226
158
  case "end":
227
159
  return _context4.stop();
@@ -229,11 +161,9 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
229
161
  }
230
162
  }, _callee4, this);
231
163
  }));
232
-
233
164
  function get(_x, _x2) {
234
165
  return _get.apply(this, arguments);
235
166
  }
236
-
237
167
  return get;
238
168
  }()
239
169
  }, {
@@ -251,25 +181,19 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
251
181
  Accept: "application/json"
252
182
  }
253
183
  });
254
-
255
184
  case 2:
256
185
  response = _context5.sent;
257
-
258
186
  if (response.ok) {
259
187
  _context5.next = 5;
260
188
  break;
261
189
  }
262
-
263
190
  throw response;
264
-
265
191
  case 5:
266
192
  _context5.next = 7;
267
193
  return response.json();
268
-
269
194
  case 7:
270
195
  payload = _context5.sent;
271
196
  return _context5.abrupt("return", payload["results"]["bindings"]);
272
-
273
197
  case 9:
274
198
  case "end":
275
199
  return _context5.stop();
@@ -277,11 +201,9 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
277
201
  }
278
202
  }, _callee5, this);
279
203
  }));
280
-
281
204
  function fetchSessions() {
282
205
  return _fetchSessions.apply(this, arguments);
283
206
  }
284
-
285
207
  return fetchSessions;
286
208
  }()
287
209
  }, {
@@ -294,16 +216,14 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
294
216
  var l = min;
295
217
  var session;
296
218
  var ok;
297
-
298
219
  do {
299
220
  m = Math.floor((l + h) / 2);
300
221
  session = this.sessions[m];
301
222
  ok = session.debut <= debut && debut <= session.fin;
302
-
303
223
  if (!ok) {
304
- if (l == m && m == h) // in between sessions
224
+ if (l == m && m == h)
225
+ // in between sessions
305
226
  return null;
306
-
307
227
  if (debut < session.debut) {
308
228
  if (m <= min) return null;
309
229
  h = m;
@@ -313,7 +233,6 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
313
233
  }
314
234
  }
315
235
  } while (!ok);
316
-
317
236
  return session;
318
237
  }
319
238
  }, {
@@ -336,29 +255,23 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
336
255
  _context6.next = 2;
337
256
  break;
338
257
  }
339
-
340
258
  return _context6.abrupt("return", null);
341
-
342
259
  case 2:
343
260
  debut = agenda.timestampDebut.substr(0, 10);
344
261
  session = this.lookupSession(debut);
345
-
346
262
  if (!(session == null)) {
347
263
  _context6.next = 8;
348
264
  break;
349
265
  }
350
-
351
266
  return _context6.abrupt("return", {
352
267
  status: "needs-fixing",
353
268
  info: ["".concat(debut, " is not in a session")]
354
269
  });
355
-
356
270
  case 8:
357
271
  return _context6.abrupt("return", {
358
272
  status: "ok",
359
273
  info: [""]
360
274
  });
361
-
362
275
  case 9:
363
276
  case "end":
364
277
  return _context6.stop();
@@ -366,11 +279,9 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
366
279
  }
367
280
  }, _callee6, this);
368
281
  }));
369
-
370
282
  function check(_x3, _x4) {
371
283
  return _check.apply(this, arguments);
372
284
  }
373
-
374
285
  return check;
375
286
  }()
376
287
  }, {
@@ -380,7 +291,6 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
380
291
  var version = agenda.schemaVersion.split("-")[1];
381
292
  if ((0, _tinyVersionCompare["default"])(version, "1.0") == 1) return;
382
293
  }
383
-
384
294
  agenda.schemaVersion = "agenda-1.1";
385
295
  }
386
296
  }, {
@@ -400,30 +310,23 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
400
310
  // if there is no sessionRef to remove, file which is not in scope does not need to be rewritten
401
311
  status = null;
402
312
  }
403
-
404
313
  if (this.inScope(agenda)) {
405
314
  _context7.next = 3;
406
315
  break;
407
316
  }
408
-
409
317
  return _context7.abrupt("return", status);
410
-
411
318
  case 3:
412
319
  if ("session" in agenda) delete agenda.session;
413
320
  session = this.lookupSession(agenda.timestampDebut.substr(0, 10));
414
-
415
321
  if (!(session == null)) {
416
322
  _context7.next = 9;
417
323
  break;
418
324
  }
419
-
420
325
  return _context7.abrupt("return", null);
421
-
422
326
  case 9:
423
327
  agenda.session = session;
424
328
  this.maybeUpgradeSchemaVersion(agenda);
425
329
  return _context7.abrupt("return", true);
426
-
427
330
  case 12:
428
331
  case "end":
429
332
  return _context7.stop();
@@ -431,17 +334,13 @@ var Plugin = /*#__PURE__*/function (_BasePlugin) {
431
334
  }
432
335
  }, _callee7, this);
433
336
  }));
434
-
435
337
  function fix(_x5, _x6) {
436
338
  return _fix.apply(this, arguments);
437
339
  }
438
-
439
340
  return fix;
440
341
  }()
441
342
  }]);
442
-
443
343
  return Plugin;
444
344
  }(_bugs.BasePlugin);
445
-
446
345
  exports.Plugin = Plugin;
447
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1cmwiLCJjb21wYXJlU3RyaW5nIiwiYSIsImIiLCJQbHVnaW4iLCJvcHRpb25zIiwiZmV0Y2giLCJzZXRTZXNzaW9ucyIsImZldGNoU2Vzc2lvbnMiLCJzZXNzaW9ucyIsInNvcnQiLCJtYXAiLCJzIiwibGFiZWwiLCJyZXBsYWNlIiwiZGVidXQiLCJzdWJzdHIiLCJmaW4iLCJoZWFkZXJzIiwiZ2V0IiwiQWNjZXB0IiwicmVzcG9uc2UiLCJvayIsImpzb24iLCJwYXlsb2FkIiwibWF4IiwibGVuZ3RoIiwibWluIiwiaCIsIm0iLCJsIiwic2Vzc2lvbiIsIk1hdGgiLCJmbG9vciIsImFnZW5kYSIsInhzaVR5cGUiLCJsaWV1IiwidW5kZWZpbmVkIiwiY29kZSIsImN5Y2xlRGVWaWUiLCJldGF0IiwiX2ZpbGVuYW1lIiwiaW5TY29wZSIsInRpbWVzdGFtcERlYnV0IiwibG9va3VwU2Vzc2lvbiIsInN0YXR1cyIsImluZm8iLCJzY2hlbWFWZXJzaW9uIiwidmVyc2lvbiIsInNwbGl0IiwidmVyc2lvbkNvbXBhcmUiLCJzZXNzaW9uUmVmIiwibWF5YmVVcGdyYWRlU2NoZW1hVmVyc2lvbiIsIkJhc2VQbHVnaW4iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVncy9hZ2VuZGEtMDAwMTEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHZlcnNpb25Db21wYXJlIGZyb20gXCJ0aW55LXZlcnNpb24tY29tcGFyZVwiXG5pbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIlxuaW1wb3J0IHsgQmFzZVBsdWdpbiB9IGZyb20gXCIuLi9idWdzXCJcblxuLy8gaHR0cHM6Ly93d3cud2lraWRhdGEub3JnL3dpa2kvV2lraWRhdGE6V2lraVByb2plY3RfRnJhbmNlL0Fzc2VtYmwlQzMlQTllX05hdGlvbmFsZSNMZWdpc2xhdGl2ZV9zZXNzaW9uXG5jb25zdCB1cmwgPVxuICBcImh0dHBzOi8vcXVlcnkud2lraWRhdGEub3JnL3NwYXJxbD9xdWVyeT1TRUxFQ1QlMjBESVNUSU5DVCUyMCUzRnNlc3Npb24lMjAlM0ZzdGFydF90aW1lJTIwJTNGZW5kX3RpbWUlMjAlM0ZsYWJlbCUyMCUzRmZvbGxvd3MlMjAlM0Zmb2xsb3dlZF9ieSUyMFdIRVJFJTIwJTdCJTBBJTBBJTIwJTIwJTIwJTNGc2Vzc2lvbiUyMHdkdCUzQVAzMSUyRndkdCUzQVAyNzkqJTIwd2QlM0FRODczMzc0ODEuJTBBJTIwJTIwJTIwJTNGc2Vzc2lvbiUyMHdkdCUzQVA1ODAlMjAlM0ZzdGFydF90aW1lLiUyMCUwQSUyMCUyMCUyME9QVElPTkFMJTIwJTdCJTIwJTNGc2Vzc2lvbiUyMHdkdCUzQVA1ODIlMjAlM0ZlbmRfdGltZSUyMCU3RC4lMEElMjAlMjAlMjBPUFRJT05BTCUyMCU3QiUyMCUzRnNlc3Npb24lMjB3ZHQlM0FQMTU1JTIwJTNGZm9sbG93cyUyMCU3RC4lMEElMjAlMjAlMjBPUFRJT05BTCUyMCU3QiUyMCUzRnNlc3Npb24lMjB3ZHQlM0FQMTU2JTIwJTNGZm9sbG93ZWRfYnklMjAlN0QuJTBBJTIwJTIwJTIwT1BUSU9OQUwlMjAlN0IlMjAlM0ZzZXNzaW9uJTIwcmRmcyUzQWxhYmVsJTIwJTNGbGFiZWwlMjBmaWx0ZXIlMjAobGFuZyglM0ZsYWJlbCklMjAlM0QlMjAlMjJmciUyMiklMjAuJTdEJTBBJTdEXCJcblxuZnVuY3Rpb24gY29tcGFyZVN0cmluZyhhOiBzdHJpbmcsIGI6IHN0cmluZykge1xuICBpZiAoYSA8IGIpIHJldHVybiAtMVxuICBpZiAoYSA+IGIpIHJldHVybiAxXG4gIHJldHVybiAwXG59XG5cbmV4cG9ydCBjbGFzcyBQbHVnaW4gZXh0ZW5kcyBCYXNlUGx1Z2luIHtcbiAgc2Vzc2lvbnM6IGFueVxuICBmZXRjaDogYW55XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogYW55KSB7XG4gICAgc3VwZXIob3B0aW9ucywgXCJhZ2VuZGEtMDAwMTFcIilcbiAgICB0aGlzLmZldGNoID0gZmV0Y2hcbiAgfVxuXG4gIGFzeW5jIHByZUZpeCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnNldFNlc3Npb25zKClcbiAgfVxuXG4gIGFzeW5jIHByZUNoZWNrKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0U2Vzc2lvbnMoKVxuICB9XG5cbiAgYXN5bmMgc2V0U2Vzc2lvbnMoKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzZXNzaW9ucyA9IChhd2FpdCB0aGlzLmZldGNoU2Vzc2lvbnMoKSkuc29ydCgoYTogYW55LCBiOiBhbnkpID0+XG4gICAgICBjb21wYXJlU3RyaW5nKGFbXCJzdGFydF90aW1lXCJdW1widmFsdWVcIl0sIGJbXCJzdGFydF90aW1lXCJdW1widmFsdWVcIl0pLFxuICAgIClcbiAgICB0aGlzLnNlc3Npb25zID0gc2Vzc2lvbnMubWFwKChzOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxhYmVsOiBzW1wibGFiZWxcIl1bXCJ2YWx1ZVwiXS5yZXBsYWNlKC9cXHMrZW4gZnJhbmNlL2ksIFwiXCIpLFxuICAgICAgICBkZWJ1dDogc1tcInN0YXJ0X3RpbWVcIl1bXCJ2YWx1ZVwiXS5zdWJzdHIoMCwgMTApLFxuICAgICAgICBmaW46IHNbXCJlbmRfdGltZVwiXVtcInZhbHVlXCJdLnN1YnN0cigwLCAxMCksXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldCh1cmw6IHN0cmluZywgaGVhZGVyczogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5mZXRjaCh1cmwsIGhlYWRlcnMpXG4gIH1cblxuICBhc3luYyBmZXRjaFNlc3Npb25zKCk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdldCh1cmwsIHtcbiAgICAgIGhlYWRlcnM6IHsgQWNjZXB0OiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgIH0pXG4gICAgaWYgKCFyZXNwb25zZS5vaykgdGhyb3cgcmVzcG9uc2VcbiAgICBjb25zdCBwYXlsb2FkID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgcmV0dXJuIHBheWxvYWRbXCJyZXN1bHRzXCJdW1wiYmluZGluZ3NcIl1cbiAgfVxuXG4gIGxvb2t1cFNlc3Npb24oZGVidXQ6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgbWF4ID0gdGhpcy5zZXNzaW9ucy5sZW5ndGggLSAxXG4gICAgY29uc3QgbWluID0gMFxuICAgIGxldCBoID0gbWF4XG4gICAgbGV0IG1cbiAgICBsZXQgbCA9IG1pblxuICAgIGxldCBzZXNzaW9uXG4gICAgbGV0IG9rXG4gICAgZG8ge1xuICAgICAgbSA9IE1hdGguZmxvb3IoKGwgKyBoKSAvIDIpXG4gICAgICBzZXNzaW9uID0gdGhpcy5zZXNzaW9uc1ttXVxuICAgICAgb2sgPSBzZXNzaW9uLmRlYnV0IDw9IGRlYnV0ICYmIGRlYnV0IDw9IHNlc3Npb24uZmluXG4gICAgICBpZiAoIW9rKSB7XG4gICAgICAgIGlmIChsID09IG0gJiYgbSA9PSBoKVxuICAgICAgICAgIC8vIGluIGJldHdlZW4gc2Vzc2lvbnNcbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICBpZiAoZGVidXQgPCBzZXNzaW9uLmRlYnV0KSB7XG4gICAgICAgICAgaWYgKG0gPD0gbWluKSByZXR1cm4gbnVsbFxuICAgICAgICAgIGggPSBtXG4gICAgICAgIH0gZWxzZSBpZiAoZGVidXQgPiBzZXNzaW9uLmZpbikge1xuICAgICAgICAgIGlmIChtID49IG1heCkgcmV0dXJuIG51bGxcbiAgICAgICAgICBsID0gbCA9PSBtID8gaCA6IG1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gd2hpbGUgKCFvaylcbiAgICByZXR1cm4gc2Vzc2lvblxuICB9XG5cbiAgaW5TY29wZShhZ2VuZGE6IGFueSkge1xuICAgIGlmIChcbiAgICAgIGFnZW5kYS54c2lUeXBlICE9IFwic2VhbmNlX3R5cGVcIiB8fFxuICAgICAgKGFnZW5kYS5saWV1ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgYWdlbmRhLmxpZXUuY29kZSAhPSBcIkNHXCIgJiZcbiAgICAgICAgYWdlbmRhLmxpZXUuY29kZSAhPSBcIkFOXCIpXG4gICAgKVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgaWYgKGFnZW5kYS5jeWNsZURlVmllLmV0YXQgIT0gXCJDb25maXJtw6lcIikgcmV0dXJuIGZhbHNlXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGFzeW5jIGNoZWNrKGFnZW5kYTogYW55LCBfZmlsZW5hbWU6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKCF0aGlzLmluU2NvcGUoYWdlbmRhKSkgcmV0dXJuIG51bGxcbiAgICBjb25zdCBkZWJ1dCA9IGFnZW5kYS50aW1lc3RhbXBEZWJ1dC5zdWJzdHIoMCwgMTApXG4gICAgY29uc3Qgc2Vzc2lvbiA9IHRoaXMubG9va3VwU2Vzc2lvbihkZWJ1dClcbiAgICBpZiAoc2Vzc2lvbiA9PSBudWxsKSB7XG4gICAgICByZXR1cm4geyBzdGF0dXM6IFwibmVlZHMtZml4aW5nXCIsIGluZm86IFtgJHtkZWJ1dH0gaXMgbm90IGluIGEgc2Vzc2lvbmBdIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHsgc3RhdHVzOiBcIm9rXCIsIGluZm86IFtcIlwiXSB9XG4gICAgfVxuICB9XG5cbiAgbWF5YmVVcGdyYWRlU2NoZW1hVmVyc2lvbihhZ2VuZGE6IGFueSkge1xuICAgIGlmIChhZ2VuZGEuc2NoZW1hVmVyc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB2ZXJzaW9uID0gYWdlbmRhLnNjaGVtYVZlcnNpb24uc3BsaXQoXCItXCIpWzFdXG4gICAgICBpZiAodmVyc2lvbkNvbXBhcmUodmVyc2lvbiwgXCIxLjBcIikgPT0gMSkgcmV0dXJuXG4gICAgfVxuICAgIGFnZW5kYS5zY2hlbWFWZXJzaW9uID0gXCJhZ2VuZGEtMS4xXCJcbiAgfVxuXG4gIGFzeW5jIGZpeChhZ2VuZGE6IGFueSwgX2ZpbGVuYW1lOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGxldCBzdGF0dXNcbiAgICBpZiAoXCJzZXNzaW9uUmVmXCIgaW4gYWdlbmRhKSB7XG4gICAgICAvLyBzZXNzaW9uUmVmIGlzIHVuZGVmaW5lZCBhbmQgbXVzdCBiZSByZW1vdmVkXG4gICAgICBkZWxldGUgYWdlbmRhLnNlc3Npb25SZWZcbiAgICAgIHN0YXR1cyA9IHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gc2Vzc2lvblJlZiB0byByZW1vdmUsIGZpbGUgd2hpY2ggaXMgbm90IGluIHNjb3BlIGRvZXMgbm90IG5lZWQgdG8gYmUgcmV3cml0dGVuXG4gICAgICBzdGF0dXMgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmluU2NvcGUoYWdlbmRhKSkgcmV0dXJuIHN0YXR1c1xuXG4gICAgaWYgKFwic2Vzc2lvblwiIGluIGFnZW5kYSkgZGVsZXRlIGFnZW5kYS5zZXNzaW9uXG5cbiAgICBjb25zdCBzZXNzaW9uID0gdGhpcy5sb29rdXBTZXNzaW9uKGFnZW5kYS50aW1lc3RhbXBEZWJ1dC5zdWJzdHIoMCwgMTApKVxuICAgIGlmIChzZXNzaW9uID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfSBlbHNlIHtcbiAgICAgIGFnZW5kYS5zZXNzaW9uID0gc2Vzc2lvblxuICAgICAgdGhpcy5tYXliZVVwZ3JhZGVTY2hlbWFWZXJzaW9uKGFnZW5kYSlcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOzs7OytDQURBLG9KOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7QUFDQSxJQUFNQSxHQUFHLEdBQ1AsaW5CQURGOztBQUdBLFNBQVNDLGFBQVQsQ0FBdUJDLENBQXZCLEVBQWtDQyxDQUFsQyxFQUE2QztFQUMzQyxJQUFJRCxDQUFDLEdBQUdDLENBQVIsRUFBVyxPQUFPLENB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
346
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1cmwiLCJjb21wYXJlU3RyaW5nIiwiYSIsImIiLCJQbHVnaW4iLCJvcHRpb25zIiwiZmV0Y2giLCJzZXRTZXNzaW9ucyIsImZldGNoU2Vzc2lvbnMiLCJzZXNzaW9ucyIsInNvcnQiLCJtYXAiLCJzIiwibGFiZWwiLCJyZXBsYWNlIiwiZGVidXQiLCJzdWJzdHIiLCJmaW4iLCJoZWFkZXJzIiwiZ2V0IiwiQWNjZXB0IiwicmVzcG9uc2UiLCJvayIsImpzb24iLCJwYXlsb2FkIiwibWF4IiwibGVuZ3RoIiwibWluIiwiaCIsIm0iLCJsIiwic2Vzc2lvbiIsIk1hdGgiLCJmbG9vciIsImFnZW5kYSIsInhzaVR5cGUiLCJsaWV1IiwidW5kZWZpbmVkIiwiY29kZSIsImN5Y2xlRGVWaWUiLCJldGF0IiwiX2ZpbGVuYW1lIiwiaW5TY29wZSIsInRpbWVzdGFtcERlYnV0IiwibG9va3VwU2Vzc2lvbiIsInN0YXR1cyIsImluZm8iLCJzY2hlbWFWZXJzaW9uIiwidmVyc2lvbiIsInNwbGl0IiwidmVyc2lvbkNvbXBhcmUiLCJzZXNzaW9uUmVmIiwibWF5YmVVcGdyYWRlU2NoZW1hVmVyc2lvbiIsIkJhc2VQbHVnaW4iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVncy9hZ2VuZGEtMDAwMTEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHZlcnNpb25Db21wYXJlIGZyb20gXCJ0aW55LXZlcnNpb24tY29tcGFyZVwiXG5pbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIlxuaW1wb3J0IHsgQmFzZVBsdWdpbiB9IGZyb20gXCIuLi9idWdzXCJcblxuLy8gaHR0cHM6Ly93d3cud2lraWRhdGEub3JnL3dpa2kvV2lraWRhdGE6V2lraVByb2plY3RfRnJhbmNlL0Fzc2VtYmwlQzMlQTllX05hdGlvbmFsZSNMZWdpc2xhdGl2ZV9zZXNzaW9uXG5jb25zdCB1cmwgPVxuICBcImh0dHBzOi8vcXVlcnkud2lraWRhdGEub3JnL3NwYXJxbD9xdWVyeT1TRUxFQ1QlMjBESVNUSU5DVCUyMCUzRnNlc3Npb24lMjAlM0ZzdGFydF90aW1lJTIwJTNGZW5kX3RpbWUlMjAlM0ZsYWJlbCUyMCUzRmZvbGxvd3MlMjAlM0Zmb2xsb3dlZF9ieSUyMFdIRVJFJTIwJTdCJTBBJTBBJTIwJTIwJTIwJTNGc2Vzc2lvbiUyMHdkdCUzQVAzMSUyRndkdCUzQVAyNzkqJTIwd2QlM0FRODczMzc0ODEuJTBBJTIwJTIwJTIwJTNGc2Vzc2lvbiUyMHdkdCUzQVA1ODAlMjAlM0ZzdGFydF90aW1lLiUyMCUwQSUyMCUyMCUyME9QVElPTkFMJTIwJTdCJTIwJTNGc2Vzc2lvbiUyMHdkdCUzQVA1ODIlMjAlM0ZlbmRfdGltZSUyMCU3RC4lMEElMjAlMjAlMjBPUFRJT05BTCUyMCU3QiUyMCUzRnNlc3Npb24lMjB3ZHQlM0FQMTU1JTIwJTNGZm9sbG93cyUyMCU3RC4lMEElMjAlMjAlMjBPUFRJT05BTCUyMCU3QiUyMCUzRnNlc3Npb24lMjB3ZHQlM0FQMTU2JTIwJTNGZm9sbG93ZWRfYnklMjAlN0QuJTBBJTIwJTIwJTIwT1BUSU9OQUwlMjAlN0IlMjAlM0ZzZXNzaW9uJTIwcmRmcyUzQWxhYmVsJTIwJTNGbGFiZWwlMjBmaWx0ZXIlMjAobGFuZyglM0ZsYWJlbCklMjAlM0QlMjAlMjJmciUyMiklMjAuJTdEJTBBJTdEXCJcblxuZnVuY3Rpb24gY29tcGFyZVN0cmluZyhhOiBzdHJpbmcsIGI6IHN0cmluZykge1xuICBpZiAoYSA8IGIpIHJldHVybiAtMVxuICBpZiAoYSA+IGIpIHJldHVybiAxXG4gIHJldHVybiAwXG59XG5cbmV4cG9ydCBjbGFzcyBQbHVnaW4gZXh0ZW5kcyBCYXNlUGx1Z2luIHtcbiAgc2Vzc2lvbnM6IGFueVxuICBmZXRjaDogYW55XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogYW55KSB7XG4gICAgc3VwZXIob3B0aW9ucywgXCJhZ2VuZGEtMDAwMTFcIilcbiAgICB0aGlzLmZldGNoID0gZmV0Y2hcbiAgfVxuXG4gIGFzeW5jIHByZUZpeCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnNldFNlc3Npb25zKClcbiAgfVxuXG4gIGFzeW5jIHByZUNoZWNrKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0U2Vzc2lvbnMoKVxuICB9XG5cbiAgYXN5bmMgc2V0U2Vzc2lvbnMoKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzZXNzaW9ucyA9IChhd2FpdCB0aGlzLmZldGNoU2Vzc2lvbnMoKSkuc29ydCgoYTogYW55LCBiOiBhbnkpID0+XG4gICAgICBjb21wYXJlU3RyaW5nKGFbXCJzdGFydF90aW1lXCJdW1widmFsdWVcIl0sIGJbXCJzdGFydF90aW1lXCJdW1widmFsdWVcIl0pLFxuICAgIClcbiAgICB0aGlzLnNlc3Npb25zID0gc2Vzc2lvbnMubWFwKChzOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxhYmVsOiBzW1wibGFiZWxcIl1bXCJ2YWx1ZVwiXS5yZXBsYWNlKC9cXHMrZW4gZnJhbmNlL2ksIFwiXCIpLFxuICAgICAgICBkZWJ1dDogc1tcInN0YXJ0X3RpbWVcIl1bXCJ2YWx1ZVwiXS5zdWJzdHIoMCwgMTApLFxuICAgICAgICBmaW46IHNbXCJlbmRfdGltZVwiXVtcInZhbHVlXCJdLnN1YnN0cigwLCAxMCksXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldCh1cmw6IHN0cmluZywgaGVhZGVyczogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5mZXRjaCh1cmwsIGhlYWRlcnMpXG4gIH1cblxuICBhc3luYyBmZXRjaFNlc3Npb25zKCk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmdldCh1cmwsIHtcbiAgICAgIGhlYWRlcnM6IHsgQWNjZXB0OiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgIH0pXG4gICAgaWYgKCFyZXNwb25zZS5vaykgdGhyb3cgcmVzcG9uc2VcbiAgICBjb25zdCBwYXlsb2FkID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgcmV0dXJuIHBheWxvYWRbXCJyZXN1bHRzXCJdW1wiYmluZGluZ3NcIl1cbiAgfVxuXG4gIGxvb2t1cFNlc3Npb24oZGVidXQ6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgbWF4ID0gdGhpcy5zZXNzaW9ucy5sZW5ndGggLSAxXG4gICAgY29uc3QgbWluID0gMFxuICAgIGxldCBoID0gbWF4XG4gICAgbGV0IG1cbiAgICBsZXQgbCA9IG1pblxuICAgIGxldCBzZXNzaW9uXG4gICAgbGV0IG9rXG4gICAgZG8ge1xuICAgICAgbSA9IE1hdGguZmxvb3IoKGwgKyBoKSAvIDIpXG4gICAgICBzZXNzaW9uID0gdGhpcy5zZXNzaW9uc1ttXVxuICAgICAgb2sgPSBzZXNzaW9uLmRlYnV0IDw9IGRlYnV0ICYmIGRlYnV0IDw9IHNlc3Npb24uZmluXG4gICAgICBpZiAoIW9rKSB7XG4gICAgICAgIGlmIChsID09IG0gJiYgbSA9PSBoKVxuICAgICAgICAgIC8vIGluIGJldHdlZW4gc2Vzc2lvbnNcbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICBpZiAoZGVidXQgPCBzZXNzaW9uLmRlYnV0KSB7XG4gICAgICAgICAgaWYgKG0gPD0gbWluKSByZXR1cm4gbnVsbFxuICAgICAgICAgIGggPSBtXG4gICAgICAgIH0gZWxzZSBpZiAoZGVidXQgPiBzZXNzaW9uLmZpbikge1xuICAgICAgICAgIGlmIChtID49IG1heCkgcmV0dXJuIG51bGxcbiAgICAgICAgICBsID0gbCA9PSBtID8gaCA6IG1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gd2hpbGUgKCFvaylcbiAgICByZXR1cm4gc2Vzc2lvblxuICB9XG5cbiAgaW5TY29wZShhZ2VuZGE6IGFueSkge1xuICAgIGlmIChcbiAgICAgIGFnZW5kYS54c2lUeXBlICE9IFwic2VhbmNlX3R5cGVcIiB8fFxuICAgICAgKGFnZW5kYS5saWV1ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgYWdlbmRhLmxpZXUuY29kZSAhPSBcIkNHXCIgJiZcbiAgICAgICAgYWdlbmRhLmxpZXUuY29kZSAhPSBcIkFOXCIpXG4gICAgKVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgaWYgKGFnZW5kYS5jeWNsZURlVmllLmV0YXQgIT0gXCJDb25maXJtw6lcIikgcmV0dXJuIGZhbHNlXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGFzeW5jIGNoZWNrKGFnZW5kYTogYW55LCBfZmlsZW5hbWU6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKCF0aGlzLmluU2NvcGUoYWdlbmRhKSkgcmV0dXJuIG51bGxcbiAgICBjb25zdCBkZWJ1dCA9IGFnZW5kYS50aW1lc3RhbXBEZWJ1dC5zdWJzdHIoMCwgMTApXG4gICAgY29uc3Qgc2Vzc2lvbiA9IHRoaXMubG9va3VwU2Vzc2lvbihkZWJ1dClcbiAgICBpZiAoc2Vzc2lvbiA9PSBudWxsKSB7XG4gICAgICByZXR1cm4geyBzdGF0dXM6IFwibmVlZHMtZml4aW5nXCIsIGluZm86IFtgJHtkZWJ1dH0gaXMgbm90IGluIGEgc2Vzc2lvbmBdIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHsgc3RhdHVzOiBcIm9rXCIsIGluZm86IFtcIlwiXSB9XG4gICAgfVxuICB9XG5cbiAgbWF5YmVVcGdyYWRlU2NoZW1hVmVyc2lvbihhZ2VuZGE6IGFueSkge1xuICAgIGlmIChhZ2VuZGEuc2NoZW1hVmVyc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB2ZXJzaW9uID0gYWdlbmRhLnNjaGVtYVZlcnNpb24uc3BsaXQoXCItXCIpWzFdXG4gICAgICBpZiAodmVyc2lvbkNvbXBhcmUodmVyc2lvbiwgXCIxLjBcIikgPT0gMSkgcmV0dXJuXG4gICAgfVxuICAgIGFnZW5kYS5zY2hlbWFWZXJzaW9uID0gXCJhZ2VuZGEtMS4xXCJcbiAgfVxuXG4gIGFzeW5jIGZpeChhZ2VuZGE6IGFueSwgX2ZpbGVuYW1lOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGxldCBzdGF0dXNcbiAgICBpZiAoXCJzZXNzaW9uUmVmXCIgaW4gYWdlbmRhKSB7XG4gICAgICAvLyBzZXNzaW9uUmVmIGlzIHVuZGVmaW5lZCBhbmQgbXVzdCBiZSByZW1vdmVkXG4gICAgICBkZWxldGUgYWdlbmRhLnNlc3Npb25SZWZcbiAgICAgIHN0YXR1cyA9IHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gc2Vzc2lvblJlZiB0byByZW1vdmUsIGZpbGUgd2hpY2ggaXMgbm90IGluIHNjb3BlIGRvZXMgbm90IG5lZWQgdG8gYmUgcmV3cml0dGVuXG4gICAgICBzdGF0dXMgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmluU2NvcGUoYWdlbmRhKSkgcmV0dXJuIHN0YXR1c1xuXG4gICAgaWYgKFwic2Vzc2lvblwiIGluIGFnZW5kYSkgZGVsZXRlIGFnZW5kYS5zZXNzaW9uXG5cbiAgICBjb25zdCBzZXNzaW9uID0gdGhpcy5sb29rdXBTZXNzaW9uKGFnZW5kYS50aW1lc3RhbXBEZWJ1dC5zdWJzdHIoMCwgMTApKVxuICAgIGlmIChzZXNzaW9uID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfSBlbHNlIHtcbiAgICAgIGFnZW5kYS5zZXNzaW9uID0gc2Vzc2lvblxuICAgICAgdGhpcy5tYXliZVVwZ3JhZGVTY2hlbWFWZXJzaW9uKGFnZW5kYSlcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFBb0M7QUFBQSwrQ0FEcEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQ0EsSUFBTUEsR0FBRyxHQUNQLGluQkFBaW5CO0FBRW5uQixTQUFTQyxhQUFhLENBQUNDLENBQVMsRUFBRUMsQ0FBUyxFQUFFO0VBQzNDLElBQUlELENBQUMsR0FBR0MsQ0FBQyxF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